@vcmap/ui 5.0.0-rc.22 → 5.0.0-rc.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -20
- package/app.config.json +3 -0
- package/build/.eslintrc +3 -0
- package/build/build.js +184 -174
- package/build/buildCesium.js +32 -19
- package/build/buildHelpers.js +117 -48
- package/build/buildPreview.js +9 -6
- package/build/commonViteConfig.js +1 -3
- package/build/determineHost.js +17 -4
- package/build/generateOLLib.js +13 -16
- package/build/getPluginProxies.js +16 -3
- package/build/info/conf.json +21 -21
- package/build/info/publish.js +15 -4
- package/config/aerowest.config.json +18 -44
- package/config/base.config.json +72 -246
- package/config/codes.config.json +4 -0
- package/config/dev.config.json +11 -13
- package/config/graphFeatureInfo.config.json +58 -17
- package/config/projects.config.json +30 -0
- package/config/www.config.json +98 -297
- package/dist/assets/cesium/Workers/{ArcType-ce2e50ab.js → ArcType-2d9abbbc.js} +4 -4
- package/dist/assets/cesium/Workers/{AttributeCompression-b646d393.js → AttributeCompression-f9f6c717.js} +24 -24
- package/dist/assets/cesium/Workers/{AxisAlignedBoundingBox-ff186ccc.js → AxisAlignedBoundingBox-85d9e53a.js} +3 -3
- package/dist/assets/cesium/Workers/{BoundingRectangle-be5924f4.js → BoundingRectangle-1ee7eb47.js} +18 -18
- package/dist/assets/cesium/Workers/{BoxGeometry-12eeccaf.js → BoxGeometry-3b2be784.js} +9 -9
- package/dist/assets/cesium/Workers/{Check-666ab1a0.js → Check-6ede7e26.js} +22 -22
- package/dist/assets/cesium/Workers/{Color-a84038cb.js → Color-f107c84d.js} +59 -59
- package/dist/assets/cesium/Workers/{ComponentDatatype-f7b11d02.js → ComponentDatatype-cf1fa08e.js} +16 -16
- package/dist/assets/cesium/Workers/{CoplanarPolygonGeometryLibrary-3272c1b3.js → CoplanarPolygonGeometryLibrary-78d71993.js} +1 -1
- package/dist/assets/cesium/Workers/{CorridorGeometryLibrary-0170e093.js → CorridorGeometryLibrary-50d99b33.js} +1 -1
- package/dist/assets/cesium/Workers/{CylinderGeometry-7c5da648.js → CylinderGeometry-51b0d9bf.js} +12 -12
- package/dist/assets/cesium/Workers/{CylinderGeometryLibrary-372c07d8.js → CylinderGeometryLibrary-7bf291b4.js} +1 -1
- package/dist/assets/cesium/Workers/{EllipseGeometry-797d580e.js → EllipseGeometry-bcfb5d87.js} +20 -20
- package/dist/assets/cesium/Workers/{EllipseGeometryLibrary-2939e1dc.js → EllipseGeometryLibrary-e94f8472.js} +1 -1
- package/dist/assets/cesium/Workers/{EllipseOutlineGeometry-8b50870f.js → EllipseOutlineGeometry-28e3a1bb.js} +15 -15
- package/dist/assets/cesium/Workers/{EllipsoidGeodesic-98c62a56.js → EllipsoidGeodesic-5b3623dc.js} +6 -6
- package/dist/assets/cesium/Workers/{EllipsoidGeometry-21c0e3a5.js → EllipsoidGeometry-b222fa63.js} +14 -14
- package/dist/assets/cesium/Workers/{EllipsoidOutlineGeometry-eff247c8.js → EllipsoidOutlineGeometry-38a3fb5b.js} +15 -15
- package/dist/assets/cesium/Workers/{EllipsoidRhumbLine-19756602.js → EllipsoidRhumbLine-ef872433.js} +9 -9
- package/dist/assets/cesium/Workers/{EllipsoidTangentPlane-214683dc.js → EllipsoidTangentPlane-8c89f28c.js} +1 -1
- package/dist/assets/cesium/Workers/{EncodedCartesian3-81f70735.js → EncodedCartesian3-57415c8a.js} +6 -6
- package/dist/assets/cesium/Workers/{FrustumGeometry-ac42a6d9.js → FrustumGeometry-bdd3a04d.js} +139 -111
- package/dist/assets/cesium/Workers/{GeometryAttribute-7d6f1732.js → GeometryAttribute-153115c5.js} +20 -20
- package/dist/assets/cesium/Workers/{GeometryAttributes-f06a2792.js → GeometryAttributes-ad136444.js} +1 -1
- package/dist/assets/cesium/Workers/{GeometryInstance-451dc1cd.js → GeometryInstance-34d9e21e.js} +6 -6
- package/dist/assets/cesium/Workers/{GeometryPipeline-ce4339ed.js → GeometryPipeline-acb2399c.js} +22 -22
- package/dist/assets/cesium/Workers/{IndexDatatype-a55ceaa1.js → IndexDatatype-2643aa47.js} +13 -13
- package/dist/assets/cesium/Workers/{IntersectionTests-f6e6bd8a.js → IntersectionTests-271e513e.js} +37 -37
- package/dist/assets/cesium/Workers/{Math-2dbd6b93.js → Math-0a2ac845.js} +149 -139
- package/dist/assets/cesium/Workers/{Matrix2-13178034.js → Matrix2-e1298525.js} +256 -256
- package/dist/assets/cesium/Workers/{Matrix3-315394f6.js → Matrix3-41c58dde.js} +150 -150
- package/dist/assets/cesium/Workers/{OrientedBoundingBox-04920dc7.js → OrientedBoundingBox-5e04e31f.js} +19 -17
- package/dist/assets/cesium/Workers/{Plane-900aa728.js → Plane-4c3d403b.js} +5 -5
- package/dist/assets/cesium/Workers/{PolygonGeometryLibrary-a8680d96.js → PolygonGeometryLibrary-6762b65b.js} +6 -6
- package/dist/assets/cesium/Workers/PolygonPipeline-7dc7a431.js +1344 -0
- package/dist/assets/cesium/Workers/{PolylinePipeline-32f36d2a.js → PolylinePipeline-15fde655.js} +16 -16
- package/dist/assets/cesium/Workers/{PolylineVolumeGeometryLibrary-a510d657.js → PolylineVolumeGeometryLibrary-ba7dfed5.js} +7 -7
- package/dist/assets/cesium/Workers/{PrimitivePipeline-ba38434a.js → PrimitivePipeline-68f0b9a2.js} +6 -6
- package/dist/assets/cesium/Workers/{RectangleGeometryLibrary-bdba697e.js → RectangleGeometryLibrary-8eaf23da.js} +1 -1
- package/dist/assets/cesium/Workers/{RuntimeError-06c93819.js → RuntimeError-ef395448.js} +5 -5
- package/dist/assets/cesium/Workers/{TerrainEncoding-833187da.js → TerrainEncoding-eb8a645a.js} +30 -30
- package/dist/assets/cesium/Workers/Transforms-f6451f99.js +14698 -0
- package/dist/assets/cesium/Workers/{VertexFormat-6b480673.js → VertexFormat-030f11ff.js} +14 -14
- package/dist/assets/cesium/Workers/{WallGeometryLibrary-919eed92.js → WallGeometryLibrary-feef3109.js} +1 -1
- package/dist/assets/cesium/Workers/{WebGLConstants-a8cc3e8c.js → WebGLConstants-0b1ce7ba.js} +1 -1
- package/dist/assets/cesium/Workers/{WebMercatorProjection-13a90d41.js → WebMercatorProjection-13ed1a6e.js} +6 -6
- package/dist/assets/cesium/Workers/{arrayRemoveDuplicates-c2038105.js → arrayRemoveDuplicates-d2061e85.js} +5 -5
- package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +5 -5
- package/dist/assets/cesium/Workers/{combine-ca22a614.js → combine-d9581036.js} +5 -5
- package/dist/assets/cesium/Workers/combineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createBoxGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +9 -9
- package/dist/assets/cesium/Workers/createCircleGeometry.js +13 -13
- package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +13 -13
- package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +11 -11
- package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +9 -9
- package/dist/assets/cesium/Workers/createCorridorGeometry.js +14 -14
- package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +12 -12
- package/dist/assets/cesium/Workers/createCylinderGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +13 -13
- package/dist/assets/cesium/Workers/createEllipseGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createFrustumGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +8 -8
- package/dist/assets/cesium/Workers/createGeometry.js +1 -1
- package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +33 -33
- package/dist/assets/cesium/Workers/createPlaneGeometry.js +8 -8
- package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +6 -6
- package/dist/assets/cesium/Workers/createPolygonGeometry.js +25 -25
- package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +17 -17
- package/dist/assets/cesium/Workers/createPolylineGeometry.js +11 -11
- package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +9 -9
- package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +9 -9
- package/dist/assets/cesium/Workers/createRectangleGeometry.js +16 -16
- package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +12 -12
- package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +10 -10
- package/dist/assets/cesium/Workers/createSphereGeometry.js +11 -11
- package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +12 -12
- package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +2 -2
- package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +1 -1
- package/dist/assets/cesium/Workers/createVectorTileGeometries.js +8 -8
- package/dist/assets/cesium/Workers/createVectorTilePoints.js +1 -1
- package/dist/assets/cesium/Workers/createVectorTilePolygons.js +1 -1
- package/dist/assets/cesium/Workers/createVectorTilePolylines.js +1 -1
- package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
- package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +27 -28
- package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +33 -38
- package/dist/assets/cesium/Workers/createWallGeometry.js +14 -14
- package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +14 -14
- package/dist/assets/cesium/Workers/decodeDraco.js +10 -2
- package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +15 -15
- package/dist/assets/cesium/Workers/decodeI3S.js +1 -1
- package/dist/assets/cesium/Workers/{defaultValue-0a909f67.js → defaultValue-fe22d8c0.js} +2 -2
- package/dist/assets/cesium/Workers/package.js +1 -1
- package/dist/assets/cesium/Workers/transcodeKTX2.js +46 -26
- package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
- package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +24 -24
- package/dist/assets/{cesium.88cffd.js → cesium.253914.js} +36578 -33768
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.a66593.js → core.3a8205.js} +7824 -5377
- package/dist/assets/core.js +1 -1
- package/dist/assets/index.91ae2d55.js +1 -0
- package/dist/assets/{ol.d4539f.js → ol.1c946a.js} +5550 -5491
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui.0025be.css +5 -0
- package/dist/assets/{ui.d760e4.js → ui.0025be.js} +6260 -5164
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +2 -2
- package/dist/assets/{vuetify.427322.css → vuetify.6efa21.css} +2 -2
- package/dist/assets/{vuetify.427322.js → vuetify.6efa21.js} +1 -1
- package/dist/assets/vuetify.js +2 -2
- package/dist/index.html +27 -7
- package/index.html +26 -6
- package/index.js +68 -15
- package/lib/cesium.js +1 -1
- package/lib/core.js +1 -1
- package/lib/ui.js +1 -1
- package/lib/vue.js +2 -2
- package/lib/vuetify.js +2 -2
- package/package.json +19 -10
- package/plugins/.eslintrc +9 -0
- package/plugins/@vcmap/create-link/fallbackCreateLink.vue +13 -9
- package/plugins/@vcmap/create-link/index.js +15 -6
- package/plugins/@vcmap/project-selector/{ContextsListComponent.vue → ModulesListComponent.vue} +14 -18
- package/plugins/@vcmap/project-selector/ProjectSelectorComponent.vue +19 -24
- package/plugins/@vcmap/project-selector/README.md +16 -20
- package/plugins/@vcmap/project-selector/config.json +13 -13
- package/plugins/@vcmap/project-selector/de.json +4 -1
- package/plugins/@vcmap/project-selector/en.json +4 -1
- package/plugins/@vcmap/project-selector/index.js +117 -107
- package/plugins/@vcmap/search-nominatim/LICENSE.md +5 -6
- package/plugins/@vcmap/search-nominatim/README.md +2 -1
- package/plugins/@vcmap/search-nominatim/config.json +1 -2
- package/plugins/@vcmap/search-nominatim/index.js +7 -4
- package/plugins/@vcmap/search-nominatim/nominatim.js +7 -2
- package/plugins/@vcmap/search-nominatim/package.json +2 -36
- package/plugins/@vcmap/simple-graph/README.md +29 -9
- package/plugins/@vcmap/simple-graph/SimpleGraphComponent.vue +2 -7
- package/plugins/@vcmap/simple-graph/index.js +2 -2
- package/plugins/@vcmap/simple-graph/simpleGraphView.js +3 -1
- package/plugins/@vcmap/theme-changer/README.md +5 -3
- package/plugins/@vcmap/theme-changer/ThemeChangerComponent.vue +6 -10
- package/plugins/@vcmap/theme-changer/config.json +67 -67
- package/plugins/@vcmap/theme-changer/index.js +11 -5
- package/plugins/@vcmap-show-case/buttons-example/ButtonsExample.vue +76 -11
- package/plugins/@vcmap-show-case/buttons-example/index.js +10 -8
- package/plugins/@vcmap-show-case/category-tester/Categories.vue +144 -117
- package/plugins/@vcmap-show-case/category-tester/Category.vue +46 -29
- package/plugins/@vcmap-show-case/category-tester/index.js +9 -3
- package/plugins/@vcmap-show-case/config-editor/ConfigEditor.vue +62 -0
- package/plugins/@vcmap-show-case/config-editor/index.js +13 -11
- package/plugins/@vcmap-show-case/context-menu-tester/index.js +18 -10
- package/plugins/@vcmap-show-case/form-inputs-example/FormInputsExample.vue +97 -109
- package/plugins/@vcmap-show-case/form-inputs-example/config.json +3 -3
- package/plugins/@vcmap-show-case/form-inputs-example/exampleActions.js +14 -4
- package/plugins/@vcmap-show-case/form-inputs-example/index.js +42 -19
- package/plugins/@vcmap-show-case/form-inputs-example/validation.js +2 -1
- package/plugins/@vcmap-show-case/icons-example/README.md +1 -1
- package/plugins/@vcmap-show-case/icons-example/allIconsComponent.vue +10 -10
- package/plugins/@vcmap-show-case/icons-example/index.js +10 -8
- package/plugins/@vcmap-show-case/list-example/ListExample.vue +221 -103
- package/plugins/@vcmap-show-case/list-example/index.js +10 -8
- package/plugins/@vcmap-show-case/notifier-tester/index.js +9 -3
- package/plugins/@vcmap-show-case/notifier-tester/notifierTester.vue +15 -21
- package/plugins/@vcmap-show-case/table-example/DataTableExample.vue +183 -0
- package/plugins/@vcmap-show-case/table-example/README.md +3 -0
- package/plugins/@vcmap-show-case/table-example/index.js +49 -0
- package/plugins/@vcmap-show-case/table-example/package.json +5 -0
- package/plugins/@vcmap-show-case/textfields-example/TextfieldsExample.vue +7 -30
- package/plugins/@vcmap-show-case/textfields-example/index.js +10 -4
- package/plugins/@vcmap-show-case/window-tester/WindowExample.vue +16 -13
- package/plugins/@vcmap-show-case/window-tester/emptyComponent.vue +4 -7
- package/plugins/@vcmap-show-case/window-tester/index.js +26 -20
- package/plugins/@vcmap-show-case/window-tester/myCustomHeader.vue +7 -3
- package/plugins/@vcmap-show-case/window-tester/toolbox-data.js +82 -5
- package/plugins/@vcmap-show-case/window-tester/windowExampleContent.vue +3 -7
- package/plugins/@vcmap-show-case/wizard-example/index.js +9 -3
- package/plugins/@vcmap-show-case/wizard-example/wizardExample.vue +36 -38
- package/src/actions/actionHelper.js +64 -37
- package/src/actions/styleSelector.vue +40 -24
- package/src/application/VcsApp.vue +117 -80
- package/src/application/VcsAttributions.vue +8 -9
- package/src/application/VcsAttributionsFooter.vue +12 -9
- package/src/application/VcsMap.vue +9 -5
- package/src/application/VcsNavbar.vue +44 -27
- package/src/application/VcsSettings.vue +5 -12
- package/src/application/attributionsHelper.js +23 -11
- package/src/application/vcsAppWrapper.vue +1 -3
- package/src/components/buttons/VcsActionButtonList.vue +20 -17
- package/src/components/buttons/VcsButton.vue +19 -23
- package/src/components/buttons/VcsFormButton.vue +176 -0
- package/src/components/form-inputs-controls/VcsCheckbox.vue +6 -7
- package/src/components/form-inputs-controls/VcsDatePicker.vue +142 -0
- package/src/components/form-inputs-controls/VcsFormSection.vue +11 -12
- package/src/components/form-inputs-controls/VcsLabel.vue +9 -10
- package/src/components/form-inputs-controls/VcsRadio.vue +44 -44
- package/src/components/form-inputs-controls/VcsSelect.vue +16 -13
- package/src/components/form-inputs-controls/VcsTextArea.vue +21 -14
- package/src/components/form-inputs-controls/VcsTextField.vue +44 -19
- package/src/components/form-inputs-controls/VcsWizard.vue +79 -77
- package/src/components/form-inputs-controls/VcsWizardStep.vue +20 -20
- package/src/components/form-inputs-controls/composables.js +13 -8
- package/src/components/form-output/VcsFormattedNumber.vue +26 -26
- package/src/components/icons/+all.js +13 -5
- package/src/components/icons/2DAreaIcon.vue +62 -10
- package/src/components/icons/2DDistanceIcon.vue +14 -2
- package/src/components/icons/3DAreaIcon.vue +62 -10
- package/src/components/icons/3DDistanceIcon.vue +14 -2
- package/src/components/icons/3DHeightIcon.vue +14 -2
- package/src/components/icons/AngleIcon.vue +12 -3
- package/src/components/icons/AssociationsIcon.vue +6 -1
- package/src/components/icons/AxisIcon.vue +34 -5
- package/src/components/icons/BoundingBoxIcon.vue +31 -5
- package/src/components/icons/CheckboxCheckedIcon.vue +4 -1
- package/src/components/icons/CheckboxIcon.vue +1 -8
- package/src/components/icons/CheckboxIndeterminateIcon.vue +9 -2
- package/src/components/icons/CircleIcon.vue +24 -4
- package/src/components/icons/ClippingHorizontalIcon.vue +14 -2
- package/src/components/icons/ClippingIcon.vue +13 -2
- package/src/components/icons/ClippingVerticalIcon.vue +14 -2
- package/src/components/icons/ColorPickerIcon.vue +13 -2
- package/src/components/icons/ColorSwatchIcon.vue +7 -1
- package/src/components/icons/CommentIcon.vue +6 -1
- package/src/components/icons/CompassIcon.vue +21 -3
- package/src/components/icons/ComponentsIcon.vue +14 -2
- package/src/components/icons/ConeIcon.vue +26 -4
- package/src/components/icons/DimensionsHouseIcon.vue +7 -1
- package/src/components/icons/EditIcon.vue +13 -2
- package/src/components/icons/ElevationProfileIcon.vue +6 -1
- package/src/components/icons/ExportAreaIcon.vue +13 -2
- package/src/components/icons/ExportFlightIcon.vue +13 -2
- package/src/components/icons/ExportIcon.vue +14 -2
- package/src/components/icons/ExternalLinkIcon.vue +18 -3
- package/src/components/icons/EyeIcon.vue +12 -2
- package/src/components/icons/FastForwardIcon.vue +13 -2
- package/src/components/icons/FilterIcon.vue +13 -2
- package/src/components/icons/GlobalTerrainIcon.vue +12 -2
- package/src/components/icons/GlobeNatureIcon.vue +7 -1
- package/src/components/icons/GroundIcon.vue +12 -2
- package/src/components/icons/HealthCareIndustriesIcon.vue +6 -1
- package/src/components/icons/HelpIcon.vue +12 -2
- package/src/components/icons/HideIcon.vue +17 -3
- package/src/components/icons/HomePointIcon.vue +13 -3
- package/src/components/icons/HospitalsIcon.vue +6 -1
- package/src/components/icons/HouseIcon.vue +20 -3
- package/src/components/icons/ImportIcon.vue +21 -3
- package/src/components/icons/InfoIcon.vue +19 -3
- package/src/components/icons/KebabIcon.vue +12 -2
- package/src/components/icons/LabelIcon.vue +21 -3
- package/src/components/icons/LayersIcon.vue +12 -2
- package/src/components/icons/LegendIcon.vue +20 -60
- package/src/components/icons/LineIcon.vue +20 -3
- package/src/components/icons/LinkIcon.vue +13 -2
- package/src/components/icons/LogoutIcon.vue +13 -2
- package/src/components/icons/MapIcon.vue +14 -2
- package/src/components/icons/MenuIcon.vue +7 -1
- package/src/components/icons/MinusIcon.vue +14 -2
- package/src/components/icons/ObjectAttributeIcon.vue +13 -2
- package/src/components/icons/ObjectSelectIcon.vue +14 -2
- package/src/components/icons/ObliqueViewIcon.vue +11 -2
- package/src/components/icons/PdfIcon.vue +12 -2
- package/src/components/icons/PedestrianIcon.vue +13 -2
- package/src/components/icons/PenIcon.vue +13 -3
- package/src/components/icons/PlayCircleIcon.vue +20 -3
- package/src/components/icons/PlusIcon.vue +14 -3
- package/src/components/icons/PoiIcon.vue +17 -3
- package/src/components/icons/PointSelectIcon.vue +12 -2
- package/src/components/icons/PolygonIcon.vue +7 -1
- package/src/components/icons/PresentationModeIcon.vue +13 -2
- package/src/components/icons/ProgressIcon.vue +8 -6
- package/src/components/icons/QueryIcon.vue +31 -5
- package/src/components/icons/RectangleIcon.vue +24 -4
- package/src/components/icons/ReturnIcon.vue +13 -2
- package/src/components/icons/RewindIcon.vue +13 -2
- package/src/components/icons/RotateLeftIcon.vue +13 -2
- package/src/components/icons/RotateRightIcon.vue +13 -2
- package/src/components/icons/ScreenshotIcon.vue +52 -10
- package/src/components/icons/SearchIcon.vue +13 -3
- package/src/components/icons/ShadowIcon.vue +14 -3
- package/src/components/icons/ShapesIcon.vue +13 -3
- package/src/components/icons/ShareIcon.vue +17 -4
- package/src/components/icons/SimpleCircleFilledIcon.vue +14 -10
- package/src/components/icons/SimpleCircleHalfFilledIcon.vue +6 -1
- package/src/components/icons/SimpleCircleOutlinedIcon.vue +14 -10
- package/src/components/icons/SkipNextIcon.vue +11 -2
- package/src/components/icons/SkipPreviousIcon.vue +17 -3
- package/src/components/icons/SplitViewIcon.vue +6 -1
- package/src/components/icons/TerrainBoxIcon.vue +12 -2
- package/src/components/icons/TextStyleIcon.vue +7 -1
- package/src/components/icons/ThreeDimensionsIcon.vue +13 -2
- package/src/components/icons/ToolsIcon.vue +12 -2
- package/src/components/icons/TouchIcon.vue +13 -2
- package/src/components/icons/TrashCanIcon.vue +13 -2
- package/src/components/icons/TriangleIcon.vue +6 -2
- package/src/components/icons/TwoDimensionsIcon.vue +14 -2
- package/src/components/icons/UploadIcon.vue +13 -2
- package/src/components/icons/UserProfileIcon.vue +13 -2
- package/src/components/icons/UserShareIcon.vue +12 -2
- package/src/components/icons/VideoRecorderIcon.vue +16 -3
- package/src/components/icons/ViewpointFlightIcon.vue +22 -4
- package/src/components/icons/ViewpointIcon.vue +22 -4
- package/src/components/icons/Viewshed360Icon.vue +14 -2
- package/src/components/icons/ViewshedConeIcon.vue +13 -2
- package/src/components/icons/ViewshedIcon.vue +14 -2
- package/src/components/icons/WalkingIcon.vue +13 -2
- package/src/components/icons/WallIcon.vue +19 -3
- package/src/components/icons/WandIcon.vue +129 -21
- package/src/components/imageElementInjector.vue +1 -3
- package/src/components/lists/VcsActionList.vue +21 -18
- package/src/components/lists/VcsList.vue +226 -97
- package/src/components/lists/VcsTreeview.vue +30 -26
- package/src/components/lists/VcsTreeviewLeaf.vue +23 -22
- package/src/components/lists/VcsTreeviewSearchbar.vue +19 -15
- package/src/components/notification/VcsBadge.vue +4 -6
- package/src/components/notification/VcsTooltip.vue +95 -94
- package/src/components/notification/validation.js +1 -1
- package/src/components/tables/VcsDataTable.vue +398 -0
- package/src/components/tables/VcsTable.vue +63 -300
- package/src/contentTree/LayerTree.vue +2 -3
- package/src/contentTree/contentTreeCollection.js +49 -23
- package/src/contentTree/contentTreeItem.js +36 -14
- package/src/contentTree/groupContentTreeItem.js +44 -22
- package/src/contentTree/layerContentTreeItem.js +45 -20
- package/src/contentTree/layerGroupContentTreeItem.js +53 -31
- package/src/contentTree/nodeContentTreeItem.js +18 -7
- package/src/contentTree/obliqueCollectionContentTreeItem.js +45 -20
- package/src/contentTree/subContentTreeItem.js +13 -4
- package/src/contentTree/vcsObjectContentTreeItem.js +24 -15
- package/src/contentTree/viewpointContentTreeItem.js +19 -6
- package/src/downloadHelper.js +52 -0
- package/src/featureInfo/AddressBalloonComponent.vue +11 -16
- package/src/featureInfo/BalloonComponent.vue +41 -31
- package/src/featureInfo/abstractFeatureInfoView.js +30 -14
- package/src/featureInfo/addressBalloonFeatureInfoView.js +19 -7
- package/src/featureInfo/balloonFeatureInfoView.js +22 -9
- package/src/featureInfo/balloonHelper.js +61 -42
- package/src/featureInfo/featureInfo.js +74 -34
- package/src/featureInfo/featureInfoInteraction.js +13 -7
- package/src/featureInfo/iframeFeatureInfoView.js +3 -1
- package/src/featureInfo/tableFeatureInfoView.js +15 -5
- package/src/i18n/de.js +8 -0
- package/src/i18n/en.js +8 -0
- package/src/i18n/i18nCollection.js +183 -155
- package/src/init.js +124 -38
- package/src/legend/legendHelper.js +11 -6
- package/src/legend/styleLegendItem.vue +18 -12
- package/src/legend/vcsLegend.vue +15 -17
- package/src/manager/buttonManager.js +6 -3
- package/src/manager/categoryManager/CategoryComponent.vue +99 -63
- package/src/manager/categoryManager/CategoryComponentList.vue +33 -8
- package/src/manager/categoryManager/CategoryManager.vue +23 -11
- package/src/manager/categoryManager/categoryManager.js +90 -45
- package/src/manager/contextMenu/contextMenuComponent.vue +2 -6
- package/src/manager/contextMenu/contextMenuInteraction.js +6 -1
- package/src/manager/contextMenu/contextMenuManager.js +37 -22
- package/src/manager/navbarManager.js +28 -3
- package/src/manager/toolbox/GroupToolboxComponent.vue +22 -21
- package/src/manager/toolbox/SelectToolboxComponent.vue +36 -35
- package/src/manager/toolbox/ToolboxManager.vue +18 -10
- package/src/manager/toolbox/toolboxManager.js +30 -12
- package/src/manager/window/WindowComponent.vue +24 -32
- package/src/manager/window/WindowComponentHeader.vue +38 -28
- package/src/manager/window/WindowManager.vue +45 -35
- package/src/manager/window/windowHelper.js +80 -24
- package/src/manager/window/windowManager.js +79 -39
- package/src/navigation/mapNavCompass.vue +18 -4
- package/src/navigation/mapNavigation.vue +65 -46
- package/src/navigation/obliqueRotation.vue +34 -13
- package/src/navigation/orientationToolsButton.vue +6 -10
- package/src/navigation/overviewMap.js +76 -45
- package/src/navigation/overviewMapClickedInteraction.js +6 -1
- package/src/navigation/tiltSlider.vue +6 -10
- package/src/navigation/vcsCompass.vue +1 -9
- package/src/navigation/vcsZoomButton.vue +36 -11
- package/src/notifier/notifier.js +22 -13
- package/src/notifier/notifierComponent.vue +21 -21
- package/src/pluginHelper.js +39 -5
- package/src/search/resultItem.vue +10 -15
- package/src/search/resultsComponent.vue +30 -24
- package/src/search/search.js +48 -22
- package/src/search/searchComponent.vue +35 -10
- package/src/setup.js +9 -9
- package/src/state.js +28 -12
- package/src/styles/_typography.scss +0 -1
- package/src/styles/shades.scss +4 -2
- package/src/styles/utils/_border.scss +1 -1
- package/src/styles/utils/_display.scss +1 -1
- package/src/styles/variables.scss +39 -34
- package/src/styles/vcsFont.scss +6 -5
- package/src/styles/vcsGrid.scss +9 -0
- package/src/uiConfig.js +6 -4
- package/src/vcsUiApp.js +192 -91
- package/src/vuePlugins/i18n.js +5 -4
- package/src/vuePlugins/vuetify.js +4 -0
- package/start.js +8 -2
- package/dist/assets/cesium/Workers/PolygonPipeline-844aab0a.js +0 -1345
- package/dist/assets/cesium/Workers/Transforms-40229881.js +0 -14696
- package/dist/assets/index.8b833ead.js +0 -1
- package/dist/assets/ui.d760e4.css +0 -5
- package/map.config.json +0 -44
- package/plugins/@vcmap-show-case/config-editor/editor.vue +0 -66
- /package/dist/assets/cesium/Workers/{GeometryOffsetAttribute-04332ce7.js → GeometryOffsetAttribute-9ad0019c.js} +0 -0
- /package/dist/assets/{vue.db5102.js → vue.c1ece7.js} +0 -0
@@ -17,10 +17,7 @@
|
|
17
17
|
</template>
|
18
18
|
<template #default v-if="showSection">
|
19
19
|
<v-container class="py-0 px-1">
|
20
|
-
<v-row
|
21
|
-
no-gutters
|
22
|
-
align="center"
|
23
|
-
>
|
20
|
+
<v-row no-gutters>
|
24
21
|
<v-col>
|
25
22
|
<VcsLabel html-for="selectInput" :dense="dense">
|
26
23
|
{{ $t('form-inputs-example.select') }}
|
@@ -31,16 +28,13 @@
|
|
31
28
|
id="selectInput"
|
32
29
|
:items="selectOptions"
|
33
30
|
:dense="dense"
|
34
|
-
:rules="[v => v !== 'D' || 'D is not allowed']"
|
31
|
+
:rules="[(v) => v !== 'D' || 'D is not allowed']"
|
35
32
|
v-model="state.selected"
|
36
33
|
color="purple"
|
37
34
|
/>
|
38
35
|
</v-col>
|
39
36
|
</v-row>
|
40
|
-
<v-row
|
41
|
-
no-gutters
|
42
|
-
align="center"
|
43
|
-
>
|
37
|
+
<v-row no-gutters>
|
44
38
|
<v-col>
|
45
39
|
<VcsLabel html-for="conditionalInput" :dense="dense">
|
46
40
|
ConditionalInput
|
@@ -51,47 +45,42 @@
|
|
51
45
|
id="conditionalInput"
|
52
46
|
clearable
|
53
47
|
:dense="dense"
|
54
|
-
:rules="[
|
48
|
+
:rules="[
|
49
|
+
conditionalTest(state.conditionalInput, state.selected),
|
50
|
+
]"
|
55
51
|
v-model="state.conditionalInput"
|
56
52
|
placeholder="conditional"
|
57
53
|
/>
|
58
54
|
</v-col>
|
59
55
|
</v-row>
|
60
|
-
<v-row
|
61
|
-
no-gutters
|
62
|
-
align="center"
|
63
|
-
>
|
56
|
+
<v-row no-gutters>
|
64
57
|
<v-col>
|
65
58
|
<VcsTextField
|
66
59
|
:dense="dense"
|
67
60
|
v-model="state.initialTextInput"
|
68
61
|
:rules="[isValidText]"
|
69
62
|
:loading="state.initialTextInput === 'myInitialText'"
|
70
|
-
:error-messages="
|
63
|
+
:error-messages="
|
64
|
+
!state.checkboxInput
|
65
|
+
? ['manual error message depending on checkbox']
|
66
|
+
: undefined
|
67
|
+
"
|
71
68
|
/>
|
72
69
|
</v-col>
|
73
70
|
</v-row>
|
74
|
-
<v-row
|
75
|
-
no-gutters
|
76
|
-
align="center"
|
77
|
-
>
|
71
|
+
<v-row no-gutters>
|
78
72
|
<v-col>
|
79
73
|
<VcsTextArea
|
80
74
|
:dense="dense"
|
81
|
-
:rules="[v => !!v || 'text area must not be empty']"
|
75
|
+
:rules="[(v) => !!v || 'text area must not be empty']"
|
82
76
|
placeholder="This is a text area"
|
83
77
|
rows="2"
|
84
78
|
/>
|
85
79
|
</v-col>
|
86
80
|
</v-row>
|
87
|
-
<v-row
|
88
|
-
no-gutters
|
89
|
-
align="center"
|
90
|
-
>
|
81
|
+
<v-row no-gutters>
|
91
82
|
<v-col>
|
92
|
-
<VcsLabel html-for="emailInput" :dense="dense">
|
93
|
-
Email
|
94
|
-
</VcsLabel>
|
83
|
+
<VcsLabel html-for="emailInput" :dense="dense"> Email </VcsLabel>
|
95
84
|
</v-col>
|
96
85
|
<v-col>
|
97
86
|
<VcsTextField
|
@@ -105,10 +94,7 @@
|
|
105
94
|
/>
|
106
95
|
</v-col>
|
107
96
|
</v-row>
|
108
|
-
<v-row
|
109
|
-
no-gutters
|
110
|
-
align="center"
|
111
|
-
>
|
97
|
+
<v-row no-gutters>
|
112
98
|
<v-col>
|
113
99
|
<VcsLabel html-for="prependedInput" :dense="dense">
|
114
100
|
String With Icon
|
@@ -124,10 +110,7 @@
|
|
124
110
|
/>
|
125
111
|
</v-col>
|
126
112
|
</v-row>
|
127
|
-
<v-row
|
128
|
-
no-gutters
|
129
|
-
align="center"
|
130
|
-
>
|
113
|
+
<v-row no-gutters>
|
131
114
|
<v-col>
|
132
115
|
<VcsLabel html-for="fileInput" :dense="dense">
|
133
116
|
File input
|
@@ -143,6 +126,14 @@
|
|
143
126
|
/>
|
144
127
|
</v-col>
|
145
128
|
</v-row>
|
129
|
+
<v-row no-gutters>
|
130
|
+
<v-col>
|
131
|
+
<VcsLabel html-for="dateInput" :dense="dense"> Date </VcsLabel>
|
132
|
+
</v-col>
|
133
|
+
<v-col>
|
134
|
+
<VcsDatePicker id="dateInput" v-model="state.dateInput" />
|
135
|
+
</v-col>
|
136
|
+
</v-row>
|
146
137
|
</v-container>
|
147
138
|
</template>
|
148
139
|
</VcsFormSection>
|
@@ -152,10 +143,7 @@
|
|
152
143
|
>
|
153
144
|
<template #default>
|
154
145
|
<v-container class="py-0 px-1">
|
155
|
-
<v-row
|
156
|
-
no-gutters
|
157
|
-
align="center"
|
158
|
-
>
|
146
|
+
<v-row no-gutters>
|
159
147
|
<v-col>
|
160
148
|
<VcsLabel html-for="numberInput" :dense="dense">
|
161
149
|
NumberInput
|
@@ -173,10 +161,7 @@
|
|
173
161
|
/>
|
174
162
|
</v-col>
|
175
163
|
</v-row>
|
176
|
-
<v-row
|
177
|
-
no-gutters
|
178
|
-
align="center"
|
179
|
-
>
|
164
|
+
<v-row no-gutters>
|
180
165
|
<v-col>
|
181
166
|
<VcsLabel html-for="formattedNumber" :dense="dense">
|
182
167
|
VcsFormattedNumber
|
@@ -192,10 +177,7 @@
|
|
192
177
|
/>
|
193
178
|
</v-col>
|
194
179
|
</v-row>
|
195
|
-
<v-row
|
196
|
-
no-gutters
|
197
|
-
align="center"
|
198
|
-
>
|
180
|
+
<v-row no-gutters>
|
199
181
|
<v-col>
|
200
182
|
<VcsTextField
|
201
183
|
id="coordinateX"
|
@@ -233,63 +215,62 @@
|
|
233
215
|
</v-container>
|
234
216
|
</template>
|
235
217
|
</VcsFormSection>
|
236
|
-
<VcsFormSection
|
237
|
-
heading="VcsFormSection Radio & Checkbox"
|
238
|
-
>
|
218
|
+
<VcsFormSection heading="VcsFormSection Radio & Checkbox">
|
239
219
|
<template #default>
|
240
220
|
<v-container class="py-0 px-1">
|
241
|
-
<v-row
|
242
|
-
no-gutters
|
243
|
-
align="center"
|
244
|
-
>
|
221
|
+
<v-row no-gutters>
|
245
222
|
<v-col>
|
246
223
|
<VcsRadio
|
247
224
|
:dense="dense"
|
248
|
-
:items="[
|
225
|
+
:items="[
|
226
|
+
...selectOptions,
|
227
|
+
{
|
228
|
+
label: 'Radio Option E colored',
|
229
|
+
color: 'primary',
|
230
|
+
value: 'E',
|
231
|
+
},
|
232
|
+
]"
|
249
233
|
v-model="state.selected"
|
250
|
-
:rules="[v => v !== 'D' || 'D is not allowed']"
|
234
|
+
:rules="[(v) => v !== 'D' || 'D is not allowed']"
|
251
235
|
row
|
252
236
|
/>
|
253
237
|
</v-col>
|
254
238
|
</v-row>
|
255
239
|
<v-row no-gutters>
|
256
240
|
<v-col>
|
257
|
-
<VcsLabel :dense="dense">Text</VcsLabel>
|
241
|
+
<VcsLabel :dense="dense"> Text </VcsLabel>
|
258
242
|
</v-col>
|
259
243
|
</v-row>
|
260
|
-
<v-row
|
261
|
-
no-gutters
|
262
|
-
align="center"
|
263
|
-
>
|
244
|
+
<v-row no-gutters>
|
264
245
|
<v-col>
|
265
246
|
<VcsCheckbox
|
266
247
|
id="checkboxInput"
|
267
248
|
label="CheckboxInput"
|
268
249
|
:dense="dense"
|
269
|
-
:rules="[
|
250
|
+
:rules="[
|
251
|
+
() => state.checkboxInput || 'Please accept our terms of use',
|
252
|
+
]"
|
270
253
|
v-model="state.checkboxInput"
|
271
254
|
/>
|
272
255
|
</v-col>
|
273
256
|
<v-col>
|
274
|
-
<
|
257
|
+
<VcsFormButton
|
275
258
|
:is-active="state.checkboxInput"
|
276
259
|
@click="state.checkboxInput = !state.checkboxInput"
|
277
260
|
tooltip="toggle button"
|
278
261
|
color="warning"
|
279
262
|
tooltip-position="right"
|
280
|
-
|
263
|
+
class="pt-1"
|
281
264
|
>
|
282
265
|
<span v-if="state.checkboxInput">Active-true</span>
|
283
266
|
<span v-else>Active-false</span>
|
284
|
-
</
|
267
|
+
</VcsFormButton>
|
285
268
|
</v-col>
|
286
269
|
</v-row>
|
287
270
|
</v-container>
|
288
271
|
</template>
|
289
|
-
</
|
290
|
-
<VcsFormSection
|
291
|
-
heading="VcsFormSection Mixed Inputs"
|
292
|
-
>
|
272
|
+
</VcsFormSection>
|
273
|
+
<VcsFormSection heading="VcsFormSection Mixed Inputs">
|
293
274
|
<template #header="{ heading }">
|
294
275
|
<article class="pa-2 text--primary">
|
295
276
|
{{ heading }}
|
@@ -298,21 +279,24 @@
|
|
298
279
|
</template>
|
299
280
|
<template #default>
|
300
281
|
<v-container class="py-0 px-1">
|
301
|
-
<v-row
|
302
|
-
align="center"
|
303
|
-
>
|
282
|
+
<v-row>
|
304
283
|
<v-col cols="1">
|
305
|
-
<VcsLabel
|
284
|
+
<VcsLabel
|
285
|
+
html-for="textInput"
|
286
|
+
:dense="dense"
|
287
|
+
class="text-caption"
|
288
|
+
>
|
306
289
|
1
|
307
290
|
</VcsLabel>
|
308
291
|
</v-col>
|
309
292
|
<v-col>
|
310
293
|
<VcsSelect
|
311
294
|
:items="[
|
312
|
-
{value: 'one', i18n: 'form-inputs-example.numbers.one'},
|
313
|
-
{value: 'two', i18n: 'form-inputs-example.numbers.two'},
|
314
|
-
{value: 'three', i18n: 'form-inputs-example.numbers.three'}
|
315
|
-
|
295
|
+
{ value: 'one', i18n: 'form-inputs-example.numbers.one' },
|
296
|
+
{ value: 'two', i18n: 'form-inputs-example.numbers.two' },
|
297
|
+
{ value: 'three', i18n: 'form-inputs-example.numbers.three' },
|
298
|
+
]"
|
299
|
+
:item-text="(item) => item.i18n"
|
316
300
|
:dense="dense"
|
317
301
|
placeholder="Numbers"
|
318
302
|
/>
|
@@ -320,41 +304,41 @@
|
|
320
304
|
<v-col>
|
321
305
|
<VcsSelect
|
322
306
|
:items="[
|
323
|
-
{value: 'Anna', fullName: 'Annabella'},
|
324
|
-
{value: 'Bella', fullName: 'Belladonna'},
|
325
|
-
{value: 'Claudi', fullName: 'Claudine'}
|
326
|
-
|
307
|
+
{ value: 'Anna', fullName: 'Annabella' },
|
308
|
+
{ value: 'Bella', fullName: 'Belladonna' },
|
309
|
+
{ value: 'Claudi', fullName: 'Claudine' },
|
310
|
+
]"
|
311
|
+
:item-text="(item) => item.fullName"
|
327
312
|
:dense="dense"
|
328
313
|
multiple
|
329
314
|
v-model="state.selectedMultiple"
|
330
|
-
:rules="[
|
315
|
+
:rules="[
|
316
|
+
(v) => !!v.length || 'Please select at least one option.',
|
317
|
+
]"
|
331
318
|
/>
|
332
319
|
</v-col>
|
333
320
|
</v-row>
|
334
321
|
</v-container>
|
335
322
|
</template>
|
336
323
|
</VcsFormSection>
|
337
|
-
<div class="d-flex
|
338
|
-
<
|
339
|
-
@click="
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
>
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
>
|
356
|
-
Reset
|
357
|
-
</VcsButton>
|
324
|
+
<div class="d-flex gap-2 px-2 pt-2 pb-1">
|
325
|
+
<div class="d-flex gap-2">
|
326
|
+
<VcsFormButton @click="validate()"> Val </VcsFormButton>
|
327
|
+
<VcsFormButton @click="resetState()" icon="$vcsReturn">
|
328
|
+
Reset
|
329
|
+
</VcsFormButton>
|
330
|
+
</div>
|
331
|
+
<div class="d-flex gap-2 w-full justify-end">
|
332
|
+
<VcsFormButton
|
333
|
+
variant="filled"
|
334
|
+
@click="logState(state)"
|
335
|
+
:disabled="!isValid"
|
336
|
+
:tooltip="'Log current state in console'"
|
337
|
+
:has-update="isValid && newUpdate"
|
338
|
+
>
|
339
|
+
Log State
|
340
|
+
</VcsFormButton>
|
341
|
+
</div>
|
358
342
|
</div>
|
359
343
|
</v-form>
|
360
344
|
</template>
|
@@ -364,12 +348,13 @@
|
|
364
348
|
VcsSelect,
|
365
349
|
VcsCheckbox,
|
366
350
|
VcsRadio,
|
367
|
-
|
351
|
+
VcsFormButton,
|
368
352
|
VcsTextField,
|
369
353
|
VcsFormattedNumber,
|
370
354
|
VcsFormSection,
|
371
355
|
VcsLabel,
|
372
356
|
VcsTextArea,
|
357
|
+
VcsDatePicker,
|
373
358
|
} from '@vcmap/ui';
|
374
359
|
import { VCol, VContainer, VForm, VRow } from 'vuetify/lib';
|
375
360
|
import packageJSON from './package.json';
|
@@ -378,7 +363,7 @@
|
|
378
363
|
export default {
|
379
364
|
name: 'FormInputsExample',
|
380
365
|
components: {
|
381
|
-
|
366
|
+
VcsFormButton,
|
382
367
|
VcsSelect,
|
383
368
|
VcsTextField,
|
384
369
|
VcsCheckbox,
|
@@ -391,6 +376,7 @@
|
|
391
376
|
VRow,
|
392
377
|
VCol,
|
393
378
|
VContainer,
|
379
|
+
VcsDatePicker,
|
394
380
|
},
|
395
381
|
props: {
|
396
382
|
actions: {
|
@@ -410,7 +396,9 @@
|
|
410
396
|
const app = inject('vcsApp');
|
411
397
|
const plugin = app.plugins.getByKey(packageJSON.name);
|
412
398
|
const newUpdate = ref(true);
|
413
|
-
watch(plugin.state, () => {
|
399
|
+
watch(plugin.state, () => {
|
400
|
+
newUpdate.value = true;
|
401
|
+
});
|
414
402
|
const form = ref();
|
415
403
|
|
416
404
|
return {
|
@@ -441,7 +429,7 @@
|
|
441
429
|
};
|
442
430
|
</script>
|
443
431
|
<style lang="scss" scoped>
|
444
|
-
label{
|
445
|
-
|
446
|
-
}
|
432
|
+
label {
|
433
|
+
font-size: 12px;
|
434
|
+
}
|
447
435
|
</style>
|
@@ -8,13 +8,21 @@ export default function createExampleActions() {
|
|
8
8
|
reactive({
|
9
9
|
name: 'denseSelection',
|
10
10
|
title: 'change row height',
|
11
|
-
icon: dense.value
|
11
|
+
icon: dense.value
|
12
|
+
? 'mdi-arrow-split-horizontal'
|
13
|
+
: 'mdi-arrow-collapse-vertical',
|
12
14
|
callback() {
|
13
15
|
dense.value = !dense.value;
|
14
|
-
this.icon = dense.value
|
16
|
+
this.icon = dense.value
|
17
|
+
? 'mdi-arrow-split-horizontal'
|
18
|
+
: 'mdi-arrow-collapse-vertical';
|
15
19
|
},
|
16
20
|
}),
|
17
|
-
{
|
21
|
+
{
|
22
|
+
name: 'noIcon',
|
23
|
+
title: 'another action without icon',
|
24
|
+
callback: () => {},
|
25
|
+
},
|
18
26
|
reactive({
|
19
27
|
name: 'toggleSection',
|
20
28
|
title: 'toggle section',
|
@@ -37,7 +45,9 @@ export default function createExampleActions() {
|
|
37
45
|
{
|
38
46
|
name: 'alert',
|
39
47
|
icon: 'mdi-message-text',
|
40
|
-
callback() {
|
48
|
+
callback() {
|
49
|
+
alert('alert');
|
50
|
+
},
|
41
51
|
},
|
42
52
|
];
|
43
53
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { ref, reactive, watch } from 'vue';
|
2
2
|
import { getLogger as getLoggerByName } from '@vcsuite/logger';
|
3
3
|
|
4
|
-
|
5
4
|
import { ButtonLocation, createToggleAction, WindowSlot } from '@vcmap/ui';
|
6
5
|
import packageJSON from './package.json';
|
7
6
|
import defaultConfig from './config.json';
|
@@ -46,7 +45,7 @@ export function getDefaultConfig() {
|
|
46
45
|
* @param {FormInputsExampleConfig} config
|
47
46
|
* @returns {VcsPlugin}
|
48
47
|
*/
|
49
|
-
export default function (config) {
|
48
|
+
export default function formInputsExample(config) {
|
50
49
|
/**
|
51
50
|
* @type {FormInputsExampleConfig}
|
52
51
|
*/
|
@@ -54,7 +53,9 @@ export default function (config) {
|
|
54
53
|
// not reactive can be put without using reactive or ref
|
55
54
|
nonReactiveProp: 'nonReactive',
|
56
55
|
// no validation, ref to track config changes; use reactive on nested arrays or objects
|
57
|
-
selectOptions: ref(
|
56
|
+
selectOptions: ref(
|
57
|
+
[...config.selectOptions] || [...defaultConfig.selectOptions],
|
58
|
+
),
|
58
59
|
// ref prop with getter setter --> validation
|
59
60
|
_initialTextInput: ref(defaultConfig.initialTextInput),
|
60
61
|
set initialTextInput(value) {
|
@@ -62,10 +63,15 @@ export default function (config) {
|
|
62
63
|
if (validation === true) {
|
63
64
|
this._initialTextInput.value = value;
|
64
65
|
} else {
|
65
|
-
getLogger().error(
|
66
|
+
getLogger().error(
|
67
|
+
'Error setting initialTextInput on plugin config:',
|
68
|
+
validation,
|
69
|
+
);
|
66
70
|
}
|
67
71
|
},
|
68
|
-
get initialTextInput() {
|
72
|
+
get initialTextInput() {
|
73
|
+
return this._initialTextInput;
|
74
|
+
},
|
69
75
|
};
|
70
76
|
if (config.initialTextInput) {
|
71
77
|
pluginConfig.initialTextInput = config.initialTextInput;
|
@@ -84,12 +90,12 @@ export default function (config) {
|
|
84
90
|
email: '',
|
85
91
|
prependedInput: '',
|
86
92
|
files: [],
|
93
|
+
dateInput: '',
|
87
94
|
};
|
88
95
|
|
89
96
|
/** @type {FormInputsExampleState} */
|
90
97
|
const defaultState = JSON.parse(JSON.stringify(pluginState));
|
91
98
|
|
92
|
-
|
93
99
|
/**
|
94
100
|
* watcher to update state, when specific config properties are changed
|
95
101
|
* @see https://v3.vuejs.org/guide/reactivity-computed-watchers.html#watching-multiple-sources
|
@@ -99,7 +105,7 @@ export default function (config) {
|
|
99
105
|
* - if reactive objects or arrays shall be watched, you'll need to add option `{ deep: true }`
|
100
106
|
* @see https://v3.vuejs.org/guide/reactivity-computed-watchers.html#watching-reactive-objects
|
101
107
|
* in this case you may need a separate watcher, since watching multiple sources seems only to work for refs
|
102
|
-
* @returns {WatchStopHandle}
|
108
|
+
* @returns {import("vue").WatchStopHandle}
|
103
109
|
*/
|
104
110
|
const stopWatching = watch(
|
105
111
|
[pluginConfig.selectOptions, pluginConfig.initialTextInput],
|
@@ -132,14 +138,20 @@ export default function (config) {
|
|
132
138
|
* @type {Object<string, true|string>}
|
133
139
|
*/
|
134
140
|
const validation = {
|
135
|
-
conditionalInput: conditionalTest(
|
141
|
+
conditionalInput: conditionalTest(
|
142
|
+
stateObject.conditionalInput,
|
143
|
+
stateObject.selected,
|
144
|
+
),
|
136
145
|
initialTextInput: isValidText(stateObject.initialTextInput),
|
137
146
|
email: isValidEmail(stateObject.email),
|
138
147
|
};
|
139
148
|
Object.keys(validation).forEach((key) => {
|
140
149
|
if (validation[key] !== true) {
|
141
150
|
// XXX warning or error???
|
142
|
-
getLogger().warning(
|
151
|
+
getLogger().warning(
|
152
|
+
`Validation failed for state property "${key}":`,
|
153
|
+
validation[key],
|
154
|
+
);
|
143
155
|
// XXX should invalid props be assigned or not?
|
144
156
|
delete stateObject[key];
|
145
157
|
}
|
@@ -148,12 +160,19 @@ export default function (config) {
|
|
148
160
|
}
|
149
161
|
|
150
162
|
return {
|
151
|
-
get name() {
|
152
|
-
|
153
|
-
|
163
|
+
get name() {
|
164
|
+
return packageJSON.name;
|
165
|
+
},
|
166
|
+
get version() {
|
167
|
+
return packageJSON.version;
|
168
|
+
},
|
169
|
+
get vcMapVersion() {
|
170
|
+
return packageJSON.vcMapVersion;
|
171
|
+
},
|
154
172
|
config: pluginConfig,
|
155
173
|
state: reactive(pluginState),
|
156
|
-
resetState: () =>
|
174
|
+
resetState: () =>
|
175
|
+
Object.assign(pluginState, JSON.parse(JSON.stringify(defaultState))),
|
157
176
|
getSerializedState,
|
158
177
|
setSerializedState,
|
159
178
|
onVcsAppMounted(app) {
|
@@ -208,9 +227,11 @@ export default function (config) {
|
|
208
227
|
tooltip: 'Form Inputs Beispiel Plugin',
|
209
228
|
help: 'Geben Sie eine Zahl in das Feld NumberInput ein. VcsFormattedNumber rundet auf eine Dezimalstelle.',
|
210
229
|
help1: 'Wählen Sie eine Option',
|
211
|
-
help1desc:
|
212
|
-
|
213
|
-
|
230
|
+
help1desc:
|
231
|
+
"Wenn 'Option A' gewählt ist, muss der bedingte Input 'test' sein.",
|
232
|
+
help2: "Ändern Sie den Wert von 'myInitialText'",
|
233
|
+
help2desc:
|
234
|
+
"InitialTextInput bleibt solange im Lade-Status, bis sich der Wert 'myInitialText' ändert.",
|
214
235
|
help3: 'Geben Sie eine Email Adresse ein',
|
215
236
|
help3desc: 'Email Adressen werden validiert.',
|
216
237
|
numbers: {
|
@@ -227,9 +248,11 @@ export default function (config) {
|
|
227
248
|
tooltip: 'Form Inputs Example Plugin',
|
228
249
|
help: 'Enter a number to the NumberInput field. VcsFormattedNumber rounds to one decimal digit.',
|
229
250
|
help1: 'Select an option',
|
230
|
-
help1desc:
|
231
|
-
|
232
|
-
|
251
|
+
help1desc:
|
252
|
+
"If 'Option A' is chosen, conditional input must be 'test'.",
|
253
|
+
help2: "Change 'myInitialText' to some other value",
|
254
|
+
help2desc:
|
255
|
+
"InitialTextInput text field stays in loading state, as long as 'myInitialText' is not changed.",
|
233
256
|
help3: 'Enter an email address.',
|
234
257
|
help3desc: 'Emails get validated.',
|
235
258
|
numbers: {
|
@@ -25,6 +25,7 @@ export function conditionalTest(value, condition) {
|
|
25
25
|
* @returns {boolean|string}
|
26
26
|
*/
|
27
27
|
export function isValidEmail(value) {
|
28
|
-
const pattern =
|
28
|
+
const pattern =
|
29
|
+
/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
29
30
|
return pattern.test(value) || 'Invalid e-mail.';
|
30
31
|
}
|
@@ -1,10 +1,6 @@
|
|
1
1
|
<template>
|
2
2
|
<v-sheet class="overflow-auto icons-window">
|
3
|
-
<vcs-list
|
4
|
-
:items="icons"
|
5
|
-
:searchable="true"
|
6
|
-
:show-title="false"
|
7
|
-
/>
|
3
|
+
<vcs-list :items="icons" :searchable="true" :show-title="false" />
|
8
4
|
</v-sheet>
|
9
5
|
</template>
|
10
6
|
|
@@ -31,21 +27,25 @@
|
|
31
27
|
name: 'copy-icon-to-clipboard',
|
32
28
|
icon: 'mdi-content-copy',
|
33
29
|
title: `Copy ${key}`,
|
34
|
-
callback: async () => {
|
30
|
+
callback: async () => {
|
31
|
+
await navigator.clipboard.writeText(key);
|
32
|
+
},
|
35
33
|
},
|
36
34
|
],
|
37
35
|
};
|
38
36
|
};
|
39
37
|
|
40
38
|
return {
|
41
|
-
icons: computed(() =>
|
39
|
+
icons: computed(() =>
|
40
|
+
Object.keys(Icons).map((icon) => createListItem(icon)),
|
41
|
+
),
|
42
42
|
};
|
43
43
|
},
|
44
44
|
};
|
45
45
|
</script>
|
46
46
|
|
47
47
|
<style scoped>
|
48
|
-
.icons-window {
|
49
|
-
|
50
|
-
}
|
48
|
+
.icons-window {
|
49
|
+
max-height: 600px;
|
50
|
+
}
|
51
51
|
</style>
|