@vcmap/ui 5.0.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +182 -0
- package/build/.eslintrc +6 -0
- package/build/build.js +162 -0
- package/build/buildCesium.js +19 -0
- package/build/buildHelpers.js +212 -0
- package/build/buildPreview.js +23 -0
- package/build/commonViteConfig.js +39 -0
- package/build/determineHost.js +46 -0
- package/build/generateOLLib.js +196 -0
- package/build/getPluginProxies.js +29 -0
- package/build/info/api-plugin.js +11 -0
- package/build/info/conf.json +21 -0
- package/build/info/define-plugin.js +31 -0
- package/build/info/package.json +3 -0
- package/build/info/publish.js +190 -0
- package/build/info/virtual-plugin.js +15 -0
- package/build/staging/Dockerfile +2 -0
- package/config/aerowest.config.json +388 -0
- package/config/base.config.json +991 -0
- package/config/berlin.config.json +510 -0
- package/config/dev.config.json +44 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
- package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
- package/dist/assets/cesium/Assets/Images/bing_maps_credit.png +0 -0
- package/dist/assets/cesium/Assets/Images/cesium_credit.png +0 -0
- package/dist/assets/cesium/Assets/Images/google_earth_credit.png +0 -0
- package/dist/assets/cesium/Assets/Images/ion-credit.png +0 -0
- package/dist/assets/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +14 -0
- package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/airfield.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/airport.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/america-football.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/art-gallery.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/bakery.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/bank.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/bar.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/baseball.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/basketball.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/beer.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/bicycle.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/building.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/bus.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/cafe.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/camera.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/campsite.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/car.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/cemetery.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/cesium.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/chemist.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/cinema.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/circle.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/city.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/clothing-store.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/college.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/commercial.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/cricket.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/cross.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/dam.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/danger.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/disability.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/dog-park.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/embassy.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/entrance.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/farm.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/fast-food.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/ferry.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/fire-station.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/fuel.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/garden.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/gift.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/golf.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/grocery.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/hairdresser.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/harbor.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/heart.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/heliport.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/hospital.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/ice-cream.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/industrial.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/land-use.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/laundry.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/library.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/lighthouse.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/lodging.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/logging.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/london-underground.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/marker.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/minefield.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/mobilephone.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/monument.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/museum.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/music.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/oil-well.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/park.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/park2.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/parking-garage.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/parking.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/pharmacy.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/pitch.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/playground.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/police.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/polling-place.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/post.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/prison.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/rail-above.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/rail-light.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/rail-metro.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/rail-underground.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/rail.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/religious-christian.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/restaurant.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/roadblock.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/rocket.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/school.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/scooter.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/shop.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/skiing.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/soccer.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/square-stroked.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/square.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/star-stroked.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/star.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/suitcase.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/swimming.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/telephone.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/tennis.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/theatre.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/toilets.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/town-hall.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/town.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/triangle.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/village.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/warehouse.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/waste-basket.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/water.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/wetland.png +0 -0
- package/dist/assets/cesium/Assets/Textures/maki/zoo.png +0 -0
- package/dist/assets/cesium/Assets/Textures/moonSmall.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/pin.svg +1 -0
- package/dist/assets/cesium/Assets/Textures/waterNormals.jpg +0 -0
- package/dist/assets/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
- package/dist/assets/cesium/Assets/approximateTerrainHeights.json +1 -0
- package/dist/assets/cesium/Workers/ArcType-fc72c06c.js +1 -0
- package/dist/assets/cesium/Workers/AttributeCompression-80665726.js +1 -0
- package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-a655a4bc.js +1 -0
- package/dist/assets/cesium/Workers/BoundingRectangle-c3b79029.js +1 -0
- package/dist/assets/cesium/Workers/BoxGeometry-f8f9c981.js +1 -0
- package/dist/assets/cesium/Workers/Color-de06a177.js +1 -0
- package/dist/assets/cesium/Workers/ComponentDatatype-a15c9a19.js +1 -0
- package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-48cdc26d.js +1 -0
- package/dist/assets/cesium/Workers/CorridorGeometryLibrary-ddc027d3.js +1 -0
- package/dist/assets/cesium/Workers/CylinderGeometry-82a8cbe6.js +1 -0
- package/dist/assets/cesium/Workers/CylinderGeometryLibrary-76cda53e.js +1 -0
- package/dist/assets/cesium/Workers/EllipseGeometry-32d55454.js +1 -0
- package/dist/assets/cesium/Workers/EllipseGeometryLibrary-b2ae188a.js +1 -0
- package/dist/assets/cesium/Workers/EllipseOutlineGeometry-f05a5a27.js +1 -0
- package/dist/assets/cesium/Workers/EllipsoidGeodesic-19e75e11.js +1 -0
- package/dist/assets/cesium/Workers/EllipsoidGeometry-7c99fc81.js +1 -0
- package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-21c243df.js +1 -0
- package/dist/assets/cesium/Workers/EllipsoidRhumbLine-6145377b.js +1 -0
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-a01286f6.js +1 -0
- package/dist/assets/cesium/Workers/EncodedCartesian3-d9f5c4a4.js +1 -0
- package/dist/assets/cesium/Workers/FrustumGeometry-17776af8.js +1 -0
- package/dist/assets/cesium/Workers/GeometryAttribute-89a520b9.js +1 -0
- package/dist/assets/cesium/Workers/GeometryAttributes-32b29525.js +1 -0
- package/dist/assets/cesium/Workers/GeometryInstance-4fbf16ba.js +1 -0
- package/dist/assets/cesium/Workers/GeometryOffsetAttribute-8c5e10db.js +1 -0
- package/dist/assets/cesium/Workers/GeometryPipeline-309fad76.js +1 -0
- package/dist/assets/cesium/Workers/IndexDatatype-f1dcdf35.js +1 -0
- package/dist/assets/cesium/Workers/IntersectionTests-58aa8f80.js +1 -0
- package/dist/assets/cesium/Workers/Matrix2-47e98d76.js +1 -0
- package/dist/assets/cesium/Workers/OrientedBoundingBox-fcb5b750.js +1 -0
- package/dist/assets/cesium/Workers/Plane-3f01019d.js +1 -0
- package/dist/assets/cesium/Workers/PolygonGeometryLibrary-0b29eb16.js +1 -0
- package/dist/assets/cesium/Workers/PolygonPipeline-a934c4dd.js +1 -0
- package/dist/assets/cesium/Workers/PolylinePipeline-8095c9bc.js +1 -0
- package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-67d12fff.js +1 -0
- package/dist/assets/cesium/Workers/PrimitivePipeline-980e44c5.js +1 -0
- package/dist/assets/cesium/Workers/RectangleGeometryLibrary-621c6de8.js +1 -0
- package/dist/assets/cesium/Workers/RuntimeError-8952249c.js +1 -0
- package/dist/assets/cesium/Workers/TerrainEncoding-f96552d5.js +1 -0
- package/dist/assets/cesium/Workers/Transforms-c8cb8f43.js +39 -0
- package/dist/assets/cesium/Workers/VertexFormat-a0b706b0.js +1 -0
- package/dist/assets/cesium/Workers/WallGeometryLibrary-c03d8479.js +1 -0
- package/dist/assets/cesium/Workers/WebGLConstants-508b9636.js +1 -0
- package/dist/assets/cesium/Workers/WebMercatorProjection-79b3214e.js +1 -0
- package/dist/assets/cesium/Workers/_commonjsHelpers-3aae1032-26891ab7.js +1 -0
- package/dist/assets/cesium/Workers/_rollup_plugin_ignore_empty_module_placeholder-57d574d0.js +1 -0
- package/dist/assets/cesium/Workers/arrayRemoveDuplicates-dc2f4046.js +1 -0
- package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +6 -0
- package/dist/assets/cesium/Workers/combine-3c023bda.js +1 -0
- package/dist/assets/cesium/Workers/combineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createBoxGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createCircleGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createCorridorGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createCylinderGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createEllipseGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createFrustumGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createPlaneGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createPolygonGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createPolylineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createRectangleGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createSphereGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +1 -0
- package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +1 -0
- package/dist/assets/cesium/Workers/createVectorTileGeometries.js +1 -0
- package/dist/assets/cesium/Workers/createVectorTilePoints.js +1 -0
- package/dist/assets/cesium/Workers/createVectorTilePolygons.js +1 -0
- package/dist/assets/cesium/Workers/createVectorTilePolylines.js +1 -0
- package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -0
- package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +3 -0
- package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +1 -0
- package/dist/assets/cesium/Workers/createWallGeometry.js +1 -0
- package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +1 -0
- package/dist/assets/cesium/Workers/decodeDraco.js +1 -0
- package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +1 -0
- package/dist/assets/cesium/Workers/defaultValue-81eec7ed.js +1 -0
- package/dist/assets/cesium/Workers/transcodeKTX2.js +1 -0
- package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -0
- package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +1 -0
- package/dist/assets/cesium.eb5667.js +9105 -0
- package/dist/assets/cesium.js +1 -0
- package/dist/assets/core.216494.js +4 -0
- package/dist/assets/core.js +1 -0
- package/dist/assets/index.4ccd4433.js +1 -0
- package/dist/assets/ol.ef03b1.js +311 -0
- package/dist/assets/ol.js +1 -0
- package/dist/assets/ui.99a1a7.css +1 -0
- package/dist/assets/ui.99a1a7.js +70 -0
- package/dist/assets/ui.js +1 -0
- package/dist/assets/vue-composition-api.c5aca1.js +14 -0
- package/dist/assets/vue-composition-api.js +2 -0
- package/dist/assets/vue.762edd.js +9 -0
- package/dist/assets/vue.js +1 -0
- package/dist/assets/vuetify.401a29.css +5 -0
- package/dist/assets/vuetify.401a29.js +148 -0
- package/dist/assets/vuetify.js +2 -0
- package/dist/index.html +82 -0
- package/index.js +108 -0
- package/lib/cesium.js +1 -0
- package/lib/core.js +1 -0
- package/lib/ol.js +1 -0
- package/lib/olLib.js +844 -0
- package/lib/ui.js +1 -0
- package/lib/vue-composition-api.js +2 -0
- package/lib/vue.js +1 -0
- package/lib/vuetify.js +2 -0
- package/map.config.json +35 -0
- package/package.json +126 -0
- package/plugins/@vcmap/pluginExample/config.json +6 -0
- package/plugins/@vcmap/pluginExample/index.js +209 -0
- package/plugins/@vcmap/pluginExample/package.json +7 -0
- package/plugins/@vcmap/pluginExample/pluginExampleComponent.vue +374 -0
- package/plugins/@vcmap/pluginExample/validation.js +30 -0
- package/plugins/@vcmap/project-selector/ContextsListComponent.vue +62 -0
- package/plugins/@vcmap/project-selector/ProjectSelectorComponent.vue +81 -0
- package/plugins/@vcmap/project-selector/README.md +29 -0
- package/plugins/@vcmap/project-selector/config.json +15 -0
- package/plugins/@vcmap/project-selector/de.json +7 -0
- package/plugins/@vcmap/project-selector/en.json +7 -0
- package/plugins/@vcmap/project-selector/index.js +259 -0
- package/plugins/@vcmap/project-selector/package.json +14 -0
- package/plugins/@vcmap/theme-changer/README.md +21 -0
- package/plugins/@vcmap/theme-changer/ThemeChangerComponent.vue +92 -0
- package/plugins/@vcmap/theme-changer/config.json +69 -0
- package/plugins/@vcmap/theme-changer/index.js +102 -0
- package/plugins/@vcmap/theme-changer/package.json +12 -0
- package/plugins/buttonExamples/ButtonExamples.vue +190 -0
- package/plugins/buttonExamples/index.js +41 -0
- package/plugins/categoryTest/Categories.vue +145 -0
- package/plugins/categoryTest/Category.vue +114 -0
- package/plugins/categoryTest/ItemEditor.vue +13 -0
- package/plugins/categoryTest/index.js +41 -0
- package/plugins/example/index.js +75 -0
- package/plugins/example/mySuperComponent.vue +127 -0
- package/plugins/package.json +5 -0
- package/plugins/test/allIconsComponent.vue +34 -0
- package/plugins/test/editor.vue +63 -0
- package/plugins/test/emptyComponent.vue +13 -0
- package/plugins/test/index.js +116 -0
- package/plugins/test/myCustomHeader.vue +19 -0
- package/plugins/test/toolbox-data.js +129 -0
- package/plugins/test/vcsContent.vue +23 -0
- package/plugins/test/windowManagerExample.vue +144 -0
- package/src/actions/actionHelper.js +262 -0
- package/src/actions/stateRefAction.js +59 -0
- package/src/actions/styleSelector.vue +90 -0
- package/src/application/Navbar.vue +143 -0
- package/src/application/VcsApp.vue +202 -0
- package/src/application/VcsMap.vue +38 -0
- package/src/application/VcsSettings.vue +85 -0
- package/src/application/vcsAppWrapper.vue +29 -0
- package/src/assets/logo-mobile.svg +9 -0
- package/src/assets/logo.svg +26 -0
- package/src/components/buttons/VcsActionButtonList.vue +99 -0
- package/src/components/buttons/VcsButton.vue +201 -0
- package/src/components/form-inputs-controls/VcsCheckbox.vue +74 -0
- package/src/components/form-inputs-controls/VcsColorPicker.vue +81 -0
- package/src/components/form-inputs-controls/VcsFormSection.vue +46 -0
- package/src/components/form-inputs-controls/VcsLabel.vue +38 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +97 -0
- package/src/components/form-inputs-controls/VcsTextArea.vue +130 -0
- package/src/components/form-inputs-controls/VcsTextField.vue +129 -0
- package/src/components/form-output/VcsFormattedNumber.vue +103 -0
- package/src/components/lists/VcsActionList.vue +100 -0
- package/src/components/lists/VcsTreeview.vue +104 -0
- package/src/components/lists/VcsTreeviewLeaf.vue +91 -0
- package/src/components/lists/VcsTreeviewSearchbar.vue +157 -0
- package/src/components/notification/VcsBadge.vue +27 -0
- package/src/components/notification/VcsTooltip.vue +154 -0
- package/src/components/notification/validation.js +19 -0
- package/src/contentTree/LayerTree.vue +39 -0
- package/src/contentTree/contentTreeCollection.js +315 -0
- package/src/contentTree/contentTreeItem.js +457 -0
- package/src/contentTree/groupContentTreeItem.js +67 -0
- package/src/contentTree/layerContentTreeItem.js +235 -0
- package/src/contentTree/layerGroupContentTreeItem.js +154 -0
- package/src/contentTree/nodeContentTreeItem.js +37 -0
- package/src/contentTree/obliqueCollectionContentTreeItem.js +155 -0
- package/src/contentTree/subContentTreeItem.js +42 -0
- package/src/contentTree/vcsObjectContentTreeItem.js +98 -0
- package/src/contentTree/viewPointContentTreeItem.js +107 -0
- package/src/i18n/de.js +55 -0
- package/src/i18n/en.js +55 -0
- package/src/i18n/i18nCollection.js +138 -0
- package/src/icons/+all.js +359 -0
- package/src/icons/2DAreaIcon.vue +21 -0
- package/src/icons/2DDistanceIcon.vue +18 -0
- package/src/icons/3DAreaIcon.vue +21 -0
- package/src/icons/3DDistanceIcon.vue +18 -0
- package/src/icons/3DHeightIcon.vue +18 -0
- package/src/icons/AngleIcon.vue +8 -0
- package/src/icons/AssociationsIcon.vue +34 -0
- package/src/icons/AxisIcon.vue +10 -0
- package/src/icons/BoundingBoxIcon.vue +15 -0
- package/src/icons/CheckboxCheckedIcon.vue +16 -0
- package/src/icons/CheckboxIcon.vue +23 -0
- package/src/icons/CheckboxIndeterminateIcon.vue +24 -0
- package/src/icons/CircleIcon.vue +10 -0
- package/src/icons/ColorSwatchIcon.vue +17 -0
- package/src/icons/CommentIcon.vue +19 -0
- package/src/icons/CompassIcon.vue +8 -0
- package/src/icons/ComponentsIcon.vue +7 -0
- package/src/icons/ConeIcon.vue +11 -0
- package/src/icons/DimensionsHouseIcon.vue +14 -0
- package/src/icons/ElevationProfileIcon.vue +111 -0
- package/src/icons/ExportAreaIcon.vue +7 -0
- package/src/icons/ExportFlightIcon.vue +7 -0
- package/src/icons/ExportIcon.vue +8 -0
- package/src/icons/ExternalLinkIcon.vue +10 -0
- package/src/icons/EyeIcon.vue +7 -0
- package/src/icons/FastForwardIcon.vue +7 -0
- package/src/icons/FilterIcon.vue +8 -0
- package/src/icons/GlobeNatureIcon.vue +14 -0
- package/src/icons/HealthCareIndustriesIcon.vue +118 -0
- package/src/icons/HelpIcon.vue +7 -0
- package/src/icons/HomePointIcon.vue +8 -0
- package/src/icons/HospitalsIcon.vue +237 -0
- package/src/icons/HouseIcon.vue +25 -0
- package/src/icons/ImportIcon.vue +8 -0
- package/src/icons/InfoIcon.vue +10 -0
- package/src/icons/KebabIcon.vue +36 -0
- package/src/icons/LabelIcon.vue +7 -0
- package/src/icons/LayersIcon.vue +26 -0
- package/src/icons/LegendIcon.vue +65 -0
- package/src/icons/LineIcon.vue +7 -0
- package/src/icons/LinkIcon.vue +7 -0
- package/src/icons/MapIcon.vue +8 -0
- package/src/icons/MenuIcon.vue +34 -0
- package/src/icons/MinusIcon.vue +8 -0
- package/src/icons/ObjectAttributeIcon.vue +18 -0
- package/src/icons/ObjectSelectIcon.vue +8 -0
- package/src/icons/ObliqueViewIcon.vue +13 -0
- package/src/icons/PdfIcon.vue +10 -0
- package/src/icons/PedestrianIcon.vue +8 -0
- package/src/icons/PenIcon.vue +14 -0
- package/src/icons/PlayCircleIcon.vue +10 -0
- package/src/icons/PlusIcon.vue +9 -0
- package/src/icons/PoiIcon.vue +7 -0
- package/src/icons/PointSelectIcon.vue +7 -0
- package/src/icons/PolygonIcon.vue +38 -0
- package/src/icons/PresentationModeIcon.vue +7 -0
- package/src/icons/ProgressIcon.vue +24 -0
- package/src/icons/QueryIcon.vue +15 -0
- package/src/icons/RectangleIcon.vue +9 -0
- package/src/icons/ReturnIcon.vue +7 -0
- package/src/icons/RewindIcon.vue +6 -0
- package/src/icons/SearchIcon.vue +8 -0
- package/src/icons/ShadowIcon.vue +9 -0
- package/src/icons/ShapesIcon.vue +28 -0
- package/src/icons/ShareIcon.vue +22 -0
- package/src/icons/SimpleCircleFilledIcon.vue +15 -0
- package/src/icons/SimpleCircleHalfFilledIcon.vue +12 -0
- package/src/icons/SimpleCircleOutlinedIcon.vue +15 -0
- package/src/icons/SkipNextIcon.vue +7 -0
- package/src/icons/SkipPreviousIcon.vue +9 -0
- package/src/icons/SplitViewIcon.vue +19 -0
- package/src/icons/TextStyleIcon.vue +14 -0
- package/src/icons/ThreeDimensionsIcon.vue +7 -0
- package/src/icons/ToolsIcon.vue +35 -0
- package/src/icons/TouchIcon.vue +8 -0
- package/src/icons/TrashCanIcon.vue +7 -0
- package/src/icons/TriangleIcon.vue +15 -0
- package/src/icons/TwoDimensionsIcon.vue +8 -0
- package/src/icons/UploadIcon.vue +14 -0
- package/src/icons/VideoRecorderIcon.vue +14 -0
- package/src/icons/WalkingIcon.vue +7 -0
- package/src/icons/WallIcon.vue +14 -0
- package/src/init.js +38 -0
- package/src/manager/buttonManager.js +156 -0
- package/src/manager/navbarManager.js +81 -0
- package/src/manager/toolbox/ToolboxGroupComponent.vue +128 -0
- package/src/manager/toolbox/ToolboxManager.vue +157 -0
- package/src/manager/toolbox/toolboxManager.js +204 -0
- package/src/manager/window/WindowComponent.vue +140 -0
- package/src/manager/window/WindowComponentHeader.vue +53 -0
- package/src/manager/window/WindowManager.vue +126 -0
- package/src/manager/window/windowManager.js +435 -0
- package/src/navigation/mapNavCompass.vue +161 -0
- package/src/navigation/mapNavigation.vue +207 -0
- package/src/navigation/obliqueRotation.vue +48 -0
- package/src/navigation/orientationToolsButton.vue +52 -0
- package/src/navigation/overviewMap.js +615 -0
- package/src/navigation/overviewMapClickedInteraction.js +38 -0
- package/src/navigation/tiltSlider.vue +96 -0
- package/src/navigation/vcsCompass.vue +144 -0
- package/src/navigation/vcsZoomButton.vue +27 -0
- package/src/pluginHelper.js +106 -0
- package/src/setup.js +11 -0
- package/src/styles/_theming.scss +25 -0
- package/src/styles/_typography.scss +42 -0
- package/src/styles/main.scss +12 -0
- package/src/styles/utils/_all.scss +12 -0
- package/src/styles/utils/_border.scss +7 -0
- package/src/styles/utils/_cursor.scss +15 -0
- package/src/styles/utils/_display.scss +3 -0
- package/src/styles/utils/_fade-in.scss +8 -0
- package/src/styles/utils/_position.scss +38 -0
- package/src/styles/utils/_size.scss +79 -0
- package/src/styles/utils/_slide-in.scss +26 -0
- package/src/styles/utils/_spacing.scss +11 -0
- package/src/styles/utils/_text.scss +30 -0
- package/src/styles/utils/_transform.scss +11 -0
- package/src/styles/utils/_transition.scss +11 -0
- package/src/styles/utils/_z-index.scss +15 -0
- package/src/styles/variables.scss +70 -0
- package/src/styles/vcsFont.scss +5 -0
- package/src/styles/vcsGrid.scss +4 -0
- package/src/vcsUiApp.js +259 -0
- package/src/vuePlugins/i18n.js +69 -0
- package/src/vuePlugins/vuetify.js +54 -0
- package/start.js +3 -0
@@ -0,0 +1,15 @@
|
|
1
|
+
<template>
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
|
3
|
+
<g id="Rectangle_750" data-name="Rectangle 750" fill="none" stroke="#585858" stroke-width="2">
|
4
|
+
<rect width="8" height="8" rx="4" stroke="none" />
|
5
|
+
<rect
|
6
|
+
x="1"
|
7
|
+
y="1"
|
8
|
+
width="6"
|
9
|
+
height="6"
|
10
|
+
rx="3"
|
11
|
+
fill="none"
|
12
|
+
/>
|
13
|
+
</g>
|
14
|
+
</svg>
|
15
|
+
</template>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10">
|
5
|
+
<path id="Path_92" data-name="Path 92" d="M7,15.377a1,1,0,0,0,1.669.744l3.753-3.378a1,1,0,0,0,.075-1.412q-.036-.039-.075-.075L8.67,7.878A1,1,0,0,0,7,8.622ZM14,8v8a1,1,0,0,0,1,1h1a1,1,0,0,0,1-1V8a1,1,0,0,0-1-1H15A1,1,0,0,0,14,8Z" transform="translate(-7 -7)" fill="currentColor" />
|
6
|
+
</svg>
|
7
|
+
</template>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10">
|
5
|
+
<g id="streamline-icon-button-previous_24x24" data-name="streamline-icon-button-previous@24x24" transform="translate(-7 -7)">
|
6
|
+
<path id="Path_92" data-name="Path 92" d="M17,15.377a1,1,0,0,1-1.669.744l-3.753-3.378a1,1,0,0,1-.075-1.412q.036-.039.075-.075L15.33,7.878A1,1,0,0,1,17,8.622ZM10,8v8a1,1,0,0,1-1,1H8a1,1,0,0,1-1-1V8A1,1,0,0,1,8,7H9A1,1,0,0,1,10,8Z" fill="currentColor" />
|
7
|
+
</g>
|
8
|
+
</svg>
|
9
|
+
</template>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25.003" viewBox="0 0 25 25.003">
|
5
|
+
<g id="icon_24_splitview" transform="translate(0.5 0.5)">
|
6
|
+
<path
|
7
|
+
id="Union_46"
|
8
|
+
data-name="Union 46"
|
9
|
+
d="M10942,13196v-22a1,1,0,1,1,2,0v22a1,1,0,1,1-2,0Zm9.5-9.25v-.5a.5.5,0,0,0-.5-.5h-4v-2h4a.5.5,0,0,0,.5-.5v-.5a.75.75,0,0,1,1.281-.53l2,2a.747.747,0,0,1,0,1.06l-2,2a.757.757,0,0,1-.529.218A.748.748,0,0,1,10951.5,13186.75Zm-18.279.53-2-2a.75.75,0,0,1,0-1.063l2-2a.736.736,0,0,1,.526-.219.747.747,0,0,1,.752.749v.5a.5.5,0,0,0,.5.5h4v2h-4a.5.5,0,0,0-.5.5v.5a.763.763,0,0,1-.218.534.754.754,0,0,1-1.061,0Zm5.779-1.53Zm8-2Z"
|
10
|
+
transform="translate(-10931 -13172.998)"
|
11
|
+
fill="currentColor"
|
12
|
+
stroke="rgba(0,0,0,0)"
|
13
|
+
stroke-miterlimit="10"
|
14
|
+
stroke-width="1"
|
15
|
+
/>
|
16
|
+
<rect id="size" width="24" height="24" fill="none" />
|
17
|
+
</g>
|
18
|
+
</svg>
|
19
|
+
</template>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg
|
5
|
+
id="streamline-icon-text-style_24x24"
|
6
|
+
data-name="streamline-icon-text-style@24x24"
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
8
|
+
width="20.105"
|
9
|
+
height="24"
|
10
|
+
viewBox="0 0 20.105 24"
|
11
|
+
>
|
12
|
+
<path id="Path_4" data-name="Path 4" d="M20.093.359H4.512A2.268,2.268,0,0,0,2.25,2.622V4.57a1.289,1.289,0,1,0,2.578,0V3.194a.258.258,0,0,1,.258-.258h5.671a.258.258,0,0,1,.258.258V21.524a.258.258,0,0,1-.258.258H8.894a1.289,1.289,0,0,0,0,2.578h6.817a1.289,1.289,0,0,0,0-2.578H13.849a.258.258,0,0,1-.258-.258V3.194a.258.258,0,0,1,.258-.258H19.52a.258.258,0,0,1,.258.258V4.57a1.289,1.289,0,0,0,2.578,0V2.622A2.268,2.268,0,0,0,20.093.359Z" transform="translate(-2.25 -0.359)" fill="currentColor" />
|
13
|
+
</svg>
|
14
|
+
</template>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="16" viewBox="0 0 24 16">
|
5
|
+
<path id="Path_488" data-name="Path 488" d="M6.688-1.914q-1.633,0-3.112-.117T.912-2.361v-2.53H5.545a6.016,6.016,0,0,0,1.367-.128A1.38,1.38,0,0,0,7.7-5.465a1.4,1.4,0,0,0,.255-.893v-.659a1.4,1.4,0,0,0-.265-.9,1.568,1.568,0,0,0-.7-.489,3.314,3.314,0,0,0-1.01-.181L2.259-8.74v-2.424l3.592-.213a3.148,3.148,0,0,0,1.429-.34,1.084,1.084,0,0,0,.51-1.021v-.532a1.464,1.464,0,0,0-.541-1.255,3.086,3.086,0,0,0-1.806-.4h-4.2v-2.509q1.163-.191,2.531-.351a19.986,19.986,0,0,1,2.878-.117,5.416,5.416,0,0,1,2.245.457,3.056,3.056,0,0,1,1.4,1.3,4.343,4.343,0,0,1,.48,2.137v1.17a4.139,4.139,0,0,1-.133,1.084,2.432,2.432,0,0,1-.4.84,2.756,2.756,0,0,1-.612.6,2.777,2.777,0,0,1-.735.372,2.119,2.119,0,0,1,.806.4,3.242,3.242,0,0,1,.663.712,3.531,3.531,0,0,1,.459.989,4.322,4.322,0,0,1,.173,1.255v.808A3.6,3.6,0,0,1,9.851-2.9,4.678,4.678,0,0,1,6.688-1.914Zm6.571-.128V-17.778h6.388a5.225,5.225,0,0,1,2.551.564A4.166,4.166,0,0,1,23.82-15.6a7.532,7.532,0,0,1,.847,2.5,19.165,19.165,0,0,1,.245,3.19,14.119,14.119,0,0,1-.582,4.4,5.146,5.146,0,0,1-1.745,2.6,4.806,4.806,0,0,1-2.939.861Zm3.02-2.828h3.061a1.988,1.988,0,0,0,1.49-.564,3.471,3.471,0,0,0,.806-1.691,12.866,12.866,0,0,0,.255-2.786,15.951,15.951,0,0,0-.163-2.52,4.7,4.7,0,0,0-.48-1.542,1.742,1.742,0,0,0-.8-.766,2.722,2.722,0,0,0-1.112-.213H16.279Z" transform="translate(-0.912 17.914)" fill="currentColor" />
|
6
|
+
</svg>
|
7
|
+
</template>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
<template>
|
3
|
+
<svg>
|
4
|
+
<rect id="size" width="24" height="24" fill="none" />
|
5
|
+
<g id="Group_719" data-name="Group 719" transform="translate(-0.001)">
|
6
|
+
<rect
|
7
|
+
id="Rectangle_667"
|
8
|
+
data-name="Rectangle 667"
|
9
|
+
width="5"
|
10
|
+
height="1"
|
11
|
+
transform="translate(5.001 19)"
|
12
|
+
fill="currentColor"
|
13
|
+
/>
|
14
|
+
<rect
|
15
|
+
id="Rectangle_668"
|
16
|
+
data-name="Rectangle 668"
|
17
|
+
width="2"
|
18
|
+
height="10"
|
19
|
+
transform="translate(8 8)"
|
20
|
+
fill="currentColor"
|
21
|
+
/>
|
22
|
+
<path id="Path_366" data-name="Path 366" d="M7.957,3.3a.5.5,0,0,0-.913,0L5.176,7H9.825Z" fill="currentColor" />
|
23
|
+
<path id="Path_367" data-name="Path 367" d="M5,21.5a2.5,2.5,0,1,0,5,0V21H5v.5Z" fill="currentColor" />
|
24
|
+
<rect
|
25
|
+
id="Rectangle_669"
|
26
|
+
data-name="Rectangle 669"
|
27
|
+
width="2"
|
28
|
+
height="10"
|
29
|
+
transform="translate(5.001 8)"
|
30
|
+
fill="currentColor"
|
31
|
+
/>
|
32
|
+
<path id="Path_368" data-name="Path 368" d="M18.5,0h-6a.5.5,0,0,0-.5.5V3h2.5a.5.5,0,0,1,0,1H12V7h2.5a.5.5,0,0,1,0,1H12v3h2.5a.5.5,0,0,1,0,1H12v3h2.5a.5.5,0,0,1,0,1H12v3h2.5a.5.5,0,0,1,0,1H12v3.5a.5.5,0,0,0,.5.5h6a.5.5,0,0,0,.5-.5V.5A.5.5,0,0,0,18.5,0Z" fill="currentColor" />
|
33
|
+
</g>
|
34
|
+
</svg>
|
35
|
+
</template>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg id="icon-touch" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
5
|
+
<rect id="size" width="16" height="16" fill="none" />
|
6
|
+
<path id="touch-app" d="M16.668-42.679a1.077,1.077,0,0,1,.679,1.036v.143l-.571,4.036a.976.976,0,0,1-.357.7,1.136,1.136,0,0,1-.75.268H10.489a1.069,1.069,0,0,1-.786-.321L5.918-40.607l.607-.607a.827.827,0,0,1,.607-.25.294.294,0,0,1,.089.018.294.294,0,0,0,.089.018l2.607.536v-8.179a1.082,1.082,0,0,1,.339-.821,1.129,1.129,0,0,1,.8-.321,1.129,1.129,0,0,1,.8.321,1.082,1.082,0,0,1,.339.821V-44.5h.607a1.969,1.969,0,0,1,.393.071Zm-7.5-3.536a3.211,3.211,0,0,1-1.536-2.857,3.306,3.306,0,0,1,1-2.429,3.306,3.306,0,0,1,2.429-1,3.306,3.306,0,0,1,2.429,1,3.306,3.306,0,0,1,1,2.429,3.178,3.178,0,0,1-1.5,2.857v-2.857a1.8,1.8,0,0,0-.571-1.339,1.884,1.884,0,0,0-1.357-.554,1.824,1.824,0,0,0-1.339.554,1.824,1.824,0,0,0-.554,1.339Z" transform="translate(-3.633 52.5)" fill="currentColor" />
|
7
|
+
</svg>
|
8
|
+
</template>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="14" viewBox="0 0 12 14">
|
5
|
+
<path id="delete" d="M14.525,4.27A.5.5,0,0,1,15,4.784V5.05a.5.5,0,0,1-.475.514H3.476A.5.5,0,0,1,3,5.05V4.784a.5.5,0,0,1,.476-.514H5.42a.866.866,0,0,0,.827-.71l.1-.477A1.341,1.341,0,0,1,7.624,2h2.753a1.338,1.338,0,0,1,1.268,1.048l.109.511a.865.865,0,0,0,.827.711Zm-.988,9.724c.2-1.986.558-6.7.558-6.751a.539.539,0,0,0-.121-.391.474.474,0,0,0-.349-.164H4.379a.461.461,0,0,0-.349.164.571.571,0,0,0-.127.391c0,.009.014.175.035.453.095,1.234.358,4.672.529,6.3a1.989,1.989,0,0,0,1.954,1.979c.837.02,1.7.027,2.581.027.831,0,1.674-.007,2.537-.027A1.988,1.988,0,0,0,13.537,13.994Z" transform="translate(-3 -2)" fill="currentColor" fill-rule="evenodd" />
|
6
|
+
</svg>
|
7
|
+
</template>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
|
2
|
+
<!-- eslint-disable max-len -->
|
3
|
+
|
4
|
+
<template>
|
5
|
+
<svg
|
6
|
+
id="streamline-icon-vectors-anchor-triangle_24x24"
|
7
|
+
data-name="streamline-icon-vectors-anchor-triangle@24x24"
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
9
|
+
width="24"
|
10
|
+
height="24"
|
11
|
+
viewBox="0 0 24 24"
|
12
|
+
>
|
13
|
+
<path id="Path_22" data-name="Path 22" d="M12,0A3,3,0,1,1,9,3,3,3,0,0,1,12,0ZM3,18a3,3,0,1,1-3,3A3,3,0,0,1,3,18Zm18,0a3,3,0,1,1-3,3A3,3,0,0,1,21,18ZM4.218,15.829,8.494,7.276a.251.251,0,0,1,.336-.111l1.342.671a.25.25,0,0,1,.112.335L6.008,16.724a.25.25,0,0,1-.335.112L4.33,16.164A.249.249,0,0,1,4.218,15.829Zm9.611-7.993,1.342-.671a.249.249,0,0,1,.335.112l4.276,8.553a.249.249,0,0,1-.112.335l-1.342.671a.249.249,0,0,1-.335-.112L13.717,8.171A.251.251,0,0,1,13.829,7.836ZM7.75,20h8.5a.25.25,0,0,1,.25.25v1.5a.25.25,0,0,1-.25.25H7.75a.25.25,0,0,1-.25-.25v-1.5A.25.25,0,0,1,7.75,20Z" fill="currentColor" />
|
14
|
+
</svg>
|
15
|
+
</template>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg id="icon_24_2d" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
5
|
+
<rect id="size" width="24" height="24" fill="none" />
|
6
|
+
<path id="Path_489" data-name="Path 489" d="M1.1-1.9V-4.456L6.295-9.711a10.338,10.338,0,0,0,1.03-1.158,4.419,4.419,0,0,0,.6-1.062,3.144,3.144,0,0,0,.2-1.126,2.11,2.11,0,0,0-.221-1,1.4,1.4,0,0,0-.715-.633A3.481,3.481,0,0,0,5.833-14.9H1.461v-2.488q1.009-.193,2.238-.354A21.267,21.267,0,0,1,6.442-17.9a6.568,6.568,0,0,1,2.869.515,3.046,3.046,0,0,1,1.482,1.48,5.6,5.6,0,0,1,.441,2.338,6.333,6.333,0,0,1-.284,1.952,6.587,6.587,0,0,1-.83,1.684A10.5,10.5,0,0,1,8.733-8.317L5.244-4.778h6.473V-1.9Zm12,0V-17.775h6.578a5.474,5.474,0,0,1,2.627.568,4.247,4.247,0,0,1,1.671,1.63,7.492,7.492,0,0,1,.872,2.52A18.941,18.941,0,0,1,25.1-9.84a13.968,13.968,0,0,1-.6,4.44,5.188,5.188,0,0,1-1.8,2.627,5.023,5.023,0,0,1-3.026.869Zm3.11-2.853h3.152A2.071,2.071,0,0,0,20.9-5.325a3.472,3.472,0,0,0,.83-1.705,12.719,12.719,0,0,0,.263-2.81,15.763,15.763,0,0,0-.168-2.542,4.673,4.673,0,0,0-.494-1.555,1.778,1.778,0,0,0-.82-.772,2.854,2.854,0,0,0-1.145-.214H16.214Z" transform="translate(-1.104 21.904)" fill="currentColor" />
|
7
|
+
</svg>
|
8
|
+
</template>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg
|
5
|
+
id="streamline-icon-cloud-upload_24x24_1_"
|
6
|
+
data-name="streamline-icon-cloud-upload@24x24 (1)"
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
8
|
+
width="25.717"
|
9
|
+
height="24"
|
10
|
+
viewBox="0 0 25.717 24"
|
11
|
+
>
|
12
|
+
<path id="Path_121" data-name="Path 121" d="M25.713,11.1a6.236,6.236,0,0,0-1.9-4.464,6.117,6.117,0,0,0-3.693-1.7.267.267,0,0,1-.2-.129A8.232,8.232,0,0,0,4.811,7.266a.268.268,0,0,1-.243.214A4.918,4.918,0,0,0,0,12.381,4.632,4.632,0,0,0,1.324,15.82,5.912,5.912,0,0,0,5.187,17.3a1.071,1.071,0,1,0-.032-2.143A3.525,3.525,0,0,1,2.828,14.3a2.544,2.544,0,0,1-.685-1.919A2.775,2.775,0,0,1,5.487,9.664,1.071,1.071,0,0,0,6.752,8.83a1.043,1.043,0,0,0,.02-.151A6.092,6.092,0,0,1,18.365,6.442a1.031,1.031,0,0,0,1.008.611,3.965,3.965,0,0,1,2.955,1.126A4.02,4.02,0,0,1,23.571,11.1a4.109,4.109,0,0,1-3.683,4.057,1.071,1.071,0,0,0,.141,2.134,1.018,1.018,0,0,0,.14-.01A6.221,6.221,0,0,0,25.713,11.1Zm-12.1-1.526a1.072,1.072,0,0,0-1.515,0l-3.75,3.75a1.071,1.071,0,0,0,.757,1.833h1.875a.266.266,0,0,1,.268.266v7.77a1.607,1.607,0,1,0,3.214,0V15.424a.266.266,0,0,1,.266-.268h1.877a1.071,1.071,0,0,0,.757-1.829Z" transform="translate(0.004 -0.799)" fill="currentColor" />
|
13
|
+
</svg>
|
14
|
+
</template>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg
|
5
|
+
id="streamline-icon-camera-studio_24x24"
|
6
|
+
data-name="streamline-icon-camera-studio@24x24"
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
8
|
+
width="24"
|
9
|
+
height="20.999"
|
10
|
+
viewBox="0 0 24 20.999"
|
11
|
+
>
|
12
|
+
<path id="Path_15" data-name="Path 15" d="M23.5,12.989a1.175,1.175,0,0,0-1.121-.066L19.653,14.06a.251.251,0,0,0-.154.231v5.416a.251.251,0,0,0,.154.231l2.73,1.137a1.154,1.154,0,0,0,1.122-.066A1.178,1.178,0,0,0,24,20V14A1.178,1.178,0,0,0,23.5,12.989ZM2.5,11.5h14A1.5,1.5,0,0,1,18,13v8a1.5,1.5,0,0,1-1.5,1.5H2.5A1.5,1.5,0,0,1,1,21V13A1.5,1.5,0,0,1,2.5,11.5Zm2-10A4.5,4.5,0,1,1,0,6,4.5,4.5,0,0,1,4.5,1.5Zm9,3a3,3,0,1,1-3,3A3,3,0,0,1,13.5,4.5Z" transform="translate(0 -1.5)" fill="currentColor" />
|
13
|
+
</svg>
|
14
|
+
</template>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="10.666" height="15.999" viewBox="0 0 10.666 15.999">
|
5
|
+
<path id="Path_7" data-name="Path 7" d="M9.731.784A1.828,1.828,0,0,1,11.6,2.567a1.872,1.872,0,0,1-3.74,0A1.828,1.828,0,0,1,9.731.784ZM11.37,8.2a6.486,6.486,0,0,0,1.809.9l.88.28a1.176,1.176,0,0,0,.355.055,1.066,1.066,0,0,0,.3-2.1l-.827-.262a4.2,4.2,0,0,1-1.17-.585l-.76-.543A4.438,4.438,0,0,0,7.5,5.558,4.494,4.494,0,0,0,4.869,9.531,1.088,1.088,0,0,0,5.9,10.679c.029,0,.058,0,.088,0A1.1,1.1,0,0,0,7.113,9.665a2.409,2.409,0,0,1,1.213-2.1.193.193,0,0,1,.257.06.164.164,0,0,1,.027.093v.968a13.235,13.235,0,0,1-.346,3.008,8.9,8.9,0,0,1-1.655,3.352,1.037,1.037,0,0,0,.176,1.5,1.16,1.16,0,0,0,1.578-.168,12.131,12.131,0,0,0,1.915-3.786.192.192,0,0,1,.324-.058,11.634,11.634,0,0,1,1.807,3.514,1.118,1.118,0,0,0,1.065.732,1.15,1.15,0,0,0,.355-.056,1.06,1.06,0,0,0,.711-1.353v0a12.176,12.176,0,0,0-3.417-5.362.7.7,0,0,1-.266-.538V8.186a.183.183,0,0,1,.187-.178.2.2,0,0,1,.112.036Z" transform="translate(-4.866 -0.784)" fill="currentColor" />
|
6
|
+
</svg>
|
7
|
+
</template>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
<template>
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20.158" height="22" viewBox="0 0 20.158 22">
|
4
|
+
<defs>
|
5
|
+
<clipPath id="clip-path">
|
6
|
+
<rect id="Rectangle_843" data-name="Rectangle 843" width="20.158" height="22" fill="currentColor" />
|
7
|
+
</clipPath>
|
8
|
+
</defs>
|
9
|
+
<g id="Group_1440" data-name="Group 1440" clip-path="url(#clip-path)">
|
10
|
+
<path id="Path_530" data-name="Path 530" d="M16.158,20h-3V2h3V7h2V1a1,1,0,0,0-1-1H12.593a1,1,0,0,0-.2.02L.805,2.33A1,1,0,0,0,0,3.311V15.864a1,1,0,0,0,.59.913L12,21.912a1,1,0,0,0,.41.088h4.745a1,1,0,0,0,1-1V15h-2ZM2,4.131l9.158-1.825V19.339L2,15.218Z" fill="currentColor" />
|
11
|
+
<path id="Path_531" data-name="Path 531" d="M17.158,8a3,3,0,1,0,3,3,3,3,0,0,0-3-3" fill="currentColor" />
|
12
|
+
</g>
|
13
|
+
</svg>
|
14
|
+
</template>
|
package/src/init.js
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
import Vue from 'vue';
|
2
|
+
import { check, checkMaybe } from '@vcsuite/check';
|
3
|
+
import { Context } from '@vcmap/core';
|
4
|
+
import VcsAppComponentWrapper from './application/vcsAppWrapper.vue';
|
5
|
+
import { vuetify } from './vuePlugins/vuetify.js';
|
6
|
+
import { createVueI18n, setupI18n } from './vuePlugins/i18n.js';
|
7
|
+
import VcsUiApp from './vcsUiApp.js';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* creates and mounts a vcsApp
|
11
|
+
* @param {string} mountTarget
|
12
|
+
* @param {string=} configUrl optional config
|
13
|
+
* @returns {Promise<VcsUiApp>}
|
14
|
+
*/
|
15
|
+
export default async function initApp(mountTarget, configUrl) {
|
16
|
+
check(mountTarget, String);
|
17
|
+
checkMaybe(configUrl, String);
|
18
|
+
const app = new VcsUiApp();
|
19
|
+
const i18n = createVueI18n();
|
20
|
+
new Vue({
|
21
|
+
vuetify,
|
22
|
+
i18n,
|
23
|
+
render: h => h(VcsAppComponentWrapper, {
|
24
|
+
props: {
|
25
|
+
appId: app.id,
|
26
|
+
},
|
27
|
+
}),
|
28
|
+
}).$mount(mountTarget);
|
29
|
+
|
30
|
+
setupI18n(app, i18n);
|
31
|
+
if (configUrl) {
|
32
|
+
const config = await fetch(configUrl)
|
33
|
+
.then(response => response.json());
|
34
|
+
const context = new Context(config);
|
35
|
+
await app.addContext(context);
|
36
|
+
}
|
37
|
+
return app;
|
38
|
+
}
|
@@ -0,0 +1,156 @@
|
|
1
|
+
/* eslint-disable import/prefer-default-export */
|
2
|
+
import { reactive } from '@vue/composition-api';
|
3
|
+
import { VcsEvent } from '@vcmap/core';
|
4
|
+
import { v4 as uuidv4 } from 'uuid';
|
5
|
+
import { check, checkMaybe } from '@vcsuite/check';
|
6
|
+
import { vcsAppSymbol } from '../pluginHelper.js';
|
7
|
+
|
8
|
+
/**
|
9
|
+
* @typedef ButtonComponentOptions
|
10
|
+
* @property {string} [id] Optional ID, If not provided an uuid will be generated.
|
11
|
+
* @property {VcsAction} action Action performed by button.
|
12
|
+
*/
|
13
|
+
|
14
|
+
/**
|
15
|
+
* @typedef ButtonComponent
|
16
|
+
* @property {string} id
|
17
|
+
* @property {string|vcsAppSymbol} owner
|
18
|
+
* @property {VcsAction} action
|
19
|
+
*/
|
20
|
+
|
21
|
+
/**
|
22
|
+
* @class ButtonManager
|
23
|
+
* @description Manages a set of Map Buttons
|
24
|
+
* @implements VcsComponentManager<ButtonComponent,ButtonComponentOptions>
|
25
|
+
*/
|
26
|
+
export class ButtonManager {
|
27
|
+
constructor() {
|
28
|
+
/**
|
29
|
+
* @type {import("@vcmap/core").VcsEvent<ButtonComponent>}
|
30
|
+
*/
|
31
|
+
this.added = new VcsEvent();
|
32
|
+
/**
|
33
|
+
* @type {import("@vcmap/core").VcsEvent<ButtonComponent>}
|
34
|
+
*/
|
35
|
+
this.removed = new VcsEvent();
|
36
|
+
/**
|
37
|
+
* reactive ordered array of ids,
|
38
|
+
* @type {Array<string>}
|
39
|
+
*/
|
40
|
+
this.componentIds = reactive([]);
|
41
|
+
|
42
|
+
/**
|
43
|
+
* @type {Map<string, ButtonComponent>}
|
44
|
+
* @private
|
45
|
+
*/
|
46
|
+
this._buttonComponents = new Map();
|
47
|
+
}
|
48
|
+
|
49
|
+
|
50
|
+
/**
|
51
|
+
* @param {string} id
|
52
|
+
* @returns {ButtonComponent}
|
53
|
+
*/
|
54
|
+
get(id) {
|
55
|
+
return this._buttonComponents.get(id);
|
56
|
+
}
|
57
|
+
|
58
|
+
/**
|
59
|
+
* @param {string} id
|
60
|
+
* @returns {boolean}
|
61
|
+
*/
|
62
|
+
has(id) {
|
63
|
+
return this._buttonComponents.has(id);
|
64
|
+
}
|
65
|
+
|
66
|
+
/**
|
67
|
+
* removes a button, Component will not be rendered anymore and will be destroyed. Add ButtonComponent again
|
68
|
+
* to show the component again
|
69
|
+
* @param {string} id
|
70
|
+
*/
|
71
|
+
remove(id) {
|
72
|
+
check(id, String);
|
73
|
+
const buttonComponent = this._buttonComponents.get(id);
|
74
|
+
if (buttonComponent) {
|
75
|
+
const index = this.componentIds.indexOf(id);
|
76
|
+
this.componentIds.splice(index, 1);
|
77
|
+
this._buttonComponents.delete(id);
|
78
|
+
this.removed.raiseEvent(buttonComponent);
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
/**
|
83
|
+
* adds a buttonComponent
|
84
|
+
* @param {ButtonComponentOptions} buttonComponentOptions
|
85
|
+
* @param {string|symbol} owner pluginName or vcsAppSymbol
|
86
|
+
* @throws {Error} if a buttonComponent with the same ID has already been added
|
87
|
+
* @returns {ButtonComponent}
|
88
|
+
*/
|
89
|
+
add(buttonComponentOptions, owner) {
|
90
|
+
checkMaybe(buttonComponentOptions.id, String);
|
91
|
+
check(buttonComponentOptions.action, {
|
92
|
+
name: String,
|
93
|
+
title: [undefined, String],
|
94
|
+
icon: [undefined, String],
|
95
|
+
callback: Function,
|
96
|
+
active: [undefined, Boolean],
|
97
|
+
});
|
98
|
+
check(owner, [String, vcsAppSymbol]);
|
99
|
+
|
100
|
+
if (buttonComponentOptions.id && this.has(buttonComponentOptions.id)) {
|
101
|
+
throw new Error(`A button with id ${buttonComponentOptions.id} has already been registered.`);
|
102
|
+
}
|
103
|
+
const id = buttonComponentOptions.id || uuidv4();
|
104
|
+
|
105
|
+
/**
|
106
|
+
* @type {ButtonComponent}
|
107
|
+
*/
|
108
|
+
const buttonComponent = {
|
109
|
+
get id() {
|
110
|
+
return id;
|
111
|
+
},
|
112
|
+
get owner() {
|
113
|
+
return owner;
|
114
|
+
},
|
115
|
+
get action() {
|
116
|
+
return reactive(buttonComponentOptions.action);
|
117
|
+
},
|
118
|
+
};
|
119
|
+
|
120
|
+
this._buttonComponents.set(id, buttonComponent);
|
121
|
+
this.componentIds.push(id);
|
122
|
+
this.added.raiseEvent(buttonComponent);
|
123
|
+
return buttonComponent;
|
124
|
+
}
|
125
|
+
|
126
|
+
/**
|
127
|
+
* removes all buttonComponents of a specific owner and fires removed Events
|
128
|
+
* @param {string|vcsAppSymbol} owner
|
129
|
+
*/
|
130
|
+
removeOwner(owner) {
|
131
|
+
const componentIds = [...this.componentIds];
|
132
|
+
componentIds.forEach((id) => {
|
133
|
+
if (owner === this.get(id).owner) {
|
134
|
+
this.remove(id);
|
135
|
+
}
|
136
|
+
});
|
137
|
+
}
|
138
|
+
|
139
|
+
/**
|
140
|
+
* removes all buttonComponents and fires removed Events
|
141
|
+
*/
|
142
|
+
clear() {
|
143
|
+
const componentIds = [...this.componentIds];
|
144
|
+
componentIds.forEach((id) => { this.remove(id); });
|
145
|
+
}
|
146
|
+
|
147
|
+
/**
|
148
|
+
* destroys the ButtonManager;
|
149
|
+
*/
|
150
|
+
destroy() {
|
151
|
+
this.added.destroy();
|
152
|
+
this.removed.destroy();
|
153
|
+
this.componentIds.splice(0);
|
154
|
+
this._buttonComponents.clear();
|
155
|
+
}
|
156
|
+
}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import { check } from '@vcsuite/check';
|
2
|
+
import { ButtonManager } from './buttonManager.js';
|
3
|
+
import { vcsAppSymbol } from '../pluginHelper.js';
|
4
|
+
|
5
|
+
export const locationSymbol = Symbol('location');
|
6
|
+
|
7
|
+
/**
|
8
|
+
* sorts by owner and optionally plugin order
|
9
|
+
* @param {ButtonComponent} a
|
10
|
+
* @param {ButtonComponent} b
|
11
|
+
* @param {string[]} [order] order of owners to sort by
|
12
|
+
* @returns {number}
|
13
|
+
*/
|
14
|
+
function sortByOwner(a, b, order = []) {
|
15
|
+
const sorted = [vcsAppSymbol, ...order];
|
16
|
+
const indexA = sorted.indexOf(a.owner);
|
17
|
+
const indexB = sorted.indexOf(b.owner);
|
18
|
+
|
19
|
+
if (indexA === indexB) {
|
20
|
+
return 0;
|
21
|
+
}
|
22
|
+
|
23
|
+
if (indexA === -1) {
|
24
|
+
return 1;
|
25
|
+
}
|
26
|
+
|
27
|
+
if (indexB === -1) {
|
28
|
+
return -1;
|
29
|
+
}
|
30
|
+
return indexA - indexB;
|
31
|
+
}
|
32
|
+
|
33
|
+
/**
|
34
|
+
* filters actions by button location and returns actions (optionally sorted)
|
35
|
+
* @param {Array<ButtonComponent>} buttonComponents
|
36
|
+
* @param {ButtonLocation} location Button render position
|
37
|
+
* @param {string[]} [order] optional order to sort by (plugin names)
|
38
|
+
* @param {function(a: ButtonComponent, b: ButtonComponent, order: string[]):number} [compareFn=sortByOwner] Per default components are sorted by owner: app first, then plugins
|
39
|
+
* @returns {Array<VcsAction>}
|
40
|
+
*/
|
41
|
+
export function getActionsByLocation(buttonComponents, location, order = [], compareFn = sortByOwner) {
|
42
|
+
return [...buttonComponents]
|
43
|
+
.filter(b => b[locationSymbol] === location)
|
44
|
+
.sort((a, b) => compareFn(a, b, order))
|
45
|
+
.map(b => b.action);
|
46
|
+
}
|
47
|
+
|
48
|
+
/**
|
49
|
+
* Possible render positions of buttons in navbar from left to right
|
50
|
+
* @enum
|
51
|
+
*/
|
52
|
+
export const ButtonLocation = {
|
53
|
+
MAP: 0,
|
54
|
+
CONTENT: 1,
|
55
|
+
TOOL: 2,
|
56
|
+
PROJECT: 3,
|
57
|
+
SHARE: 4,
|
58
|
+
MENU: 5,
|
59
|
+
};
|
60
|
+
|
61
|
+
/**
|
62
|
+
* @class NavbarManager
|
63
|
+
* @description Manages a set of Map Buttons in the Navbar
|
64
|
+
* @implements VcsComponentManager<ButtonComponent,ButtonComponentOptions>
|
65
|
+
*/
|
66
|
+
export class NavbarManager extends ButtonManager {
|
67
|
+
/**
|
68
|
+
* adds a buttonComponent
|
69
|
+
* @param {ButtonComponentOptions} buttonComponentOptions
|
70
|
+
* @param {string|symbol} owner pluginName or vcsAppSymbol
|
71
|
+
* @param {ButtonLocation} location Button render position
|
72
|
+
* @throws {Error} if a buttonComponent with the same ID has already been added
|
73
|
+
* @returns {ButtonComponent}
|
74
|
+
*/
|
75
|
+
add(buttonComponentOptions, owner, location) {
|
76
|
+
check(location, Object.values(ButtonLocation));
|
77
|
+
const buttonComponent = super.add(buttonComponentOptions, owner);
|
78
|
+
buttonComponent[locationSymbol] = location;
|
79
|
+
return buttonComponent;
|
80
|
+
}
|
81
|
+
}
|
@@ -0,0 +1,128 @@
|
|
1
|
+
<template>
|
2
|
+
<div v-if="actions.length > 0">
|
3
|
+
<VcsButton
|
4
|
+
v-if="singleActionButton"
|
5
|
+
:key="singleActionButton.name"
|
6
|
+
:tooltip="singleActionButton.title"
|
7
|
+
:icon="singleActionButton.icon"
|
8
|
+
:active="singleActionButton.active"
|
9
|
+
@click.stop="singleActionButton.callback($event)"
|
10
|
+
v-bind="{...$attrs}"
|
11
|
+
/>
|
12
|
+
<VcsButton
|
13
|
+
v-else-if="groupButtons.length > 0"
|
14
|
+
v-bind="{...$attrs}"
|
15
|
+
width="48"
|
16
|
+
:icon="groupIcon"
|
17
|
+
:tooltip="groupTitle"
|
18
|
+
:active="active"
|
19
|
+
@click="$emit('click')"
|
20
|
+
>
|
21
|
+
<v-icon v-text="active ? 'mdi-chevron-up' : 'mdi-chevron-down'" color="accent" class="text--darken-3" />
|
22
|
+
</VcsButton>
|
23
|
+
<v-toolbar
|
24
|
+
v-if="active"
|
25
|
+
dense
|
26
|
+
absolute
|
27
|
+
:width="width"
|
28
|
+
class="toolbar__secondary rounded-b mx-auto v-sheet mt-12 px-4"
|
29
|
+
:style="{left: `${nudgeLeft}px` }"
|
30
|
+
>
|
31
|
+
<v-toolbar-items class="w-full">
|
32
|
+
<div class="d-flex align-center justify-space-between w-full action-btn-wrap">
|
33
|
+
<VcsButton
|
34
|
+
v-for="(button, index) in groupButtons"
|
35
|
+
:key="`${button.name}-${index}`"
|
36
|
+
:tooltip="button.title"
|
37
|
+
:icon="button.icon"
|
38
|
+
:active="button.active"
|
39
|
+
@click.stop="button.callback($event)"
|
40
|
+
small
|
41
|
+
:width="buttonSize"
|
42
|
+
v-bind="{...$attrs}"
|
43
|
+
/>
|
44
|
+
</div>
|
45
|
+
</v-toolbar-items>
|
46
|
+
</v-toolbar>
|
47
|
+
</div>
|
48
|
+
</template>
|
49
|
+
<style lang="scss" scoped>
|
50
|
+
.action-btn-wrap{
|
51
|
+
gap: 8px;
|
52
|
+
}
|
53
|
+
.v-toolbar.v-sheet {
|
54
|
+
background-color: #ffffffda;
|
55
|
+
}
|
56
|
+
</style>
|
57
|
+
<script>
|
58
|
+
|
59
|
+
import VcsButton from '../../components/buttons/VcsButton.vue';
|
60
|
+
import { validateActions } from '../../components/lists/VcsActionList.vue';
|
61
|
+
|
62
|
+
/**
|
63
|
+
* @description
|
64
|
+
* A component rendering a single action or a group of actions in a dropdown toolbox using {@link VcsButton} and {@link ToolboxButton}.
|
65
|
+
* @vue-prop {Array<VcsAction>} actions - Array of actions
|
66
|
+
* @vue-prop {string} [groupIcon=''] - optional icon for group dropdown button
|
67
|
+
* @vue-prop {string} [groupTitle=''] - optional title for group dropdown button
|
68
|
+
* @vue-prop {boolean} active - boolean flag, whether group is active
|
69
|
+
* @vue-prop {boolean} position - relative x-position of the button within the toolbar
|
70
|
+
* @vue-computed {Array<VcsAction>} singleActionButton - single button without dropdown
|
71
|
+
* @vue-computed {Array<VcsAction>} groupButtons - buttons rendered below group dropdown button
|
72
|
+
* @vue-computed {number} nudgeLeft - offset depending on buttonSize and buttonPadding to render toolbox centered below dropdown button
|
73
|
+
*/
|
74
|
+
export default {
|
75
|
+
name: 'ToolboxGroupComponent',
|
76
|
+
components: { VcsButton },
|
77
|
+
props: {
|
78
|
+
actions: {
|
79
|
+
type: Array,
|
80
|
+
required: true,
|
81
|
+
validator: validateActions,
|
82
|
+
},
|
83
|
+
groupIcon: {
|
84
|
+
type: String,
|
85
|
+
required: true,
|
86
|
+
},
|
87
|
+
groupTitle: {
|
88
|
+
type: String,
|
89
|
+
default: '',
|
90
|
+
},
|
91
|
+
active: {
|
92
|
+
type: Boolean,
|
93
|
+
required: true,
|
94
|
+
},
|
95
|
+
position: {
|
96
|
+
type: Number,
|
97
|
+
required: true,
|
98
|
+
},
|
99
|
+
},
|
100
|
+
data() {
|
101
|
+
return {
|
102
|
+
buttonSize: 34,
|
103
|
+
buttonPadding: 8,
|
104
|
+
};
|
105
|
+
},
|
106
|
+
computed: {
|
107
|
+
singleActionButton() {
|
108
|
+
if (this.actions.length === 1) {
|
109
|
+
return this.actions[0];
|
110
|
+
}
|
111
|
+
return undefined;
|
112
|
+
},
|
113
|
+
groupButtons() {
|
114
|
+
if (this.singleActionButton) {
|
115
|
+
return [];
|
116
|
+
}
|
117
|
+
return this.actions;
|
118
|
+
},
|
119
|
+
width() {
|
120
|
+
// XXX can this be solved by CSS to get rid of hardcoded size and padding?
|
121
|
+
return this.groupButtons.length * (this.buttonSize + 2 * this.buttonPadding);
|
122
|
+
},
|
123
|
+
nudgeLeft() {
|
124
|
+
return this.position - this.width / 2;
|
125
|
+
},
|
126
|
+
},
|
127
|
+
};
|
128
|
+
</script>
|