@vcmap/ui 5.0.0-rc.18 → 5.0.0-rc.21
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 +6 -6
- package/build/build.js +2 -2
- package/build/buildCesium.js +3 -3
- package/build/buildHelpers.js +2 -1
- package/config/base.config.json +0 -4
- package/config/dev.config.json +35 -14
- package/config/www.config.json +4 -0
- package/dist/assets/cesium/Workers/ArcType-ce2e50ab.js +37 -0
- package/dist/assets/cesium/Workers/AttributeCompression-b646d393.js +716 -0
- package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-ff186ccc.js +258 -0
- package/dist/assets/cesium/Workers/BoundingRectangle-be5924f4.js +369 -0
- package/dist/assets/cesium/Workers/BoxGeometry-12eeccaf.js +884 -0
- package/dist/assets/cesium/Workers/Check-666ab1a0.js +290 -0
- package/dist/assets/cesium/Workers/Color-a84038cb.js +2262 -0
- package/dist/assets/cesium/Workers/ComponentDatatype-f7b11d02.js +341 -0
- package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-3272c1b3.js +132 -0
- package/dist/assets/cesium/Workers/CorridorGeometryLibrary-0170e093.js +498 -0
- package/dist/assets/cesium/Workers/CylinderGeometry-7c5da648.js +467 -0
- package/dist/assets/cesium/Workers/CylinderGeometryLibrary-372c07d8.js +63 -0
- package/dist/assets/cesium/Workers/EllipseGeometry-797d580e.js +1304 -0
- package/dist/assets/cesium/Workers/EllipseGeometryLibrary-2939e1dc.js +366 -0
- package/dist/assets/cesium/Workers/EllipseOutlineGeometry-8b50870f.js +443 -0
- package/dist/assets/cesium/Workers/EllipsoidGeodesic-98c62a56.js +520 -0
- package/dist/assets/cesium/Workers/EllipsoidGeometry-21c0e3a5.js +637 -0
- package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-eff247c8.js +454 -0
- package/dist/assets/cesium/Workers/EllipsoidRhumbLine-19756602.js +741 -0
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-214683dc.js +373 -0
- package/dist/assets/cesium/Workers/EncodedCartesian3-81f70735.js +171 -0
- package/dist/assets/cesium/Workers/FrustumGeometry-ac42a6d9.js +2512 -0
- package/dist/assets/cesium/Workers/GeometryAttribute-7d6f1732.js +619 -0
- package/dist/assets/cesium/Workers/GeometryAttributes-f06a2792.js +91 -0
- package/dist/assets/cesium/Workers/GeometryInstance-451dc1cd.js +121 -0
- package/dist/assets/cesium/Workers/GeometryOffsetAttribute-04332ce7.js +16 -0
- package/dist/assets/cesium/Workers/GeometryPipeline-ce4339ed.js +3690 -0
- package/dist/assets/cesium/Workers/IndexDatatype-a55ceaa1.js +200 -0
- package/dist/assets/cesium/Workers/IntersectionTests-f6e6bd8a.js +1836 -0
- package/dist/assets/cesium/Workers/Math-2dbd6b93.js +1330 -0
- package/dist/assets/cesium/Workers/Matrix2-13178034.js +7086 -0
- package/dist/assets/cesium/Workers/Matrix3-315394f6.js +4283 -0
- package/dist/assets/cesium/Workers/OrientedBoundingBox-04920dc7.js +1257 -0
- package/dist/assets/cesium/Workers/Plane-900aa728.js +309 -0
- package/dist/assets/cesium/Workers/PolygonGeometryLibrary-a8680d96.js +1074 -0
- package/dist/assets/cesium/Workers/PolygonPipeline-844aab0a.js +1345 -0
- package/dist/assets/cesium/Workers/PolylinePipeline-32f36d2a.js +573 -0
- package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-a510d657.js +781 -0
- package/dist/assets/cesium/Workers/PrimitivePipeline-ba38434a.js +966 -0
- package/dist/assets/cesium/Workers/RectangleGeometryLibrary-bdba697e.js +280 -0
- package/dist/assets/cesium/Workers/RuntimeError-06c93819.js +68 -0
- package/dist/assets/cesium/Workers/TerrainEncoding-833187da.js +1227 -0
- package/dist/assets/cesium/Workers/Transforms-40229881.js +14696 -0
- package/dist/assets/cesium/Workers/VertexFormat-6b480673.js +312 -0
- package/dist/assets/cesium/Workers/WallGeometryLibrary-919eed92.js +211 -0
- package/dist/assets/cesium/Workers/WebGLConstants-a8cc3e8c.js +620 -0
- package/dist/assets/cesium/Workers/WebMercatorProjection-13a90d41.js +151 -0
- package/dist/assets/cesium/Workers/arrayRemoveDuplicates-c2038105.js +129 -0
- package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +1336 -4
- package/dist/assets/cesium/Workers/combine-ca22a614.js +82 -0
- package/dist/assets/cesium/Workers/combineGeometry.js +17 -25
- package/dist/assets/cesium/Workers/createBoxGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +313 -25
- package/dist/assets/cesium/Workers/createCircleGeometry.js +213 -25
- package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +160 -25
- package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +586 -25
- package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +236 -25
- package/dist/assets/cesium/Workers/createCorridorGeometry.js +1407 -25
- package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +603 -25
- package/dist/assets/cesium/Workers/createCylinderGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +265 -25
- package/dist/assets/cesium/Workers/createEllipseGeometry.js +14 -25
- package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +14 -25
- package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +15 -25
- package/dist/assets/cesium/Workers/createFrustumGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +251 -25
- package/dist/assets/cesium/Workers/createGeometry.js +55 -25
- package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +2134 -25
- package/dist/assets/cesium/Workers/createPlaneGeometry.js +250 -25
- package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +115 -25
- package/dist/assets/cesium/Workers/createPolygonGeometry.js +1420 -25
- package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +683 -25
- package/dist/assets/cesium/Workers/createPolylineGeometry.js +571 -25
- package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +411 -25
- package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +301 -25
- package/dist/assets/cesium/Workers/createRectangleGeometry.js +1476 -25
- package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +535 -25
- package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +458 -25
- package/dist/assets/cesium/Workers/createSphereGeometry.js +123 -25
- package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +126 -25
- package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +127 -25
- package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +535 -25
- package/dist/assets/cesium/Workers/createVectorTileGeometries.js +445 -25
- package/dist/assets/cesium/Workers/createVectorTilePoints.js +79 -25
- package/dist/assets/cesium/Workers/createVectorTilePolygons.js +406 -25
- package/dist/assets/cesium/Workers/createVectorTilePolylines.js +254 -25
- package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +640 -25
- package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +2711 -27
- package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +994 -25
- package/dist/assets/cesium/Workers/createWallGeometry.js +623 -25
- package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +432 -25
- package/dist/assets/cesium/Workers/decodeDraco.js +381 -25
- package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +3687 -25
- package/dist/assets/cesium/Workers/decodeI3S.js +1040 -0
- package/dist/assets/cesium/Workers/defaultValue-0a909f67.js +51 -0
- package/dist/assets/cesium/Workers/package.js +2 -2
- package/dist/assets/cesium/Workers/transcodeKTX2.js +1516 -25
- package/dist/assets/cesium/Workers/transferTypedArrayTest.js +18 -2
- package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +1023 -25
- package/dist/assets/{cesium.2f992f.js → cesium.49585c.js} +112161 -108735
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.cb0408.js → core.59d4d1.js} +1616 -1629
- package/dist/assets/core.js +1 -1
- package/dist/assets/{index.bccdf969.js → index.a3861d4e.js} +1 -1
- package/dist/assets/{ol.5e3fd0.js → ol.c1c512.js} +6992 -6972
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui.80175f.css +1 -0
- package/dist/assets/{ui.08c48f.js → ui.80175f.js} +6121 -6785
- package/dist/assets/ui.js +1 -1
- package/dist/assets/{vue.228ead.js → vue.a08ab1.js} +0 -0
- package/dist/assets/vue.js +2 -2
- package/dist/assets/{vuetify.0b5039.css → vuetify.efc158.css} +0 -0
- package/dist/assets/{vuetify.0b5039.js → vuetify.efc158.js} +1 -1
- package/dist/assets/vuetify.js +2 -2
- package/dist/index.html +1 -1
- package/index.js +2 -1
- package/lib/cesium.js +1 -1
- package/package.json +3 -4
- package/plugins/{simple-graph → @vcmap/simple-graph}/README.md +1 -1
- package/plugins/{simple-graph → @vcmap/simple-graph}/SimpleGraphComponent.vue +0 -0
- package/plugins/{simple-graph → @vcmap/simple-graph}/index.js +0 -0
- package/plugins/{simple-graph → @vcmap/simple-graph}/package.json +0 -0
- package/plugins/{simple-graph → @vcmap/simple-graph}/simpleGraphView.js +0 -0
- package/plugins/@vcmap-show-case/README.md +20 -0
- package/plugins/{buttonExamples/ButtonExamples.vue → @vcmap-show-case/buttons-example/ButtonsExample.vue} +1 -1
- package/plugins/@vcmap-show-case/buttons-example/README.md +4 -0
- package/plugins/{buttonExamples → @vcmap-show-case/buttons-example}/index.js +16 -8
- package/plugins/@vcmap-show-case/buttons-example/package.json +5 -0
- package/plugins/{categoryTest → @vcmap-show-case/category-tester}/Categories.vue +7 -6
- package/plugins/{categoryTest → @vcmap-show-case/category-tester}/Category.vue +4 -3
- package/plugins/@vcmap-show-case/category-tester/README.md +3 -0
- package/plugins/{categoryTest → @vcmap-show-case/category-tester}/index.js +12 -4
- package/plugins/@vcmap-show-case/category-tester/package.json +5 -0
- package/plugins/@vcmap-show-case/config-editor/README.md +3 -0
- package/plugins/{test → @vcmap-show-case/config-editor}/editor.vue +0 -0
- package/plugins/@vcmap-show-case/config-editor/index.js +47 -0
- package/plugins/@vcmap-show-case/config-editor/package.json +5 -0
- package/plugins/@vcmap-show-case/context-menu-tester/README.md +3 -0
- package/plugins/@vcmap-show-case/context-menu-tester/index.js +33 -0
- package/plugins/@vcmap-show-case/context-menu-tester/package.json +5 -0
- package/plugins/{@vcmap/pluginExample/pluginExampleComponent.vue → @vcmap-show-case/form-inputs-example/FormInputsExample.vue} +14 -13
- package/plugins/@vcmap-show-case/form-inputs-example/README.md +4 -0
- package/plugins/@vcmap-show-case/form-inputs-example/config.json +5 -0
- package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/exampleActions.js +1 -1
- package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/index.js +23 -22
- package/plugins/@vcmap-show-case/form-inputs-example/package.json +5 -0
- package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/validation.js +0 -0
- package/plugins/@vcmap-show-case/icons-example/README.md +5 -0
- package/plugins/@vcmap-show-case/icons-example/allIconsComponent.vue +51 -0
- package/plugins/@vcmap-show-case/icons-example/index.js +44 -0
- package/plugins/@vcmap-show-case/icons-example/package.json +5 -0
- package/plugins/{test/testList.vue → @vcmap-show-case/list-example/ListExample.vue} +1 -1
- package/plugins/@vcmap-show-case/list-example/README.md +3 -0
- package/plugins/@vcmap-show-case/list-example/index.js +44 -0
- package/plugins/@vcmap-show-case/list-example/package.json +5 -0
- package/plugins/@vcmap-show-case/notifier-tester/README.md +3 -0
- package/plugins/{notifier → @vcmap-show-case/notifier-tester}/index.js +11 -6
- package/plugins/{notifier → @vcmap-show-case/notifier-tester}/notifierTester.vue +0 -0
- package/plugins/@vcmap-show-case/notifier-tester/package.json +5 -0
- package/plugins/@vcmap-show-case/textfields-example/README.md +3 -0
- package/plugins/{example/mySuperComponent.vue → @vcmap-show-case/textfields-example/TextfieldsExample.vue} +1 -7
- package/plugins/{example → @vcmap-show-case/textfields-example}/index.js +58 -62
- package/plugins/@vcmap-show-case/textfields-example/package.json +5 -0
- package/plugins/@vcmap-show-case/window-tester/README.md +3 -0
- package/plugins/{test/windowManagerExample.vue → @vcmap-show-case/window-tester/WindowExample.vue} +36 -20
- package/plugins/{test → @vcmap-show-case/window-tester}/emptyComponent.vue +8 -3
- package/plugins/@vcmap-show-case/window-tester/index.js +62 -0
- package/plugins/{test → @vcmap-show-case/window-tester}/myCustomHeader.vue +0 -0
- package/plugins/@vcmap-show-case/window-tester/package.json +5 -0
- package/plugins/{test → @vcmap-show-case/window-tester}/toolbox-data.js +9 -9
- package/plugins/{test/vcsContent.vue → @vcmap-show-case/window-tester/windowExampleContent.vue} +1 -5
- package/plugins/@vcmap-show-case/wizard-example/README.md +3 -0
- package/plugins/{wizardExample → @vcmap-show-case/wizard-example}/index.js +12 -6
- package/plugins/@vcmap-show-case/wizard-example/package.json +5 -0
- package/plugins/@vcmap-show-case/wizard-example/wizardExample.vue +95 -0
- package/plugins/package.json +2 -1
- package/src/actions/actionHelper.js +1 -3
- package/src/actions/stateRefAction.js +0 -10
- package/src/application/VcsApp.vue +42 -23
- package/src/application/VcsMap.vue +9 -0
- package/src/components/buttons/VcsActionButtonList.vue +1 -0
- package/src/components/form-inputs-controls/VcsCheckbox.vue +3 -1
- package/src/components/form-inputs-controls/VcsWizard.vue +17 -20
- package/src/components/form-inputs-controls/VcsWizardStep.vue +160 -0
- package/src/{icons → components/icons}/+all.js +0 -0
- package/src/{icons → components/icons}/2DAreaIcon.vue +0 -0
- package/src/{icons → components/icons}/2DDistanceIcon.vue +0 -0
- package/src/{icons → components/icons}/3DAreaIcon.vue +0 -0
- package/src/{icons → components/icons}/3DDistanceIcon.vue +0 -0
- package/src/{icons → components/icons}/3DHeightIcon.vue +0 -0
- package/src/{icons → components/icons}/AngleIcon.vue +0 -0
- package/src/{icons → components/icons}/AssociationsIcon.vue +0 -0
- package/src/{icons → components/icons}/AxisIcon.vue +0 -0
- package/src/{icons → components/icons}/BoundingBoxIcon.vue +0 -0
- package/src/{icons → components/icons}/CheckboxCheckedIcon.vue +0 -0
- package/src/{icons → components/icons}/CheckboxIcon.vue +0 -0
- package/src/{icons → components/icons}/CheckboxIndeterminateIcon.vue +0 -0
- package/src/{icons → components/icons}/CircleIcon.vue +0 -0
- package/src/{icons → components/icons}/ClippingHorizontalIcon.vue +0 -0
- package/src/{icons → components/icons}/ClippingIcon.vue +0 -0
- package/src/{icons → components/icons}/ClippingVerticalIcon.vue +0 -0
- package/src/{icons → components/icons}/ColorPickerIcon.vue +0 -0
- package/src/{icons → components/icons}/ColorSwatchIcon.vue +0 -0
- package/src/{icons → components/icons}/CommentIcon.vue +0 -0
- package/src/{icons → components/icons}/CompassIcon.vue +0 -0
- package/src/{icons → components/icons}/ComponentsIcon.vue +0 -0
- package/src/{icons → components/icons}/ConeIcon.vue +0 -0
- package/src/{icons → components/icons}/DimensionsHouseIcon.vue +0 -0
- package/src/{icons → components/icons}/EditIcon.vue +0 -0
- package/src/{icons → components/icons}/ElevationProfileIcon.vue +0 -0
- package/src/{icons → components/icons}/ExportAreaIcon.vue +0 -0
- package/src/{icons → components/icons}/ExportFlightIcon.vue +0 -0
- package/src/{icons → components/icons}/ExportIcon.vue +0 -0
- package/src/{icons → components/icons}/ExternalLinkIcon.vue +0 -0
- package/src/{icons → components/icons}/EyeIcon.vue +0 -0
- package/src/{icons → components/icons}/FastForwardIcon.vue +0 -0
- package/src/{icons → components/icons}/FilterIcon.vue +0 -0
- package/src/{icons → components/icons}/GlobalTerrainIcon.vue +0 -0
- package/src/{icons → components/icons}/GlobeNatureIcon.vue +0 -0
- package/src/{icons → components/icons}/GroundIcon.vue +0 -0
- package/src/{icons → components/icons}/HealthCareIndustriesIcon.vue +0 -0
- package/src/{icons → components/icons}/HelpIcon.vue +0 -0
- package/src/{icons → components/icons}/HideIcon.vue +0 -0
- package/src/{icons → components/icons}/HomePointIcon.vue +0 -0
- package/src/{icons → components/icons}/HospitalsIcon.vue +0 -0
- package/src/{icons → components/icons}/HouseIcon.vue +0 -0
- package/src/{icons → components/icons}/ImportIcon.vue +0 -0
- package/src/{icons → components/icons}/InfoIcon.vue +0 -0
- package/src/{icons → components/icons}/KebabIcon.vue +0 -0
- package/src/{icons → components/icons}/LabelIcon.vue +0 -0
- package/src/{icons → components/icons}/LayersIcon.vue +0 -0
- package/src/{icons → components/icons}/LegendIcon.vue +0 -0
- package/src/{icons → components/icons}/LineIcon.vue +0 -0
- package/src/{icons → components/icons}/LinkIcon.vue +0 -0
- package/src/{icons → components/icons}/LogoutIcon.vue +0 -0
- package/src/{icons → components/icons}/MapIcon.vue +0 -0
- package/src/{icons → components/icons}/MenuIcon.vue +0 -0
- package/src/{icons → components/icons}/MinusIcon.vue +0 -0
- package/src/{icons → components/icons}/ObjectAttributeIcon.vue +0 -0
- package/src/{icons → components/icons}/ObjectSelectIcon.vue +0 -0
- package/src/{icons → components/icons}/ObliqueViewIcon.vue +0 -0
- package/src/{icons → components/icons}/PdfIcon.vue +0 -0
- package/src/{icons → components/icons}/PedestrianIcon.vue +0 -0
- package/src/{icons → components/icons}/PenIcon.vue +0 -0
- package/src/{icons → components/icons}/PlayCircleIcon.vue +0 -0
- package/src/{icons → components/icons}/PlusIcon.vue +0 -0
- package/src/{icons → components/icons}/PoiIcon.vue +0 -0
- package/src/{icons → components/icons}/PointSelectIcon.vue +0 -0
- package/src/{icons → components/icons}/PolygonIcon.vue +0 -0
- package/src/{icons → components/icons}/PresentationModeIcon.vue +0 -0
- package/src/{icons → components/icons}/ProgressIcon.vue +0 -0
- package/src/{icons → components/icons}/QueryIcon.vue +0 -0
- package/src/{icons → components/icons}/RectangleIcon.vue +0 -0
- package/src/{icons → components/icons}/ReturnIcon.vue +0 -0
- package/src/{icons → components/icons}/RewindIcon.vue +0 -0
- package/src/{icons → components/icons}/RotateLeftIcon.vue +0 -0
- package/src/{icons → components/icons}/RotateRightIcon.vue +0 -0
- package/src/{icons → components/icons}/ScreenshotIcon.vue +0 -0
- package/src/{icons → components/icons}/SearchIcon.vue +0 -0
- package/src/{icons → components/icons}/ShadowIcon.vue +0 -0
- package/src/{icons → components/icons}/ShapesIcon.vue +0 -0
- package/src/{icons → components/icons}/ShareIcon.vue +0 -0
- package/src/{icons → components/icons}/SimpleCircleFilledIcon.vue +0 -0
- package/src/{icons → components/icons}/SimpleCircleHalfFilledIcon.vue +0 -0
- package/src/{icons → components/icons}/SimpleCircleOutlinedIcon.vue +0 -0
- package/src/{icons → components/icons}/SkipNextIcon.vue +0 -0
- package/src/{icons → components/icons}/SkipPreviousIcon.vue +0 -0
- package/src/{icons → components/icons}/SplitViewIcon.vue +0 -0
- package/src/{icons → components/icons}/TerrainBoxIcon.vue +0 -0
- package/src/{icons → components/icons}/TextStyleIcon.vue +0 -0
- package/src/{icons → components/icons}/ThreeDimensionsIcon.vue +0 -0
- package/src/{icons → components/icons}/ToolsIcon.vue +0 -0
- package/src/{icons → components/icons}/TouchIcon.vue +0 -0
- package/src/{icons → components/icons}/TrashCanIcon.vue +0 -0
- package/src/{icons → components/icons}/TriangleIcon.vue +0 -0
- package/src/{icons → components/icons}/TwoDimensionsIcon.vue +0 -0
- package/src/{icons → components/icons}/UploadIcon.vue +0 -0
- package/src/{icons → components/icons}/UserProfileIcon.vue +0 -0
- package/src/{icons → components/icons}/UserShareIcon.vue +0 -0
- package/src/{icons → components/icons}/VideoRecorderIcon.vue +0 -0
- package/src/{icons → components/icons}/ViewpointFlightIcon.vue +0 -0
- package/src/{icons → components/icons}/ViewpointIcon.vue +0 -0
- package/src/{icons → components/icons}/Viewshed360Icon.vue +0 -0
- package/src/{icons → components/icons}/ViewshedConeIcon.vue +0 -0
- package/src/{icons → components/icons}/ViewshedIcon.vue +0 -0
- package/src/{icons → components/icons}/WalkingIcon.vue +0 -0
- package/src/{icons → components/icons}/WallIcon.vue +0 -0
- package/src/{icons → components/icons}/WandIcon.vue +0 -0
- package/src/components/lists/VcsList.vue +21 -12
- package/src/components/lists/VcsTreeviewLeaf.vue +14 -2
- package/src/components/notification/VcsTooltip.vue +1 -1
- package/src/featureInfo/abstractFeatureInfoView.js +1 -1
- package/src/featureInfo/addressBalloonFeatureInfoView.js +1 -1
- package/src/featureInfo/balloonFeatureInfoView.js +1 -1
- package/src/featureInfo/balloonHelper.js +6 -6
- package/src/featureInfo/featureInfo.js +2 -2
- package/src/i18n/de.js +2 -6
- package/src/i18n/en.js +2 -6
- package/src/legend/legendHelper.js +4 -3
- package/src/legend/vcsLegend.vue +21 -2
- package/src/manager/window/WindowComponent.vue +42 -4
- package/src/manager/window/WindowComponentHeader.vue +1 -1
- package/src/manager/window/windowHelper.js +7 -11
- package/src/manager/window/windowManager.js +15 -11
- package/src/navigation/mapNavCompass.vue +13 -7
- package/src/navigation/mapNavigation.vue +66 -4
- package/src/navigation/orientationToolsButton.vue +1 -1
- package/src/navigation/overviewMap.js +26 -10
- package/src/navigation/vcsCompass.vue +4 -73
- package/src/setup.js +1 -1
- package/src/vuePlugins/vuetify.js +1 -1
- package/dist/assets/cesium/Workers/ArcType-c9b2b290.js +0 -25
- package/dist/assets/cesium/Workers/AttributeCompression-7b0f288d.js +0 -25
- package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-d0c22774.js +0 -25
- package/dist/assets/cesium/Workers/BoundingRectangle-201b1a81.js +0 -25
- package/dist/assets/cesium/Workers/BoxGeometry-4985457c.js +0 -25
- package/dist/assets/cesium/Workers/Color-cc8c18b3.js +0 -25
- package/dist/assets/cesium/Workers/ComponentDatatype-0200bf8c.js +0 -25
- package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-4345acdf.js +0 -25
- package/dist/assets/cesium/Workers/CorridorGeometryLibrary-850a6c35.js +0 -25
- package/dist/assets/cesium/Workers/CylinderGeometry-57a1051a.js +0 -25
- package/dist/assets/cesium/Workers/CylinderGeometryLibrary-62ce5a1f.js +0 -25
- package/dist/assets/cesium/Workers/EllipseGeometry-8627398f.js +0 -25
- package/dist/assets/cesium/Workers/EllipseGeometryLibrary-e5919563.js +0 -25
- package/dist/assets/cesium/Workers/EllipseOutlineGeometry-96fd4ae1.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidGeodesic-8bfefbff.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidGeometry-377329b9.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-e6e16e49.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidRhumbLine-03528f73.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-c080fd1b.js +0 -25
- package/dist/assets/cesium/Workers/EncodedCartesian3-ea0e408f.js +0 -25
- package/dist/assets/cesium/Workers/FrustumGeometry-a8b5d817.js +0 -25
- package/dist/assets/cesium/Workers/GeometryAttribute-8458a8fd.js +0 -25
- package/dist/assets/cesium/Workers/GeometryAttributes-ac0f8485.js +0 -25
- package/dist/assets/cesium/Workers/GeometryInstance-ee3aa3ba.js +0 -25
- package/dist/assets/cesium/Workers/GeometryOffsetAttribute-08ae0c50.js +0 -25
- package/dist/assets/cesium/Workers/GeometryPipeline-33ca229c.js +0 -25
- package/dist/assets/cesium/Workers/IndexDatatype-e713bfd2.js +0 -25
- package/dist/assets/cesium/Workers/IntersectionTests-eb4db8e0.js +0 -25
- package/dist/assets/cesium/Workers/Matrix2-eefef8eb.js +0 -25
- package/dist/assets/cesium/Workers/OrientedBoundingBox-5193f9a2.js +0 -25
- package/dist/assets/cesium/Workers/Plane-b0299683.js +0 -25
- package/dist/assets/cesium/Workers/PolygonGeometryLibrary-b61295f3.js +0 -25
- package/dist/assets/cesium/Workers/PolygonPipeline-eb527514.js +0 -25
- package/dist/assets/cesium/Workers/PolylinePipeline-0f23dd84.js +0 -25
- package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-2d903430.js +0 -25
- package/dist/assets/cesium/Workers/PrimitivePipeline-e2640413.js +0 -25
- package/dist/assets/cesium/Workers/RectangleGeometryLibrary-ae8bf8a5.js +0 -25
- package/dist/assets/cesium/Workers/RuntimeError-5baf5c66.js +0 -25
- package/dist/assets/cesium/Workers/TerrainEncoding-bc10ab54.js +0 -25
- package/dist/assets/cesium/Workers/Transforms-d2e5867e.js +0 -63
- package/dist/assets/cesium/Workers/VertexFormat-5ec0d9ff.js +0 -25
- package/dist/assets/cesium/Workers/WallGeometryLibrary-1a33e416.js +0 -25
- package/dist/assets/cesium/Workers/WebGLConstants-5b50ced1.js +0 -25
- package/dist/assets/cesium/Workers/WebMercatorProjection-cd2f30c2.js +0 -25
- package/dist/assets/cesium/Workers/_commonjsHelpers-bc29abbc.js +0 -25
- package/dist/assets/cesium/Workers/arrayRemoveDuplicates-f13aceb1.js +0 -25
- package/dist/assets/cesium/Workers/combine-7533016d.js +0 -25
- package/dist/assets/cesium/Workers/defaultValue-0c475b81.js +0 -25
- package/dist/assets/cesium/Workers/package.json +0 -1
- package/dist/assets/ui.08c48f.css +0 -1
- package/plugins/@vcmap/pluginExample/config.json +0 -6
- package/plugins/@vcmap/pluginExample/package.json +0 -7
- package/plugins/categoryTest/ItemEditor.vue +0 -13
- package/plugins/test/allIconsComponent.vue +0 -50
- package/plugins/test/index.js +0 -209
- package/plugins/wizardExample/wizardExample.vue +0 -77
- package/src/components/form-inputs-controls/VcsColorPicker.vue +0 -85
@@ -235,7 +235,7 @@ class AbstractFeatureInfoView extends VcsObject {
|
|
235
235
|
* Called by `getProperties()` to pass attributes as props object to the VueComponent of this view.
|
236
236
|
* May be overwritten by classes extending AbstractFeatureInfoView.
|
237
237
|
* It filters attributes of the feature by keys, performs value and key mapping, if provided.
|
238
|
-
* @param {undefined|import("ol").Feature<import("ol/geom/Geometry").default>|import("@vcmap/
|
238
|
+
* @param {undefined|import("ol").Feature<import("ol/geom/Geometry").default>|import("@vcmap-cesium/engine").Cesium3DTileFeature|import("@vcmap-cesium/engine").Cesium3DTilePointFeature} feature
|
239
239
|
* @returns {Object}
|
240
240
|
*/
|
241
241
|
getAttributes(feature) {
|
@@ -69,7 +69,7 @@ class AddressBalloonFeatureInfoView extends BalloonFeatureInfoView {
|
|
69
69
|
|
70
70
|
/**
|
71
71
|
* derives address attributes from addressKeys
|
72
|
-
* @param {undefined|import("ol").Feature<import("ol/geom/Geometry").default>|import("@vcmap/
|
72
|
+
* @param {undefined|import("ol").Feature<import("ol/geom/Geometry").default>|import("@vcmap-cesium/engine").Cesium3DTileFeature|import("@vcmap-cesium/engine").Cesium3DTilePointFeature} feature
|
73
73
|
* @returns {Object}
|
74
74
|
*/
|
75
75
|
getAttributes(feature) {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Feature } from 'ol';
|
2
2
|
import { getCenter } from 'ol/extent.js';
|
3
|
-
import { Cartographic, Entity, Math as CesiumMath } from '@vcmap/
|
3
|
+
import { Cartographic, Entity, Math as CesiumMath } from '@vcmap-cesium/engine';
|
4
4
|
import { Projection } from '@vcmap/core';
|
5
5
|
import { check } from '@vcsuite/check';
|
6
6
|
import AbstractFeatureInfoView from './abstractFeatureInfoView.js';
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Cartesian2, Cartographic, SceneTransforms } from '@vcmap/
|
1
|
+
import { Cartesian2, Cartographic, SceneTransforms } from '@vcmap-cesium/engine';
|
2
2
|
import { CesiumMap, ObliqueMap, OpenlayersMap, Projection, transformToImage } from '@vcmap/core';
|
3
3
|
import { unByKey } from 'ol/Observable.js';
|
4
4
|
import {
|
@@ -13,9 +13,9 @@ import {
|
|
13
13
|
export const balloonOffset = { x: 55, y: 25 };
|
14
14
|
|
15
15
|
/**
|
16
|
-
* @param {import("@vcmap/
|
17
|
-
* @param {import("@vcmap/
|
18
|
-
* @returns {undefined|import("@vcmap/
|
16
|
+
* @param {import("@vcmap-cesium/engine").Scene} scene
|
17
|
+
* @param {import("@vcmap-cesium/engine").Cartesian3} cartesian
|
18
|
+
* @returns {undefined|import("@vcmap-cesium/engine").Cartesian2}
|
19
19
|
*/
|
20
20
|
function getBalloonPositionCesium(scene, cartesian) {
|
21
21
|
return SceneTransforms.wgs84ToWindowCoordinates(scene, cartesian);
|
@@ -24,7 +24,7 @@ function getBalloonPositionCesium(scene, cartesian) {
|
|
24
24
|
/**
|
25
25
|
* @param {import("@vcmap/core").OpenlayersMap} olMap
|
26
26
|
* @param {import("ol/coordinate").Coordinate} position
|
27
|
-
* @returns {undefined|import("@vcmap/
|
27
|
+
* @returns {undefined|import("@vcmap-cesium/engine").Cartesian2}
|
28
28
|
*/
|
29
29
|
function getBalloonPositionOL(olMap, position) {
|
30
30
|
const pixel = olMap.getPixelFromCoordinate(position);
|
@@ -62,7 +62,7 @@ export async function getBalloonPosition(app, position) {
|
|
62
62
|
* sets the windowPosition of a balloon
|
63
63
|
* @param {WindowManager} windowManager
|
64
64
|
* @param {string} id - windowId of balloon
|
65
|
-
* @param {import("@vcmap/
|
65
|
+
* @param {import("@vcmap-cesium/engine").Cartesian2|undefined} windowPosition
|
66
66
|
* @param {HTMLElement} target - the map's target { @link @import("@vcmap/core").MapCollection }
|
67
67
|
*/
|
68
68
|
export function setBalloonPosition(windowManager, id, windowPosition, target) {
|
@@ -22,7 +22,7 @@ import {
|
|
22
22
|
Cesium3DTilePointFeature,
|
23
23
|
Color,
|
24
24
|
Entity,
|
25
|
-
} from '@vcmap/
|
25
|
+
} from '@vcmap-cesium/engine';
|
26
26
|
import { Feature } from 'ol';
|
27
27
|
import { check, checkMaybe } from '@vcsuite/check';
|
28
28
|
|
@@ -36,7 +36,7 @@ import BalloonFeatureInfoView from './balloonFeatureInfoView.js';
|
|
36
36
|
import { defaultPrimaryColor } from '../vuePlugins/vuetify.js';
|
37
37
|
import { ToolboxType } from '../manager/toolbox/toolboxManager.js';
|
38
38
|
|
39
|
-
/** @typedef {import("ol").Feature<import("ol/geom/Geometry").default>|import("@vcmap/
|
39
|
+
/** @typedef {import("ol").Feature<import("ol/geom/Geometry").default>|import("@vcmap-cesium/engine").Cesium3DTileFeature|import("@vcmap-cesium/engine").Cesium3DTilePointFeature|import("@vcmap-cesium/engine").Entity} FeatureType */
|
40
40
|
|
41
41
|
/**
|
42
42
|
* @typedef {Object} FeatureInfoEvent
|
package/src/i18n/de.js
CHANGED
@@ -20,12 +20,6 @@ const messages = {
|
|
20
20
|
infoAction: {
|
21
21
|
title: 'Weitere Informationen',
|
22
22
|
},
|
23
|
-
stateAction: {
|
24
|
-
titleInactive: 'Deaktiviert',
|
25
|
-
titleActive: 'Aktiviert',
|
26
|
-
titleIndeterminate: 'Unbestimmbar',
|
27
|
-
titleLoading: 'Lädt...',
|
28
|
-
},
|
29
23
|
viewpointAction: {
|
30
24
|
title: 'Springe zur Ansicht',
|
31
25
|
},
|
@@ -44,6 +38,7 @@ const messages = {
|
|
44
38
|
zoomOutTooltip: 'Herauszoomen',
|
45
39
|
pitchTooltip: 'Kameraneigung: {0}°',
|
46
40
|
overviewMapTooltip: 'Übersichtskarte',
|
41
|
+
homeButton: 'Springe zur Startansicht',
|
47
42
|
},
|
48
43
|
categoryManager: {
|
49
44
|
title: 'Komponenten',
|
@@ -80,6 +75,7 @@ const messages = {
|
|
80
75
|
legend: {
|
81
76
|
title: 'Legende',
|
82
77
|
tooltip: 'Legende',
|
78
|
+
empty: 'Aktuell sind keine Legendeneinträge verfügbar.',
|
83
79
|
openInNew: 'In neuem Browser Tab öffnen',
|
84
80
|
defaultLabelText: 'Text',
|
85
81
|
},
|
package/src/i18n/en.js
CHANGED
@@ -20,12 +20,6 @@ const messages = {
|
|
20
20
|
infoAction: {
|
21
21
|
title: 'Info',
|
22
22
|
},
|
23
|
-
stateAction: {
|
24
|
-
titleInactive: 'Inactive',
|
25
|
-
titleActive: 'Active',
|
26
|
-
titleIndeterminate: 'Indetermine',
|
27
|
-
titleLoading: 'Loading',
|
28
|
-
},
|
29
23
|
viewpointAction: {
|
30
24
|
title: 'Go to viewpoint',
|
31
25
|
},
|
@@ -44,6 +38,7 @@ const messages = {
|
|
44
38
|
zoomOutTooltip: 'Zoom out',
|
45
39
|
pitchTooltip: 'Camera pitch: {0}°',
|
46
40
|
overviewMapTooltip: 'Overview Map',
|
41
|
+
homeButton: 'Go to starting view',
|
47
42
|
},
|
48
43
|
categoryManager: {
|
49
44
|
title: 'Components',
|
@@ -80,6 +75,7 @@ const messages = {
|
|
80
75
|
legend: {
|
81
76
|
title: 'Legend',
|
82
77
|
tooltip: 'Legend',
|
78
|
+
empty: 'Currently there are no legend entries available.',
|
83
79
|
openInNew: 'Open in new tab',
|
84
80
|
defaultLabelText: 'Text',
|
85
81
|
},
|
@@ -106,6 +106,7 @@ export function getImageSrcFromShape(image) {
|
|
106
106
|
* @typedef {Object} LegendEntry
|
107
107
|
* @property {string} key
|
108
108
|
* @property {string} title - layer or entry name
|
109
|
+
* @property {boolean} [open=true] - panel state of entry
|
109
110
|
* @property {Array<LegendItem>} legend - legend properties
|
110
111
|
* @property {Array<VcsAction>} actions - popout actions
|
111
112
|
*/
|
@@ -130,7 +131,7 @@ export function createLayerLegendEntry(key, title, legend) {
|
|
130
131
|
});
|
131
132
|
}
|
132
133
|
});
|
133
|
-
return { key, title, legend, actions };
|
134
|
+
return { key, title, legend, actions, open: true };
|
134
135
|
}
|
135
136
|
|
136
137
|
/**
|
@@ -174,8 +175,8 @@ export function getLegendEntries(app) {
|
|
174
175
|
const legend = layer.style?.properties?.legend ?? layer.properties?.legend;
|
175
176
|
if (legend) {
|
176
177
|
const legendEntry = createLayerLegendEntry(key, title, legend);
|
177
|
-
// use spread since push won't trigger updates
|
178
|
-
entries.value = [...entries.value
|
178
|
+
// use spread since push won't trigger updates. Put new entries at the start
|
179
|
+
entries.value = [legendEntry, ...entries.value];
|
179
180
|
}
|
180
181
|
if (layer.styleChanged) {
|
181
182
|
styleChangedListener[layer.name] = layer.styleChanged.addEventListener(() => syncLayerLegendEntries(layer));
|
package/src/legend/vcsLegend.vue
CHANGED
@@ -1,16 +1,18 @@
|
|
1
1
|
<template>
|
2
2
|
<v-card
|
3
3
|
class="overflow-y-auto"
|
4
|
-
max-height="500"
|
5
4
|
>
|
6
5
|
<v-expansion-panels
|
7
6
|
accordion
|
8
7
|
multiple
|
8
|
+
v-if="entries.length > 0"
|
9
|
+
v-model="panels"
|
9
10
|
>
|
10
11
|
<v-expansion-panel
|
11
12
|
v-for="(entry,i) in entries"
|
12
13
|
:key="i"
|
13
14
|
class="pa-0 ma-0"
|
15
|
+
@change="entry.open = !entry.open"
|
14
16
|
>
|
15
17
|
<v-expansion-panel-header hide-actions>
|
16
18
|
{{ $t(entry.title) }}
|
@@ -51,6 +53,9 @@
|
|
51
53
|
</v-expansion-panel-content>
|
52
54
|
</v-expansion-panel>
|
53
55
|
</v-expansion-panels>
|
56
|
+
<v-sheet v-else class="ma-2">
|
57
|
+
{{ $t('legend.empty') }}
|
58
|
+
</v-sheet>
|
54
59
|
</v-card>
|
55
60
|
</template>
|
56
61
|
|
@@ -64,7 +69,9 @@
|
|
64
69
|
VExpansionPanelContent,
|
65
70
|
VIcon,
|
66
71
|
VList,
|
72
|
+
VSheet,
|
67
73
|
} from 'vuetify/lib';
|
74
|
+
import { computed } from 'vue';
|
68
75
|
import { LegendType } from './legendHelper.js';
|
69
76
|
import StyleLegendItem from './styleLegendItem.vue';
|
70
77
|
import VcsTreeviewLeaf from '../components/lists/VcsTreeviewLeaf.vue';
|
@@ -72,6 +79,7 @@
|
|
72
79
|
/**
|
73
80
|
* @description A component rendering configured legend information for active layers.
|
74
81
|
* @vue-prop {import("vue").Ref<Array<LegendEntry>>} entries - legend entries to be displayed
|
82
|
+
* @vue-computed {import("vue").ComputedRef<number[]>} panels - derives indices from entries array to define all panels as open
|
75
83
|
*/
|
76
84
|
export default {
|
77
85
|
name: 'VcsLegend',
|
@@ -85,6 +93,7 @@
|
|
85
93
|
VExpansionPanelContent,
|
86
94
|
VIcon,
|
87
95
|
VList,
|
96
|
+
VSheet,
|
88
97
|
},
|
89
98
|
props: {
|
90
99
|
entries: {
|
@@ -92,7 +101,7 @@
|
|
92
101
|
required: true,
|
93
102
|
},
|
94
103
|
},
|
95
|
-
setup() {
|
104
|
+
setup(props) {
|
96
105
|
/**
|
97
106
|
* adapts the iframe height on load
|
98
107
|
* @param {string} id - iframe's html id
|
@@ -102,9 +111,19 @@
|
|
102
111
|
iframe.style.height = `${iframe.contentWindow.document.documentElement.scrollHeight}px`;
|
103
112
|
};
|
104
113
|
|
114
|
+
/**
|
115
|
+
* Sets all entry panels open
|
116
|
+
* @type {import("vue").ComputedRef<number[]>}
|
117
|
+
*/
|
118
|
+
const panels = computed(() => {
|
119
|
+
return [...Array(props.entries.length).keys()]
|
120
|
+
.filter((p, idx) => !!props.entries[idx].open);
|
121
|
+
});
|
122
|
+
|
105
123
|
return {
|
106
124
|
LegendType,
|
107
125
|
setIframeHeight,
|
126
|
+
panels,
|
108
127
|
};
|
109
128
|
},
|
110
129
|
};
|
@@ -5,14 +5,18 @@
|
|
5
5
|
@click="clicked"
|
6
6
|
@dragstart="dragStart"
|
7
7
|
@dragend="dragEnd"
|
8
|
-
:draggable="
|
8
|
+
:draggable="isDraggable"
|
9
9
|
:class="{
|
10
10
|
'rounded': !isDocked,
|
11
|
-
'marginToTop': isDocked
|
11
|
+
'marginToTop': isDocked,
|
12
|
+
'rounded-br': isDynamicLeft,
|
13
|
+
'rounded-bl': isDynamicRight,
|
12
14
|
}"
|
13
15
|
>
|
14
16
|
<div
|
15
17
|
v-if="!windowState.hideHeader"
|
18
|
+
@mousedown="mousedown"
|
19
|
+
@mouseup="isDraggable = false"
|
16
20
|
class="pa-2"
|
17
21
|
:class="{
|
18
22
|
'cursor-grab': isDynamic,
|
@@ -23,7 +27,7 @@
|
|
23
27
|
</div>
|
24
28
|
<v-divider />
|
25
29
|
<div
|
26
|
-
class="overflow-x-hidden"
|
30
|
+
class="overflow-x-hidden mb-1"
|
27
31
|
>
|
28
32
|
<slot />
|
29
33
|
</div>
|
@@ -40,7 +44,7 @@
|
|
40
44
|
|
41
45
|
<script>
|
42
46
|
import {
|
43
|
-
computed, inject, provide,
|
47
|
+
computed, inject, provide, ref,
|
44
48
|
} from 'vue';
|
45
49
|
import { VDivider, VSheet } from 'vuetify/lib';
|
46
50
|
import { WindowSlot } from './windowManager.js';
|
@@ -86,12 +90,30 @@
|
|
86
90
|
|
87
91
|
const isDynamic = computed(() => props.slotWindow !== WindowSlot.STATIC);
|
88
92
|
const isDocked = computed(() => props.slotWindow !== WindowSlot.DETACHED);
|
93
|
+
const isDockedLeft = computed(() => {
|
94
|
+
return props.slotWindow === WindowSlot.STATIC || props.slotWindow === WindowSlot.DYNAMIC_LEFT;
|
95
|
+
});
|
96
|
+
const isDockedRight = computed(() => props.slotWindow === WindowSlot.DYNAMIC_RIGHT);
|
97
|
+
const isDraggable = ref(false);
|
89
98
|
/**
|
90
99
|
* @param {PointerEvent} e
|
91
100
|
*/
|
92
101
|
const clicked = (e) => {
|
93
102
|
emit('click', e);
|
94
103
|
};
|
104
|
+
/**
|
105
|
+
* Sets window as draggable on mousedown on header.
|
106
|
+
* Stops bubbling of header action buttons.
|
107
|
+
* @param {MouseEvent} e
|
108
|
+
*/
|
109
|
+
const mousedown = (e) => {
|
110
|
+
if (e.target.closest('button')) {
|
111
|
+
e.preventDefault();
|
112
|
+
e.stopPropagation();
|
113
|
+
return;
|
114
|
+
}
|
115
|
+
isDraggable.value = isDynamic.value;
|
116
|
+
};
|
95
117
|
/**
|
96
118
|
* @type {DragEvent}
|
97
119
|
*/
|
@@ -100,7 +122,16 @@
|
|
100
122
|
* @param {DragEvent} e
|
101
123
|
*/
|
102
124
|
const dragStart = (e) => {
|
125
|
+
if (!isDraggable.value) {
|
126
|
+
e.preventDefault();
|
127
|
+
e.stopPropagation();
|
128
|
+
}
|
103
129
|
startEvent = e;
|
130
|
+
// set mouse cursor to move
|
131
|
+
e.dataTransfer.effectAllowed = 'move';
|
132
|
+
const preventDefaultDragover = dragOverEvent => dragOverEvent.preventDefault();
|
133
|
+
e.target.parentElement.ondragover = preventDefaultDragover;
|
134
|
+
app.maps.target.ondragover = preventDefaultDragover;
|
104
135
|
};
|
105
136
|
/**
|
106
137
|
* @param {DragEvent} endEvent
|
@@ -112,14 +143,21 @@
|
|
112
143
|
};
|
113
144
|
emit('moved', movement);
|
114
145
|
startEvent = null;
|
146
|
+
isDraggable.value = false;
|
147
|
+
endEvent.target.parentElement.ondragover = null;
|
148
|
+
app.maps.target.ondragover = null;
|
115
149
|
};
|
116
150
|
|
117
151
|
return {
|
118
152
|
isDynamic,
|
119
153
|
isDocked,
|
154
|
+
isDynamicLeft: isDockedLeft,
|
155
|
+
isDynamicRight: isDockedRight,
|
156
|
+
isDraggable,
|
120
157
|
clicked,
|
121
158
|
dragStart,
|
122
159
|
dragEnd,
|
160
|
+
mousedown,
|
123
161
|
};
|
124
162
|
},
|
125
163
|
};
|
@@ -18,7 +18,7 @@
|
|
18
18
|
<template v-if="windowState.headerActions?.length > 0">
|
19
19
|
<VcsActionButtonList
|
20
20
|
:actions="windowState.headerActions"
|
21
|
-
:overflow-count="windowState.
|
21
|
+
:overflow-count="windowState.headerActionsOverflow ?? 3"
|
22
22
|
small
|
23
23
|
/>
|
24
24
|
<v-divider
|
@@ -70,7 +70,7 @@ export function getWindowPositionOptions(x, y, target, alignment = WindowAlignme
|
|
70
70
|
|
71
71
|
/**
|
72
72
|
* Get window position options based on a pixel in the map
|
73
|
-
* @param {import("@vcmap/
|
73
|
+
* @param {import("@vcmap-cesium/engine").Cartesian2} windowPosition - the window position, as retrieved from an InteractionEvent
|
74
74
|
* @param {HTMLElement} target - the map's target { @link @import("@vcmap/core").MapCollection }
|
75
75
|
* @param {WindowAlignment} [alignment]
|
76
76
|
* @returns {WindowPositionOptions}
|
@@ -121,7 +121,7 @@ export function getFittedWindowPositionOptions(x, y, width, height, target) {
|
|
121
121
|
/**
|
122
122
|
* Fits a window aligned top left, so it fits into currently active map. This will change the alignment to be bottom or right depending
|
123
123
|
* on if the window would not fit into active map element.
|
124
|
-
* @param {import("@vcmap/
|
124
|
+
* @param {import("@vcmap-cesium/engine").Cartesian2} windowPosition - the window position, as retrieved from an InteractionEvent
|
125
125
|
* @param {number} width
|
126
126
|
* @param {number} height
|
127
127
|
* @param {HTMLElement} target - the map's target { @link @import("@vcmap/core").MapCollection }
|
@@ -251,15 +251,6 @@ export function moveWindow(id, translation, windowManager, targetSize) {
|
|
251
251
|
if (windowPositionOptions.right !== undefined) {
|
252
252
|
windowPositionOptions.right -= translation.dx;
|
253
253
|
}
|
254
|
-
// clear size restrictions
|
255
|
-
if (position.maxHeight === WindowPositions.TOP_RIGHT.maxHeight &&
|
256
|
-
slot.value === WindowSlot.DYNAMIC_RIGHT) {
|
257
|
-
windowPositionOptions.maxHeight = 'unset';
|
258
|
-
}
|
259
|
-
if (position.maxWidth === WindowPositions.TOP_LEFT.maxWidth &&
|
260
|
-
slot.value === WindowSlot.DYNAMIC_LEFT) {
|
261
|
-
windowPositionOptions.maxWidth = 'unset';
|
262
|
-
}
|
263
254
|
const updatedPosition = updateWindowPosition(position, windowPositionOptions, targetSize);
|
264
255
|
windowManager.setWindowPositionOptions(id, updatedPosition);
|
265
256
|
}
|
@@ -320,6 +311,11 @@ export function clipToTargetSize(windowPositionOptions, targetSize) {
|
|
320
311
|
if (windowPositionOptions.maxHeight !== undefined) {
|
321
312
|
clippedPosition.maxHeight = Math.min(windowPositionOptions.maxHeight, targetHeight);
|
322
313
|
}
|
314
|
+
// max width of a top left 2 window (active static window)
|
315
|
+
const topLeft2 = posToNumber(WindowPositions.TOP_LEFT2.left, 'left', targetSize);
|
316
|
+
if (clippedPosition.left === topLeft2) {
|
317
|
+
clippedPosition.maxWidth = Math.min(clippedPosition.maxWidth - topLeft2, targetWidth);
|
318
|
+
}
|
323
319
|
|
324
320
|
return clippedPosition;
|
325
321
|
}
|
@@ -62,16 +62,14 @@ export const WindowPositions = {
|
|
62
62
|
TOP_LEFT: {
|
63
63
|
left: '0px',
|
64
64
|
top: '0px',
|
65
|
-
maxWidth: '320px',
|
66
65
|
},
|
67
66
|
TOP_LEFT2: {
|
68
|
-
left: '
|
67
|
+
left: '322px', // 2px space
|
69
68
|
top: '0px',
|
70
69
|
},
|
71
70
|
TOP_RIGHT: {
|
72
71
|
right: '0px',
|
73
72
|
top: '0px',
|
74
|
-
maxHeight: '70%',
|
75
73
|
},
|
76
74
|
DETACHED: {
|
77
75
|
left: '200px',
|
@@ -120,7 +118,7 @@ export function isSlotPosition(windowPosition) {
|
|
120
118
|
* @property {string} [headerTitle]
|
121
119
|
* @property {string} [headerIcon]
|
122
120
|
* @property {Array<VcsAction>} [headerActions]
|
123
|
-
* @property {number} [
|
121
|
+
* @property {number} [headerActionsOverflow]
|
124
122
|
* @property {string} [infoUrl] An optional url referencing help or further information on the window's content.
|
125
123
|
* @property {boolean} [dockable] Auto derived from hidePin, current slot, current position and initial position.
|
126
124
|
* @property {Object<string, string>} [styles] Can be used to add additional styles to the root WindowComponent. Use Vue Style Bindings Object Syntax https://vuejs.org/v2/guide/class-and-style.html
|
@@ -206,7 +204,7 @@ export function windowPositionFromOptions(windowPositionOptions, windowPosition
|
|
206
204
|
/**
|
207
205
|
* Sets a position on a component. Updates dockable state.
|
208
206
|
* @param {WindowComponent} windowComponent
|
209
|
-
* @param {
|
207
|
+
* @param {WindowPositionOptions} windowPositionOptions
|
210
208
|
*/
|
211
209
|
function setWindowPosition(windowComponent, windowPositionOptions) {
|
212
210
|
const windowPosition = windowPositionFromOptions(windowPositionOptions, windowComponent.position);
|
@@ -309,9 +307,15 @@ class WindowManager {
|
|
309
307
|
const staticWindow = this._findWindowBySlot(WindowSlot.STATIC);
|
310
308
|
const dynamicWindowLeft = this._findWindowBySlot(WindowSlot.DYNAMIC_LEFT);
|
311
309
|
if (staticWindow && dynamicWindowLeft) {
|
312
|
-
this.setWindowPositionOptions(
|
310
|
+
this.setWindowPositionOptions(
|
311
|
+
dynamicWindowLeft.id,
|
312
|
+
{ ...dynamicWindowLeft.position, ...WindowPositions.TOP_LEFT2 },
|
313
|
+
);
|
313
314
|
} else if (!staticWindow && dynamicWindowLeft) {
|
314
|
-
this.setWindowPositionOptions(
|
315
|
+
this.setWindowPositionOptions(
|
316
|
+
dynamicWindowLeft.id,
|
317
|
+
{ ...dynamicWindowLeft.position, ...WindowPositions.TOP_LEFT },
|
318
|
+
);
|
315
319
|
}
|
316
320
|
}
|
317
321
|
}
|
@@ -333,18 +337,18 @@ class WindowManager {
|
|
333
337
|
*/
|
334
338
|
_getPositionOptionsForSlot(slot, position) {
|
335
339
|
if (slot === WindowSlot.STATIC) {
|
336
|
-
return WindowPositions.TOP_LEFT;
|
340
|
+
return { ...WindowPositions.TOP_LEFT, maxWidth: '320px' };
|
337
341
|
}
|
338
342
|
if (slot === WindowSlot.DYNAMIC_LEFT) {
|
339
343
|
const windowAtStatic = this._findWindowBySlot(WindowSlot.STATIC);
|
340
344
|
if (windowAtStatic) {
|
341
|
-
return WindowPositions.TOP_LEFT2;
|
345
|
+
return { ...position, ...WindowPositions.TOP_LEFT2 };
|
342
346
|
} else {
|
343
|
-
return WindowPositions.TOP_LEFT;
|
347
|
+
return { ...position, ...WindowPositions.TOP_LEFT };
|
344
348
|
}
|
345
349
|
}
|
346
350
|
if (slot === WindowSlot.DYNAMIC_RIGHT) {
|
347
|
-
return WindowPositions.TOP_RIGHT;
|
351
|
+
return { ...position, ...WindowPositions.TOP_RIGHT };
|
348
352
|
}
|
349
353
|
return position || WindowPositions.DETACHED;
|
350
354
|
}
|
@@ -8,7 +8,7 @@
|
|
8
8
|
d="M4,0,8,13H0Z"
|
9
9
|
transform="translate(1)"
|
10
10
|
fill="currentColor"
|
11
|
-
@click="emit(0)"
|
11
|
+
@click="emit($event, 0)"
|
12
12
|
/>
|
13
13
|
<path
|
14
14
|
:class="canEmit ? 'cursor-pointer' : ''"
|
@@ -17,7 +17,7 @@
|
|
17
17
|
d="M4,0,8,13H0Z"
|
18
18
|
transform="translate(9 58) rotate(180)"
|
19
19
|
fill="rgba(88,88,88,0.51)"
|
20
|
-
@click="emit(180)"
|
20
|
+
@click="emit($event, 180)"
|
21
21
|
/>
|
22
22
|
</g>
|
23
23
|
<g id="Group_1653" data-name="Group 1653" transform="translate(0 33) rotate(-90)">
|
@@ -27,7 +27,7 @@
|
|
27
27
|
data-name="Polygon 14"
|
28
28
|
d="M4,0,8,13H0Z"
|
29
29
|
fill="rgba(88,88,88,0.51)"
|
30
|
-
@click="emit(270)"
|
30
|
+
@click="emit($event, 270)"
|
31
31
|
/>
|
32
32
|
<path
|
33
33
|
:class="canEmit ? 'cursor-pointer' : ''"
|
@@ -36,7 +36,7 @@
|
|
36
36
|
d="M4,0,8,13H0Z"
|
37
37
|
transform="translate(8 58) rotate(180)"
|
38
38
|
fill="rgba(88,88,88,0.51)"
|
39
|
-
@click="emit(90)"
|
39
|
+
@click="emit($event, 90)"
|
40
40
|
/>
|
41
41
|
</g>
|
42
42
|
<g id="Group_1672" data-name="Group 1672" transform="translate(1)" v-if="!hideTicks">
|
@@ -143,19 +143,25 @@
|
|
143
143
|
},
|
144
144
|
},
|
145
145
|
methods: {
|
146
|
-
emit(event) {
|
146
|
+
emit(event, dir) {
|
147
147
|
if (this.canEmit) {
|
148
|
-
|
148
|
+
event.preventDefault();
|
149
|
+
event.stopPropagation();
|
150
|
+
this.$emit('direction-click', dir);
|
149
151
|
}
|
150
152
|
},
|
151
153
|
},
|
152
154
|
};
|
153
155
|
</script>
|
154
156
|
|
155
|
-
<style scoped>
|
157
|
+
<style lang="scss" scoped>
|
156
158
|
svg {
|
157
159
|
width: 85%;
|
158
160
|
height: 85%;
|
159
161
|
margin: 7.5%;
|
160
162
|
}
|
163
|
+
|
164
|
+
svg path:hover {
|
165
|
+
fill: var(--v-base-lighten5) !important;
|
166
|
+
}
|
161
167
|
</style>
|