@vcmap/ui 6.0.0-rc.1 → 6.0.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/build.js +40 -60
- package/build/buildHelpers.js +63 -20
- package/build/buildTypes.js +9 -5
- package/build/bundle.js +1 -1
- package/build/info/conf.json +1 -1
- package/build/info/publish.js +25 -31
- package/build/lintTypes.js +5 -0
- package/config/aerowest.config.json +12 -2
- package/config/base.config.json +22 -17
- package/config/dev.config.json +164 -4
- package/config/projects.config.json +3 -1
- package/config/solar.config.json +65 -0
- package/config/splashscreen.config.json +45 -0
- package/config/theming.config.json +68 -0
- package/config/www.config.json +39 -23
- package/dist/.htaccess +7 -0
- package/dist/assets/@mdi/font/README.md +25 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.min-680621ca.css +3 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
- package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/dist/assets/cesium/Assets/approximateTerrainHeights.json +1 -1
- package/dist/assets/cesium/ThirdParty/Workers/z-worker-pako.js +1 -1
- package/dist/assets/cesium/Workers/{chunk-JB2LWGH4.js → chunk-2LOWCAMW.js} +14 -14
- package/dist/assets/cesium/Workers/{chunk-Z24VKNDO.js → chunk-2PTKXHJB.js} +12 -12
- package/dist/assets/cesium/Workers/{chunk-AHKEZ2OE.js → chunk-3HQMMUPU.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-V3NGATMV.js → chunk-3IFRSGEY.js} +11 -13
- package/dist/assets/cesium/Workers/{chunk-66QLLS45.js → chunk-44QAAS4P.js} +11 -9
- package/dist/assets/cesium/Workers/{chunk-TFC6TZ3S.js → chunk-56EDBCGT.js} +33 -22
- package/dist/assets/cesium/Workers/{chunk-3W63OHNJ.js → chunk-57H6I3SV.js} +5 -5
- package/dist/assets/cesium/Workers/{chunk-PFQBCKBM.js → chunk-6SQMLVGV.js} +5206 -3483
- package/dist/assets/cesium/Workers/{chunk-OZJDGN5F.js → chunk-7YIOHQWH.js} +16 -16
- package/dist/assets/cesium/Workers/{chunk-XTY7B2N6.js → chunk-7ZZ5LMZY.js} +17 -16
- package/dist/assets/cesium/Workers/{chunk-HARLBUOL.js → chunk-BVKITG4N.js} +11 -8
- package/dist/assets/cesium/Workers/{chunk-AFFLIKOH.js → chunk-C3EQ27WF.js} +7 -7
- package/dist/assets/cesium/Workers/{chunk-RW6LU2CJ.js → chunk-C4WPMOKT.js} +6 -5
- package/dist/assets/cesium/Workers/{chunk-OYFCF4PL.js → chunk-EDLRS3AW.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-C3SXRKRW.js → chunk-EJVGYGLF.js} +7 -7
- package/dist/assets/cesium/Workers/{chunk-PCJWUS4M.js → chunk-FFLMY4TE.js} +830 -14
- package/dist/assets/cesium/Workers/{chunk-MPAZH4BF.js → chunk-GBT7MJ6X.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-ZA25DG4Y.js → chunk-HJMNR3GC.js} +11 -11
- package/dist/assets/cesium/Workers/{chunk-JS3AW5BK.js → chunk-HP5XLODI.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-34YUDLRP.js → chunk-IBRIWOCM.js} +13 -13
- package/dist/assets/cesium/Workers/{chunk-XY7MGBKC.js → chunk-IZGUQO6Q.js} +14 -16
- package/dist/assets/cesium/Workers/{chunk-KTJSNCK4.js → chunk-IZJ42N4W.js} +230 -20
- package/dist/assets/cesium/Workers/{chunk-QMEMZIJI.js → chunk-JBSKHTNX.js} +4 -4
- package/dist/assets/cesium/Workers/{chunk-QIKODV5G.js → chunk-JISPSEF3.js} +4 -4
- package/dist/assets/cesium/Workers/{chunk-K36FEYS7.js → chunk-JSQJDZI4.js} +16 -12
- package/dist/assets/cesium/Workers/{chunk-X4SU25DT.js → chunk-JXVLNVXC.js} +10 -12
- package/dist/assets/cesium/Workers/chunk-KHZNBFOH.js +963 -0
- package/dist/assets/cesium/Workers/{chunk-KD4Y7CZL.js → chunk-L5GODJAR.js} +15 -17
- package/dist/assets/cesium/Workers/{chunk-O5AMBQ36.js → chunk-LJ2JQHJT.js} +13 -8
- package/dist/assets/cesium/Workers/{chunk-ABADGKYE.js → chunk-LLAF3CPH.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-CHHNOC2C.js → chunk-M24KHENR.js} +95 -155
- package/dist/assets/cesium/Workers/{chunk-2R5O53JW.js → chunk-NDDI2LWR.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-QT3MPEMI.js → chunk-NGZJIN5Z.js} +4 -4
- package/dist/assets/cesium/Workers/{chunk-ZFOBYDGF.js → chunk-O72GZTSE.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-IPA4EACJ.js → chunk-OPP2SKMA.js} +12 -12
- package/dist/assets/cesium/Workers/{chunk-4MFFIWUA.js → chunk-P6TRGU3S.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-GLZBE3ML.js → chunk-QN6TBED4.js} +13 -13
- package/dist/assets/cesium/Workers/{chunk-MYZB7C4T.js → chunk-QQOZO7KO.js} +10 -10
- package/dist/assets/cesium/Workers/{chunk-HQF437NJ.js → chunk-RJM36CNY.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-CTELOFLA.js → chunk-RTJKHZWU.js} +6 -6
- package/dist/assets/cesium/Workers/{chunk-J3JY6I2C.js → chunk-TI3TRKIC.js} +425 -489
- package/dist/assets/cesium/Workers/{chunk-OAVNIRB4.js → chunk-TK5IIG2F.js} +5 -7
- package/dist/assets/cesium/Workers/{chunk-WXTV4ATB.js → chunk-U5HSOKPQ.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-N3JIFFX2.js → chunk-WGDFYAGC.js} +5 -6
- package/dist/assets/cesium/Workers/{chunk-EW2GWJYB.js → chunk-X7IQYYHF.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-LLUNNUJV.js → chunk-XIUSRWL6.js} +9 -5
- package/dist/assets/cesium/Workers/{chunk-CCFQRR6D.js → chunk-XWOUPGUF.js} +1 -1
- package/dist/assets/cesium/Workers/{chunk-6BTKZDRG.js → chunk-YCDZX5LS.js} +3 -5
- package/dist/assets/cesium/Workers/{chunk-RP2A7BR5.js → chunk-YK3QIKY7.js} +12 -14
- package/dist/assets/cesium/Workers/{chunk-227AJNOA.js → chunk-YSIJTJ7N.js} +5 -5
- package/dist/assets/cesium/Workers/{chunk-A4JVFBQ3.js → chunk-Z2QP3CXW.js} +2 -2
- package/dist/assets/cesium/Workers/{chunk-VLGOATD6.js → chunk-ZVUUPJEM.js} +22 -22
- package/dist/assets/cesium/Workers/combineGeometry.js +22 -23
- package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -17
- package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -15
- package/dist/assets/cesium/Workers/createCircleGeometry.js +29 -26
- package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -18
- package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +35 -36
- package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -30
- package/dist/assets/cesium/Workers/createCorridorGeometry.js +29 -30
- package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +27 -28
- package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -19
- package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +17 -19
- package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -25
- package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -18
- package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -18
- package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -17
- package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -17
- package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +18 -18
- package/dist/assets/cesium/Workers/createGeometry.js +52 -33
- package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +28 -29
- package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -15
- package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -14
- package/dist/assets/cesium/Workers/createPolygonGeometry.js +451 -176
- package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +29 -30
- package/dist/assets/cesium/Workers/createPolylineGeometry.js +24 -25
- package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +31 -33
- package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +27 -29
- package/dist/assets/cesium/Workers/createRectangleGeometry.js +30 -31
- package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +21 -24
- package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +22 -23
- package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -18
- package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -17
- package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
- package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +14 -16
- package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -23
- package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
- package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -21
- package/dist/assets/cesium/Workers/createVectorTilePolylines.js +14 -16
- package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +24 -25
- package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +29 -26
- package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +19 -21
- package/dist/assets/cesium/Workers/createWallGeometry.js +23 -24
- package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +22 -23
- package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
- package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +35 -19
- package/dist/assets/cesium/Workers/decodeI3S.js +600 -92
- package/dist/assets/cesium/Workers/transcodeKTX2.js +58 -93
- package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
- package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +21 -22
- package/dist/assets/{cesium.6b12b4.js → cesium-9ea5ba6e.js} +73315 -68035
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.074b78.js → core-9b003470.js} +7135 -5664
- package/dist/assets/core.js +1 -1
- package/dist/assets/{ol.8b2e3a.js → ol-8373d6ac.js} +43066 -44325
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-163311a7.css +1 -0
- package/dist/assets/{ui.715986.js → ui-163311a7.js} +14696 -13170
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue-0f6dd813.js +6083 -0
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify.28d881.css → vuetify-e2c4b35c.css} +2 -2
- package/dist/assets/{vuetify.28d881.js → vuetify-e2c4b35c.js} +8699 -8824
- package/dist/assets/vuetify.js +1 -1
- package/dist/index.html +11 -10
- package/index.d.ts +36 -20
- package/index.html +5 -5
- package/index.js +20 -10
- package/lib/olLib.js +90 -23
- package/package.json +25 -23
- package/plugins/@vcmap-show-case/custom-icons-example/README.md +3 -0
- package/plugins/@vcmap-show-case/custom-icons-example/assets/imageExample.png +0 -0
- package/plugins/@vcmap-show-case/custom-icons-example/assets/svgExample.svg +1 -0
- package/plugins/@vcmap-show-case/custom-icons-example/package.json +5 -0
- package/plugins/@vcmap-show-case/custom-icons-example/src/CustomIconsExample.vue +90 -0
- package/plugins/@vcmap-show-case/custom-icons-example/src/index.js +45 -0
- package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
- package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +73 -34
- package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
- package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
- package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +50 -96
- package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +14 -11
- package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +18 -11
- package/plugins/@vcmap-show-case/search-example/src/index.js +1 -0
- package/plugins/@vcmap-show-case/search-example/src/searchImpl.js +35 -5
- package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
- package/plugins/@vcmap-show-case/theming-example/README.md +3 -0
- package/plugins/@vcmap-show-case/theming-example/package.json +5 -0
- package/plugins/@vcmap-show-case/theming-example/src/ThemingExample.vue +116 -0
- package/plugins/@vcmap-show-case/theming-example/src/index.js +53 -0
- package/plugins/@vcmap-show-case/toolbox-example/src/index.js +2 -1
- package/plugins/@vcmap-show-case/vector-properties-example/src/GeometrySettings.vue +420 -0
- package/plugins/@vcmap-show-case/vector-properties-example/src/LayoutHandler.vue +97 -0
- package/plugins/@vcmap-show-case/vector-properties-example/src/TerrainSettings.vue +90 -0
- package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +86 -70
- package/plugins/@vcmap-show-case/vector-properties-example/src/index.js +34 -1
- package/plugins/@vcmap-show-case/vector-properties-example/src/lib.js +294 -0
- package/plugins/@vcmap-show-case/wizard-example/src/WizardExample.vue +40 -54
- package/plugins/package.json +23 -21
- package/public/assets/@mdi/font/README.md +25 -0
- package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
- package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
- package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/src/actions/StyleSelector.vue +37 -21
- package/src/actions/StyleSelector.vue.d.ts +5 -5
- package/src/actions/actionHelper.d.ts +4 -11
- package/src/actions/actionHelper.js +35 -27
- package/src/actions/flightActions.js +44 -23
- package/src/actions/listActions.d.ts +5 -12
- package/src/actions/listActions.js +6 -22
- package/src/actions/stateRefAction.js +2 -2
- package/src/application/VcsApp.vue +196 -85
- package/src/application/VcsApp.vue.d.ts +309 -4
- package/src/application/VcsAppWrapper.vue +1 -1
- package/src/application/VcsAttributions.vue +4 -15
- package/src/application/VcsAttributionsFooter.vue +28 -18
- package/src/application/VcsAttributionsFooter.vue.d.ts +1 -1
- package/src/application/VcsContainer.vue +27 -10
- package/src/application/VcsContainer.vue.d.ts +248 -0
- package/src/application/VcsMainMap.vue +8 -8
- package/src/application/VcsMainMap.vue.d.ts +2 -2
- package/src/application/VcsMap.vue +1 -0
- package/src/application/VcsNavbar.vue +15 -3
- package/src/application/VcsNavbar.vue.d.ts +2 -1
- package/src/application/VcsPositionDisplay.vue +10 -25
- package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
- package/src/application/VcsSettings.vue +11 -18
- package/src/application/VcsSplashScreen.vue +43 -55
- package/src/application/VcsSplashScreen.vue.d.ts +4 -6
- package/src/application/VcsTextPage.vue +13 -44
- package/src/application/VcsTextPage.vue.d.ts +4 -8
- package/src/application/VcsTextPageFooter.vue +26 -41
- package/src/application/attributionsHelper.d.ts +20 -22
- package/src/application/attributionsHelper.js +14 -10
- package/src/callback/vcsCallback.d.ts +2 -2
- package/src/callback/vcsCallback.js +1 -1
- package/src/components/buttons/VcsActionButtonList.vue +66 -7
- package/src/components/buttons/VcsActionButtonList.vue.d.ts +28 -0
- package/src/components/buttons/VcsButton.vue +8 -10
- package/src/components/buttons/VcsButton.vue.d.ts +4 -4
- package/src/components/buttons/VcsFormButton.vue +9 -9
- package/src/components/buttons/VcsFormButton.vue.d.ts +3 -3
- package/src/components/buttons/VcsToolButton.vue +9 -7
- package/src/components/buttons/VcsToolButton.vue.d.ts +5 -5
- package/src/components/composables.d.ts +14 -2
- package/src/components/composables.js +106 -4
- package/src/components/extent/VcsExtent.vue +11 -7
- package/src/components/extent/VcsExtent.vue.d.ts +1 -0
- package/src/components/extent/VcsExtentEditor.vue +2 -1
- package/src/components/flight/VcsFlightAnchorsComponent.vue +64 -36
- package/src/components/flight/VcsFlightComponent.vue +25 -30
- package/src/components/flight/VcsFlightComponent.vue.d.ts +1 -0
- package/src/components/flight/VcsFlightEditor.vue +1 -0
- package/src/components/flight/VcsFlightPlayer.vue +47 -19
- package/src/components/form-inputs-controls/VcsCheckbox.vue +32 -13
- package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +10 -0
- package/src/components/form-inputs-controls/VcsChipArrayInput.vue +14 -17
- package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +2 -4
- package/src/components/form-inputs-controls/VcsCoordinate.vue +17 -5
- package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
- package/src/components/form-inputs-controls/VcsDatePicker.vue +53 -59
- package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +2 -64
- package/src/components/form-inputs-controls/VcsFileInput.vue +18 -19
- package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsLabel.vue +65 -3
- package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +32 -1
- package/src/components/form-inputs-controls/VcsRadio.vue +26 -10
- package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +2 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +47 -47
- package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +9 -6
- package/src/components/form-inputs-controls/VcsSlider.vue +53 -15
- package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +26 -2
- package/src/components/form-inputs-controls/VcsTextArea.vue +56 -40
- package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsTextField.vue +46 -16
- package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +12 -1
- package/src/components/form-inputs-controls/VcsWizard.vue +89 -112
- package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +3 -13
- package/src/components/form-inputs-controls/VcsWizardStep.vue +78 -58
- package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +24 -11
- package/src/components/form-inputs-controls/vcsTextField.scss +21 -13
- package/src/components/form-output/VcsFormattedNumber.vue +46 -14
- package/src/components/form-output/VcsFormattedNumber.vue.d.ts +27 -0
- package/src/components/form-output/VcsMarkdown.vue +56 -0
- package/src/{application/VcsCustomScreen.vue.d.ts → components/form-output/VcsMarkdown.vue.d.ts} +7 -5
- package/src/components/form-output/markdownHelper.d.ts +30 -0
- package/src/components/form-output/markdownHelper.js +398 -0
- package/src/components/import/VcsFileDrop.vue +9 -6
- package/src/components/import/VcsImportComponent.vue +12 -8
- package/src/components/import/VcsImportComponent.vue.d.ts +1 -2
- package/src/components/lists/VcsActionList.vue +50 -34
- package/src/components/lists/VcsActionList.vue.d.ts +3 -1
- package/src/components/lists/VcsList.vue +105 -192
- package/src/components/lists/VcsList.vue.d.ts +18 -66
- package/src/components/lists/VcsListItemComponent.vue +216 -0
- package/src/components/lists/VcsListItemComponent.vue.d.ts +83 -0
- package/src/components/lists/VcsTreeview.vue +119 -26
- package/src/components/lists/VcsTreeview.vue.d.ts +26 -3
- package/src/components/lists/VcsTreeviewSearchbar.vue +17 -6
- package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +3 -1
- package/src/components/lists/VcsTreeviewTitle.vue +40 -0
- package/src/components/modelHelper.d.ts +21 -8
- package/src/components/modelHelper.js +50 -8
- package/src/components/notification/VcsBadge.vue +2 -2
- package/src/components/notification/VcsHelp.vue +6 -7
- package/src/components/notification/VcsHelp.vue.d.ts +0 -8
- package/src/components/notification/VcsHelpTooltip.vue +48 -0
- package/src/components/notification/VcsHelpTooltip.vue.d.ts +25 -0
- package/src/components/plugins/AbstractConfigEditor.vue +2 -23
- package/src/components/plugins/AbstractConfigEditor.vue.d.ts +6 -29
- package/src/components/section/VcsExpansionPanel.vue +111 -0
- package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
- package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +13 -7
- package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +2 -3
- package/src/components/style/MenuWrapper.vue +25 -27
- package/src/components/style/MenuWrapper.vue.d.ts +4 -4
- package/src/components/style/VcsFeatureStyleComponent.vue +1 -0
- package/src/components/style/VcsFillMenu.vue +10 -16
- package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
- package/src/components/style/VcsFillSelector.vue +14 -16
- package/src/components/style/VcsImageMenu.vue +9 -25
- package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
- package/src/components/style/VcsImageSelector.vue +115 -172
- package/src/components/style/VcsImageSelector.vue.d.ts +16 -15
- package/src/components/style/VcsStrokeMenu.vue +9 -15
- package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
- package/src/components/style/VcsStrokeSelector.vue +17 -21
- package/src/components/style/VcsStrokeSelector.vue.d.ts +1 -0
- package/src/components/style/VcsTextMenu.vue +12 -14
- package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
- package/src/components/style/VcsTextSelector.vue +80 -96
- package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
- package/src/components/style/VcsVectorStyleComponent.vue +9 -20
- package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
- package/src/components/style/composables.d.ts +0 -14
- package/src/components/style/composables.js +0 -49
- package/src/components/tables/VcsDataTable.vue +43 -33
- package/src/components/tables/VcsDataTable.vue.d.ts +2 -1
- package/src/components/tables/VcsTable.vue +46 -62
- package/src/components/tables/VcsTable.vue.d.ts +30 -17
- package/src/components/tables/VcsTableCell.vue +72 -0
- package/src/components/tables/VcsTableCell.vue.d.ts +13 -0
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +87 -51
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +9 -7
- package/src/components/vector-properties/VcsFeatureTransforms.vue +45 -6
- package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +2 -1
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +541 -596
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +222 -24
- package/src/components/viewpoint/VcsViewpointComponent.vue +36 -20
- package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +1 -0
- package/src/components/viewpoint/VcsViewpointEditor.vue +3 -1
- package/src/contentTree/LayerTree.vue +10 -28
- package/src/contentTree/LayerTree.vue.d.ts +1 -1
- package/src/contentTree/contentTreeCollection.d.ts +1 -0
- package/src/contentTree/contentTreeCollection.js +45 -11
- package/src/contentTree/contentTreeItem.d.ts +4 -4
- package/src/contentTree/contentTreeItem.js +8 -8
- package/src/contentTree/layerContentTreeItem.d.ts +8 -5
- package/src/contentTree/layerContentTreeItem.js +48 -34
- package/src/contentTree/layerGroupContentTreeItem.d.ts +7 -1
- package/src/contentTree/layerGroupContentTreeItem.js +22 -3
- package/src/contentTree/obliqueCollectionContentTreeItem.js +6 -1
- package/src/featureInfo/AddressBalloonComponent.vue +1 -1
- package/src/featureInfo/BalloonComponent.vue +33 -26
- package/src/featureInfo/BalloonComponent.vue.d.ts +1 -0
- package/src/featureInfo/IframeComponent.vue +6 -1
- package/src/featureInfo/MarkdownBalloonComponent.vue +5 -3
- package/src/featureInfo/MarkdownBalloonComponent.vue.d.ts +2 -2
- package/src/featureInfo/abstractFeatureInfoView.d.ts +19 -4
- package/src/featureInfo/abstractFeatureInfoView.js +38 -13
- package/src/featureInfo/balloonHelper.js +1 -1
- package/src/featureInfo/featureInfo.d.ts +7 -7
- package/src/featureInfo/featureInfo.js +59 -41
- package/src/featureInfo/iframeFeatureInfoView.d.ts +8 -2
- package/src/featureInfo/iframeFeatureInfoView.js +15 -5
- package/src/featureInfo/markdownBalloonFeatureInfoView.d.ts +1 -1
- package/src/featureInfo/markdownBalloonFeatureInfoView.js +5 -5
- package/src/featureInfo/markdownFeatureInfoView.d.ts +1 -1
- package/src/featureInfo/markdownFeatureInfoView.js +9 -11
- package/src/featureInfo/tableFeatureInfoView.js +13 -4
- package/src/i18n/de.d.ts +59 -32
- package/src/i18n/de.js +28 -5
- package/src/i18n/en.d.ts +59 -32
- package/src/i18n/en.js +25 -2
- package/src/i18n/i18nCollection.d.ts +9 -15
- package/src/i18n/i18nCollection.js +3 -3
- package/src/init.d.ts +5 -38
- package/src/init.js +19 -18
- package/src/legend/StyleLegendItem.vue +4 -9
- package/src/legend/VcsLegend.vue +33 -55
- package/src/legend/VcsLegend.vue.d.ts +1 -0
- package/src/manager/buttonManager.js +4 -4
- package/src/manager/collectionManager/CollectionComponent.vue +18 -42
- package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
- package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
- package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
- package/src/manager/collectionManager/CollectionComponentList.vue +11 -9
- package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +6 -4
- package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
- package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
- package/src/manager/collectionManager/CollectionManager.vue +1 -1
- package/src/manager/collectionManager/categoryManager.d.ts +1 -1
- package/src/manager/collectionManager/collectionComponentClass.d.ts +3 -3
- package/src/manager/collectionManager/collectionComponentClass.js +16 -15
- package/src/manager/collectionManager/collectionManager.d.ts +1 -1
- package/src/manager/collectionManager/collectionManager.js +10 -10
- package/src/manager/collectionManager/editorCollectionComponentClass.js +11 -8
- package/src/manager/contextMenu/ContextMenuComponent.vue +1 -1
- package/src/manager/contextMenu/contextMenuManager.js +2 -2
- package/src/manager/navbarManager.js +2 -2
- package/src/manager/panel/PanelComponent.vue +2 -9
- package/src/manager/panel/PanelManagerComponent.vue +9 -5
- package/src/manager/panel/panelHelper.js +3 -3
- package/src/manager/panel/panelManager.d.ts +9 -1
- package/src/manager/panel/panelManager.js +18 -6
- package/src/manager/toolbox/GroupToolboxComponent.vue +13 -7
- package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +1 -0
- package/src/manager/toolbox/SelectToolboxComponent.vue +13 -8
- package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +1 -0
- package/src/manager/toolbox/{ToolboxManager.vue → ToolboxManagerComponent.vue} +28 -8
- package/src/manager/toolbox/{ToolboxManager.vue.d.ts → ToolboxManagerComponent.vue.d.ts} +1 -0
- package/src/manager/toolbox/toolboxManager.js +10 -10
- package/src/manager/window/WindowComponent.vue +13 -9
- package/src/manager/window/WindowComponentHeader.vue +33 -9
- package/src/manager/window/WindowComponentHeader.vue.d.ts +3 -0
- package/src/manager/window/WindowManager.vue +6 -3
- package/src/manager/window/windowManager.d.ts +71 -15
- package/src/manager/window/windowManager.js +32 -11
- package/src/navigation/MapNavigation.vue +52 -9
- package/src/navigation/ObliqueRotation.vue +2 -2
- package/src/navigation/OrientationToolsButton.vue +37 -26
- package/src/navigation/OrientationToolsButton.vue.d.ts +5 -1
- package/src/navigation/TiltSlider.vue +82 -88
- package/src/navigation/TiltSlider.vue.d.ts +10 -7
- package/src/navigation/VcsCompass.vue +17 -11
- package/src/navigation/VcsCompass.vue.d.ts +2 -0
- package/src/navigation/VcsZoomButton.vue +1 -1
- package/src/navigation/locatorHelper.js +4 -22
- package/src/navigation/overviewMap.js +5 -2
- package/src/notifier/NotifierComponent.vue +19 -16
- package/src/obliqueFallbackWarnings.d.ts +5 -0
- package/src/obliqueFallbackWarnings.js +54 -0
- package/src/search/ResultItem.vue +18 -6
- package/src/search/ResultsComponent.vue +32 -21
- package/src/search/ResultsComponent.vue.d.ts +2 -1
- package/src/search/SearchComponent.vue +14 -16
- package/src/search/SearchComponent.vue.d.ts +1 -0
- package/src/search/search.js +2 -2
- package/src/siteConfig.js +9 -9
- package/src/state.js +4 -4
- package/src/styles/_typography.scss +1 -2
- package/src/styles/main.scss +0 -4
- package/src/styles/vcsList.scss +1 -1
- package/src/uiConfig.d.ts +323 -7
- package/src/uiConfig.js +31 -17
- package/src/vcsUiApp.d.ts +90 -80
- package/src/vcsUiApp.js +61 -41
- package/src/vuePlugins/i18n.js +8 -0
- package/src/vuePlugins/vuetify.d.ts +88 -60
- package/src/vuePlugins/vuetify.js +134 -20
- package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
- package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
- package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +0 -3273
- package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +0 -73
- package/dist/assets/index-ca7EmZ3d.js +0 -1
- package/dist/assets/ui.715986.css +0 -1
- package/dist/assets/vue.0f2c53.js +0 -6096
- package/plugins/@vcmap-show-case/theme-changer/README.md +0 -23
- package/plugins/@vcmap-show-case/theme-changer/config.json +0 -69
- package/plugins/@vcmap-show-case/theme-changer/package.json +0 -11
- package/plugins/@vcmap-show-case/theme-changer/src/ThemeChangerComponent.vue +0 -120
- package/plugins/@vcmap-show-case/theme-changer/src/index.js +0 -108
- package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
- package/src/application/VcsCustomScreen.vue +0 -45
- package/src/application/markdownHelper.d.ts +0 -12
- package/src/application/markdownHelper.js +0 -85
- package/src/components/lists/VcsTreeviewLeaf.vue +0 -83
- package/src/components/notification/VcsTooltip.vue +0 -156
- package/src/components/notification/VcsTooltip.vue.d.ts +0 -27
- package/src/components/vector-properties/composables.d.ts +0 -33
- package/src/components/vector-properties/composables.js +0 -100
- package/src/featureInfo/MarkdownComponent.vue +0 -16
- package/src/featureInfo/MarkdownComponent.vue.d.ts +0 -7
- package/src/styles/_theming.scss +0 -73
- package/src/styles/settings.scss +0 -6
- package/src/styles/shades.scss +0 -4
- package/src/styles/variables.scss +0 -140
- package/src/styles/vcsFont.scss +0 -2
- package/src/styles/vcsGrid.scss +0 -3
- /package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
- /package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
- /package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
- /package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
- /package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
- /package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
- /package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
- /package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
- /package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
- /package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
- /package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
- /package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
- /package/src/components/lists/{VcsTreeviewLeaf.vue.d.ts → VcsTreeviewTitle.vue.d.ts} +0 -0
@@ -1,14 +1,14 @@
|
|
1
1
|
<template>
|
2
2
|
<v-toolbar
|
3
3
|
v-if="toolboxOpen && orderedGroups.length > 0 && mdAndUp"
|
4
|
-
class="vcs-toolbox mx-auto
|
4
|
+
class="vcs-toolbox mx-auto elevation-4 opacity-80 toolbox-manager-component"
|
5
5
|
:class="{
|
6
6
|
'rounded-b': !open,
|
7
|
+
'vcs-toolbox__secondary': !isDefaultToolbox,
|
7
8
|
}"
|
8
|
-
:height="
|
9
|
+
:height="toolboxHeight"
|
9
10
|
:style="{ zIndex }"
|
10
11
|
@click.stop="bringToTop"
|
11
|
-
style="width: fit-content"
|
12
12
|
>
|
13
13
|
<v-toolbar-items class="w-100 px-4 gc-1">
|
14
14
|
<div
|
@@ -33,7 +33,10 @@
|
|
33
33
|
:active="group.action.active"
|
34
34
|
:background="group.action.background"
|
35
35
|
:disabled="group.action.disabled"
|
36
|
-
@click="
|
36
|
+
@click.stop="
|
37
|
+
bringToTop();
|
38
|
+
group.action.callback($event);
|
39
|
+
"
|
37
40
|
v-bind="{ ...$attrs }"
|
38
41
|
/>
|
39
42
|
</div>
|
@@ -42,8 +45,19 @@
|
|
42
45
|
</template>
|
43
46
|
|
44
47
|
<style lang="scss" scoped>
|
45
|
-
.
|
48
|
+
.vcs-toolbox__secondary {
|
49
|
+
&.vcs-toolbox.v-theme {
|
50
|
+
&--light {
|
51
|
+
background-color: rgba(var(--v-theme-primary-lighten-3));
|
52
|
+
}
|
53
|
+
&--dark {
|
54
|
+
background-color: rgba(var(--v-theme-primary-darken-4));
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
.vcs-toolbox {
|
46
59
|
margin-top: 2px;
|
60
|
+
width: fit-content;
|
47
61
|
}
|
48
62
|
</style>
|
49
63
|
|
@@ -61,6 +75,7 @@
|
|
61
75
|
import VcsToolButton from '../../components/buttons/VcsToolButton.vue';
|
62
76
|
import { vcsAppSymbol } from '../../pluginHelper.js';
|
63
77
|
import { ButtonLocation } from '../navbarManager.js';
|
78
|
+
import { useFontSize } from '../../vuePlugins/vuetify.js';
|
64
79
|
|
65
80
|
/**
|
66
81
|
* @typedef {Object} ToolboxButtonGroup
|
@@ -84,7 +99,7 @@
|
|
84
99
|
* @vue-computed {Array<ToolboxButtonGroup>} orderedGroups - Array of group components sorted by owner
|
85
100
|
*/
|
86
101
|
export default {
|
87
|
-
name: '
|
102
|
+
name: 'ToolboxManagerComponent',
|
88
103
|
components: {
|
89
104
|
ToolboxActionSelect,
|
90
105
|
ToolboxActionGroup,
|
@@ -163,12 +178,12 @@
|
|
163
178
|
}
|
164
179
|
handleToolboxButton();
|
165
180
|
|
166
|
-
|
181
|
+
watch(groups, () => handleToolboxButton());
|
167
182
|
|
168
183
|
onUnmounted(() => {
|
169
|
-
stopWatching();
|
170
184
|
nameChangeListener();
|
171
185
|
app.windowManager.removeExternalIdFromZIndex('toolbox');
|
186
|
+
app.navbarManager.remove('toolbox');
|
172
187
|
});
|
173
188
|
|
174
189
|
watch(toolboxOpen, () => {
|
@@ -183,6 +198,10 @@
|
|
183
198
|
};
|
184
199
|
|
185
200
|
const { mdAndUp } = useDisplay();
|
201
|
+
const fontSize = useFontSize();
|
202
|
+
const toolboxHeight = computed(() => {
|
203
|
+
return fontSize.value * 3 + 1;
|
204
|
+
});
|
186
205
|
return {
|
187
206
|
mdAndUp,
|
188
207
|
toolboxOpen,
|
@@ -200,6 +219,7 @@
|
|
200
219
|
bringToTop();
|
201
220
|
}
|
202
221
|
},
|
222
|
+
toolboxHeight,
|
203
223
|
};
|
204
224
|
},
|
205
225
|
};
|
@@ -12,6 +12,7 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
12
12
|
open: import("vue").Ref<boolean>;
|
13
13
|
bringToTop: () => void;
|
14
14
|
openGroup(group: any): void;
|
15
|
+
toolboxHeight: import("vue").ComputedRef<number>;
|
15
16
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
|
16
17
|
export default _default;
|
17
18
|
export type ToolboxButtonGroup = {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { VcsEvent } from '@vcmap/core';
|
2
|
-
import { check,
|
2
|
+
import { check, maybe, ofEnum, oneOf, optional } from '@vcsuite/check';
|
3
3
|
import { v4 as uuidv4 } from 'uuid';
|
4
4
|
import { reactive, shallowReactive } from 'vue';
|
5
5
|
import { vcsAppSymbol } from '../../pluginHelper.js';
|
@@ -230,7 +230,7 @@ class ToolboxManager {
|
|
230
230
|
}
|
231
231
|
|
232
232
|
set toolboxName(name) {
|
233
|
-
check(name,
|
233
|
+
check(name, oneOf(String, defaultToolboxName));
|
234
234
|
|
235
235
|
if (this._toolboxName !== name) {
|
236
236
|
this._toolboxName = name;
|
@@ -285,9 +285,9 @@ class ToolboxManager {
|
|
285
285
|
* @returns {SingleToolboxComponent|SelectToolboxComponent|import("vue").ShallowReactive<GroupToolboxComponent>}
|
286
286
|
*/
|
287
287
|
add(toolboxComponentOptions, owner) {
|
288
|
-
|
289
|
-
check(toolboxComponentOptions.type,
|
290
|
-
check(owner,
|
288
|
+
check(toolboxComponentOptions.id, maybe(String));
|
289
|
+
check(toolboxComponentOptions.type, ofEnum(ToolboxType));
|
290
|
+
check(owner, oneOf(String, vcsAppSymbol));
|
291
291
|
|
292
292
|
if (toolboxComponentOptions.id && this.has(toolboxComponentOptions.id)) {
|
293
293
|
throw new Error(
|
@@ -335,13 +335,13 @@ class ToolboxManager {
|
|
335
335
|
...ActionPattern,
|
336
336
|
selected: Function,
|
337
337
|
currentIndex: Number,
|
338
|
-
disabled:
|
338
|
+
disabled: optional(Boolean),
|
339
339
|
tools: [
|
340
340
|
{
|
341
341
|
name: String,
|
342
|
-
title:
|
342
|
+
title: optional(String),
|
343
343
|
icon: String,
|
344
|
-
disabled:
|
344
|
+
disabled: optional(Boolean),
|
345
345
|
},
|
346
346
|
],
|
347
347
|
});
|
@@ -357,8 +357,8 @@ class ToolboxManager {
|
|
357
357
|
};
|
358
358
|
} else {
|
359
359
|
check(toolboxComponentOptions.icon, String);
|
360
|
-
|
361
|
-
|
360
|
+
check(toolboxComponentOptions.title, maybe(String));
|
361
|
+
check(toolboxComponentOptions.disabled, maybe(Boolean));
|
362
362
|
const {
|
363
363
|
icon,
|
364
364
|
title = undefined,
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<v-sheet
|
3
3
|
:id="`window-component--${windowState.id}`"
|
4
|
-
class="elevation-3 position-absolute d-flex flex-column"
|
4
|
+
class="elevation-3 position-absolute d-flex flex-column window-component"
|
5
5
|
v-bind="$attrs"
|
6
6
|
@dragstart="dragStart"
|
7
7
|
@dragend="dragEnd"
|
@@ -9,8 +9,8 @@
|
|
9
9
|
:class="{
|
10
10
|
rounded: !isDocked,
|
11
11
|
marginToTop: isDocked || !isChild,
|
12
|
-
'rounded-
|
13
|
-
'rounded-
|
12
|
+
'rounded-be': isDynamicLeft,
|
13
|
+
'rounded-bs': isDynamicRight,
|
14
14
|
}"
|
15
15
|
>
|
16
16
|
<div
|
@@ -89,17 +89,21 @@
|
|
89
89
|
});
|
90
90
|
|
91
91
|
const isChild = computed(() => !!props.windowState.parentId);
|
92
|
-
const isDynamic = computed(
|
93
|
-
|
92
|
+
const isDynamic = computed(
|
93
|
+
() => props.slotWindow.value !== WindowSlot.STATIC,
|
94
|
+
);
|
95
|
+
const isDocked = computed(
|
96
|
+
() => props.slotWindow.value !== WindowSlot.DETACHED,
|
97
|
+
);
|
94
98
|
const isDockedLeft = computed(() => {
|
95
99
|
return (
|
96
|
-
props.slotWindow === WindowSlot.STATIC ||
|
97
|
-
props.slotWindow === WindowSlot.DYNAMIC_LEFT ||
|
98
|
-
props.slotWindow === WindowSlot.DYNAMIC_CHILD
|
100
|
+
props.slotWindow.value === WindowSlot.STATIC ||
|
101
|
+
props.slotWindow.value === WindowSlot.DYNAMIC_LEFT ||
|
102
|
+
props.slotWindow.value === WindowSlot.DYNAMIC_CHILD
|
99
103
|
);
|
100
104
|
});
|
101
105
|
const isDockedRight = computed(
|
102
|
-
() => props.slotWindow === WindowSlot.DYNAMIC_RIGHT,
|
106
|
+
() => props.slotWindow.value === WindowSlot.DYNAMIC_RIGHT,
|
103
107
|
);
|
104
108
|
const isDraggable = ref(false);
|
105
109
|
/**
|
@@ -2,21 +2,25 @@
|
|
2
2
|
<div
|
3
3
|
class="d-flex justify-space-between align-center window-component-header"
|
4
4
|
>
|
5
|
-
<h3 class="d-flex align-center">
|
5
|
+
<h3 class="d-flex align-center flex-grow-1">
|
6
6
|
<v-icon
|
7
7
|
v-if="windowState.headerIcon"
|
8
8
|
class="mr-1"
|
9
|
-
:class="{ 'primary
|
10
|
-
size="
|
9
|
+
:class="{ 'text-primary': isOnTop }"
|
10
|
+
:size="iconSize"
|
11
11
|
>
|
12
12
|
{{ windowState.headerIcon }}
|
13
13
|
</v-icon>
|
14
14
|
<span
|
15
|
-
|
16
|
-
|
15
|
+
ref="headerRef"
|
16
|
+
class="d-inline-block user-select-none font-weight-bold vcs-window-header-title"
|
17
|
+
:class="{ 'text-primary': isOnTop }"
|
17
18
|
>
|
18
19
|
{{ translatedHeaderTitle }}
|
19
20
|
</span>
|
21
|
+
<v-tooltip v-if="headerTooltip" activator="parent">
|
22
|
+
{{ $st(headerTooltip) }}
|
23
|
+
</v-tooltip>
|
20
24
|
</h3>
|
21
25
|
<div class="d-flex justify-space-between align-center">
|
22
26
|
<template v-if="windowState.headerActions?.length > 0">
|
@@ -52,10 +56,10 @@
|
|
52
56
|
|
53
57
|
<style lang="scss" scoped>
|
54
58
|
.window-component-header {
|
55
|
-
max-height:
|
59
|
+
max-height: calc(var(--v-vcs-font-size) * 2 - 10px);
|
56
60
|
|
57
61
|
h3 {
|
58
|
-
line-height:
|
62
|
+
line-height: calc(var(--v-vcs-font-size) * 2 - 10px);
|
59
63
|
}
|
60
64
|
.v-divider--vertical.v-divider--inset {
|
61
65
|
margin-top: 2px;
|
@@ -64,14 +68,23 @@
|
|
64
68
|
.user-select-none {
|
65
69
|
user-select: none;
|
66
70
|
}
|
71
|
+
.vcs-window-header-title {
|
72
|
+
width: 10px;
|
73
|
+
white-space: nowrap;
|
74
|
+
overflow: hidden;
|
75
|
+
text-overflow: ellipsis;
|
76
|
+
flex: 1;
|
77
|
+
}
|
67
78
|
</style>
|
68
79
|
|
69
80
|
<script>
|
70
|
-
import { VIcon, VDivider } from 'vuetify/components';
|
71
|
-
import { computed, getCurrentInstance } from 'vue';
|
81
|
+
import { VIcon, VDivider, VTooltip } from 'vuetify/components';
|
82
|
+
import { computed, getCurrentInstance, ref } from 'vue';
|
83
|
+
import { createEllipseTooltip } from '../../components/composables.js';
|
72
84
|
import VcsButton from '../../components/buttons/VcsButton.vue';
|
73
85
|
import VcsActionButtonList from '../../components/buttons/VcsActionButtonList.vue';
|
74
86
|
import { createLinkAction } from '../../actions/actionHelper.js';
|
87
|
+
import { useIconSize } from '../../vuePlugins/vuetify.js';
|
75
88
|
|
76
89
|
/**
|
77
90
|
* @description Default window component header with drag functionality close action and further optional window actions.
|
@@ -88,6 +101,7 @@
|
|
88
101
|
VcsButton,
|
89
102
|
VIcon,
|
90
103
|
VDivider,
|
104
|
+
VTooltip,
|
91
105
|
},
|
92
106
|
inheritAttrs: false,
|
93
107
|
props: {
|
@@ -124,6 +138,8 @@
|
|
124
138
|
: vm.$st(props.windowState.headerTitle),
|
125
139
|
);
|
126
140
|
|
141
|
+
const headerRef = ref(null);
|
142
|
+
|
127
143
|
const infoAction =
|
128
144
|
props.windowState.infoUrl || props.windowState.infoUrlCallback
|
129
145
|
? createLinkAction(
|
@@ -136,11 +152,19 @@
|
|
136
152
|
)
|
137
153
|
: undefined;
|
138
154
|
|
155
|
+
const iconSize = useIconSize();
|
139
156
|
return {
|
140
157
|
pin,
|
141
158
|
close,
|
142
159
|
isDockable,
|
143
160
|
translatedHeaderTitle,
|
161
|
+
headerRef,
|
162
|
+
iconSize,
|
163
|
+
headerTooltip: createEllipseTooltip(
|
164
|
+
computed(() => headerRef.value),
|
165
|
+
computed(() => undefined),
|
166
|
+
translatedHeaderTitle,
|
167
|
+
),
|
144
168
|
infoAction,
|
145
169
|
};
|
146
170
|
},
|
@@ -17,6 +17,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
17
17
|
close: () => void;
|
18
18
|
isDockable: import("vue").ComputedRef<any>;
|
19
19
|
translatedHeaderTitle: import("vue").ComputedRef<any>;
|
20
|
+
headerRef: import("vue").Ref<null>;
|
21
|
+
iconSize: import("vue").ComputedRef<number>;
|
22
|
+
headerTooltip: import("vue").ComputedRef<string>;
|
20
23
|
infoAction: import("../../actions/actionHelper.js", { with: { "resolution-mode": "import" } }).VcsAction | undefined;
|
21
24
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
22
25
|
windowState: {
|
@@ -1,5 +1,8 @@
|
|
1
1
|
<template>
|
2
|
-
<div
|
2
|
+
<div
|
3
|
+
:class="{ 'win-container-mobile': addMobileClass }"
|
4
|
+
class="window-manager"
|
5
|
+
>
|
3
6
|
<WindowComponent
|
4
7
|
v-for="id in componentIds"
|
5
8
|
:key="id"
|
@@ -160,9 +163,9 @@
|
|
160
163
|
const position = getPosition(windowComponent);
|
161
164
|
moveWindow(id, translation, windowManager, targetSize.value, position);
|
162
165
|
};
|
163
|
-
|
166
|
+
const display = useDisplay();
|
164
167
|
const addMobileClass = computed(() => {
|
165
|
-
return
|
168
|
+
return display.xs.value && componentIds.length > 0;
|
166
169
|
});
|
167
170
|
|
168
171
|
const setTargetSize = () => {
|
@@ -14,30 +14,48 @@ export function isSlotPosition(windowPosition: WindowPosition): boolean;
|
|
14
14
|
/**
|
15
15
|
* @typedef {{
|
16
16
|
* id?: string,
|
17
|
-
*
|
18
|
-
* component: import("vue").Component<T
|
19
|
-
* headerComponent?: import("vue").Component<T
|
20
|
-
* state? :
|
17
|
+
* parentId?: string,
|
18
|
+
* component: import("vue").Component<T>,
|
19
|
+
* headerComponent?: import("vue").Component<T>,
|
20
|
+
* state? : WindowStateOptions,
|
21
21
|
* position? : Partial<WindowPositionOptions>,
|
22
|
-
* slot
|
22
|
+
* slot?: WindowSlot,
|
23
23
|
* props?: T,
|
24
24
|
* provides?: Record<string, unknown>
|
25
25
|
* }} WindowComponentOptions
|
26
|
-
* @template
|
26
|
+
* @template [T=any]
|
27
27
|
* @property {string} [id] Optional ID, If not provided an uuid will be generated.
|
28
28
|
* @property {string} [parentId] An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
|
29
29
|
* @property {import("vue").Component<T, unknown, unknown>} component Main Component which is shown below the header.
|
30
30
|
* @property {import("vue").Component<T, unknown, unknown>} [headerComponent] Replaces the Header Component.
|
31
|
-
* @property {
|
31
|
+
* @property {WindowStateOptions} [state]
|
32
32
|
* @property {Partial<WindowPositionOptions>} [position] Will be merged with default position for slot
|
33
33
|
* @property {WindowSlot} [slot]
|
34
34
|
* @property {T} [props]
|
35
35
|
* @property {Object} [provides]
|
36
36
|
*/
|
37
|
+
/**
|
38
|
+
* @typedef {T|import('vue').Ref<T>|import('vue').ComputedRef<T>} OptionsOrRef
|
39
|
+
* @template T
|
40
|
+
*/
|
41
|
+
/**
|
42
|
+
* @typedef {Object} WindowStateOptions
|
43
|
+
* @property {OptionsOrRef<boolean>} [hideHeader] be used to not show the header.
|
44
|
+
* @property {OptionsOrRef<boolean>} [hidePin] be used to not show the pin button.
|
45
|
+
* @property {OptionsOrRef<string|string[]>} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
|
46
|
+
* @property {OptionsOrRef<string>} [headerIcon]
|
47
|
+
* @property {OptionsOrRef<Array<import("../../actions/actionHelper.js").VcsAction>>} [headerActions]
|
48
|
+
* @property {OptionsOrRef<number>} [headerActionsOverflow]
|
49
|
+
* @property {OptionsOrRef<string>} [infoUrl] An optional url referencing help or further information on the window's content.
|
50
|
+
* @property {OptionsOrRef<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()
|
51
|
+
* @property {Record<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
|
52
|
+
* @property {Array<string>|Record<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
|
53
|
+
*/
|
37
54
|
/**
|
38
55
|
* @typedef {Object} WindowState
|
39
56
|
* @property {string} id
|
40
57
|
* @property {string|vcsAppSymbol} owner Owner of the window, set by windowManager on add
|
58
|
+
* @property {string|undefined} parentId - the parent of this window
|
41
59
|
* @property {boolean} [hideHeader] be used to not show the header.
|
42
60
|
* @property {boolean} [hidePin] be used to not show the pin button.
|
43
61
|
* @property {string|string[]} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
|
@@ -53,7 +71,7 @@ export function isSlotPosition(windowPosition: WindowPosition): boolean;
|
|
53
71
|
/**
|
54
72
|
* @typedef {{
|
55
73
|
* id: string,
|
56
|
-
*
|
74
|
+
* parentId?: string,
|
57
75
|
* component: import("vue").Component<T, unknown, unknown>,
|
58
76
|
* headerComponent?: import("vue").Component<T, unknown, unknown>,
|
59
77
|
* state : Partial<WindowState>,
|
@@ -129,23 +147,61 @@ export namespace WindowPositions {
|
|
129
147
|
export { DETACHED_1 as DETACHED };
|
130
148
|
}
|
131
149
|
export default WindowManager;
|
132
|
-
export type WindowComponentOptions<T
|
150
|
+
export type WindowComponentOptions<T = any> = {
|
133
151
|
id?: string;
|
134
|
-
|
135
|
-
component: import("vue").Component<T
|
136
|
-
headerComponent?: import("vue").Component<T
|
137
|
-
state?:
|
152
|
+
parentId?: string;
|
153
|
+
component: import("vue").Component<T>;
|
154
|
+
headerComponent?: import("vue").Component<T>;
|
155
|
+
state?: WindowStateOptions;
|
138
156
|
position?: Partial<WindowPositionOptions>;
|
139
|
-
slot
|
157
|
+
slot?: WindowSlot;
|
140
158
|
props?: T;
|
141
159
|
provides?: Record<string, unknown>;
|
142
160
|
};
|
161
|
+
export type OptionsOrRef<T> = T | import('vue').Ref<T> | import('vue').ComputedRef<T>;
|
162
|
+
export type WindowStateOptions = {
|
163
|
+
/**
|
164
|
+
* be used to not show the header.
|
165
|
+
*/
|
166
|
+
hideHeader?: OptionsOrRef<boolean> | undefined;
|
167
|
+
/**
|
168
|
+
* be used to not show the pin button.
|
169
|
+
*/
|
170
|
+
hidePin?: OptionsOrRef<boolean> | undefined;
|
171
|
+
/**
|
172
|
+
* An optional translatable header. If an array is provided all elements are translated and joined afterward.
|
173
|
+
*/
|
174
|
+
headerTitle?: OptionsOrRef<string | string[]> | undefined;
|
175
|
+
headerIcon?: OptionsOrRef<string> | undefined;
|
176
|
+
headerActions?: OptionsOrRef<import("../../actions/actionHelper.js").VcsAction[]> | undefined;
|
177
|
+
headerActionsOverflow?: OptionsOrRef<number> | undefined;
|
178
|
+
/**
|
179
|
+
* An optional url referencing help or further information on the window's content.
|
180
|
+
*/
|
181
|
+
infoUrl?: OptionsOrRef<string> | undefined;
|
182
|
+
/**
|
183
|
+
* 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()
|
184
|
+
*/
|
185
|
+
infoUrlCallback?: OptionsOrRef<() => string> | undefined;
|
186
|
+
/**
|
187
|
+
* 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
|
188
|
+
*/
|
189
|
+
styles?: Record<string, string> | undefined;
|
190
|
+
/**
|
191
|
+
* 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
|
192
|
+
*/
|
193
|
+
classes?: string[] | Record<string, string> | undefined;
|
194
|
+
};
|
143
195
|
export type WindowState = {
|
144
196
|
id: string;
|
145
197
|
/**
|
146
198
|
* Owner of the window, set by windowManager on add
|
147
199
|
*/
|
148
200
|
owner: string | symbol;
|
201
|
+
/**
|
202
|
+
* - the parent of this window
|
203
|
+
*/
|
204
|
+
parentId: string | undefined;
|
149
205
|
/**
|
150
206
|
* be used to not show the header.
|
151
207
|
*/
|
@@ -188,7 +244,7 @@ export type WindowState = {
|
|
188
244
|
};
|
189
245
|
export type WindowComponent<T extends Object = Object> = {
|
190
246
|
id: string;
|
191
|
-
|
247
|
+
parentId?: string;
|
192
248
|
component: import("vue").Component<T, unknown, unknown>;
|
193
249
|
headerComponent?: import("vue").Component<T, unknown, unknown>;
|
194
250
|
state: Partial<WindowState>;
|
@@ -2,7 +2,7 @@ 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';
|
5
|
-
import { check } from '@vcsuite/check';
|
5
|
+
import { check, oneOf } from '@vcsuite/check';
|
6
6
|
import { vcsAppSymbol } from '../../pluginHelper.js';
|
7
7
|
|
8
8
|
/**
|
@@ -104,31 +104,51 @@ export function isSlotPosition(windowPosition) {
|
|
104
104
|
/**
|
105
105
|
* @typedef {{
|
106
106
|
* id?: string,
|
107
|
-
*
|
108
|
-
* component: import("vue").Component<T
|
109
|
-
* headerComponent?: import("vue").Component<T
|
110
|
-
* state? :
|
107
|
+
* parentId?: string,
|
108
|
+
* component: import("vue").Component<T>,
|
109
|
+
* headerComponent?: import("vue").Component<T>,
|
110
|
+
* state? : WindowStateOptions,
|
111
111
|
* position? : Partial<WindowPositionOptions>,
|
112
|
-
* slot
|
112
|
+
* slot?: WindowSlot,
|
113
113
|
* props?: T,
|
114
114
|
* provides?: Record<string, unknown>
|
115
115
|
* }} WindowComponentOptions
|
116
|
-
* @template
|
116
|
+
* @template [T=any]
|
117
117
|
* @property {string} [id] Optional ID, If not provided an uuid will be generated.
|
118
118
|
* @property {string} [parentId] An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
|
119
119
|
* @property {import("vue").Component<T, unknown, unknown>} component Main Component which is shown below the header.
|
120
120
|
* @property {import("vue").Component<T, unknown, unknown>} [headerComponent] Replaces the Header Component.
|
121
|
-
* @property {
|
121
|
+
* @property {WindowStateOptions} [state]
|
122
122
|
* @property {Partial<WindowPositionOptions>} [position] Will be merged with default position for slot
|
123
123
|
* @property {WindowSlot} [slot]
|
124
124
|
* @property {T} [props]
|
125
125
|
* @property {Object} [provides]
|
126
126
|
*/
|
127
127
|
|
128
|
+
/**
|
129
|
+
* @typedef {T|import('vue').Ref<T>|import('vue').ComputedRef<T>} OptionsOrRef
|
130
|
+
* @template T
|
131
|
+
*/
|
132
|
+
|
133
|
+
/**
|
134
|
+
* @typedef {Object} WindowStateOptions
|
135
|
+
* @property {OptionsOrRef<boolean>} [hideHeader] be used to not show the header.
|
136
|
+
* @property {OptionsOrRef<boolean>} [hidePin] be used to not show the pin button.
|
137
|
+
* @property {OptionsOrRef<string|string[]>} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
|
138
|
+
* @property {OptionsOrRef<string>} [headerIcon]
|
139
|
+
* @property {OptionsOrRef<Array<import("../../actions/actionHelper.js").VcsAction>>} [headerActions]
|
140
|
+
* @property {OptionsOrRef<number>} [headerActionsOverflow]
|
141
|
+
* @property {OptionsOrRef<string>} [infoUrl] An optional url referencing help or further information on the window's content.
|
142
|
+
* @property {OptionsOrRef<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()
|
143
|
+
* @property {Record<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
|
144
|
+
* @property {Array<string>|Record<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
|
145
|
+
*/
|
146
|
+
|
128
147
|
/**
|
129
148
|
* @typedef {Object} WindowState
|
130
149
|
* @property {string} id
|
131
150
|
* @property {string|vcsAppSymbol} owner Owner of the window, set by windowManager on add
|
151
|
+
* @property {string|undefined} parentId - the parent of this window
|
132
152
|
* @property {boolean} [hideHeader] be used to not show the header.
|
133
153
|
* @property {boolean} [hidePin] be used to not show the pin button.
|
134
154
|
* @property {string|string[]} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
|
@@ -145,7 +165,7 @@ export function isSlotPosition(windowPosition) {
|
|
145
165
|
/**
|
146
166
|
* @typedef {{
|
147
167
|
* id: string,
|
148
|
-
*
|
168
|
+
* parentId?: string,
|
149
169
|
* component: import("vue").Component<T, unknown, unknown>,
|
150
170
|
* headerComponent?: import("vue").Component<T, unknown, unknown>,
|
151
171
|
* state : Partial<WindowState>,
|
@@ -563,7 +583,7 @@ class WindowManager {
|
|
563
583
|
* @returns {WindowComponent}
|
564
584
|
*/
|
565
585
|
add(windowComponentOptions, owner) {
|
566
|
-
check(owner,
|
586
|
+
check(owner, oneOf(String, vcsAppSymbol));
|
567
587
|
|
568
588
|
if (
|
569
589
|
windowComponentOptions.id &&
|
@@ -599,6 +619,7 @@ class WindowManager {
|
|
599
619
|
? [...(windowComponentOptions?.state?.classes ?? [])]
|
600
620
|
: { ...windowComponentOptions?.state?.classes };
|
601
621
|
|
622
|
+
/** @type {WindowState} */
|
602
623
|
const state = reactive({
|
603
624
|
id,
|
604
625
|
parentId,
|
@@ -747,7 +768,7 @@ class WindowManager {
|
|
747
768
|
*/
|
748
769
|
addExternalIdToZIndex(id, owner) {
|
749
770
|
check(id, String);
|
750
|
-
check(owner,
|
771
|
+
check(owner, oneOf(String, vcsAppSymbol));
|
751
772
|
|
752
773
|
if (this.has(id)) {
|
753
774
|
throw new Error(`Id ${id} already belongs to a window id`);
|