@vcmap/ui 5.0.0-rc.23 → 5.0.0-rc.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/README.md +36 -18
  2. package/app.config.json +2 -4
  3. package/build/.eslintrc +3 -0
  4. package/build/build.js +184 -174
  5. package/build/buildCesium.js +32 -19
  6. package/build/buildHelpers.js +117 -48
  7. package/build/buildPreview.js +7 -4
  8. package/build/commonViteConfig.js +1 -3
  9. package/build/determineHost.js +17 -4
  10. package/build/generateOLLib.js +13 -16
  11. package/build/getPluginProxies.js +16 -3
  12. package/build/info/conf.json +21 -21
  13. package/build/info/publish.js +15 -4
  14. package/config/aerowest.config.json +16 -44
  15. package/config/base.config.json +71 -246
  16. package/config/codes.config.json +3 -1
  17. package/config/dev.config.json +5 -13
  18. package/config/graphFeatureInfo.config.json +55 -16
  19. package/config/projects.config.json +5 -2
  20. package/config/www.config.json +96 -297
  21. package/dist/assets/cesium/Workers/{ArcType-ce2e50ab.js → ArcType-2d9abbbc.js} +4 -4
  22. package/dist/assets/cesium/Workers/{AttributeCompression-b646d393.js → AttributeCompression-f9f6c717.js} +24 -24
  23. package/dist/assets/cesium/Workers/{AxisAlignedBoundingBox-ff186ccc.js → AxisAlignedBoundingBox-85d9e53a.js} +3 -3
  24. package/dist/assets/cesium/Workers/{BoundingRectangle-be5924f4.js → BoundingRectangle-1ee7eb47.js} +18 -18
  25. package/dist/assets/cesium/Workers/{BoxGeometry-12eeccaf.js → BoxGeometry-3b2be784.js} +9 -9
  26. package/dist/assets/cesium/Workers/{Check-666ab1a0.js → Check-6ede7e26.js} +22 -22
  27. package/dist/assets/cesium/Workers/{Color-a84038cb.js → Color-f107c84d.js} +59 -59
  28. package/dist/assets/cesium/Workers/{ComponentDatatype-f7b11d02.js → ComponentDatatype-cf1fa08e.js} +16 -16
  29. package/dist/assets/cesium/Workers/{CoplanarPolygonGeometryLibrary-3272c1b3.js → CoplanarPolygonGeometryLibrary-78d71993.js} +1 -1
  30. package/dist/assets/cesium/Workers/{CorridorGeometryLibrary-0170e093.js → CorridorGeometryLibrary-50d99b33.js} +1 -1
  31. package/dist/assets/cesium/Workers/{CylinderGeometry-7c5da648.js → CylinderGeometry-51b0d9bf.js} +12 -12
  32. package/dist/assets/cesium/Workers/{CylinderGeometryLibrary-372c07d8.js → CylinderGeometryLibrary-7bf291b4.js} +1 -1
  33. package/dist/assets/cesium/Workers/{EllipseGeometry-797d580e.js → EllipseGeometry-bcfb5d87.js} +20 -20
  34. package/dist/assets/cesium/Workers/{EllipseGeometryLibrary-2939e1dc.js → EllipseGeometryLibrary-e94f8472.js} +1 -1
  35. package/dist/assets/cesium/Workers/{EllipseOutlineGeometry-8b50870f.js → EllipseOutlineGeometry-28e3a1bb.js} +15 -15
  36. package/dist/assets/cesium/Workers/{EllipsoidGeodesic-98c62a56.js → EllipsoidGeodesic-5b3623dc.js} +6 -6
  37. package/dist/assets/cesium/Workers/{EllipsoidGeometry-21c0e3a5.js → EllipsoidGeometry-b222fa63.js} +14 -14
  38. package/dist/assets/cesium/Workers/{EllipsoidOutlineGeometry-eff247c8.js → EllipsoidOutlineGeometry-38a3fb5b.js} +15 -15
  39. package/dist/assets/cesium/Workers/{EllipsoidRhumbLine-19756602.js → EllipsoidRhumbLine-ef872433.js} +9 -9
  40. package/dist/assets/cesium/Workers/{EllipsoidTangentPlane-214683dc.js → EllipsoidTangentPlane-8c89f28c.js} +1 -1
  41. package/dist/assets/cesium/Workers/{EncodedCartesian3-81f70735.js → EncodedCartesian3-57415c8a.js} +6 -6
  42. package/dist/assets/cesium/Workers/{FrustumGeometry-ac42a6d9.js → FrustumGeometry-bdd3a04d.js} +139 -111
  43. package/dist/assets/cesium/Workers/{GeometryAttribute-7d6f1732.js → GeometryAttribute-153115c5.js} +20 -20
  44. package/dist/assets/cesium/Workers/{GeometryAttributes-f06a2792.js → GeometryAttributes-ad136444.js} +1 -1
  45. package/dist/assets/cesium/Workers/{GeometryInstance-451dc1cd.js → GeometryInstance-34d9e21e.js} +6 -6
  46. package/dist/assets/cesium/Workers/{GeometryPipeline-ce4339ed.js → GeometryPipeline-acb2399c.js} +22 -22
  47. package/dist/assets/cesium/Workers/{IndexDatatype-a55ceaa1.js → IndexDatatype-2643aa47.js} +13 -13
  48. package/dist/assets/cesium/Workers/{IntersectionTests-f6e6bd8a.js → IntersectionTests-271e513e.js} +37 -37
  49. package/dist/assets/cesium/Workers/{Math-2dbd6b93.js → Math-0a2ac845.js} +149 -139
  50. package/dist/assets/cesium/Workers/{Matrix2-13178034.js → Matrix2-e1298525.js} +256 -256
  51. package/dist/assets/cesium/Workers/{Matrix3-315394f6.js → Matrix3-41c58dde.js} +150 -150
  52. package/dist/assets/cesium/Workers/{OrientedBoundingBox-04920dc7.js → OrientedBoundingBox-5e04e31f.js} +19 -17
  53. package/dist/assets/cesium/Workers/{Plane-900aa728.js → Plane-4c3d403b.js} +5 -5
  54. package/dist/assets/cesium/Workers/{PolygonGeometryLibrary-a8680d96.js → PolygonGeometryLibrary-6762b65b.js} +6 -6
  55. package/dist/assets/cesium/Workers/PolygonPipeline-7dc7a431.js +1344 -0
  56. package/dist/assets/cesium/Workers/{PolylinePipeline-32f36d2a.js → PolylinePipeline-15fde655.js} +16 -16
  57. package/dist/assets/cesium/Workers/{PolylineVolumeGeometryLibrary-a510d657.js → PolylineVolumeGeometryLibrary-ba7dfed5.js} +7 -7
  58. package/dist/assets/cesium/Workers/{PrimitivePipeline-ba38434a.js → PrimitivePipeline-68f0b9a2.js} +6 -6
  59. package/dist/assets/cesium/Workers/{RectangleGeometryLibrary-bdba697e.js → RectangleGeometryLibrary-8eaf23da.js} +1 -1
  60. package/dist/assets/cesium/Workers/{RuntimeError-06c93819.js → RuntimeError-ef395448.js} +5 -5
  61. package/dist/assets/cesium/Workers/{TerrainEncoding-833187da.js → TerrainEncoding-eb8a645a.js} +30 -30
  62. package/dist/assets/cesium/Workers/Transforms-f6451f99.js +14698 -0
  63. package/dist/assets/cesium/Workers/{VertexFormat-6b480673.js → VertexFormat-030f11ff.js} +14 -14
  64. package/dist/assets/cesium/Workers/{WallGeometryLibrary-919eed92.js → WallGeometryLibrary-feef3109.js} +1 -1
  65. package/dist/assets/cesium/Workers/{WebGLConstants-a8cc3e8c.js → WebGLConstants-0b1ce7ba.js} +1 -1
  66. package/dist/assets/cesium/Workers/{WebMercatorProjection-13a90d41.js → WebMercatorProjection-13ed1a6e.js} +6 -6
  67. package/dist/assets/cesium/Workers/{arrayRemoveDuplicates-c2038105.js → arrayRemoveDuplicates-d2061e85.js} +5 -5
  68. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +5 -5
  69. package/dist/assets/cesium/Workers/{combine-ca22a614.js → combine-d9581036.js} +5 -5
  70. package/dist/assets/cesium/Workers/combineGeometry.js +1 -1
  71. package/dist/assets/cesium/Workers/createBoxGeometry.js +1 -1
  72. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +9 -9
  73. package/dist/assets/cesium/Workers/createCircleGeometry.js +13 -13
  74. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +13 -13
  75. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +11 -11
  76. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +9 -9
  77. package/dist/assets/cesium/Workers/createCorridorGeometry.js +14 -14
  78. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +12 -12
  79. package/dist/assets/cesium/Workers/createCylinderGeometry.js +1 -1
  80. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +13 -13
  81. package/dist/assets/cesium/Workers/createEllipseGeometry.js +1 -1
  82. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +1 -1
  83. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +1 -1
  84. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +1 -1
  85. package/dist/assets/cesium/Workers/createFrustumGeometry.js +1 -1
  86. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +8 -8
  87. package/dist/assets/cesium/Workers/createGeometry.js +1 -1
  88. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +33 -33
  89. package/dist/assets/cesium/Workers/createPlaneGeometry.js +8 -8
  90. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +6 -6
  91. package/dist/assets/cesium/Workers/createPolygonGeometry.js +25 -25
  92. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +17 -17
  93. package/dist/assets/cesium/Workers/createPolylineGeometry.js +11 -11
  94. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +9 -9
  95. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +9 -9
  96. package/dist/assets/cesium/Workers/createRectangleGeometry.js +16 -16
  97. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +12 -12
  98. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +10 -10
  99. package/dist/assets/cesium/Workers/createSphereGeometry.js +11 -11
  100. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +12 -12
  101. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +2 -2
  102. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +1 -1
  103. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +8 -8
  104. package/dist/assets/cesium/Workers/createVectorTilePoints.js +1 -1
  105. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +1 -1
  106. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +1 -1
  107. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  108. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +27 -28
  109. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +33 -38
  110. package/dist/assets/cesium/Workers/createWallGeometry.js +14 -14
  111. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +14 -14
  112. package/dist/assets/cesium/Workers/decodeDraco.js +10 -2
  113. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +15 -15
  114. package/dist/assets/cesium/Workers/decodeI3S.js +1 -1
  115. package/dist/assets/cesium/Workers/{defaultValue-0a909f67.js → defaultValue-fe22d8c0.js} +2 -2
  116. package/dist/assets/cesium/Workers/package.js +1 -1
  117. package/dist/assets/cesium/Workers/transcodeKTX2.js +46 -26
  118. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  119. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +24 -24
  120. package/dist/assets/{cesium.166f91.js → cesium.253914.js} +36578 -33768
  121. package/dist/assets/cesium.js +1 -1
  122. package/dist/assets/{core.9342a1.js → core.3a8205.js} +53 -58
  123. package/dist/assets/core.js +1 -1
  124. package/dist/assets/{index.fd041928.js → index.91ae2d55.js} +1 -1
  125. package/dist/assets/{ol.d2cba3.js → ol.1c946a.js} +5550 -5491
  126. package/dist/assets/ol.js +1 -1
  127. package/dist/assets/ui.0025be.css +5 -0
  128. package/dist/assets/{ui.c27597.js → ui.0025be.js} +5494 -4759
  129. package/dist/assets/ui.js +1 -1
  130. package/dist/assets/vue.js +2 -2
  131. package/dist/assets/{vuetify.2f1432.css → vuetify.6efa21.css} +2 -2
  132. package/dist/assets/{vuetify.2f1432.js → vuetify.6efa21.js} +1 -1
  133. package/dist/assets/vuetify.js +2 -2
  134. package/dist/index.html +27 -7
  135. package/index.html +26 -6
  136. package/index.js +65 -15
  137. package/lib/cesium.js +1 -1
  138. package/lib/core.js +1 -1
  139. package/lib/ui.js +1 -1
  140. package/lib/vue.js +2 -2
  141. package/lib/vuetify.js +2 -2
  142. package/package.json +18 -9
  143. package/plugins/.eslintrc +9 -0
  144. package/plugins/@vcmap/create-link/fallbackCreateLink.vue +13 -9
  145. package/plugins/@vcmap/create-link/index.js +15 -6
  146. package/plugins/@vcmap/project-selector/ModulesListComponent.vue +4 -8
  147. package/plugins/@vcmap/project-selector/ProjectSelectorComponent.vue +5 -10
  148. package/plugins/@vcmap/project-selector/README.md +4 -2
  149. package/plugins/@vcmap/project-selector/config.json +13 -13
  150. package/plugins/@vcmap/project-selector/de.json +2 -2
  151. package/plugins/@vcmap/project-selector/en.json +2 -2
  152. package/plugins/@vcmap/project-selector/index.js +63 -28
  153. package/plugins/@vcmap/search-nominatim/LICENSE.md +5 -6
  154. package/plugins/@vcmap/search-nominatim/README.md +2 -1
  155. package/plugins/@vcmap/search-nominatim/config.json +1 -2
  156. package/plugins/@vcmap/search-nominatim/index.js +7 -4
  157. package/plugins/@vcmap/search-nominatim/nominatim.js +7 -2
  158. package/plugins/@vcmap/search-nominatim/package.json +2 -36
  159. package/plugins/@vcmap/simple-graph/README.md +29 -9
  160. package/plugins/@vcmap/simple-graph/SimpleGraphComponent.vue +2 -7
  161. package/plugins/@vcmap/simple-graph/index.js +1 -1
  162. package/plugins/@vcmap/simple-graph/simpleGraphView.js +3 -1
  163. package/plugins/@vcmap/theme-changer/README.md +5 -3
  164. package/plugins/@vcmap/theme-changer/ThemeChangerComponent.vue +6 -10
  165. package/plugins/@vcmap/theme-changer/config.json +67 -67
  166. package/plugins/@vcmap/theme-changer/index.js +11 -5
  167. package/plugins/@vcmap-show-case/buttons-example/ButtonsExample.vue +76 -11
  168. package/plugins/@vcmap-show-case/buttons-example/index.js +10 -8
  169. package/plugins/@vcmap-show-case/category-tester/Categories.vue +143 -116
  170. package/plugins/@vcmap-show-case/category-tester/Category.vue +46 -26
  171. package/plugins/@vcmap-show-case/category-tester/index.js +9 -3
  172. package/plugins/@vcmap-show-case/config-editor/{editor.vue → ConfigEditor.vue} +20 -24
  173. package/plugins/@vcmap-show-case/config-editor/index.js +13 -11
  174. package/plugins/@vcmap-show-case/context-menu-tester/index.js +18 -10
  175. package/plugins/@vcmap-show-case/form-inputs-example/FormInputsExample.vue +89 -118
  176. package/plugins/@vcmap-show-case/form-inputs-example/config.json +3 -3
  177. package/plugins/@vcmap-show-case/form-inputs-example/exampleActions.js +14 -4
  178. package/plugins/@vcmap-show-case/form-inputs-example/index.js +41 -19
  179. package/plugins/@vcmap-show-case/form-inputs-example/validation.js +2 -1
  180. package/plugins/@vcmap-show-case/icons-example/README.md +1 -1
  181. package/plugins/@vcmap-show-case/icons-example/allIconsComponent.vue +10 -10
  182. package/plugins/@vcmap-show-case/icons-example/index.js +10 -8
  183. package/plugins/@vcmap-show-case/list-example/ListExample.vue +221 -103
  184. package/plugins/@vcmap-show-case/list-example/index.js +10 -8
  185. package/plugins/@vcmap-show-case/notifier-tester/index.js +9 -3
  186. package/plugins/@vcmap-show-case/notifier-tester/notifierTester.vue +15 -21
  187. package/plugins/@vcmap-show-case/table-example/DataTableExample.vue +22 -41
  188. package/plugins/@vcmap-show-case/table-example/index.js +10 -8
  189. package/plugins/@vcmap-show-case/textfields-example/TextfieldsExample.vue +7 -30
  190. package/plugins/@vcmap-show-case/textfields-example/index.js +10 -4
  191. package/plugins/@vcmap-show-case/window-tester/WindowExample.vue +16 -13
  192. package/plugins/@vcmap-show-case/window-tester/emptyComponent.vue +4 -7
  193. package/plugins/@vcmap-show-case/window-tester/index.js +26 -20
  194. package/plugins/@vcmap-show-case/window-tester/myCustomHeader.vue +7 -3
  195. package/plugins/@vcmap-show-case/window-tester/toolbox-data.js +82 -5
  196. package/plugins/@vcmap-show-case/window-tester/windowExampleContent.vue +3 -7
  197. package/plugins/@vcmap-show-case/wizard-example/index.js +9 -3
  198. package/plugins/@vcmap-show-case/wizard-example/wizardExample.vue +36 -38
  199. package/src/actions/actionHelper.js +49 -11
  200. package/src/actions/styleSelector.vue +20 -11
  201. package/src/application/VcsApp.vue +117 -80
  202. package/src/application/VcsAttributions.vue +8 -9
  203. package/src/application/VcsAttributionsFooter.vue +12 -9
  204. package/src/application/VcsMap.vue +9 -5
  205. package/src/application/VcsNavbar.vue +44 -27
  206. package/src/application/VcsSettings.vue +5 -12
  207. package/src/application/attributionsHelper.js +23 -11
  208. package/src/application/vcsAppWrapper.vue +1 -3
  209. package/src/components/buttons/VcsActionButtonList.vue +20 -17
  210. package/src/components/buttons/VcsButton.vue +19 -23
  211. package/src/components/buttons/VcsFormButton.vue +176 -0
  212. package/src/components/form-inputs-controls/VcsCheckbox.vue +6 -7
  213. package/src/components/form-inputs-controls/VcsDatePicker.vue +50 -19
  214. package/src/components/form-inputs-controls/VcsFormSection.vue +11 -12
  215. package/src/components/form-inputs-controls/VcsLabel.vue +9 -10
  216. package/src/components/form-inputs-controls/VcsRadio.vue +44 -44
  217. package/src/components/form-inputs-controls/VcsSelect.vue +16 -13
  218. package/src/components/form-inputs-controls/VcsTextArea.vue +21 -14
  219. package/src/components/form-inputs-controls/VcsTextField.vue +26 -12
  220. package/src/components/form-inputs-controls/VcsWizard.vue +78 -78
  221. package/src/components/form-inputs-controls/VcsWizardStep.vue +20 -20
  222. package/src/components/form-inputs-controls/composables.js +13 -8
  223. package/src/components/form-output/VcsFormattedNumber.vue +26 -26
  224. package/src/components/icons/+all.js +13 -5
  225. package/src/components/icons/2DAreaIcon.vue +62 -10
  226. package/src/components/icons/2DDistanceIcon.vue +14 -2
  227. package/src/components/icons/3DAreaIcon.vue +62 -10
  228. package/src/components/icons/3DDistanceIcon.vue +14 -2
  229. package/src/components/icons/3DHeightIcon.vue +14 -2
  230. package/src/components/icons/AngleIcon.vue +12 -3
  231. package/src/components/icons/AssociationsIcon.vue +6 -1
  232. package/src/components/icons/AxisIcon.vue +34 -5
  233. package/src/components/icons/BoundingBoxIcon.vue +31 -5
  234. package/src/components/icons/CheckboxCheckedIcon.vue +4 -1
  235. package/src/components/icons/CheckboxIcon.vue +1 -8
  236. package/src/components/icons/CheckboxIndeterminateIcon.vue +9 -2
  237. package/src/components/icons/CircleIcon.vue +24 -4
  238. package/src/components/icons/ClippingHorizontalIcon.vue +14 -2
  239. package/src/components/icons/ClippingIcon.vue +13 -2
  240. package/src/components/icons/ClippingVerticalIcon.vue +14 -2
  241. package/src/components/icons/ColorPickerIcon.vue +13 -2
  242. package/src/components/icons/ColorSwatchIcon.vue +7 -1
  243. package/src/components/icons/CommentIcon.vue +6 -1
  244. package/src/components/icons/CompassIcon.vue +21 -3
  245. package/src/components/icons/ComponentsIcon.vue +14 -2
  246. package/src/components/icons/ConeIcon.vue +26 -4
  247. package/src/components/icons/DimensionsHouseIcon.vue +7 -1
  248. package/src/components/icons/EditIcon.vue +13 -2
  249. package/src/components/icons/ElevationProfileIcon.vue +6 -1
  250. package/src/components/icons/ExportAreaIcon.vue +13 -2
  251. package/src/components/icons/ExportFlightIcon.vue +13 -2
  252. package/src/components/icons/ExportIcon.vue +14 -2
  253. package/src/components/icons/ExternalLinkIcon.vue +18 -3
  254. package/src/components/icons/EyeIcon.vue +12 -2
  255. package/src/components/icons/FastForwardIcon.vue +13 -2
  256. package/src/components/icons/FilterIcon.vue +13 -2
  257. package/src/components/icons/GlobalTerrainIcon.vue +12 -2
  258. package/src/components/icons/GlobeNatureIcon.vue +7 -1
  259. package/src/components/icons/GroundIcon.vue +12 -2
  260. package/src/components/icons/HealthCareIndustriesIcon.vue +6 -1
  261. package/src/components/icons/HelpIcon.vue +12 -2
  262. package/src/components/icons/HideIcon.vue +17 -3
  263. package/src/components/icons/HomePointIcon.vue +13 -3
  264. package/src/components/icons/HospitalsIcon.vue +6 -1
  265. package/src/components/icons/HouseIcon.vue +20 -3
  266. package/src/components/icons/ImportIcon.vue +21 -3
  267. package/src/components/icons/InfoIcon.vue +19 -3
  268. package/src/components/icons/KebabIcon.vue +12 -2
  269. package/src/components/icons/LabelIcon.vue +21 -3
  270. package/src/components/icons/LayersIcon.vue +12 -2
  271. package/src/components/icons/LegendIcon.vue +13 -3
  272. package/src/components/icons/LineIcon.vue +20 -3
  273. package/src/components/icons/LinkIcon.vue +13 -2
  274. package/src/components/icons/LogoutIcon.vue +13 -2
  275. package/src/components/icons/MapIcon.vue +14 -2
  276. package/src/components/icons/MenuIcon.vue +7 -1
  277. package/src/components/icons/MinusIcon.vue +14 -2
  278. package/src/components/icons/ObjectAttributeIcon.vue +13 -2
  279. package/src/components/icons/ObjectSelectIcon.vue +14 -2
  280. package/src/components/icons/ObliqueViewIcon.vue +11 -2
  281. package/src/components/icons/PdfIcon.vue +12 -2
  282. package/src/components/icons/PedestrianIcon.vue +13 -2
  283. package/src/components/icons/PenIcon.vue +13 -3
  284. package/src/components/icons/PlayCircleIcon.vue +20 -3
  285. package/src/components/icons/PlusIcon.vue +14 -3
  286. package/src/components/icons/PoiIcon.vue +17 -3
  287. package/src/components/icons/PointSelectIcon.vue +12 -2
  288. package/src/components/icons/PolygonIcon.vue +7 -1
  289. package/src/components/icons/PresentationModeIcon.vue +13 -2
  290. package/src/components/icons/ProgressIcon.vue +8 -6
  291. package/src/components/icons/QueryIcon.vue +31 -5
  292. package/src/components/icons/RectangleIcon.vue +24 -4
  293. package/src/components/icons/ReturnIcon.vue +13 -2
  294. package/src/components/icons/RewindIcon.vue +13 -2
  295. package/src/components/icons/RotateLeftIcon.vue +13 -2
  296. package/src/components/icons/RotateRightIcon.vue +13 -2
  297. package/src/components/icons/ScreenshotIcon.vue +52 -10
  298. package/src/components/icons/SearchIcon.vue +13 -3
  299. package/src/components/icons/ShadowIcon.vue +14 -3
  300. package/src/components/icons/ShapesIcon.vue +13 -3
  301. package/src/components/icons/ShareIcon.vue +17 -4
  302. package/src/components/icons/SimpleCircleFilledIcon.vue +14 -10
  303. package/src/components/icons/SimpleCircleHalfFilledIcon.vue +6 -1
  304. package/src/components/icons/SimpleCircleOutlinedIcon.vue +14 -10
  305. package/src/components/icons/SkipNextIcon.vue +11 -2
  306. package/src/components/icons/SkipPreviousIcon.vue +17 -3
  307. package/src/components/icons/SplitViewIcon.vue +6 -1
  308. package/src/components/icons/TerrainBoxIcon.vue +12 -2
  309. package/src/components/icons/TextStyleIcon.vue +7 -1
  310. package/src/components/icons/ThreeDimensionsIcon.vue +13 -2
  311. package/src/components/icons/ToolsIcon.vue +12 -2
  312. package/src/components/icons/TouchIcon.vue +13 -2
  313. package/src/components/icons/TrashCanIcon.vue +13 -2
  314. package/src/components/icons/TriangleIcon.vue +6 -2
  315. package/src/components/icons/TwoDimensionsIcon.vue +14 -2
  316. package/src/components/icons/UploadIcon.vue +13 -2
  317. package/src/components/icons/UserProfileIcon.vue +13 -2
  318. package/src/components/icons/UserShareIcon.vue +12 -2
  319. package/src/components/icons/VideoRecorderIcon.vue +16 -3
  320. package/src/components/icons/ViewpointFlightIcon.vue +22 -4
  321. package/src/components/icons/ViewpointIcon.vue +22 -4
  322. package/src/components/icons/Viewshed360Icon.vue +14 -2
  323. package/src/components/icons/ViewshedConeIcon.vue +13 -2
  324. package/src/components/icons/ViewshedIcon.vue +14 -2
  325. package/src/components/icons/WalkingIcon.vue +13 -2
  326. package/src/components/icons/WallIcon.vue +19 -3
  327. package/src/components/icons/WandIcon.vue +129 -21
  328. package/src/components/imageElementInjector.vue +1 -3
  329. package/src/components/lists/VcsActionList.vue +21 -18
  330. package/src/components/lists/VcsList.vue +208 -98
  331. package/src/components/lists/VcsTreeview.vue +30 -26
  332. package/src/components/lists/VcsTreeviewLeaf.vue +23 -22
  333. package/src/components/lists/VcsTreeviewSearchbar.vue +19 -15
  334. package/src/components/notification/VcsBadge.vue +4 -6
  335. package/src/components/notification/VcsTooltip.vue +95 -94
  336. package/src/components/notification/validation.js +1 -1
  337. package/src/components/tables/VcsDataTable.vue +107 -95
  338. package/src/components/tables/VcsTable.vue +38 -30
  339. package/src/contentTree/LayerTree.vue +2 -3
  340. package/src/contentTree/contentTreeCollection.js +48 -22
  341. package/src/contentTree/contentTreeItem.js +36 -14
  342. package/src/contentTree/groupContentTreeItem.js +44 -22
  343. package/src/contentTree/layerContentTreeItem.js +42 -20
  344. package/src/contentTree/layerGroupContentTreeItem.js +53 -31
  345. package/src/contentTree/nodeContentTreeItem.js +18 -7
  346. package/src/contentTree/obliqueCollectionContentTreeItem.js +45 -20
  347. package/src/contentTree/subContentTreeItem.js +13 -4
  348. package/src/contentTree/vcsObjectContentTreeItem.js +24 -15
  349. package/src/contentTree/viewpointContentTreeItem.js +19 -6
  350. package/src/downloadHelper.js +4 -1
  351. package/src/featureInfo/AddressBalloonComponent.vue +11 -16
  352. package/src/featureInfo/BalloonComponent.vue +35 -26
  353. package/src/featureInfo/abstractFeatureInfoView.js +29 -13
  354. package/src/featureInfo/addressBalloonFeatureInfoView.js +19 -7
  355. package/src/featureInfo/balloonFeatureInfoView.js +22 -9
  356. package/src/featureInfo/balloonHelper.js +61 -42
  357. package/src/featureInfo/featureInfo.js +71 -31
  358. package/src/featureInfo/featureInfoInteraction.js +13 -7
  359. package/src/featureInfo/iframeFeatureInfoView.js +3 -1
  360. package/src/featureInfo/tableFeatureInfoView.js +15 -5
  361. package/src/i18n/i18nCollection.js +183 -155
  362. package/src/init.js +124 -121
  363. package/src/legend/legendHelper.js +11 -6
  364. package/src/legend/styleLegendItem.vue +18 -12
  365. package/src/legend/vcsLegend.vue +15 -17
  366. package/src/manager/buttonManager.js +6 -3
  367. package/src/manager/categoryManager/CategoryComponent.vue +52 -25
  368. package/src/manager/categoryManager/CategoryComponentList.vue +33 -8
  369. package/src/manager/categoryManager/CategoryManager.vue +4 -5
  370. package/src/manager/categoryManager/categoryManager.js +82 -37
  371. package/src/manager/contextMenu/contextMenuComponent.vue +2 -6
  372. package/src/manager/contextMenu/contextMenuInteraction.js +6 -1
  373. package/src/manager/contextMenu/contextMenuManager.js +37 -22
  374. package/src/manager/navbarManager.js +15 -8
  375. package/src/manager/toolbox/GroupToolboxComponent.vue +22 -21
  376. package/src/manager/toolbox/SelectToolboxComponent.vue +36 -35
  377. package/src/manager/toolbox/ToolboxManager.vue +18 -10
  378. package/src/manager/toolbox/toolboxManager.js +30 -12
  379. package/src/manager/window/WindowComponent.vue +18 -21
  380. package/src/manager/window/WindowComponentHeader.vue +34 -26
  381. package/src/manager/window/WindowManager.vue +33 -22
  382. package/src/manager/window/windowHelper.js +79 -23
  383. package/src/manager/window/windowManager.js +61 -32
  384. package/src/navigation/mapNavCompass.vue +17 -3
  385. package/src/navigation/mapNavigation.vue +59 -40
  386. package/src/navigation/obliqueRotation.vue +6 -8
  387. package/src/navigation/orientationToolsButton.vue +6 -9
  388. package/src/navigation/overviewMap.js +72 -41
  389. package/src/navigation/overviewMapClickedInteraction.js +6 -1
  390. package/src/navigation/tiltSlider.vue +6 -10
  391. package/src/navigation/vcsCompass.vue +1 -9
  392. package/src/navigation/vcsZoomButton.vue +16 -17
  393. package/src/notifier/notifier.js +22 -13
  394. package/src/notifier/notifierComponent.vue +21 -21
  395. package/src/pluginHelper.js +23 -9
  396. package/src/search/resultItem.vue +10 -15
  397. package/src/search/resultsComponent.vue +30 -24
  398. package/src/search/search.js +36 -19
  399. package/src/search/searchComponent.vue +20 -10
  400. package/src/setup.js +9 -9
  401. package/src/state.js +22 -6
  402. package/src/styles/_typography.scss +0 -1
  403. package/src/styles/shades.scss +4 -2
  404. package/src/styles/utils/_border.scss +1 -1
  405. package/src/styles/utils/_display.scss +1 -1
  406. package/src/styles/variables.scss +39 -34
  407. package/src/styles/vcsFont.scss +6 -5
  408. package/src/styles/vcsGrid.scss +9 -0
  409. package/src/uiConfig.js +3 -1
  410. package/src/vcsUiApp.js +156 -59
  411. package/src/vuePlugins/i18n.js +4 -4
  412. package/src/vuePlugins/vuetify.js +4 -0
  413. package/dist/assets/cesium/Workers/PolygonPipeline-844aab0a.js +0 -1345
  414. package/dist/assets/cesium/Workers/Transforms-40229881.js +0 -14696
  415. package/dist/assets/ui.c27597.css +0 -5
  416. /package/dist/assets/cesium/Workers/{GeometryOffsetAttribute-04332ce7.js → GeometryOffsetAttribute-9ad0019c.js} +0 -0
  417. /package/dist/assets/{vue.5d00e9.js → vue.c1ece7.js} +0 -0
@@ -1,14 +1,10 @@
1
1
  <template>
2
2
  <v-sheet>
3
- <span>
4
- content
5
- </span>
3
+ <span> content </span>
6
4
  </v-sheet>
7
5
  </template>
8
6
 
9
- <style scoped>
10
-
11
- </style>
7
+ <style scoped></style>
12
8
  <script>
13
9
  import { VSheet } from 'vuetify/lib';
14
10
 
@@ -16,7 +12,7 @@
16
12
  name: 'WindowExampleContent',
17
13
  components: { VSheet },
18
14
  setup() {
19
- return { };
15
+ return {};
20
16
  },
21
17
  };
22
18
  </script>
@@ -7,9 +7,15 @@ import WizardExample from './wizardExample.vue';
7
7
  */
8
8
  export default async () => {
9
9
  return {
10
- get name() { return packageJSON.name; },
11
- get version() { return packageJSON.version; },
12
- get vcMapVersion() { return packageJSON.vcMapVersion; },
10
+ get name() {
11
+ return packageJSON.name;
12
+ },
13
+ get version() {
14
+ return packageJSON.version;
15
+ },
16
+ get vcMapVersion() {
17
+ return packageJSON.vcMapVersion;
18
+ },
13
19
  onVcsAppMounted(app) {
14
20
  const { action, destroy } = createToggleAction(
15
21
  {
@@ -1,7 +1,5 @@
1
1
  <template>
2
- <VcsWizard
3
- v-model.number="step"
4
- >
2
+ <VcsWizard v-model.number="step">
5
3
  <VcsWizardStep
6
4
  step="1"
7
5
  :complete="step > 1"
@@ -12,15 +10,10 @@
12
10
  <template #content>
13
11
  <!-- px-2 because does not contain input components -->
14
12
  <v-container class="px-2 py-0">
15
- <div>
16
- This is the content of the first step.
17
- </div>
18
- <VcsButton
19
- @click="increaseStep()"
20
- class="my-2"
21
- >
13
+ <div>This is the content of the first step.</div>
14
+ <VcsFormButton @click="increaseStep()" class="my-2">
22
15
  Next
23
- </VcsButton>
16
+ </VcsFormButton>
24
17
  </v-container>
25
18
  </template>
26
19
  </VcsWizardStep>
@@ -30,7 +23,7 @@
30
23
  :header-actions="actions.second"
31
24
  heading="This is the second step"
32
25
  v-model.number="step"
33
- :rules="[v => !!formValid]"
26
+ :rules="[(v) => !!formValid]"
34
27
  >
35
28
  <template #help>
36
29
  Allowed options:
@@ -47,29 +40,25 @@
47
40
  :items="['this', 'is', 'a', 'test']"
48
41
  v-model="selection"
49
42
  placeholder="Select"
50
- :rules="[v => (!!v && v !== 'this') || 'Please select a valid option.']"
43
+ :rules="[
44
+ (v) => (!!v && v !== 'this') || 'Please select a valid option.',
45
+ ]"
51
46
  />
52
- <VcsButton
53
- @click="decreaseStep()"
54
- >
55
- Back
56
- </VcsButton>
47
+ <VcsFormButton @click="decreaseStep()"> Back </VcsFormButton>
57
48
  </v-form>
58
49
  </v-container>
59
50
  </template>
60
51
  </VcsWizardStep>
61
- <VcsWizardStep
62
- step="3"
63
- v-model.number="step"
64
- >
52
+ <VcsWizardStep step="3" v-model.number="step">
65
53
  <template #header>
66
54
  <div class="d-flex flex-grow-1 flex-row-reverse">
67
- <VcsButton
55
+ <VcsFormButton
68
56
  :disabled="!selection || !formValid"
69
57
  @click="finish()"
58
+ variant="filled"
70
59
  >
71
60
  Finish
72
- </VcsButton>
61
+ </VcsFormButton>
73
62
  </div>
74
63
  </template>
75
64
  </VcsWizardStep>
@@ -77,7 +66,12 @@
77
66
  </template>
78
67
 
79
68
  <script>
80
- import { VcsWizard, VcsWizardStep, VcsButton, VcsSelect } from '@vcmap/ui';
69
+ import {
70
+ VcsWizard,
71
+ VcsWizardStep,
72
+ VcsFormButton,
73
+ VcsSelect,
74
+ } from '@vcmap/ui';
81
75
  import { VForm, VContainer } from 'vuetify/lib';
82
76
  import { ref } from 'vue';
83
77
 
@@ -87,7 +81,7 @@
87
81
  components: {
88
82
  VcsWizard,
89
83
  VcsWizardStep,
90
- VcsButton,
84
+ VcsFormButton,
91
85
  VcsSelect,
92
86
  VForm,
93
87
  VContainer,
@@ -98,19 +92,25 @@
98
92
  const form = ref();
99
93
  const formValid = ref(false);
100
94
  const actions = {
101
- second: [{
102
- name: 'resetSecondStep',
103
- title: 'Reset step',
104
- icon: '$vcsReturn',
105
- callback() {
106
- selection.value = undefined;
95
+ second: [
96
+ {
97
+ name: 'resetSecondStep',
98
+ title: 'Reset step',
99
+ icon: '$vcsReturn',
100
+ callback() {
101
+ selection.value = undefined;
102
+ },
107
103
  },
108
- }],
104
+ ],
109
105
  };
110
106
  return {
111
107
  step,
112
- increaseStep() { step.value += 1; },
113
- decreaseStep() { step.value -= 1; },
108
+ increaseStep() {
109
+ step.value += 1;
110
+ },
111
+ decreaseStep() {
112
+ step.value -= 1;
113
+ },
114
114
  selection,
115
115
  actions,
116
116
  formValid,
@@ -124,6 +124,4 @@
124
124
  };
125
125
  </script>
126
126
 
127
- <style scoped>
128
-
129
- </style>
127
+ <style scoped></style>
@@ -1,7 +1,11 @@
1
1
  import { v4 as uuid } from 'uuid';
2
2
  import { check } from '@vcsuite/check';
3
3
  import {
4
- Collection, Extent, MapCollection, mercatorProjection, Viewpoint,
4
+ Collection,
5
+ Extent,
6
+ MapCollection,
7
+ mercatorProjection,
8
+ Viewpoint,
5
9
  } from '@vcmap/core';
6
10
  import { Feature } from 'ol';
7
11
  import { reactive, ref } from 'vue';
@@ -55,7 +59,12 @@ export function createMapButtonAction(actionOptions, mapName, maps) {
55
59
  * @param {string|symbol} owner
56
60
  * @returns {{action: VcsAction, destroy: Function}}
57
61
  */
58
- export function createToggleAction(actionOptions, windowComponent, windowManager, owner) {
62
+ export function createToggleAction(
63
+ actionOptions,
64
+ windowComponent,
65
+ windowManager,
66
+ owner,
67
+ ) {
59
68
  check(actionOptions, {
60
69
  name: String,
61
70
  icon: [undefined, String],
@@ -90,7 +99,11 @@ export function createToggleAction(actionOptions, windowComponent, windowManager
90
99
  }),
91
100
  ];
92
101
 
93
- const destroy = () => { listeners.forEach((cb) => { cb(); }); };
102
+ const destroy = () => {
103
+ listeners.forEach((cb) => {
104
+ cb();
105
+ });
106
+ };
94
107
  return { action, destroy };
95
108
  }
96
109
 
@@ -140,7 +153,9 @@ export function createSearchButtonAction(app) {
140
153
  ];
141
154
  const destroy = () => {
142
155
  destroyAction();
143
- listeners.forEach((cb) => { cb(); });
156
+ listeners.forEach((cb) => {
157
+ cb();
158
+ });
144
159
  };
145
160
 
146
161
  return { searchAction, destroy };
@@ -153,7 +168,11 @@ export function createSearchButtonAction(app) {
153
168
  * @param {WindowManager} windowManager
154
169
  * @returns {(function(): void)|*}
155
170
  */
156
- export function createOverviewMapAction(overviewMap, windowComponent, windowManager) {
171
+ export function createOverviewMapAction(
172
+ overviewMap,
173
+ windowComponent,
174
+ windowManager,
175
+ ) {
157
176
  const { action, destroy } = createToggleAction(
158
177
  {
159
178
  name: 'overviewMapToggle',
@@ -180,7 +199,9 @@ export function createOverviewMapAction(overviewMap, windowComponent, windowMana
180
199
 
181
200
  const destroyAction = () => {
182
201
  destroy();
183
- listeners.forEach((cb) => { cb(); });
202
+ listeners.forEach((cb) => {
203
+ cb();
204
+ });
184
205
  };
185
206
  return { action, destroy: destroyAction };
186
207
  }
@@ -224,9 +245,13 @@ export function createModalAction(actionOptions, modalComponent, app, owner) {
224
245
  callback(event) {
225
246
  if (!this.active) {
226
247
  this.active = true;
227
- const { left, top, width } = event.currentTarget.getBoundingClientRect();
248
+ const { left, top, width } =
249
+ event.currentTarget.getBoundingClientRect();
228
250
  modalActivator = event.currentTarget;
229
- const position = { ...getWindowPositionOptions(left + width, top, app.maps.target), ...windowPositionOptions };
251
+ const position = {
252
+ ...getWindowPositionOptions(left + width, top, app.maps.target),
253
+ ...windowPositionOptions,
254
+ };
230
255
  const state = { ...modalComponent?.state, hideHeader: true };
231
256
  app.windowManager.add({ position, ...component, id, state }, owner);
232
257
  document.addEventListener('mousedown', handleMouseDown);
@@ -247,7 +272,11 @@ export function createModalAction(actionOptions, modalComponent, app, owner) {
247
272
  }),
248
273
  ];
249
274
 
250
- const destroy = () => { listeners.forEach((cb) => { cb(); }); };
275
+ const destroy = () => {
276
+ listeners.forEach((cb) => {
277
+ cb();
278
+ });
279
+ };
251
280
  return { action, destroy };
252
281
  }
253
282
 
@@ -283,7 +312,12 @@ export function createLinkAction(actionOptions, url) {
283
312
  * @param {import("@vcmap/core").MapCollection} mapCollection
284
313
  * @returns {VcsAction}
285
314
  */
286
- export function createGoToViewpointAction(actionOptions, viewpoint, viewpointCollection, mapCollection) {
315
+ export function createGoToViewpointAction(
316
+ actionOptions,
317
+ viewpoint,
318
+ viewpointCollection,
319
+ mapCollection,
320
+ ) {
287
321
  check(actionOptions, {
288
322
  name: String,
289
323
  icon: [undefined, String],
@@ -332,7 +366,11 @@ export function getViewpointFromFeature(feature) {
332
366
  * @param {import("@vcmap/core").MapCollection} mapCollection
333
367
  * @returns {VcsAction|null} returns null if the feature does not have a geometry with a valid extent
334
368
  */
335
- export function createZoomToFeatureAction(actionOptions, feature, mapCollection) {
369
+ export function createZoomToFeatureAction(
370
+ actionOptions,
371
+ feature,
372
+ mapCollection,
373
+ ) {
336
374
  check(actionOptions, {
337
375
  name: String,
338
376
  icon: [undefined, String],
@@ -6,7 +6,9 @@
6
6
  :key="index"
7
7
  @click.stop="select(item.value)"
8
8
  >
9
- <v-list-item-title :class="{ 'primary--text': item.value === currentStyleName }">
9
+ <v-list-item-title
10
+ :class="{ 'primary--text': item.value === currentStyleName }"
11
+ >
10
12
  {{ item.text }}
11
13
  </v-list-item-title>
12
14
  </v-list-item>
@@ -31,7 +33,13 @@
31
33
  <script>
32
34
  import { computed, inject, onUnmounted, ref } from 'vue';
33
35
  import {
34
- VChip, VList, VListItem, VListItemContent, VListItemIcon, VListItemTitle, VSheet,
36
+ VChip,
37
+ VList,
38
+ VListItem,
39
+ VListItemContent,
40
+ VListItemIcon,
41
+ VListItemTitle,
42
+ VSheet,
35
43
  } from 'vuetify/lib';
36
44
 
37
45
  export default {
@@ -55,11 +63,11 @@
55
63
  required: true,
56
64
  },
57
65
  },
58
- setup({ layerName, availableStyles }, { attrs }) {
66
+ setup(props, { attrs }) {
59
67
  /** @type {VcsUiApp} */
60
68
  const app = inject('vcsApp');
61
69
  /** @type {import("@vcmap/core").FeatureLayer} */
62
- const layer = app.layers.getByKey(layerName);
70
+ const layer = app.layers.getByKey(props.layerName);
63
71
  const currentStyleName = ref(layer.style.name);
64
72
  const currentStyleLegend = ref([]);
65
73
  const defaultStyle = layer.defaultStyle.name;
@@ -72,7 +80,8 @@
72
80
  }
73
81
  setStyle(layer.style);
74
82
  // TODO error handling if layer is missing or not a feature layer
75
- const styleChangedListener = layer.styleChanged.addEventListener(setStyle);
83
+ const styleChangedListener =
84
+ layer.styleChanged.addEventListener(setStyle);
76
85
  onUnmounted(() => {
77
86
  styleChangedListener();
78
87
  });
@@ -80,14 +89,15 @@
80
89
  const items = computed(() => {
81
90
  return [
82
91
  { text: 'Default', value: defaultStyle },
83
- ...availableStyles.map(s => ({ text: s, value: s })),
92
+ ...props.availableStyles.map((s) => ({ text: s, value: s })),
84
93
  ];
85
94
  });
86
95
 
87
96
  function select(styleName) {
88
- const style = styleName === defaultStyle ?
89
- layer.defaultStyle :
90
- app.styles.getByKey(styleName);
97
+ const style =
98
+ styleName === defaultStyle
99
+ ? layer.defaultStyle
100
+ : app.styles.getByKey(styleName);
91
101
  layer.setStyle(style);
92
102
  app.windowManager.remove(attrs['window-state'].id);
93
103
  }
@@ -102,5 +112,4 @@
102
112
  };
103
113
  </script>
104
114
 
105
- <style scoped>
106
- </style>
115
+ <style scoped></style>
@@ -1,9 +1,20 @@
1
1
  <template>
2
2
  <v-container class="fill-height pa-0" absolute fluid>
3
3
  <VcsNavbar />
4
- <v-container class="vcs-main pa-0" :class="{ 'vcs-main-xs': $vuetify.breakpoint.xs }" fluid absolute>
4
+ <v-container
5
+ class="vcs-main pa-0"
6
+ :class="{ 'vcs-main-xs': $vuetify.breakpoint.xs }"
7
+ fluid
8
+ absolute
9
+ >
5
10
  <template v-if="$vuetify.breakpoint.xs">
6
- <img v-if="mobileLogo" :src="mobileLogo" alt="Logo" draggable="false" class="mobile-logo">
11
+ <img
12
+ v-if="mobileLogo"
13
+ :src="mobileLogo"
14
+ alt="Logo"
15
+ draggable="false"
16
+ class="mobile-logo"
17
+ />
7
18
  <div v-else class="company-logo-mobile mobile-logo" />
8
19
  </template>
9
20
  <VcsButton
@@ -23,43 +34,45 @@
23
34
  <NotifierComponent />
24
35
  </v-container>
25
36
  <v-footer absolute v-if="$vuetify.breakpoint.smAndUp" min-height="22px">
26
- <VcsAttributionsFooter :entries="attributionEntries" :attribution-action="attributionAction" />
37
+ <VcsAttributionsFooter
38
+ :entries="attributionEntries"
39
+ :attribution-action="attributionAction"
40
+ />
27
41
  </v-footer>
28
42
  </v-container>
29
43
  </template>
30
44
 
31
45
  <style scoped lang="scss">
32
- ::v-deep .v-application--wrap {
33
- min-height: fit-content;
34
- }
35
- .vcs-main {
36
- position: absolute;
37
- top: 48px;
38
- left: 0;
39
- right: 0;
40
- bottom: 22px;
41
- }
42
-
43
- .vcs-main-xs {
44
- top: 0;
45
- bottom: 56px;
46
- }
47
-
48
- .mobile-logo {
49
- max-height: 40px;
50
- max-width: 70px;
51
- position: absolute;
52
- top: 1rem;
53
- left: 1rem;
54
- z-index: 1;
55
- }
56
-
57
- .mobile-attribution-btn{
58
- position: fixed;
59
- right: 2px;
60
- bottom: 56px;
61
- }
46
+ ::v-deep .v-application--wrap {
47
+ min-height: fit-content;
48
+ }
49
+ .vcs-main {
50
+ position: absolute;
51
+ top: 48px;
52
+ left: 0;
53
+ right: 0;
54
+ bottom: 22px;
55
+ }
62
56
 
57
+ .vcs-main-xs {
58
+ top: 0;
59
+ bottom: 56px;
60
+ }
61
+
62
+ .mobile-logo {
63
+ max-height: 40px;
64
+ max-width: 70px;
65
+ position: absolute;
66
+ top: 1rem;
67
+ left: 1rem;
68
+ z-index: 1;
69
+ }
70
+
71
+ .mobile-attribution-btn {
72
+ position: fixed;
73
+ right: 2px;
74
+ bottom: 56px;
75
+ }
63
76
  </style>
64
77
 
65
78
  <script>
@@ -69,7 +82,8 @@
69
82
  getCurrentInstance,
70
83
  onMounted,
71
84
  onUnmounted,
72
- provide, watch,
85
+ provide,
86
+ watch,
73
87
  } from 'vue';
74
88
  import { getVcsAppById } from '@vcmap/core';
75
89
  import { VContainer, VFooter } from 'vuetify/lib';
@@ -80,7 +94,10 @@
80
94
  import { vcsAppSymbol } from '../pluginHelper.js';
81
95
  import VcsMap from './VcsMap.vue';
82
96
  import VcsNavbar from './VcsNavbar.vue';
83
- import { createMapButtonAction, createToggleAction } from '../actions/actionHelper.js';
97
+ import {
98
+ createMapButtonAction,
99
+ createToggleAction,
100
+ } from '../actions/actionHelper.js';
84
101
  import MapNavigation from '../navigation/mapNavigation.vue';
85
102
  import VcsSettings from './VcsSettings.vue';
86
103
  import { WindowSlot } from '../manager/window/windowManager.js';
@@ -112,7 +129,10 @@
112
129
  try {
113
130
  plugin.onVcsAppMounted(app);
114
131
  } catch (e) {
115
- getLogger('VcsUiApp').error(`Error in plugin ${plugin.name} onVcsAppMounted hook`, e);
132
+ getLogger('VcsUiApp').error(
133
+ `Error in plugin ${plugin.name} onVcsAppMounted hook`,
134
+ e,
135
+ );
116
136
  }
117
137
  }
118
138
  }
@@ -175,7 +195,7 @@
175
195
  return () => {
176
196
  mapAddedListener();
177
197
  mapRemovedListener();
178
- Object.values(mapButtonActionDestroy).forEach(cb => cb());
198
+ Object.values(mapButtonActionDestroy).forEach((cb) => cb());
179
199
  };
180
200
  }
181
201
 
@@ -229,9 +249,12 @@
229
249
  * Adds a button, if legend definitions are available or removes legend otherwise.
230
250
  */
231
251
  const handleLegend = () => {
232
- const layersWithLegend = [...app.layers]
233
- .filter(layer => layer.style?.properties?.legend ?? layer.properties?.legend);
234
- const stylesWithLegend = [...app.styles].filter(style => style?.properties?.legend);
252
+ const layersWithLegend = [...app.layers].filter(
253
+ (layer) => layer.style?.properties?.legend ?? layer.properties?.legend,
254
+ );
255
+ const stylesWithLegend = [...app.styles].filter(
256
+ (style) => style?.properties?.legend,
257
+ );
235
258
  if (layersWithLegend < 1 && stylesWithLegend < 1) {
236
259
  app.navbarManager.remove('legend');
237
260
  app.windowManager.remove('legend');
@@ -256,7 +279,7 @@
256
279
  return () => {
257
280
  destroy();
258
281
  legendDestroy();
259
- listeners.forEach(cb => cb());
282
+ listeners.forEach((cb) => cb());
260
283
  };
261
284
  }
262
285
 
@@ -266,21 +289,22 @@
266
289
  * @returns {function():void}
267
290
  */
268
291
  export function setupSettingsWindow(app) {
269
- const { action: settingsAction, destroy: settingsDestroy } = createToggleAction(
270
- {
271
- name: 'settings.title',
272
- icon: 'mdi-cog',
273
- title: 'settings.tooltip',
274
- },
275
- {
276
- id: 'settingsId',
277
- component: VcsSettings,
278
- state: { headerIcon: 'mdi-cog', headerTitle: 'settings.title' },
279
- slot: WindowSlot.DYNAMIC_RIGHT,
280
- },
281
- app.windowManager,
282
- vcsAppSymbol,
283
- );
292
+ const { action: settingsAction, destroy: settingsDestroy } =
293
+ createToggleAction(
294
+ {
295
+ name: 'settings.title',
296
+ icon: 'mdi-cog',
297
+ title: 'settings.tooltip',
298
+ },
299
+ {
300
+ id: 'settingsId',
301
+ component: VcsSettings,
302
+ state: { headerIcon: 'mdi-cog', headerTitle: 'settings.title' },
303
+ slot: WindowSlot.DYNAMIC_RIGHT,
304
+ },
305
+ app.windowManager,
306
+ vcsAppSymbol,
307
+ );
284
308
  app.navbarManager.add(
285
309
  {
286
310
  id: 'settingsToggle',
@@ -335,8 +359,10 @@
335
359
  app.navbarManager.remove(id);
336
360
  }
337
361
  };
338
- const addedListener = app.categoryManager.added.addEventListener(setupCategories);
339
- const removedListener = app.categoryManager.removed.addEventListener(setupCategories);
362
+ const addedListener =
363
+ app.categoryManager.added.addEventListener(setupCategories);
364
+ const removedListener =
365
+ app.categoryManager.removed.addEventListener(setupCategories);
340
366
  setupCategories();
341
367
 
342
368
  return () => {
@@ -378,7 +404,9 @@
378
404
  );
379
405
 
380
406
  return () => {
381
- listeners.forEach((cb) => { cb(); });
407
+ listeners.forEach((cb) => {
408
+ cb();
409
+ });
382
410
  listeners.splice(0);
383
411
  stopWatching();
384
412
  };
@@ -393,25 +421,26 @@
393
421
  export function setupAttributions(app) {
394
422
  const { entries, destroy } = getAttributions(app);
395
423
 
396
- const { action: attributionAction, destroy: attributionDestroy } = createToggleAction(
397
- {
398
- name: 'attributionToggle',
399
- icon: 'mdi-chevron-double-right',
400
- title: 'footer.attributions.tooltip',
401
- },
402
- {
403
- id: 'attribution',
404
- component: VcsAttributions,
405
- state: {
406
- headerTitle: 'footer.attributions.title',
407
- headerIcon: 'mdi-copyright',
424
+ const { action: attributionAction, destroy: attributionDestroy } =
425
+ createToggleAction(
426
+ {
427
+ name: 'attributionToggle',
428
+ icon: 'mdi-chevron-double-right',
429
+ title: 'footer.attributions.tooltip',
408
430
  },
409
- slot: WindowSlot.DYNAMIC_RIGHT,
410
- props: { entries },
411
- },
412
- app.windowManager,
413
- vcsAppSymbol,
414
- );
431
+ {
432
+ id: 'attribution',
433
+ component: VcsAttributions,
434
+ state: {
435
+ headerTitle: 'footer.attributions.title',
436
+ headerIcon: 'mdi-copyright',
437
+ },
438
+ slot: WindowSlot.DYNAMIC_RIGHT,
439
+ props: { entries },
440
+ },
441
+ app.windowManager,
442
+ vcsAppSymbol,
443
+ );
415
444
 
416
445
  return {
417
446
  attributionEntries: entries,
@@ -458,8 +487,12 @@
458
487
  const legendDestroy = setupLegendWindow(app);
459
488
  const settingsDestroy = setupSettingsWindow(app);
460
489
  const destroyComponentsWindow = setupCategoryManagerWindow(app);
461
- const destroyThemingListener = setupUiConfigTheming(app, getCurrentInstance().proxy.$vuetify);
462
- const { attributionEntries, attributionAction, destroyAttributions } = setupAttributions(app);
490
+ const destroyThemingListener = setupUiConfigTheming(
491
+ app,
492
+ getCurrentInstance().proxy.$vuetify,
493
+ );
494
+ const { attributionEntries, attributionAction, destroyAttributions } =
495
+ setupAttributions(app);
463
496
 
464
497
  let pluginMountedListener;
465
498
  onMounted(() => {
@@ -482,7 +515,11 @@
482
515
 
483
516
  return {
484
517
  mapId,
485
- mobileLogo: computed(() => app.uiConfig.config.value.mobileLogo ?? app.uiConfig.config.value.logo),
518
+ mobileLogo: computed(
519
+ () =>
520
+ app.uiConfig.config.value.mobileLogo ??
521
+ app.uiConfig.config.value.logo,
522
+ ),
486
523
  attributionEntries,
487
524
  attributionAction,
488
525
  };