@vcmap/ui 5.0.0-rc.9 → 5.0.1
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 +607 -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 +1843 -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.888ef7.js +164897 -0
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/core.860907.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-f265c560.js +1 -0
- package/dist/assets/ol.5e8a90.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.7758a8.css +5 -0
- package/dist/assets/ui.7758a8.js +16909 -0
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.9771b3.js +4911 -0
- package/dist/assets/vue.js +5 -1
- package/dist/assets/vuetify.2818ff.css +5 -0
- package/dist/assets/vuetify.2818ff.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 +56 -36
- 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 +187 -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 +136 -0
- package/src/actions/actionHelper.js +203 -50
- 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 +593 -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 +986 -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 +503 -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 +35 -16
- 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 +257 -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 +298 -87
- package/src/navigation/{mapNavCompass.vue → MapNavCompass.vue} +31 -11
- package/src/navigation/MapNavigation.vue +276 -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
|
|
@@ -252,13 +338,22 @@ export class WindowManager {
|
|
252
338
|
* @private
|
253
339
|
*/
|
254
340
|
_handleSlotsChanged(changedSlot) {
|
255
|
-
if (
|
341
|
+
if (
|
342
|
+
changedSlot === WindowSlot.STATIC ||
|
343
|
+
changedSlot === WindowSlot.DYNAMIC_LEFT
|
344
|
+
) {
|
256
345
|
const staticWindow = this._findWindowBySlot(WindowSlot.STATIC);
|
257
346
|
const dynamicWindowLeft = this._findWindowBySlot(WindowSlot.DYNAMIC_LEFT);
|
258
347
|
if (staticWindow && dynamicWindowLeft) {
|
259
|
-
this.setWindowPositionOptions(dynamicWindowLeft.id,
|
348
|
+
this.setWindowPositionOptions(dynamicWindowLeft.id, {
|
349
|
+
...dynamicWindowLeft.position,
|
350
|
+
...WindowPositions.TOP_LEFT2,
|
351
|
+
});
|
260
352
|
} else if (!staticWindow && dynamicWindowLeft) {
|
261
|
-
this.setWindowPositionOptions(dynamicWindowLeft.id,
|
353
|
+
this.setWindowPositionOptions(dynamicWindowLeft.id, {
|
354
|
+
...dynamicWindowLeft.position,
|
355
|
+
...WindowPositions.TOP_LEFT,
|
356
|
+
});
|
262
357
|
}
|
263
358
|
}
|
264
359
|
}
|
@@ -269,7 +364,9 @@ export class WindowManager {
|
|
269
364
|
* @private
|
270
365
|
*/
|
271
366
|
_findWindowBySlot(slot) {
|
272
|
-
return Array.from(this._windowComponents.values()).find(
|
367
|
+
return Array.from(this._windowComponents.values()).find(
|
368
|
+
(item) => item.slot.value === slot,
|
369
|
+
);
|
273
370
|
}
|
274
371
|
|
275
372
|
/**
|
@@ -280,18 +377,21 @@ export class WindowManager {
|
|
280
377
|
*/
|
281
378
|
_getPositionOptionsForSlot(slot, position) {
|
282
379
|
if (slot === WindowSlot.STATIC) {
|
283
|
-
return WindowPositions.TOP_LEFT;
|
380
|
+
return { ...WindowPositions.TOP_LEFT, maxWidth: '320px' };
|
284
381
|
}
|
285
382
|
if (slot === WindowSlot.DYNAMIC_LEFT) {
|
286
383
|
const windowAtStatic = this._findWindowBySlot(WindowSlot.STATIC);
|
287
384
|
if (windowAtStatic) {
|
288
|
-
return WindowPositions.TOP_LEFT2;
|
385
|
+
return { ...position, ...WindowPositions.TOP_LEFT2 };
|
289
386
|
} else {
|
290
|
-
return WindowPositions.TOP_LEFT;
|
387
|
+
return { ...position, ...WindowPositions.TOP_LEFT };
|
291
388
|
}
|
292
389
|
}
|
293
390
|
if (slot === WindowSlot.DYNAMIC_RIGHT) {
|
294
|
-
return WindowPositions.TOP_RIGHT;
|
391
|
+
return { ...position, ...WindowPositions.TOP_RIGHT };
|
392
|
+
}
|
393
|
+
if (slot === WindowSlot.DYNAMIC_CHILD) {
|
394
|
+
return { ...position, ...WindowPositions.TOP_LEFT };
|
295
395
|
}
|
296
396
|
return position || WindowPositions.DETACHED;
|
297
397
|
}
|
@@ -310,10 +410,52 @@ export class WindowManager {
|
|
310
410
|
}
|
311
411
|
}
|
312
412
|
|
413
|
+
/**
|
414
|
+
* @param {string} id
|
415
|
+
* @returns {WindowPosition|undefined}
|
416
|
+
*/
|
417
|
+
getCachedPosition(id) {
|
418
|
+
return this._windowPositionsCache.get(id);
|
419
|
+
}
|
420
|
+
|
421
|
+
/**
|
422
|
+
* Caches the position, if it differs from the initial position
|
423
|
+
* @param {WindowComponent} windowComponent
|
424
|
+
* @private
|
425
|
+
*/
|
426
|
+
_cachePosition(windowComponent) {
|
427
|
+
const initialWindowPosition = windowPositionFromOptions(
|
428
|
+
windowComponent.initialPositionOptions,
|
429
|
+
);
|
430
|
+
if (
|
431
|
+
!compareWindowPositions(initialWindowPosition, windowComponent.position)
|
432
|
+
) {
|
433
|
+
this._windowPositionsCache.set(windowComponent.id, {
|
434
|
+
...windowComponent.position,
|
435
|
+
});
|
436
|
+
}
|
437
|
+
}
|
438
|
+
|
439
|
+
/**
|
440
|
+
* Returns true, if cached position was assigned.
|
441
|
+
* @param {WindowComponent} windowComponent
|
442
|
+
* @returns {boolean}
|
443
|
+
* @private
|
444
|
+
*/
|
445
|
+
_assignCachedPosition(windowComponent) {
|
446
|
+
if (this._windowPositionsCache.has(windowComponent.id)) {
|
447
|
+
const windowPosition = this.getCachedPosition(windowComponent.id);
|
448
|
+
setWindowPosition(windowComponent, windowPosition);
|
449
|
+
this._windowPositionsCache.delete(windowComponent.id);
|
450
|
+
return true;
|
451
|
+
}
|
452
|
+
return false;
|
453
|
+
}
|
454
|
+
|
313
455
|
/**
|
314
456
|
* adds a windowComponent to the WindowManager and renders the Window at the provided position/slot.
|
315
457
|
* 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
|
458
|
+
* The WindowState Object can also be used to change hideHeader, headerTitle, headerIcon, headerActions, styles and classes
|
317
459
|
* @param {WindowComponentOptions|WindowComponent} windowComponentOptions
|
318
460
|
* @param {string|symbol} owner pluginName or vcsAppSymbol
|
319
461
|
* @throws {Error} if a windowComponent with the same ID has already been added
|
@@ -323,36 +465,60 @@ export class WindowManager {
|
|
323
465
|
check(owner, [String, vcsAppSymbol]);
|
324
466
|
|
325
467
|
if (windowComponentOptions.id && this.has(windowComponentOptions.id)) {
|
326
|
-
throw new Error(
|
468
|
+
throw new Error(
|
469
|
+
`A window with id ${windowComponentOptions.id} has already been registered.`,
|
470
|
+
);
|
327
471
|
}
|
328
472
|
const id = windowComponentOptions.id || uuidv4();
|
329
|
-
const
|
473
|
+
const parentId = windowComponentOptions?.parentId;
|
474
|
+
const slotOption =
|
475
|
+
windowComponentOptions.slot?.value || windowComponentOptions.slot;
|
330
476
|
const slot = parseEnumValue(slotOption, WindowSlot, WindowSlot.DETACHED);
|
331
|
-
|
477
|
+
if (
|
478
|
+
slot === WindowSlot.DYNAMIC_CHILD &&
|
479
|
+
!this.has(windowComponentOptions.parentId)
|
480
|
+
) {
|
481
|
+
throw new Error(
|
482
|
+
`The mandatory parent window with id ${windowComponentOptions.parentId} is not registered. Add the parent window or choose another slot than dynamicChild.`,
|
483
|
+
);
|
484
|
+
}
|
485
|
+
const windowPositionOptions = this._getPositionOptionsForSlot(
|
486
|
+
slot,
|
487
|
+
windowComponentOptions.position,
|
488
|
+
);
|
332
489
|
const windowPosition = windowPositionFromOptions(windowPositionOptions);
|
333
490
|
|
334
491
|
const slotRef = ref(slot);
|
335
|
-
const {
|
336
|
-
component, headerComponent,
|
337
|
-
} = windowComponentOptions;
|
492
|
+
const { component, headerComponent } = windowComponentOptions;
|
338
493
|
const styles = { ...windowComponentOptions?.state?.styles };
|
339
|
-
const classes = Array.isArray(windowComponentOptions?.state?.classes)
|
340
|
-
[...(windowComponentOptions?.state?.classes ?? [])]
|
341
|
-
{ ...windowComponentOptions?.state?.classes };
|
494
|
+
const classes = Array.isArray(windowComponentOptions?.state?.classes)
|
495
|
+
? [...(windowComponentOptions?.state?.classes ?? [])]
|
496
|
+
: { ...windowComponentOptions?.state?.classes };
|
342
497
|
|
343
498
|
const state = reactive({
|
344
499
|
id,
|
500
|
+
parentId,
|
345
501
|
owner,
|
346
502
|
hideHeader: !!windowComponentOptions?.state?.hideHeader,
|
503
|
+
hidePin: !!windowComponentOptions?.state?.hidePin,
|
347
504
|
headerTitle: windowComponentOptions?.state?.headerTitle,
|
348
505
|
headerIcon: windowComponentOptions?.state?.headerIcon,
|
506
|
+
headerActions: windowComponentOptions?.state?.headerActions,
|
507
|
+
headerActionsOverflow:
|
508
|
+
windowComponentOptions?.state?.headerActionsOverflow,
|
509
|
+
dockable: false,
|
510
|
+
infoUrl: windowComponentOptions?.state?.infoUrl,
|
511
|
+
infoUrlCallback: windowComponentOptions?.state?.infoUrlCallback,
|
349
512
|
classes,
|
350
513
|
styles,
|
351
514
|
});
|
352
515
|
|
353
516
|
const props = windowComponentOptions.props || {};
|
517
|
+
const provides = windowComponentOptions.provides || {};
|
354
518
|
|
355
519
|
const position = reactive(windowPosition);
|
520
|
+
const initialPosition = { ...windowPositionOptions };
|
521
|
+
const zIndex = computed(() => this._zIndices.value.indexOf(id));
|
356
522
|
/**
|
357
523
|
* @type {WindowComponent}
|
358
524
|
*/
|
@@ -360,6 +526,9 @@ export class WindowManager {
|
|
360
526
|
get id() {
|
361
527
|
return id;
|
362
528
|
},
|
529
|
+
get parentId() {
|
530
|
+
return parentId;
|
531
|
+
},
|
363
532
|
get state() {
|
364
533
|
return state;
|
365
534
|
},
|
@@ -372,16 +541,32 @@ export class WindowManager {
|
|
372
541
|
get slot() {
|
373
542
|
return slotRef;
|
374
543
|
},
|
544
|
+
get initialSlot() {
|
545
|
+
return slot;
|
546
|
+
},
|
375
547
|
get position() {
|
376
548
|
return position;
|
377
549
|
},
|
550
|
+
get initialPositionOptions() {
|
551
|
+
return initialPosition;
|
552
|
+
},
|
378
553
|
get props() {
|
379
554
|
return props;
|
380
555
|
},
|
556
|
+
get provides() {
|
557
|
+
return provides;
|
558
|
+
},
|
559
|
+
get zIndex() {
|
560
|
+
return zIndex;
|
561
|
+
},
|
381
562
|
};
|
382
|
-
this.
|
563
|
+
const cached = this._assignCachedPosition(windowComponent);
|
564
|
+
if (!cached) {
|
565
|
+
this._removeWindowAtSlot(slot);
|
566
|
+
}
|
383
567
|
this._windowComponents.set(id, windowComponent);
|
384
568
|
this.componentIds.push(id);
|
569
|
+
this._zIndices.value.push(id);
|
385
570
|
this._handleSlotsChanged(slot);
|
386
571
|
this.added.raiseEvent(windowComponent);
|
387
572
|
return windowComponent;
|
@@ -393,14 +578,36 @@ export class WindowManager {
|
|
393
578
|
*/
|
394
579
|
bringWindowToTop(id) {
|
395
580
|
if (this.has(id)) {
|
396
|
-
const index = this.
|
397
|
-
if (index >= 0 && index !== this.
|
398
|
-
this.
|
399
|
-
this.
|
581
|
+
const index = this._zIndices.value.indexOf(id);
|
582
|
+
if (index >= 0 && index !== this._zIndices.value.length - 1) {
|
583
|
+
this._zIndices.value.push(id);
|
584
|
+
this._zIndices.value.splice(index, 1);
|
400
585
|
}
|
401
586
|
}
|
402
587
|
}
|
403
588
|
|
589
|
+
/**
|
590
|
+
* Docks a window by resetting detached to its initial slot.
|
591
|
+
* Updates position according to its initial slot or initial position.
|
592
|
+
* Clears any cached position for this window.
|
593
|
+
* @param {string} id
|
594
|
+
*/
|
595
|
+
pinWindow(id) {
|
596
|
+
const component = this.get(id);
|
597
|
+
if (!component?.state?.dockable) {
|
598
|
+
return;
|
599
|
+
}
|
600
|
+
this._removeWindowAtSlot(component.initialSlot);
|
601
|
+
component.slot.value = component.initialSlot;
|
602
|
+
component.state.dockable = false;
|
603
|
+
const dockedPosition = this._getPositionOptionsForSlot(
|
604
|
+
component.initialSlot,
|
605
|
+
component.initialPositionOptions,
|
606
|
+
);
|
607
|
+
windowPositionFromOptions(dockedPosition, component.position);
|
608
|
+
this._windowPositionsCache.delete(id);
|
609
|
+
}
|
610
|
+
|
404
611
|
/**
|
405
612
|
* removes all windowComponents of a specific owner (plugin) and fires removed Events
|
406
613
|
* @param {string|vcsAppSymbol} owner
|
@@ -420,7 +627,9 @@ export class WindowManager {
|
|
420
627
|
*/
|
421
628
|
clear() {
|
422
629
|
const componentIds = [...this.componentIds];
|
423
|
-
componentIds.forEach((id) => {
|
630
|
+
componentIds.forEach((id) => {
|
631
|
+
this.remove(id);
|
632
|
+
});
|
424
633
|
}
|
425
634
|
|
426
635
|
/**
|
@@ -433,3 +642,5 @@ export class WindowManager {
|
|
433
642
|
this._windowComponents.clear();
|
434
643
|
}
|
435
644
|
}
|
645
|
+
|
646
|
+
export default WindowManager;
|