@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,142 +1,142 @@
|
|
1
1
|
<template>
|
2
2
|
<VcsFormSection
|
3
|
+
class="vcs-vector-properties-component"
|
3
4
|
:heading="$attrs.heading || 'components.vectorProperties.header'"
|
4
5
|
:expandable="expandable"
|
5
6
|
:start-open="startOpen"
|
6
7
|
:header-actions="headerActions"
|
7
8
|
>
|
8
9
|
<v-container class="px-1 py-0">
|
9
|
-
<v-
|
10
|
-
v-if="visibleProperties.has('altitudeMode')
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
"
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
clearable
|
69
|
-
/>
|
70
|
-
</v-col>
|
71
|
-
</v-row>
|
72
|
-
<v-row
|
73
|
-
v-if="visibleProperties.has('scaleByDistance') && show3DProperties"
|
74
|
-
no-gutters
|
75
|
-
>
|
76
|
-
<v-col>
|
77
|
-
<VcsCheckbox
|
78
|
-
label="components.vectorProperties.scaleByDistance"
|
79
|
-
v-model="hasScaleByDistance"
|
80
|
-
/>
|
81
|
-
</v-col>
|
82
|
-
<v-col>
|
10
|
+
<template v-if="show3DProperties">
|
11
|
+
<v-row v-if="visibleProperties.has('altitudeMode')" no-gutters>
|
12
|
+
<v-col>
|
13
|
+
<VcsLabel :html-for="`${cid}-vp-altitude-mode`"
|
14
|
+
>{{ $t('components.vectorProperties.altitudeMode') }}
|
15
|
+
<template #help>
|
16
|
+
<ul>
|
17
|
+
<li v-for="mode in availableAltitudeModes" :key="mode.value">
|
18
|
+
{{ $t(mode.title) }}:
|
19
|
+
{{ $t(`components.vectorProperties.help.${mode.value}`) }}
|
20
|
+
</li>
|
21
|
+
</ul>
|
22
|
+
</template>
|
23
|
+
</VcsLabel>
|
24
|
+
</v-col>
|
25
|
+
<v-col>
|
26
|
+
<VcsSelect
|
27
|
+
:id="`${cid}-vp-altitude-mode`"
|
28
|
+
:items="availableAltitudeModes"
|
29
|
+
v-model="localValue.altitudeMode"
|
30
|
+
/>
|
31
|
+
</v-col>
|
32
|
+
</v-row>
|
33
|
+
<v-row v-if="visibleProperties.has('heightAboveGround')" no-gutters>
|
34
|
+
<v-col>
|
35
|
+
<VcsLabel :html-for="`${cid}-vp-height-above-ground`">{{
|
36
|
+
$t('components.vectorProperties.heightAboveGround')
|
37
|
+
}}</VcsLabel>
|
38
|
+
</v-col>
|
39
|
+
<v-col>
|
40
|
+
<VcsTextField
|
41
|
+
:id="`${cid}-vp-height-above-ground`"
|
42
|
+
v-model.number="localValue.heightAboveGround"
|
43
|
+
:hide-spin-buttons="true"
|
44
|
+
type="number"
|
45
|
+
unit="m"
|
46
|
+
clearable
|
47
|
+
/>
|
48
|
+
</v-col>
|
49
|
+
</v-row>
|
50
|
+
<v-row v-if="visibleProperties.has('groundLevel')" no-gutters>
|
51
|
+
<v-col>
|
52
|
+
<VcsLabel :html-for="`${cid}-vp-ground-level`">{{
|
53
|
+
$t('components.vectorProperties.groundLevel')
|
54
|
+
}}</VcsLabel>
|
55
|
+
</v-col>
|
56
|
+
<v-col>
|
57
|
+
<VcsTextField
|
58
|
+
:id="`${cid}-vp-ground-level`"
|
59
|
+
v-model.number="localValue.groundLevel"
|
60
|
+
:hide-spin-buttons="true"
|
61
|
+
type="number"
|
62
|
+
unit="m"
|
63
|
+
placeholder="0"
|
64
|
+
clearable
|
65
|
+
/>
|
66
|
+
</v-col>
|
67
|
+
</v-row>
|
68
|
+
<template v-if="visibleProperties.has('scaleByDistance')">
|
83
69
|
<v-row no-gutters>
|
84
|
-
<v-col
|
85
|
-
<
|
86
|
-
|
87
|
-
|
88
|
-
type="number"
|
89
|
-
:unit="index % 2 === 0 ? 'm' : ''"
|
90
|
-
:disabled="!hasScaleByDistance"
|
91
|
-
:placeholder="
|
92
|
-
'scaleByDistance' in value
|
93
|
-
? `${scaleByDistanceDefault[index]}`
|
94
|
-
: ''
|
95
|
-
"
|
96
|
-
:rules="[
|
97
|
-
(v) =>
|
98
|
-
!hasScaleByDistance ||
|
99
|
-
!isNaN(v) ||
|
100
|
-
'components.validation.required',
|
101
|
-
]"
|
70
|
+
<v-col cols="6">
|
71
|
+
<VcsCheckbox
|
72
|
+
label="components.vectorProperties.scaleByDistance"
|
73
|
+
v-model="hasScaleByDistance"
|
102
74
|
/>
|
103
75
|
</v-col>
|
104
76
|
</v-row>
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
77
|
+
<template v-if="hasScaleByDistance">
|
78
|
+
<v-row no-gutters class="pb-2">
|
79
|
+
<v-col
|
80
|
+
v-for="(_, index) in localValue.scaleByDistance"
|
81
|
+
:key="index"
|
82
|
+
>
|
83
|
+
<VcsTextField
|
84
|
+
v-model="localValue.scaleByDistance[index]"
|
85
|
+
:hide-spin-buttons="true"
|
86
|
+
type="number"
|
87
|
+
:unit="index % 2 === 0 ? 'm' : ''"
|
88
|
+
:disabled="!localValue.scaleByDistance"
|
89
|
+
:placeholder="String(scaleByDistanceDefault[index])"
|
90
|
+
:rules="[
|
91
|
+
(v) =>
|
92
|
+
!hasScaleByDistance ||
|
93
|
+
!isNaN(v) ||
|
94
|
+
'components.validation.required',
|
95
|
+
]"
|
96
|
+
/>
|
97
|
+
</v-col>
|
98
|
+
</v-row>
|
99
|
+
</template>
|
100
|
+
</template>
|
101
|
+
<template v-if="visibleProperties.has('eyeOffset')">
|
102
|
+
<v-row no-gutters>
|
103
|
+
<v-col>
|
104
|
+
<VcsCheckbox
|
105
|
+
label="components.vectorProperties.eyeOffset"
|
106
|
+
v-model="hasEyeOffset"
|
107
|
+
/>
|
108
|
+
</v-col>
|
109
|
+
</v-row>
|
110
|
+
<template v-if="hasEyeOffset">
|
111
|
+
<v-row no-gutters class="pb-2">
|
112
|
+
<v-col v-for="(_, index) in localValue.eyeOffset" :key="index">
|
113
|
+
<VcsTextField
|
114
|
+
v-model.number="localValue.eyeOffset[index]"
|
115
|
+
unit="m"
|
116
|
+
:hide-spin-buttons="true"
|
117
|
+
type="number"
|
118
|
+
:disabled="!hasEyeOffset"
|
119
|
+
:prefix="dimensionsUpperCase[index]"
|
120
|
+
:rules="[
|
121
|
+
(v) =>
|
122
|
+
!hasEyeOffset ||
|
123
|
+
!isNaN(v) ||
|
124
|
+
'components.validation.required',
|
125
|
+
]"
|
126
|
+
:placeholder="String(eyeOffsetDefault[index])"
|
127
|
+
/>
|
128
|
+
</v-col>
|
129
|
+
</v-row>
|
130
|
+
</template>
|
131
|
+
</template>
|
132
|
+
</template>
|
135
133
|
<v-row v-if="visibleProperties.has('allowPicking')" no-gutters>
|
136
134
|
<v-col>
|
137
135
|
<VcsCheckbox
|
138
136
|
label="components.vectorProperties.allowPicking"
|
139
|
-
v-model="allowPicking"
|
137
|
+
v-model="localValue.allowPicking"
|
138
|
+
:true-value="true"
|
139
|
+
:false-value="false"
|
140
140
|
/>
|
141
141
|
</v-col>
|
142
142
|
</v-row>
|
@@ -145,337 +145,349 @@
|
|
145
145
|
no-gutters
|
146
146
|
>
|
147
147
|
<v-col>
|
148
|
-
<VcsLabel html-for="vp-classification-type"
|
148
|
+
<VcsLabel :html-for="`${cid}-vp-classification-type`">
|
149
149
|
{{ $t('components.vectorProperties.classificationType') }}
|
150
150
|
</VcsLabel>
|
151
151
|
</v-col>
|
152
152
|
<v-col>
|
153
153
|
<VcsSelect
|
154
|
-
id="vp-classification-type"
|
155
|
-
:items="
|
156
|
-
{ value: 'none', text: 'components.vectorProperties.none' },
|
157
|
-
{ value: 'both', text: 'components.vectorProperties.both' },
|
158
|
-
{
|
159
|
-
value: 'cesium3DTile',
|
160
|
-
text: 'components.vectorProperties.cesium3DTile',
|
161
|
-
},
|
162
|
-
{ value: 'terrain', text: 'components.vectorProperties.terrain' },
|
163
|
-
]"
|
154
|
+
:id="`${cid}-vp-classification-type`"
|
155
|
+
:items="availableClassificationTypes"
|
164
156
|
v-model="classificationType"
|
165
|
-
dense
|
166
157
|
/>
|
167
158
|
</v-col>
|
168
159
|
</v-row>
|
169
160
|
</v-container>
|
170
|
-
<v-
|
171
|
-
v-
|
172
|
-
showDividers &&
|
173
|
-
show3DProperties &&
|
174
|
-
[
|
175
|
-
'extrudedHeight',
|
176
|
-
'skirt',
|
177
|
-
'storeysAboveGround',
|
178
|
-
'storeysBelowGround',
|
179
|
-
'storeyHeightsAboveGround',
|
180
|
-
'storeyHeightsBelowGround',
|
181
|
-
].some((prop) => visibleProperties.has(prop))
|
182
|
-
"
|
183
|
-
/>
|
184
|
-
<v-container class="px-1 py-0" v-if="show3DProperties">
|
185
|
-
<v-row
|
161
|
+
<template v-if="show3DProperties">
|
162
|
+
<v-divider
|
186
163
|
v-if="
|
187
|
-
|
188
|
-
|
164
|
+
showDividers &&
|
165
|
+
[
|
166
|
+
'extrudedHeight',
|
167
|
+
'skirt',
|
168
|
+
'storeysAboveGround',
|
169
|
+
'storeysBelowGround',
|
170
|
+
'storeyHeightsAboveGround',
|
171
|
+
'storeyHeightsBelowGround',
|
172
|
+
].some((prop) => visibleProperties.has(prop))
|
189
173
|
"
|
190
|
-
|
191
|
-
>
|
192
|
-
<v-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
174
|
+
/>
|
175
|
+
<v-container class="px-1 py-0">
|
176
|
+
<v-row
|
177
|
+
v-if="
|
178
|
+
visibleProperties.has('storeysAboveGround') ||
|
179
|
+
visibleProperties.has('storeyHeightsAboveGround')
|
180
|
+
"
|
181
|
+
no-gutters
|
182
|
+
>
|
183
|
+
<v-col>
|
184
|
+
<VcsLabel>{{
|
185
|
+
$t('components.vectorProperties.aboveGround')
|
186
|
+
}}</VcsLabel>
|
187
|
+
</v-col>
|
188
|
+
</v-row>
|
189
|
+
<v-row v-if="visibleProperties.has('extrudedHeight')" no-gutters>
|
190
|
+
<v-col>
|
191
|
+
<VcsLabel
|
192
|
+
:html-for="`${cid}-vp-extruded-height`"
|
193
|
+
:class="{
|
194
|
+
'px-4':
|
195
|
+
visibleProperties.has('storeysAboveGround') ||
|
196
|
+
visibleProperties.has('storeyHeightsAboveGround'),
|
197
|
+
}"
|
198
|
+
>{{ $t('components.vectorProperties.extrudedHeight') }}</VcsLabel
|
199
|
+
>
|
200
|
+
</v-col>
|
201
|
+
<v-col>
|
202
|
+
<VcsTextField
|
203
|
+
:id="`${cid}-vp-extruded-height`"
|
204
|
+
v-model.number="localValue.extrudedHeight"
|
205
|
+
:hide-spin-buttons="true"
|
206
|
+
type="number"
|
207
|
+
unit="m"
|
208
|
+
:placeholder="'extrudedHeight' in localValue ? '0' : ''"
|
209
|
+
clearable
|
210
|
+
:rules="[
|
211
|
+
(v) => v >= 0 || isNaN(v) || 'components.validation.notValid',
|
212
|
+
]"
|
213
|
+
/>
|
214
|
+
</v-col>
|
215
|
+
</v-row>
|
216
|
+
<v-row v-if="visibleProperties.has('storeysAboveGround')" no-gutters>
|
217
|
+
<v-col>
|
218
|
+
<VcsLabel :html-for="`${cid}-vp-storeys-above`" class="px-4">{{
|
219
|
+
$t('components.vectorProperties.storeys')
|
220
|
+
}}</VcsLabel>
|
221
|
+
</v-col>
|
222
|
+
<v-col>
|
223
|
+
<VcsTextField
|
224
|
+
:id="`${cid}-vp-storeys-above`"
|
225
|
+
v-model.number="localValue.storeysAboveGround"
|
226
|
+
:hide-spin-buttons="true"
|
227
|
+
type="number"
|
228
|
+
:placeholder="'storeysAboveGround' in localValue ? '0' : ''"
|
229
|
+
clearable
|
230
|
+
:rules="[
|
231
|
+
(v) => v >= 0 || isNaN(v) || 'components.validation.notValid',
|
232
|
+
]"
|
233
|
+
/>
|
234
|
+
</v-col>
|
235
|
+
</v-row>
|
236
|
+
<v-row
|
237
|
+
v-if="visibleProperties.has('storeyHeightsAboveGround')"
|
238
|
+
no-gutters
|
239
|
+
>
|
240
|
+
<v-col>
|
241
|
+
<VcsLabel
|
242
|
+
:html-for="`${cid}-vp-storey-heights-above`"
|
243
|
+
class="px-4"
|
244
|
+
>{{ $t('components.vectorProperties.storeyHeights') }}</VcsLabel
|
245
|
+
>
|
246
|
+
</v-col>
|
247
|
+
<v-col>
|
248
|
+
<VcsChipArrayInput
|
249
|
+
:id="`${cid}-vp-storey-heights-above`"
|
250
|
+
column
|
251
|
+
type="number"
|
252
|
+
v-model="storeyHeights.storeyHeightsAboveGround.value"
|
253
|
+
placeholder="3"
|
254
|
+
:rules="[(v) => !(v <= 0) || 'components.validation.notValid']"
|
255
|
+
/>
|
256
|
+
</v-col>
|
257
|
+
</v-row>
|
258
|
+
<v-row
|
259
|
+
v-if="
|
260
|
+
visibleProperties.has('storeysBelowGround') ||
|
261
|
+
visibleProperties.has('storeyHeightsBelowGround')
|
262
|
+
"
|
263
|
+
no-gutters
|
264
|
+
>
|
265
|
+
<v-col>
|
266
|
+
<VcsLabel>{{
|
267
|
+
$t('components.vectorProperties.belowGround')
|
268
|
+
}}</VcsLabel>
|
269
|
+
</v-col>
|
270
|
+
</v-row>
|
271
|
+
<v-row v-if="visibleProperties.has('skirt')" no-gutters>
|
272
|
+
<v-col>
|
273
|
+
<VcsLabel
|
274
|
+
:html-for="`${cid}-vp-skirt`"
|
275
|
+
:class="{
|
276
|
+
'px-4':
|
277
|
+
visibleProperties.has('storeysBelowGround') ||
|
278
|
+
visibleProperties.has('storeyHeightsBelowGround'),
|
279
|
+
}"
|
280
|
+
>{{ $t('components.vectorProperties.skirt') }}</VcsLabel
|
281
|
+
>
|
282
|
+
</v-col>
|
283
|
+
<v-col>
|
284
|
+
<VcsTextField
|
285
|
+
:id="`${cid}-vp-skirt`"
|
286
|
+
v-model.number="localValue.skirt"
|
287
|
+
:hide-spin-buttons="true"
|
288
|
+
type="number"
|
289
|
+
unit="m"
|
290
|
+
:placeholder="'skirt' in localValue ? '0' : ''"
|
291
|
+
clearable
|
292
|
+
:rules="[
|
293
|
+
(v) => v >= 0 || isNaN(v) || 'components.validation.notValid',
|
294
|
+
]"
|
295
|
+
/>
|
296
|
+
</v-col>
|
297
|
+
</v-row>
|
298
|
+
<v-row v-if="visibleProperties.has('storeysBelowGround')" no-gutters>
|
299
|
+
<v-col>
|
300
|
+
<VcsLabel :html-for="`${cid}-vp-storeys-below`" class="px-4">{{
|
301
|
+
$t('components.vectorProperties.storeys')
|
302
|
+
}}</VcsLabel>
|
303
|
+
</v-col>
|
304
|
+
<v-col>
|
305
|
+
<VcsTextField
|
306
|
+
:id="`${cid}-vp-storeys-below`"
|
307
|
+
v-model.number="localValue.storeysBelowGround"
|
308
|
+
:hide-spin-buttons="true"
|
309
|
+
type="number"
|
310
|
+
:placeholder="'storeysBelowGround' in localValue ? '0' : ''"
|
311
|
+
clearable
|
312
|
+
:rules="[
|
313
|
+
(v) => v >= 0 || isNaN(v) || 'components.validation.notValid',
|
314
|
+
]"
|
315
|
+
/>
|
316
|
+
</v-col>
|
317
|
+
</v-row>
|
318
|
+
<v-row
|
319
|
+
v-if="visibleProperties.has('storeyHeightsBelowGround')"
|
320
|
+
no-gutters
|
321
|
+
>
|
322
|
+
<v-col>
|
323
|
+
<VcsLabel
|
324
|
+
:html-for="`${cid}-vp-storey-heights-below`"
|
325
|
+
class="px-4"
|
326
|
+
>{{ $t('components.vectorProperties.storeyHeights') }}</VcsLabel
|
327
|
+
>
|
328
|
+
</v-col>
|
329
|
+
<v-col>
|
330
|
+
<VcsChipArrayInput
|
331
|
+
:id="`${cid}-vp-storey-heights-below`"
|
332
|
+
column
|
333
|
+
type="number"
|
334
|
+
v-model="storeyHeights.storeyHeightsBelowGround.value"
|
335
|
+
placeholder="3"
|
336
|
+
/>
|
337
|
+
</v-col>
|
338
|
+
</v-row>
|
339
|
+
</v-container>
|
340
|
+
<v-divider
|
267
341
|
v-if="
|
268
|
-
|
269
|
-
|
342
|
+
showDividers &&
|
343
|
+
[
|
344
|
+
'modelUrl',
|
345
|
+
'modelScaleX',
|
346
|
+
'modelScaleY',
|
347
|
+
'modelScaleZ',
|
348
|
+
'modelHeading',
|
349
|
+
'modelPitch',
|
350
|
+
'modelRoll',
|
351
|
+
'modelAutoScale',
|
352
|
+
'baseUrl',
|
353
|
+
].some((prop) => visibleProperties.has(prop))
|
270
354
|
"
|
271
|
-
|
272
|
-
>
|
273
|
-
<v-
|
274
|
-
<
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
'
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
>
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
v-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
v-if="visibleProperties.has('
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
</v-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
</
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
type="number"
|
391
|
-
:placeholder="`modelScale${key}` in value ? '1' : ''"
|
392
|
-
:prefix="key"
|
393
|
-
:rules="[(v) => v > 0 || 'components.validation.notValid']"
|
394
|
-
/>
|
395
|
-
</v-col>
|
396
|
-
</v-row>
|
397
|
-
<v-row v-if="visibleProperties.has('modelHeading')" no-gutters>
|
398
|
-
<v-col cols="6">
|
399
|
-
<VcsLabel>{{
|
400
|
-
$t('components.vectorProperties.modelHeading')
|
401
|
-
}}</VcsLabel>
|
402
|
-
</v-col>
|
403
|
-
<v-col>
|
404
|
-
<VcsTextField
|
405
|
-
v-model.number="modelHeading"
|
406
|
-
:hide-spin-buttons="true"
|
407
|
-
type="number"
|
408
|
-
:placeholder="'modelHeading' in value ? '0' : ''"
|
409
|
-
unit="°"
|
410
|
-
clearable
|
411
|
-
/>
|
412
|
-
</v-col>
|
413
|
-
</v-row>
|
414
|
-
<v-row v-if="visibleProperties.has('modelPitch')" no-gutters>
|
415
|
-
<v-col cols="6">
|
416
|
-
<VcsLabel>{{
|
417
|
-
$t('components.vectorProperties.modelPitch')
|
418
|
-
}}</VcsLabel>
|
419
|
-
</v-col>
|
420
|
-
<v-col>
|
421
|
-
<VcsTextField
|
422
|
-
v-model.number="modelPitch"
|
423
|
-
:hide-spin-buttons="true"
|
424
|
-
type="number"
|
425
|
-
:placeholder="'modelPitch' in value ? '0' : ''"
|
426
|
-
unit="°"
|
427
|
-
clearable
|
428
|
-
/>
|
429
|
-
</v-col>
|
430
|
-
</v-row>
|
431
|
-
<v-row v-if="visibleProperties.has('modelRoll')" no-gutters>
|
432
|
-
<v-col cols="6">
|
433
|
-
<VcsLabel>{{ $t('components.vectorProperties.modelRoll') }}</VcsLabel>
|
434
|
-
</v-col>
|
435
|
-
<v-col>
|
436
|
-
<VcsTextField
|
437
|
-
v-model.number="modelRoll"
|
438
|
-
:hide-spin-buttons="true"
|
439
|
-
type="number"
|
440
|
-
:placeholder="'modelRoll' in value ? '0' : ''"
|
441
|
-
unit="°"
|
442
|
-
clearable
|
443
|
-
/>
|
444
|
-
</v-col>
|
445
|
-
</v-row>
|
446
|
-
<v-row v-if="visibleProperties.has('baseUrl')" no-gutters>
|
447
|
-
<v-col>
|
448
|
-
<VcsLabel html-for="vp-base-url">{{
|
449
|
-
$t('components.vectorProperties.baseUrl')
|
450
|
-
}}</VcsLabel>
|
451
|
-
</v-col>
|
452
|
-
<v-col>
|
453
|
-
<VcsTextField
|
454
|
-
id="vp-base-url"
|
455
|
-
dense
|
456
|
-
clearable
|
457
|
-
v-model="baseUrl"
|
458
|
-
:placeholder="'baseUrl' in value ? 'path/to/files/' : ''"
|
459
|
-
/>
|
460
|
-
</v-col>
|
461
|
-
</v-row>
|
462
|
-
</v-container>
|
355
|
+
/>
|
356
|
+
<v-container class="px-1 py-0">
|
357
|
+
<v-row v-if="visibleProperties.has('modelUrl')" no-gutters>
|
358
|
+
<v-col>
|
359
|
+
<VcsLabel :html-for="`${cid}-vp-model-url`">
|
360
|
+
{{ $t('components.vectorProperties.modelUrl') }}
|
361
|
+
</VcsLabel>
|
362
|
+
</v-col>
|
363
|
+
<v-col>
|
364
|
+
<VcsTextField
|
365
|
+
:id="`${cid}-vp-model-url`"
|
366
|
+
v-model="localValue.modelUrl"
|
367
|
+
clearable
|
368
|
+
:placeholder="'modelUrl' in localValue ? 'example.glb' : ''"
|
369
|
+
/>
|
370
|
+
</v-col>
|
371
|
+
</v-row>
|
372
|
+
<template v-if="Object.keys(modelScale).length">
|
373
|
+
<v-row no-gutters>
|
374
|
+
<v-col cols="6">
|
375
|
+
<VcsLabel>{{
|
376
|
+
$t('components.vectorProperties.modelScale')
|
377
|
+
}}</VcsLabel>
|
378
|
+
</v-col>
|
379
|
+
</v-row>
|
380
|
+
<v-row no-gutters class="pb-2">
|
381
|
+
<v-col v-for="(dimension, key) in modelScale" :key="key">
|
382
|
+
<VcsTextField
|
383
|
+
v-model.number="dimension.value"
|
384
|
+
:hide-spin-buttons="true"
|
385
|
+
type="number"
|
386
|
+
:placeholder="`modelScale${key}` in localValue ? '1' : ''"
|
387
|
+
:prefix="key"
|
388
|
+
:rules="[(v) => v > 0 || 'components.validation.notValid']"
|
389
|
+
/>
|
390
|
+
</v-col>
|
391
|
+
</v-row>
|
392
|
+
</template>
|
393
|
+
<v-row v-if="visibleProperties.has('modelHeading')" no-gutters>
|
394
|
+
<v-col cols="6">
|
395
|
+
<VcsLabel :html-for="`${cid}-vp-model-heading`">{{
|
396
|
+
$t('components.vectorProperties.modelHeading')
|
397
|
+
}}</VcsLabel>
|
398
|
+
</v-col>
|
399
|
+
<v-col>
|
400
|
+
<VcsTextField
|
401
|
+
:id="`${cid}-vp-model-heading`"
|
402
|
+
v-model.number="localValue.modelHeading"
|
403
|
+
:hide-spin-buttons="true"
|
404
|
+
type="number"
|
405
|
+
:placeholder="'modelHeading' in localValue ? '0' : ''"
|
406
|
+
unit="°"
|
407
|
+
clearable
|
408
|
+
/>
|
409
|
+
</v-col>
|
410
|
+
</v-row>
|
411
|
+
<v-row v-if="visibleProperties.has('modelPitch')" no-gutters>
|
412
|
+
<v-col cols="6">
|
413
|
+
<VcsLabel :html-for="`${cid}-vp-model-pitch`">{{
|
414
|
+
$t('components.vectorProperties.modelPitch')
|
415
|
+
}}</VcsLabel>
|
416
|
+
</v-col>
|
417
|
+
<v-col>
|
418
|
+
<VcsTextField
|
419
|
+
:id="`${cid}-vp-model-pitch`"
|
420
|
+
v-model.number="localValue.modelPitch"
|
421
|
+
:hide-spin-buttons="true"
|
422
|
+
type="number"
|
423
|
+
:placeholder="'modelPitch' in localValue ? '0' : ''"
|
424
|
+
unit="°"
|
425
|
+
clearable
|
426
|
+
/>
|
427
|
+
</v-col>
|
428
|
+
</v-row>
|
429
|
+
<v-row v-if="visibleProperties.has('modelRoll')" no-gutters>
|
430
|
+
<v-col cols="6">
|
431
|
+
<VcsLabel :html-for="`${cid}-vp-model-roll`">{{
|
432
|
+
$t('components.vectorProperties.modelRoll')
|
433
|
+
}}</VcsLabel>
|
434
|
+
</v-col>
|
435
|
+
<v-col>
|
436
|
+
<VcsTextField
|
437
|
+
:id="`${cid}-vp-model-roll`"
|
438
|
+
v-model.number="localValue.modelRoll"
|
439
|
+
:hide-spin-buttons="true"
|
440
|
+
type="number"
|
441
|
+
:placeholder="'modelRoll' in localValue ? '0' : ''"
|
442
|
+
unit="°"
|
443
|
+
clearable
|
444
|
+
/>
|
445
|
+
</v-col>
|
446
|
+
</v-row>
|
447
|
+
<v-row v-if="visibleProperties.has('modelAutoScale')" no-gutters>
|
448
|
+
<v-col cols="6">
|
449
|
+
<VcsLabel>{{
|
450
|
+
$t('components.vectorProperties.modelAutoScale')
|
451
|
+
}}</VcsLabel>
|
452
|
+
</v-col>
|
453
|
+
<v-col>
|
454
|
+
<VcsCheckbox v-model="localValue.modelAutoScale" />
|
455
|
+
</v-col>
|
456
|
+
</v-row>
|
457
|
+
<v-row v-if="visibleProperties.has('baseUrl')" no-gutters>
|
458
|
+
<v-col>
|
459
|
+
<VcsLabel :html-for="`${cid}-vp-base-url`">{{
|
460
|
+
$t('components.vectorProperties.baseUrl')
|
461
|
+
}}</VcsLabel>
|
462
|
+
</v-col>
|
463
|
+
<v-col>
|
464
|
+
<VcsTextField
|
465
|
+
:id="`${cid}-vp-base-url`"
|
466
|
+
clearable
|
467
|
+
v-model="localValue.baseUrl"
|
468
|
+
:placeholder="'baseUrl' in localValue ? 'path/to/files/' : ''"
|
469
|
+
/>
|
470
|
+
</v-col>
|
471
|
+
</v-row>
|
472
|
+
</v-container>
|
473
|
+
</template>
|
463
474
|
</VcsFormSection>
|
464
475
|
</template>
|
465
476
|
<script>
|
466
477
|
import { computed } from 'vue';
|
467
478
|
import { VContainer, VRow, VCol, VDivider } from 'vuetify/components';
|
468
|
-
import
|
479
|
+
import { VectorProperties } from '@vcmap/core';
|
480
|
+
import {
|
481
|
+
useProxiedComplexModel,
|
482
|
+
useModelHasProperty,
|
483
|
+
} from '../modelHelper.js';
|
484
|
+
import VcsFormSection from '../section/VcsFormSection.vue';
|
469
485
|
import VcsLabel from '../form-inputs-controls/VcsLabel.vue';
|
470
486
|
import VcsTextField from '../form-inputs-controls/VcsTextField.vue';
|
471
487
|
import VcsSelect from '../form-inputs-controls/VcsSelect.vue';
|
472
488
|
import VcsCheckbox from '../form-inputs-controls/VcsCheckbox.vue';
|
473
|
-
import {
|
474
|
-
usePrimitiveProperty,
|
475
|
-
useArrayProperty,
|
476
|
-
useHasProperty,
|
477
|
-
} from './composables.js';
|
478
489
|
import VcsChipArrayInput from '../form-inputs-controls/VcsChipArrayInput.vue';
|
490
|
+
import { useComponentId } from '../composables.js';
|
479
491
|
|
480
492
|
export const genericVectorProperties = [
|
481
493
|
'altitudeMode',
|
@@ -496,6 +508,7 @@
|
|
496
508
|
'modelHeading',
|
497
509
|
'modelPitch',
|
498
510
|
'modelRoll',
|
511
|
+
'modelAutoScale',
|
499
512
|
'baseUrl',
|
500
513
|
];
|
501
514
|
|
@@ -533,6 +546,7 @@
|
|
533
546
|
*/
|
534
547
|
export default {
|
535
548
|
name: 'VcsVectorPropertiesComponent',
|
549
|
+
methods: { computed },
|
536
550
|
components: {
|
537
551
|
VcsFormSection,
|
538
552
|
VcsLabel,
|
@@ -548,7 +562,7 @@
|
|
548
562
|
props: {
|
549
563
|
modelValue: {
|
550
564
|
type: Object,
|
551
|
-
default: () =>
|
565
|
+
default: () => VectorProperties.getDefaultOptions(),
|
552
566
|
},
|
553
567
|
valueDefault: {
|
554
568
|
type: Object,
|
@@ -558,10 +572,26 @@
|
|
558
572
|
type: Array,
|
559
573
|
default: () => vectorProperties,
|
560
574
|
},
|
575
|
+
altitudeModes: {
|
576
|
+
type: Array,
|
577
|
+
default: () => [
|
578
|
+
'absolute',
|
579
|
+
'relativeToGround',
|
580
|
+
'relativeToTerrain',
|
581
|
+
'relativeTo3DTiles',
|
582
|
+
'clampToGround',
|
583
|
+
'clampToTerrain',
|
584
|
+
'clampTo3DTiles',
|
585
|
+
],
|
586
|
+
},
|
561
587
|
show3DProperties: {
|
562
588
|
type: Boolean,
|
563
589
|
default: true,
|
564
590
|
},
|
591
|
+
is2DFeature: {
|
592
|
+
type: Boolean,
|
593
|
+
default: false,
|
594
|
+
},
|
565
595
|
showDividers: {
|
566
596
|
type: Boolean,
|
567
597
|
default: true,
|
@@ -579,162 +609,113 @@
|
|
579
609
|
default: true,
|
580
610
|
},
|
581
611
|
},
|
612
|
+
emits: ['update:modelValue'],
|
582
613
|
setup(props, { emit }) {
|
614
|
+
/**
|
615
|
+
* @type {import("vue").Ref<import("vue").UnwrapRef<import("@vcmap/core").VectorProperties>>}
|
616
|
+
*/
|
617
|
+
const localValue = useProxiedComplexModel(props, 'modelValue', emit);
|
618
|
+
|
583
619
|
const visibleProperties = computed(() => {
|
584
620
|
return new Set(props.properties);
|
585
621
|
});
|
586
622
|
|
587
|
-
const altitudeMode = usePrimitiveProperty(
|
588
|
-
() => props.modelValue,
|
589
|
-
'altitudeMode',
|
590
|
-
emit,
|
591
|
-
);
|
592
|
-
|
593
623
|
const availableAltitudeModes = computed(() => {
|
594
|
-
|
624
|
+
return [
|
595
625
|
{
|
596
626
|
value: 'clampToGround',
|
597
|
-
|
627
|
+
title: 'components.vectorProperties.clampToGround',
|
628
|
+
},
|
629
|
+
{
|
630
|
+
value: 'clampToTerrain',
|
631
|
+
title: 'components.vectorProperties.clampToTerrain',
|
632
|
+
},
|
633
|
+
{
|
634
|
+
value: 'clampTo3DTiles',
|
635
|
+
title: 'components.vectorProperties.clampTo3DTiles',
|
598
636
|
},
|
599
637
|
{
|
600
638
|
value: 'absolute',
|
601
|
-
|
639
|
+
title: 'components.vectorProperties.absolute',
|
640
|
+
props: {
|
641
|
+
disabled: props.is2DFeature,
|
642
|
+
},
|
602
643
|
},
|
603
|
-
|
604
|
-
|
605
|
-
if (visibleProperties.value.has('heightAboveGround')) {
|
606
|
-
altitudeModes.push({
|
644
|
+
{
|
607
645
|
value: 'relativeToGround',
|
608
|
-
|
609
|
-
}
|
610
|
-
|
611
|
-
|
612
|
-
|
646
|
+
title: 'components.vectorProperties.relativeToGround',
|
647
|
+
},
|
648
|
+
{
|
649
|
+
value: 'relativeToTerrain',
|
650
|
+
title: 'components.vectorProperties.relativeToTerrain',
|
651
|
+
},
|
652
|
+
{
|
653
|
+
value: 'relativeTo3DTiles',
|
654
|
+
title: 'components.vectorProperties.relativeTo3DTiles',
|
655
|
+
},
|
656
|
+
].filter((item) => props.altitudeModes.includes(item.value));
|
613
657
|
});
|
614
658
|
|
615
|
-
const
|
616
|
-
|
617
|
-
'
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
get() {
|
622
|
-
return props.modelValue.allowPicking;
|
659
|
+
const availableClassificationTypes = [
|
660
|
+
{ value: 'none', title: 'components.vectorProperties.none' },
|
661
|
+
{ value: 'both', title: 'components.vectorProperties.both' },
|
662
|
+
{
|
663
|
+
value: 'cesium3DTile',
|
664
|
+
title: 'components.vectorProperties.cesium3DTile',
|
623
665
|
},
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
const changedParams = { allowPicking: value || false };
|
628
|
-
emit('update:modelValue', Object.assign(newParams, changedParams));
|
629
|
-
emit('propertyChange', changedParams);
|
630
|
-
}
|
631
|
-
},
|
632
|
-
});
|
666
|
+
{ value: 'terrain', title: 'components.vectorProperties.terrain' },
|
667
|
+
];
|
668
|
+
|
633
669
|
const classificationType = computed({
|
634
670
|
get() {
|
635
|
-
if ('classificationType' in
|
636
|
-
return
|
671
|
+
if ('classificationType' in localValue.value) {
|
672
|
+
return localValue.value.classificationType || 'none';
|
637
673
|
} else {
|
638
674
|
return undefined;
|
639
675
|
}
|
640
676
|
},
|
641
677
|
set(value) {
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
classificationType: value === 'none' ? undefined : value,
|
646
|
-
};
|
647
|
-
emit('update:modelValue', Object.assign(newParams, changedParams));
|
648
|
-
emit('propertyChange', changedParams);
|
678
|
+
const v = value === 'none' ? undefined : value;
|
679
|
+
if (localValue.value.classificationType !== v) {
|
680
|
+
localValue.value.classificationType = v;
|
649
681
|
}
|
650
682
|
},
|
651
683
|
});
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
emit,
|
656
|
-
4,
|
657
|
-
);
|
658
|
-
const hasScaleByDistance = useHasProperty(
|
659
|
-
() => props.modelValue,
|
684
|
+
|
685
|
+
const hasScaleByDistance = useModelHasProperty(
|
686
|
+
localValue,
|
660
687
|
'scaleByDistance',
|
661
|
-
emit,
|
662
688
|
scaleByDistanceDefault,
|
663
689
|
);
|
664
690
|
|
665
|
-
const
|
666
|
-
|
667
|
-
'eyeOffset',
|
668
|
-
emit,
|
669
|
-
3,
|
670
|
-
);
|
671
|
-
const hasEyeOffset = useHasProperty(
|
672
|
-
() => props.modelValue,
|
691
|
+
const hasEyeOffset = useModelHasProperty(
|
692
|
+
localValue,
|
673
693
|
'eyeOffset',
|
674
|
-
emit,
|
675
694
|
eyeOffsetDefault,
|
676
695
|
);
|
677
696
|
|
678
|
-
const groundLevel = usePrimitiveProperty(
|
679
|
-
() => props.modelValue,
|
680
|
-
'groundLevel',
|
681
|
-
emit,
|
682
|
-
);
|
683
|
-
const extrudedHeight = usePrimitiveProperty(
|
684
|
-
() => props.modelValue,
|
685
|
-
'extrudedHeight',
|
686
|
-
emit,
|
687
|
-
);
|
688
|
-
const skirt = usePrimitiveProperty(() => props.modelValue, 'skirt', emit);
|
689
|
-
const storeysAboveGround = usePrimitiveProperty(
|
690
|
-
() => props.modelValue,
|
691
|
-
'storeysAboveGround',
|
692
|
-
emit,
|
693
|
-
);
|
694
|
-
const storeysBelowGround = usePrimitiveProperty(
|
695
|
-
() => props.modelValue,
|
696
|
-
'storeysBelowGround',
|
697
|
-
emit,
|
698
|
-
);
|
699
|
-
|
700
697
|
const storeyHeights = computed(() => {
|
701
698
|
return ['storeyHeightsAboveGround', 'storeyHeightsBelowGround']
|
702
699
|
.filter((key) => visibleProperties.value.has(key))
|
703
700
|
.reduce((acc, key) => {
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
[key]: value,
|
720
|
-
};
|
721
|
-
emit(
|
722
|
-
'update:modelValue',
|
723
|
-
Object.assign(newParams, changedParams),
|
724
|
-
);
|
725
|
-
emit('propertyChange', changedParams);
|
726
|
-
},
|
727
|
-
}),
|
728
|
-
};
|
701
|
+
acc[key] = computed({
|
702
|
+
get() {
|
703
|
+
if (Array.isArray(localValue.value[key])) {
|
704
|
+
return localValue.value[key];
|
705
|
+
} else if (localValue.value[key] > 0) {
|
706
|
+
return [localValue.value[key]];
|
707
|
+
} else {
|
708
|
+
return [];
|
709
|
+
}
|
710
|
+
},
|
711
|
+
set(value) {
|
712
|
+
localValue.value[key] = value;
|
713
|
+
},
|
714
|
+
});
|
715
|
+
return acc;
|
729
716
|
}, {});
|
730
717
|
});
|
731
718
|
|
732
|
-
const modelUrl = usePrimitiveProperty(
|
733
|
-
() => props.modelValue,
|
734
|
-
'modelUrl',
|
735
|
-
emit,
|
736
|
-
);
|
737
|
-
|
738
719
|
const modelScale = computed(() => {
|
739
720
|
return dimensionsUpperCase
|
740
721
|
.filter((dimension) =>
|
@@ -743,43 +724,18 @@
|
|
743
724
|
.reduce((acc, dimension) => {
|
744
725
|
return {
|
745
726
|
...acc,
|
746
|
-
[dimension]:
|
747
|
-
()
|
748
|
-
|
749
|
-
|
750
|
-
|
727
|
+
[dimension]: computed({
|
728
|
+
get() {
|
729
|
+
return localValue.value[`modelScale${dimension}`];
|
730
|
+
},
|
731
|
+
set(value) {
|
732
|
+
localValue.value[`modelScale${dimension}`] = value;
|
733
|
+
},
|
734
|
+
}),
|
751
735
|
};
|
752
736
|
}, {});
|
753
737
|
});
|
754
738
|
|
755
|
-
const modelHeading = usePrimitiveProperty(
|
756
|
-
() => props.modelValue,
|
757
|
-
'modelHeading',
|
758
|
-
emit,
|
759
|
-
);
|
760
|
-
const modelPitch = usePrimitiveProperty(
|
761
|
-
() => props.modelValue,
|
762
|
-
'modelPitch',
|
763
|
-
emit,
|
764
|
-
);
|
765
|
-
const modelRoll = usePrimitiveProperty(
|
766
|
-
() => props.modelValue,
|
767
|
-
'modelRoll',
|
768
|
-
emit,
|
769
|
-
);
|
770
|
-
const baseUrl = usePrimitiveProperty(
|
771
|
-
() => props.modelValue,
|
772
|
-
'baseUrl',
|
773
|
-
emit,
|
774
|
-
);
|
775
|
-
|
776
|
-
function reset() {
|
777
|
-
const newParams = structuredClone(props.valueDefault);
|
778
|
-
|
779
|
-
emit('update:modelValue', newParams);
|
780
|
-
emit('propertyChange', newParams);
|
781
|
-
}
|
782
|
-
|
783
739
|
const headerActions = computed(() =>
|
784
740
|
props.showReset
|
785
741
|
? [
|
@@ -788,41 +744,30 @@
|
|
788
744
|
title: 'components.style.reset',
|
789
745
|
icon: '$vcsReturn',
|
790
746
|
callback: () => {
|
791
|
-
|
747
|
+
localValue.value = props.valueDefault;
|
792
748
|
},
|
793
749
|
},
|
794
750
|
]
|
795
751
|
: [],
|
796
752
|
);
|
797
753
|
|
754
|
+
const cid = useComponentId();
|
755
|
+
|
798
756
|
return {
|
757
|
+
localValue,
|
799
758
|
headerActions,
|
800
759
|
visibleProperties,
|
801
|
-
altitudeMode,
|
802
760
|
availableAltitudeModes,
|
803
|
-
|
804
|
-
allowPicking,
|
761
|
+
availableClassificationTypes,
|
805
762
|
classificationType,
|
806
|
-
scaleByDistance,
|
807
763
|
hasScaleByDistance,
|
808
764
|
scaleByDistanceDefault,
|
809
|
-
eyeOffset,
|
810
765
|
hasEyeOffset,
|
811
766
|
eyeOffsetDefault,
|
812
|
-
groundLevel,
|
813
|
-
extrudedHeight,
|
814
|
-
skirt,
|
815
|
-
storeysAboveGround,
|
816
|
-
storeysBelowGround,
|
817
767
|
storeyHeights,
|
818
|
-
modelUrl,
|
819
768
|
modelScale,
|
820
|
-
modelHeading,
|
821
|
-
modelPitch,
|
822
|
-
modelRoll,
|
823
|
-
baseUrl,
|
824
|
-
reset,
|
825
769
|
dimensionsUpperCase,
|
770
|
+
cid,
|
826
771
|
};
|
827
772
|
},
|
828
773
|
};
|