@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.
Files changed (556) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +182 -0
  3. package/build/.eslintrc +6 -0
  4. package/build/build.js +162 -0
  5. package/build/buildCesium.js +19 -0
  6. package/build/buildHelpers.js +212 -0
  7. package/build/buildPreview.js +23 -0
  8. package/build/commonViteConfig.js +39 -0
  9. package/build/determineHost.js +46 -0
  10. package/build/generateOLLib.js +196 -0
  11. package/build/getPluginProxies.js +29 -0
  12. package/build/info/api-plugin.js +11 -0
  13. package/build/info/conf.json +21 -0
  14. package/build/info/define-plugin.js +31 -0
  15. package/build/info/package.json +3 -0
  16. package/build/info/publish.js +190 -0
  17. package/build/info/virtual-plugin.js +15 -0
  18. package/build/staging/Dockerfile +2 -0
  19. package/config/aerowest.config.json +388 -0
  20. package/config/base.config.json +991 -0
  21. package/config/berlin.config.json +510 -0
  22. package/config/dev.config.json +44 -0
  23. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
  24. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
  25. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
  26. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
  27. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
  28. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
  29. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
  30. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
  31. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
  32. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
  33. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
  34. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
  35. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
  36. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
  37. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
  38. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
  39. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
  40. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
  41. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
  42. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
  43. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
  44. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
  45. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
  46. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
  47. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
  48. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
  49. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
  50. package/dist/assets/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
  51. package/dist/assets/cesium/Assets/Images/bing_maps_credit.png +0 -0
  52. package/dist/assets/cesium/Assets/Images/cesium_credit.png +0 -0
  53. package/dist/assets/cesium/Assets/Images/google_earth_credit.png +0 -0
  54. package/dist/assets/cesium/Assets/Images/ion-credit.png +0 -0
  55. package/dist/assets/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  56. package/dist/assets/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  57. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  58. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  59. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  60. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  61. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  62. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  63. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  64. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  65. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  66. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  67. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  68. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  69. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  70. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  71. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  72. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  73. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  74. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  75. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  76. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  77. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  78. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  79. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  80. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  81. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  82. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  83. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  84. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  85. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  86. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  87. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  88. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  89. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  90. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  91. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  92. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  93. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  94. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  95. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  96. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  97. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  98. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  99. package/dist/assets/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +14 -0
  100. package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  101. package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  102. package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  103. package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  104. package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  105. package/dist/assets/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  106. package/dist/assets/cesium/Assets/Textures/maki/airfield.png +0 -0
  107. package/dist/assets/cesium/Assets/Textures/maki/airport.png +0 -0
  108. package/dist/assets/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
  109. package/dist/assets/cesium/Assets/Textures/maki/america-football.png +0 -0
  110. package/dist/assets/cesium/Assets/Textures/maki/art-gallery.png +0 -0
  111. package/dist/assets/cesium/Assets/Textures/maki/bakery.png +0 -0
  112. package/dist/assets/cesium/Assets/Textures/maki/bank.png +0 -0
  113. package/dist/assets/cesium/Assets/Textures/maki/bar.png +0 -0
  114. package/dist/assets/cesium/Assets/Textures/maki/baseball.png +0 -0
  115. package/dist/assets/cesium/Assets/Textures/maki/basketball.png +0 -0
  116. package/dist/assets/cesium/Assets/Textures/maki/beer.png +0 -0
  117. package/dist/assets/cesium/Assets/Textures/maki/bicycle.png +0 -0
  118. package/dist/assets/cesium/Assets/Textures/maki/building.png +0 -0
  119. package/dist/assets/cesium/Assets/Textures/maki/bus.png +0 -0
  120. package/dist/assets/cesium/Assets/Textures/maki/cafe.png +0 -0
  121. package/dist/assets/cesium/Assets/Textures/maki/camera.png +0 -0
  122. package/dist/assets/cesium/Assets/Textures/maki/campsite.png +0 -0
  123. package/dist/assets/cesium/Assets/Textures/maki/car.png +0 -0
  124. package/dist/assets/cesium/Assets/Textures/maki/cemetery.png +0 -0
  125. package/dist/assets/cesium/Assets/Textures/maki/cesium.png +0 -0
  126. package/dist/assets/cesium/Assets/Textures/maki/chemist.png +0 -0
  127. package/dist/assets/cesium/Assets/Textures/maki/cinema.png +0 -0
  128. package/dist/assets/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
  129. package/dist/assets/cesium/Assets/Textures/maki/circle.png +0 -0
  130. package/dist/assets/cesium/Assets/Textures/maki/city.png +0 -0
  131. package/dist/assets/cesium/Assets/Textures/maki/clothing-store.png +0 -0
  132. package/dist/assets/cesium/Assets/Textures/maki/college.png +0 -0
  133. package/dist/assets/cesium/Assets/Textures/maki/commercial.png +0 -0
  134. package/dist/assets/cesium/Assets/Textures/maki/cricket.png +0 -0
  135. package/dist/assets/cesium/Assets/Textures/maki/cross.png +0 -0
  136. package/dist/assets/cesium/Assets/Textures/maki/dam.png +0 -0
  137. package/dist/assets/cesium/Assets/Textures/maki/danger.png +0 -0
  138. package/dist/assets/cesium/Assets/Textures/maki/disability.png +0 -0
  139. package/dist/assets/cesium/Assets/Textures/maki/dog-park.png +0 -0
  140. package/dist/assets/cesium/Assets/Textures/maki/embassy.png +0 -0
  141. package/dist/assets/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
  142. package/dist/assets/cesium/Assets/Textures/maki/entrance.png +0 -0
  143. package/dist/assets/cesium/Assets/Textures/maki/farm.png +0 -0
  144. package/dist/assets/cesium/Assets/Textures/maki/fast-food.png +0 -0
  145. package/dist/assets/cesium/Assets/Textures/maki/ferry.png +0 -0
  146. package/dist/assets/cesium/Assets/Textures/maki/fire-station.png +0 -0
  147. package/dist/assets/cesium/Assets/Textures/maki/fuel.png +0 -0
  148. package/dist/assets/cesium/Assets/Textures/maki/garden.png +0 -0
  149. package/dist/assets/cesium/Assets/Textures/maki/gift.png +0 -0
  150. package/dist/assets/cesium/Assets/Textures/maki/golf.png +0 -0
  151. package/dist/assets/cesium/Assets/Textures/maki/grocery.png +0 -0
  152. package/dist/assets/cesium/Assets/Textures/maki/hairdresser.png +0 -0
  153. package/dist/assets/cesium/Assets/Textures/maki/harbor.png +0 -0
  154. package/dist/assets/cesium/Assets/Textures/maki/heart.png +0 -0
  155. package/dist/assets/cesium/Assets/Textures/maki/heliport.png +0 -0
  156. package/dist/assets/cesium/Assets/Textures/maki/hospital.png +0 -0
  157. package/dist/assets/cesium/Assets/Textures/maki/ice-cream.png +0 -0
  158. package/dist/assets/cesium/Assets/Textures/maki/industrial.png +0 -0
  159. package/dist/assets/cesium/Assets/Textures/maki/land-use.png +0 -0
  160. package/dist/assets/cesium/Assets/Textures/maki/laundry.png +0 -0
  161. package/dist/assets/cesium/Assets/Textures/maki/library.png +0 -0
  162. package/dist/assets/cesium/Assets/Textures/maki/lighthouse.png +0 -0
  163. package/dist/assets/cesium/Assets/Textures/maki/lodging.png +0 -0
  164. package/dist/assets/cesium/Assets/Textures/maki/logging.png +0 -0
  165. package/dist/assets/cesium/Assets/Textures/maki/london-underground.png +0 -0
  166. package/dist/assets/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
  167. package/dist/assets/cesium/Assets/Textures/maki/marker.png +0 -0
  168. package/dist/assets/cesium/Assets/Textures/maki/minefield.png +0 -0
  169. package/dist/assets/cesium/Assets/Textures/maki/mobilephone.png +0 -0
  170. package/dist/assets/cesium/Assets/Textures/maki/monument.png +0 -0
  171. package/dist/assets/cesium/Assets/Textures/maki/museum.png +0 -0
  172. package/dist/assets/cesium/Assets/Textures/maki/music.png +0 -0
  173. package/dist/assets/cesium/Assets/Textures/maki/oil-well.png +0 -0
  174. package/dist/assets/cesium/Assets/Textures/maki/park.png +0 -0
  175. package/dist/assets/cesium/Assets/Textures/maki/park2.png +0 -0
  176. package/dist/assets/cesium/Assets/Textures/maki/parking-garage.png +0 -0
  177. package/dist/assets/cesium/Assets/Textures/maki/parking.png +0 -0
  178. package/dist/assets/cesium/Assets/Textures/maki/pharmacy.png +0 -0
  179. package/dist/assets/cesium/Assets/Textures/maki/pitch.png +0 -0
  180. package/dist/assets/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
  181. package/dist/assets/cesium/Assets/Textures/maki/playground.png +0 -0
  182. package/dist/assets/cesium/Assets/Textures/maki/police.png +0 -0
  183. package/dist/assets/cesium/Assets/Textures/maki/polling-place.png +0 -0
  184. package/dist/assets/cesium/Assets/Textures/maki/post.png +0 -0
  185. package/dist/assets/cesium/Assets/Textures/maki/prison.png +0 -0
  186. package/dist/assets/cesium/Assets/Textures/maki/rail-above.png +0 -0
  187. package/dist/assets/cesium/Assets/Textures/maki/rail-light.png +0 -0
  188. package/dist/assets/cesium/Assets/Textures/maki/rail-metro.png +0 -0
  189. package/dist/assets/cesium/Assets/Textures/maki/rail-underground.png +0 -0
  190. package/dist/assets/cesium/Assets/Textures/maki/rail.png +0 -0
  191. package/dist/assets/cesium/Assets/Textures/maki/religious-christian.png +0 -0
  192. package/dist/assets/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
  193. package/dist/assets/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
  194. package/dist/assets/cesium/Assets/Textures/maki/restaurant.png +0 -0
  195. package/dist/assets/cesium/Assets/Textures/maki/roadblock.png +0 -0
  196. package/dist/assets/cesium/Assets/Textures/maki/rocket.png +0 -0
  197. package/dist/assets/cesium/Assets/Textures/maki/school.png +0 -0
  198. package/dist/assets/cesium/Assets/Textures/maki/scooter.png +0 -0
  199. package/dist/assets/cesium/Assets/Textures/maki/shop.png +0 -0
  200. package/dist/assets/cesium/Assets/Textures/maki/skiing.png +0 -0
  201. package/dist/assets/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
  202. package/dist/assets/cesium/Assets/Textures/maki/soccer.png +0 -0
  203. package/dist/assets/cesium/Assets/Textures/maki/square-stroked.png +0 -0
  204. package/dist/assets/cesium/Assets/Textures/maki/square.png +0 -0
  205. package/dist/assets/cesium/Assets/Textures/maki/star-stroked.png +0 -0
  206. package/dist/assets/cesium/Assets/Textures/maki/star.png +0 -0
  207. package/dist/assets/cesium/Assets/Textures/maki/suitcase.png +0 -0
  208. package/dist/assets/cesium/Assets/Textures/maki/swimming.png +0 -0
  209. package/dist/assets/cesium/Assets/Textures/maki/telephone.png +0 -0
  210. package/dist/assets/cesium/Assets/Textures/maki/tennis.png +0 -0
  211. package/dist/assets/cesium/Assets/Textures/maki/theatre.png +0 -0
  212. package/dist/assets/cesium/Assets/Textures/maki/toilets.png +0 -0
  213. package/dist/assets/cesium/Assets/Textures/maki/town-hall.png +0 -0
  214. package/dist/assets/cesium/Assets/Textures/maki/town.png +0 -0
  215. package/dist/assets/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
  216. package/dist/assets/cesium/Assets/Textures/maki/triangle.png +0 -0
  217. package/dist/assets/cesium/Assets/Textures/maki/village.png +0 -0
  218. package/dist/assets/cesium/Assets/Textures/maki/warehouse.png +0 -0
  219. package/dist/assets/cesium/Assets/Textures/maki/waste-basket.png +0 -0
  220. package/dist/assets/cesium/Assets/Textures/maki/water.png +0 -0
  221. package/dist/assets/cesium/Assets/Textures/maki/wetland.png +0 -0
  222. package/dist/assets/cesium/Assets/Textures/maki/zoo.png +0 -0
  223. package/dist/assets/cesium/Assets/Textures/moonSmall.jpg +0 -0
  224. package/dist/assets/cesium/Assets/Textures/pin.svg +1 -0
  225. package/dist/assets/cesium/Assets/Textures/waterNormals.jpg +0 -0
  226. package/dist/assets/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
  227. package/dist/assets/cesium/Assets/approximateTerrainHeights.json +1 -0
  228. package/dist/assets/cesium/Workers/ArcType-fc72c06c.js +1 -0
  229. package/dist/assets/cesium/Workers/AttributeCompression-80665726.js +1 -0
  230. package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-a655a4bc.js +1 -0
  231. package/dist/assets/cesium/Workers/BoundingRectangle-c3b79029.js +1 -0
  232. package/dist/assets/cesium/Workers/BoxGeometry-f8f9c981.js +1 -0
  233. package/dist/assets/cesium/Workers/Color-de06a177.js +1 -0
  234. package/dist/assets/cesium/Workers/ComponentDatatype-a15c9a19.js +1 -0
  235. package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-48cdc26d.js +1 -0
  236. package/dist/assets/cesium/Workers/CorridorGeometryLibrary-ddc027d3.js +1 -0
  237. package/dist/assets/cesium/Workers/CylinderGeometry-82a8cbe6.js +1 -0
  238. package/dist/assets/cesium/Workers/CylinderGeometryLibrary-76cda53e.js +1 -0
  239. package/dist/assets/cesium/Workers/EllipseGeometry-32d55454.js +1 -0
  240. package/dist/assets/cesium/Workers/EllipseGeometryLibrary-b2ae188a.js +1 -0
  241. package/dist/assets/cesium/Workers/EllipseOutlineGeometry-f05a5a27.js +1 -0
  242. package/dist/assets/cesium/Workers/EllipsoidGeodesic-19e75e11.js +1 -0
  243. package/dist/assets/cesium/Workers/EllipsoidGeometry-7c99fc81.js +1 -0
  244. package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-21c243df.js +1 -0
  245. package/dist/assets/cesium/Workers/EllipsoidRhumbLine-6145377b.js +1 -0
  246. package/dist/assets/cesium/Workers/EllipsoidTangentPlane-a01286f6.js +1 -0
  247. package/dist/assets/cesium/Workers/EncodedCartesian3-d9f5c4a4.js +1 -0
  248. package/dist/assets/cesium/Workers/FrustumGeometry-17776af8.js +1 -0
  249. package/dist/assets/cesium/Workers/GeometryAttribute-89a520b9.js +1 -0
  250. package/dist/assets/cesium/Workers/GeometryAttributes-32b29525.js +1 -0
  251. package/dist/assets/cesium/Workers/GeometryInstance-4fbf16ba.js +1 -0
  252. package/dist/assets/cesium/Workers/GeometryOffsetAttribute-8c5e10db.js +1 -0
  253. package/dist/assets/cesium/Workers/GeometryPipeline-309fad76.js +1 -0
  254. package/dist/assets/cesium/Workers/IndexDatatype-f1dcdf35.js +1 -0
  255. package/dist/assets/cesium/Workers/IntersectionTests-58aa8f80.js +1 -0
  256. package/dist/assets/cesium/Workers/Matrix2-47e98d76.js +1 -0
  257. package/dist/assets/cesium/Workers/OrientedBoundingBox-fcb5b750.js +1 -0
  258. package/dist/assets/cesium/Workers/Plane-3f01019d.js +1 -0
  259. package/dist/assets/cesium/Workers/PolygonGeometryLibrary-0b29eb16.js +1 -0
  260. package/dist/assets/cesium/Workers/PolygonPipeline-a934c4dd.js +1 -0
  261. package/dist/assets/cesium/Workers/PolylinePipeline-8095c9bc.js +1 -0
  262. package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-67d12fff.js +1 -0
  263. package/dist/assets/cesium/Workers/PrimitivePipeline-980e44c5.js +1 -0
  264. package/dist/assets/cesium/Workers/RectangleGeometryLibrary-621c6de8.js +1 -0
  265. package/dist/assets/cesium/Workers/RuntimeError-8952249c.js +1 -0
  266. package/dist/assets/cesium/Workers/TerrainEncoding-f96552d5.js +1 -0
  267. package/dist/assets/cesium/Workers/Transforms-c8cb8f43.js +39 -0
  268. package/dist/assets/cesium/Workers/VertexFormat-a0b706b0.js +1 -0
  269. package/dist/assets/cesium/Workers/WallGeometryLibrary-c03d8479.js +1 -0
  270. package/dist/assets/cesium/Workers/WebGLConstants-508b9636.js +1 -0
  271. package/dist/assets/cesium/Workers/WebMercatorProjection-79b3214e.js +1 -0
  272. package/dist/assets/cesium/Workers/_commonjsHelpers-3aae1032-26891ab7.js +1 -0
  273. package/dist/assets/cesium/Workers/_rollup_plugin_ignore_empty_module_placeholder-57d574d0.js +1 -0
  274. package/dist/assets/cesium/Workers/arrayRemoveDuplicates-dc2f4046.js +1 -0
  275. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +6 -0
  276. package/dist/assets/cesium/Workers/combine-3c023bda.js +1 -0
  277. package/dist/assets/cesium/Workers/combineGeometry.js +1 -0
  278. package/dist/assets/cesium/Workers/createBoxGeometry.js +1 -0
  279. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +1 -0
  280. package/dist/assets/cesium/Workers/createCircleGeometry.js +1 -0
  281. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +1 -0
  282. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +1 -0
  283. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +1 -0
  284. package/dist/assets/cesium/Workers/createCorridorGeometry.js +1 -0
  285. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +1 -0
  286. package/dist/assets/cesium/Workers/createCylinderGeometry.js +1 -0
  287. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +1 -0
  288. package/dist/assets/cesium/Workers/createEllipseGeometry.js +1 -0
  289. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +1 -0
  290. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +1 -0
  291. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +1 -0
  292. package/dist/assets/cesium/Workers/createFrustumGeometry.js +1 -0
  293. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +1 -0
  294. package/dist/assets/cesium/Workers/createGeometry.js +1 -0
  295. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +1 -0
  296. package/dist/assets/cesium/Workers/createPlaneGeometry.js +1 -0
  297. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +1 -0
  298. package/dist/assets/cesium/Workers/createPolygonGeometry.js +1 -0
  299. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +1 -0
  300. package/dist/assets/cesium/Workers/createPolylineGeometry.js +1 -0
  301. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +1 -0
  302. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +1 -0
  303. package/dist/assets/cesium/Workers/createRectangleGeometry.js +1 -0
  304. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +1 -0
  305. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +1 -0
  306. package/dist/assets/cesium/Workers/createSphereGeometry.js +1 -0
  307. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +1 -0
  308. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +1 -0
  309. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +1 -0
  310. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +1 -0
  311. package/dist/assets/cesium/Workers/createVectorTilePoints.js +1 -0
  312. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +1 -0
  313. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +1 -0
  314. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -0
  315. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +3 -0
  316. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +1 -0
  317. package/dist/assets/cesium/Workers/createWallGeometry.js +1 -0
  318. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +1 -0
  319. package/dist/assets/cesium/Workers/decodeDraco.js +1 -0
  320. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +1 -0
  321. package/dist/assets/cesium/Workers/defaultValue-81eec7ed.js +1 -0
  322. package/dist/assets/cesium/Workers/transcodeKTX2.js +1 -0
  323. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -0
  324. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +1 -0
  325. package/dist/assets/cesium.eb5667.js +9105 -0
  326. package/dist/assets/cesium.js +1 -0
  327. package/dist/assets/core.216494.js +4 -0
  328. package/dist/assets/core.js +1 -0
  329. package/dist/assets/index.4ccd4433.js +1 -0
  330. package/dist/assets/ol.ef03b1.js +311 -0
  331. package/dist/assets/ol.js +1 -0
  332. package/dist/assets/ui.99a1a7.css +1 -0
  333. package/dist/assets/ui.99a1a7.js +70 -0
  334. package/dist/assets/ui.js +1 -0
  335. package/dist/assets/vue-composition-api.c5aca1.js +14 -0
  336. package/dist/assets/vue-composition-api.js +2 -0
  337. package/dist/assets/vue.762edd.js +9 -0
  338. package/dist/assets/vue.js +1 -0
  339. package/dist/assets/vuetify.401a29.css +5 -0
  340. package/dist/assets/vuetify.401a29.js +148 -0
  341. package/dist/assets/vuetify.js +2 -0
  342. package/dist/index.html +82 -0
  343. package/index.js +108 -0
  344. package/lib/cesium.js +1 -0
  345. package/lib/core.js +1 -0
  346. package/lib/ol.js +1 -0
  347. package/lib/olLib.js +844 -0
  348. package/lib/ui.js +1 -0
  349. package/lib/vue-composition-api.js +2 -0
  350. package/lib/vue.js +1 -0
  351. package/lib/vuetify.js +2 -0
  352. package/map.config.json +35 -0
  353. package/package.json +126 -0
  354. package/plugins/@vcmap/pluginExample/config.json +6 -0
  355. package/plugins/@vcmap/pluginExample/index.js +209 -0
  356. package/plugins/@vcmap/pluginExample/package.json +7 -0
  357. package/plugins/@vcmap/pluginExample/pluginExampleComponent.vue +374 -0
  358. package/plugins/@vcmap/pluginExample/validation.js +30 -0
  359. package/plugins/@vcmap/project-selector/ContextsListComponent.vue +62 -0
  360. package/plugins/@vcmap/project-selector/ProjectSelectorComponent.vue +81 -0
  361. package/plugins/@vcmap/project-selector/README.md +29 -0
  362. package/plugins/@vcmap/project-selector/config.json +15 -0
  363. package/plugins/@vcmap/project-selector/de.json +7 -0
  364. package/plugins/@vcmap/project-selector/en.json +7 -0
  365. package/plugins/@vcmap/project-selector/index.js +259 -0
  366. package/plugins/@vcmap/project-selector/package.json +14 -0
  367. package/plugins/@vcmap/theme-changer/README.md +21 -0
  368. package/plugins/@vcmap/theme-changer/ThemeChangerComponent.vue +92 -0
  369. package/plugins/@vcmap/theme-changer/config.json +69 -0
  370. package/plugins/@vcmap/theme-changer/index.js +102 -0
  371. package/plugins/@vcmap/theme-changer/package.json +12 -0
  372. package/plugins/buttonExamples/ButtonExamples.vue +190 -0
  373. package/plugins/buttonExamples/index.js +41 -0
  374. package/plugins/categoryTest/Categories.vue +145 -0
  375. package/plugins/categoryTest/Category.vue +114 -0
  376. package/plugins/categoryTest/ItemEditor.vue +13 -0
  377. package/plugins/categoryTest/index.js +41 -0
  378. package/plugins/example/index.js +75 -0
  379. package/plugins/example/mySuperComponent.vue +127 -0
  380. package/plugins/package.json +5 -0
  381. package/plugins/test/allIconsComponent.vue +34 -0
  382. package/plugins/test/editor.vue +63 -0
  383. package/plugins/test/emptyComponent.vue +13 -0
  384. package/plugins/test/index.js +116 -0
  385. package/plugins/test/myCustomHeader.vue +19 -0
  386. package/plugins/test/toolbox-data.js +129 -0
  387. package/plugins/test/vcsContent.vue +23 -0
  388. package/plugins/test/windowManagerExample.vue +144 -0
  389. package/src/actions/actionHelper.js +262 -0
  390. package/src/actions/stateRefAction.js +59 -0
  391. package/src/actions/styleSelector.vue +90 -0
  392. package/src/application/Navbar.vue +143 -0
  393. package/src/application/VcsApp.vue +202 -0
  394. package/src/application/VcsMap.vue +38 -0
  395. package/src/application/VcsSettings.vue +85 -0
  396. package/src/application/vcsAppWrapper.vue +29 -0
  397. package/src/assets/logo-mobile.svg +9 -0
  398. package/src/assets/logo.svg +26 -0
  399. package/src/components/buttons/VcsActionButtonList.vue +99 -0
  400. package/src/components/buttons/VcsButton.vue +201 -0
  401. package/src/components/form-inputs-controls/VcsCheckbox.vue +74 -0
  402. package/src/components/form-inputs-controls/VcsColorPicker.vue +81 -0
  403. package/src/components/form-inputs-controls/VcsFormSection.vue +46 -0
  404. package/src/components/form-inputs-controls/VcsLabel.vue +38 -0
  405. package/src/components/form-inputs-controls/VcsSelect.vue +97 -0
  406. package/src/components/form-inputs-controls/VcsTextArea.vue +130 -0
  407. package/src/components/form-inputs-controls/VcsTextField.vue +129 -0
  408. package/src/components/form-output/VcsFormattedNumber.vue +103 -0
  409. package/src/components/lists/VcsActionList.vue +100 -0
  410. package/src/components/lists/VcsTreeview.vue +104 -0
  411. package/src/components/lists/VcsTreeviewLeaf.vue +91 -0
  412. package/src/components/lists/VcsTreeviewSearchbar.vue +157 -0
  413. package/src/components/notification/VcsBadge.vue +27 -0
  414. package/src/components/notification/VcsTooltip.vue +154 -0
  415. package/src/components/notification/validation.js +19 -0
  416. package/src/contentTree/LayerTree.vue +39 -0
  417. package/src/contentTree/contentTreeCollection.js +315 -0
  418. package/src/contentTree/contentTreeItem.js +457 -0
  419. package/src/contentTree/groupContentTreeItem.js +67 -0
  420. package/src/contentTree/layerContentTreeItem.js +235 -0
  421. package/src/contentTree/layerGroupContentTreeItem.js +154 -0
  422. package/src/contentTree/nodeContentTreeItem.js +37 -0
  423. package/src/contentTree/obliqueCollectionContentTreeItem.js +155 -0
  424. package/src/contentTree/subContentTreeItem.js +42 -0
  425. package/src/contentTree/vcsObjectContentTreeItem.js +98 -0
  426. package/src/contentTree/viewPointContentTreeItem.js +107 -0
  427. package/src/i18n/de.js +55 -0
  428. package/src/i18n/en.js +55 -0
  429. package/src/i18n/i18nCollection.js +138 -0
  430. package/src/icons/+all.js +359 -0
  431. package/src/icons/2DAreaIcon.vue +21 -0
  432. package/src/icons/2DDistanceIcon.vue +18 -0
  433. package/src/icons/3DAreaIcon.vue +21 -0
  434. package/src/icons/3DDistanceIcon.vue +18 -0
  435. package/src/icons/3DHeightIcon.vue +18 -0
  436. package/src/icons/AngleIcon.vue +8 -0
  437. package/src/icons/AssociationsIcon.vue +34 -0
  438. package/src/icons/AxisIcon.vue +10 -0
  439. package/src/icons/BoundingBoxIcon.vue +15 -0
  440. package/src/icons/CheckboxCheckedIcon.vue +16 -0
  441. package/src/icons/CheckboxIcon.vue +23 -0
  442. package/src/icons/CheckboxIndeterminateIcon.vue +24 -0
  443. package/src/icons/CircleIcon.vue +10 -0
  444. package/src/icons/ColorSwatchIcon.vue +17 -0
  445. package/src/icons/CommentIcon.vue +19 -0
  446. package/src/icons/CompassIcon.vue +8 -0
  447. package/src/icons/ComponentsIcon.vue +7 -0
  448. package/src/icons/ConeIcon.vue +11 -0
  449. package/src/icons/DimensionsHouseIcon.vue +14 -0
  450. package/src/icons/ElevationProfileIcon.vue +111 -0
  451. package/src/icons/ExportAreaIcon.vue +7 -0
  452. package/src/icons/ExportFlightIcon.vue +7 -0
  453. package/src/icons/ExportIcon.vue +8 -0
  454. package/src/icons/ExternalLinkIcon.vue +10 -0
  455. package/src/icons/EyeIcon.vue +7 -0
  456. package/src/icons/FastForwardIcon.vue +7 -0
  457. package/src/icons/FilterIcon.vue +8 -0
  458. package/src/icons/GlobeNatureIcon.vue +14 -0
  459. package/src/icons/HealthCareIndustriesIcon.vue +118 -0
  460. package/src/icons/HelpIcon.vue +7 -0
  461. package/src/icons/HomePointIcon.vue +8 -0
  462. package/src/icons/HospitalsIcon.vue +237 -0
  463. package/src/icons/HouseIcon.vue +25 -0
  464. package/src/icons/ImportIcon.vue +8 -0
  465. package/src/icons/InfoIcon.vue +10 -0
  466. package/src/icons/KebabIcon.vue +36 -0
  467. package/src/icons/LabelIcon.vue +7 -0
  468. package/src/icons/LayersIcon.vue +26 -0
  469. package/src/icons/LegendIcon.vue +65 -0
  470. package/src/icons/LineIcon.vue +7 -0
  471. package/src/icons/LinkIcon.vue +7 -0
  472. package/src/icons/MapIcon.vue +8 -0
  473. package/src/icons/MenuIcon.vue +34 -0
  474. package/src/icons/MinusIcon.vue +8 -0
  475. package/src/icons/ObjectAttributeIcon.vue +18 -0
  476. package/src/icons/ObjectSelectIcon.vue +8 -0
  477. package/src/icons/ObliqueViewIcon.vue +13 -0
  478. package/src/icons/PdfIcon.vue +10 -0
  479. package/src/icons/PedestrianIcon.vue +8 -0
  480. package/src/icons/PenIcon.vue +14 -0
  481. package/src/icons/PlayCircleIcon.vue +10 -0
  482. package/src/icons/PlusIcon.vue +9 -0
  483. package/src/icons/PoiIcon.vue +7 -0
  484. package/src/icons/PointSelectIcon.vue +7 -0
  485. package/src/icons/PolygonIcon.vue +38 -0
  486. package/src/icons/PresentationModeIcon.vue +7 -0
  487. package/src/icons/ProgressIcon.vue +24 -0
  488. package/src/icons/QueryIcon.vue +15 -0
  489. package/src/icons/RectangleIcon.vue +9 -0
  490. package/src/icons/ReturnIcon.vue +7 -0
  491. package/src/icons/RewindIcon.vue +6 -0
  492. package/src/icons/SearchIcon.vue +8 -0
  493. package/src/icons/ShadowIcon.vue +9 -0
  494. package/src/icons/ShapesIcon.vue +28 -0
  495. package/src/icons/ShareIcon.vue +22 -0
  496. package/src/icons/SimpleCircleFilledIcon.vue +15 -0
  497. package/src/icons/SimpleCircleHalfFilledIcon.vue +12 -0
  498. package/src/icons/SimpleCircleOutlinedIcon.vue +15 -0
  499. package/src/icons/SkipNextIcon.vue +7 -0
  500. package/src/icons/SkipPreviousIcon.vue +9 -0
  501. package/src/icons/SplitViewIcon.vue +19 -0
  502. package/src/icons/TextStyleIcon.vue +14 -0
  503. package/src/icons/ThreeDimensionsIcon.vue +7 -0
  504. package/src/icons/ToolsIcon.vue +35 -0
  505. package/src/icons/TouchIcon.vue +8 -0
  506. package/src/icons/TrashCanIcon.vue +7 -0
  507. package/src/icons/TriangleIcon.vue +15 -0
  508. package/src/icons/TwoDimensionsIcon.vue +8 -0
  509. package/src/icons/UploadIcon.vue +14 -0
  510. package/src/icons/VideoRecorderIcon.vue +14 -0
  511. package/src/icons/WalkingIcon.vue +7 -0
  512. package/src/icons/WallIcon.vue +14 -0
  513. package/src/init.js +38 -0
  514. package/src/manager/buttonManager.js +156 -0
  515. package/src/manager/navbarManager.js +81 -0
  516. package/src/manager/toolbox/ToolboxGroupComponent.vue +128 -0
  517. package/src/manager/toolbox/ToolboxManager.vue +157 -0
  518. package/src/manager/toolbox/toolboxManager.js +204 -0
  519. package/src/manager/window/WindowComponent.vue +140 -0
  520. package/src/manager/window/WindowComponentHeader.vue +53 -0
  521. package/src/manager/window/WindowManager.vue +126 -0
  522. package/src/manager/window/windowManager.js +435 -0
  523. package/src/navigation/mapNavCompass.vue +161 -0
  524. package/src/navigation/mapNavigation.vue +207 -0
  525. package/src/navigation/obliqueRotation.vue +48 -0
  526. package/src/navigation/orientationToolsButton.vue +52 -0
  527. package/src/navigation/overviewMap.js +615 -0
  528. package/src/navigation/overviewMapClickedInteraction.js +38 -0
  529. package/src/navigation/tiltSlider.vue +96 -0
  530. package/src/navigation/vcsCompass.vue +144 -0
  531. package/src/navigation/vcsZoomButton.vue +27 -0
  532. package/src/pluginHelper.js +106 -0
  533. package/src/setup.js +11 -0
  534. package/src/styles/_theming.scss +25 -0
  535. package/src/styles/_typography.scss +42 -0
  536. package/src/styles/main.scss +12 -0
  537. package/src/styles/utils/_all.scss +12 -0
  538. package/src/styles/utils/_border.scss +7 -0
  539. package/src/styles/utils/_cursor.scss +15 -0
  540. package/src/styles/utils/_display.scss +3 -0
  541. package/src/styles/utils/_fade-in.scss +8 -0
  542. package/src/styles/utils/_position.scss +38 -0
  543. package/src/styles/utils/_size.scss +79 -0
  544. package/src/styles/utils/_slide-in.scss +26 -0
  545. package/src/styles/utils/_spacing.scss +11 -0
  546. package/src/styles/utils/_text.scss +30 -0
  547. package/src/styles/utils/_transform.scss +11 -0
  548. package/src/styles/utils/_transition.scss +11 -0
  549. package/src/styles/utils/_z-index.scss +15 -0
  550. package/src/styles/variables.scss +70 -0
  551. package/src/styles/vcsFont.scss +5 -0
  552. package/src/styles/vcsGrid.scss +4 -0
  553. package/src/vcsUiApp.js +259 -0
  554. package/src/vuePlugins/i18n.js +69 -0
  555. package/src/vuePlugins/vuetify.js +54 -0
  556. 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>