diff --git a/.gitignore b/.gitignore index af94f7a..f491786 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ # The following files are generated/updated by vaadin-maven-plugin node_modules/ frontend/generated/ +frontend/index.html pnpmfile.js pnpm-lock.yaml types.d.ts diff --git a/package.json b/package.json index 76ad36c..64b50cc 100644 --- a/package.json +++ b/package.json @@ -3,144 +3,255 @@ "license": "UNLICENSED", "vaadin": { "dependencies": { - "lit-element": "2.5.1", - "@vaadin/router": "1.7.2", - "@polymer/polymer": "3.2.0", - "@vaadin/vaadin-grid": "6.0.2", - "@vaadin/vaadin-icons": "4.3.2", - "@vaadin/vaadin-split-layout": "4.3.0", - "@vaadin/vaadin-combo-box": "6.0.1", - "@vaadin/vaadin-core-shrinkwrap": "19.0.9", - "@vaadin/vaadin-upload": "5.0.0", - "@vaadin/vaadin-dialog": "2.5.2", - "@vaadin/vaadin-select": "3.0.0", - "@vaadin/vaadin-app-layout": "2.2.0", - "@vaadin/vaadin-item": "3.0.0", - "@vaadin/vaadin-notification": "1.6.1", - "@vaadin/vaadin-progress-bar": "1.3.0", - "@vaadin/vaadin-date-time-picker": "2.0.0", - "@vaadin/vaadin-ordered-layout": "1.4.0", - "@vaadin/vaadin-login": "2.0.0", - "@vaadin/vaadin-button": "2.4.0", - "@vaadin/vaadin-date-picker": "5.0.0", - "@vaadin/vaadin-text-field": "3.0.2", - "@vaadin/vaadin-menu-bar": "2.0.0", - "@vaadin/vaadin-custom-field": "2.0.0", - "@vaadin/vaadin-form-layout": "2.3.0", - "@vaadin/vaadin-accordion": "1.2.0", - "@polymer/iron-list": "3.1.0", - "@vaadin/vaadin-list-box": "2.0.0", - "@vaadin/vaadin-details": "1.2.0", - "@vaadin/vaadin-checkbox": "3.0.0", - "@polymer/iron-icon": "3.0.1", - "@vaadin/vaadin-time-picker": "3.0.0", - "@vaadin/vaadin-context-menu": "5.0.0", - "@vaadin/vaadin-avatar": "2.0.2", + "@polymer/polymer": "3.5.1", "@vaadin-component-factory/vcf-tooltip": "1.3.13", - "@vaadin/vaadin-radio-button": "1.5.1", - "@vaadin/vaadin-tabs": "4.0.0", - "@vaadin/vaadin-lumo-styles": "1.6.1", - "@vaadin/vaadin-material-styles": "1.3.2", - "open": "^7.2.1", + "@vaadin/a11y-base": "24.2.0", + "@vaadin/accordion": "24.2.0", + "@vaadin/app-layout": "24.2.0", + "@vaadin/avatar": "24.2.0", + "@vaadin/avatar-group": "24.2.0", + "@vaadin/bundles": "24.2.0", + "@vaadin/button": "24.2.0", + "@vaadin/checkbox": "24.2.0", + "@vaadin/checkbox-group": "24.2.0", + "@vaadin/combo-box": "24.2.0", + "@vaadin/common-frontend": "0.0.18", + "@vaadin/component-base": "24.2.0", + "@vaadin/confirm-dialog": "24.2.0", + "@vaadin/context-menu": "24.2.0", + "@vaadin/custom-field": "24.2.0", + "@vaadin/date-picker": "24.2.0", + "@vaadin/date-time-picker": "24.2.0", + "@vaadin/details": "24.2.0", + "@vaadin/dialog": "24.2.0", + "@vaadin/email-field": "24.2.0", + "@vaadin/field-base": "24.2.0", + "@vaadin/field-highlighter": "24.2.0", + "@vaadin/form-layout": "24.2.0", + "@vaadin/grid": "24.2.0", + "@vaadin/horizontal-layout": "24.2.0", + "@vaadin/icon": "24.2.0", + "@vaadin/icons": "24.2.0", + "@vaadin/input-container": "24.2.0", + "@vaadin/integer-field": "24.2.0", + "@vaadin/item": "24.2.0", + "@vaadin/list-box": "24.2.0", + "@vaadin/lit-renderer": "24.2.0", + "@vaadin/login": "24.2.0", + "@vaadin/menu-bar": "24.2.0", + "@vaadin/message-input": "24.2.0", + "@vaadin/message-list": "24.2.0", + "@vaadin/multi-select-combo-box": "24.2.0", + "@vaadin/notification": "24.2.0", + "@vaadin/number-field": "24.2.0", + "@vaadin/overlay": "24.2.0", + "@vaadin/password-field": "24.2.0", + "@vaadin/polymer-legacy-adapter": "24.2.0", + "@vaadin/progress-bar": "24.2.0", + "@vaadin/radio-group": "24.2.0", + "@vaadin/router": "1.7.5", + "@vaadin/scroller": "24.2.0", + "@vaadin/select": "24.2.0", + "@vaadin/side-nav": "24.2.0", + "@vaadin/split-layout": "24.2.0", + "@vaadin/tabs": "24.2.0", + "@vaadin/tabsheet": "24.2.0", + "@vaadin/text-area": "24.2.0", + "@vaadin/text-field": "24.2.0", + "@vaadin/time-picker": "24.2.0", + "@vaadin/tooltip": "24.2.0", + "@vaadin/upload": "24.2.0", + "@vaadin/vaadin-development-mode-detector": "2.0.6", + "@vaadin/vaadin-lumo-styles": "24.2.0", + "@vaadin/vaadin-material-styles": "24.2.0", + "@vaadin/vaadin-themable-mixin": "24.2.0", + "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vertical-layout": "24.2.0", + "@vaadin/virtual-list": "24.2.0", "@xpertsea/paper-slider": "3.0.0", - "construct-style-sheets-polyfill": "2.4.16", - "lit-html": "1.4.1" + "construct-style-sheets-polyfill": "3.1.0", + "date-fns": "2.29.3", + "lit": "2.8.0", + "mobile-drag-drop": "2.3.0-rc.2" }, "devDependencies": { - "compression-webpack-plugin": "4.0.1", - "webpack-cli": "3.3.11", - "css-loader": "4.2.1", - "validator": "13.1.17", - "lit-css-loader": "0.0.4", - "@types/validator": "13.1.0", - "webpack": "4.46.0", - "html-webpack-plugin": "4.5.1", - "chokidar": "^3.5.0", - "typescript": "4.0.3", - "webpack-merge": "4.2.2", - "webpack-dev-server": "3.11.0", - "extract-loader": "5.1.0", - "file-loader": "6.2.0", - "extra-watch-webpack-plugin": "1.0.3", - "glob": "7.1.6", - "loader-utils": "2.0.0", - "ts-loader": "8.0.12", - "workbox-webpack-plugin": "5.1.4", - "workbox-core": "5.1.4", - "workbox-precaching": "5.1.4", - "webpack-manifest-plugin": "3.0.0", - "fork-ts-checker-webpack-plugin": "6.2.1" + "@rollup/plugin-replace": "5.0.2", + "@rollup/pluginutils": "5.0.2", + "@vitejs/plugin-react": "4.0.4", + "async": "3.2.4", + "glob": "10.3.3", + "rollup-plugin-brotli": "3.1.0", + "rollup-plugin-visualizer": "5.9.2", + "strip-css-comments": "5.0.0", + "transform-ast": "2.4.4", + "typescript": "5.1.6", + "vite": "4.4.11", + "vite-plugin-checker": "0.6.1", + "workbox-build": "7.0.0", + "workbox-core": "7.0.0", + "workbox-precaching": "7.0.0" }, - "hash": "060d0b54b469e87ae49c0a6fde998dac1c0851827db2de5cc29c25742f833a3d" + "hash": "53b6367c73a1ada75a9c265400991b9a0193a8b116e9bf5534d7544255191b69" }, "dependencies": { - "lit-element": "2.5.1", - "@vaadin/router": "1.7.2", - "@polymer/polymer": "3.2.0", - "@vaadin/flow-frontend": "./target/flow-frontend", - "@vaadin/form": "./target/flow-frontend/form", - "@vaadin/vaadin-grid": "6.0.2", - "@vaadin/vaadin-icons": "4.3.2", - "@vaadin/vaadin-split-layout": "4.3.0", - "@vaadin/vaadin-combo-box": "6.0.1", - "@vaadin/vaadin-core-shrinkwrap": "19.0.9", - "@vaadin/vaadin-upload": "5.0.0", - "@vaadin/vaadin-dialog": "2.5.2", - "@vaadin/vaadin-select": "3.0.0", - "@vaadin/vaadin-app-layout": "2.2.0", - "@vaadin/vaadin-item": "3.0.0", - "@vaadin/vaadin-notification": "1.6.1", - "@vaadin/vaadin-progress-bar": "1.3.0", - "@vaadin/vaadin-date-time-picker": "2.0.0", - "@vaadin/vaadin-ordered-layout": "1.4.0", - "@vaadin/vaadin-login": "2.0.0", - "@vaadin/vaadin-button": "2.4.0", - "@vaadin/vaadin-date-picker": "5.0.0", - "@vaadin/vaadin-text-field": "3.0.2", - "@vaadin/vaadin-menu-bar": "2.0.0", - "@vaadin/vaadin-custom-field": "2.0.0", - "@vaadin/vaadin-form-layout": "2.3.0", - "@vaadin/vaadin-accordion": "1.2.0", - "@polymer/iron-list": "3.1.0", - "@vaadin/vaadin-list-box": "2.0.0", - "@vaadin/vaadin-details": "1.2.0", - "@vaadin/vaadin-checkbox": "3.0.0", - "@polymer/iron-icon": "3.0.1", - "@vaadin/vaadin-time-picker": "3.0.0", - "@vaadin/vaadin-context-menu": "5.0.0", - "@vaadin/vaadin-avatar": "2.0.2", - "@vaadin/vaadin-radio-button": "1.5.1", - "@vaadin/vaadin-tabs": "4.0.0", - "@vaadin/vaadin-lumo-styles": "1.6.1", - "@vaadin/vaadin-material-styles": "1.3.2", - "open": "^7.2.1", + "@polymer/polymer": "3.5.1", + "@vaadin/a11y-base": "24.2.0", + "@vaadin/accordion": "24.2.0", + "@vaadin/app-layout": "24.2.0", + "@vaadin/avatar": "24.2.0", + "@vaadin/avatar-group": "24.2.0", + "@vaadin/bundles": "24.2.0", + "@vaadin/button": "24.2.0", + "@vaadin/checkbox": "24.2.0", + "@vaadin/checkbox-group": "24.2.0", + "@vaadin/combo-box": "24.2.0", + "@vaadin/common-frontend": "0.0.18", + "@vaadin/component-base": "24.2.0", + "@vaadin/confirm-dialog": "24.2.0", + "@vaadin/context-menu": "24.2.0", + "@vaadin/custom-field": "24.2.0", + "@vaadin/date-picker": "24.2.0", + "@vaadin/date-time-picker": "24.2.0", + "@vaadin/details": "24.2.0", + "@vaadin/dialog": "24.2.0", + "@vaadin/email-field": "24.2.0", + "@vaadin/field-base": "24.2.0", + "@vaadin/field-highlighter": "24.2.0", + "@vaadin/form": "0.0.17", + "@vaadin/form-layout": "24.2.0", + "@vaadin/grid": "24.2.0", + "@vaadin/horizontal-layout": "24.2.0", + "@vaadin/icon": "24.2.0", + "@vaadin/icons": "24.2.0", + "@vaadin/input-container": "24.2.0", + "@vaadin/integer-field": "24.2.0", + "@vaadin/item": "24.2.0", + "@vaadin/list-box": "24.2.0", + "@vaadin/lit-renderer": "24.2.0", + "@vaadin/login": "24.2.0", + "@vaadin/menu-bar": "24.2.0", + "@vaadin/message-input": "24.2.0", + "@vaadin/message-list": "24.2.0", + "@vaadin/multi-select-combo-box": "24.2.0", + "@vaadin/notification": "24.2.0", + "@vaadin/number-field": "24.2.0", + "@vaadin/overlay": "24.2.0", + "@vaadin/password-field": "24.2.0", + "@vaadin/polymer-legacy-adapter": "24.2.0", + "@vaadin/progress-bar": "24.2.0", + "@vaadin/radio-group": "24.2.0", + "@vaadin/router": "1.7.5", + "@vaadin/scroller": "24.2.0", + "@vaadin/select": "24.2.0", + "@vaadin/side-nav": "24.2.0", + "@vaadin/split-layout": "24.2.0", + "@vaadin/tabs": "24.2.0", + "@vaadin/tabsheet": "24.2.0", + "@vaadin/text-area": "24.2.0", + "@vaadin/text-field": "24.2.0", + "@vaadin/time-picker": "24.2.0", + "@vaadin/tooltip": "24.2.0", + "@vaadin/upload": "24.2.0", + "@vaadin/vaadin-development-mode-detector": "2.0.6", + "@vaadin/vaadin-lumo-styles": "24.2.0", + "@vaadin/vaadin-material-styles": "24.2.0", + "@vaadin/vaadin-themable-mixin": "24.2.0", + "@vaadin/vaadin-usage-statistics": "2.1.2", + "@vaadin/vertical-layout": "24.2.0", + "@vaadin/virtual-list": "24.2.0", "@xpertsea/paper-slider": "3.0.0", - "construct-style-sheets-polyfill": "2.4.16", - "lit-html": "1.4.1" + "construct-style-sheets-polyfill": "3.1.0", + "date-fns": "2.29.3", + "lit": "2.8.0", + "mobile-drag-drop": "2.3.0-rc.2" }, "devDependencies": { - "compression-webpack-plugin": "4.0.1", - "webpack-cli": "3.3.11", - "css-loader": "4.2.1", - "validator": "13.1.17", - "lit-css-loader": "0.0.4", - "@types/validator": "13.1.0", - "webpack": "4.46.0", - "html-webpack-plugin": "4.5.1", - "chokidar": "^3.5.0", - "typescript": "4.0.3", - "webpack-merge": "4.2.2", - "webpack-dev-server": "3.11.0", - "extract-loader": "5.1.0", - "file-loader": "6.2.0", - "extra-watch-webpack-plugin": "1.0.3", - "glob": "7.1.6", - "loader-utils": "2.0.0", - "ts-loader": "8.0.12", - "workbox-webpack-plugin": "5.1.4", - "workbox-core": "5.1.4", - "workbox-precaching": "5.1.4", - "webpack-manifest-plugin": "3.0.0", - "fork-ts-checker-webpack-plugin": "6.2.1" + "@rollup/plugin-replace": "5.0.2", + "@rollup/pluginutils": "5.0.2", + "@vitejs/plugin-react": "4.0.4", + "async": "3.2.4", + "glob": "10.3.3", + "rollup-plugin-brotli": "3.1.0", + "rollup-plugin-visualizer": "5.9.2", + "strip-css-comments": "5.0.0", + "transform-ast": "2.4.4", + "typescript": "5.1.6", + "vite": "4.4.11", + "vite-plugin-checker": "0.6.1", + "workbox-build": "7.0.0", + "workbox-core": "7.0.0", + "workbox-precaching": "7.0.0" + }, + "overrides": { + "@vaadin/bundles": "$@vaadin/bundles", + "@vaadin/a11y-base": "$@vaadin/a11y-base", + "@vaadin/accordion": "$@vaadin/accordion", + "@vaadin/app-layout": "$@vaadin/app-layout", + "@vaadin/avatar": "$@vaadin/avatar", + "@vaadin/avatar-group": "$@vaadin/avatar-group", + "@vaadin/button": "$@vaadin/button", + "@vaadin/checkbox": "$@vaadin/checkbox", + "@vaadin/checkbox-group": "$@vaadin/checkbox-group", + "@vaadin/combo-box": "$@vaadin/combo-box", + "@vaadin/component-base": "$@vaadin/component-base", + "@vaadin/confirm-dialog": "$@vaadin/confirm-dialog", + "@vaadin/context-menu": "$@vaadin/context-menu", + "@vaadin/custom-field": "$@vaadin/custom-field", + "@vaadin/date-picker": "$@vaadin/date-picker", + "@vaadin/date-time-picker": "$@vaadin/date-time-picker", + "@vaadin/details": "$@vaadin/details", + "@vaadin/dialog": "$@vaadin/dialog", + "@vaadin/email-field": "$@vaadin/email-field", + "@vaadin/field-base": "$@vaadin/field-base", + "@vaadin/field-highlighter": "$@vaadin/field-highlighter", + "@vaadin/form-layout": "$@vaadin/form-layout", + "@vaadin/grid": "$@vaadin/grid", + "@vaadin/horizontal-layout": "$@vaadin/horizontal-layout", + "@vaadin/icon": "$@vaadin/icon", + "@vaadin/icons": "$@vaadin/icons", + "@vaadin/input-container": "$@vaadin/input-container", + "@vaadin/integer-field": "$@vaadin/integer-field", + "@vaadin/item": "$@vaadin/item", + "@vaadin/list-box": "$@vaadin/list-box", + "@vaadin/lit-renderer": "$@vaadin/lit-renderer", + "@vaadin/login": "$@vaadin/login", + "@vaadin/menu-bar": "$@vaadin/menu-bar", + "@vaadin/message-input": "$@vaadin/message-input", + "@vaadin/message-list": "$@vaadin/message-list", + "@vaadin/multi-select-combo-box": "$@vaadin/multi-select-combo-box", + "@vaadin/notification": "$@vaadin/notification", + "@vaadin/number-field": "$@vaadin/number-field", + "@vaadin/overlay": "$@vaadin/overlay", + "@vaadin/password-field": "$@vaadin/password-field", + "@vaadin/polymer-legacy-adapter": "$@vaadin/polymer-legacy-adapter", + "@vaadin/progress-bar": "$@vaadin/progress-bar", + "@vaadin/radio-group": "$@vaadin/radio-group", + "@vaadin/scroller": "$@vaadin/scroller", + "@vaadin/select": "$@vaadin/select", + "@vaadin/side-nav": "$@vaadin/side-nav", + "@vaadin/split-layout": "$@vaadin/split-layout", + "@vaadin/tabs": "$@vaadin/tabs", + "@vaadin/tabsheet": "$@vaadin/tabsheet", + "@vaadin/text-area": "$@vaadin/text-area", + "@vaadin/text-field": "$@vaadin/text-field", + "@vaadin/time-picker": "$@vaadin/time-picker", + "@vaadin/tooltip": "$@vaadin/tooltip", + "@vaadin/upload": "$@vaadin/upload", + "@vaadin/vaadin-development-mode-detector": "$@vaadin/vaadin-development-mode-detector", + "@vaadin/vaadin-lumo-styles": "$@vaadin/vaadin-lumo-styles", + "@vaadin/vaadin-material-styles": "$@vaadin/vaadin-material-styles", + "@vaadin/router": "$@vaadin/router", + "@vaadin/vaadin-usage-statistics": "$@vaadin/vaadin-usage-statistics", + "@vaadin/vertical-layout": "$@vaadin/vertical-layout", + "@vaadin/virtual-list": "$@vaadin/virtual-list", + "@polymer/polymer": "$@polymer/polymer", + "@xpertsea/paper-slider": "$@xpertsea/paper-slider", + "construct-style-sheets-polyfill": "$construct-style-sheets-polyfill", + "@vaadin/common-frontend": "$@vaadin/common-frontend", + "lit": "$lit", + "@vaadin/vaadin-themable-mixin": "$@vaadin/vaadin-themable-mixin", + "date-fns": "$date-fns", + "mobile-drag-drop": "$mobile-drag-drop", + "@vaadin/form": "$@vaadin/form" } } diff --git a/pom.xml b/pom.xml index 284f37d..207777b 100644 --- a/pom.xml +++ b/pom.xml @@ -14,13 +14,13 @@ UTF-8 UTF-8 - 19.0.9 + 24.2.0 org.springframework.boot spring-boot-starter-parent - 2.5.3 + 3.1.5 @@ -67,7 +67,7 @@ org.junit junit-bom - 5.7.0 + 5.10.0 pom import @@ -86,12 +86,12 @@ org.vaadin.artur a-vaadin-helper - 1.5.0 + 1.9.0 com.google.code.gson gson - 2.8.7 + 2.10.1 @@ -131,39 +131,39 @@ org.junit.jupiter junit-jupiter-api - 5.7.0 + 5.10.0 test org.junit.jupiter junit-jupiter-engine - 5.7.0 + 5.10.0 test nl.jqno.equalsverifier equalsverifier - 3.5.2 + 3.15.2 test org.junit.platform junit-platform-launcher - 1.7.0 + 1.10.0 test org.junit.vintage junit-vintage-engine - 5.7.0 + 5.10.0 test com.flowingcode.addons.carousel carousel-addon - 2.0.1 + 2.1.2 @@ -228,7 +228,7 @@ org.jacoco jacoco-maven-plugin - 0.8.6 + 0.8.11 pull-test-data @@ -336,7 +336,7 @@ org.jacoco org.jacoco.ant - 0.8.6 + 0.8.11 @@ -474,7 +474,7 @@ org.jacoco jacoco-maven-plugin - 0.8.6 + 0.8.11 diff --git a/shell.nix b/shell.nix index cda006f..51a865e 100644 --- a/shell.nix +++ b/shell.nix @@ -12,8 +12,8 @@ mkShell { nativeBuildInputs = [ file ripgrep - mavenJdk11 - nodejs-14_x + # mavenJdk11 + nodejs-18_x which # required by Vaadin python3-with-my-packages ]; diff --git a/tsconfig.json b/tsconfig.json index 280cf89..1d3096d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,22 +1,39 @@ +// This TypeScript configuration file is generated by vaadin-maven-plugin. +// This is needed for TypeScript compiler to compile your TypeScript code in the project. +// It is recommended to commit this file to the VCS. +// You might want to change the configurations to fit your preferences +// For more information about the configurations, please refer to http://www.typescriptlang.org/docs/handbook/tsconfig-json.html { + "_version": "9", "compilerOptions": { "sourceMap": true, + "jsx": "react-jsx", "inlineSources": true, "module": "esNext", - "target": "es2017", - "moduleResolution": "node", + "target": "es2020", + "moduleResolution": "bundler", "strict": true, + "skipLibCheck": true, "noFallthroughCasesInSwitch": true, "noImplicitReturns": true, "noImplicitAny": true, "noImplicitThis": true, - "noUnusedParameters": true, - "experimentalDecorators": true + "noUnusedLocals": false, + "noUnusedParameters": false, + "experimentalDecorators": true, + "useDefineForClassFields": false, + "baseUrl": "frontend", + "paths": { + "@vaadin/flow-frontend": ["generated/jar-resources"], + "@vaadin/flow-frontend/*": ["generated/jar-resources/*"], + "Frontend/*": ["*"] + } }, "include": [ - "frontend/**/*.ts", - "frontend/index.js", + "frontend/**/*", "types.d.ts" ], - "exclude": [] + "exclude": [ + "frontend/generated/jar-resources/**" + ] } diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..4d6a022 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,9 @@ +import { UserConfigFn } from 'vite'; +import { overrideVaadinConfig } from './vite.generated'; + +const customConfig: UserConfigFn = (env) => ({ + // Here you can add custom Vite parameters + // https://vitejs.dev/config/ +}); + +export default overrideVaadinConfig(customConfig);