@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,7 +1,7 @@
|
|
1
1
|
import { VcsObject } from '@vcmap/core';
|
2
2
|
import { WindowSlot } from '../manager/window/windowManager.js';
|
3
3
|
import { defaultTagOptions } from '../components/tables/VcsTable.vue';
|
4
|
-
import {
|
4
|
+
import { renderTemplate } from '../components/form-output/markdownHelper.js';
|
5
5
|
|
6
6
|
/**
|
7
7
|
* @typedef {Object} FeatureInfoProps
|
@@ -24,13 +24,13 @@ import { replaceAttributes } from '../application/markdownHelper.js';
|
|
24
24
|
* keyMapping?: Record<string,string>,
|
25
25
|
* valueMapping?: Record<string, string|Record<string,string>>,
|
26
26
|
* tags?: Record<string, HTMLTagOptions>,
|
27
|
-
* window?: import("../manager/window/windowManager.js").WindowComponentOptions
|
27
|
+
* window?: Pick<import("../manager/window/windowManager.js").WindowComponentOptions,'state'|'slot'|'position'>
|
28
28
|
* }} FeatureInfoViewOptions
|
29
29
|
* @property {Array<string>} [attributeKeys] - list of keys to filter attributes of selected feature
|
30
30
|
* @property {Object<string,string>} [keyMapping] - object providing text replacements or i18n strings for attribute keys
|
31
31
|
* @property {Object<string, string|Object<string,string>>} [valueMapping] - object providing text replacements or i18n strings for attribute values
|
32
32
|
* @property {Object<string,HTMLTagOptions>} [tags] - object with keys rendered as special html element. Value contains html options
|
33
|
-
* @property {import("../manager/window/windowManager.js").WindowComponentOptions} [window] - state, slot, position can be set. Other options are predefined. headerTitle of window state can be a template string, e.g. "{{myAttribute}}" or ["{{layerName}}", " - ", "{{myAttribute}}"]
|
33
|
+
* @property {Pick<import("../manager/window/windowManager.js").WindowComponentOptions,'state'|'slot'|'position'>} [window] - state, slot, position can be set. Other options are predefined. headerTitle of window state can be a template string, e.g. "{{myAttribute}}" or ["{{layerName}}", " - ", "{{myAttribute}}"]
|
34
34
|
*/
|
35
35
|
|
36
36
|
/**
|
@@ -221,6 +221,21 @@ export function applyOlcsAttributeFilter(attributes, keys = []) {
|
|
221
221
|
}, {});
|
222
222
|
}
|
223
223
|
|
224
|
+
/**
|
225
|
+
* Filters all __ attributes (from vc-converter tilesets) not provided as keys
|
226
|
+
* @param {Object<string, unknown>} attributes
|
227
|
+
* @param {Array<string>} keys
|
228
|
+
* @returns {Object}
|
229
|
+
*/
|
230
|
+
export function applyDoubleUnderscoreFilter(attributes, keys = []) {
|
231
|
+
return Object.keys(attributes)
|
232
|
+
.filter((key) => keys.includes(key) || !/^__/.test(key))
|
233
|
+
.reduce((obj, key) => {
|
234
|
+
obj[key] = attributes[key];
|
235
|
+
return obj;
|
236
|
+
}, {});
|
237
|
+
}
|
238
|
+
|
224
239
|
/**
|
225
240
|
* Filters attributes having an empty object as value
|
226
241
|
* @param {Object<string, unknown>} attributes
|
@@ -251,11 +266,9 @@ function getWindowState(app, state, attributes) {
|
|
251
266
|
let headerTitle = state?.headerTitle;
|
252
267
|
if (headerTitle) {
|
253
268
|
if (Array.isArray(headerTitle)) {
|
254
|
-
headerTitle = headerTitle.map((item) =>
|
255
|
-
replaceAttributes(item, attributes),
|
256
|
-
);
|
269
|
+
headerTitle = headerTitle.map((item) => renderTemplate(item, attributes));
|
257
270
|
} else {
|
258
|
-
headerTitle =
|
271
|
+
headerTitle = renderTemplate(headerTitle, attributes);
|
259
272
|
}
|
260
273
|
}
|
261
274
|
return {
|
@@ -316,7 +329,7 @@ class AbstractFeatureInfoView extends VcsObject {
|
|
316
329
|
*/
|
317
330
|
this.tags = options.tags || defaultOptions.tags;
|
318
331
|
/**
|
319
|
-
* @type {import("../manager/window/windowManager.js").WindowComponentOptions|Object}
|
332
|
+
* @type {Pick<import("../manager/window/windowManager.js").WindowComponentOptions,'state'|'slot'|'position'>|Object}
|
320
333
|
* @private
|
321
334
|
*/
|
322
335
|
this._window = options.window || defaultOptions.window;
|
@@ -329,7 +342,7 @@ class AbstractFeatureInfoView extends VcsObject {
|
|
329
342
|
|
330
343
|
/**
|
331
344
|
* window options, configured in a module, used only internally by AbstractFeatureInfoView or subclass
|
332
|
-
* @type {import("../manager/window/windowManager.js").WindowComponentOptions|Object}
|
345
|
+
* @type {Pick<import("../manager/window/windowManager.js").WindowComponentOptions<FeatureInfoProps>,'state'|'slot'|'position'>|Object}
|
333
346
|
*/
|
334
347
|
get window() {
|
335
348
|
return this._window;
|
@@ -343,6 +356,16 @@ class AbstractFeatureInfoView extends VcsObject {
|
|
343
356
|
return this._component;
|
344
357
|
}
|
345
358
|
|
359
|
+
/**
|
360
|
+
* @param {undefined|import("ol").Feature|import("@vcmap-cesium/engine").Cesium3DTileFeature|import("@vcmap-cesium/engine").Cesium3DTilePointFeature} feature
|
361
|
+
* @returns {Object}
|
362
|
+
* @protected
|
363
|
+
*/
|
364
|
+
// eslint-disable-next-line class-methods-use-this
|
365
|
+
_getAttributesFromFeature(feature) {
|
366
|
+
return feature?.getAttributes() || {};
|
367
|
+
}
|
368
|
+
|
346
369
|
/**
|
347
370
|
* This method returns all relevant attributes for this view.
|
348
371
|
* Called by `getProperties()` to pass attributes as props object to the VueComponent of this view.
|
@@ -352,7 +375,7 @@ class AbstractFeatureInfoView extends VcsObject {
|
|
352
375
|
* @returns {Object}
|
353
376
|
*/
|
354
377
|
getAttributes(feature) {
|
355
|
-
let attributes =
|
378
|
+
let attributes = this._getAttributesFromFeature(feature);
|
356
379
|
if (this.attributeKeys.length > 0) {
|
357
380
|
attributes = applyAttributeFilter(attributes, this.attributeKeys);
|
358
381
|
}
|
@@ -363,6 +386,7 @@ class AbstractFeatureInfoView extends VcsObject {
|
|
363
386
|
applyKeyMapping(attributes, this.keyMapping);
|
364
387
|
}
|
365
388
|
attributes = applyOlcsAttributeFilter(attributes, this.attributeKeys);
|
389
|
+
attributes = applyDoubleUnderscoreFilter(attributes, this.attributeKeys);
|
366
390
|
return applyEmptyAttributesFilter(attributes);
|
367
391
|
}
|
368
392
|
|
@@ -375,7 +399,7 @@ class AbstractFeatureInfoView extends VcsObject {
|
|
375
399
|
*/
|
376
400
|
getTags(feature) {
|
377
401
|
if (this.tags) {
|
378
|
-
const attributes =
|
402
|
+
const attributes = this._getAttributesFromFeature(feature);
|
379
403
|
const tags = Object.keys(this.tags)
|
380
404
|
.filter(
|
381
405
|
(key) =>
|
@@ -422,15 +446,16 @@ class AbstractFeatureInfoView extends VcsObject {
|
|
422
446
|
* @returns {import("../manager/window/windowManager.js").WindowComponentOptions}
|
423
447
|
*/
|
424
448
|
getWindowComponentOptions(app, featureInfo, layer) {
|
449
|
+
const props = this.getProperties(featureInfo, layer);
|
425
450
|
return {
|
426
451
|
state: getWindowState(app, this.window.state, {
|
427
|
-
...
|
452
|
+
...props.attributes,
|
428
453
|
layerName: layer.properties?.title || layer.name,
|
429
454
|
}),
|
430
455
|
slot: this.window.slot ?? WindowSlot.DYNAMIC_RIGHT,
|
431
456
|
component: this.component,
|
432
457
|
position: this.window.position,
|
433
|
-
props
|
458
|
+
props,
|
434
459
|
};
|
435
460
|
}
|
436
461
|
|
@@ -28,7 +28,7 @@ export const balloonOffset = { x: 55, y: 25 };
|
|
28
28
|
* @returns {undefined|import("@vcmap-cesium/engine").Cartesian2}
|
29
29
|
*/
|
30
30
|
function getBalloonPositionCesium(scene, cartesian) {
|
31
|
-
return SceneTransforms.
|
31
|
+
return SceneTransforms.worldToWindowCoordinates(scene, cartesian);
|
32
32
|
}
|
33
33
|
|
34
34
|
/**
|
@@ -11,14 +11,9 @@ export function getHighlightStyle(feature: FeatureType, layer: import("@vcmap/co
|
|
11
11
|
*/
|
12
12
|
export function createFeatureInfoSession(app: import("../vcsUiApp.js").default): FeatureInfoSession;
|
13
13
|
/**
|
14
|
-
* @
|
15
|
-
* @property {VcsEvent<void>} stopped
|
16
|
-
* @property {function():void} stop
|
17
|
-
*/
|
18
|
-
/**
|
19
|
-
* @type {ClassRegistry<import("@vcmap/core").Ctor<typeof AbstractFeatureInfoView>>}
|
14
|
+
* @type {ClassRegistry<typeof AbstractFeatureInfoView>}
|
20
15
|
*/
|
21
|
-
export const featureInfoClassRegistry: ClassRegistry<
|
16
|
+
export const featureInfoClassRegistry: ClassRegistry<typeof AbstractFeatureInfoView>;
|
22
17
|
/**
|
23
18
|
* Symbol added to features to overwrite the layers predefined feature info
|
24
19
|
* @type {symbol}
|
@@ -43,6 +38,11 @@ export type FeatureInfoSession = {
|
|
43
38
|
};
|
44
39
|
import { ClassRegistry } from '@vcmap/core';
|
45
40
|
import AbstractFeatureInfoView from './abstractFeatureInfoView.js';
|
41
|
+
/**
|
42
|
+
* @typedef {Object} FeatureInfoSession
|
43
|
+
* @property {VcsEvent<void>} stopped
|
44
|
+
* @property {function():void} stop
|
45
|
+
*/
|
46
46
|
/**
|
47
47
|
* @class FeatureInfo
|
48
48
|
* @description Provides registration of featureInfoClasses and stores featureInfoView instances.
|
@@ -21,8 +21,9 @@ import {
|
|
21
21
|
Entity,
|
22
22
|
} from '@vcmap-cesium/engine';
|
23
23
|
import { Feature } from 'ol';
|
24
|
-
import { check,
|
24
|
+
import { check, maybe, oneOf } from '@vcsuite/check';
|
25
25
|
|
26
|
+
import { reactive } from 'vue';
|
26
27
|
import { vcsAppSymbol } from '../pluginHelper.js';
|
27
28
|
import FeatureInfoInteraction from './featureInfoInteraction.js';
|
28
29
|
import AbstractFeatureInfoView from './abstractFeatureInfoView.js';
|
@@ -52,6 +53,17 @@ function getLogger() {
|
|
52
53
|
return getLoggerByName('featureInfo');
|
53
54
|
}
|
54
55
|
|
56
|
+
/**
|
57
|
+
* @type {ClassRegistry<typeof AbstractFeatureInfoView>}
|
58
|
+
*/
|
59
|
+
export const featureInfoClassRegistry = new ClassRegistry();
|
60
|
+
|
61
|
+
/**
|
62
|
+
* Symbol added to features to overwrite the layers predefined feature info
|
63
|
+
* @type {symbol}
|
64
|
+
*/
|
65
|
+
export const featureInfoViewSymbol = Symbol('featureInfoView');
|
66
|
+
|
55
67
|
/**
|
56
68
|
* @param {FeatureType} feature
|
57
69
|
* @param {import("@vcmap/core").Layer} layer
|
@@ -133,7 +145,7 @@ function setupFeatureInfoTool(app) {
|
|
133
145
|
/** @type {FeatureInfoSession|null} */
|
134
146
|
let session = null;
|
135
147
|
|
136
|
-
const action = {
|
148
|
+
const action = reactive({
|
137
149
|
name: 'featureInfoToggle',
|
138
150
|
title: 'featureInfo.activateToolTitle',
|
139
151
|
icon: '$vcsInfo',
|
@@ -144,46 +156,65 @@ function setupFeatureInfoTool(app) {
|
|
144
156
|
} else {
|
145
157
|
session = createFeatureInfoSession(app);
|
146
158
|
session.stopped.addEventListener(() => {
|
147
|
-
|
159
|
+
action.active = false;
|
148
160
|
session = null;
|
149
161
|
app.featureInfo.clear();
|
150
|
-
|
162
|
+
action.title = 'featureInfo.activateToolTitle';
|
151
163
|
});
|
152
164
|
this.active = true;
|
153
|
-
|
165
|
+
action.title = 'featureInfo.deactivateToolTitle';
|
154
166
|
}
|
155
167
|
},
|
156
|
-
};
|
168
|
+
});
|
157
169
|
|
158
170
|
function addFeatureInfoButton() {
|
159
171
|
if (app.uiConfig.getByKey('startingFeatureInfo')?.value !== false) {
|
160
172
|
action.callback();
|
161
173
|
}
|
162
|
-
app.toolboxManager.
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
174
|
+
if (!app.toolboxManager.has('featureInfo')) {
|
175
|
+
app.toolboxManager.add(
|
176
|
+
{
|
177
|
+
id: 'featureInfo',
|
178
|
+
type: ToolboxType.SINGLE,
|
179
|
+
action,
|
180
|
+
},
|
181
|
+
vcsAppSymbol,
|
182
|
+
);
|
183
|
+
}
|
170
184
|
}
|
171
185
|
|
172
|
-
if (
|
186
|
+
if (
|
187
|
+
[...app.layers].some((l) => l.properties?.featureInfo) ||
|
188
|
+
app.search.resultLayer.getFeatures().some((f) => !!f[featureInfoViewSymbol])
|
189
|
+
) {
|
173
190
|
addFeatureInfoButton();
|
174
191
|
}
|
175
192
|
|
176
193
|
const listeners = [
|
177
194
|
app.layers.added.addEventListener((layer) => {
|
178
|
-
if (
|
179
|
-
layer?.properties?.featureInfo &&
|
180
|
-
!app.toolboxManager.has('featureInfo')
|
181
|
-
) {
|
195
|
+
if (layer?.properties?.featureInfo) {
|
182
196
|
addFeatureInfoButton();
|
183
197
|
}
|
184
198
|
}),
|
185
199
|
app.layers.removed.addEventListener(() => {
|
186
200
|
if (
|
201
|
+
![...app.layers].some((l) => l.properties?.featureInfo) &&
|
202
|
+
!app.search.resultLayer
|
203
|
+
.getFeatures()
|
204
|
+
.some((f) => !!f[featureInfoViewSymbol]) &&
|
205
|
+
app.toolboxManager.has('featureInfo')
|
206
|
+
) {
|
207
|
+
app.toolboxManager.remove('featureInfo');
|
208
|
+
}
|
209
|
+
}),
|
210
|
+
app.search.resultsChanged.addEventListener(() => {
|
211
|
+
if (
|
212
|
+
app.search.resultLayer
|
213
|
+
.getFeatures()
|
214
|
+
.some((f) => !!f[featureInfoViewSymbol])
|
215
|
+
) {
|
216
|
+
addFeatureInfoButton();
|
217
|
+
} else if (
|
187
218
|
![...app.layers].some((l) => l.properties?.featureInfo) &&
|
188
219
|
app.toolboxManager.has('featureInfo')
|
189
220
|
) {
|
@@ -207,17 +238,6 @@ function setupFeatureInfoTool(app) {
|
|
207
238
|
* @property {function():void} stop
|
208
239
|
*/
|
209
240
|
|
210
|
-
/**
|
211
|
-
* @type {ClassRegistry<import("@vcmap/core").Ctor<typeof AbstractFeatureInfoView>>}
|
212
|
-
*/
|
213
|
-
export const featureInfoClassRegistry = new ClassRegistry();
|
214
|
-
|
215
|
-
/**
|
216
|
-
* Symbol added to features to overwrite the layers predefined feature info
|
217
|
-
* @type {symbol}
|
218
|
-
*/
|
219
|
-
export const featureInfoViewSymbol = Symbol('featureInfoView');
|
220
|
-
|
221
241
|
/**
|
222
242
|
* @class FeatureInfo
|
223
243
|
* @description Provides registration of featureInfoClasses and stores featureInfoView instances.
|
@@ -390,15 +410,13 @@ class FeatureInfo extends Collection {
|
|
390
410
|
* @returns {Promise<void>}
|
391
411
|
*/
|
392
412
|
async selectFeature(feature, position, windowPosition, featureInfoView) {
|
393
|
-
check(
|
394
|
-
|
395
|
-
Entity,
|
396
|
-
|
397
|
-
|
398
|
-
]);
|
399
|
-
|
400
|
-
checkMaybe(windowPosition, [Number]);
|
401
|
-
checkMaybe(featureInfoView, AbstractFeatureInfoView);
|
413
|
+
check(
|
414
|
+
feature,
|
415
|
+
oneOf(Feature, Entity, Cesium3DTileFeature, Cesium3DTilePointFeature),
|
416
|
+
);
|
417
|
+
check(position, maybe([Number]));
|
418
|
+
check(windowPosition, maybe([Number]));
|
419
|
+
check(featureInfoView, maybe(AbstractFeatureInfoView));
|
402
420
|
|
403
421
|
const usedFeatureInfoView =
|
404
422
|
feature[featureInfoViewSymbol] ??
|
@@ -416,7 +434,7 @@ class FeatureInfo extends Collection {
|
|
416
434
|
[featureId]: getHighlightStyle(
|
417
435
|
feature,
|
418
436
|
layer,
|
419
|
-
this._app.uiConfig.config.
|
437
|
+
this._app.uiConfig.config.primaryColor ??
|
420
438
|
getDefaultPrimaryColor(this._app),
|
421
439
|
),
|
422
440
|
});
|
@@ -428,7 +446,7 @@ class FeatureInfo extends Collection {
|
|
428
446
|
[featureId]: getHighlightStyle(
|
429
447
|
feature,
|
430
448
|
layer,
|
431
|
-
this._app.uiConfig.config.
|
449
|
+
this._app.uiConfig.config.primaryColor ??
|
432
450
|
getDefaultPrimaryColor(this._app),
|
433
451
|
),
|
434
452
|
});
|
@@ -9,7 +9,7 @@ export type IframeFeatureInfoViewProps = any & {
|
|
9
9
|
};
|
10
10
|
/**
|
11
11
|
* @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { src: string, title?: string }} IframeFeatureInfoViewOptions
|
12
|
-
* @property {string} src - Specifies the address of the document to embed in the <iframe>. Variables wrapped in `${}` are replaced by their values, e.g. `${featureId}` or `${
|
12
|
+
* @property {string} src - Specifies the address of the document to embed in the <iframe>. Variables wrapped in `${}` are replaced by their values, e.g. `${featureId}` or `${gml:name}`
|
13
13
|
* @property {string} [title] - optional title for the <iframe>
|
14
14
|
*/
|
15
15
|
/**
|
@@ -34,7 +34,13 @@ declare class IframeFeatureInfoView extends AbstractFeatureInfoView {
|
|
34
34
|
*/
|
35
35
|
title: string | undefined;
|
36
36
|
/**
|
37
|
-
*
|
37
|
+
* @param {Record<string, unknown>} attributes
|
38
|
+
* @protected
|
39
|
+
* @returns {string}
|
40
|
+
*/
|
41
|
+
protected _renderTemplate(attributes: Record<string, unknown>): string;
|
42
|
+
/**
|
43
|
+
* Supports markdown templates (e.g. {{someProperty}}) and style expressions to derive a URL
|
38
44
|
* @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
|
39
45
|
* @param {import("@vcmap/core").Layer} layer
|
40
46
|
* @returns {IframeFeatureInfoViewProps}
|
@@ -1,9 +1,10 @@
|
|
1
|
+
import { renderTemplate } from '../components/form-output/markdownHelper.js';
|
1
2
|
import AbstractFeatureInfoView from './abstractFeatureInfoView.js';
|
2
3
|
import IframeComponent from './IframeComponent.vue';
|
3
4
|
|
4
5
|
/**
|
5
6
|
* @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { src: string, title?: string }} IframeFeatureInfoViewOptions
|
6
|
-
* @property {string} src - Specifies the address of the document to embed in the <iframe>. Variables wrapped in `${}` are replaced by their values, e.g. `${featureId}` or `${
|
7
|
+
* @property {string} src - Specifies the address of the document to embed in the <iframe>. Variables wrapped in `${}` are replaced by their values, e.g. `${featureId}` or `${gml:name}`
|
7
8
|
* @property {string} [title] - optional title for the <iframe>
|
8
9
|
*/
|
9
10
|
|
@@ -41,7 +42,16 @@ class IframeFeatureInfoView extends AbstractFeatureInfoView {
|
|
41
42
|
}
|
42
43
|
|
43
44
|
/**
|
44
|
-
*
|
45
|
+
* @param {Record<string, unknown>} attributes
|
46
|
+
* @protected
|
47
|
+
* @returns {string}
|
48
|
+
*/
|
49
|
+
_renderTemplate(attributes) {
|
50
|
+
return renderTemplate(this.src, attributes);
|
51
|
+
}
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Supports markdown templates (e.g. {{someProperty}}) and style expressions to derive a URL
|
45
55
|
* @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
|
46
56
|
* @param {import("@vcmap/core").Layer} layer
|
47
57
|
* @returns {IframeFeatureInfoViewProps}
|
@@ -50,9 +60,9 @@ class IframeFeatureInfoView extends AbstractFeatureInfoView {
|
|
50
60
|
const properties = super.getProperties(featureInfo, layer);
|
51
61
|
return {
|
52
62
|
...properties,
|
53
|
-
src: this.
|
54
|
-
|
55
|
-
|
63
|
+
src: this._renderTemplate({
|
64
|
+
...properties,
|
65
|
+
...properties.attributes,
|
56
66
|
}),
|
57
67
|
title: this.title,
|
58
68
|
};
|
@@ -33,7 +33,7 @@ declare class MarkdownBalloonFeatureInfoView extends BalloonFeatureInfoView {
|
|
33
33
|
*/
|
34
34
|
protected _renderTemplate(attributes: Record<string, unknown>): string;
|
35
35
|
/**
|
36
|
-
*
|
36
|
+
* Supports markdown templates (e.g. {{someProperty}}) and style expressions to derive markdown rendering
|
37
37
|
* @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
|
38
38
|
* @param {import("@vcmap/core").Layer} layer
|
39
39
|
* @returns {MarkdownBalloonFeatureInfoViewProps}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import {
|
2
2
|
parseAndSanitizeMarkdown,
|
3
|
-
|
4
|
-
} from '../
|
3
|
+
renderTemplate,
|
4
|
+
} from '../components/form-output/markdownHelper.js';
|
5
5
|
import BalloonFeatureInfoView from './balloonFeatureInfoView.js';
|
6
6
|
import MarkdownBalloonComponent from './MarkdownBalloonComponent.vue';
|
7
7
|
|
@@ -47,11 +47,11 @@ class MarkdownBalloonFeatureInfoView extends BalloonFeatureInfoView {
|
|
47
47
|
* @returns {string}
|
48
48
|
*/
|
49
49
|
_renderTemplate(attributes) {
|
50
|
-
return
|
50
|
+
return renderTemplate(this.template, attributes);
|
51
51
|
}
|
52
52
|
|
53
53
|
/**
|
54
|
-
*
|
54
|
+
* Supports markdown templates (e.g. {{someProperty}}) and style expressions to derive markdown rendering
|
55
55
|
* @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
|
56
56
|
* @param {import("@vcmap/core").Layer} layer
|
57
57
|
* @returns {MarkdownBalloonFeatureInfoViewProps}
|
@@ -60,7 +60,7 @@ class MarkdownBalloonFeatureInfoView extends BalloonFeatureInfoView {
|
|
60
60
|
const properties = super.getProperties(featureInfo, layer);
|
61
61
|
return {
|
62
62
|
...properties,
|
63
|
-
|
63
|
+
content: parseAndSanitizeMarkdown(
|
64
64
|
this._renderTemplate({ ...properties, ...properties.attributes }),
|
65
65
|
),
|
66
66
|
};
|
@@ -33,7 +33,7 @@ declare class MarkdownFeatureInfoView extends AbstractFeatureInfoView {
|
|
33
33
|
*/
|
34
34
|
protected _renderTemplate(attributes: Record<string, unknown>): string;
|
35
35
|
/**
|
36
|
-
*
|
36
|
+
* Supports markdown templates (e.g. {{someProperty}}) and style expressions to derive a markdown rendering
|
37
37
|
* @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
|
38
38
|
* @param {import("@vcmap/core").Layer} layer
|
39
39
|
* @returns {MarkdownFeatureInfoViewProps}
|
@@ -1,9 +1,6 @@
|
|
1
|
+
import { renderTemplate } from '../components/form-output/markdownHelper.js';
|
1
2
|
import AbstractFeatureInfoView from './abstractFeatureInfoView.js';
|
2
|
-
import
|
3
|
-
parseAndSanitizeMarkdown,
|
4
|
-
replaceAttributes,
|
5
|
-
} from '../application/markdownHelper.js';
|
6
|
-
import MarkdownComponent from './MarkdownComponent.vue';
|
3
|
+
import VcsMarkdown from '../components/form-output/VcsMarkdown.vue';
|
7
4
|
|
8
5
|
/**
|
9
6
|
* @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { template: string | string[] }} MarkdownFeatureInfoViewOptions
|
@@ -31,7 +28,7 @@ class MarkdownFeatureInfoView extends AbstractFeatureInfoView {
|
|
31
28
|
* @param {MarkdownFeatureInfoViewOptions} options
|
32
29
|
*/
|
33
30
|
constructor(options) {
|
34
|
-
super(options,
|
31
|
+
super(options, VcsMarkdown);
|
35
32
|
|
36
33
|
/**
|
37
34
|
* @type {string | string[]}
|
@@ -47,11 +44,11 @@ class MarkdownFeatureInfoView extends AbstractFeatureInfoView {
|
|
47
44
|
* @returns {string}
|
48
45
|
*/
|
49
46
|
_renderTemplate(attributes) {
|
50
|
-
return
|
47
|
+
return renderTemplate(this.template, attributes);
|
51
48
|
}
|
52
49
|
|
53
50
|
/**
|
54
|
-
*
|
51
|
+
* Supports markdown templates (e.g. {{someProperty}}) and style expressions to derive a markdown rendering
|
55
52
|
* @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
|
56
53
|
* @param {import("@vcmap/core").Layer} layer
|
57
54
|
* @returns {MarkdownFeatureInfoViewProps}
|
@@ -60,9 +57,10 @@ class MarkdownFeatureInfoView extends AbstractFeatureInfoView {
|
|
60
57
|
const properties = super.getProperties(featureInfo, layer);
|
61
58
|
return {
|
62
59
|
...properties,
|
63
|
-
|
64
|
-
|
65
|
-
|
60
|
+
content: this._renderTemplate({
|
61
|
+
...properties,
|
62
|
+
...properties.attributes,
|
63
|
+
}),
|
66
64
|
};
|
67
65
|
}
|
68
66
|
|
@@ -79,6 +79,19 @@ class TableFeatureInfoView extends AbstractFeatureInfoView {
|
|
79
79
|
this.searchbarPlaceholder = options.searchbarPlaceholder;
|
80
80
|
}
|
81
81
|
|
82
|
+
/**
|
83
|
+
* @param {undefined|import("ol").Feature|import("@vcmap-cesium/engine").Cesium3DTileFeature|import("@vcmap-cesium/engine").Cesium3DTilePointFeature} feature
|
84
|
+
* @returns {Object}
|
85
|
+
* @private
|
86
|
+
*/
|
87
|
+
_getAttributesFromFeature(feature) {
|
88
|
+
const attributes = super._getAttributesFromFeature(feature);
|
89
|
+
return {
|
90
|
+
...attributes,
|
91
|
+
featureId: feature.getId(),
|
92
|
+
};
|
93
|
+
}
|
94
|
+
|
82
95
|
/**
|
83
96
|
* @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
|
84
97
|
* @param {import("@vcmap/core").Layer} layer
|
@@ -92,10 +105,6 @@ class TableFeatureInfoView extends AbstractFeatureInfoView {
|
|
92
105
|
itemsPerPageArray: this.itemsPerPageArray,
|
93
106
|
showSearchbar: this.showSearchbar,
|
94
107
|
searchbarPlaceholder: this.searchbarPlaceholder,
|
95
|
-
headers: [
|
96
|
-
{ text: 'components.vcsTable.key', value: 'key', width: '128px' },
|
97
|
-
{ text: 'components.vcsTable.value', value: 'value', width: '192px' },
|
98
|
-
],
|
99
108
|
};
|
100
109
|
}
|
101
110
|
|