@vcmap/ui 6.0.0-rc.2 → 6.0.0-rc.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/build.js +40 -60
- package/build/buildHelpers.js +62 -19
- package/build/bundle.js +1 -1
- package/build/info/conf.json +1 -1
- package/build/info/publish.js +25 -31
- package/build/lintTypes.js +5 -0
- package/config/base.config.json +2 -1
- package/config/dev.config.json +7 -1
- package/config/projects.config.json +2 -1
- package/config/splashscreen.config.json +45 -0
- package/config/www.config.json +25 -22
- package/dist/.htaccess +7 -0
- package/dist/assets/@mdi/font/README.md +25 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.min-680621ca.css +3 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
- package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/dist/assets/{cesium.0b750d.js → cesium-126f111a.js} +272 -385
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.cbf44a.js → core-1c8b8674.js} +2015 -2019
- package/dist/assets/core.js +1 -1
- package/dist/assets/{ol.86e93c.js → ol-27f9b3f3.js} +42521 -44394
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-7214428e.css +1 -0
- package/dist/assets/{ui.7c276c.js → ui-7214428e.js} +13968 -13907
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue-c78a5f76.js +6083 -0
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify.4d18fe.css → vuetify-88a2fabe.css} +2 -2
- package/dist/assets/{vuetify.4d18fe.js → vuetify-88a2fabe.js} +7793 -7940
- package/dist/assets/vuetify.js +1 -1
- package/dist/index.html +11 -10
- package/index.d.ts +11 -11
- package/index.html +5 -5
- package/index.js +9 -7
- package/lib/olLib.js +84 -23
- package/package.json +19 -19
- package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
- package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +71 -32
- package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
- package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
- package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +21 -8
- package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +18 -11
- package/plugins/@vcmap-show-case/search-example/src/index.js +1 -0
- package/plugins/@vcmap-show-case/search-example/src/searchImpl.js +35 -5
- package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
- package/plugins/@vcmap-show-case/toolbox-example/src/index.js +2 -1
- package/plugins/package.json +3 -23
- package/public/assets/@mdi/font/README.md +25 -0
- package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
- package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
- package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/src/actions/StyleSelector.vue +1 -1
- package/src/actions/actionHelper.js +33 -22
- package/src/actions/flightActions.js +5 -5
- package/src/actions/listActions.d.ts +4 -11
- package/src/actions/listActions.js +6 -22
- package/src/actions/stateRefAction.js +2 -2
- package/src/application/VcsApp.vue +147 -57
- package/src/application/VcsApp.vue.d.ts +298 -4
- package/src/application/VcsAttributions.vue +2 -13
- package/src/application/VcsAttributionsFooter.vue +10 -11
- package/src/application/VcsContainer.vue +26 -9
- package/src/application/VcsContainer.vue.d.ts +237 -0
- package/src/application/VcsMainMap.vue +7 -7
- package/src/application/VcsMainMap.vue.d.ts +2 -2
- package/src/application/VcsNavbar.vue +5 -1
- package/src/application/VcsPositionDisplay.vue +8 -23
- package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
- package/src/application/VcsSettings.vue +10 -17
- package/src/application/VcsSplashScreen.vue +21 -40
- package/src/application/VcsSplashScreen.vue.d.ts +0 -2
- package/src/application/VcsTextPage.vue +12 -43
- package/src/application/VcsTextPage.vue.d.ts +4 -8
- package/src/application/VcsTextPageFooter.vue +23 -40
- package/src/components/buttons/VcsActionButtonList.vue +59 -3
- package/src/components/buttons/VcsActionButtonList.vue.d.ts +28 -0
- package/src/components/extent/VcsExtentEditor.vue +1 -1
- package/src/components/flight/VcsFlightAnchorsComponent.vue +63 -36
- package/src/components/flight/VcsFlightComponent.vue +16 -21
- package/src/components/flight/VcsFlightPlayer.vue +27 -5
- package/src/components/form-inputs-controls/VcsCheckbox.vue +9 -5
- package/src/components/form-inputs-controls/VcsChipArrayInput.vue +15 -13
- package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +3 -4
- package/src/components/form-inputs-controls/VcsCoordinate.vue +17 -4
- package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
- package/src/components/form-inputs-controls/VcsDatePicker.vue +34 -60
- package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +1 -63
- package/src/components/form-inputs-controls/VcsFileInput.vue +17 -18
- package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsLabel.vue +1 -1
- package/src/components/form-inputs-controls/VcsRadio.vue +17 -3
- package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +40 -31
- package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +5 -2
- package/src/components/form-inputs-controls/VcsSlider.vue +13 -1
- package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsTextArea.vue +27 -26
- package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsTextField.vue +20 -4
- package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +9 -0
- package/src/components/form-inputs-controls/VcsWizardStep.vue +3 -6
- package/src/components/form-inputs-controls/vcsTextField.scss +9 -12
- package/src/components/form-output/VcsFormattedNumber.vue +21 -5
- package/src/components/form-output/VcsFormattedNumber.vue.d.ts +9 -0
- package/src/components/form-output/VcsMarkdown.vue +15 -12
- package/src/components/form-output/VcsMarkdown.vue.d.ts +1 -0
- package/src/components/form-output/markdownHelper.d.ts +30 -0
- package/src/components/form-output/markdownHelper.js +398 -0
- package/src/components/import/VcsFileDrop.vue +8 -5
- package/src/components/import/VcsImportComponent.vue +4 -3
- package/src/components/import/VcsImportComponent.vue.d.ts +1 -2
- package/src/components/lists/VcsActionList.vue +11 -7
- package/src/components/lists/VcsList.vue +30 -52
- package/src/components/lists/VcsList.vue.d.ts +14 -59
- package/src/components/lists/{VcsListItem.vue → VcsListItemComponent.vue} +68 -22
- package/src/components/lists/VcsListItemComponent.vue.d.ts +69 -0
- package/src/components/lists/VcsTreeview.vue +43 -16
- package/src/components/lists/VcsTreeview.vue.d.ts +14 -3
- package/src/components/lists/VcsTreeviewLeaf.vue +15 -6
- package/src/components/lists/VcsTreeviewSearchbar.vue +2 -2
- package/src/components/notification/VcsHelp.vue +1 -1
- package/src/components/notification/VcsHelp.vue.d.ts +3 -2
- package/src/components/section/VcsExpansionPanel.vue +101 -0
- package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
- package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +10 -4
- package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +1 -2
- package/src/components/style/MenuWrapper.vue +24 -26
- package/src/components/style/MenuWrapper.vue.d.ts +4 -4
- package/src/components/style/VcsFillMenu.vue +9 -16
- package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
- package/src/components/style/VcsFillSelector.vue +13 -16
- package/src/components/style/VcsImageMenu.vue +8 -25
- package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
- package/src/components/style/VcsImageSelector.vue +102 -167
- package/src/components/style/VcsImageSelector.vue.d.ts +15 -15
- package/src/components/style/VcsStrokeMenu.vue +8 -15
- package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
- package/src/components/style/VcsStrokeSelector.vue +11 -18
- package/src/components/style/VcsTextMenu.vue +9 -12
- package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
- package/src/components/style/VcsTextSelector.vue +79 -95
- package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
- package/src/components/style/VcsVectorStyleComponent.vue +8 -19
- package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
- package/src/components/style/composables.d.ts +0 -14
- package/src/components/style/composables.js +0 -49
- package/src/components/tables/VcsDataTable.vue +28 -22
- package/src/components/tables/VcsTable.vue +45 -62
- package/src/components/tables/VcsTable.vue.d.ts +30 -17
- package/src/components/tables/VcsTableCell.vue +72 -0
- package/src/components/tables/VcsTableCell.vue.d.ts +13 -0
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +43 -9
- package/src/components/vector-properties/VcsFeatureTransforms.vue +5 -0
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +1 -1
- package/src/components/viewpoint/VcsViewpointComponent.vue +23 -10
- package/src/components/viewpoint/VcsViewpointEditor.vue +2 -1
- package/src/contentTree/LayerTree.vue +9 -27
- package/src/contentTree/LayerTree.vue.d.ts +1 -1
- package/src/contentTree/contentTreeCollection.d.ts +1 -0
- package/src/contentTree/contentTreeCollection.js +45 -11
- package/src/contentTree/contentTreeItem.d.ts +2 -2
- package/src/contentTree/contentTreeItem.js +7 -7
- package/src/featureInfo/BalloonComponent.vue +14 -15
- package/src/featureInfo/MarkdownBalloonComponent.vue +4 -2
- package/src/featureInfo/MarkdownBalloonComponent.vue.d.ts +2 -2
- package/src/featureInfo/abstractFeatureInfoView.d.ts +6 -0
- package/src/featureInfo/abstractFeatureInfoView.js +15 -7
- package/src/featureInfo/featureInfo.d.ts +5 -5
- package/src/featureInfo/featureInfo.js +59 -41
- package/src/featureInfo/iframeFeatureInfoView.d.ts +8 -2
- package/src/featureInfo/iframeFeatureInfoView.js +15 -5
- package/src/featureInfo/markdownBalloonFeatureInfoView.d.ts +1 -1
- package/src/featureInfo/markdownBalloonFeatureInfoView.js +5 -5
- package/src/featureInfo/markdownFeatureInfoView.d.ts +1 -1
- package/src/featureInfo/markdownFeatureInfoView.js +9 -11
- package/src/featureInfo/tableFeatureInfoView.js +13 -4
- package/src/init.d.ts +5 -38
- package/src/init.js +19 -18
- package/src/legend/StyleLegendItem.vue +4 -9
- package/src/legend/VcsLegend.vue +28 -54
- package/src/manager/buttonManager.js +4 -4
- package/src/manager/collectionManager/CollectionComponent.vue +17 -42
- package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
- package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
- package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
- package/src/manager/collectionManager/CollectionComponentList.vue +11 -9
- package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +6 -4
- package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
- package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
- package/src/manager/collectionManager/CollectionManager.vue +1 -1
- package/src/manager/collectionManager/collectionComponentClass.d.ts +1 -1
- package/src/manager/collectionManager/collectionComponentClass.js +7 -10
- package/src/manager/collectionManager/collectionManager.js +10 -10
- package/src/manager/collectionManager/editorCollectionComponentClass.js +6 -5
- package/src/manager/contextMenu/contextMenuManager.js +2 -2
- package/src/manager/navbarManager.js +2 -2
- package/src/manager/panel/PanelComponent.vue +2 -9
- package/src/manager/panel/PanelManagerComponent.vue +7 -3
- package/src/manager/panel/panelHelper.js +3 -3
- package/src/manager/panel/panelManager.d.ts +9 -1
- package/src/manager/panel/panelManager.js +18 -6
- package/src/manager/toolbox/GroupToolboxComponent.vue +8 -4
- package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +1 -0
- package/src/manager/toolbox/SelectToolboxComponent.vue +7 -4
- package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +1 -0
- package/src/manager/toolbox/ToolboxManager.vue +9 -6
- package/src/manager/toolbox/ToolboxManager.vue.d.ts +1 -0
- package/src/manager/toolbox/toolboxManager.js +10 -10
- package/src/manager/window/WindowComponent.vue +12 -8
- package/src/manager/window/WindowComponentHeader.vue +29 -8
- package/src/manager/window/WindowComponentHeader.vue.d.ts +2 -0
- package/src/manager/window/WindowManager.vue +2 -2
- package/src/manager/window/windowManager.d.ts +2 -2
- package/src/manager/window/windowManager.js +4 -4
- package/src/navigation/MapNavigation.vue +20 -0
- package/src/navigation/locatorHelper.js +1 -1
- package/src/navigation/overviewMap.js +1 -1
- package/src/notifier/NotifierComponent.vue +18 -15
- package/src/search/ResultItem.vue +18 -6
- package/src/search/ResultsComponent.vue +31 -20
- package/src/search/ResultsComponent.vue.d.ts +2 -1
- package/src/search/SearchComponent.vue +8 -14
- package/src/search/SearchComponent.vue.d.ts +1 -0
- package/src/search/search.js +2 -2
- package/src/siteConfig.js +9 -9
- package/src/state.js +4 -4
- package/src/styles/_typography.scss +0 -2
- package/src/styles/main.scss +0 -4
- package/src/uiConfig.d.ts +300 -5
- package/src/uiConfig.js +28 -16
- package/src/vcsUiApp.d.ts +21 -17
- package/src/vcsUiApp.js +11 -10
- package/src/vuePlugins/vuetify.d.ts +2 -0
- package/src/vuePlugins/vuetify.js +14 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
- package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
- package/dist/assets/index-8eGauqjA.js +0 -1
- package/dist/assets/ui.7c276c.css +0 -1
- package/dist/assets/vue.a3cd64.js +0 -6096
- package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
- package/src/application/VcsCustomScreen.vue +0 -45
- package/src/application/VcsCustomScreen.vue.d.ts +0 -15
- package/src/application/markdownHelper.d.ts +0 -12
- package/src/application/markdownHelper.js +0 -70
- package/src/components/lists/VcsListItem.vue.d.ts +0 -21
- package/src/components/notification/VcsTooltip.vue +0 -156
- package/src/components/notification/VcsTooltip.vue.d.ts +0 -27
- package/src/featureInfo/MarkdownComponent.vue +0 -16
- package/src/featureInfo/MarkdownComponent.vue.d.ts +0 -7
- package/src/styles/_theming.scss +0 -73
- package/src/styles/settings.scss +0 -6
- package/src/styles/shades.scss +0 -4
- package/src/styles/variables.scss +0 -140
- package/src/styles/vcsFont.scss +0 -2
- package/src/styles/vcsGrid.scss +0 -3
- /package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
- /package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
- /package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
- /package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
- /package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
- /package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
- /package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
- /package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
- /package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
- /package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
- /package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
- /package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vcmap/ui",
|
3
|
-
"version": "6.0.0-rc.
|
3
|
+
"version": "6.0.0-rc.5",
|
4
4
|
"author": "Virtual City Systems",
|
5
5
|
"license": "MIT",
|
6
6
|
"scripts": {
|
@@ -45,47 +45,47 @@
|
|
45
45
|
],
|
46
46
|
"dependencies": {
|
47
47
|
"@intlify/core-base": "^9.13.1",
|
48
|
-
"@vcsuite/check": "^
|
48
|
+
"@vcsuite/check": "^2.1.0",
|
49
49
|
"@vcsuite/logger": "^1.0.1",
|
50
50
|
"@vcsuite/parsers": "^1.0.3",
|
51
51
|
"dompurify": "^3.1.6",
|
52
52
|
"fast-deep-equal": "^3.1.3",
|
53
|
-
"marked": "^
|
54
|
-
"semver": "^7.
|
53
|
+
"marked": "^14.0.0",
|
54
|
+
"semver": "^7.6.3",
|
55
55
|
"uuid": "^10.0.0",
|
56
56
|
"vue-i18n": "^9.13.1"
|
57
57
|
},
|
58
58
|
"peerDependencies": {
|
59
59
|
"@vcmap-cesium/engine": "^10.0.1",
|
60
|
-
"@vcmap/core": "
|
61
|
-
"ol": "^
|
62
|
-
"vue": "~3.4.
|
63
|
-
"vuetify": "^3.
|
60
|
+
"@vcmap/core": "6.0.0-rc.3",
|
61
|
+
"ol": "^10.0.0",
|
62
|
+
"vue": "~3.4.38",
|
63
|
+
"vuetify": "^3.7.0"
|
64
64
|
},
|
65
65
|
"devDependencies": {
|
66
66
|
"@histoire/plugin-vue": "^0.17.17",
|
67
67
|
"@vcmap/rollup-plugin-vcs-ol": "^1.0.2",
|
68
68
|
"@vcsuite/eslint-config": "^3.0.5",
|
69
|
-
"@vitejs/plugin-vue": "^5.
|
70
|
-
"@vitest/coverage-v8": "^
|
69
|
+
"@vitejs/plugin-vue": "^5.1.2",
|
70
|
+
"@vitest/coverage-v8": "^2.0.5",
|
71
71
|
"@vue/test-utils": "^2.4.6",
|
72
72
|
"eslint-import-resolver-alias": "^1.1.2",
|
73
73
|
"eslint-plugin-vuetify": "^2.4.0",
|
74
74
|
"histoire": "^0.17.17",
|
75
75
|
"jest-canvas-mock": "^2.5.2",
|
76
|
-
"jsdoc": "^
|
76
|
+
"jsdoc": "^4.0.3",
|
77
77
|
"jsdoc-plugin-intersection": "^1.0.4",
|
78
|
-
"jsdoc-plugin-typescript": "^2.
|
79
|
-
"jsdom": "^
|
78
|
+
"jsdoc-plugin-typescript": "^2.2.1",
|
79
|
+
"jsdom": "^24.1.1",
|
80
80
|
"resize-observer-polyfill": "1.5.1",
|
81
81
|
"rollup-plugin-strip-pragma": "^1.0.0",
|
82
|
-
"sass": "^1.77.
|
83
|
-
"tar": "^
|
82
|
+
"sass": "^1.77.8",
|
83
|
+
"tar": "^7.4.3",
|
84
84
|
"typescript": "^5.4.5",
|
85
|
-
"vite": "^5.
|
86
|
-
"vite-plugin-vuetify": "^2.0.
|
87
|
-
"vitest": "^
|
88
|
-
"vue-tsc": "^2.0.
|
85
|
+
"vite": "^5.4.1",
|
86
|
+
"vite-plugin-vuetify": "^2.0.4",
|
87
|
+
"vitest": "^2.0.5",
|
88
|
+
"vue-tsc": "^2.0.29"
|
89
89
|
},
|
90
90
|
"stylelint": {
|
91
91
|
"extends": "stylelint-config-standard",
|
@@ -17,7 +17,16 @@
|
|
17
17
|
|
18
18
|
<script>
|
19
19
|
import { VSheet } from 'vuetify/components';
|
20
|
-
import {
|
20
|
+
import {
|
21
|
+
provide,
|
22
|
+
ref,
|
23
|
+
shallowRef,
|
24
|
+
nextTick,
|
25
|
+
toRaw,
|
26
|
+
isReactive,
|
27
|
+
reactive,
|
28
|
+
watch,
|
29
|
+
} from 'vue';
|
21
30
|
import { VcsFlightComponent, VcsFormButton } from '@vcmap/ui';
|
22
31
|
import { FlightInstance } from '@vcmap/core';
|
23
32
|
|
@@ -36,6 +45,37 @@
|
|
36
45
|
const hasFlightInstance = ref(true);
|
37
46
|
provide('flightInstance', flightInstance);
|
38
47
|
|
48
|
+
const obj = ref({
|
49
|
+
foo: {
|
50
|
+
bar: true,
|
51
|
+
array: [1, 2, 3],
|
52
|
+
obj: {
|
53
|
+
baz: 'abc',
|
54
|
+
},
|
55
|
+
},
|
56
|
+
});
|
57
|
+
console.log('obj', obj);
|
58
|
+
const raw = toRaw(obj);
|
59
|
+
console.log('toRaw obj', raw);
|
60
|
+
console.log('isReactive obj', isReactive(raw));
|
61
|
+
console.log('isReactive foo', isReactive(raw.foo));
|
62
|
+
console.log('isReactive array', isReactive(raw.array));
|
63
|
+
|
64
|
+
const props = reactive({
|
65
|
+
raw,
|
66
|
+
});
|
67
|
+
|
68
|
+
const internal = ref(structuredClone(toRaw(props.raw)));
|
69
|
+
|
70
|
+
watch(
|
71
|
+
internal,
|
72
|
+
(newObj) => {
|
73
|
+
console.log('watch', newObj);
|
74
|
+
},
|
75
|
+
{ deep: true },
|
76
|
+
);
|
77
|
+
internal.value.foo.array[2] = 5;
|
78
|
+
|
39
79
|
return {
|
40
80
|
hasFlightInstance,
|
41
81
|
async reset() {
|
@@ -20,13 +20,18 @@
|
|
20
20
|
<template #default>
|
21
21
|
<v-container class="py-0 px-1">
|
22
22
|
<v-row no-gutters>
|
23
|
-
<v-col
|
24
|
-
<VcsLabel
|
23
|
+
<v-col>
|
24
|
+
<VcsLabel
|
25
|
+
:disabled="disabled"
|
26
|
+
html-for="selectInput"
|
27
|
+
tooltip="labelTooltip"
|
28
|
+
>
|
25
29
|
{{ $t('form-inputs-example.select') }}
|
26
30
|
</VcsLabel>
|
27
31
|
</v-col>
|
28
|
-
<v-col
|
32
|
+
<v-col>
|
29
33
|
<VcsSelect
|
34
|
+
:disabled="disabled"
|
30
35
|
id="selectInput"
|
31
36
|
loading="primary"
|
32
37
|
:items="selectOptions"
|
@@ -37,12 +42,13 @@
|
|
37
42
|
</v-row>
|
38
43
|
<v-row no-gutters>
|
39
44
|
<v-col>
|
40
|
-
<VcsLabel html-for="conditionalInput">
|
45
|
+
<VcsLabel :disabled="disabled" html-for="conditionalInput">
|
41
46
|
ConditionalInput
|
42
47
|
</VcsLabel>
|
43
48
|
</v-col>
|
44
49
|
<v-col>
|
45
50
|
<VcsTextField
|
51
|
+
:disabled="disabled"
|
46
52
|
id="conditionalInput"
|
47
53
|
clearable
|
48
54
|
:rules="[
|
@@ -54,16 +60,24 @@
|
|
54
60
|
</v-col>
|
55
61
|
</v-row>
|
56
62
|
<v-row no-gutters>
|
57
|
-
<v-col
|
58
|
-
<
|
63
|
+
<v-col>
|
64
|
+
<VcsCheckbox :disabled="disabled" label="Checkbox"></VcsCheckbox>
|
65
|
+
</v-col>
|
66
|
+
</v-row>
|
67
|
+
<v-row no-gutters>
|
68
|
+
<v-col>
|
69
|
+
<VcsLabel :disabled="disabled" html-for="arrayInput">
|
70
|
+
Array Input
|
71
|
+
</VcsLabel>
|
59
72
|
</v-col>
|
60
73
|
</v-row>
|
61
74
|
<v-row no-gutters>
|
62
75
|
<v-col>
|
63
76
|
<VcsChipArrayInput
|
77
|
+
:disabled="disabled"
|
64
78
|
id="arrayInput"
|
65
79
|
type="number"
|
66
|
-
v-model="
|
80
|
+
v-model="state.arrayInput"
|
67
81
|
:rules="[arrayTest]"
|
68
82
|
/>
|
69
83
|
</v-col>
|
@@ -71,6 +85,7 @@
|
|
71
85
|
<v-row no-gutters>
|
72
86
|
<v-col>
|
73
87
|
<VcsChipArrayInput
|
88
|
+
:disabled="disabled"
|
74
89
|
id="arrayInput"
|
75
90
|
v-model="state.arrayInputString"
|
76
91
|
column
|
@@ -80,6 +95,7 @@
|
|
80
95
|
<v-row no-gutters>
|
81
96
|
<v-col>
|
82
97
|
<VcsTextField
|
98
|
+
:disabled="disabled"
|
83
99
|
v-model="state.initialTextInput"
|
84
100
|
:rules="[isValidText]"
|
85
101
|
:loading="
|
@@ -98,7 +114,7 @@
|
|
98
114
|
<v-row no-gutters>
|
99
115
|
<v-col>
|
100
116
|
<VcsTextArea
|
101
|
-
:
|
117
|
+
:disabled="disabled"
|
102
118
|
:rules="[(v) => !!v || 'text area must not be empty']"
|
103
119
|
placeholder="This is a text area"
|
104
120
|
tooltip="This is a tooltip"
|
@@ -108,10 +124,13 @@
|
|
108
124
|
</v-row>
|
109
125
|
<v-row no-gutters>
|
110
126
|
<v-col>
|
111
|
-
<VcsLabel html-for="emailInput" required>
|
127
|
+
<VcsLabel :disabled="disabled" html-for="emailInput" required>
|
128
|
+
Email
|
129
|
+
</VcsLabel>
|
112
130
|
</v-col>
|
113
131
|
<v-col>
|
114
132
|
<VcsTextField
|
133
|
+
:disabled="disabled"
|
115
134
|
id="emailInput"
|
116
135
|
type="email"
|
117
136
|
:rules="[isValidEmail]"
|
@@ -122,10 +141,13 @@
|
|
122
141
|
</v-row>
|
123
142
|
<v-row no-gutters>
|
124
143
|
<v-col>
|
125
|
-
<VcsLabel html-for="prependedInput">
|
144
|
+
<VcsLabel :disabled="disabled" html-for="prependedInput">
|
145
|
+
String With Icon
|
146
|
+
</VcsLabel>
|
126
147
|
</v-col>
|
127
148
|
<v-col>
|
128
149
|
<VcsTextField
|
150
|
+
:disabled="disabled"
|
129
151
|
id="prependedInput"
|
130
152
|
prepend-icon="mdi-map-marker"
|
131
153
|
v-model="state.prependedInput"
|
@@ -135,10 +157,13 @@
|
|
135
157
|
</v-row>
|
136
158
|
<v-row no-gutters>
|
137
159
|
<v-col>
|
138
|
-
<VcsLabel html-for="fileInput">
|
160
|
+
<VcsLabel :disabled="disabled" html-for="fileInput">
|
161
|
+
File input
|
162
|
+
</VcsLabel>
|
139
163
|
</v-col>
|
140
164
|
<v-col>
|
141
165
|
<VcsFileInput
|
166
|
+
:disabled="disabled"
|
142
167
|
id="fileInput"
|
143
168
|
multiple
|
144
169
|
tooltip="Click to select a file."
|
@@ -148,10 +173,12 @@
|
|
148
173
|
</v-row>
|
149
174
|
<v-row no-gutters>
|
150
175
|
<v-col>
|
151
|
-
<VcsLabel html-for="dateInput">
|
176
|
+
<VcsLabel :disabled="disabled" html-for="dateInput">
|
177
|
+
Date
|
178
|
+
</VcsLabel>
|
152
179
|
</v-col>
|
153
180
|
<v-col>
|
154
|
-
<VcsDatePicker
|
181
|
+
<VcsDatePicker :disabled="disabled" id="dateInput" />
|
155
182
|
</v-col>
|
156
183
|
</v-row>
|
157
184
|
</v-container>
|
@@ -165,10 +192,13 @@
|
|
165
192
|
<v-container class="py-0 px-1">
|
166
193
|
<v-row no-gutters>
|
167
194
|
<v-col>
|
168
|
-
<VcsLabel html-for="numberInput">
|
195
|
+
<VcsLabel :disabled="disabled" html-for="numberInput">
|
196
|
+
NumberInput
|
197
|
+
</VcsLabel>
|
169
198
|
</v-col>
|
170
199
|
<v-col>
|
171
200
|
<VcsTextField
|
201
|
+
:disabled="disabled"
|
172
202
|
id="numberInput"
|
173
203
|
type="number"
|
174
204
|
step="1"
|
@@ -180,12 +210,14 @@
|
|
180
210
|
</v-row>
|
181
211
|
<v-row no-gutters class="align-center">
|
182
212
|
<v-col>
|
183
|
-
<VcsLabel html-for="sliderInput">
|
213
|
+
<VcsLabel :disabled="disabled" html-for="sliderInput">
|
214
|
+
Slider
|
215
|
+
</VcsLabel>
|
184
216
|
</v-col>
|
185
217
|
<v-col>
|
186
218
|
<VcsSlider
|
219
|
+
:disabled="disabled"
|
187
220
|
id="sliderInput"
|
188
|
-
:dense="dense"
|
189
221
|
type="number"
|
190
222
|
step="1"
|
191
223
|
v-model.number="state.numberInput"
|
@@ -194,53 +226,53 @@
|
|
194
226
|
</v-row>
|
195
227
|
<v-row no-gutters>
|
196
228
|
<v-col>
|
197
|
-
<VcsLabel html-for="formattedNumber">
|
229
|
+
<VcsLabel :disabled="disabled" html-for="formattedNumber">
|
198
230
|
VcsFormattedNumber
|
199
231
|
</VcsLabel>
|
200
232
|
</v-col>
|
201
233
|
<v-col class="d-flex justify-end">
|
202
234
|
<VcsFormattedNumber
|
235
|
+
:disabled="disabled"
|
203
236
|
id="formattedNumber"
|
204
237
|
:value="state.numberInput"
|
205
238
|
unit="cm"
|
206
239
|
:fraction-digits="1"
|
207
|
-
:dense="dense"
|
208
240
|
/>
|
209
241
|
</v-col>
|
210
242
|
</v-row>
|
211
243
|
<v-row no-gutters class="gc-2">
|
212
244
|
<v-col>
|
213
245
|
<VcsFormattedNumber
|
246
|
+
:disabled="disabled"
|
214
247
|
id="formattedNumber"
|
215
248
|
:value="state.numberInput"
|
216
249
|
prefix="X"
|
217
250
|
unit="cm"
|
218
251
|
:fraction-digits="1"
|
219
|
-
:dense="dense"
|
220
252
|
/>
|
221
253
|
</v-col>
|
222
254
|
<v-col>
|
223
255
|
<VcsFormattedNumber
|
256
|
+
:disabled="disabled"
|
224
257
|
id="formattedNumber"
|
225
258
|
:value="state.numberInput"
|
226
259
|
prefix="Y"
|
227
260
|
unit="cm"
|
228
261
|
:fraction-digits="1"
|
229
|
-
:dense="dense"
|
230
262
|
/>
|
231
263
|
</v-col>
|
232
264
|
<v-col>
|
233
265
|
<VcsFormattedNumber
|
266
|
+
:disabled="disabled"
|
234
267
|
id="formattedNumber"
|
235
268
|
:value="state.numberInput"
|
236
269
|
prefix="Z"
|
237
270
|
unit="cm"
|
238
271
|
:fraction-digits="1"
|
239
|
-
:dense="dense"
|
240
272
|
/>
|
241
273
|
</v-col>
|
242
274
|
</v-row>
|
243
|
-
<VcsCoordinate v-model="
|
275
|
+
<VcsCoordinate :disabled="disabled" v-model="state.arrayInput" />
|
244
276
|
</v-container>
|
245
277
|
</template>
|
246
278
|
</VcsFormSection>
|
@@ -254,6 +286,7 @@
|
|
254
286
|
<v-row no-gutters>
|
255
287
|
<v-col>
|
256
288
|
<VcsRadio
|
289
|
+
:disabled="disabled"
|
257
290
|
:items="[
|
258
291
|
...selectOptions,
|
259
292
|
{
|
@@ -270,12 +303,13 @@
|
|
270
303
|
</v-row>
|
271
304
|
<v-row no-gutters>
|
272
305
|
<v-col>
|
273
|
-
<VcsLabel> Radio with img label </VcsLabel>
|
306
|
+
<VcsLabel :disabled="disabled"> Radio with img label </VcsLabel>
|
274
307
|
</v-col>
|
275
308
|
</v-row>
|
276
309
|
<v-row no-gutters>
|
277
310
|
<v-col>
|
278
311
|
<VcsRadio
|
312
|
+
:disabled="disabled"
|
279
313
|
v-model="state.selected"
|
280
314
|
:items="[
|
281
315
|
{ value: 'AAAAAAAA', src: 'mdi-circle-outline' },
|
@@ -283,7 +317,6 @@
|
|
283
317
|
{ value: 'C', src: 'mdi-triangle-outline' },
|
284
318
|
{ value: 'D', src: 'mdi-square-outline' },
|
285
319
|
]"
|
286
|
-
:dense="dense"
|
287
320
|
:rules="[(v) => v !== 'D' || 'Square is not allowed']"
|
288
321
|
tooltip="This is a radio grid"
|
289
322
|
inline
|
@@ -313,6 +346,7 @@
|
|
313
346
|
<v-row no-gutters>
|
314
347
|
<v-col>
|
315
348
|
<VcsCheckbox
|
349
|
+
:disabled="disabled"
|
316
350
|
id="checkboxInput"
|
317
351
|
label="CheckboxInput"
|
318
352
|
tooltip="This is a checkbox for terms of usage"
|
@@ -324,6 +358,7 @@
|
|
324
358
|
</v-col>
|
325
359
|
<v-col>
|
326
360
|
<VcsFormButton
|
361
|
+
:disabled="disabled"
|
327
362
|
:is-active="state.checkboxInput"
|
328
363
|
@click="state.checkboxInput = !state.checkboxInput"
|
329
364
|
tooltip="toggle button"
|
@@ -349,29 +384,35 @@
|
|
349
384
|
<v-container class="py-0 px-1">
|
350
385
|
<v-row>
|
351
386
|
<v-col cols="1">
|
352
|
-
<VcsLabel
|
387
|
+
<VcsLabel
|
388
|
+
:disabled="disabled"
|
389
|
+
html-for="textInput"
|
390
|
+
class="text-caption"
|
391
|
+
>
|
392
|
+
1
|
393
|
+
</VcsLabel>
|
353
394
|
</v-col>
|
354
395
|
<v-col>
|
355
396
|
<VcsSelect
|
397
|
+
:disabled="disabled"
|
356
398
|
:items="[
|
357
399
|
{ value: 'one', i18n: 'form-inputs-example.numbers.one' },
|
358
400
|
{ value: 'two', i18n: 'form-inputs-example.numbers.two' },
|
359
401
|
{ value: 'three', i18n: 'form-inputs-example.numbers.three' },
|
360
402
|
]"
|
361
403
|
:item-text="(item) => item.i18n"
|
362
|
-
:dense="dense"
|
363
404
|
placeholder="Numbers"
|
364
405
|
/>
|
365
406
|
</v-col>
|
366
407
|
<v-col>
|
367
408
|
<VcsSelect
|
409
|
+
:disabled="disabled"
|
368
410
|
:items="[
|
369
411
|
{ value: 'Anna', fullName: 'Annabella' },
|
370
412
|
{ value: 'Bella', fullName: 'Belladonna' },
|
371
413
|
{ value: 'Claudi', fullName: 'Claudine' },
|
372
414
|
]"
|
373
415
|
:item-text="(item) => item.fullName"
|
374
|
-
:dense="dense"
|
375
416
|
multiple
|
376
417
|
v-model="state.selectedMultiple"
|
377
418
|
:rules="[
|
@@ -404,16 +445,15 @@
|
|
404
445
|
<template #default>
|
405
446
|
<v-container class="py-0 px-1">
|
406
447
|
<v-row no-gutters>
|
407
|
-
<v-col
|
448
|
+
<v-col>
|
408
449
|
<VcsLabel html-for="selectInput2" disabled>
|
409
450
|
{{ $t('form-inputs-example.select') }}
|
410
451
|
</VcsLabel>
|
411
452
|
</v-col>
|
412
|
-
<v-col
|
453
|
+
<v-col>
|
413
454
|
<VcsSelect
|
414
455
|
id="selectInput2"
|
415
456
|
:items="selectOptions"
|
416
|
-
:dense="dense"
|
417
457
|
:rules="[(v) => v !== 'D' || 'D is not allowed']"
|
418
458
|
v-model="state.selected"
|
419
459
|
:disabled="true"
|
@@ -499,7 +539,7 @@
|
|
499
539
|
type: Array,
|
500
540
|
required: true,
|
501
541
|
},
|
502
|
-
|
542
|
+
disabled: {
|
503
543
|
type: Boolean,
|
504
544
|
required: true,
|
505
545
|
},
|
@@ -516,7 +556,6 @@
|
|
516
556
|
return {
|
517
557
|
// no object-destruction of reactive objects! or use toRef()
|
518
558
|
state: plugin.state,
|
519
|
-
array: ref([1, 2, 3]),
|
520
559
|
// do not put the whole config here, since it would become reactive
|
521
560
|
selectOptions: plugin.config.selectOptions,
|
522
561
|
form,
|
@@ -1,21 +1,17 @@
|
|
1
1
|
import { reactive, ref } from 'vue';
|
2
2
|
|
3
3
|
export default function createExampleActions() {
|
4
|
-
const
|
4
|
+
const disabled = ref(false);
|
5
5
|
const showSection = ref(true);
|
6
6
|
|
7
7
|
const actions = [
|
8
8
|
reactive({
|
9
|
-
name: '
|
10
|
-
title: '
|
11
|
-
icon:
|
12
|
-
? 'mdi-arrow-split-horizontal'
|
13
|
-
: 'mdi-arrow-collapse-vertical',
|
9
|
+
name: 'disabledSelection',
|
10
|
+
title: 'Changed Disabled',
|
11
|
+
icon: disabled.value ? 'mdi-airplane' : 'mdi-airplane-off',
|
14
12
|
callback() {
|
15
|
-
|
16
|
-
this.icon =
|
17
|
-
? 'mdi-arrow-split-horizontal'
|
18
|
-
: 'mdi-arrow-collapse-vertical';
|
13
|
+
disabled.value = !disabled.value;
|
14
|
+
this.icon = disabled.value ? 'mdi-airplane' : 'mdi-airplane-off';
|
19
15
|
},
|
20
16
|
}),
|
21
17
|
{
|
@@ -32,5 +28,5 @@ export default function createExampleActions() {
|
|
32
28
|
},
|
33
29
|
];
|
34
30
|
|
35
|
-
return { actions,
|
31
|
+
return { actions, disabled, showSection };
|
36
32
|
}
|
@@ -178,7 +178,7 @@ export default function formInputsExample(config) {
|
|
178
178
|
getSerializedState,
|
179
179
|
setSerializedState,
|
180
180
|
onVcsAppMounted(app) {
|
181
|
-
const { actions,
|
181
|
+
const { actions, disabled } = createExampleActions();
|
182
182
|
|
183
183
|
const { action, destroy } = createToggleAction(
|
184
184
|
{
|
@@ -199,7 +199,7 @@ export default function formInputsExample(config) {
|
|
199
199
|
},
|
200
200
|
props: reactive({
|
201
201
|
actions,
|
202
|
-
|
202
|
+
disabled,
|
203
203
|
}),
|
204
204
|
},
|
205
205
|
app.windowManager,
|
@@ -87,9 +87,10 @@
|
|
87
87
|
<v-switch label="disabled" v-model="newItem.disabled" />
|
88
88
|
<v-switch label="random icon" v-model="newItem.icon" />
|
89
89
|
<v-switch label="hasUpdate" v-model="newItem.hasUpdate" />
|
90
|
+
<v-switch label="rename action" v-model="newItem.renamable" />
|
90
91
|
<v-switch
|
91
|
-
label="rename action"
|
92
|
-
v-model="newItem.
|
92
|
+
label="toggle rename action"
|
93
|
+
v-model="newItem.toggleRename"
|
93
94
|
/>
|
94
95
|
<v-switch label="console.log action" v-model="newItem.action" />
|
95
96
|
<v-switch
|
@@ -162,7 +163,6 @@
|
|
162
163
|
VcsTextField,
|
163
164
|
Icons,
|
164
165
|
VcsFormSection,
|
165
|
-
createListItemRenameAction,
|
166
166
|
} from '@vcmap/ui';
|
167
167
|
import {
|
168
168
|
VSwitch,
|
@@ -247,7 +247,8 @@
|
|
247
247
|
disabled: false,
|
248
248
|
visible: true,
|
249
249
|
icon: false,
|
250
|
-
|
250
|
+
renamable: false,
|
251
|
+
toggleRename: false,
|
251
252
|
action: false,
|
252
253
|
clicked: false,
|
253
254
|
selected: false,
|
@@ -281,6 +282,7 @@
|
|
281
282
|
disabled: newItem.value.disabled,
|
282
283
|
visible: newItem.value.visible,
|
283
284
|
hasUpdate: newItem.value.hasUpdate,
|
285
|
+
renamable: newItem.value.renamable,
|
284
286
|
});
|
285
287
|
|
286
288
|
if (newItem.value.icon) {
|
@@ -289,9 +291,13 @@
|
|
289
291
|
|
290
292
|
item.actions = [];
|
291
293
|
|
292
|
-
if (newItem.value.
|
293
|
-
item.
|
294
|
-
|
294
|
+
if (newItem.value.toggleRename) {
|
295
|
+
item.actions.push({
|
296
|
+
name: 'toggle rename',
|
297
|
+
callback() {
|
298
|
+
item.renamable = !item.renamable;
|
299
|
+
},
|
300
|
+
});
|
295
301
|
}
|
296
302
|
|
297
303
|
if (newItem.value.action) {
|
@@ -320,6 +326,13 @@
|
|
320
326
|
}
|
321
327
|
};
|
322
328
|
}
|
329
|
+
|
330
|
+
if (newItem.value.renamable) {
|
331
|
+
item.titleChanged = (newTitle) => {
|
332
|
+
item.title = newTitle;
|
333
|
+
};
|
334
|
+
}
|
335
|
+
|
323
336
|
items.value.push(item);
|
324
337
|
newItem.value = {
|
325
338
|
name: 'foo',
|
@@ -327,7 +340,7 @@
|
|
327
340
|
disabled: false,
|
328
341
|
visible: true,
|
329
342
|
icon: false,
|
330
|
-
|
343
|
+
renamable: false,
|
331
344
|
action: false,
|
332
345
|
clicked: false,
|
333
346
|
selected: false,
|
@@ -10,29 +10,36 @@
|
|
10
10
|
@click="toggle(module)"
|
11
11
|
>
|
12
12
|
{{ module.name || module.configUrl }}
|
13
|
-
<
|
13
|
+
<v-icon
|
14
14
|
v-if="module.description && toggleable"
|
15
|
-
|
15
|
+
right
|
16
|
+
v-bind="{ ...$attrs, ...props }"
|
16
17
|
>
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
mdi-help-circle
|
19
|
+
</v-icon>
|
20
|
+
<v-tooltip
|
21
|
+
v-if="module.description && toggleable"
|
22
|
+
:text="module.description"
|
23
|
+
activator="parent"
|
24
|
+
/>
|
23
25
|
</v-chip>
|
24
26
|
</v-list>
|
25
27
|
</v-container>
|
26
28
|
</template>
|
27
29
|
|
28
30
|
<script>
|
29
|
-
import {
|
30
|
-
|
31
|
+
import {
|
32
|
+
VChip,
|
33
|
+
VContainer,
|
34
|
+
VIcon,
|
35
|
+
VList,
|
36
|
+
VTooltip,
|
37
|
+
} from 'vuetify/components';
|
31
38
|
|
32
39
|
export default {
|
33
40
|
name: 'ModulesListComponent',
|
34
41
|
components: {
|
35
|
-
|
42
|
+
VTooltip,
|
36
43
|
VContainer,
|
37
44
|
VList,
|
38
45
|
VChip,
|