@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,41 +1,42 @@
1
1
  @import 'shades.scss';
2
+ @import 'vcsFont.scss';
2
3
 
3
4
  /** Global **/
4
- $font-size: 14px;
5
- $font-size-root: 14px;
5
+ $font-size: $vcs-font-size;
6
+ $font-size-root: $vcs-font-size;
6
7
 
7
8
  $material-dark: (
8
- 'background': map-get($shades, 'black'),
9
- 'cards': map-get($shades, 'black'),
10
- 'text-fields': (
11
- 'outlined': var(--v-base-base),
12
- 'outlined-hover': var(--v-base-base),
13
- ),
14
- 'input-bottom-line': var(--v-base-base),
15
- 'dividers': var(--v-base-lighten2),
16
- 'toolbar': rgba(map-get($shades, 'black'), 0.8),
17
- 'table': (
18
- 'hover': var(--v-base-lighten4),
19
- ),
9
+ 'background': map-get($shades, 'black'),
10
+ 'cards': map-get($shades, 'black'),
11
+ 'text-fields': (
12
+ 'outlined': var(--v-base-base),
13
+ 'outlined-hover': var(--v-base-base),
14
+ ),
15
+ 'input-bottom-line': var(--v-base-base),
16
+ 'dividers': var(--v-base-lighten2),
17
+ 'toolbar': rgba(map-get($shades, 'black'), 0.8),
18
+ 'table': (
19
+ 'hover': var(--v-base-lighten4),
20
+ ),
20
21
  );
21
22
  $material-light: (
22
- 'text-fields': (
23
- 'outlined': var(--v-base-base),
24
- 'outlined-hover': var(--v-base-base),
25
- ),
26
- 'input-bottom-line': var(--v-base-base),
27
- 'text': (
28
- 'primary': map-get($shades, 'black'),
29
- 'disabled': rgba(map-get($shades, 'black'), 0.3),
30
- ),
31
- 'buttons': (
32
- 'disabled': rgba(map-get($shades, 'black'), 0.5),
33
- ),
34
- 'dividers': var(--v-base-lighten2),
35
- 'toolbar': rgba(map-get($shades, 'white'), 0.8),
36
- 'table': (
37
- 'hover': var(--v-base-lighten4),
38
- ),
23
+ 'text-fields': (
24
+ 'outlined': var(--v-base-base),
25
+ 'outlined-hover': var(--v-base-base),
26
+ ),
27
+ 'input-bottom-line': var(--v-base-base),
28
+ 'text': (
29
+ 'primary': map-get($shades, 'black'),
30
+ 'disabled': rgba(map-get($shades, 'black'), 0.3),
31
+ ),
32
+ 'buttons': (
33
+ 'disabled': rgba(map-get($shades, 'black'), 0.5),
34
+ ),
35
+ 'dividers': var(--v-base-lighten2),
36
+ 'toolbar': rgba(map-get($shades, 'white'), 0.8),
37
+ 'table': (
38
+ 'hover': var(--v-base-lighten4),
39
+ ),
39
40
  );
40
41
 
41
42
  // input font and icon
@@ -43,7 +44,7 @@ $input-font-size: $font-size;
43
44
  $input-icon-height: 16px; // 24px !default;
44
45
  $input-icon-width: 16px; // 24px !default;
45
46
  $input-icon-min-width: 16px; // 24px !default;
46
-
47
+ $input-icon-font-size: 16px;
47
48
 
48
49
  /** VcsTextfield **/
49
50
 
@@ -71,8 +72,9 @@ $text-field-outlined-label-position-x: 6px;
71
72
  $text-field-outlined-label-position-y: -14px;
72
73
  $text-field-outlined-dense-label-position-x: 2px;
73
74
  $text-field-outlined-dense-label-position-y: -10px;
75
+ $label-font-size: $font-size; // 1rem !default;
74
76
  $text-field-label-top: 2px; // 6px !default;
75
- $text-field-label-active-transform: translateY(-14px) scale(.75); //translateY(-18px) scale(.75) !default;
77
+ $text-field-label-active-transform: translateY(-14px) scale(0.75); //translateY(-18px) scale(.75) !default;
76
78
 
77
79
  /** VcsTextarea **/
78
80
  $textarea-box-enclosed-single-outlined-margin-top: 0; // 10px !default;
@@ -130,4 +132,7 @@ $snackbar-bottom: 36px;
130
132
  $snackbar-background-color: rgba(0, 0, 0, 0.8);
131
133
  $snackbar-content-padding: 8px;
132
134
  $snackbar-action-margin: 8px;
133
- $snackbar-wrapper-min-height: 36px;
135
+ $snackbar-wrapper-min-height: 36px;
136
+
137
+ /** Datatable **/
138
+ $data-table-regular-row-font-size: $font-size;
@@ -4,7 +4,8 @@
4
4
  font-style: normal;
5
5
  font-weight: 400;
6
6
  src: url(../assets/font/TitilliumWeb-Regular.woff2) format('woff2');
7
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
7
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB,
8
+ U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
8
9
  }
9
10
  /* latin */
10
11
  @font-face {
@@ -12,11 +13,11 @@
12
13
  font-style: normal;
13
14
  font-weight: 400;
14
15
  src: url(../assets/font/TitilliumWeb-Regular.woff2) format('woff2');
15
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
16
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
17
+ U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
18
+ U+FEFF, U+FFFD;
16
19
  }
17
20
 
18
21
  // fonts
19
- $base-font-size: 14px; // base font-size minimum size
20
-
22
+ $vcs-font-size: 13px;
21
23
  // header
22
-
@@ -2,3 +2,12 @@
2
2
  $line-height-base: 40px; // header lines
3
3
  $line-height-dense: 32px; // rows in form field
4
4
 
5
+ .gap-1 {
6
+ gap: 4px;
7
+ }
8
+ .gap-2 {
9
+ gap: 8px;
10
+ }
11
+ .gap-3 {
12
+ gap: 12px;
13
+ }
package/src/uiConfig.js CHANGED
@@ -71,7 +71,9 @@ class UiConfig extends Collection {
71
71
  * @inheritDoc
72
72
  */
73
73
  destroy() {
74
- this._listeners.forEach((cb) => { cb(); });
74
+ this._listeners.forEach((cb) => {
75
+ cb();
76
+ });
75
77
  this._listeners = [];
76
78
  super.destroy();
77
79
  }
package/src/vcsUiApp.js CHANGED
@@ -18,7 +18,9 @@ import {
18
18
  serializePlugin,
19
19
  deserializePlugin,
20
20
  } from './pluginHelper.js';
21
- import ToolboxManager, { setupDefaultGroups } from './manager/toolbox/toolboxManager.js';
21
+ import ToolboxManager, {
22
+ setupDefaultGroups,
23
+ } from './manager/toolbox/toolboxManager.js';
22
24
  import WindowManager from './manager/window/windowManager.js';
23
25
  import NavbarManager from './manager/navbarManager.js';
24
26
  import { createContentTreeCollection } from './contentTree/contentTreeCollection.js';
@@ -35,7 +37,7 @@ import Search from './search/search.js';
35
37
  import Notifier from './notifier/notifier.js';
36
38
 
37
39
  /**
38
- * @typedef {import("@vcmap/core").VcsAppConfig} VcsUiAppConfig
40
+ * @typedef {import("@vcmap/core").VcsModuleConfig} VcsUiModuleConfig
39
41
  * @property {Array<Object>} [plugins]
40
42
  * @property {Array<ContentTreeItemOptions>} [contentTree]
41
43
  * @property {Array<UiConfigurationItem>} [uiConfig]
@@ -73,7 +75,6 @@ import Notifier from './notifier/notifier.js';
73
75
  * @api
74
76
  */
75
77
 
76
-
77
78
  /**
78
79
  * @interface VcsComponentManager
79
80
  * @template {Object} T - the component type
@@ -106,7 +107,9 @@ class VcsUiApp extends VcsApp {
106
107
  * Gets the version of the @vcmap/ui npm package
107
108
  * @returns {string}
108
109
  */
109
- static getVersion() { return version; }
110
+ static getVersion() {
111
+ return version;
112
+ }
110
113
 
111
114
  constructor() {
112
115
  super();
@@ -138,17 +141,26 @@ class VcsUiApp extends VcsApp {
138
141
  this._contextMenuManager.removeOwner(plugin.name);
139
142
  this._search.removeOwner(plugin.name);
140
143
  if (plugin.i18n) {
141
- this.i18n.addPluginMessages(plugin.name, plugin[moduleIdSymbol], plugin.i18n);
144
+ this.i18n.addPluginMessages(
145
+ plugin.name,
146
+ plugin[moduleIdSymbol],
147
+ plugin.i18n,
148
+ );
142
149
  }
143
150
  if (plugin.initialize) {
144
151
  let state;
145
152
  if (this._cachedAppState.moduleIds.includes(plugin[moduleIdSymbol])) {
146
- state = this._cachedAppState.plugins.find(s => s.name === plugin.name);
153
+ state = this._cachedAppState.plugins.find(
154
+ (s) => s.name === plugin.name,
155
+ );
147
156
  }
148
157
  try {
149
158
  plugin.initialize(this, state?.state);
150
159
  } catch (e) {
151
- getLogger().error(`Error in plugin ${plugin.name} initialize hook`, e);
160
+ getLogger().error(
161
+ `Error in plugin ${plugin.name} initialize hook`,
162
+ e,
163
+ );
152
164
  }
153
165
  }
154
166
  }),
@@ -167,7 +179,9 @@ class VcsUiApp extends VcsApp {
167
179
  * @type {OverrideClassRegistry<ContentTreeItem>}
168
180
  * @private
169
181
  */
170
- this._contentTreeClassRegistry = new OverrideClassRegistry(contentTreeClassRegistry);
182
+ this._contentTreeClassRegistry = new OverrideClassRegistry(
183
+ contentTreeClassRegistry,
184
+ );
171
185
 
172
186
  /**
173
187
  * @type {OverrideContentTreeCollection}
@@ -256,85 +270,113 @@ class VcsUiApp extends VcsApp {
256
270
  * @type {import("@vcmap/core").OverrideCollection<VcsPlugin>}
257
271
  * @readonly
258
272
  */
259
- get plugins() { return this._plugins; }
273
+ get plugins() {
274
+ return this._plugins;
275
+ }
260
276
 
261
277
  /**
262
278
  * @type {OverrideContentTreeCollection}
263
279
  * @readonly
264
280
  */
265
- get contentTree() { return this._contentTree; }
281
+ get contentTree() {
282
+ return this._contentTree;
283
+ }
266
284
 
267
285
  /**
268
286
  * @type {OverrideClassRegistry<ContentTreeItem>}
269
287
  * @readonly
270
288
  */
271
- get contentTreeClassRegistry() { return this._contentTreeClassRegistry; }
289
+ get contentTreeClassRegistry() {
290
+ return this._contentTreeClassRegistry;
291
+ }
272
292
 
273
293
  /**
274
294
  * @returns {ToolboxManager}
275
295
  * @readonly
276
296
  */
277
- get toolboxManager() { return this._toolboxManager; }
297
+ get toolboxManager() {
298
+ return this._toolboxManager;
299
+ }
278
300
 
279
301
  /**
280
302
  * @returns {WindowManager}
281
303
  * @readonly
282
304
  */
283
- get windowManager() { return this._windowManager; }
305
+ get windowManager() {
306
+ return this._windowManager;
307
+ }
284
308
 
285
309
  /**
286
310
  * @returns {NavbarManager}
287
311
  * @readonly
288
312
  */
289
- get navbarManager() { return this._navbarManager; }
313
+ get navbarManager() {
314
+ return this._navbarManager;
315
+ }
290
316
 
291
317
  /**
292
318
  * @returns {FeatureInfo}
293
319
  * @readonly
294
320
  */
295
- get featureInfo() { return this._featureInfo; }
321
+ get featureInfo() {
322
+ return this._featureInfo;
323
+ }
296
324
 
297
325
  /**
298
326
  * @type {OverviewMap}
299
327
  * @readonly
300
328
  */
301
- get overviewMap() { return this._overviewMap; }
329
+ get overviewMap() {
330
+ return this._overviewMap;
331
+ }
302
332
 
303
333
  /**
304
334
  * @type {I18nCollection}
305
335
  * @readonly
306
336
  */
307
- get i18n() { return this._i18n; }
337
+ get i18n() {
338
+ return this._i18n;
339
+ }
308
340
 
309
341
  /**
310
342
  * @returns {CategoryManager}
311
343
  * @readonly
312
344
  */
313
- get categoryManager() { return this._categoryManager; }
345
+ get categoryManager() {
346
+ return this._categoryManager;
347
+ }
314
348
 
315
349
  /**
316
350
  * @type {ContextMenuManager}
317
351
  * @readonly
318
352
  */
319
- get contextMenuManager() { return this._contextMenuManager; }
353
+ get contextMenuManager() {
354
+ return this._contextMenuManager;
355
+ }
320
356
 
321
357
  /**
322
358
  * @type {Search}
323
359
  * @readonly
324
360
  */
325
- get search() { return this._search; }
361
+ get search() {
362
+ return this._search;
363
+ }
326
364
 
327
365
  /**
328
366
  * @type {UiConfig}
329
367
  * @readonly
330
368
  */
331
- get uiConfig() { return this._uiConfig; }
369
+ get uiConfig() {
370
+ return this._uiConfig;
371
+ }
332
372
 
333
373
  /**
334
374
  * @type {Notifier}
335
375
  * @readonly
336
376
  */
337
- get notifier() { return this._notifier; }
377
+ get notifier() {
378
+ return this._notifier;
379
+ }
338
380
 
339
381
  /**
340
382
  * Get the state of the application. When passed the forUrl flag, only a minimal set of states shall be provided for a sharable link to the current state (to ensure
@@ -351,16 +393,21 @@ class VcsUiApp extends VcsApp {
351
393
 
352
394
  state.activeMap = this.maps.activeMap.name;
353
395
  const viewpoint = await this.maps.activeMap.getViewpoint();
354
- state.activeViewpoint = viewpoint?.isValid?.() ? viewpoint.toJSON() : undefined;
396
+ state.activeViewpoint = viewpoint?.isValid?.()
397
+ ? viewpoint.toJSON()
398
+ : undefined;
355
399
  state.layers = [...this.layers]
356
- .filter(l => l.isSupported(this.maps.activeMap) &&
357
- l[moduleIdSymbol] !== defaultDynamicModuleId &&
358
- l[moduleIdSymbol] !== volatileModuleId &&
359
- (
360
- ((l.active || l.loading) && !l.activeOnStartup) ||
361
- (!l.active && l.activeOnStartup) ||
362
- ((l.active || l.loading) && l.style !== l.defaultStyle && this.styles.has(l.style))
363
- ))
400
+ .filter(
401
+ (l) =>
402
+ l.isSupported(this.maps.activeMap) &&
403
+ l[moduleIdSymbol] !== defaultDynamicModuleId &&
404
+ l[moduleIdSymbol] !== volatileModuleId &&
405
+ (((l.active || l.loading) && !l.activeOnStartup) ||
406
+ (!l.active && l.activeOnStartup) ||
407
+ ((l.active || l.loading) &&
408
+ l.style !== l.defaultStyle &&
409
+ this.styles.has(l.style))),
410
+ )
364
411
  .map((l) => {
365
412
  const layerState = {
366
413
  name: l.name,
@@ -378,11 +425,25 @@ class VcsUiApp extends VcsApp {
378
425
  return layerState;
379
426
  });
380
427
 
381
- state.plugins = await Promise.all([...this.plugins]
382
- .filter(p => p[moduleIdSymbol] !== defaultDynamicModuleId &&
383
- p[moduleIdSymbol] !== volatileModuleId &&
384
- typeof p.getState === 'function')
385
- .map(async p => ({ name: p.name, state: await p.getState(forUrl) })));
428
+ const plugins = await Promise.all(
429
+ [...this.plugins]
430
+ .filter(
431
+ (p) =>
432
+ p[moduleIdSymbol] !== defaultDynamicModuleId &&
433
+ p[moduleIdSymbol] !== volatileModuleId &&
434
+ typeof p.getState === 'function',
435
+ )
436
+ .map(async (p) => {
437
+ try {
438
+ return { name: p.name, state: await p.getState(forUrl) };
439
+ } catch (e) {
440
+ getLogger().error(e);
441
+ return null;
442
+ }
443
+ }),
444
+ );
445
+
446
+ state.plugins = plugins.filter((p) => p);
386
447
 
387
448
  if (this.maps.activeMap instanceof ObliqueMap) {
388
449
  state.activeObliqueCollection = this.maps.activeMap.collection.name;
@@ -398,21 +459,23 @@ class VcsUiApp extends VcsApp {
398
459
  async _parseModule(module) {
399
460
  const { config } = module;
400
461
  if (Array.isArray(config.plugins)) {
401
- const plugins = await Promise.all(config.plugins.map(async (pluginConfig) => {
402
- const plugin = await loadPlugin(pluginConfig.name, pluginConfig);
403
- if (!plugin) {
404
- return null;
405
- }
406
- if (!isValidPackageName(plugin.name)) {
407
- getLogger().warning(`plugin ${plugin.name} has no valid package name!`);
408
- }
409
- plugin[moduleIdSymbol] = module._id;
410
- return plugin;
411
- }));
462
+ const plugins = await Promise.all(
463
+ config.plugins.map(async (pluginConfig) => {
464
+ const plugin = await loadPlugin(pluginConfig.name, pluginConfig);
465
+ if (!plugin) {
466
+ return null;
467
+ }
468
+ if (!isValidPackageName(plugin.name)) {
469
+ getLogger().warning(
470
+ `plugin ${plugin.name} has no valid package name!`,
471
+ );
472
+ }
473
+ plugin[moduleIdSymbol] = module._id;
474
+ return plugin;
475
+ }),
476
+ );
412
477
 
413
- plugins
414
- .filter(p => p)
415
- .map(p => this._plugins.override(p));
478
+ plugins.filter((p) => p).map((p) => this._plugins.override(p));
416
479
  }
417
480
  if (Array.isArray(config.i18n)) {
418
481
  await this.i18n.parseItems(config.i18n, module._id);
@@ -420,7 +483,10 @@ class VcsUiApp extends VcsApp {
420
483
  await super._parseModule(module);
421
484
  await this._contentTree.parseItems(config.contentTree, module._id);
422
485
  await this._uiConfig.parseItems(config.uiConfig, module._id);
423
- await this._featureInfo.collection.parseItems(config.featureInfo, module._id);
486
+ await this._featureInfo.collection.parseItems(
487
+ config.featureInfo,
488
+ module._id,
489
+ );
424
490
  }
425
491
 
426
492
  /**
@@ -440,30 +506,59 @@ class VcsUiApp extends VcsApp {
440
506
  layer.deactivate();
441
507
  }
442
508
 
443
- if (layerState.styleName && this.styles.hasKey(layerState.styleName) && layer.setStyle) {
509
+ if (
510
+ layerState.styleName &&
511
+ this.styles.hasKey(layerState.styleName) &&
512
+ layer.setStyle
513
+ ) {
444
514
  layer.setStyle(this.styles.getByKey(layerState.styleName));
445
515
  }
446
516
  }
447
517
  });
448
- if (this._cachedAppState.activeMap && this.maps.hasKey(this._cachedAppState.activeMap)) {
518
+ if (
519
+ this._cachedAppState.activeMap &&
520
+ this.maps.hasKey(this._cachedAppState.activeMap)
521
+ ) {
449
522
  await this.maps.setActiveMap(this._cachedAppState.activeMap);
450
523
  }
451
524
  if (
452
525
  this._cachedAppState.activeObliqueCollection &&
453
526
  this.maps.activeMap instanceof ObliqueMap &&
454
- this.obliqueCollections.hasKey(this._cachedAppState.activeObliqueCollection)
527
+ this.obliqueCollections.hasKey(
528
+ this._cachedAppState.activeObliqueCollection,
529
+ )
455
530
  ) {
456
531
  await this.maps.activeMap.setCollection(
457
- this.obliqueCollections.getByKey(this._cachedAppState.activeObliqueCollection),
458
- this._cachedAppState.activeViewpoint,
532
+ this.obliqueCollections.getByKey(
533
+ this._cachedAppState.activeObliqueCollection,
534
+ ),
535
+ new Viewpoint(this._cachedAppState.activeViewpoint),
459
536
  );
460
537
  } else if (this._cachedAppState.activeViewpoint && this.maps.activeMap) {
461
- await this.maps.activeMap.gotoViewpoint(new Viewpoint(this._cachedAppState.activeViewpoint));
538
+ await this.maps.activeMap.gotoViewpoint(
539
+ new Viewpoint(this._cachedAppState.activeViewpoint),
540
+ );
462
541
  }
463
- this._cachedAppState.moduleIds.splice(this._cachedAppState.moduleIds.indexOf(module._id), 1);
542
+ this._cachedAppState.moduleIds.splice(
543
+ this._cachedAppState.moduleIds.indexOf(module._id),
544
+ 1,
545
+ );
464
546
  }
465
547
  }
466
548
 
549
+ /**
550
+ * @param {string} moduleId
551
+ * @returns {VcsUiModuleConfig}
552
+ */
553
+ serializeModule(moduleId) {
554
+ const config = super.serializeModule(moduleId);
555
+ config.uiConfig = this._uiConfig.serializeModule(moduleId);
556
+ config.featureInfo = this._featureInfo.collection.serializeModule(moduleId);
557
+ config.i18n = this._i18n.serializeModule(moduleId);
558
+ config.plugins = this._plugins.serializeModule(moduleId);
559
+ return config;
560
+ }
561
+
467
562
  /**
468
563
  * @param {string} moduleId
469
564
  * @returns {Promise<void>}
@@ -490,7 +585,9 @@ class VcsUiApp extends VcsApp {
490
585
  this.categoryManager.destroy();
491
586
  this.contextMenuManager.destroy();
492
587
  this._overviewMap.destroy();
493
- this._pluginListeners.forEach((cb) => { cb(); });
588
+ this._pluginListeners.forEach((cb) => {
589
+ cb();
590
+ });
494
591
  this._pluginListeners = [];
495
592
  destroyCollection(this._plugins);
496
593
  destroyCollection(this._contentTree);
@@ -5,7 +5,6 @@ import { vcsAppSymbol } from '../pluginHelper.js';
5
5
  import de from '../i18n/de.js';
6
6
  import en from '../i18n/en.js';
7
7
 
8
-
9
8
  Vue.use(VueI18n);
10
9
 
11
10
  /**
@@ -46,7 +45,7 @@ function setI18n(messages, i18n) {
46
45
  * @returns {function():void} returns a destroy function
47
46
  */
48
47
  export function setupI18n(app, i18n) {
49
- const defaultMessages = { en, de };
48
+ const defaultMessages = { name: 'default', en, de };
50
49
  defaultMessages[i18nPluginSymbol] = vcsAppSymbol;
51
50
  app.i18n.add(defaultMessages);
52
51
 
@@ -64,7 +63,8 @@ export function setupI18n(app, i18n) {
64
63
  }),
65
64
  ];
66
65
  return function tearDownI18nSetup() {
67
- destroyFunctions.forEach((destroy) => { destroy(); });
66
+ destroyFunctions.forEach((destroy) => {
67
+ destroy();
68
+ });
68
69
  };
69
70
  }
70
-
@@ -19,6 +19,9 @@ export const defaultPrimaryColor = {
19
19
  * @returns {import("vuetify").default}
20
20
  */
21
21
  export function createVuetify() {
22
+ const dark =
23
+ window.matchMedia?.('(prefers-color-scheme: dark)')?.matches ?? false;
24
+
22
25
  return new Vuetify({
23
26
  treeShake: false,
24
27
  defaultAssets: {
@@ -27,6 +30,7 @@ export function createVuetify() {
27
30
  },
28
31
  },
29
32
  theme: {
33
+ dark,
30
34
  options: {
31
35
  customProperties: true,
32
36
  },