diff --git a/.gitignore b/.gitignore
index 499710c..529df9c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,52 @@
-/node_modules/
-/dist/
-/build/
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Maven files
+target/
+
+# Eclipse files
+.project
+.settings
+.classpath
+error-screenshots/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+*.logs
+*.iml
+.idea/
+.eclipse
+.vscode
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+node
+node_modules
package-lock.json
-analysis.json
-/next/
\ No newline at end of file
+package.json
+webpack.config.js
+webpack.generated.js
+
+autoselectcombobox-demo/frontend/index.html
+autoselectcombobox-demo/frontend/generated/index.ts
+autoselectcombobox-demo/frontend/generated/vaadin.ts
+autoselectcombobox-demo/frontend/generated/vaadin-featureflags.ts
+autoselectcombobox-demo/tsconfig.json
+autoselectcombobox-demo/types.d.ts
diff --git a/autoselectcombobox-demo/package.json b/autoselectcombobox-demo/package.json
index aee28be..b5eae24 100644
--- a/autoselectcombobox-demo/package.json
+++ b/autoselectcombobox-demo/package.json
@@ -2,184 +2,408 @@
"name": "no-name",
"license": "UNLICENSED",
"dependencies": {
- "@polymer/iron-a11y-announcer": "3.0.2",
- "@polymer/iron-a11y-keys-behavior": "3.0.1",
- "@polymer/iron-fit-behavior": "3.0.2",
- "@polymer/iron-flex-layout": "3.0.1",
"@polymer/iron-icon": "3.0.1",
"@polymer/iron-iconset-svg": "3.0.1",
"@polymer/iron-list": "3.1.0",
- "@polymer/iron-media-query": "3.0.1",
"@polymer/iron-meta": "3.0.1",
- "@polymer/iron-overlay-behavior": "3.0.3",
"@polymer/iron-resizable-behavior": "3.0.1",
- "@polymer/iron-scroll-target-behavior": "3.0.1",
- "@polymer/polymer": "3.2.0",
- "@vaadin-component-factory/vcf-auto-select-combobox": "14.8.7",
- "@vaadin/vaadin-accordion": "1.2.0",
- "@vaadin/vaadin-app-layout": "2.2.0",
- "@vaadin/vaadin-avatar": "1.0.4",
- "@vaadin/vaadin-board": "2.2.0",
- "@vaadin/vaadin-button": "2.4.0",
- "@vaadin/vaadin-charts": "6.3.3",
- "@vaadin/vaadin-checkbox": "2.5.1",
- "@vaadin/vaadin-combo-box": "5.4.12",
- "@vaadin/vaadin-confirm-dialog": "1.3.0",
- "@vaadin/vaadin-context-menu": "4.6.0",
- "@vaadin/vaadin-control-state-mixin": "2.2.6",
- "@vaadin/vaadin-cookie-consent": "1.2.0",
- "@vaadin/vaadin-core-shrinkwrap": "14.8.6",
- "@vaadin/vaadin-crud": "1.3.1",
- "@vaadin/vaadin-custom-field": "1.3.1",
- "@vaadin/vaadin-date-picker": "4.4.2",
- "@vaadin/vaadin-date-time-picker": "1.4.0",
- "@vaadin/vaadin-details": "1.2.1",
+ "@polymer/polymer": "3.4.1",
+ "@vaadin-component-factory/vcf-auto-select-combobox": "15.0.0",
+ "@vaadin/accordion": "23.1.2",
+ "@vaadin/app-layout": "23.1.2",
+ "@vaadin/avatar": "23.1.2",
+ "@vaadin/avatar-group": "23.1.2",
+ "@vaadin/board": "23.1.2",
+ "@vaadin/bundles": "23.1.2",
+ "@vaadin/button": "23.1.2",
+ "@vaadin/charts": "23.1.2",
+ "@vaadin/checkbox": "23.1.2",
+ "@vaadin/checkbox-group": "23.1.2",
+ "@vaadin/combo-box": "23.1.2",
+ "@vaadin/common-frontend": "0.0.17",
+ "@vaadin/component-base": "23.1.2",
+ "@vaadin/confirm-dialog": "23.1.2",
+ "@vaadin/context-menu": "23.1.2",
+ "@vaadin/cookie-consent": "23.1.2",
+ "@vaadin/crud": "23.1.2",
+ "@vaadin/custom-field": "23.1.2",
+ "@vaadin/date-picker": "23.1.2",
+ "@vaadin/date-time-picker": "23.1.2",
+ "@vaadin/details": "23.1.2",
+ "@vaadin/dialog": "23.1.2",
+ "@vaadin/email-field": "23.1.2",
+ "@vaadin/field-base": "23.1.2",
+ "@vaadin/field-highlighter": "23.1.0",
+ "@vaadin/flow-frontend": "./target/flow-frontend",
+ "@vaadin/form-layout": "23.1.2",
+ "@vaadin/grid": "23.1.2",
+ "@vaadin/grid-pro": "23.1.2",
+ "@vaadin/horizontal-layout": "23.1.2",
+ "@vaadin/icon": "23.1.2",
+ "@vaadin/icons": "23.1.2",
+ "@vaadin/input-container": "23.1.2",
+ "@vaadin/integer-field": "23.1.2",
+ "@vaadin/item": "23.1.2",
+ "@vaadin/list-box": "23.1.2",
+ "@vaadin/lit-renderer": "23.1.2",
+ "@vaadin/login": "23.1.2",
+ "@vaadin/map": "23.1.2",
+ "@vaadin/menu-bar": "23.1.2",
+ "@vaadin/message-input": "23.1.2",
+ "@vaadin/message-list": "23.1.2",
+ "@vaadin/notification": "23.1.2",
+ "@vaadin/number-field": "23.1.2",
+ "@vaadin/password-field": "23.1.2",
+ "@vaadin/polymer-legacy-adapter": "23.1.2",
+ "@vaadin/progress-bar": "23.1.2",
+ "@vaadin/radio-group": "23.1.2",
+ "@vaadin/rich-text-editor": "23.1.2",
+ "@vaadin/router": "1.7.4",
+ "@vaadin/scroller": "23.1.2",
+ "@vaadin/select": "23.1.2",
+ "@vaadin/split-layout": "23.1.2",
+ "@vaadin/tabs": "23.1.2",
+ "@vaadin/text-area": "23.1.2",
+ "@vaadin/text-field": "23.1.2",
+ "@vaadin/time-picker": "23.1.2",
+ "@vaadin/upload": "23.1.2",
+ "@vaadin/vaadin-accordion": "23.1.2",
+ "@vaadin/vaadin-app-layout": "23.1.2",
+ "@vaadin/vaadin-avatar": "23.1.2",
+ "@vaadin/vaadin-board": "23.1.2",
+ "@vaadin/vaadin-button": "23.1.2",
+ "@vaadin/vaadin-charts": "23.1.2",
+ "@vaadin/vaadin-checkbox": "23.1.2",
+ "@vaadin/vaadin-combo-box": "23.1.2",
+ "@vaadin/vaadin-confirm-dialog": "23.1.2",
+ "@vaadin/vaadin-context-menu": "23.1.2",
+ "@vaadin/vaadin-cookie-consent": "23.1.2",
+ "@vaadin/vaadin-crud": "23.1.2",
+ "@vaadin/vaadin-custom-field": "23.1.2",
+ "@vaadin/vaadin-date-picker": "23.1.2",
+ "@vaadin/vaadin-date-time-picker": "23.1.2",
+ "@vaadin/vaadin-details": "23.1.2",
"@vaadin/vaadin-development-mode-detector": "2.0.5",
- "@vaadin/vaadin-dialog": "2.6.0",
- "@vaadin/vaadin-element-mixin": "2.4.2",
- "@vaadin/vaadin-form-layout": "2.3.0",
- "@vaadin/vaadin-grid": "5.9.3",
- "@vaadin/vaadin-grid-pro": "2.3.0",
- "@vaadin/vaadin-icons": "4.3.2",
- "@vaadin/vaadin-item": "2.3.0",
- "@vaadin/vaadin-list-box": "1.4.0",
- "@vaadin/vaadin-list-mixin": "2.5.1",
- "@vaadin/vaadin-login": "1.2.0",
- "@vaadin/vaadin-lumo-styles": "1.6.1",
- "@vaadin/vaadin-material-styles": "1.3.2",
- "@vaadin/vaadin-menu-bar": "1.3.0",
- "@vaadin/vaadin-messages": "1.0.2",
- "@vaadin/vaadin-notification": "1.6.2",
- "@vaadin/vaadin-ordered-layout": "1.4.0",
- "@vaadin/vaadin-overlay": "3.5.1",
- "@vaadin/vaadin-progress-bar": "1.3.0",
- "@vaadin/vaadin-radio-button": "1.5.4",
- "@vaadin/vaadin-rich-text-editor": "1.3.1",
- "@vaadin/vaadin-select": "2.4.3",
- "@vaadin/vaadin-shrinkwrap": "14.8.6",
- "@vaadin/vaadin-split-layout": "4.3.1",
- "@vaadin/vaadin-tabs": "3.2.0",
- "@vaadin/vaadin-text-field": "2.9.2",
- "@vaadin/vaadin-themable-mixin": "1.6.2",
- "@vaadin/vaadin-time-picker": "2.4.0",
- "@vaadin/vaadin-upload": "4.4.3",
+ "@vaadin/vaadin-dialog": "23.1.2",
+ "@vaadin/vaadin-form-layout": "23.1.2",
+ "@vaadin/vaadin-grid": "23.1.2",
+ "@vaadin/vaadin-grid-pro": "23.1.2",
+ "@vaadin/vaadin-icon": "23.1.2",
+ "@vaadin/vaadin-icons": "23.1.2",
+ "@vaadin/vaadin-item": "23.1.2",
+ "@vaadin/vaadin-list-box": "23.1.2",
+ "@vaadin/vaadin-list-mixin": "23.1.2",
+ "@vaadin/vaadin-login": "23.1.2",
+ "@vaadin/vaadin-lumo-styles": "23.1.2",
+ "@vaadin/vaadin-material-styles": "23.1.2",
+ "@vaadin/vaadin-menu-bar": "23.1.2",
+ "@vaadin/vaadin-messages": "23.1.2",
+ "@vaadin/vaadin-notification": "23.1.2",
+ "@vaadin/vaadin-ordered-layout": "23.1.2",
+ "@vaadin/vaadin-overlay": "23.1.2",
+ "@vaadin/vaadin-progress-bar": "23.1.2",
+ "@vaadin/vaadin-radio-button": "23.1.2",
+ "@vaadin/vaadin-rich-text-editor": "23.1.2",
+ "@vaadin/vaadin-select": "23.1.2",
+ "@vaadin/vaadin-split-layout": "23.1.2",
+ "@vaadin/vaadin-tabs": "23.1.2",
+ "@vaadin/vaadin-template-renderer": "23.1.2",
+ "@vaadin/vaadin-text-field": "23.1.2",
+ "@vaadin/vaadin-themable-mixin": "23.1.2",
+ "@vaadin/vaadin-time-picker": "23.1.2",
+ "@vaadin/vaadin-upload": "23.1.2",
"@vaadin/vaadin-usage-statistics": "2.1.2",
- "@webcomponents/shadycss": "1.8.0",
- "@webcomponents/webcomponentsjs": "^2.2.10",
- "construct-style-sheets-polyfill": "3.0.4",
- "lit-element": "2.5.1",
- "lit-html": "1.4.1"
+ "@vaadin/vaadin-virtual-list": "23.1.2",
+ "@vaadin/vertical-layout": "23.1.2",
+ "@vaadin/virtual-list": "23.1.2",
+ "construct-style-sheets-polyfill": "3.1.0",
+ "date-fns": "2.28.0",
+ "lit": "2.2.3"
},
"devDependencies": {
- "babel-loader": "8.2.2",
+ "async": "3.2.2",
"chokidar": "^3.5.0",
"compression-webpack-plugin": "4.0.1",
- "copy-webpack-plugin": "5.1.2",
- "css-loader": "4.2.1",
+ "css-loader": "5.2.7",
+ "esbuild-loader": "2.19.0",
"extra-watch-webpack-plugin": "1.0.3",
"extract-loader": "5.1.0",
- "file-loader": "6.1.0",
- "html-webpack-plugin": "4.5.2",
- "lit-css-loader": "0.0.4",
- "raw-loader": "3.1.0",
- "ts-loader": "8.0.12",
- "typescript": "4.0.3",
- "webpack": "4.42.0",
- "webpack-babel-multi-target-plugin": "2.5.0",
- "webpack-cli": "3.3.11",
- "webpack-dev-server": "3.11.0",
- "webpack-merge": "4.2.2"
+ "file-loader": "6.2.0",
+ "fork-ts-checker-webpack-plugin": "6.2.1",
+ "glob": "7.1.6",
+ "html-webpack-plugin": "4.5.1",
+ "lit-css-loader": "0.1.0",
+ "loader-utils": "2.0.0",
+ "typescript": "4.5.3",
+ "webpack": "4.46.0",
+ "webpack-cli": "4.10.0",
+ "webpack-dev-server": "4.9.2",
+ "webpack-merge": "4.2.2",
+ "workbox-core": "6.5.0",
+ "workbox-precaching": "6.5.0",
+ "workbox-webpack-plugin": "6.5.0"
},
"vaadin": {
"dependencies": {
- "@polymer/iron-a11y-announcer": "3.0.2",
- "@polymer/iron-a11y-keys-behavior": "3.0.1",
- "@polymer/iron-fit-behavior": "3.0.2",
- "@polymer/iron-flex-layout": "3.0.1",
"@polymer/iron-icon": "3.0.1",
"@polymer/iron-iconset-svg": "3.0.1",
"@polymer/iron-list": "3.1.0",
- "@polymer/iron-media-query": "3.0.1",
"@polymer/iron-meta": "3.0.1",
- "@polymer/iron-overlay-behavior": "3.0.3",
"@polymer/iron-resizable-behavior": "3.0.1",
- "@polymer/iron-scroll-target-behavior": "3.0.1",
- "@polymer/polymer": "3.2.0",
- "@vaadin-component-factory/vcf-auto-select-combobox": "14.8.7",
- "@vaadin/vaadin-accordion": "1.2.0",
- "@vaadin/vaadin-app-layout": "2.2.0",
- "@vaadin/vaadin-avatar": "1.0.4",
- "@vaadin/vaadin-board": "2.2.0",
- "@vaadin/vaadin-button": "2.4.0",
- "@vaadin/vaadin-charts": "6.3.3",
- "@vaadin/vaadin-checkbox": "2.5.1",
- "@vaadin/vaadin-combo-box": "5.4.12",
- "@vaadin/vaadin-confirm-dialog": "1.3.0",
- "@vaadin/vaadin-context-menu": "4.6.0",
- "@vaadin/vaadin-control-state-mixin": "2.2.6",
- "@vaadin/vaadin-cookie-consent": "1.2.0",
- "@vaadin/vaadin-core-shrinkwrap": "14.8.6",
- "@vaadin/vaadin-crud": "1.3.1",
- "@vaadin/vaadin-custom-field": "1.3.1",
- "@vaadin/vaadin-date-picker": "4.4.2",
- "@vaadin/vaadin-date-time-picker": "1.4.0",
- "@vaadin/vaadin-details": "1.2.1",
+ "@polymer/polymer": "3.4.1",
+ "@vaadin-component-factory/vcf-auto-select-combobox": "15.0.0",
+ "@vaadin/accordion": "23.1.2",
+ "@vaadin/app-layout": "23.1.2",
+ "@vaadin/avatar": "23.1.2",
+ "@vaadin/avatar-group": "23.1.2",
+ "@vaadin/board": "23.1.2",
+ "@vaadin/bundles": "23.1.2",
+ "@vaadin/button": "23.1.2",
+ "@vaadin/charts": "23.1.2",
+ "@vaadin/checkbox": "23.1.2",
+ "@vaadin/checkbox-group": "23.1.2",
+ "@vaadin/combo-box": "23.1.2",
+ "@vaadin/common-frontend": "0.0.17",
+ "@vaadin/component-base": "23.1.2",
+ "@vaadin/confirm-dialog": "23.1.2",
+ "@vaadin/context-menu": "23.1.2",
+ "@vaadin/cookie-consent": "23.1.2",
+ "@vaadin/crud": "23.1.2",
+ "@vaadin/custom-field": "23.1.2",
+ "@vaadin/date-picker": "23.1.2",
+ "@vaadin/date-time-picker": "23.1.2",
+ "@vaadin/details": "23.1.2",
+ "@vaadin/dialog": "23.1.2",
+ "@vaadin/email-field": "23.1.2",
+ "@vaadin/field-base": "23.1.2",
+ "@vaadin/field-highlighter": "23.1.0",
+ "@vaadin/form-layout": "23.1.2",
+ "@vaadin/grid": "23.1.2",
+ "@vaadin/grid-pro": "23.1.2",
+ "@vaadin/horizontal-layout": "23.1.2",
+ "@vaadin/icon": "23.1.2",
+ "@vaadin/icons": "23.1.2",
+ "@vaadin/input-container": "23.1.2",
+ "@vaadin/integer-field": "23.1.2",
+ "@vaadin/item": "23.1.2",
+ "@vaadin/list-box": "23.1.2",
+ "@vaadin/lit-renderer": "23.1.2",
+ "@vaadin/login": "23.1.2",
+ "@vaadin/map": "23.1.2",
+ "@vaadin/menu-bar": "23.1.2",
+ "@vaadin/message-input": "23.1.2",
+ "@vaadin/message-list": "23.1.2",
+ "@vaadin/notification": "23.1.2",
+ "@vaadin/number-field": "23.1.2",
+ "@vaadin/password-field": "23.1.2",
+ "@vaadin/polymer-legacy-adapter": "23.1.2",
+ "@vaadin/progress-bar": "23.1.2",
+ "@vaadin/radio-group": "23.1.2",
+ "@vaadin/rich-text-editor": "23.1.2",
+ "@vaadin/router": "1.7.4",
+ "@vaadin/scroller": "23.1.2",
+ "@vaadin/select": "23.1.2",
+ "@vaadin/split-layout": "23.1.2",
+ "@vaadin/tabs": "23.1.2",
+ "@vaadin/text-area": "23.1.2",
+ "@vaadin/text-field": "23.1.2",
+ "@vaadin/time-picker": "23.1.2",
+ "@vaadin/upload": "23.1.2",
+ "@vaadin/vaadin-accordion": "23.1.2",
+ "@vaadin/vaadin-app-layout": "23.1.2",
+ "@vaadin/vaadin-avatar": "23.1.2",
+ "@vaadin/vaadin-board": "23.1.2",
+ "@vaadin/vaadin-button": "23.1.2",
+ "@vaadin/vaadin-charts": "23.1.2",
+ "@vaadin/vaadin-checkbox": "23.1.2",
+ "@vaadin/vaadin-combo-box": "23.1.2",
+ "@vaadin/vaadin-confirm-dialog": "23.1.2",
+ "@vaadin/vaadin-context-menu": "23.1.2",
+ "@vaadin/vaadin-cookie-consent": "23.1.2",
+ "@vaadin/vaadin-crud": "23.1.2",
+ "@vaadin/vaadin-custom-field": "23.1.2",
+ "@vaadin/vaadin-date-picker": "23.1.2",
+ "@vaadin/vaadin-date-time-picker": "23.1.2",
+ "@vaadin/vaadin-details": "23.1.2",
"@vaadin/vaadin-development-mode-detector": "2.0.5",
- "@vaadin/vaadin-dialog": "2.6.0",
- "@vaadin/vaadin-element-mixin": "2.4.2",
- "@vaadin/vaadin-form-layout": "2.3.0",
- "@vaadin/vaadin-grid": "5.9.3",
- "@vaadin/vaadin-grid-pro": "2.3.0",
- "@vaadin/vaadin-icons": "4.3.2",
- "@vaadin/vaadin-item": "2.3.0",
- "@vaadin/vaadin-list-box": "1.4.0",
- "@vaadin/vaadin-list-mixin": "2.5.1",
- "@vaadin/vaadin-login": "1.2.0",
- "@vaadin/vaadin-lumo-styles": "1.6.1",
- "@vaadin/vaadin-material-styles": "1.3.2",
- "@vaadin/vaadin-menu-bar": "1.3.0",
- "@vaadin/vaadin-messages": "1.0.2",
- "@vaadin/vaadin-notification": "1.6.2",
- "@vaadin/vaadin-ordered-layout": "1.4.0",
- "@vaadin/vaadin-overlay": "3.5.1",
- "@vaadin/vaadin-progress-bar": "1.3.0",
- "@vaadin/vaadin-radio-button": "1.5.4",
- "@vaadin/vaadin-rich-text-editor": "1.3.1",
- "@vaadin/vaadin-select": "2.4.3",
- "@vaadin/vaadin-shrinkwrap": "14.8.6",
- "@vaadin/vaadin-split-layout": "4.3.1",
- "@vaadin/vaadin-tabs": "3.2.0",
- "@vaadin/vaadin-text-field": "2.9.2",
- "@vaadin/vaadin-themable-mixin": "1.6.2",
- "@vaadin/vaadin-time-picker": "2.4.0",
- "@vaadin/vaadin-upload": "4.4.3",
+ "@vaadin/vaadin-dialog": "23.1.2",
+ "@vaadin/vaadin-form-layout": "23.1.2",
+ "@vaadin/vaadin-grid": "23.1.2",
+ "@vaadin/vaadin-grid-pro": "23.1.2",
+ "@vaadin/vaadin-icon": "23.1.2",
+ "@vaadin/vaadin-icons": "23.1.2",
+ "@vaadin/vaadin-item": "23.1.2",
+ "@vaadin/vaadin-list-box": "23.1.2",
+ "@vaadin/vaadin-list-mixin": "23.1.2",
+ "@vaadin/vaadin-login": "23.1.2",
+ "@vaadin/vaadin-lumo-styles": "23.1.2",
+ "@vaadin/vaadin-material-styles": "23.1.2",
+ "@vaadin/vaadin-menu-bar": "23.1.2",
+ "@vaadin/vaadin-messages": "23.1.2",
+ "@vaadin/vaadin-notification": "23.1.2",
+ "@vaadin/vaadin-ordered-layout": "23.1.2",
+ "@vaadin/vaadin-overlay": "23.1.2",
+ "@vaadin/vaadin-progress-bar": "23.1.2",
+ "@vaadin/vaadin-radio-button": "23.1.2",
+ "@vaadin/vaadin-rich-text-editor": "23.1.2",
+ "@vaadin/vaadin-select": "23.1.2",
+ "@vaadin/vaadin-split-layout": "23.1.2",
+ "@vaadin/vaadin-tabs": "23.1.2",
+ "@vaadin/vaadin-template-renderer": "23.1.2",
+ "@vaadin/vaadin-text-field": "23.1.2",
+ "@vaadin/vaadin-themable-mixin": "23.1.2",
+ "@vaadin/vaadin-time-picker": "23.1.2",
+ "@vaadin/vaadin-upload": "23.1.2",
"@vaadin/vaadin-usage-statistics": "2.1.2",
- "@webcomponents/shadycss": "1.8.0",
- "@webcomponents/webcomponentsjs": "^2.2.10",
- "construct-style-sheets-polyfill": "3.0.4",
- "lit-element": "2.5.1",
- "lit-html": "1.4.1"
+ "@vaadin/vaadin-virtual-list": "23.1.2",
+ "@vaadin/vertical-layout": "23.1.2",
+ "@vaadin/virtual-list": "23.1.2",
+ "construct-style-sheets-polyfill": "3.1.0",
+ "date-fns": "2.28.0",
+ "lit": "2.2.3"
},
"devDependencies": {
- "babel-loader": "8.2.2",
+ "async": "3.2.2",
"chokidar": "^3.5.0",
"compression-webpack-plugin": "4.0.1",
- "copy-webpack-plugin": "5.1.2",
- "css-loader": "4.2.1",
+ "css-loader": "5.2.7",
+ "esbuild-loader": "2.19.0",
"extra-watch-webpack-plugin": "1.0.3",
"extract-loader": "5.1.0",
- "file-loader": "6.1.0",
- "html-webpack-plugin": "4.5.2",
- "lit-css-loader": "0.0.4",
- "raw-loader": "3.1.0",
- "ts-loader": "8.0.12",
- "typescript": "4.0.3",
- "webpack": "4.42.0",
- "webpack-babel-multi-target-plugin": "2.5.0",
- "webpack-cli": "3.3.11",
- "webpack-dev-server": "3.11.0",
- "webpack-merge": "4.2.2"
+ "file-loader": "6.2.0",
+ "fork-ts-checker-webpack-plugin": "6.2.1",
+ "glob": "7.1.6",
+ "html-webpack-plugin": "4.5.1",
+ "lit-css-loader": "0.1.0",
+ "loader-utils": "2.0.0",
+ "typescript": "4.5.3",
+ "webpack": "4.46.0",
+ "webpack-cli": "4.10.0",
+ "webpack-dev-server": "4.9.2",
+ "webpack-merge": "4.2.2",
+ "workbox-core": "6.5.0",
+ "workbox-precaching": "6.5.0",
+ "workbox-webpack-plugin": "6.5.0"
},
- "hash": "25906e8f46c0b87e55e375f3e930017783c6a4a5b4965b9d34d9ce6127350c30"
+ "hash": "120307ee79c6c0f68522358da82a54ac06bcb9e90e5e739c2a6aaf9f6b10e178"
+ },
+ "overrides": {
+ "@vaadin/bundles": "$@vaadin/bundles",
+ "@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/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",
+ "@polymer/iron-icon": "$@polymer/iron-icon",
+ "@polymer/iron-iconset-svg": "$@polymer/iron-iconset-svg",
+ "@polymer/iron-list": "$@polymer/iron-list",
+ "@polymer/iron-meta": "$@polymer/iron-meta",
+ "@polymer/iron-resizable-behavior": "$@polymer/iron-resizable-behavior",
+ "@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/notification": "$@vaadin/notification",
+ "@vaadin/number-field": "$@vaadin/number-field",
+ "@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/split-layout": "$@vaadin/split-layout",
+ "@vaadin/tabs": "$@vaadin/tabs",
+ "@vaadin/text-area": "$@vaadin/text-area",
+ "@vaadin/text-field": "$@vaadin/text-field",
+ "@vaadin/time-picker": "$@vaadin/time-picker",
+ "@vaadin/upload": "$@vaadin/upload",
+ "@vaadin/vaadin-accordion": "$@vaadin/vaadin-accordion",
+ "@vaadin/vaadin-app-layout": "$@vaadin/vaadin-app-layout",
+ "@vaadin/vaadin-avatar": "$@vaadin/vaadin-avatar",
+ "@vaadin/vaadin-button": "$@vaadin/vaadin-button",
+ "@vaadin/vaadin-checkbox": "$@vaadin/vaadin-checkbox",
+ "@vaadin/vaadin-combo-box": "$@vaadin/vaadin-combo-box",
+ "@vaadin/vaadin-context-menu": "$@vaadin/vaadin-context-menu",
+ "@vaadin/vaadin-custom-field": "$@vaadin/vaadin-custom-field",
+ "@vaadin/vaadin-date-picker": "$@vaadin/vaadin-date-picker",
+ "@vaadin/vaadin-date-time-picker": "$@vaadin/vaadin-date-time-picker",
+ "@vaadin/vaadin-details": "$@vaadin/vaadin-details",
+ "@vaadin/vaadin-development-mode-detector": "$@vaadin/vaadin-development-mode-detector",
+ "@vaadin/vaadin-dialog": "$@vaadin/vaadin-dialog",
+ "@vaadin/vaadin-form-layout": "$@vaadin/vaadin-form-layout",
+ "@vaadin/vaadin-grid": "$@vaadin/vaadin-grid",
+ "@vaadin/vaadin-icon": "$@vaadin/vaadin-icon",
+ "@vaadin/vaadin-icons": "$@vaadin/vaadin-icons",
+ "@vaadin/vaadin-item": "$@vaadin/vaadin-item",
+ "@vaadin/vaadin-list-box": "$@vaadin/vaadin-list-box",
+ "@vaadin/vaadin-list-mixin": "$@vaadin/vaadin-list-mixin",
+ "@vaadin/vaadin-login": "$@vaadin/vaadin-login",
+ "@vaadin/vaadin-lumo-styles": "$@vaadin/vaadin-lumo-styles",
+ "@vaadin/vaadin-material-styles": "$@vaadin/vaadin-material-styles",
+ "@vaadin/vaadin-menu-bar": "$@vaadin/vaadin-menu-bar",
+ "@vaadin/vaadin-messages": "$@vaadin/vaadin-messages",
+ "@vaadin/vaadin-notification": "$@vaadin/vaadin-notification",
+ "@vaadin/vaadin-ordered-layout": "$@vaadin/vaadin-ordered-layout",
+ "@vaadin/vaadin-overlay": "$@vaadin/vaadin-overlay",
+ "@vaadin/vaadin-progress-bar": "$@vaadin/vaadin-progress-bar",
+ "@vaadin/vaadin-radio-button": "$@vaadin/vaadin-radio-button",
+ "@vaadin/router": "$@vaadin/router",
+ "@vaadin/vaadin-select": "$@vaadin/vaadin-select",
+ "@vaadin/vaadin-split-layout": "$@vaadin/vaadin-split-layout",
+ "@vaadin/vaadin-tabs": "$@vaadin/vaadin-tabs",
+ "@vaadin/vaadin-template-renderer": "$@vaadin/vaadin-template-renderer",
+ "@vaadin/vaadin-text-field": "$@vaadin/vaadin-text-field",
+ "@vaadin/vaadin-themable-mixin": "$@vaadin/vaadin-themable-mixin",
+ "@vaadin/vaadin-time-picker": "$@vaadin/vaadin-time-picker",
+ "@vaadin/vaadin-upload": "$@vaadin/vaadin-upload",
+ "@vaadin/vaadin-usage-statistics": "$@vaadin/vaadin-usage-statistics",
+ "@vaadin/vaadin-virtual-list": "$@vaadin/vaadin-virtual-list",
+ "@vaadin/vertical-layout": "$@vaadin/vertical-layout",
+ "@vaadin/virtual-list": "$@vaadin/virtual-list",
+ "@vaadin/board": "$@vaadin/board",
+ "@vaadin/charts": "$@vaadin/charts",
+ "@vaadin/confirm-dialog": "$@vaadin/confirm-dialog",
+ "@vaadin/cookie-consent": "$@vaadin/cookie-consent",
+ "@vaadin/crud": "$@vaadin/crud",
+ "@vaadin/grid-pro": "$@vaadin/grid-pro",
+ "@vaadin/map": "$@vaadin/map",
+ "@vaadin/rich-text-editor": "$@vaadin/rich-text-editor",
+ "@vaadin/vaadin-board": "$@vaadin/vaadin-board",
+ "@vaadin/vaadin-charts": "$@vaadin/vaadin-charts",
+ "@vaadin/vaadin-confirm-dialog": "$@vaadin/vaadin-confirm-dialog",
+ "@vaadin/vaadin-cookie-consent": "$@vaadin/vaadin-cookie-consent",
+ "@vaadin/vaadin-crud": "$@vaadin/vaadin-crud",
+ "@vaadin/vaadin-grid-pro": "$@vaadin/vaadin-grid-pro",
+ "@vaadin/vaadin-rich-text-editor": "$@vaadin/vaadin-rich-text-editor",
+ "@polymer/polymer": "$@polymer/polymer",
+ "@vaadin-component-factory/vcf-auto-select-combobox": "$@vaadin-component-factory/vcf-auto-select-combobox",
+ "construct-style-sheets-polyfill": "$construct-style-sheets-polyfill",
+ "@vaadin/common-frontend": "$@vaadin/common-frontend",
+ "lit": "$lit",
+ "chokidar": "$chokidar",
+ "date-fns": "$date-fns"
}
}
diff --git a/autoselectcombobox-demo/pom.xml b/autoselectcombobox-demo/pom.xml
index 63f7b53..6f0bcdb 100644
--- a/autoselectcombobox-demo/pom.xml
+++ b/autoselectcombobox-demo/pom.xml
@@ -6,16 +6,15 @@
org.vaadin.addons.componentfactory
autoselectcombobox-demo
- 1.0.5
+ 2.0.0
war
- 14.8.6
-
- 1.8
- 1.8
+ 23.1.2
+ 11
+ 11
UTF-8
UTF-8
- 2.7.13
+ 9.0.1
9.4.28.v20200408
@@ -87,43 +86,20 @@
com.vaadin
-
- vaadin
-
-
-
- com.vaadin.webjar
- *
-
-
- org.webjars.bowergithub.insites
- *
-
-
- org.webjars.bowergithub.polymer
- *
-
-
- org.webjars.bowergithub.polymerelements
- *
-
-
- org.webjars.bowergithub.vaadin
- *
-
-
- org.webjars.bowergithub.webcomponents
- *
-
-
+ vaadin
org.slf4j
slf4j-simple
test
+
+
+ javax.servlet
+ javax.servlet-api
+ 3.1.0
+
+
com.vaadin
vaadin-testbench
@@ -142,18 +118,19 @@
+
- com.vaadin
- flow-component-demo-helpers
- ${flow.version}
- test
+ org.vaadin.addons.componentfactory
+ autoselectcombobox
+ ${project.version}
+
com.vaadin
flow-component-demo-helpers
- 2.7.13
- compile
+ ${flow.version}
+
@@ -214,10 +191,7 @@
3
- true
-
- jar
-
+ true
diff --git a/autoselectcombobox-demo/src/test/java/org/vaadin/addons/autoselectcombobox/AutoSelectComboBox.java b/autoselectcombobox-demo/src/test/java/org/vaadin/addons/autoselectcombobox/AutoSelectComboBox.java
deleted file mode 100644
index 4bed4ac..0000000
--- a/autoselectcombobox-demo/src/test/java/org/vaadin/addons/autoselectcombobox/AutoSelectComboBox.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.vaadin.addons.autoselectcombobox;
-
-import java.util.Collection;
-
-import com.vaadin.flow.component.Tag;
-import com.vaadin.flow.component.combobox.ComboBox;
-import com.vaadin.flow.component.dependency.JsModule;
-import com.vaadin.flow.component.dependency.NpmPackage;
-
-@Tag("vcf-auto-select-combo-box")
-@NpmPackage(value = "@vaadin-component-factory/vcf-auto-select-combobox", version="14.8.7")
-@JsModule("@vaadin-component-factory/vcf-auto-select-combobox/src/vcf-auto-select-combobox.js")
-public class AutoSelectComboBox extends ComboBox {
-
- public AutoSelectComboBox() {
- super();
- }
-
- public AutoSelectComboBox(int pageSize) {
- super(pageSize);
- }
-
- public AutoSelectComboBox(String label, Collection items) {
- super(label, items);
- }
-
- public AutoSelectComboBox(String label, T... items) {
- super(label, items);
- }
-
- public AutoSelectComboBox(String label) {
- super(label);
- }
-
-}
\ No newline at end of file
diff --git a/autoselectcombobox-demo/webpack.generated.js b/autoselectcombobox-demo/webpack.generated.js
index 01e6d4c..a2942b8 100644
--- a/autoselectcombobox-demo/webpack.generated.js
+++ b/autoselectcombobox-demo/webpack.generated.js
@@ -5,41 +5,57 @@
* This file will be overwritten on every run. Any custom changes should be made to webpack.config.js
*/
const fs = require('fs');
-const CopyWebpackPlugin = require('copy-webpack-plugin');
+const HtmlWebpackPlugin = require('html-webpack-plugin');
const CompressionPlugin = require('compression-webpack-plugin');
-const {BabelMultiTargetPlugin} = require('webpack-babel-multi-target-plugin');
+const { InjectManifest } = require('workbox-webpack-plugin');
+const { DefinePlugin } = require('webpack');
const ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin');
-
-// Flow plugins
-const StatsPlugin = require('@vaadin/stats-plugin');
-const ThemeLiveReloadPlugin = require('@vaadin/theme-live-reload-plugin');
-const { ApplicationThemePlugin, processThemeResources, extractThemeName, findParentThemes } = require('@vaadin/application-theme-plugin');
+const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
const path = require('path');
-const baseDir = path.resolve(__dirname);
-// the folder of app resources (main.js and flow templates)
// this matches /themes/my-theme/ and is used to check css url handling and file path build.
const themePartRegex = /(\\|\/)themes\1[\s\S]*?\1/;
-const frontendFolder = require('path').resolve(__dirname, 'frontend');
-
-const fileNameOfTheFlowGeneratedMainEntryPoint = require('path').resolve(__dirname, 'target/frontend/generated-flow-imports.js');
-const mavenOutputFolderForFlowBundledFiles = require('path').resolve(__dirname, 'target/classes/META-INF/VAADIN');
-
-const devmodeGizmoJS = '@vaadin/flow-frontend/VaadinDevmodeGizmo.js'
-
+// the folder of app resources:
+// - flow templates for classic Flow
+// - client code with index.html and index.[ts/js] for CCDM
+const frontendFolder = path.resolve(__dirname, 'frontend');
+const frontendGeneratedFolder = path.resolve(__dirname, 'frontend/generated');
+const fileNameOfTheFlowGeneratedMainEntryPoint = path.resolve(__dirname, 'target/frontend/generated-flow-imports.js');
+const mavenOutputFolderForFlowBundledFiles = path.resolve(__dirname, 'target/classes/META-INF/VAADIN/webapp');
+const mavenOutputFolderForResourceFiles = path.resolve(__dirname, 'target/classes/META-INF/VAADIN');
+const useClientSideIndexFileForBootstrapping = true;
+const clientSideIndexHTML = './index.html';
+const clientSideIndexEntryPoint = path.resolve(__dirname, 'frontend', 'generated/', 'vaadin.ts');;
+const pwaEnabled = false;
+const offlineEnabled = false;
+const offlinePath = 'offline.html';
+const clientServiceWorkerEntryPoint = path.resolve(__dirname, 'target/sw');
// public path for resources, must match Flow VAADIN_BUILD
+const VAADIN = 'VAADIN';
const build = 'build';
// public path for resources, must match the request used in flow to get the /build/stats.json file
const config = 'config';
-// folder for outputting index.js bundle, etc.
-const buildFolder = `${mavenOutputFolderForFlowBundledFiles}/${build}`;
+const outputFolder = mavenOutputFolderForFlowBundledFiles;
+const indexHtmlPath = 'index.html';
+// folder for outputting vaadin-bundle and other fragments
+const buildFolder = path.resolve(outputFolder, VAADIN, build);
// folder for outputting stats.json
-const confFolder = `${mavenOutputFolderForFlowBundledFiles}/${config}`;
+const confFolder = path.resolve(mavenOutputFolderForResourceFiles, config);
+const serviceWorkerPath = 'sw.js';
// file which is used by flow to read templates for server `@Id` binding
const statsFile = `${confFolder}/stats.json`;
+const buildDirectory = path.resolve(__dirname, 'target');
+
+// Flow plugins
+const BuildStatusPlugin = require(buildDirectory + '/plugins/build-status-plugin');
+const ThemeLiveReloadPlugin = require(buildDirectory + '/plugins/theme-live-reload-plugin');
+const { ApplicationThemePlugin, processThemeResources, extractThemeName, findParentThemes } = require(buildDirectory +
+ '/plugins/application-theme-plugin');
+const themeLoader = buildDirectory + '/plugins/theme-loader';
+
// Folders in the project which can contain static assets.
const projectStaticAssetsFolders = [
path.resolve(__dirname, 'src', 'main', 'resources', 'META-INF', 'resources'),
@@ -47,39 +63,38 @@ const projectStaticAssetsFolders = [
frontendFolder
];
-const projectStaticAssetsOutputFolder = require('path').resolve(__dirname, 'target/classes/META-INF/VAADIN/static');
+const projectStaticAssetsOutputFolder = path.resolve(__dirname, 'target/classes/META-INF/VAADIN/webapp/VAADIN/static');
// Folders in the project which can contain application themes
-const themeProjectFolders = projectStaticAssetsFolders.map((folder) =>
- path.resolve(folder, 'themes')
-);
+const themeProjectFolders = projectStaticAssetsFolders.map((folder) => path.resolve(folder, 'themes'));
+const tsconfigJsonFile = path.resolve(__dirname, 'tsconfig.json');
+const enableTypeScript = fs.existsSync(tsconfigJsonFile);
// Target flow-fronted auto generated to be the actual target folder
-const flowFrontendFolder = require('path').resolve(__dirname, 'target/frontend');
-
-// make sure that build folder exists before outputting anything
-const mkdirp = require('mkdirp');
-
-const devMode = process.argv.find(v => v.indexOf('webpack-dev-server') >= 0);
-
-!devMode && mkdirp(buildFolder);
-mkdirp(confFolder);
+const flowFrontendFolder = path.resolve(__dirname, 'target/flow-frontend');
+
+const statsSetViaCLI = process.argv.find((v) => v.indexOf('--stats') >= 0);
+const devMode = process.argv.find((v) => v.indexOf('webpack-dev-server') >= 0);
+if (!devMode) {
+ // make sure that build folder exists before outputting anything
+ const mkdirp = require('mkdirp');
+ mkdirp(buildFolder);
+ mkdirp(confFolder);
+}
let stats;
-const transpile = !devMode || process.argv.find(v => v.indexOf('--transpile-es5') >= 0);
-
-const watchDogPrefix = '--watchDogPort=';
-let watchDogPort = devMode && process.argv.find(v => v.indexOf(watchDogPrefix) >= 0);
-let client;
+// Open a connection with the Java dev-mode handler in order to finish
+// webpack-dev-mode when it exits or crashes.
+const watchDogPort = devMode && process.env.watchDogPort;
+const watchDogHost = (devMode && process.env.watchDogHost) || 'localhost';
if (watchDogPort) {
- watchDogPort = watchDogPort.substr(watchDogPrefix.length);
const runWatchDog = () => {
- client = new require('net').Socket();
+ const client = new require('net').Socket();
client.setEncoding('utf8');
- client.on('error', function () {
- console.log("Watchdog connection error. Terminating webpack process...");
+ client.on('error', function (err) {
+ console.log('Watchdog connection error. Terminating webpack process...', err);
client.destroy();
process.exit(0);
});
@@ -87,19 +102,80 @@ if (watchDogPort) {
client.destroy();
runWatchDog();
});
+ client.connect(watchDogPort, watchDogHost);
+ };
+ runWatchDog();
+}
- client.connect(watchDogPort, 'localhost');
+// Compute the entries that webpack have to visit
+const webPackEntries = {};
+if (useClientSideIndexFileForBootstrapping) {
+ webPackEntries.bundle = clientSideIndexEntryPoint;
+ const dirName = path.dirname(fileNameOfTheFlowGeneratedMainEntryPoint);
+ const baseName = path.basename(fileNameOfTheFlowGeneratedMainEntryPoint, '.js');
+ if (
+ fs
+ .readdirSync(dirName)
+ .filter((fileName) => !fileName.startsWith(baseName) && fileName.endsWith('.js') && fileName.includes('-')).length
+ ) {
+ // if there are vaadin exported views, add a second entry
+ webPackEntries.export = fileNameOfTheFlowGeneratedMainEntryPoint;
}
-
- runWatchDog();
+} else {
+ webPackEntries.bundle = fileNameOfTheFlowGeneratedMainEntryPoint;
}
+const appShellUrl = '.';
+let appShellManifestEntry = undefined;
+
+const swManifestTransform = (manifestEntries) => {
+ const warnings = [];
+ const manifest = manifestEntries;
+ if (useClientSideIndexFileForBootstrapping) {
+ // `index.html` is a special case: in contrast with the JS bundles produced by webpack
+ // it's not served as-is directly from the webpack output at `/index.html`.
+ // It goes through IndexHtmlRequestHandler and is served at `/`.
+ //
+ // TODO: calculate the revision based on the IndexHtmlRequestHandler-processed content
+ // of the index.html file
+ const indexEntryIdx = manifest.findIndex((entry) => entry.url === 'index.html');
+ if (indexEntryIdx !== -1) {
+ manifest[indexEntryIdx].url = appShellUrl;
+ appShellManifestEntry = manifest[indexEntryIdx];
+ } else {
+ // Index entry is only emitted on first compilation. Make sure it is cached also for incremental builds
+ manifest.push(appShellManifestEntry);
+ }
+ }
+ return { manifest, warnings };
+};
+
+const createServiceWorkerPlugin = function () {
+ return new InjectManifest({
+ swSrc: clientServiceWorkerEntryPoint,
+ swDest: serviceWorkerPath,
+ manifestTransforms: [swManifestTransform],
+ maximumFileSizeToCacheInBytes: 100 * 1024 * 1024,
+ dontCacheBustURLsMatching: /.*-[a-z0-9]{20}\.cache\.js/,
+ include: [
+ (chunk) => {
+ return true;
+ }
+ ],
+ webpackCompilationPlugins: [
+ new DefinePlugin({
+ VITE_ENABLED: 'false',
+ OFFLINE_PATH: JSON.stringify(offlinePath)
+ })
+ ]
+ });
+};
+
const flowFrontendThemesFolder = path.resolve(flowFrontendFolder, 'themes');
-const frontendGeneratedFolder = path.resolve(frontendFolder, "generated");
const themeOptions = {
devMode: devMode,
- // The following matches ./frontend/generated/theme.js
- // and for theme in JAR that is copied to target/frontend/themes/
+ // The following matches folder 'target/flow-frontend/themes/'
+ // (not 'frontend/themes') for theme in JAR that is copied there
themeResourceFolder: flowFrontendThemesFolder,
themeProjectFolders: themeProjectFolders,
projectStaticAssetsOutputFolder: projectStaticAssetsOutputFolder,
@@ -108,19 +184,21 @@ const themeOptions = {
let themeName = undefined;
let themeWatchFolders = undefined;
if (devMode) {
- // Current theme name is being extracted from theme.js located in
- // frontend/generated folder
+ // Current theme name is being extracted from theme.js located in frontend
+ // generated folder
themeName = extractThemeName(frontendGeneratedFolder);
const parentThemePaths = findParentThemes(themeName, themeOptions);
- const currentThemeFolders = [...projectStaticAssetsFolders
- .map((folder) => path.resolve(folder, "themes", themeName)),
- path.resolve(flowFrontendThemesFolder, themeName)];
+ const currentThemeFolders = [
+ ...projectStaticAssetsFolders.map((folder) => path.resolve(folder, 'themes', themeName)),
+ path.resolve(flowFrontendThemesFolder, themeName)
+ ];
// Watch the components folders for component styles update in both
// current theme and parent themes. Other folders or CSS files except
// 'styles.css' should be referenced from `styles.css` anyway, so no need
// to watch them.
- themeWatchFolders = [...currentThemeFolders, ...parentThemePaths]
- .map((themeFolder) => path.resolve(themeFolder, "components"));
+ themeWatchFolders = [...currentThemeFolders, ...parentThemePaths].map((themeFolder) =>
+ path.resolve(themeFolder, 'components')
+ );
}
const processThemeResourcesCallback = (logger) => processThemeResources(themeOptions, logger);
@@ -134,197 +212,185 @@ exports = {
module.exports = {
mode: 'production',
context: frontendFolder,
- entry: {
- bundle: fileNameOfTheFlowGeneratedMainEntryPoint,
- ...(devMode && { gizmo: devmodeGizmoJS })
- },
+ entry: webPackEntries,
output: {
- filename: `${build}/vaadin-[name]-[contenthash].cache.js`,
- path: mavenOutputFolderForFlowBundledFiles,
- publicPath: 'VAADIN/',
+ filename: `${VAADIN}/${build}/vaadin-[name]-[contenthash].cache.js`,
+ path: outputFolder
},
resolve: {
// Search for import 'x/y' inside these folders, used at least for importing an application theme
- modules: [
- 'node_modules',
- flowFrontendFolder,
- ...projectStaticAssetsFolders,
- ],
- extensions: ['.ts', '.js'],
+ modules: ['node_modules', flowFrontendFolder, ...projectStaticAssetsFolders],
+ extensions: [enableTypeScript && '.ts', '.js'].filter(Boolean),
alias: {
Frontend: frontendFolder
}
},
+ stats: devMode && !statsSetViaCLI ? 'errors-warnings' : 'normal', // Unclutter output in dev mode
+
devServer: {
- // webpack-dev-server serves ./ , webpack-generated, and java webapp
- contentBase: [mavenOutputFolderForFlowBundledFiles, 'src/main/webapp'],
- after: function(app, server) {
- app.get(`/stats.json`, function(req, res) {
- res.json(stats);
- });
- app.get(`/stats.hash`, function(req, res) {
- res.json(stats.hash.toString());
- });
- app.get(`/assetsByChunkName`, function(req, res) {
+ hot: false, // disable HMR
+ client: false, // disable wds client as we handle reloads and errors better
+ // webpack-dev-server serves ./, webpack-generated, and java webapp
+ static: [outputFolder, path.resolve(__dirname, 'src', 'main', 'webapp')],
+ setupMiddlewares: function (middlewares, devServer) {
+ devServer.app.get(`/assetsByChunkName`, function (req, res) {
res.json(stats.assetsByChunkName);
});
- app.get(`/stop`, function(req, res) {
+ devServer.app.get(`/stop`, function (req, res) {
// eslint-disable-next-line no-console
console.log("Stopped 'webpack-dev-server'");
process.exit(0);
});
+ return middlewares;
}
},
module: {
rules: [
- ...(transpile ? [
- {
- test: /\.tsx?$/,
- use: [ BabelMultiTargetPlugin.loader(), 'ts-loader' ],
- }
- ] : [{
- test: /\.tsx?$/,
- use: ['ts-loader']
- }]),
- ...(transpile ? [{ // Files that Babel has to transpile
- test: /\.js$/,
- use: [BabelMultiTargetPlugin.loader()]
- }] : []),
+ enableTypeScript && {
+ test: /\.ts$/,
+ loader: 'esbuild-loader',
+ options: {
+ loader: 'ts',
+ target: 'es2019'
+ }
+ },
{
test: /\.css$/i,
use: [
+ {
+ loader: 'lit-css-loader',
+ options: {
+ import: 'lit'
+ }
+ },
+ {
+ loader: 'extract-loader'
+ },
{
loader: 'css-loader',
options: {
url: (url, resourcePath) => {
- // css urls may contain query string or fragment identifiers
- // that should removed before resolving real path
- // e.g
- // ../webfonts/fa-solid-900.svg#fontawesome
- // ../webfonts/fa-brands-400.eot?#iefix
- if(url.includes('?'))
- url = url.substring(0, url.indexOf('?'));
- if(url.includes('#'))
- url = url.substring(0, url.indexOf('#'));
-
// Only translate files from node_modules
- const resolve = resourcePath.match(/(\\|\/)node_modules\1/)
- && fs.existsSync(path.resolve(path.dirname(resourcePath), url));
+ const resolve = resourcePath.match(/(\\|\/)node_modules\1/);
const themeResource = resourcePath.match(themePartRegex) && url.match(/^themes\/[\s\S]*?\//);
return resolve || themeResource;
},
// use theme-loader to also handle any imports in css files
importLoaders: 1
- },
+ }
},
{
// theme-loader will change any url starting with './' to start with 'VAADIN/static' instead
// NOTE! this loader should be here so it's run before css-loader as loaders are applied Right-To-Left
- loader: '@vaadin/theme-loader',
+ loader: themeLoader,
options: {
devMode: devMode
}
}
- ],
+ ]
},
{
// File-loader only copies files used as imports in .js files or handled by css-loader
test: /\.(png|gif|jpg|jpeg|svg|eot|woff|woff2|otf|ttf)$/,
- use: [{
- loader: 'file-loader',
- options: {
- outputPath: 'static/',
- name(resourcePath, resourceQuery) {
- if (resourcePath.match(/(\\|\/)node_modules\1/)) {
- return /(\\|\/)node_modules\1(?!.*node_modules)([\S]+)/.exec(resourcePath)[2].replace(/\\/g, "/");
- }
- if (resourcePath.match(/(\\|\/)frontend\1/)) {
- return /(\\|\/)frontend\1(?!.*frontend)([\S]+)/.exec(resourcePath)[2].replace(/\\/g, "/");
+ use: [
+ {
+ loader: 'file-loader',
+ options: {
+ outputPath: 'VAADIN/static/',
+ name(resourcePath, resourceQuery) {
+ if (resourcePath.match(/(\\|\/)node_modules\1/)) {
+ return /(\\|\/)node_modules\1(?!.*node_modules)([\S]+)/.exec(resourcePath)[2].replace(/\\/g, '/');
+ }
+ if (resourcePath.match(/(\\|\/)flow-frontend\1/)) {
+ return /(\\|\/)flow-frontend\1(?!.*flow-frontend)([\S]+)/.exec(resourcePath)[2].replace(/\\/g, '/');
+ }
+ return '[path][name].[ext]';
}
- return '[path][name].[ext]';
}
}
- }],
- },
- ]
+ ]
+ }
+ ].filter(Boolean)
},
performance: {
maxEntrypointSize: 2097152, // 2MB
maxAssetSize: 2097152 // 2MB
},
plugins: [
- // Generate compressed bundles when not devMode
- ...(devMode ? [] : [new CompressionPlugin()]),
-
- // Transpile with babel, and produce different bundles per browser
- ...(transpile ? [new BabelMultiTargetPlugin({
- babel: {
- plugins: [
- // workaround for Safari 10 scope issue (https://bugs.webkit.org/show_bug.cgi?id=159270)
- "@babel/plugin-transform-block-scoping",
+ new ApplicationThemePlugin(themeOptions),
- // Edge does not support spread '...' syntax in object literals (#7321)
- "@babel/plugin-proposal-object-rest-spread"
- ],
+ ...(devMode && themeName
+ ? [
+ new ExtraWatchWebpackPlugin({
+ files: [],
+ dirs: themeWatchFolders
+ }),
+ new ThemeLiveReloadPlugin(processThemeResourcesCallback)
+ ]
+ : []),
- presetOptions: {
- useBuiltIns: false // polyfills are provided from webcomponents-loader.js
- }
- },
- targets: {
- 'es6': { // Evergreen browsers
- browsers: [
- // It guarantees that babel outputs pure es6 in bundle and in stats.json
- // In the case of browsers no supporting certain feature it will be
- // covered by the webcomponents-loader.js
- 'last 1 Chrome major versions'
- ],
- },
- 'es5': { // IE11
- browsers: [
- 'ie 11'
- ],
- tagAssetsWithKey: true, // append a suffix to the file name
+ function (compiler) {
+ // V14 bootstrapping needs the bundle names
+ compiler.hooks.afterEmit.tapAsync('FlowStatsHelper', (compilation, done) => {
+ const st = compilation.getStats().toJson();
+ const modules = st.modules;
+ const nodeModulesFolders = modules
+ .map((module) => module.identifier)
+ .filter((id) => id.includes('node_modules'));
+ const npmModules = nodeModulesFolders
+ .map((id) => id.replace(/.*node_modules./, ''))
+ .map((id) => {
+ const parts = id.split('/');
+ if (id.startsWith('@')) {
+ return parts[0] + '/' + parts[1];
+ } else {
+ return parts[0];
+ }
+ })
+ .sort()
+ .filter((value, index, self) => self.indexOf(value) === index);
+
+ let miniStats = {
+ assetsByChunkName: st.assetsByChunkName,
+ npmModules: npmModules
+ };
+
+ if (!devMode) {
+ fs.writeFile(statsFile, JSON.stringify(miniStats, null, 1), () => done());
+ } else {
+ stats = miniStats;
+ done();
}
- }
- })] : []),
+ });
+ },
- new ApplicationThemePlugin(themeOptions),
+ // Includes JS output bundles into "index.html"
+ useClientSideIndexFileForBootstrapping &&
+ new HtmlWebpackPlugin({
+ template: clientSideIndexHTML,
+ filename: indexHtmlPath,
+ inject: 'head',
+ scriptLoading: 'defer',
+ chunks: ['bundle']
+ }),
- ...(devMode && themeName ? [new ExtraWatchWebpackPlugin({
- files: [],
- dirs: themeWatchFolders
- }), new ThemeLiveReloadPlugin(processThemeResourcesCallback)] : []),
+ // Service worker for offline
+ offlineEnabled && createServiceWorkerPlugin(),
- new StatsPlugin({
- devMode: devMode,
- statsFile: statsFile,
- setResults: function (statsFile) {
- stats = statsFile;
- }
- }),
+ // Generate compressed bundles when not devMode
+ !devMode && new CompressionPlugin(),
- // Generates the stats file for flow `@Id` binding.
- function (compiler) {
- compiler.hooks.done.tapAsync('FlowIdPlugin', (compilation, done) => {
- // trigger live reload via server
- if (client) {
- client.write('reload\n');
- }
- done();
- });
- },
+ enableTypeScript &&
+ new ForkTsCheckerWebpackPlugin({
+ typescript: {
+ configFile: tsconfigJsonFile
+ }
+ }),
- // Copy webcomponents polyfills. They are not bundled because they
- // have its own loader based on browser quirks.
- new CopyWebpackPlugin([{
- from: `${baseDir}/node_modules/@webcomponents/webcomponentsjs`,
- to: `${build}/webcomponentsjs/`,
- ignore: ['*.md', '*.json']
- }]),
- ]
+ new BuildStatusPlugin()
+ ].filter(Boolean)
};
diff --git a/autoselectcombobox/pom.xml b/autoselectcombobox/pom.xml
index 91ac778..8873d6d 100644
--- a/autoselectcombobox/pom.xml
+++ b/autoselectcombobox/pom.xml
@@ -3,17 +3,16 @@
org.vaadin.addons.componentfactory
autoselectcombobox
- 1.0.5
+ 2.0.0
AutoSelectComboBox
jar
- 14.8.6
+ 23.1.2
- 1.8
- 1.8
+ 11
+ 11
UTF-8
UTF-8
- 2.7.13
9.4.28.v20200408
@@ -86,80 +85,11 @@
com.vaadin
- vaadin-core
-
-
-
- com.vaadin.webjar
- *
-
-
- org.webjars.bowergithub.insites
- *
-
-
- org.webjars.bowergithub.polymer
- *
-
-
- org.webjars.bowergithub.polymerelements
- *
-
-
- org.webjars.bowergithub.vaadin
- *
-
-
- org.webjars.bowergithub.webcomponents
- *
-
-
-
-
- org.slf4j
- slf4j-simple
- test
-
-
- com.vaadin
- vaadin-testbench
- test
-
-
-
- io.github.bonigarcia
- webdrivermanager
- 3.8.1
- test
-
-
- org.jsoup
- jsoup
-
-
-
-
- com.vaadin
- flow-component-demo-helpers
- ${flow.version}
- test
-
+ vaadin-core
+
-
- jetty:run
-
-
- src/test/java
- false
-
-
- src/test/resources
- false
-
-
+
org.apache.maven.plugins
@@ -178,40 +108,6 @@
-
- com.vaadin
- vaadin-maven-plugin
- ${vaadin.version}
-
-
-
- prepare-frontend
-
-
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
- 3.3.2
-
- false
-
-
-
- org.eclipse.jetty
- jetty-maven-plugin
- ${jetty.version}
-
- 3
-
- true
-
- jar
-
-
-
diff --git a/autoselectcombobox/src/main/java/org/vaadin/addons/autoselectcombobox/AutoSelectComboBox.java b/autoselectcombobox/src/main/java/org/vaadin/addons/autoselectcombobox/AutoSelectComboBox.java
index 4bed4ac..ca70c0d 100644
--- a/autoselectcombobox/src/main/java/org/vaadin/addons/autoselectcombobox/AutoSelectComboBox.java
+++ b/autoselectcombobox/src/main/java/org/vaadin/addons/autoselectcombobox/AutoSelectComboBox.java
@@ -8,7 +8,7 @@
import com.vaadin.flow.component.dependency.NpmPackage;
@Tag("vcf-auto-select-combo-box")
-@NpmPackage(value = "@vaadin-component-factory/vcf-auto-select-combobox", version="14.8.7")
+@NpmPackage(value = "@vaadin-component-factory/vcf-auto-select-combobox", version="15.0.0")
@JsModule("@vaadin-component-factory/vcf-auto-select-combobox/src/vcf-auto-select-combobox.js")
public class AutoSelectComboBox extends ComboBox {
diff --git a/autoselectcombobox/webpack.generated.js b/autoselectcombobox/webpack.generated.js
deleted file mode 100644
index 01e6d4c..0000000
--- a/autoselectcombobox/webpack.generated.js
+++ /dev/null
@@ -1,330 +0,0 @@
-/**
- * NOTICE: this is an auto-generated file
- *
- * This file has been generated by the `flow:prepare-frontend` maven goal.
- * This file will be overwritten on every run. Any custom changes should be made to webpack.config.js
- */
-const fs = require('fs');
-const CopyWebpackPlugin = require('copy-webpack-plugin');
-const CompressionPlugin = require('compression-webpack-plugin');
-const {BabelMultiTargetPlugin} = require('webpack-babel-multi-target-plugin');
-const ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin');
-
-// Flow plugins
-const StatsPlugin = require('@vaadin/stats-plugin');
-const ThemeLiveReloadPlugin = require('@vaadin/theme-live-reload-plugin');
-const { ApplicationThemePlugin, processThemeResources, extractThemeName, findParentThemes } = require('@vaadin/application-theme-plugin');
-
-const path = require('path');
-const baseDir = path.resolve(__dirname);
-// the folder of app resources (main.js and flow templates)
-
-// this matches /themes/my-theme/ and is used to check css url handling and file path build.
-const themePartRegex = /(\\|\/)themes\1[\s\S]*?\1/;
-
-const frontendFolder = require('path').resolve(__dirname, 'frontend');
-
-const fileNameOfTheFlowGeneratedMainEntryPoint = require('path').resolve(__dirname, 'target/frontend/generated-flow-imports.js');
-const mavenOutputFolderForFlowBundledFiles = require('path').resolve(__dirname, 'target/classes/META-INF/VAADIN');
-
-const devmodeGizmoJS = '@vaadin/flow-frontend/VaadinDevmodeGizmo.js'
-
-// public path for resources, must match Flow VAADIN_BUILD
-const build = 'build';
-// public path for resources, must match the request used in flow to get the /build/stats.json file
-const config = 'config';
-// folder for outputting index.js bundle, etc.
-const buildFolder = `${mavenOutputFolderForFlowBundledFiles}/${build}`;
-// folder for outputting stats.json
-const confFolder = `${mavenOutputFolderForFlowBundledFiles}/${config}`;
-// file which is used by flow to read templates for server `@Id` binding
-const statsFile = `${confFolder}/stats.json`;
-
-// Folders in the project which can contain static assets.
-const projectStaticAssetsFolders = [
- path.resolve(__dirname, 'src', 'main', 'resources', 'META-INF', 'resources'),
- path.resolve(__dirname, 'src', 'main', 'resources', 'static'),
- frontendFolder
-];
-
-const projectStaticAssetsOutputFolder = require('path').resolve(__dirname, 'target/classes/META-INF/VAADIN/static');
-
-// Folders in the project which can contain application themes
-const themeProjectFolders = projectStaticAssetsFolders.map((folder) =>
- path.resolve(folder, 'themes')
-);
-
-
-// Target flow-fronted auto generated to be the actual target folder
-const flowFrontendFolder = require('path').resolve(__dirname, 'target/frontend');
-
-// make sure that build folder exists before outputting anything
-const mkdirp = require('mkdirp');
-
-const devMode = process.argv.find(v => v.indexOf('webpack-dev-server') >= 0);
-
-!devMode && mkdirp(buildFolder);
-mkdirp(confFolder);
-
-let stats;
-
-const transpile = !devMode || process.argv.find(v => v.indexOf('--transpile-es5') >= 0);
-
-const watchDogPrefix = '--watchDogPort=';
-let watchDogPort = devMode && process.argv.find(v => v.indexOf(watchDogPrefix) >= 0);
-let client;
-if (watchDogPort) {
- watchDogPort = watchDogPort.substr(watchDogPrefix.length);
- const runWatchDog = () => {
- client = new require('net').Socket();
- client.setEncoding('utf8');
- client.on('error', function () {
- console.log("Watchdog connection error. Terminating webpack process...");
- client.destroy();
- process.exit(0);
- });
- client.on('close', function () {
- client.destroy();
- runWatchDog();
- });
-
- client.connect(watchDogPort, 'localhost');
- }
-
- runWatchDog();
-}
-
-const flowFrontendThemesFolder = path.resolve(flowFrontendFolder, 'themes');
-const frontendGeneratedFolder = path.resolve(frontendFolder, "generated");
-const themeOptions = {
- devMode: devMode,
- // The following matches ./frontend/generated/theme.js
- // and for theme in JAR that is copied to target/frontend/themes/
- themeResourceFolder: flowFrontendThemesFolder,
- themeProjectFolders: themeProjectFolders,
- projectStaticAssetsOutputFolder: projectStaticAssetsOutputFolder,
- frontendGeneratedFolder: frontendGeneratedFolder
-};
-let themeName = undefined;
-let themeWatchFolders = undefined;
-if (devMode) {
- // Current theme name is being extracted from theme.js located in
- // frontend/generated folder
- themeName = extractThemeName(frontendGeneratedFolder);
- const parentThemePaths = findParentThemes(themeName, themeOptions);
- const currentThemeFolders = [...projectStaticAssetsFolders
- .map((folder) => path.resolve(folder, "themes", themeName)),
- path.resolve(flowFrontendThemesFolder, themeName)];
- // Watch the components folders for component styles update in both
- // current theme and parent themes. Other folders or CSS files except
- // 'styles.css' should be referenced from `styles.css` anyway, so no need
- // to watch them.
- themeWatchFolders = [...currentThemeFolders, ...parentThemePaths]
- .map((themeFolder) => path.resolve(themeFolder, "components"));
-}
-
-const processThemeResourcesCallback = (logger) => processThemeResources(themeOptions, logger);
-
-exports = {
- frontendFolder: `${frontendFolder}`,
- buildFolder: `${buildFolder}`,
- confFolder: `${confFolder}`
-};
-
-module.exports = {
- mode: 'production',
- context: frontendFolder,
- entry: {
- bundle: fileNameOfTheFlowGeneratedMainEntryPoint,
- ...(devMode && { gizmo: devmodeGizmoJS })
- },
-
- output: {
- filename: `${build}/vaadin-[name]-[contenthash].cache.js`,
- path: mavenOutputFolderForFlowBundledFiles,
- publicPath: 'VAADIN/',
- },
-
- resolve: {
- // Search for import 'x/y' inside these folders, used at least for importing an application theme
- modules: [
- 'node_modules',
- flowFrontendFolder,
- ...projectStaticAssetsFolders,
- ],
- extensions: ['.ts', '.js'],
- alias: {
- Frontend: frontendFolder
- }
- },
-
- devServer: {
- // webpack-dev-server serves ./ , webpack-generated, and java webapp
- contentBase: [mavenOutputFolderForFlowBundledFiles, 'src/main/webapp'],
- after: function(app, server) {
- app.get(`/stats.json`, function(req, res) {
- res.json(stats);
- });
- app.get(`/stats.hash`, function(req, res) {
- res.json(stats.hash.toString());
- });
- app.get(`/assetsByChunkName`, function(req, res) {
- res.json(stats.assetsByChunkName);
- });
- app.get(`/stop`, function(req, res) {
- // eslint-disable-next-line no-console
- console.log("Stopped 'webpack-dev-server'");
- process.exit(0);
- });
- }
- },
-
- module: {
- rules: [
- ...(transpile ? [
- {
- test: /\.tsx?$/,
- use: [ BabelMultiTargetPlugin.loader(), 'ts-loader' ],
- }
- ] : [{
- test: /\.tsx?$/,
- use: ['ts-loader']
- }]),
- ...(transpile ? [{ // Files that Babel has to transpile
- test: /\.js$/,
- use: [BabelMultiTargetPlugin.loader()]
- }] : []),
- {
- test: /\.css$/i,
- use: [
- {
- loader: 'css-loader',
- options: {
- url: (url, resourcePath) => {
- // css urls may contain query string or fragment identifiers
- // that should removed before resolving real path
- // e.g
- // ../webfonts/fa-solid-900.svg#fontawesome
- // ../webfonts/fa-brands-400.eot?#iefix
- if(url.includes('?'))
- url = url.substring(0, url.indexOf('?'));
- if(url.includes('#'))
- url = url.substring(0, url.indexOf('#'));
-
- // Only translate files from node_modules
- const resolve = resourcePath.match(/(\\|\/)node_modules\1/)
- && fs.existsSync(path.resolve(path.dirname(resourcePath), url));
- const themeResource = resourcePath.match(themePartRegex) && url.match(/^themes\/[\s\S]*?\//);
- return resolve || themeResource;
- },
- // use theme-loader to also handle any imports in css files
- importLoaders: 1
- },
- },
- {
- // theme-loader will change any url starting with './' to start with 'VAADIN/static' instead
- // NOTE! this loader should be here so it's run before css-loader as loaders are applied Right-To-Left
- loader: '@vaadin/theme-loader',
- options: {
- devMode: devMode
- }
- }
- ],
- },
- {
- // File-loader only copies files used as imports in .js files or handled by css-loader
- test: /\.(png|gif|jpg|jpeg|svg|eot|woff|woff2|otf|ttf)$/,
- use: [{
- loader: 'file-loader',
- options: {
- outputPath: 'static/',
- name(resourcePath, resourceQuery) {
- if (resourcePath.match(/(\\|\/)node_modules\1/)) {
- return /(\\|\/)node_modules\1(?!.*node_modules)([\S]+)/.exec(resourcePath)[2].replace(/\\/g, "/");
- }
- if (resourcePath.match(/(\\|\/)frontend\1/)) {
- return /(\\|\/)frontend\1(?!.*frontend)([\S]+)/.exec(resourcePath)[2].replace(/\\/g, "/");
- }
- return '[path][name].[ext]';
- }
- }
- }],
- },
- ]
- },
- performance: {
- maxEntrypointSize: 2097152, // 2MB
- maxAssetSize: 2097152 // 2MB
- },
- plugins: [
- // Generate compressed bundles when not devMode
- ...(devMode ? [] : [new CompressionPlugin()]),
-
- // Transpile with babel, and produce different bundles per browser
- ...(transpile ? [new BabelMultiTargetPlugin({
- babel: {
- plugins: [
- // workaround for Safari 10 scope issue (https://bugs.webkit.org/show_bug.cgi?id=159270)
- "@babel/plugin-transform-block-scoping",
-
- // Edge does not support spread '...' syntax in object literals (#7321)
- "@babel/plugin-proposal-object-rest-spread"
- ],
-
- presetOptions: {
- useBuiltIns: false // polyfills are provided from webcomponents-loader.js
- }
- },
- targets: {
- 'es6': { // Evergreen browsers
- browsers: [
- // It guarantees that babel outputs pure es6 in bundle and in stats.json
- // In the case of browsers no supporting certain feature it will be
- // covered by the webcomponents-loader.js
- 'last 1 Chrome major versions'
- ],
- },
- 'es5': { // IE11
- browsers: [
- 'ie 11'
- ],
- tagAssetsWithKey: true, // append a suffix to the file name
- }
- }
- })] : []),
-
- new ApplicationThemePlugin(themeOptions),
-
- ...(devMode && themeName ? [new ExtraWatchWebpackPlugin({
- files: [],
- dirs: themeWatchFolders
- }), new ThemeLiveReloadPlugin(processThemeResourcesCallback)] : []),
-
- new StatsPlugin({
- devMode: devMode,
- statsFile: statsFile,
- setResults: function (statsFile) {
- stats = statsFile;
- }
- }),
-
- // Generates the stats file for flow `@Id` binding.
- function (compiler) {
- compiler.hooks.done.tapAsync('FlowIdPlugin', (compilation, done) => {
- // trigger live reload via server
- if (client) {
- client.write('reload\n');
- }
- done();
- });
- },
-
- // Copy webcomponents polyfills. They are not bundled because they
- // have its own loader based on browser quirks.
- new CopyWebpackPlugin([{
- from: `${baseDir}/node_modules/@webcomponents/webcomponentsjs`,
- to: `${build}/webcomponentsjs/`,
- ignore: ['*.md', '*.json']
- }]),
- ]
-};
diff --git a/pom.xml b/pom.xml
index 406575f..ad0eb59 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,88 +1,89 @@
-
- 4.0.0
- org.vaadin.addons.componentfactory
- autoselectcombobox-root
- pom
- 1.0.5
-
- autoselectcombobox
- autoselectcombobox-demo
-
- autoselectcombobox-root
- http://maven.apache.org
-
- 14.8.6
+
+ 4.0.0
+ org.vaadin.addons.componentfactory
+ autoselectcombobox-root
+ pom
+ 2.0.0
+
+ autoselectcombobox
+ autoselectcombobox-demo
+
+ autoselectcombobox-root
+ http://maven.apache.org
+
+ 23.1.2
- 1.8
- 1.8
- UTF-8
- UTF-8
- 2.7.13
- 9.4.28.v20200408
-
-
- Vaadin Ltd
- https://vaadin.com/
-
-
-
- Apache 2
- http://www.apache.org/licenses/LICENSE-2.0.txt
- repo
-
-
-
-
-
- com.vaadin
- vaadin-bom
- pom
- import
- ${vaadin.version}
-
-
-
-
-
- central
- https://repo.maven.apache.org/maven2
-
- false
-
-
-
- Vaadin Directory
- https://maven.vaadin.com/vaadin-addons
-
-
-
- Vaadin prereleases
- https://maven.vaadin.com/vaadin-prereleases
-
-
-
- vaadin-snapshots
- https://oss.sonatype.org/content/repositories/vaadin-snapshots/
-
-
-
-
- central
- https://repo.maven.apache.org/maven2
-
- false
-
-
-
-
- Vaadin prereleases
- https://maven.vaadin.com/vaadin-prereleases
-
-
- vaadin-snapshots
- https://oss.sonatype.org/content/repositories/vaadin-snapshots/
- false
-
-
-
+ 11
+ 11
+ UTF-8
+ UTF-8
+ 2.7.13
+ 9.4.28.v20200408
+
+
+ Vaadin Ltd
+ https://vaadin.com/
+
+
+
+ Apache 2
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+
+
+
+
+
+ com.vaadin
+ vaadin-bom
+ pom
+ import
+ ${vaadin.version}
+
+
+
+
+
+ central
+ https://repo.maven.apache.org/maven2
+
+ false
+
+
+
+ Vaadin Directory
+ https://maven.vaadin.com/vaadin-addons
+
+
+
+ Vaadin prereleases
+ https://maven.vaadin.com/vaadin-prereleases
+
+
+
+ vaadin-snapshots
+ https://oss.sonatype.org/content/repositories/vaadin-snapshots/
+
+
+
+
+ central
+ https://repo.maven.apache.org/maven2
+
+ false
+
+
+
+
+ Vaadin prereleases
+ https://maven.vaadin.com/vaadin-prereleases
+
+
+ vaadin-snapshots
+ https://oss.sonatype.org/content/repositories/vaadin-snapshots/
+
+ false
+
+
+
+
\ No newline at end of file