@vcmap/ui 5.0.0-rc.6
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 +132 -0
- package/build/.eslintrc +6 -0
- package/build/build.js +165 -0
- package/build/buildCesium.js +19 -0
- package/build/buildHelpers.js +213 -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 +378 -0
- package/config/base.config.json +1073 -0
- package/config/berlin.config.json +529 -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-27507afe.js +1 -0
- package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-7565c1e8.js +1 -0
- package/dist/assets/cesium/Workers/BoundingRectangle-9d707275.js +1 -0
- package/dist/assets/cesium/Workers/BoxGeometry-fb31d3b5.js +1 -0
- package/dist/assets/cesium/Workers/Color-56bb5728.js +1 -0
- package/dist/assets/cesium/Workers/ComponentDatatype-a15c9a19.js +1 -0
- package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-72143c19.js +1 -0
- package/dist/assets/cesium/Workers/CorridorGeometryLibrary-7bae1712.js +1 -0
- package/dist/assets/cesium/Workers/CylinderGeometry-331891fe.js +1 -0
- package/dist/assets/cesium/Workers/CylinderGeometryLibrary-76cda53e.js +1 -0
- package/dist/assets/cesium/Workers/EllipseGeometry-5e3f67b6.js +1 -0
- package/dist/assets/cesium/Workers/EllipseGeometryLibrary-dbc15162.js +1 -0
- package/dist/assets/cesium/Workers/EllipseOutlineGeometry-21191fce.js +1 -0
- package/dist/assets/cesium/Workers/EllipsoidGeodesic-cc3bace8.js +1 -0
- package/dist/assets/cesium/Workers/EllipsoidGeometry-8bfa24a9.js +1 -0
- package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-48d9c023.js +1 -0
- package/dist/assets/cesium/Workers/EllipsoidRhumbLine-125a8b72.js +1 -0
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-678e34e4.js +1 -0
- package/dist/assets/cesium/Workers/EncodedCartesian3-96fdc0ef.js +1 -0
- package/dist/assets/cesium/Workers/FrustumGeometry-9ab86004.js +1 -0
- package/dist/assets/cesium/Workers/GeometryAttribute-3915ea0b.js +1 -0
- package/dist/assets/cesium/Workers/GeometryAttributes-32b29525.js +1 -0
- package/dist/assets/cesium/Workers/GeometryInstance-13e4ff38.js +1 -0
- package/dist/assets/cesium/Workers/GeometryOffsetAttribute-8c5e10db.js +1 -0
- package/dist/assets/cesium/Workers/GeometryPipeline-e0eb4567.js +1 -0
- package/dist/assets/cesium/Workers/IndexDatatype-f1dcdf35.js +1 -0
- package/dist/assets/cesium/Workers/IntersectionTests-ac2459de.js +1 -0
- package/dist/assets/cesium/Workers/Matrix2-37e55508.js +1 -0
- package/dist/assets/cesium/Workers/OrientedBoundingBox-e9c07538.js +1 -0
- package/dist/assets/cesium/Workers/Plane-6ee42cab.js +1 -0
- package/dist/assets/cesium/Workers/PolygonGeometryLibrary-b408c688.js +1 -0
- package/dist/assets/cesium/Workers/PolygonPipeline-7b8e4643.js +1 -0
- package/dist/assets/cesium/Workers/PolylinePipeline-6757400c.js +1 -0
- package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-eb972210.js +1 -0
- package/dist/assets/cesium/Workers/PrimitivePipeline-f244975e.js +1 -0
- package/dist/assets/cesium/Workers/RectangleGeometryLibrary-1bd6152a.js +1 -0
- package/dist/assets/cesium/Workers/RuntimeError-8952249c.js +1 -0
- package/dist/assets/cesium/Workers/TerrainEncoding-5a21a97f.js +1 -0
- package/dist/assets/cesium/Workers/Transforms-eb5c1a84.js +39 -0
- package/dist/assets/cesium/Workers/VertexFormat-a0b706b0.js +1 -0
- package/dist/assets/cesium/Workers/WallGeometryLibrary-a6b6a368.js +1 -0
- package/dist/assets/cesium/Workers/WebGLConstants-508b9636.js +1 -0
- package/dist/assets/cesium/Workers/WebMercatorProjection-2839e524.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.fba8ca.js +9118 -0
- package/dist/assets/cesium.js +1 -0
- package/dist/assets/core.d5ed0f.js +4 -0
- package/dist/assets/core.js +1 -0
- package/dist/assets/index.60dea538.css +1 -0
- package/dist/assets/index.6a83278e.js +1 -0
- package/dist/assets/ol.abea3a.js +318 -0
- package/dist/assets/ol.js +1 -0
- package/dist/assets/ui.ad1ec9.css +1 -0
- package/dist/assets/ui.ad1ec9.js +39 -0
- package/dist/assets/ui.js +1 -0
- package/dist/assets/uicomponents.161461.css +1 -0
- package/dist/assets/uicomponents.161461.js +31 -0
- package/dist/assets/uicomponents.js +1 -0
- package/dist/assets/vue-composition-api.7051d7.js +14 -0
- package/dist/assets/vue-composition-api.js +2 -0
- package/dist/assets/vue.9fd7f6.js +9 -0
- package/dist/assets/vue.js +1 -0
- package/dist/assets/vuetify.33dafc.css +5 -0
- package/dist/assets/vuetify.33dafc.js +48 -0
- package/dist/assets/vuetify.js +2 -0
- package/dist/index.html +26 -0
- package/index.js +18 -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/uicomponents.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 +130 -0
- package/plugins/@vcmap/pluginExample/config.json +6 -0
- package/plugins/@vcmap/pluginExample/index.js +193 -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/index.js +254 -0
- package/plugins/@vcmap/project-selector/package.json +15 -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 +40 -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 +56 -0
- package/plugins/example/mySuperComponent.vue +127 -0
- package/plugins/package.json +5 -0
- package/plugins/test/editor.vue +63 -0
- package/plugins/test/index.js +93 -0
- package/plugins/test/myCustomHeader.vue +19 -0
- package/plugins/test/toolbox-data.js +49 -0
- package/plugins/test/vcsContent.vue +23 -0
- package/plugins/test/windowManagerExample.vue +144 -0
- package/src/actions/actionHelper.js +221 -0
- package/src/actions/stateRefAction.js +50 -0
- package/src/actions/styleSelector.vue +90 -0
- package/src/application/Navbar.vue +89 -0
- package/src/application/VcsApp.vue +147 -0
- package/src/application/VcsMap.vue +57 -0
- package/src/application/empty-cmp.vue +6 -0
- package/src/assets/logo.svg +26 -0
- package/src/contentTree/LayerTree.vue +40 -0
- package/src/contentTree/contentTreeCollection.js +311 -0
- package/src/contentTree/contentTreeItem.js +457 -0
- package/src/contentTree/groupContentTreeItem.js +67 -0
- package/src/contentTree/layerContentTreeItem.js +233 -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/init.js +36 -0
- package/src/lang/de.js +60 -0
- package/src/lang/en.js +53 -0
- package/src/manager/buttonManager.js +203 -0
- package/src/manager/toolbox/ToolboxManager.vue +114 -0
- package/src/manager/toolbox/ToolboxMultiSelectButton.vue +96 -0
- package/src/manager/toolbox/ToolboxSingleSelectButton.vue +98 -0
- package/src/manager/toolbox/toolbox-manager.js +203 -0
- package/src/manager/window/WindowComponent.vue +133 -0
- package/src/manager/window/WindowComponentHeader.vue +46 -0
- package/src/manager/window/WindowManager.vue +109 -0
- package/src/manager/window/windowManager.js +437 -0
- package/src/navigation/mapNavCompass.vue +161 -0
- package/src/navigation/mapNavigation.vue +176 -0
- package/src/navigation/obliqueRotation.vue +48 -0
- package/src/navigation/orientationToolsButton.vue +52 -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 +10 -0
- package/src/styles/_theming.scss +15 -0
- package/src/styles/_typography.scss +42 -0
- package/src/styles/main.scss +9 -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/vcsUiApp.js +223 -0
- package/src/vuePlugins/i18n.js +20 -0
- package/src/vuePlugins/vuetify.js +54 -0
- package/start.js +3 -0
package/LICENSE.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2022 virtualcitySYSTEMS
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
@@ -0,0 +1,132 @@
|
|
1
|
+
# VC Map
|
2
|
+
VC Map is an Open-Source JavaScript framework and API for building dynamic and interactive maps on the web. It can display
|
3
|
+
2D data, oblique imagery and massive 3D data including terrain data, vector data, mesh models, and point clouds making it
|
4
|
+
easy for users to explore and interact with the data in an integrated and high-performance map application. VC Map apps can
|
5
|
+
be rendered in all modern web browsers and on both desktop and mobile devices, bringing the map to where the user is.
|
6
|
+
VC Map is built upon open, proven, and reliable GIS and web technologies such as [OpenLayers](https://github.com/openlayers/openlayers)
|
7
|
+
and [Cesium](https://github.com/cesiumGS/cesium/) for the visualization of 2D and 3D geo-data. It can load and display data
|
8
|
+
from various sources and in different formats including open OGC standards and interfaces. Users can easily switch between
|
9
|
+
the 2D, oblique and 3D views and dynamically add map layers to the scene that are accessible in all views. The VC Map
|
10
|
+
framework offers ready-to-use map tools and widgets that can be flexibly combined in a VC Map app to meet the needs and demands of end-users and the target audience. Examples are navigation controls, map layers and legends, drawing and editing tools, split screens, camera flights, and GIS tools such as measurements, height profiles, view shed analysis, or real-time shadows.
|
11
|
+
VC Map provides a strong programming API for developers that makes it easy to build customized VC Map applications,
|
12
|
+
to integrate VC Maps into any web page and to extend its functionalities with own plugins. The VC Map framework and API
|
13
|
+
is structured into the following four main architectural layers:
|
14
|
+
|
15
|
+
#### [VC Map Core](https://github.com/virtualcitySYSTEMS/map-core)
|
16
|
+
The VC Map Core is a thin abstraction layer and wrapper around OpenLayers and Cesium. It provides a common data and feature
|
17
|
+
management API and automatically synchronizes data and user actions between the 2D, oblique and 3D views. Map functions and
|
18
|
+
tools can be developed against this Core API to make them available in 2D, 3D and the oblique view rather than having to
|
19
|
+
develop them redundantly and based on different technologies.
|
20
|
+
|
21
|
+
#### Configuration Management
|
22
|
+
The VC Map framework offers a flexible and fully customizable map configuration management. All contents of a VC Map application
|
23
|
+
such as available layers, views, tools, and plugins are managed in a JSON-based configuration file that is loaded when starting
|
24
|
+
the application. Every VC Map application can thus be easily configured according to the end-user needs. Map configurations can
|
25
|
+
be dynamically changed, extended, and serialized at runtime through a corresponding API.
|
26
|
+
|
27
|
+
#### Modern User Interface
|
28
|
+
VC Map comes with a modern UI interface for VC Map applications that provides UI components for all map tools and widgets
|
29
|
+
implemented based on Vue.js and HTML5. In addition, the VC Map framework provides pre-built, low-level UI elements that can
|
30
|
+
be used by developers to easily build more complex user dialogs from and include them in a map application.
|
31
|
+
|
32
|
+
#### [Plugin API](https://github.com/virtualcitySYSTEMS/map-plugin-cli)
|
33
|
+
VC Map is easy to customize and extend through a well-defined Plugin API. Plugins allow for adding new functionalities,
|
34
|
+
tools, and user dialogs to a VC Map application. Plugins can be added to a VC Map through the configuration file or loaded
|
35
|
+
dynamically to an existing map application using the Plugin API. Plugin developers can use the entire VC Map stack
|
36
|
+
(VC Map Core, configuration management, UI components) for building their own extensions.
|
37
|
+
|
38
|
+
# Components
|
39
|
+
### [@vcmap/core](https://github.com/virtualcitySYSTEMS/map-core)
|
40
|
+
Provides an abstraction layer around 2D, 3D and oblique Maps. Provides the following components:
|
41
|
+
- map abstraction for Cesium, Openlayers and Oblique Images
|
42
|
+
- layers
|
43
|
+
- interactions
|
44
|
+
- styles
|
45
|
+
- application and context/config handling
|
46
|
+
|
47
|
+
### [@vcsuite/ui-components](https://github.com/virtualcitySYSTEMS/suite-ui-components)
|
48
|
+
Collection of reusable dumb ui components. For example textfield, checkbox, lists, icons. The components are build on top of [vuetify](https://github.com/vuetifyjs/vuetify)
|
49
|
+
|
50
|
+
### [@vcmap/ui](https://github.com/virtualcitySYSTEMS/map-ui)
|
51
|
+
This Project, provides
|
52
|
+
- a configurable and extendable ui
|
53
|
+
- extends the @vcmap/core application handling with a plugin Concept, see [@vcmap/plugin-cli](https://github.com/virtualcitySYSTEMS/map-plugin-cli)
|
54
|
+
- extends the @vcmap/core application with a windowManager
|
55
|
+
|
56
|
+
### [@vcmap/plugin-cli](https://github.com/virtualcitySYSTEMS/map-plugin-cli)
|
57
|
+
Provides a tool to create, develop and build Plugins for the @vcmap/ui.
|
58
|
+
Plugin Concept documentation can also be found there.
|
59
|
+
|
60
|
+
### [@vcmap/ui webpack5 integration template](https://github.com/virtualcitySYSTEMS/map-ui-webpack5-example)
|
61
|
+
Example Template to show how to integrate the @vcmap/ui in a webpack5 project.
|
62
|
+
|
63
|
+
### [@vcmap/core demo](https://github.com/virtualcitySYSTEMS/map-core-demo)
|
64
|
+
Example demo Application based on the @vcmap/core, shows how to implement a different UI on top of the @vcmap/core
|
65
|
+
|
66
|
+
# Project and Component Status
|
67
|
+
The Project is currently in Alpha status. Different components have different states. For development check here
|
68
|
+
how safe it is to start developing with these components.
|
69
|
+
|
70
|
+
#### States:
|
71
|
+
- TODO: not yet usable
|
72
|
+
- ALPHA: 1. version, style and API will probably change
|
73
|
+
- BETA: Style and API may change, we will provide a changelog from here on.
|
74
|
+
- RC: Styles and API are most likely stable for the release / Featurecomplete.
|
75
|
+
- STABLE: conforms to SemVer concept.
|
76
|
+
|
77
|
+
### @vcsuite/ui-components
|
78
|
+
- VcsTextField BETA
|
79
|
+
- VcsCheckbox BETA
|
80
|
+
- VcsSelect BETA
|
81
|
+
- VcsButton ALPHA
|
82
|
+
- VcsFormattedNumber BETA
|
83
|
+
- VcsLabel BETA
|
84
|
+
- VcsTooltip ALPHA
|
85
|
+
- VcsActionButtonList ALPHA
|
86
|
+
- VcsActionList ALPHA
|
87
|
+
- VcsFormSection ALPHA
|
88
|
+
- VcsTreeView ALPHA
|
89
|
+
- VcsTreeViewItem ALPHA
|
90
|
+
- VcsList TODO
|
91
|
+
- VcsListItem TODO
|
92
|
+
- VcsBadge ALPHA
|
93
|
+
- VcsColorPicker TODO
|
94
|
+
- VcsDatePicker TODO
|
95
|
+
|
96
|
+
### @vcmap/core
|
97
|
+
- Context Concept RC
|
98
|
+
- Categories Concept BETA
|
99
|
+
- Layers/Maps RC
|
100
|
+
- Styles: BETA
|
101
|
+
- Interactions: BETA
|
102
|
+
- oblique RC
|
103
|
+
- FeatureProvider BETA
|
104
|
+
- ClassRegistry BETA
|
105
|
+
- Editor TODO
|
106
|
+
|
107
|
+
### @vcmap/ui
|
108
|
+
- contentTree API BETA
|
109
|
+
- windowManager API BETA
|
110
|
+
- Navbar/ButtonManager/ToolboxManager ALPHA
|
111
|
+
- OrientationTools BETA
|
112
|
+
- ActionConcept BETA
|
113
|
+
- PluginConcept RC
|
114
|
+
- SEARCH API TODO
|
115
|
+
|
116
|
+
|
117
|
+
# Getting started
|
118
|
+
For a first start, clone the repo and call `npm i` `npm run start` This will start a development server. The
|
119
|
+
app can be opened with http://localhost:8080.
|
120
|
+
|
121
|
+
Further Information see [Development](documentation/DEVELOPMENT.md) and [Plugin-cli](https://github.com/virtualcitySYSTEMS/map-plugin-cli).
|
122
|
+
|
123
|
+
## Included Dataset
|
124
|
+
The included datasets for Berlin and Osnabrück in the app configurations in the project can only be used for Development.
|
125
|
+
For further usage of the datasets please contact [Virtual City Systems](https://vc.systems).
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
|
package/build/.eslintrc
ADDED
package/build/build.js
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
import path from 'path';
|
2
|
+
import { build } from 'vite';
|
3
|
+
import { v4 as uuid } from 'uuid';
|
4
|
+
import rollupPluginStripPragma from 'rollup-plugin-strip-pragma';
|
5
|
+
import vcsOl from '@vcmap/rollup-plugin-vcs-ol';
|
6
|
+
import generateOLLib from './generateOLLib.js';
|
7
|
+
import buildCesium from './buildCesium.js';
|
8
|
+
import { buildLibrary, libraries } from './buildHelpers.js';
|
9
|
+
|
10
|
+
/**
|
11
|
+
* @typedef {Object} LibraryBuildOption
|
12
|
+
* @property {string} lib
|
13
|
+
* @property {string} entry
|
14
|
+
* @property {string} [libraryEntry]
|
15
|
+
* @property {import("rollup").RollupOptions} [rollupOptions]
|
16
|
+
*/
|
17
|
+
|
18
|
+
/**
|
19
|
+
* @returns {{ libraryBuildOptions: Object<string, LibraryBuildOption>, libraryPaths: Object<string, string> }}
|
20
|
+
*/
|
21
|
+
function hashLibraries() {
|
22
|
+
/** @type {Object<string, LibraryBuildOption>} */
|
23
|
+
const libraryBuildOptions = {
|
24
|
+
vue: {
|
25
|
+
entry: path.join('lib', 'vue.js'),
|
26
|
+
},
|
27
|
+
'@vue/composition-api': {
|
28
|
+
entry: path.join('lib', 'vue-composition-api.js'),
|
29
|
+
},
|
30
|
+
'@vcmap/cesium': {
|
31
|
+
entry: path.join('lib', 'cesium.js'),
|
32
|
+
rollupOptions: {
|
33
|
+
plugins: [rollupPluginStripPragma({
|
34
|
+
pragmas: ['debug'],
|
35
|
+
})],
|
36
|
+
},
|
37
|
+
},
|
38
|
+
ol: {
|
39
|
+
entry: path.join('lib', 'olLib.js'),
|
40
|
+
libraryEntry: path.join('lib', 'ol.js'), // openlayers special case, the entry to compile is the olLib, but the public entry must be ol.js
|
41
|
+
rollupOptions: {
|
42
|
+
output: {
|
43
|
+
manualChunks: () => 'ol.js', // this is needed, otherwise vitejs will create multiple chunks for openlayers.
|
44
|
+
},
|
45
|
+
},
|
46
|
+
},
|
47
|
+
'@vcmap/core': {
|
48
|
+
entry: path.join('lib', 'core.js'),
|
49
|
+
rollupOptions: {
|
50
|
+
plugins: [vcsOl()],
|
51
|
+
},
|
52
|
+
},
|
53
|
+
'@vcmap/ui': {
|
54
|
+
rollupOptions: {
|
55
|
+
plugins: [
|
56
|
+
vcsOl(),
|
57
|
+
{
|
58
|
+
transform(source, sid) {
|
59
|
+
if (/src(\/|\\)setup.js/.test(sid)) {
|
60
|
+
return source.replace('/node_modules/@vcmap/cesium/Source/', './assets/cesium/');
|
61
|
+
}
|
62
|
+
return source;
|
63
|
+
},
|
64
|
+
},
|
65
|
+
],
|
66
|
+
},
|
67
|
+
entry: path.join('lib', 'ui.js'),
|
68
|
+
},
|
69
|
+
'vuetify/lib': {
|
70
|
+
entry: path.join('lib', 'vuetify.js'),
|
71
|
+
},
|
72
|
+
'@vcsuite/ui-components': {
|
73
|
+
entry: path.join('lib', 'uicomponents.js'),
|
74
|
+
},
|
75
|
+
};
|
76
|
+
|
77
|
+
const libraryPaths = {};
|
78
|
+
Object.entries(libraryBuildOptions)
|
79
|
+
.forEach(([key, value]) => {
|
80
|
+
if (!libraries[key]) {
|
81
|
+
throw new Error(`Trying to build unexported library ${key}`);
|
82
|
+
}
|
83
|
+
value.lib = libraries[key];
|
84
|
+
value.hash = `${uuid().substring(0, 6)}`;
|
85
|
+
libraryPaths[key] = `./${value.lib}.${value.hash}.js`;
|
86
|
+
value.rollupOptions = value.rollupOptions ? value.rollupOptions : {};
|
87
|
+
});
|
88
|
+
|
89
|
+
return { libraryBuildOptions, libraryPaths };
|
90
|
+
}
|
91
|
+
|
92
|
+
const { libraryBuildOptions, libraryPaths } = hashLibraries();
|
93
|
+
console.log('Building ol dump file');
|
94
|
+
await generateOLLib();
|
95
|
+
|
96
|
+
console.log('Building app');
|
97
|
+
await build({
|
98
|
+
configFile: './build/commonViteConfig.js',
|
99
|
+
base: './',
|
100
|
+
build: {
|
101
|
+
minify: true,
|
102
|
+
emptyOutDir: true,
|
103
|
+
rollupOptions: {
|
104
|
+
external: Object.keys(libraries),
|
105
|
+
output: {
|
106
|
+
paths: libraryPaths,
|
107
|
+
},
|
108
|
+
},
|
109
|
+
},
|
110
|
+
});
|
111
|
+
|
112
|
+
console.log('Building Libraries');
|
113
|
+
await Promise.all(Object.entries(libraryBuildOptions).map(async ([key, value]) => {
|
114
|
+
console.log('Building Library: ', key);
|
115
|
+
const external = Object.keys(libraryBuildOptions).filter((library) => { return key !== library; });
|
116
|
+
const output = {
|
117
|
+
...value.rollupOptions?.output,
|
118
|
+
paths: libraryPaths,
|
119
|
+
};
|
120
|
+
const libraryConfig = {
|
121
|
+
configFile: './build/commonViteConfig.js',
|
122
|
+
esbuild: {
|
123
|
+
minify: true,
|
124
|
+
},
|
125
|
+
build: {
|
126
|
+
write: false,
|
127
|
+
emptyOutDir: false,
|
128
|
+
lib: {
|
129
|
+
entry: path.resolve(process.cwd(), value.entry),
|
130
|
+
formats: ['es'],
|
131
|
+
fileName: `assets/${value.lib}.${value.hash}`,
|
132
|
+
},
|
133
|
+
rollupOptions: {
|
134
|
+
...value.rollupOptions,
|
135
|
+
output,
|
136
|
+
external,
|
137
|
+
},
|
138
|
+
},
|
139
|
+
};
|
140
|
+
await buildLibrary(libraryConfig, 'assets', value.lib, value.hash);
|
141
|
+
console.log('Building Library Entry: ', key);
|
142
|
+
|
143
|
+
const libraryEntryConfig = {
|
144
|
+
configFile: false,
|
145
|
+
build: {
|
146
|
+
emptyOutDir: false,
|
147
|
+
lib: {
|
148
|
+
entry: path.resolve(process.cwd(), value.libraryEntry || value.entry),
|
149
|
+
formats: ['es'],
|
150
|
+
fileName: () => { return `assets/${value.lib}.js`; },
|
151
|
+
},
|
152
|
+
rollupOptions: {
|
153
|
+
...value.rollupOptions,
|
154
|
+
external: [key],
|
155
|
+
output: {
|
156
|
+
paths: libraryPaths,
|
157
|
+
},
|
158
|
+
},
|
159
|
+
},
|
160
|
+
};
|
161
|
+
await build(libraryEntryConfig);
|
162
|
+
}));
|
163
|
+
|
164
|
+
await buildCesium();
|
165
|
+
console.log('Finished Building vcMap');
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import fs from 'fs';
|
2
|
+
import path from 'path';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* copies Cesium Assets and Workers to dist folder
|
6
|
+
* @returns {Promise<void>}
|
7
|
+
*/
|
8
|
+
export default async function buildCesium() {
|
9
|
+
const cesiumPath = path.join(process.cwd(), 'node_modules', '@vcmap', 'cesium', 'Build', 'Cesium');
|
10
|
+
const buildPath = path.join(process.cwd(), 'dist', 'assets', 'cesium');
|
11
|
+
return Promise.all([
|
12
|
+
fs.promises.cp(path.join(cesiumPath, 'Assets'), path.join(buildPath, 'Assets'), {
|
13
|
+
recursive: true,
|
14
|
+
}),
|
15
|
+
fs.promises.cp(path.join(cesiumPath, 'Workers'), path.join(buildPath, 'Workers'), {
|
16
|
+
recursive: true,
|
17
|
+
}),
|
18
|
+
]);
|
19
|
+
}
|
@@ -0,0 +1,213 @@
|
|
1
|
+
/* eslint import/no-extraneous-dependencies: ["error", { "devDependencies": false }] */
|
2
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
3
|
+
import { build } from 'vite'; // vite is also a plugin-cli dep
|
4
|
+
import fs from 'fs';
|
5
|
+
import path from 'path';
|
6
|
+
import { fileURLToPath } from 'url';
|
7
|
+
|
8
|
+
/**
|
9
|
+
* @param {...string} pathSegments
|
10
|
+
* @returns {string}
|
11
|
+
*/
|
12
|
+
export function getProjectPath(...pathSegments) {
|
13
|
+
return path.join(path.dirname(fileURLToPath(import.meta.url)), '..', ...pathSegments);
|
14
|
+
}
|
15
|
+
|
16
|
+
/**
|
17
|
+
* returns the absolute path to the plugin directory
|
18
|
+
* @returns {string}
|
19
|
+
*/
|
20
|
+
export function getPluginDirectory() {
|
21
|
+
return getProjectPath('plugins');
|
22
|
+
}
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Gets the names of the plugins defined in the plugins/package.json
|
26
|
+
* @returns {Promise<Array<string>>}
|
27
|
+
*/
|
28
|
+
export async function getPluginNames() {
|
29
|
+
const pluginsDir = getPluginDirectory();
|
30
|
+
const packageJsonContent = await fs.promises.readFile(path.join(pluginsDir, 'package.json'));
|
31
|
+
const {
|
32
|
+
dependencies: plugins,
|
33
|
+
optionalDependencies: internalPlugins,
|
34
|
+
} = JSON.parse(packageJsonContent.toString());
|
35
|
+
const pluginNames = plugins ? Object.keys(plugins) : [];
|
36
|
+
if (internalPlugins) { // internal plugins are mapped as optional dependencies only add them, if they exist
|
37
|
+
Object.keys(internalPlugins)
|
38
|
+
.forEach((internalPlugin) => {
|
39
|
+
if (fs.existsSync(path.join(pluginsDir, 'node_modules', ...internalPlugin.split('/')))) {
|
40
|
+
pluginNames.push(internalPlugin);
|
41
|
+
}
|
42
|
+
});
|
43
|
+
}
|
44
|
+
return pluginNames;
|
45
|
+
}
|
46
|
+
|
47
|
+
/**
|
48
|
+
* @returns {Promise<Array<string>>}
|
49
|
+
*/
|
50
|
+
export async function getInlinePlugins() {
|
51
|
+
const pluginsDirectory = getPluginDirectory();
|
52
|
+
const dirs = await fs.promises.readdir(pluginsDirectory, { withFileTypes: true });
|
53
|
+
const topLevelDirs = dirs
|
54
|
+
.filter(d => d.isDirectory() && d.name !== 'node_modules');
|
55
|
+
const plugins = [];
|
56
|
+
const scopes = [];
|
57
|
+
topLevelDirs.forEach((d) => {
|
58
|
+
if (d.name.startsWith('@')) {
|
59
|
+
scopes.push(d.name);
|
60
|
+
} else {
|
61
|
+
plugins.push(d.name);
|
62
|
+
}
|
63
|
+
});
|
64
|
+
|
65
|
+
await Promise.all(scopes.map(async (scope) => {
|
66
|
+
const scopeDirs = await fs.promises.readdir(path.join(pluginsDirectory, scope), { withFileTypes: true });
|
67
|
+
scopeDirs
|
68
|
+
.filter(d => d.isDirectory() && d.name !== 'node_modules')
|
69
|
+
.forEach((d) => {
|
70
|
+
plugins.push(`${scope}/${d.name}`);
|
71
|
+
});
|
72
|
+
}));
|
73
|
+
return plugins;
|
74
|
+
}
|
75
|
+
|
76
|
+
/**
|
77
|
+
* builds the given configuration and writes the library to the provided outputFolder. If the build contains css a .css
|
78
|
+
* file will also be written and injected into the .js file.
|
79
|
+
* @param {Object} libraryConfig Vitejs InlineConfig
|
80
|
+
* @param {string} outputFolder
|
81
|
+
* @param {string} library
|
82
|
+
* @param {string} [hash]
|
83
|
+
* @param {boolean} [base64Css = false] inline css. must be true for plugins
|
84
|
+
* @returns {Promise<void>}
|
85
|
+
*/
|
86
|
+
export async function buildLibrary(libraryConfig, outputFolder, library, hash = '', base64Css = false) {
|
87
|
+
const cssInjectorCode = `
|
88
|
+
function loadCss(href) {
|
89
|
+
return new Promise((resolve, reject) => {
|
90
|
+
const elem = document.createElement('link');
|
91
|
+
elem.rel = 'stylesheet';
|
92
|
+
elem.href = href;
|
93
|
+
elem.defer = false;
|
94
|
+
elem.async = false;
|
95
|
+
elem.onload = resolve;
|
96
|
+
elem.onerror = reject;
|
97
|
+
document.head.appendChild(elem);
|
98
|
+
});
|
99
|
+
}`;
|
100
|
+
|
101
|
+
const write = async (output) => {
|
102
|
+
const addedHash = hash ? `.${hash}` : '';
|
103
|
+
let css = false;
|
104
|
+
if (output[1] && output[1].type === 'asset') {
|
105
|
+
if (base64Css) {
|
106
|
+
css = `data:text/css;base64,${Buffer.from(output[1].source).toString('base64url')}`;
|
107
|
+
} else {
|
108
|
+
await fs.promises.writeFile(path.join(process.cwd(), 'dist', outputFolder, `${library}${addedHash}.css`), output[1].source);
|
109
|
+
css = `./${outputFolder}/${library}${addedHash}.css`;
|
110
|
+
}
|
111
|
+
}
|
112
|
+
if (output[0] && output[0].type === 'chunk') {
|
113
|
+
let code = css ? `${cssInjectorCode} await loadCss('${css}');` : '';
|
114
|
+
code += output[0].code;
|
115
|
+
await fs.promises.writeFile(path.join(process.cwd(), 'dist', outputFolder, `${library}${addedHash}.js`), code);
|
116
|
+
}
|
117
|
+
};
|
118
|
+
|
119
|
+
const libraryBuilds = await build(libraryConfig);
|
120
|
+
if (Array.isArray(libraryBuilds)) {
|
121
|
+
await write(libraryBuilds[0].output);
|
122
|
+
} else if (libraryBuilds.output) {
|
123
|
+
await write(libraryBuilds.output);
|
124
|
+
} else {
|
125
|
+
libraryBuilds.prependListener('event', async (event) => {
|
126
|
+
// debounce
|
127
|
+
if (event.code === 'BUNDLE_END') {
|
128
|
+
const res = await event.result.generate(libraryConfig?.build?.rollupOptions?.output ?? {});
|
129
|
+
await write(res.output);
|
130
|
+
}
|
131
|
+
});
|
132
|
+
}
|
133
|
+
}
|
134
|
+
|
135
|
+
/**
|
136
|
+
* A map, mapping external module name to output library name.
|
137
|
+
* @enum {string}
|
138
|
+
*/
|
139
|
+
export const libraries = {
|
140
|
+
vue: 'vue',
|
141
|
+
'@vue/composition-api': 'vue-composition-api',
|
142
|
+
'@vcmap/cesium': 'cesium',
|
143
|
+
ol: 'ol',
|
144
|
+
'@vcmap/core': 'core',
|
145
|
+
'@vcmap/ui': 'ui',
|
146
|
+
'vuetify/lib': 'vuetify',
|
147
|
+
'@vcsuite/ui-components': 'uicomponents',
|
148
|
+
};
|
149
|
+
|
150
|
+
/**
|
151
|
+
* Will build a preview of all the current plugins & inline plugins
|
152
|
+
* @param {import("vite").InlineConfig} [baseConfig={}] - the base config to use. build & esbuild will be completely overwritten
|
153
|
+
* @param {boolean} [minify=true]
|
154
|
+
* @returns {Promise<void>}
|
155
|
+
*/
|
156
|
+
export async function buildPluginsForPreview(baseConfig = {}, minify = true) {
|
157
|
+
const pluginsDirectory = getPluginDirectory();
|
158
|
+
const inlinePlugins = await getInlinePlugins();
|
159
|
+
const dependentPlugins = await getPluginNames();
|
160
|
+
|
161
|
+
const promises = inlinePlugins.map(async (plugin) => {
|
162
|
+
// the relative path between plugins and libraries, is not known beforehand, so we calculate the distance.
|
163
|
+
// posixRelativePath is the relative path between the index.js of the plugin and the specific library.
|
164
|
+
const relativePluginPaths = {};
|
165
|
+
Object.entries(libraries).forEach(([key, value]) => {
|
166
|
+
const libraryPath = path.join('dist', 'assets', `${value}.js`);
|
167
|
+
const pluginPath = path.join(process.cwd(), `dist/plugins/${plugin}/`);
|
168
|
+
const relativePath = path.relative(pluginPath, libraryPath);
|
169
|
+
relativePluginPaths[key] = relativePath.split(path.sep).join(path.posix.sep);
|
170
|
+
});
|
171
|
+
|
172
|
+
const pluginConfig = {
|
173
|
+
...baseConfig,
|
174
|
+
esbuild: {
|
175
|
+
minify,
|
176
|
+
},
|
177
|
+
build: {
|
178
|
+
write: false,
|
179
|
+
emptyOutDir: false,
|
180
|
+
outDir: `dist/plugins/${plugin}/`,
|
181
|
+
lib: {
|
182
|
+
entry: getProjectPath('plugins', plugin, 'index.js'),
|
183
|
+
formats: ['es'],
|
184
|
+
fileName: 'index',
|
185
|
+
},
|
186
|
+
rollupOptions: {
|
187
|
+
external: Object.keys(libraries),
|
188
|
+
output: {
|
189
|
+
paths: relativePluginPaths,
|
190
|
+
},
|
191
|
+
},
|
192
|
+
},
|
193
|
+
};
|
194
|
+
await fs.promises.mkdir(path.join(process.cwd(), 'dist', 'plugins', plugin), { recursive: true });
|
195
|
+
await buildLibrary(pluginConfig, `plugins/${plugin}`, 'index', '', true);
|
196
|
+
});
|
197
|
+
|
198
|
+
promises.push(...dependentPlugins.map((pluginName) => {
|
199
|
+
let scope = '';
|
200
|
+
let name = pluginName;
|
201
|
+
if (pluginName.startsWith('@')) {
|
202
|
+
[scope, name] = pluginName.split('/');
|
203
|
+
}
|
204
|
+
|
205
|
+
return fs.promises.cp(
|
206
|
+
path.join(pluginsDirectory, 'node_modules', scope, name, 'dist'),
|
207
|
+
path.join(process.cwd(), 'dist', 'plugins', scope, name),
|
208
|
+
{ recursive: true },
|
209
|
+
);
|
210
|
+
}));
|
211
|
+
|
212
|
+
await Promise.all(promises);
|
213
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import fs from 'fs';
|
2
|
+
import path from 'path';
|
3
|
+
import vcsOl from '@vcmap/rollup-plugin-vcs-ol';
|
4
|
+
import { buildPluginsForPreview, getProjectPath } from './buildHelpers.js';
|
5
|
+
|
6
|
+
console.log('Building Plugins');
|
7
|
+
await Promise.all([
|
8
|
+
buildPluginsForPreview({
|
9
|
+
configFile: './build/commonViteConfig.js',
|
10
|
+
plugins: [vcsOl()],
|
11
|
+
}, true),
|
12
|
+
fs.promises.cp(
|
13
|
+
getProjectPath('map.config.json'),
|
14
|
+
path.join(process.cwd(), 'dist', 'map.config.json'),
|
15
|
+
),
|
16
|
+
fs.promises.cp(
|
17
|
+
getProjectPath('config'),
|
18
|
+
path.join(process.cwd(), 'dist', 'config'),
|
19
|
+
{
|
20
|
+
recursive: true,
|
21
|
+
},
|
22
|
+
),
|
23
|
+
]);
|
@@ -0,0 +1,39 @@
|
|
1
|
+
/* eslint-disable import/extensions */
|
2
|
+
import path from 'path';
|
3
|
+
import { defineConfig } from 'vite';
|
4
|
+
import { createVuePlugin } from 'vite-plugin-vue2';
|
5
|
+
import Components from 'unplugin-vue-components/vite';
|
6
|
+
import { VuetifyResolver } from 'unplugin-vue-components/resolvers';
|
7
|
+
import { libraries } from './buildHelpers.js';
|
8
|
+
|
9
|
+
const configMain = defineConfig({
|
10
|
+
resolve: {
|
11
|
+
alias: {
|
12
|
+
'@vcmap/ui': `${path.resolve(process.cwd(), 'index.js')}`,
|
13
|
+
vue: 'vue/dist/vue.esm.js',
|
14
|
+
tinyqueue: 'tinyqueue/tinyqueue.js',
|
15
|
+
},
|
16
|
+
dedupe: Object.keys(libraries),
|
17
|
+
preserveSymlinks: false,
|
18
|
+
},
|
19
|
+
plugins: [
|
20
|
+
createVuePlugin(),
|
21
|
+
Components({
|
22
|
+
resolvers: [
|
23
|
+
VuetifyResolver(),
|
24
|
+
],
|
25
|
+
dirs: ['src'],
|
26
|
+
include: [],
|
27
|
+
exclude: [],
|
28
|
+
}),
|
29
|
+
],
|
30
|
+
css: {
|
31
|
+
preprocessorOptions: {
|
32
|
+
sass: {
|
33
|
+
additionalData: "\n@import './node_modules/@vcsuite/ui-components/src/styles/variables.scss'\n",
|
34
|
+
},
|
35
|
+
},
|
36
|
+
},
|
37
|
+
});
|
38
|
+
|
39
|
+
export default configMain;
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/* eslint import/no-extraneous-dependencies: ["error", { "devDependencies": false }] */
|
2
|
+
import os from 'os';
|
3
|
+
|
4
|
+
/**
|
5
|
+
* Determine the host based on the _first_ non internal interface. Used if server is started with an empty "--host" flag.
|
6
|
+
* @returns {string|null}
|
7
|
+
*/
|
8
|
+
export function determineHostIpFromInterfaces() {
|
9
|
+
const interFace = Object.values(os.networkInterfaces())
|
10
|
+
.flatMap(nInterface => nInterface ?? [])
|
11
|
+
.find(detail => detail && detail.address && !detail.internal && detail.family === 'IPv4');
|
12
|
+
return interFace?.address ?? null;
|
13
|
+
}
|
14
|
+
|
15
|
+
/**
|
16
|
+
* @param {number} [defaultPort=8080]
|
17
|
+
* @param {boolean} [defaultHttps=false]
|
18
|
+
* @param {string} [defaultHost='127.0.0.1']
|
19
|
+
* @returns {string}
|
20
|
+
*/
|
21
|
+
export function determineHostFromArgv(defaultPort = 8080, defaultHttps = false, defaultHost = '127.0.0.1') {
|
22
|
+
let port = defaultPort;
|
23
|
+
const portIndex = process.argv.indexOf('--port');
|
24
|
+
if (portIndex > -1 && process.argv.length > portIndex + 1) {
|
25
|
+
const portNumber = Number(process.argv[portIndex + 1]);
|
26
|
+
if (Number.isFinite(portNumber)) {
|
27
|
+
port = portNumber;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
let protocol = defaultHttps ? 'https' : 'http';
|
32
|
+
if (process.argv.includes('--https')) {
|
33
|
+
protocol = 'https';
|
34
|
+
}
|
35
|
+
|
36
|
+
const hostIndex = process.argv.indexOf('--host');
|
37
|
+
let host = defaultHost;
|
38
|
+
if (hostIndex > -1) {
|
39
|
+
if (process.argv.length > hostIndex + 1 && !process.argv[hostIndex + 1].startsWith('-')) {
|
40
|
+
host = process.argv[hostIndex + 1];
|
41
|
+
} else {
|
42
|
+
host = determineHostIpFromInterfaces() ?? host;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
return `${protocol}://${host}:${port}`;
|
46
|
+
}
|