@vcmap/ui 5.0.0-rc.9 → 5.0.0
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/README.md +90 -106
- package/app.config.json +3 -0
- package/build/.eslintrc +3 -0
- package/build/build.js +302 -162
- package/build/buildCesium.js +39 -19
- package/build/buildHelpers.js +279 -87
- package/build/buildPreview.js +16 -6
- package/build/bundle.js +57 -0
- package/build/commonViteConfig.js +6 -15
- package/build/determineHost.js +17 -4
- package/build/generateOLLib.js +15 -18
- package/build/getPluginProxies.js +35 -3
- package/build/info/conf.json +21 -19
- package/build/info/publish.js +16 -5
- package/config/aerowest.config.json +47 -54
- package/config/base.config.json +597 -662
- package/config/codes.config.json +401 -0
- package/config/dev.config.json +460 -14
- package/config/graphFeatureInfo.config.json +141 -0
- package/config/projects.config.json +29 -0
- package/config/www.config.json +1801 -0
- package/dist/assets/@mdi/font/LICENSE +20 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.css.map +16 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +3 -0
- package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/dist/assets/cesium/ThirdParty/Workers/basis_transcoder.js +21 -0
- package/dist/assets/cesium/ThirdParty/Workers/package.json +1 -0
- package/dist/assets/cesium/ThirdParty/Workers/pako_deflate.min.js +2 -0
- package/dist/assets/cesium/ThirdParty/Workers/pako_inflate.min.js +2 -0
- package/dist/assets/cesium/ThirdParty/Workers/z-worker-pako.js +1 -0
- package/dist/assets/cesium/ThirdParty/basis_transcoder.wasm +0 -0
- package/dist/assets/cesium/ThirdParty/draco_decoder.wasm +0 -0
- package/dist/assets/cesium/ThirdParty/google-earth-dbroot-parser.js +8337 -0
- package/dist/assets/cesium/Workers/chunk-227AJNOA.js +59 -0
- package/dist/assets/cesium/Workers/chunk-2R5O53JW.js +157 -0
- package/dist/assets/cesium/Workers/chunk-34YUDLRP.js +781 -0
- package/dist/assets/cesium/Workers/chunk-3W63OHNJ.js +100 -0
- package/dist/assets/cesium/Workers/chunk-4MFFIWUA.js +163 -0
- package/dist/assets/cesium/Workers/chunk-66QLLS45.js +218 -0
- package/dist/assets/cesium/Workers/chunk-6BTKZDRG.js +77 -0
- package/dist/assets/cesium/Workers/chunk-A4JVFBQ3.js +101 -0
- package/dist/assets/cesium/Workers/chunk-ABADGKYE.js +58 -0
- package/dist/assets/cesium/Workers/chunk-AFFLIKOH.js +353 -0
- package/dist/assets/cesium/Workers/chunk-AHKEZ2OE.js +629 -0
- package/dist/assets/cesium/Workers/chunk-C3SXRKRW.js +476 -0
- package/dist/assets/cesium/Workers/chunk-CCFQRR6D.js +55 -0
- package/dist/assets/cesium/Workers/chunk-CHHNOC2C.js +1860 -0
- package/dist/assets/cesium/Workers/chunk-CTELOFLA.js +196 -0
- package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +3273 -0
- package/dist/assets/cesium/Workers/chunk-EW2GWJYB.js +44 -0
- package/dist/assets/cesium/Workers/chunk-GLZBE3ML.js +421 -0
- package/dist/assets/cesium/Workers/chunk-HARLBUOL.js +236 -0
- package/dist/assets/cesium/Workers/chunk-HQF437NJ.js +117 -0
- package/dist/assets/cesium/Workers/chunk-IPA4EACJ.js +368 -0
- package/dist/assets/cesium/Workers/chunk-J3JY6I2C.js +1009 -0
- package/dist/assets/cesium/Workers/chunk-JB2LWGH4.js +390 -0
- package/dist/assets/cesium/Workers/chunk-JS3AW5BK.js +634 -0
- package/dist/assets/cesium/Workers/chunk-K36FEYS7.js +452 -0
- package/dist/assets/cesium/Workers/chunk-KD4Y7CZL.js +400 -0
- package/dist/assets/cesium/Workers/chunk-KTJSNCK4.js +842 -0
- package/dist/assets/cesium/Workers/chunk-LLUNNUJV.js +258 -0
- package/dist/assets/cesium/Workers/chunk-MPAZH4BF.js +37 -0
- package/dist/assets/cesium/Workers/chunk-MYZB7C4T.js +1258 -0
- package/dist/assets/cesium/Workers/chunk-N3JIFFX2.js +501 -0
- package/dist/assets/cesium/Workers/chunk-O5AMBQ36.js +430 -0
- package/dist/assets/cesium/Workers/chunk-OAVNIRB4.js +124 -0
- package/dist/assets/cesium/Workers/chunk-OYFCF4PL.js +171 -0
- package/dist/assets/cesium/Workers/chunk-OZJDGN5F.js +1477 -0
- package/dist/assets/cesium/Workers/chunk-PCJWUS4M.js +2041 -0
- package/dist/assets/cesium/Workers/chunk-PFQBCKBM.js +8644 -0
- package/dist/assets/cesium/Workers/chunk-QIKODV5G.js +305 -0
- package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +73 -0
- package/dist/assets/cesium/Workers/chunk-QMEMZIJI.js +138 -0
- package/dist/assets/cesium/Workers/chunk-QT3MPEMI.js +102 -0
- package/dist/assets/cesium/Workers/chunk-RP2A7BR5.js +289 -0
- package/dist/assets/cesium/Workers/chunk-RW6LU2CJ.js +138 -0
- package/dist/assets/cesium/Workers/chunk-TFC6TZ3S.js +757 -0
- package/dist/assets/cesium/Workers/chunk-V3NGATMV.js +693 -0
- package/dist/assets/cesium/Workers/chunk-VLGOATD6.js +1075 -0
- package/dist/assets/cesium/Workers/chunk-WXTV4ATB.js +39 -0
- package/dist/assets/cesium/Workers/chunk-X4SU25DT.js +302 -0
- package/dist/assets/cesium/Workers/chunk-XTY7B2N6.js +2716 -0
- package/dist/assets/cesium/Workers/chunk-XY7MGBKC.js +513 -0
- package/dist/assets/cesium/Workers/chunk-Z24VKNDO.js +834 -0
- package/dist/assets/cesium/Workers/chunk-ZA25DG4Y.js +684 -0
- package/dist/assets/cesium/Workers/chunk-ZFOBYDGF.js +73 -0
- package/dist/assets/cesium/Workers/combineGeometry.js +67 -1
- package/dist/assets/cesium/Workers/createBoxGeometry.js +57 -1
- package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +234 -1
- package/dist/assets/cesium/Workers/createCircleGeometry.js +196 -1
- package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +146 -1
- package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +506 -1
- package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +224 -1
- package/dist/assets/cesium/Workers/createCorridorGeometry.js +1262 -1
- package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +567 -1
- package/dist/assets/cesium/Workers/createCylinderGeometry.js +59 -1
- package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +231 -1
- package/dist/assets/cesium/Workers/createEllipseGeometry.js +70 -1
- package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +63 -1
- package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +58 -1
- package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +60 -1
- package/dist/assets/cesium/Workers/createFrustumGeometry.js +57 -1
- package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +234 -1
- package/dist/assets/cesium/Workers/createGeometry.js +150 -1
- package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +1607 -1
- package/dist/assets/cesium/Workers/createPlaneGeometry.js +223 -1
- package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +123 -1
- package/dist/assets/cesium/Workers/createPolygonGeometry.js +1134 -1
- package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +542 -1
- package/dist/assets/cesium/Workers/createPolylineGeometry.js +495 -1
- package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +379 -1
- package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +277 -1
- package/dist/assets/cesium/Workers/createRectangleGeometry.js +1273 -1
- package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +480 -1
- package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +399 -1
- package/dist/assets/cesium/Workers/createSphereGeometry.js +117 -1
- package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +117 -1
- package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +32 -1
- package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +492 -1
- package/dist/assets/cesium/Workers/createVectorTileGeometries.js +386 -1
- package/dist/assets/cesium/Workers/createVectorTilePoints.js +112 -1
- package/dist/assets/cesium/Workers/createVectorTilePolygons.js +384 -1
- package/dist/assets/cesium/Workers/createVectorTilePolylines.js +262 -1
- package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +568 -1
- package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +2277 -3
- package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +745 -1
- package/dist/assets/cesium/Workers/createWallGeometry.js +489 -1
- package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +337 -1
- package/dist/assets/cesium/Workers/decodeDraco.js +369 -1
- package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +2650 -1
- package/dist/assets/cesium/Workers/decodeI3S.js +835 -0
- package/dist/assets/cesium/Workers/transcodeKTX2.js +3425 -1
- package/dist/assets/cesium/Workers/transferTypedArrayTest.js +41 -1
- package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +818 -1
- package/dist/assets/cesium.4137c8.js +164897 -0
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/core.306872.js +19286 -0
- package/dist/assets/core.js +1 -1
- package/dist/assets/favicon-128.4c4ce5.png +0 -0
- package/dist/assets/favicon-180.5b99c0.png +0 -0
- package/dist/assets/favicon-192.0e205e.png +0 -0
- package/dist/assets/favicon-32.6b9add.png +0 -0
- package/dist/assets/favicon.d5ec97.svg +10 -0
- package/dist/assets/font/OFL.txt +93 -0
- package/dist/assets/font/TitilliumWeb-Regular.9ca076.woff2 +0 -0
- package/dist/assets/index-cfed33b1.js +1 -0
- package/dist/assets/ol.328bbf.js +60117 -0
- package/dist/assets/ol.js +1 -1
- package/dist/assets/style/icon-marker-blue.534e37.png +0 -0
- package/dist/assets/style/icon-marker-green.0b6a92.png +0 -0
- package/dist/assets/style/icon-marker-o-blue.7b6d62.png +0 -0
- package/dist/assets/style/icon-marker-o-green.c863c0.png +0 -0
- package/dist/assets/style/icon-marker-o-red.93ff58.png +0 -0
- package/dist/assets/style/icon-marker-o.036477.png +0 -0
- package/dist/assets/style/icon-marker-red.313d03.png +0 -0
- package/dist/assets/style/icon-marker.70960f.png +0 -0
- package/dist/assets/style/icon-pin-blue.7be369.png +0 -0
- package/dist/assets/style/icon-pin-green.cbb935.png +0 -0
- package/dist/assets/style/icon-pin-red.3f25b2.png +0 -0
- package/dist/assets/style/icon-pin.b7ce77.png +0 -0
- package/dist/assets/ui.e84ce9.css +5 -0
- package/dist/assets/ui.e84ce9.js +16488 -0
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.1c8696.js +4911 -0
- package/dist/assets/vue.js +5 -1
- package/dist/assets/vuetify.008fac.css +5 -0
- package/dist/assets/vuetify.008fac.js +21262 -0
- package/dist/assets/vuetify.js +5 -2
- package/dist/index.html +90 -8
- package/index.html +111 -0
- package/index.js +171 -24
- package/lib/cesium.js +1 -1
- package/lib/core.js +1 -1
- package/lib/olLib.js +861 -843
- package/lib/ui.js +1 -1
- package/lib/vue.js +2 -1
- package/lib/vuetify.js +2 -2
- package/package.json +53 -33
- package/plugins/.eslintrc +9 -0
- package/plugins/@vcmap-show-case/README.md +28 -0
- package/plugins/@vcmap-show-case/buttons-example/README.md +4 -0
- package/plugins/@vcmap-show-case/buttons-example/package.json +5 -0
- package/plugins/@vcmap-show-case/buttons-example/src/ButtonsExample.vue +282 -0
- package/plugins/@vcmap-show-case/buttons-example/src/index.js +51 -0
- package/plugins/@vcmap-show-case/category-tester/README.md +3 -0
- package/plugins/@vcmap-show-case/category-tester/package.json +5 -0
- package/plugins/@vcmap-show-case/category-tester/src/CategoriesExample.vue +135 -0
- package/plugins/@vcmap-show-case/category-tester/src/CollectionComponentOptions.vue +209 -0
- package/plugins/@vcmap-show-case/category-tester/src/index.js +73 -0
- package/plugins/@vcmap-show-case/collection-manager-example/README.md +3 -0
- package/plugins/@vcmap-show-case/collection-manager-example/package.json +5 -0
- package/plugins/@vcmap-show-case/collection-manager-example/src/CollectionManagerExample.vue +182 -0
- package/plugins/@vcmap-show-case/collection-manager-example/src/index.js +79 -0
- package/plugins/@vcmap-show-case/config-editor/README.md +3 -0
- package/plugins/@vcmap-show-case/config-editor/package.json +5 -0
- package/plugins/@vcmap-show-case/config-editor/src/ConfigEditor.vue +62 -0
- package/plugins/@vcmap-show-case/config-editor/src/index.js +49 -0
- package/plugins/@vcmap-show-case/context-menu-tester/README.md +3 -0
- package/plugins/@vcmap-show-case/context-menu-tester/package.json +5 -0
- package/plugins/@vcmap-show-case/context-menu-tester/src/index.js +41 -0
- package/plugins/@vcmap-show-case/form-inputs-example/README.md +4 -0
- package/plugins/@vcmap-show-case/form-inputs-example/config.json +5 -0
- package/plugins/@vcmap-show-case/form-inputs-example/package.json +5 -0
- package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +516 -0
- package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +36 -0
- package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example/src}/index.js +119 -35
- package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example/src}/validation.js +14 -2
- package/plugins/@vcmap-show-case/hello-world/README.md +31 -0
- package/plugins/@vcmap-show-case/hello-world/package.json +6 -0
- package/plugins/@vcmap-show-case/hello-world/plugin-assets/vcs_logo.png +0 -0
- package/plugins/@vcmap-show-case/hello-world/src/defaultOptions.js +4 -0
- package/plugins/@vcmap-show-case/hello-world/src/helloWorld.vue +69 -0
- package/plugins/@vcmap-show-case/hello-world/src/index.js +142 -0
- package/plugins/@vcmap-show-case/hello-world/tests/helloWorld.spec.js +53 -0
- package/plugins/@vcmap-show-case/icons-example/README.md +5 -0
- package/plugins/@vcmap-show-case/icons-example/package.json +5 -0
- package/plugins/@vcmap-show-case/icons-example/src/AllIconsComponent.vue +51 -0
- package/plugins/@vcmap-show-case/icons-example/src/index.js +46 -0
- package/plugins/@vcmap-show-case/list-example/README.md +3 -0
- package/plugins/@vcmap-show-case/list-example/package.json +5 -0
- package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +411 -0
- package/plugins/@vcmap-show-case/list-example/src/index.js +46 -0
- package/plugins/@vcmap-show-case/notifier-tester/README.md +3 -0
- package/plugins/@vcmap-show-case/notifier-tester/package.json +5 -0
- package/plugins/@vcmap-show-case/notifier-tester/src/NotifierTester.vue +82 -0
- package/plugins/@vcmap-show-case/notifier-tester/src/index.js +42 -0
- package/plugins/@vcmap-show-case/plugin-editors/README.md +4 -0
- package/plugins/@vcmap-show-case/plugin-editors/package.json +5 -0
- package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +119 -0
- package/plugins/@vcmap-show-case/plugin-editors/src/index.js +41 -0
- package/plugins/@vcmap-show-case/project-selector/README.md +25 -0
- package/plugins/@vcmap-show-case/project-selector/config.json +15 -0
- package/plugins/{@vcmap → @vcmap-show-case}/project-selector/package.json +3 -4
- package/plugins/{@vcmap/project-selector/ContextsListComponent.vue → @vcmap-show-case/project-selector/src/ModulesListComponent.vue} +22 -19
- package/plugins/@vcmap-show-case/project-selector/src/ProjectSelectorComponent.vue +102 -0
- package/plugins/@vcmap-show-case/project-selector/src/de.json +10 -0
- package/plugins/@vcmap-show-case/project-selector/src/en.json +10 -0
- package/plugins/@vcmap-show-case/project-selector/src/index.js +269 -0
- package/plugins/@vcmap-show-case/simple-graph/README.md +71 -0
- package/plugins/@vcmap-show-case/simple-graph/package.json +11 -0
- package/plugins/@vcmap-show-case/simple-graph/src/SimpleGraphComponent.vue +59 -0
- package/plugins/@vcmap-show-case/simple-graph/src/index.js +17 -0
- package/plugins/@vcmap-show-case/simple-graph/src/simpleGraphView.js +78 -0
- package/plugins/@vcmap-show-case/style-input-example/README.md +4 -0
- package/plugins/@vcmap-show-case/style-input-example/package.json +5 -0
- package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +190 -0
- package/plugins/@vcmap-show-case/style-input-example/src/index.js +42 -0
- package/plugins/@vcmap-show-case/switch-map-callback-example/README.md +21 -0
- package/plugins/@vcmap-show-case/switch-map-callback-example/config.json +3 -0
- package/plugins/@vcmap-show-case/switch-map-callback-example/package.json +5 -0
- package/plugins/@vcmap-show-case/switch-map-callback-example/src/index.js +34 -0
- package/plugins/@vcmap-show-case/switch-map-callback-example/src/switchMapCallback.js +47 -0
- package/plugins/@vcmap-show-case/table-example/README.md +3 -0
- package/plugins/@vcmap-show-case/table-example/package.json +5 -0
- package/plugins/@vcmap-show-case/table-example/src/DataTableExample.vue +182 -0
- package/plugins/@vcmap-show-case/table-example/src/index.js +49 -0
- package/plugins/@vcmap-show-case/textfields-example/README.md +3 -0
- package/plugins/@vcmap-show-case/textfields-example/package.json +5 -0
- package/plugins/{example/mySuperComponent.vue → @vcmap-show-case/textfields-example/src/TextfieldsExample.vue} +13 -31
- package/plugins/@vcmap-show-case/textfields-example/src/index.js +64 -0
- package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/README.md +5 -3
- package/plugins/@vcmap-show-case/theme-changer/config.json +69 -0
- package/plugins/@vcmap-show-case/theme-changer/package.json +11 -0
- package/plugins/{@vcmap/theme-changer → @vcmap-show-case/theme-changer/src}/ThemeChangerComponent.vue +36 -8
- package/plugins/{@vcmap/theme-changer → @vcmap-show-case/theme-changer/src}/index.js +14 -8
- package/plugins/@vcmap-show-case/vector-properties-example/package.json +5 -0
- package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +128 -0
- package/plugins/@vcmap-show-case/vector-properties-example/src/index.js +40 -0
- package/plugins/@vcmap-show-case/window-tester/README.md +3 -0
- package/plugins/@vcmap-show-case/window-tester/package.json +5 -0
- package/plugins/@vcmap-show-case/window-tester/src/EmptyComponent.vue +18 -0
- package/plugins/@vcmap-show-case/window-tester/src/MyCustomHeader.vue +31 -0
- package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +185 -0
- package/plugins/@vcmap-show-case/window-tester/src/WindowExampleContent.vue +18 -0
- package/plugins/@vcmap-show-case/window-tester/src/WindowExampleToggleChild.vue +45 -0
- package/plugins/@vcmap-show-case/window-tester/src/index.js +80 -0
- package/plugins/@vcmap-show-case/window-tester/src/toolboxData.js +288 -0
- package/plugins/@vcmap-show-case/wizard-example/README.md +3 -0
- package/plugins/@vcmap-show-case/wizard-example/package.json +5 -0
- package/plugins/@vcmap-show-case/wizard-example/src/WizardExample.vue +127 -0
- package/plugins/@vcmap-show-case/wizard-example/src/index.js +53 -0
- package/plugins/package.json +9 -2
- package/public/assets/@mdi/font/LICENSE +20 -0
- package/public/assets/@mdi/font/css/materialdesignicons.css.map +16 -0
- package/public/assets/@mdi/font/css/materialdesignicons.min.css +3 -0
- package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/public/assets/favicon-128.png +0 -0
- package/public/assets/favicon-180.png +0 -0
- package/public/assets/favicon-192.png +0 -0
- package/public/assets/favicon-32.png +0 -0
- package/public/assets/favicon.svg +10 -0
- package/public/assets/font/OFL.txt +93 -0
- package/public/assets/font/TitilliumWeb-Regular.woff2 +0 -0
- package/public/assets/style/icon-marker-blue.png +0 -0
- package/public/assets/style/icon-marker-green.png +0 -0
- package/public/assets/style/icon-marker-o-blue.png +0 -0
- package/public/assets/style/icon-marker-o-green.png +0 -0
- package/public/assets/style/icon-marker-o-red.png +0 -0
- package/public/assets/style/icon-marker-o.png +0 -0
- package/public/assets/style/icon-marker-red.png +0 -0
- package/public/assets/style/icon-marker.png +0 -0
- package/public/assets/style/icon-pin-blue.png +0 -0
- package/public/assets/style/icon-pin-green.png +0 -0
- package/public/assets/style/icon-pin-red.png +0 -0
- package/public/assets/style/icon-pin.png +0 -0
- package/src/actions/StyleSelector.vue +121 -0
- package/src/actions/actionHelper.js +184 -49
- package/src/actions/stateRefAction.js +2 -3
- package/src/application/VcsApp.vue +538 -98
- package/src/application/VcsAppWrapper.vue +32 -0
- package/src/application/VcsAttributions.vue +83 -0
- package/src/application/VcsAttributionsFooter.vue +83 -0
- package/src/application/VcsMap.vue +22 -5
- package/src/application/VcsNavbar.vue +217 -0
- package/src/application/VcsSettings.vue +98 -0
- package/src/application/attributionsHelper.js +162 -0
- package/src/callback/activateLayersCallback.js +54 -0
- package/src/callback/applyLayerStyleCallback.js +63 -0
- package/src/callback/deactivateLayersCallback.js +54 -0
- package/src/callback/goToViewpointCallback.js +54 -0
- package/src/callback/vcsCallback.js +66 -0
- package/src/components/ImageElementInjector.vue +24 -0
- package/src/components/buttons/VcsActionButtonList.vue +52 -22
- package/src/components/buttons/VcsButton.vue +60 -110
- package/src/components/buttons/VcsFormButton.vue +178 -0
- package/src/components/buttons/VcsToolButton.vue +161 -0
- package/src/components/form-inputs-controls/VcsCheckbox.vue +62 -20
- package/src/components/form-inputs-controls/VcsChipArrayInput.vue +290 -0
- package/src/components/form-inputs-controls/VcsDatePicker.vue +156 -0
- package/src/components/form-inputs-controls/VcsFormSection.vue +120 -16
- package/src/components/form-inputs-controls/VcsLabel.vue +29 -11
- package/src/components/form-inputs-controls/VcsRadio.vue +149 -0
- package/src/components/form-inputs-controls/VcsRadioGrid.vue +175 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +164 -50
- package/src/components/form-inputs-controls/VcsSlider.vue +73 -0
- package/src/components/form-inputs-controls/VcsTextArea.vue +118 -68
- package/src/components/form-inputs-controls/VcsTextField.vue +238 -69
- package/src/components/form-inputs-controls/VcsWizard.vue +137 -0
- package/src/components/form-inputs-controls/VcsWizardStep.vue +161 -0
- package/src/components/form-inputs-controls/composables.js +31 -0
- package/src/components/form-output/VcsFormattedNumber.vue +28 -28
- package/src/{icons → components/icons}/+all.js +109 -5
- package/src/components/icons/2DAreaIcon.vue +58 -0
- package/src/components/icons/2DDistanceIcon.vue +24 -0
- package/src/components/icons/3DAreaIcon.vue +58 -0
- package/src/components/icons/3DDistanceIcon.vue +24 -0
- package/src/components/icons/3DHeightIcon.vue +24 -0
- package/src/components/icons/AngleIcon.vue +16 -0
- package/src/{icons → components/icons}/AssociationsIcon.vue +7 -4
- package/src/components/icons/AxisIcon.vue +35 -0
- package/src/components/icons/BoundingBoxIcon.vue +38 -0
- package/src/components/icons/CheckboxCheckedIcon.vue +12 -0
- package/src/components/icons/CheckboxIcon.vue +21 -0
- package/src/components/icons/CheckboxIndeterminateIcon.vue +10 -0
- package/src/components/icons/CircleIcon.vue +25 -0
- package/src/components/icons/ClippingHorizontalIcon.vue +18 -0
- package/src/components/icons/ClippingIcon.vue +17 -0
- package/src/components/icons/ClippingVerticalIcon.vue +18 -0
- package/src/components/icons/ColorPickerIcon.vue +17 -0
- package/src/{icons → components/icons}/ColorSwatchIcon.vue +6 -2
- package/src/{icons → components/icons}/CommentIcon.vue +6 -6
- package/src/components/icons/CompassIcon.vue +24 -0
- package/src/components/icons/ComponentsIcon.vue +18 -0
- package/src/components/icons/ConeIcon.vue +30 -0
- package/src/components/icons/DimensionsHouseIcon.vue +20 -0
- package/src/components/icons/EditIcon.vue +17 -0
- package/src/components/icons/EditVerticesIcon.vue +35 -0
- package/src/{icons → components/icons}/ElevationProfileIcon.vue +7 -14
- package/src/components/icons/ExportAreaIcon.vue +17 -0
- package/src/components/icons/ExportFlightIcon.vue +17 -0
- package/src/components/icons/ExportIcon.vue +24 -0
- package/src/components/icons/ExternalLinkIcon.vue +23 -0
- package/src/components/icons/EyeIcon.vue +17 -0
- package/src/components/icons/FastForwardIcon.vue +17 -0
- package/src/components/icons/FilterIcon.vue +18 -0
- package/src/components/icons/GlobalTerrainIcon.vue +19 -0
- package/src/components/icons/GlobeNatureIcon.vue +17 -0
- package/src/components/icons/GroundIcon.vue +27 -0
- package/src/{icons → components/icons}/HealthCareIndustriesIcon.vue +7 -12
- package/src/components/icons/HelpIcon.vue +17 -0
- package/src/components/icons/HideIcon.vue +25 -0
- package/src/components/icons/HomePointIcon.vue +17 -0
- package/src/{icons → components/icons}/HospitalsIcon.vue +7 -21
- package/src/components/icons/HouseIcon.vue +32 -0
- package/src/components/icons/ImportIcon.vue +18 -0
- package/src/components/icons/InfoIcon.vue +24 -0
- package/src/{icons → components/icons}/KebabIcon.vue +7 -5
- package/src/components/icons/LabelIcon.vue +23 -0
- package/src/{icons → components/icons}/LayersIcon.vue +7 -5
- package/src/components/icons/LegendIcon.vue +24 -0
- package/src/components/icons/LineIcon.vue +22 -0
- package/src/components/icons/LinkIcon.vue +17 -0
- package/src/components/icons/LogoutIcon.vue +17 -0
- package/src/components/icons/MapIcon.vue +18 -0
- package/src/{icons → components/icons}/MenuIcon.vue +7 -5
- package/src/components/icons/MinusIcon.vue +18 -0
- package/src/components/icons/ObjectAttributeIcon.vue +18 -0
- package/src/components/icons/ObjectSelectIcon.vue +18 -0
- package/src/components/icons/ObliqueViewIcon.vue +19 -0
- package/src/components/icons/PdfIcon.vue +19 -0
- package/src/components/icons/PedestrianIcon.vue +17 -0
- package/src/components/icons/PenIcon.vue +16 -0
- package/src/components/icons/PlayCircleIcon.vue +20 -0
- package/src/components/icons/PlusIcon.vue +18 -0
- package/src/components/icons/PoiIcon.vue +23 -0
- package/src/{icons/PolygonIcon.vue → components/icons/PointIcon.vue} +8 -6
- package/src/components/icons/PointSelectIcon.vue +18 -0
- package/src/components/icons/PresentationModeIcon.vue +17 -0
- package/src/{icons → components/icons}/ProgressIcon.vue +9 -7
- package/src/components/icons/QueryIcon.vue +39 -0
- package/src/components/icons/RectangleIcon.vue +24 -0
- package/src/components/icons/ReturnIcon.vue +17 -0
- package/src/components/icons/RewindIcon.vue +16 -0
- package/src/components/icons/RotateLeftIcon.vue +17 -0
- package/src/components/icons/RotateRightIcon.vue +17 -0
- package/src/components/icons/ScreenshotIcon.vue +53 -0
- package/src/components/icons/SearchIcon.vue +17 -0
- package/src/components/icons/ShadowIcon.vue +18 -0
- package/src/{icons → components/icons}/ShapesIcon.vue +13 -6
- package/src/components/icons/ShareIcon.vue +22 -0
- package/src/components/icons/SimpleCircleFilledIcon.vue +18 -0
- package/src/{icons → components/icons}/SimpleCircleHalfFilledIcon.vue +6 -2
- package/src/components/icons/SimpleCircleOutlinedIcon.vue +13 -0
- package/src/components/icons/SkipNextIcon.vue +18 -0
- package/src/components/icons/SkipPreviousIcon.vue +18 -0
- package/src/{icons → components/icons}/SplitViewIcon.vue +6 -6
- package/src/components/icons/TerrainBoxIcon.vue +19 -0
- package/src/components/icons/TextStyleIcon.vue +17 -0
- package/src/components/icons/ThreeDimensionsIcon.vue +17 -0
- package/src/components/icons/ToolsIcon.vue +16 -0
- package/src/components/icons/TouchIcon.vue +18 -0
- package/src/components/icons/TrashCanIcon.vue +18 -0
- package/src/components/icons/TriangleIcon.vue +16 -0
- package/src/components/icons/TwoDimensionsIcon.vue +18 -0
- package/src/components/icons/UploadIcon.vue +17 -0
- package/src/components/icons/UserProfileIcon.vue +17 -0
- package/src/components/icons/UserShareIcon.vue +16 -0
- package/src/components/icons/VideoRecorderIcon.vue +23 -0
- package/src/components/icons/ViewpointFlightIcon.vue +28 -0
- package/src/components/icons/ViewpointIcon.vue +28 -0
- package/src/components/icons/Viewshed360Icon.vue +18 -0
- package/src/components/icons/ViewshedConeIcon.vue +17 -0
- package/src/components/icons/ViewshedIcon.vue +18 -0
- package/src/components/icons/WalkingIcon.vue +17 -0
- package/src/components/icons/WallIcon.vue +22 -0
- package/src/components/icons/WandIcon.vue +123 -0
- package/src/components/lists/VcsActionList.vue +57 -25
- package/src/components/lists/VcsList.vue +590 -0
- package/src/components/lists/VcsTreeview.vue +45 -42
- package/src/components/lists/VcsTreeviewLeaf.vue +45 -69
- package/src/components/lists/VcsTreeviewSearchbar.vue +40 -48
- package/src/components/notification/VcsBadge.vue +6 -4
- package/src/components/notification/VcsHelp.vue +39 -0
- package/src/components/notification/VcsTooltip.vue +111 -105
- package/src/components/notification/validation.js +1 -1
- package/src/components/plugins/AbstractConfigEditor.vue +84 -0
- package/src/components/style/MenuWrapper.vue +140 -0
- package/src/components/style/VcsFillMenu.vue +61 -0
- package/src/components/style/VcsFillSelector.vue +45 -0
- package/src/components/style/VcsImageMenu.vue +83 -0
- package/src/components/style/VcsImageSelector.vue +577 -0
- package/src/components/style/VcsStrokeMenu.vue +73 -0
- package/src/components/style/VcsStrokeSelector.vue +88 -0
- package/src/components/style/VcsTextMenu.vue +81 -0
- package/src/components/style/VcsTextSelector.vue +269 -0
- package/src/components/style/VcsVectorStyleComponent.vue +114 -0
- package/src/components/style/composables.js +84 -0
- package/src/components/tables/VcsDataTable.vue +475 -0
- package/src/components/tables/VcsTable.vue +145 -0
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +778 -0
- package/src/components/vector-properties/composables.js +93 -0
- package/src/contentTree/LayerTree.vue +18 -14
- package/src/contentTree/contentTreeCollection.js +109 -41
- package/src/contentTree/contentTreeItem.js +109 -43
- package/src/contentTree/groupContentTreeItem.js +46 -23
- package/src/contentTree/layerContentTreeItem.js +54 -23
- package/src/contentTree/layerGroupContentTreeItem.js +58 -26
- package/src/contentTree/nodeContentTreeItem.js +19 -8
- package/src/contentTree/obliqueCollectionContentTreeItem.js +51 -22
- package/src/contentTree/subContentTreeItem.js +14 -5
- package/src/contentTree/vcsObjectContentTreeItem.js +27 -16
- package/src/contentTree/viewpointContentTreeItem.js +121 -0
- package/src/downloadHelper.js +52 -0
- package/src/featureInfo/AddressBalloonComponent.vue +58 -0
- package/src/featureInfo/BalloonComponent.vue +193 -0
- package/src/featureInfo/abstractFeatureInfoView.js +346 -0
- package/src/featureInfo/addressBalloonFeatureInfoView.js +130 -0
- package/src/featureInfo/balloonFeatureInfoView.js +159 -0
- package/src/featureInfo/balloonHelper.js +172 -0
- package/src/featureInfo/featureInfo.js +525 -0
- package/src/featureInfo/featureInfoInteraction.js +48 -0
- package/src/featureInfo/iframeFeatureInfoView.js +97 -0
- package/src/featureInfo/tableFeatureInfoView.js +120 -0
- package/src/i18n/de.js +195 -0
- package/src/i18n/en.js +195 -0
- package/src/i18n/i18nCollection.js +137 -0
- package/src/init.js +121 -36
- package/src/legend/StyleLegendItem.vue +176 -0
- package/src/legend/VcsLegend.vue +140 -0
- package/src/legend/legendHelper.js +204 -0
- package/src/manager/buttonManager.js +32 -15
- package/src/manager/collectionManager/CollectionComponent.vue +140 -0
- package/src/manager/collectionManager/CollectionComponentList.vue +77 -0
- package/src/manager/collectionManager/CollectionComponentProvider.vue +39 -0
- package/src/manager/collectionManager/CollectionManager.vue +62 -0
- package/src/manager/collectionManager/categoryManager.js +83 -0
- package/src/manager/collectionManager/collectionComponent.js +470 -0
- package/src/manager/collectionManager/collectionManager.js +432 -0
- package/src/manager/contextMenu/ContextMenuComponent.vue +43 -0
- package/src/manager/contextMenu/contextMenuInteraction.js +47 -0
- package/src/manager/contextMenu/contextMenuManager.js +220 -0
- package/src/manager/navbarManager.js +47 -13
- package/src/manager/toolbox/GroupToolboxComponent.vue +128 -0
- package/src/manager/toolbox/SelectToolboxComponent.vue +144 -0
- package/src/manager/toolbox/ToolboxManager.vue +124 -102
- package/src/manager/toolbox/toolboxManager.js +254 -87
- package/src/manager/window/WindowComponent.vue +105 -85
- package/src/manager/window/WindowComponentHeader.vue +115 -24
- package/src/manager/window/WindowManager.vue +121 -55
- package/src/manager/window/windowHelper.js +465 -0
- package/src/manager/window/windowManager.js +294 -86
- package/src/navigation/{mapNavCompass.vue → MapNavCompass.vue} +31 -11
- package/src/navigation/MapNavigation.vue +291 -0
- package/src/navigation/ObliqueRotation.vue +69 -0
- package/src/navigation/{orientationToolsButton.vue → OrientationToolsButton.vue} +13 -12
- package/src/navigation/{tiltSlider.vue → TiltSlider.vue} +39 -16
- package/src/navigation/VcsCompass.vue +69 -0
- package/src/navigation/VcsZoomButton.vue +52 -0
- package/src/navigation/overviewMap.js +142 -104
- package/src/navigation/overviewMapClickedInteraction.js +6 -1
- package/src/notifier/NotifierComponent.vue +86 -0
- package/src/notifier/notifier.js +129 -0
- package/src/pluginHelper.js +148 -20
- package/src/search/ResultItem.vue +83 -0
- package/src/search/ResultsComponent.vue +103 -0
- package/src/search/SearchComponent.vue +116 -0
- package/src/search/search.js +342 -0
- package/src/setup.js +9 -10
- package/src/state.js +272 -0
- package/src/styles/_theming.scss +69 -21
- package/src/styles/_typography.scss +3 -6
- package/src/styles/main.scss +9 -0
- package/src/styles/shades.scss +4 -0
- package/src/styles/utils/_border.scss +1 -1
- package/src/styles/utils/_cursor.scss +4 -0
- package/src/styles/utils/_display.scss +1 -1
- package/src/styles/variables.scss +79 -11
- package/src/styles/vcsFont.scss +2 -5
- package/src/styles/vcsGrid.scss +9 -0
- package/src/uiConfig.js +83 -0
- package/src/vcsUiApp.js +508 -68
- package/src/vuePlugins/i18n.js +51 -13
- package/src/vuePlugins/vuetify.js +104 -43
- package/config/berlin.config.json +0 -529
- package/dist/assets/cesium/Workers/ArcType-fc72c06c.js +0 -1
- package/dist/assets/cesium/Workers/AttributeCompression-80665726.js +0 -1
- package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-a655a4bc.js +0 -1
- package/dist/assets/cesium/Workers/BoundingRectangle-c3b79029.js +0 -1
- package/dist/assets/cesium/Workers/BoxGeometry-f8f9c981.js +0 -1
- package/dist/assets/cesium/Workers/Color-de06a177.js +0 -1
- package/dist/assets/cesium/Workers/ComponentDatatype-a15c9a19.js +0 -1
- package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-48cdc26d.js +0 -1
- package/dist/assets/cesium/Workers/CorridorGeometryLibrary-ddc027d3.js +0 -1
- package/dist/assets/cesium/Workers/CylinderGeometry-82a8cbe6.js +0 -1
- package/dist/assets/cesium/Workers/CylinderGeometryLibrary-76cda53e.js +0 -1
- package/dist/assets/cesium/Workers/EllipseGeometry-32d55454.js +0 -1
- package/dist/assets/cesium/Workers/EllipseGeometryLibrary-b2ae188a.js +0 -1
- package/dist/assets/cesium/Workers/EllipseOutlineGeometry-f05a5a27.js +0 -1
- package/dist/assets/cesium/Workers/EllipsoidGeodesic-19e75e11.js +0 -1
- package/dist/assets/cesium/Workers/EllipsoidGeometry-7c99fc81.js +0 -1
- package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-21c243df.js +0 -1
- package/dist/assets/cesium/Workers/EllipsoidRhumbLine-6145377b.js +0 -1
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-a01286f6.js +0 -1
- package/dist/assets/cesium/Workers/EncodedCartesian3-d9f5c4a4.js +0 -1
- package/dist/assets/cesium/Workers/FrustumGeometry-17776af8.js +0 -1
- package/dist/assets/cesium/Workers/GeometryAttribute-89a520b9.js +0 -1
- package/dist/assets/cesium/Workers/GeometryAttributes-32b29525.js +0 -1
- package/dist/assets/cesium/Workers/GeometryInstance-4fbf16ba.js +0 -1
- package/dist/assets/cesium/Workers/GeometryOffsetAttribute-8c5e10db.js +0 -1
- package/dist/assets/cesium/Workers/GeometryPipeline-309fad76.js +0 -1
- package/dist/assets/cesium/Workers/IndexDatatype-f1dcdf35.js +0 -1
- package/dist/assets/cesium/Workers/IntersectionTests-58aa8f80.js +0 -1
- package/dist/assets/cesium/Workers/Matrix2-47e98d76.js +0 -1
- package/dist/assets/cesium/Workers/OrientedBoundingBox-fcb5b750.js +0 -1
- package/dist/assets/cesium/Workers/Plane-3f01019d.js +0 -1
- package/dist/assets/cesium/Workers/PolygonGeometryLibrary-0b29eb16.js +0 -1
- package/dist/assets/cesium/Workers/PolygonPipeline-a934c4dd.js +0 -1
- package/dist/assets/cesium/Workers/PolylinePipeline-8095c9bc.js +0 -1
- package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-67d12fff.js +0 -1
- package/dist/assets/cesium/Workers/PrimitivePipeline-980e44c5.js +0 -1
- package/dist/assets/cesium/Workers/RectangleGeometryLibrary-621c6de8.js +0 -1
- package/dist/assets/cesium/Workers/RuntimeError-8952249c.js +0 -1
- package/dist/assets/cesium/Workers/TerrainEncoding-f96552d5.js +0 -1
- package/dist/assets/cesium/Workers/Transforms-c8cb8f43.js +0 -39
- package/dist/assets/cesium/Workers/VertexFormat-a0b706b0.js +0 -1
- package/dist/assets/cesium/Workers/WallGeometryLibrary-c03d8479.js +0 -1
- package/dist/assets/cesium/Workers/WebGLConstants-508b9636.js +0 -1
- package/dist/assets/cesium/Workers/WebMercatorProjection-79b3214e.js +0 -1
- package/dist/assets/cesium/Workers/_commonjsHelpers-3aae1032-26891ab7.js +0 -1
- package/dist/assets/cesium/Workers/_rollup_plugin_ignore_empty_module_placeholder-57d574d0.js +0 -1
- package/dist/assets/cesium/Workers/arrayRemoveDuplicates-dc2f4046.js +0 -1
- package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +0 -6
- package/dist/assets/cesium/Workers/combine-3c023bda.js +0 -1
- package/dist/assets/cesium/Workers/defaultValue-81eec7ed.js +0 -1
- package/dist/assets/cesium.4e40f4.js +0 -9105
- package/dist/assets/core.edcf5e.js +0 -4
- package/dist/assets/index.60dea538.css +0 -1
- package/dist/assets/index.889d0f3a.js +0 -1
- package/dist/assets/ol.246fd4.js +0 -318
- package/dist/assets/ui.df4f6d.css +0 -1
- package/dist/assets/ui.df4f6d.js +0 -43
- package/dist/assets/vue-composition-api.a520f3.js +0 -14
- package/dist/assets/vue-composition-api.js +0 -2
- package/dist/assets/vue.2cee44.js +0 -9
- package/dist/assets/vuetify.cc817b.css +0 -5
- package/dist/assets/vuetify.cc817b.js +0 -48
- package/lib/vue-composition-api.js +0 -2
- package/map.config.json +0 -35
- package/plugins/@vcmap/pluginExample/config.json +0 -6
- package/plugins/@vcmap/pluginExample/package.json +0 -7
- package/plugins/@vcmap/pluginExample/pluginExampleComponent.vue +0 -374
- package/plugins/@vcmap/project-selector/ProjectSelectorComponent.vue +0 -81
- package/plugins/@vcmap/project-selector/README.md +0 -29
- package/plugins/@vcmap/project-selector/config.json +0 -15
- package/plugins/@vcmap/project-selector/index.js +0 -254
- package/plugins/@vcmap/theme-changer/config.json +0 -69
- package/plugins/@vcmap/theme-changer/package.json +0 -12
- package/plugins/buttonExamples/ButtonExamples.vue +0 -190
- package/plugins/buttonExamples/index.js +0 -41
- package/plugins/categoryTest/Categories.vue +0 -145
- package/plugins/categoryTest/Category.vue +0 -114
- package/plugins/categoryTest/ItemEditor.vue +0 -13
- package/plugins/categoryTest/index.js +0 -41
- package/plugins/example/index.js +0 -75
- package/plugins/test/allIconsComponent.vue +0 -34
- package/plugins/test/editor.vue +0 -63
- package/plugins/test/index.js +0 -116
- package/plugins/test/myCustomHeader.vue +0 -19
- package/plugins/test/toolbox-data.js +0 -129
- package/plugins/test/vcsContent.vue +0 -23
- package/plugins/test/windowManagerExample.vue +0 -143
- package/src/actions/styleSelector.vue +0 -90
- package/src/application/Navbar.vue +0 -130
- package/src/application/empty-cmp.vue +0 -6
- package/src/components/form-inputs-controls/VcsColorPicker.vue +0 -81
- package/src/contentTree/viewPointContentTreeItem.js +0 -107
- package/src/icons/2DAreaIcon.vue +0 -21
- package/src/icons/2DDistanceIcon.vue +0 -18
- package/src/icons/3DAreaIcon.vue +0 -21
- package/src/icons/3DDistanceIcon.vue +0 -18
- package/src/icons/3DHeightIcon.vue +0 -18
- package/src/icons/AngleIcon.vue +0 -8
- package/src/icons/AxisIcon.vue +0 -10
- package/src/icons/BoundingBoxIcon.vue +0 -15
- package/src/icons/CheckboxCheckedIcon.vue +0 -16
- package/src/icons/CheckboxIcon.vue +0 -23
- package/src/icons/CheckboxIndeterminateIcon.vue +0 -24
- package/src/icons/CircleIcon.vue +0 -10
- package/src/icons/CompassIcon.vue +0 -8
- package/src/icons/ComponentsIcon.vue +0 -7
- package/src/icons/ConeIcon.vue +0 -11
- package/src/icons/DimensionsHouseIcon.vue +0 -14
- package/src/icons/ExportAreaIcon.vue +0 -7
- package/src/icons/ExportFlightIcon.vue +0 -7
- package/src/icons/ExportIcon.vue +0 -8
- package/src/icons/ExternalLinkIcon.vue +0 -10
- package/src/icons/EyeIcon.vue +0 -7
- package/src/icons/FastForwardIcon.vue +0 -7
- package/src/icons/FilterIcon.vue +0 -8
- package/src/icons/GlobeNatureIcon.vue +0 -14
- package/src/icons/HelpIcon.vue +0 -7
- package/src/icons/HomePointIcon.vue +0 -8
- package/src/icons/HouseIcon.vue +0 -25
- package/src/icons/ImportIcon.vue +0 -8
- package/src/icons/InfoIcon.vue +0 -10
- package/src/icons/LabelIcon.vue +0 -7
- package/src/icons/LegendIcon.vue +0 -65
- package/src/icons/LineIcon.vue +0 -7
- package/src/icons/LinkIcon.vue +0 -7
- package/src/icons/MapIcon.vue +0 -8
- package/src/icons/MinusIcon.vue +0 -8
- package/src/icons/ObjectAttributeIcon.vue +0 -18
- package/src/icons/ObjectSelectIcon.vue +0 -8
- package/src/icons/ObliqueViewIcon.vue +0 -13
- package/src/icons/PdfIcon.vue +0 -10
- package/src/icons/PedestrianIcon.vue +0 -8
- package/src/icons/PenIcon.vue +0 -14
- package/src/icons/PlayCircleIcon.vue +0 -10
- package/src/icons/PlusIcon.vue +0 -9
- package/src/icons/PoiIcon.vue +0 -7
- package/src/icons/PointSelectIcon.vue +0 -7
- package/src/icons/PresentationModeIcon.vue +0 -7
- package/src/icons/QueryIcon.vue +0 -15
- package/src/icons/RectangleIcon.vue +0 -9
- package/src/icons/ReturnIcon.vue +0 -7
- package/src/icons/RewindIcon.vue +0 -6
- package/src/icons/SearchIcon.vue +0 -8
- package/src/icons/ShadowIcon.vue +0 -9
- package/src/icons/ShareIcon.vue +0 -22
- package/src/icons/SimpleCircleFilledIcon.vue +0 -15
- package/src/icons/SimpleCircleOutlinedIcon.vue +0 -15
- package/src/icons/SkipNextIcon.vue +0 -7
- package/src/icons/SkipPreviousIcon.vue +0 -9
- package/src/icons/TextStyleIcon.vue +0 -14
- package/src/icons/ThreeDimensionsIcon.vue +0 -7
- package/src/icons/ToolsIcon.vue +0 -35
- package/src/icons/TouchIcon.vue +0 -8
- package/src/icons/TrashCanIcon.vue +0 -7
- package/src/icons/TriangleIcon.vue +0 -15
- package/src/icons/TwoDimensionsIcon.vue +0 -8
- package/src/icons/UploadIcon.vue +0 -14
- package/src/icons/VideoRecorderIcon.vue +0 -14
- package/src/icons/WalkingIcon.vue +0 -7
- package/src/icons/WallIcon.vue +0 -14
- package/src/lang/de.js +0 -60
- package/src/lang/en.js +0 -53
- package/src/manager/toolbox/ToolboxGroupComponent.vue +0 -128
- package/src/navigation/mapNavigation.vue +0 -205
- package/src/navigation/obliqueRotation.vue +0 -48
- package/src/navigation/vcsCompass.vue +0 -144
- package/src/navigation/vcsZoomButton.vue +0 -27
- package/start.js +0 -3
- /package/src/{assets/logo-mobile.svg → logo-mobile.svg} +0 -0
- /package/src/{assets/logo.svg → logo.svg} +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
import { reactive, ref } from '
|
1
|
+
import { computed, reactive, ref } from 'vue';
|
2
2
|
import { VcsEvent } from '@vcmap/core';
|
3
3
|
import { v4 as uuidv4 } from 'uuid';
|
4
4
|
import { parseEnumValue } from '@vcsuite/parsers';
|
@@ -8,46 +8,55 @@ import { vcsAppSymbol } from '../../pluginHelper.js';
|
|
8
8
|
/**
|
9
9
|
* @readonly
|
10
10
|
* @enum {string}
|
11
|
-
* @property {string} STATIC
|
12
|
-
* @property {string} DYNAMIC_LEFT
|
13
|
-
* @property {string} DYNAMIC_RIGHT
|
14
|
-
* @property {string}
|
11
|
+
* @property {string} STATIC - Static windows cannot be moved and will be positioned top-left.
|
12
|
+
* @property {string} DYNAMIC_LEFT - Positioned top-left, if no static window is present. Can be moved by user interaction.
|
13
|
+
* @property {string} DYNAMIC_RIGHT - Positioned top-right. Can be moved by user interaction.
|
14
|
+
* @property {string} DYNAMIC_CHILD - Positioned top-right of a parent window. Can be moved by user interaction. Will be moved with parent window, if docked. Requires parentId.
|
15
|
+
* @property {string} DETACHED - Positioned at initial provided position. Can be moved by user interaction.
|
15
16
|
*/
|
16
17
|
export const WindowSlot = {
|
17
18
|
STATIC: 'static',
|
18
19
|
DYNAMIC_LEFT: 'dynamicLeft',
|
19
20
|
DYNAMIC_RIGHT: 'dynamicRight',
|
21
|
+
DYNAMIC_CHILD: 'dynamicChild',
|
20
22
|
DETACHED: 'detached',
|
21
23
|
};
|
22
24
|
|
23
|
-
|
24
25
|
/**
|
25
|
-
* @typedef WindowPositionOptions
|
26
|
+
* @typedef {Object} WindowPositionOptions
|
26
27
|
* @property {string|number|undefined} left Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
|
27
28
|
* @property {string|number|undefined} top Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
|
28
29
|
* @property {string|number|undefined} right Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
|
29
30
|
* @property {string|number|undefined} bottom Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
|
30
|
-
* @property {string|number|undefined} width Can be a css position string (e.g. '320px') number values are treated as `px` values
|
31
|
-
* @property {string|number|undefined} height Can be
|
31
|
+
* @property {string|number|undefined} width Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
|
32
|
+
* @property {string|number|undefined} height Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
|
33
|
+
* @property {string|number|undefined} maxHeight Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
|
34
|
+
* @property {string|number|undefined} maxWidth Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
|
35
|
+
* @property {string|number|undefined} minHeight Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
|
36
|
+
* @property {string|number|undefined} minWidth Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
|
32
37
|
*/
|
33
38
|
|
34
39
|
/**
|
35
|
-
* @typedef WindowPosition
|
36
|
-
* @property {string} left -
|
37
|
-
* @property {string} top -
|
38
|
-
* @property {string} right -
|
39
|
-
* @property {string} bottom -
|
40
|
-
* @property {string} width
|
41
|
-
* @property {string} height
|
40
|
+
* @typedef {Object} WindowPosition
|
41
|
+
* @property {string} left - The left CSS property participates in specifying the horizontal position of a window.
|
42
|
+
* @property {string} top - The top CSS property participates in specifying the vertical position of a window.
|
43
|
+
* @property {string} right - The right CSS property participates in specifying the horizontal position of a window.
|
44
|
+
* @property {string} bottom - The bottom CSS property participates in specifying the vertical position of a window.
|
45
|
+
* @property {string} width - The width CSS property sets an element's width.
|
46
|
+
* @property {string} height - The height CSS property sets an element's height.
|
47
|
+
* @property {string} [maxHeight] - It prevents the used value of the height property from becoming larger than the value specified for max-height. (max is target height, will be automatically updated)
|
48
|
+
* @property {string} [maxWidth] - It prevents the used value of the width property from becoming larger than the value specified by max-width. (max is target width, will be automatically updated)
|
49
|
+
* @property {string} [minHeight] - It prevents the used value of the height property from becoming smaller than the value specified for min-height.
|
50
|
+
* @property {string} [minWidth] - It prevents the used value of the width property from becoming smaller than the value specified for min-width.
|
42
51
|
*/
|
43
52
|
|
44
53
|
/**
|
45
54
|
* @readonly
|
46
|
-
* @enum {
|
47
|
-
* @property {
|
48
|
-
* @property {
|
49
|
-
* @property {
|
50
|
-
* @property {
|
55
|
+
* @enum {WindowPosition}
|
56
|
+
* @property {WindowPosition} TOP_LEFT position of the DYNAMIC_LEFT or STATIC Slot
|
57
|
+
* @property {WindowPosition} TOP_LEFT2 position of the DYNAMIC_LEFT Slot if a STATIC is present
|
58
|
+
* @property {WindowPosition} TOP_RIGHT position of the DYNAMIC_RIGHT Slot
|
59
|
+
* @property {WindowPosition} DETACHED default position of DETACHED Windows if no position is given
|
51
60
|
* @private
|
52
61
|
*/
|
53
62
|
export const WindowPositions = {
|
@@ -56,7 +65,7 @@ export const WindowPositions = {
|
|
56
65
|
top: '0px',
|
57
66
|
},
|
58
67
|
TOP_LEFT2: {
|
59
|
-
left: '
|
68
|
+
left: '322px', // 2px space
|
60
69
|
top: '0px',
|
61
70
|
},
|
62
71
|
TOP_RIGHT: {
|
@@ -69,15 +78,40 @@ export const WindowPositions = {
|
|
69
78
|
},
|
70
79
|
};
|
71
80
|
|
81
|
+
/**
|
82
|
+
* Return true, if all values of pos1 match with the corresponding values of pos2
|
83
|
+
* @param {WindowPosition} pos1
|
84
|
+
* @param {WindowPosition} pos2
|
85
|
+
* @returns {boolean}
|
86
|
+
*/
|
87
|
+
export function compareWindowPositions(pos1, pos2) {
|
88
|
+
return !Object.keys(pos1).some((key) => pos1[key] !== pos2[key]);
|
89
|
+
}
|
90
|
+
|
91
|
+
/**
|
92
|
+
* Returns true, if the provided position is a slot position
|
93
|
+
* @param {WindowPosition} windowPosition
|
94
|
+
* @returns {boolean}
|
95
|
+
*/
|
96
|
+
export function isSlotPosition(windowPosition) {
|
97
|
+
return [
|
98
|
+
WindowPositions.TOP_LEFT,
|
99
|
+
WindowPositions.TOP_LEFT2,
|
100
|
+
WindowPositions.TOP_RIGHT,
|
101
|
+
].some((s) => compareWindowPositions(s, windowPosition));
|
102
|
+
}
|
103
|
+
|
72
104
|
/**
|
73
105
|
* @typedef WindowComponentOptions
|
74
106
|
* @property {string} [id] Optional ID, If not provided an uuid will be generated.
|
75
|
-
* @property {
|
76
|
-
* @property {
|
77
|
-
* @property {
|
107
|
+
* @property {string} [parentId] An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
|
108
|
+
* @property {import("vue").Component} component Main Component which is shown below the header.
|
109
|
+
* @property {import("vue").Component} [headerComponent] Replaces the Header Component.
|
78
110
|
* @property {WindowState} [state]
|
79
|
-
* @property {
|
111
|
+
* @property {WindowPositionOptions} [position] Will be merged with default position for slot
|
112
|
+
* @property {WindowSlot} [slot]
|
80
113
|
* @property {Object} [props]
|
114
|
+
* @property {Object} [provides]
|
81
115
|
*/
|
82
116
|
|
83
117
|
/**
|
@@ -85,28 +119,39 @@ export const WindowPositions = {
|
|
85
119
|
* @property {string} id
|
86
120
|
* @property {string|vcsAppSymbol} owner Owner of the window, set by windowManager on add
|
87
121
|
* @property {boolean} [hideHeader] be used to not show the header.
|
88
|
-
* @property {
|
122
|
+
* @property {boolean} [hidePin] be used to not show the pin button.
|
123
|
+
* @property {string|string[]} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
|
89
124
|
* @property {string} [headerIcon]
|
90
|
-
* @property {
|
125
|
+
* @property {Array<VcsAction>} [headerActions]
|
126
|
+
* @property {number} [headerActionsOverflow]
|
127
|
+
* @property {string} [infoUrl] An optional url referencing help or further information on the window's content.
|
128
|
+
* @property {function():string} [infoUrlCallback] An optional function returning an url referencing help or further information. Can be used for urls depending on the app's locale, e.g. app.getHelpUrl()
|
129
|
+
* @property {boolean} [dockable] Auto derived from hidePin, current slot, current position and initial position.
|
130
|
+
* @property {Object<string, string>} [styles] Can be used to add additional styles to the root WindowComponent. Use Vue Style Bindings Object Syntax https://vuejs.org/v2/guide/class-and-style.html
|
91
131
|
* @property {Array<string>|Object<string,string>} [classes] Can be used to add additional classes to the root WindowComponent. Use Vue Class Bindings Syntax https://vuejs.org/v2/guide/class-and-style.html
|
92
132
|
*/
|
93
133
|
|
94
134
|
/**
|
95
135
|
* @typedef WindowComponent
|
96
136
|
* @property {string} id
|
97
|
-
* @property {
|
98
|
-
* @property {
|
99
|
-
* @property {
|
137
|
+
* @property {string} [parentId]
|
138
|
+
* @property {import("vue").Component} component
|
139
|
+
* @property {import("vue").Component} [headerComponent]
|
100
140
|
* @property {WindowState} state
|
101
|
-
* @property {
|
141
|
+
* @property {WindowPosition} [position]
|
142
|
+
* @property {WindowPositionOptions} initialPositionOptions
|
143
|
+
* @property {import("vue").Ref<WindowSlot>} slot
|
144
|
+
* @property {WindowSlot} initialSlot
|
102
145
|
* @property {Object} props
|
146
|
+
* @property {Object} provides
|
147
|
+
* @property {import("vue").ComputedGetter<number>} zIndex
|
103
148
|
*/
|
104
149
|
|
105
150
|
/**
|
106
151
|
* @param {string|number|undefined} pos
|
107
152
|
* @returns {string|undefined}
|
108
153
|
*/
|
109
|
-
function
|
154
|
+
export function posToPixel(pos) {
|
110
155
|
if (typeof pos === 'number') {
|
111
156
|
return `${pos}px`;
|
112
157
|
}
|
@@ -114,17 +159,21 @@ function parsePosition(pos) {
|
|
114
159
|
}
|
115
160
|
|
116
161
|
/**
|
162
|
+
* Returns CSS position string properties
|
117
163
|
* @param {WindowPositionOptions} windowPositionOptions
|
118
164
|
* @param {WindowPosition=} windowPosition
|
119
165
|
* @returns {WindowPosition}
|
120
166
|
*/
|
121
|
-
export function windowPositionFromOptions(
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
let
|
167
|
+
export function windowPositionFromOptions(
|
168
|
+
windowPositionOptions,
|
169
|
+
windowPosition = {},
|
170
|
+
) {
|
171
|
+
let left = posToPixel(windowPositionOptions.left) || 'unset';
|
172
|
+
const right = posToPixel(windowPositionOptions.right) || 'unset';
|
173
|
+
let top = posToPixel(windowPositionOptions.top) || 'unset';
|
174
|
+
const bottom = posToPixel(windowPositionOptions.bottom) || 'unset';
|
175
|
+
let width = posToPixel(windowPositionOptions.width) || 'auto';
|
176
|
+
let height = posToPixel(windowPositionOptions.height) || 'auto';
|
128
177
|
if (left !== 'unset' && right !== 'unset') {
|
129
178
|
width = 'auto'; // left + right takes precedence over configured width
|
130
179
|
} else if (width === 'auto') {
|
@@ -147,23 +196,50 @@ export function windowPositionFromOptions(windowPositionOptions, windowPosition
|
|
147
196
|
width,
|
148
197
|
height,
|
149
198
|
};
|
199
|
+
if (windowPositionOptions.maxWidth) {
|
200
|
+
result.maxWidth = posToPixel(windowPositionOptions.maxWidth);
|
201
|
+
}
|
202
|
+
if (windowPositionOptions.maxHeight) {
|
203
|
+
result.maxHeight = posToPixel(windowPositionOptions.maxHeight);
|
204
|
+
}
|
205
|
+
if (windowPositionOptions.minHeight) {
|
206
|
+
result.minHeight = posToPixel(windowPositionOptions.minHeight);
|
207
|
+
}
|
208
|
+
if (windowPositionOptions.minWidth) {
|
209
|
+
result.minWidth = posToPixel(windowPositionOptions.minWidth);
|
210
|
+
}
|
211
|
+
|
150
212
|
return Object.assign(windowPosition, result);
|
151
213
|
}
|
152
214
|
|
153
215
|
/**
|
154
|
-
*
|
155
|
-
* @param {
|
156
|
-
* @param {
|
157
|
-
* @param {string|HTMLElement} [element='mapElement']
|
158
|
-
* @returns {WindowPositionOptions}
|
216
|
+
* Sets a position on a component. Updates dockable state.
|
217
|
+
* @param {WindowComponent} windowComponent
|
218
|
+
* @param {WindowPositionOptions} windowPositionOptions
|
159
219
|
*/
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
220
|
+
function setWindowPosition(windowComponent, windowPositionOptions) {
|
221
|
+
const windowPosition = windowPositionFromOptions(
|
222
|
+
windowPositionOptions,
|
223
|
+
windowComponent.position,
|
224
|
+
);
|
225
|
+
// not one of the default Positions, so we also have to DETACH the windowState.
|
226
|
+
if (!isSlotPosition(windowPosition)) {
|
227
|
+
windowComponent.slot.value = WindowSlot.DETACHED;
|
228
|
+
}
|
229
|
+
// check dockable state
|
230
|
+
const initialWindowPosition = windowPositionFromOptions(
|
231
|
+
windowComponent.initialPositionOptions,
|
232
|
+
);
|
233
|
+
const isInitialPosition = compareWindowPositions(
|
234
|
+
windowPosition,
|
235
|
+
initialWindowPosition,
|
236
|
+
);
|
237
|
+
windowComponent.state.dockable =
|
238
|
+
windowComponent.slot.value === WindowSlot.DETACHED && !isInitialPosition;
|
239
|
+
|
240
|
+
if (isInitialPosition) {
|
241
|
+
windowComponent.slot.value = windowComponent.initialSlot;
|
164
242
|
}
|
165
|
-
const { left, top } = mapElement.getBoundingClientRect();
|
166
|
-
return { left: x - left, top: y - top };
|
167
243
|
}
|
168
244
|
|
169
245
|
/**
|
@@ -171,7 +247,7 @@ export function getWindowPositionOptions(x, y, element = 'mapElement') {
|
|
171
247
|
* @description Manages a set of Draggable Windows
|
172
248
|
* @implements VcsComponentManager<WindowComponent,WindowComponentOptions>
|
173
249
|
*/
|
174
|
-
|
250
|
+
class WindowManager {
|
175
251
|
constructor() {
|
176
252
|
/**
|
177
253
|
* @type {import("@vcmap/core").VcsEvent<WindowComponent>}
|
@@ -185,13 +261,23 @@ export class WindowManager {
|
|
185
261
|
* reactive ordered array of ids,
|
186
262
|
* @type {Array<string>}
|
187
263
|
*/
|
188
|
-
this.componentIds =
|
264
|
+
this.componentIds = [];
|
265
|
+
/**
|
266
|
+
* reactive ordered array of ids, defining the zIndex of a component
|
267
|
+
* @type {import("vue").Ref<Array<string>>}
|
268
|
+
*/
|
269
|
+
this._zIndices = ref([]);
|
189
270
|
|
190
271
|
/**
|
191
272
|
* @type {Map<string, WindowComponent>}
|
192
273
|
* @private
|
193
274
|
*/
|
194
275
|
this._windowComponents = new Map();
|
276
|
+
/**
|
277
|
+
* @type {Map<string, WindowPosition>}
|
278
|
+
* @private
|
279
|
+
*/
|
280
|
+
this._windowPositionsCache = new Map();
|
195
281
|
}
|
196
282
|
|
197
283
|
/**
|
@@ -219,11 +305,18 @@ export class WindowManager {
|
|
219
305
|
check(id, String);
|
220
306
|
const windowComponent = this._windowComponents.get(id);
|
221
307
|
if (windowComponent) {
|
222
|
-
|
223
|
-
this.componentIds.splice(
|
308
|
+
this._cachePosition(windowComponent);
|
309
|
+
this.componentIds.splice(this.componentIds.indexOf(id), 1);
|
310
|
+
this._zIndices.value.splice(this._zIndices.value.indexOf(id), 1);
|
224
311
|
this._windowComponents.delete(id);
|
225
312
|
this._handleSlotsChanged(windowComponent.slot.value);
|
226
313
|
this.removed.raiseEvent(windowComponent);
|
314
|
+
const child = Array.from(this._windowComponents.values()).find(
|
315
|
+
({ parentId }) => id === parentId,
|
316
|
+
);
|
317
|
+
if (child) {
|
318
|
+
this.remove(child.id);
|
319
|
+
}
|
227
320
|
}
|
228
321
|
}
|
229
322
|
|
@@ -234,14 +327,7 @@ export class WindowManager {
|
|
234
327
|
setWindowPositionOptions(id, windowPositionOptions) {
|
235
328
|
const windowComponent = this._windowComponents.get(id);
|
236
329
|
if (windowComponent) {
|
237
|
-
|
238
|
-
windowPositionOptions === WindowPositions.TOP_LEFT2 ||
|
239
|
-
windowPositionOptions === WindowPositions.TOP_RIGHT;
|
240
|
-
// not one of the default Positions, so we also have to DETACH the windowState.
|
241
|
-
if (!isSlotPosition) {
|
242
|
-
windowComponent.slot.value = WindowSlot.DETACHED;
|
243
|
-
}
|
244
|
-
windowPositionFromOptions(windowPositionOptions, windowComponent.position);
|
330
|
+
setWindowPosition(windowComponent, windowPositionOptions);
|
245
331
|
}
|
246
332
|
}
|
247
333
|
|
@@ -256,9 +342,15 @@ export class WindowManager {
|
|
256
342
|
const staticWindow = this._findWindowBySlot(WindowSlot.STATIC);
|
257
343
|
const dynamicWindowLeft = this._findWindowBySlot(WindowSlot.DYNAMIC_LEFT);
|
258
344
|
if (staticWindow && dynamicWindowLeft) {
|
259
|
-
this.setWindowPositionOptions(dynamicWindowLeft.id,
|
345
|
+
this.setWindowPositionOptions(dynamicWindowLeft.id, {
|
346
|
+
...dynamicWindowLeft.position,
|
347
|
+
...WindowPositions.TOP_LEFT2,
|
348
|
+
});
|
260
349
|
} else if (!staticWindow && dynamicWindowLeft) {
|
261
|
-
this.setWindowPositionOptions(dynamicWindowLeft.id,
|
350
|
+
this.setWindowPositionOptions(dynamicWindowLeft.id, {
|
351
|
+
...dynamicWindowLeft.position,
|
352
|
+
...WindowPositions.TOP_LEFT,
|
353
|
+
});
|
262
354
|
}
|
263
355
|
}
|
264
356
|
}
|
@@ -269,7 +361,9 @@ export class WindowManager {
|
|
269
361
|
* @private
|
270
362
|
*/
|
271
363
|
_findWindowBySlot(slot) {
|
272
|
-
return Array.from(this._windowComponents.values()).find(
|
364
|
+
return Array.from(this._windowComponents.values()).find(
|
365
|
+
(item) => item.slot.value === slot,
|
366
|
+
);
|
273
367
|
}
|
274
368
|
|
275
369
|
/**
|
@@ -280,18 +374,21 @@ export class WindowManager {
|
|
280
374
|
*/
|
281
375
|
_getPositionOptionsForSlot(slot, position) {
|
282
376
|
if (slot === WindowSlot.STATIC) {
|
283
|
-
return WindowPositions.TOP_LEFT;
|
377
|
+
return { ...WindowPositions.TOP_LEFT, maxWidth: '320px' };
|
284
378
|
}
|
285
379
|
if (slot === WindowSlot.DYNAMIC_LEFT) {
|
286
380
|
const windowAtStatic = this._findWindowBySlot(WindowSlot.STATIC);
|
287
381
|
if (windowAtStatic) {
|
288
|
-
return WindowPositions.TOP_LEFT2;
|
382
|
+
return { ...position, ...WindowPositions.TOP_LEFT2 };
|
289
383
|
} else {
|
290
|
-
return WindowPositions.TOP_LEFT;
|
384
|
+
return { ...position, ...WindowPositions.TOP_LEFT };
|
291
385
|
}
|
292
386
|
}
|
293
387
|
if (slot === WindowSlot.DYNAMIC_RIGHT) {
|
294
|
-
return WindowPositions.TOP_RIGHT;
|
388
|
+
return { ...position, ...WindowPositions.TOP_RIGHT };
|
389
|
+
}
|
390
|
+
if (slot === WindowSlot.DYNAMIC_CHILD) {
|
391
|
+
return { ...position, ...WindowPositions.TOP_LEFT };
|
295
392
|
}
|
296
393
|
return position || WindowPositions.DETACHED;
|
297
394
|
}
|
@@ -310,10 +407,52 @@ export class WindowManager {
|
|
310
407
|
}
|
311
408
|
}
|
312
409
|
|
410
|
+
/**
|
411
|
+
* @param {string} id
|
412
|
+
* @returns {WindowPosition|undefined}
|
413
|
+
*/
|
414
|
+
getCachedPosition(id) {
|
415
|
+
return this._windowPositionsCache.get(id);
|
416
|
+
}
|
417
|
+
|
418
|
+
/**
|
419
|
+
* Caches the position, if it differs from the initial position
|
420
|
+
* @param {WindowComponent} windowComponent
|
421
|
+
* @private
|
422
|
+
*/
|
423
|
+
_cachePosition(windowComponent) {
|
424
|
+
const initialWindowPosition = windowPositionFromOptions(
|
425
|
+
windowComponent.initialPositionOptions,
|
426
|
+
);
|
427
|
+
if (
|
428
|
+
!compareWindowPositions(initialWindowPosition, windowComponent.position)
|
429
|
+
) {
|
430
|
+
this._windowPositionsCache.set(windowComponent.id, {
|
431
|
+
...windowComponent.position,
|
432
|
+
});
|
433
|
+
}
|
434
|
+
}
|
435
|
+
|
436
|
+
/**
|
437
|
+
* Returns true, if cached position was assigned.
|
438
|
+
* @param {WindowComponent} windowComponent
|
439
|
+
* @returns {boolean}
|
440
|
+
* @private
|
441
|
+
*/
|
442
|
+
_assignCachedPosition(windowComponent) {
|
443
|
+
if (this._windowPositionsCache.has(windowComponent.id)) {
|
444
|
+
const windowPosition = this.getCachedPosition(windowComponent.id);
|
445
|
+
setWindowPosition(windowComponent, windowPosition);
|
446
|
+
this._windowPositionsCache.delete(windowComponent.id);
|
447
|
+
return true;
|
448
|
+
}
|
449
|
+
return false;
|
450
|
+
}
|
451
|
+
|
313
452
|
/**
|
314
453
|
* adds a windowComponent to the WindowManager and renders the Window at the provided position/slot.
|
315
454
|
* The reactive WindowState Object can be used to watch Changes on position/WindowSlot.
|
316
|
-
* The WindowState Object can also be used to change hideHeader, headerTitle, headerIcon, styles and classes
|
455
|
+
* The WindowState Object can also be used to change hideHeader, headerTitle, headerIcon, headerActions, styles and classes
|
317
456
|
* @param {WindowComponentOptions|WindowComponent} windowComponentOptions
|
318
457
|
* @param {string|symbol} owner pluginName or vcsAppSymbol
|
319
458
|
* @throws {Error} if a windowComponent with the same ID has already been added
|
@@ -323,36 +462,60 @@ export class WindowManager {
|
|
323
462
|
check(owner, [String, vcsAppSymbol]);
|
324
463
|
|
325
464
|
if (windowComponentOptions.id && this.has(windowComponentOptions.id)) {
|
326
|
-
throw new Error(
|
465
|
+
throw new Error(
|
466
|
+
`A window with id ${windowComponentOptions.id} has already been registered.`,
|
467
|
+
);
|
327
468
|
}
|
328
469
|
const id = windowComponentOptions.id || uuidv4();
|
329
|
-
const
|
470
|
+
const parentId = windowComponentOptions?.parentId;
|
471
|
+
const slotOption =
|
472
|
+
windowComponentOptions.slot?.value || windowComponentOptions.slot;
|
330
473
|
const slot = parseEnumValue(slotOption, WindowSlot, WindowSlot.DETACHED);
|
331
|
-
|
474
|
+
if (
|
475
|
+
slot === WindowSlot.DYNAMIC_CHILD &&
|
476
|
+
!this.has(windowComponentOptions.parentId)
|
477
|
+
) {
|
478
|
+
throw new Error(
|
479
|
+
`The mandatory parent window with id ${windowComponentOptions.parentId} is not registered. Add the parent window or choose another slot than dynamicChild.`,
|
480
|
+
);
|
481
|
+
}
|
482
|
+
const windowPositionOptions = this._getPositionOptionsForSlot(
|
483
|
+
slot,
|
484
|
+
windowComponentOptions.position,
|
485
|
+
);
|
332
486
|
const windowPosition = windowPositionFromOptions(windowPositionOptions);
|
333
487
|
|
334
488
|
const slotRef = ref(slot);
|
335
|
-
const {
|
336
|
-
component, headerComponent,
|
337
|
-
} = windowComponentOptions;
|
489
|
+
const { component, headerComponent } = windowComponentOptions;
|
338
490
|
const styles = { ...windowComponentOptions?.state?.styles };
|
339
|
-
const classes = Array.isArray(windowComponentOptions?.state?.classes)
|
340
|
-
[...(windowComponentOptions?.state?.classes ?? [])]
|
341
|
-
{ ...windowComponentOptions?.state?.classes };
|
491
|
+
const classes = Array.isArray(windowComponentOptions?.state?.classes)
|
492
|
+
? [...(windowComponentOptions?.state?.classes ?? [])]
|
493
|
+
: { ...windowComponentOptions?.state?.classes };
|
342
494
|
|
343
495
|
const state = reactive({
|
344
496
|
id,
|
497
|
+
parentId,
|
345
498
|
owner,
|
346
499
|
hideHeader: !!windowComponentOptions?.state?.hideHeader,
|
500
|
+
hidePin: !!windowComponentOptions?.state?.hidePin,
|
347
501
|
headerTitle: windowComponentOptions?.state?.headerTitle,
|
348
502
|
headerIcon: windowComponentOptions?.state?.headerIcon,
|
503
|
+
headerActions: windowComponentOptions?.state?.headerActions,
|
504
|
+
headerActionsOverflow:
|
505
|
+
windowComponentOptions?.state?.headerActionsOverflow,
|
506
|
+
dockable: false,
|
507
|
+
infoUrl: windowComponentOptions?.state?.infoUrl,
|
508
|
+
infoUrlCallback: windowComponentOptions?.state?.infoUrlCallback,
|
349
509
|
classes,
|
350
510
|
styles,
|
351
511
|
});
|
352
512
|
|
353
513
|
const props = windowComponentOptions.props || {};
|
514
|
+
const provides = windowComponentOptions.provides || {};
|
354
515
|
|
355
516
|
const position = reactive(windowPosition);
|
517
|
+
const initialPosition = { ...windowPositionOptions };
|
518
|
+
const zIndex = computed(() => this._zIndices.value.indexOf(id));
|
356
519
|
/**
|
357
520
|
* @type {WindowComponent}
|
358
521
|
*/
|
@@ -360,6 +523,9 @@ export class WindowManager {
|
|
360
523
|
get id() {
|
361
524
|
return id;
|
362
525
|
},
|
526
|
+
get parentId() {
|
527
|
+
return parentId;
|
528
|
+
},
|
363
529
|
get state() {
|
364
530
|
return state;
|
365
531
|
},
|
@@ -372,16 +538,32 @@ export class WindowManager {
|
|
372
538
|
get slot() {
|
373
539
|
return slotRef;
|
374
540
|
},
|
541
|
+
get initialSlot() {
|
542
|
+
return slot;
|
543
|
+
},
|
375
544
|
get position() {
|
376
545
|
return position;
|
377
546
|
},
|
547
|
+
get initialPositionOptions() {
|
548
|
+
return initialPosition;
|
549
|
+
},
|
378
550
|
get props() {
|
379
551
|
return props;
|
380
552
|
},
|
553
|
+
get provides() {
|
554
|
+
return provides;
|
555
|
+
},
|
556
|
+
get zIndex() {
|
557
|
+
return zIndex;
|
558
|
+
},
|
381
559
|
};
|
382
|
-
this.
|
560
|
+
const cached = this._assignCachedPosition(windowComponent);
|
561
|
+
if (!cached) {
|
562
|
+
this._removeWindowAtSlot(slot);
|
563
|
+
}
|
383
564
|
this._windowComponents.set(id, windowComponent);
|
384
565
|
this.componentIds.push(id);
|
566
|
+
this._zIndices.value.push(id);
|
385
567
|
this._handleSlotsChanged(slot);
|
386
568
|
this.added.raiseEvent(windowComponent);
|
387
569
|
return windowComponent;
|
@@ -393,14 +575,36 @@ export class WindowManager {
|
|
393
575
|
*/
|
394
576
|
bringWindowToTop(id) {
|
395
577
|
if (this.has(id)) {
|
396
|
-
const index = this.
|
397
|
-
if (index >= 0 && index !== this.
|
398
|
-
this.
|
399
|
-
this.
|
578
|
+
const index = this._zIndices.value.indexOf(id);
|
579
|
+
if (index >= 0 && index !== this._zIndices.value.length - 1) {
|
580
|
+
this._zIndices.value.push(id);
|
581
|
+
this._zIndices.value.splice(index, 1);
|
400
582
|
}
|
401
583
|
}
|
402
584
|
}
|
403
585
|
|
586
|
+
/**
|
587
|
+
* Docks a window by resetting detached to its initial slot.
|
588
|
+
* Updates position according to its initial slot or initial position.
|
589
|
+
* Clears any cached position for this window.
|
590
|
+
* @param {string} id
|
591
|
+
*/
|
592
|
+
pinWindow(id) {
|
593
|
+
const component = this.get(id);
|
594
|
+
if (!component?.state?.dockable) {
|
595
|
+
return;
|
596
|
+
}
|
597
|
+
this._removeWindowAtSlot(component.initialSlot);
|
598
|
+
component.slot.value = component.initialSlot;
|
599
|
+
component.state.dockable = false;
|
600
|
+
const dockedPosition = this._getPositionOptionsForSlot(
|
601
|
+
component.initialSlot,
|
602
|
+
component.initialPositionOptions,
|
603
|
+
);
|
604
|
+
windowPositionFromOptions(dockedPosition, component.position);
|
605
|
+
this._windowPositionsCache.delete(id);
|
606
|
+
}
|
607
|
+
|
404
608
|
/**
|
405
609
|
* removes all windowComponents of a specific owner (plugin) and fires removed Events
|
406
610
|
* @param {string|vcsAppSymbol} owner
|
@@ -420,7 +624,9 @@ export class WindowManager {
|
|
420
624
|
*/
|
421
625
|
clear() {
|
422
626
|
const componentIds = [...this.componentIds];
|
423
|
-
componentIds.forEach((id) => {
|
627
|
+
componentIds.forEach((id) => {
|
628
|
+
this.remove(id);
|
629
|
+
});
|
424
630
|
}
|
425
631
|
|
426
632
|
/**
|
@@ -433,3 +639,5 @@ export class WindowManager {
|
|
433
639
|
this._windowComponents.clear();
|
434
640
|
}
|
435
641
|
}
|
642
|
+
|
643
|
+
export default WindowManager;
|