@vcmap/ui 5.0.0-rc.8 → 5.0.0

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 (663) hide show
  1. package/README.md +95 -64
  2. package/app.config.json +3 -0
  3. package/build/.eslintrc +3 -0
  4. package/build/build.js +302 -165
  5. package/build/buildCesium.js +39 -19
  6. package/build/buildHelpers.js +279 -88
  7. package/build/buildPreview.js +16 -6
  8. package/build/bundle.js +57 -0
  9. package/build/commonViteConfig.js +7 -16
  10. package/build/determineHost.js +17 -4
  11. package/build/generateOLLib.js +15 -18
  12. package/build/getPluginProxies.js +35 -3
  13. package/build/info/conf.json +21 -19
  14. package/build/info/publish.js +16 -5
  15. package/config/aerowest.config.json +47 -54
  16. package/config/base.config.json +597 -662
  17. package/config/codes.config.json +401 -0
  18. package/config/dev.config.json +460 -14
  19. package/config/graphFeatureInfo.config.json +141 -0
  20. package/config/projects.config.json +29 -0
  21. package/config/www.config.json +1801 -0
  22. package/dist/assets/@mdi/font/LICENSE +20 -0
  23. package/dist/assets/@mdi/font/css/materialdesignicons.css.map +16 -0
  24. package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +3 -0
  25. package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  26. package/dist/assets/cesium/ThirdParty/Workers/basis_transcoder.js +21 -0
  27. package/dist/assets/cesium/ThirdParty/Workers/package.json +1 -0
  28. package/dist/assets/cesium/ThirdParty/Workers/pako_deflate.min.js +2 -0
  29. package/dist/assets/cesium/ThirdParty/Workers/pako_inflate.min.js +2 -0
  30. package/dist/assets/cesium/ThirdParty/Workers/z-worker-pako.js +1 -0
  31. package/dist/assets/cesium/ThirdParty/basis_transcoder.wasm +0 -0
  32. package/dist/assets/cesium/ThirdParty/draco_decoder.wasm +0 -0
  33. package/dist/assets/cesium/ThirdParty/google-earth-dbroot-parser.js +8337 -0
  34. package/dist/assets/cesium/Workers/chunk-227AJNOA.js +59 -0
  35. package/dist/assets/cesium/Workers/chunk-2R5O53JW.js +157 -0
  36. package/dist/assets/cesium/Workers/chunk-34YUDLRP.js +781 -0
  37. package/dist/assets/cesium/Workers/chunk-3W63OHNJ.js +100 -0
  38. package/dist/assets/cesium/Workers/chunk-4MFFIWUA.js +163 -0
  39. package/dist/assets/cesium/Workers/chunk-66QLLS45.js +218 -0
  40. package/dist/assets/cesium/Workers/chunk-6BTKZDRG.js +77 -0
  41. package/dist/assets/cesium/Workers/chunk-A4JVFBQ3.js +101 -0
  42. package/dist/assets/cesium/Workers/chunk-ABADGKYE.js +58 -0
  43. package/dist/assets/cesium/Workers/chunk-AFFLIKOH.js +353 -0
  44. package/dist/assets/cesium/Workers/chunk-AHKEZ2OE.js +629 -0
  45. package/dist/assets/cesium/Workers/chunk-C3SXRKRW.js +476 -0
  46. package/dist/assets/cesium/Workers/chunk-CCFQRR6D.js +55 -0
  47. package/dist/assets/cesium/Workers/chunk-CHHNOC2C.js +1860 -0
  48. package/dist/assets/cesium/Workers/chunk-CTELOFLA.js +196 -0
  49. package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +3273 -0
  50. package/dist/assets/cesium/Workers/chunk-EW2GWJYB.js +44 -0
  51. package/dist/assets/cesium/Workers/chunk-GLZBE3ML.js +421 -0
  52. package/dist/assets/cesium/Workers/chunk-HARLBUOL.js +236 -0
  53. package/dist/assets/cesium/Workers/chunk-HQF437NJ.js +117 -0
  54. package/dist/assets/cesium/Workers/chunk-IPA4EACJ.js +368 -0
  55. package/dist/assets/cesium/Workers/chunk-J3JY6I2C.js +1009 -0
  56. package/dist/assets/cesium/Workers/chunk-JB2LWGH4.js +390 -0
  57. package/dist/assets/cesium/Workers/chunk-JS3AW5BK.js +634 -0
  58. package/dist/assets/cesium/Workers/chunk-K36FEYS7.js +452 -0
  59. package/dist/assets/cesium/Workers/chunk-KD4Y7CZL.js +400 -0
  60. package/dist/assets/cesium/Workers/chunk-KTJSNCK4.js +842 -0
  61. package/dist/assets/cesium/Workers/chunk-LLUNNUJV.js +258 -0
  62. package/dist/assets/cesium/Workers/chunk-MPAZH4BF.js +37 -0
  63. package/dist/assets/cesium/Workers/chunk-MYZB7C4T.js +1258 -0
  64. package/dist/assets/cesium/Workers/chunk-N3JIFFX2.js +501 -0
  65. package/dist/assets/cesium/Workers/chunk-O5AMBQ36.js +430 -0
  66. package/dist/assets/cesium/Workers/chunk-OAVNIRB4.js +124 -0
  67. package/dist/assets/cesium/Workers/chunk-OYFCF4PL.js +171 -0
  68. package/dist/assets/cesium/Workers/chunk-OZJDGN5F.js +1477 -0
  69. package/dist/assets/cesium/Workers/chunk-PCJWUS4M.js +2041 -0
  70. package/dist/assets/cesium/Workers/chunk-PFQBCKBM.js +8644 -0
  71. package/dist/assets/cesium/Workers/chunk-QIKODV5G.js +305 -0
  72. package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +73 -0
  73. package/dist/assets/cesium/Workers/chunk-QMEMZIJI.js +138 -0
  74. package/dist/assets/cesium/Workers/chunk-QT3MPEMI.js +102 -0
  75. package/dist/assets/cesium/Workers/chunk-RP2A7BR5.js +289 -0
  76. package/dist/assets/cesium/Workers/chunk-RW6LU2CJ.js +138 -0
  77. package/dist/assets/cesium/Workers/chunk-TFC6TZ3S.js +757 -0
  78. package/dist/assets/cesium/Workers/chunk-V3NGATMV.js +693 -0
  79. package/dist/assets/cesium/Workers/chunk-VLGOATD6.js +1075 -0
  80. package/dist/assets/cesium/Workers/chunk-WXTV4ATB.js +39 -0
  81. package/dist/assets/cesium/Workers/chunk-X4SU25DT.js +302 -0
  82. package/dist/assets/cesium/Workers/chunk-XTY7B2N6.js +2716 -0
  83. package/dist/assets/cesium/Workers/chunk-XY7MGBKC.js +513 -0
  84. package/dist/assets/cesium/Workers/chunk-Z24VKNDO.js +834 -0
  85. package/dist/assets/cesium/Workers/chunk-ZA25DG4Y.js +684 -0
  86. package/dist/assets/cesium/Workers/chunk-ZFOBYDGF.js +73 -0
  87. package/dist/assets/cesium/Workers/combineGeometry.js +67 -1
  88. package/dist/assets/cesium/Workers/createBoxGeometry.js +57 -1
  89. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +234 -1
  90. package/dist/assets/cesium/Workers/createCircleGeometry.js +196 -1
  91. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +146 -1
  92. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +506 -1
  93. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +224 -1
  94. package/dist/assets/cesium/Workers/createCorridorGeometry.js +1262 -1
  95. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +567 -1
  96. package/dist/assets/cesium/Workers/createCylinderGeometry.js +59 -1
  97. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +231 -1
  98. package/dist/assets/cesium/Workers/createEllipseGeometry.js +70 -1
  99. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +63 -1
  100. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +58 -1
  101. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +60 -1
  102. package/dist/assets/cesium/Workers/createFrustumGeometry.js +57 -1
  103. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +234 -1
  104. package/dist/assets/cesium/Workers/createGeometry.js +150 -1
  105. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +1607 -1
  106. package/dist/assets/cesium/Workers/createPlaneGeometry.js +223 -1
  107. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +123 -1
  108. package/dist/assets/cesium/Workers/createPolygonGeometry.js +1134 -1
  109. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +542 -1
  110. package/dist/assets/cesium/Workers/createPolylineGeometry.js +495 -1
  111. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +379 -1
  112. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +277 -1
  113. package/dist/assets/cesium/Workers/createRectangleGeometry.js +1273 -1
  114. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +480 -1
  115. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +399 -1
  116. package/dist/assets/cesium/Workers/createSphereGeometry.js +117 -1
  117. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +117 -1
  118. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +32 -1
  119. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +492 -1
  120. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +386 -1
  121. package/dist/assets/cesium/Workers/createVectorTilePoints.js +112 -1
  122. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +384 -1
  123. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +262 -1
  124. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +568 -1
  125. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +2277 -3
  126. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +745 -1
  127. package/dist/assets/cesium/Workers/createWallGeometry.js +489 -1
  128. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +337 -1
  129. package/dist/assets/cesium/Workers/decodeDraco.js +369 -1
  130. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +2650 -1
  131. package/dist/assets/cesium/Workers/decodeI3S.js +835 -0
  132. package/dist/assets/cesium/Workers/transcodeKTX2.js +3425 -1
  133. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +41 -1
  134. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +818 -1
  135. package/dist/assets/cesium.4137c8.js +164897 -0
  136. package/dist/assets/cesium.js +1 -1
  137. package/dist/assets/core.306872.js +19286 -0
  138. package/dist/assets/core.js +1 -1
  139. package/dist/assets/favicon-128.4c4ce5.png +0 -0
  140. package/dist/assets/favicon-180.5b99c0.png +0 -0
  141. package/dist/assets/favicon-192.0e205e.png +0 -0
  142. package/dist/assets/favicon-32.6b9add.png +0 -0
  143. package/dist/assets/favicon.d5ec97.svg +10 -0
  144. package/dist/assets/font/OFL.txt +93 -0
  145. package/dist/assets/font/TitilliumWeb-Regular.9ca076.woff2 +0 -0
  146. package/dist/assets/index-cfed33b1.js +1 -0
  147. package/dist/assets/ol.328bbf.js +60117 -0
  148. package/dist/assets/ol.js +1 -1
  149. package/dist/assets/style/icon-marker-blue.534e37.png +0 -0
  150. package/dist/assets/style/icon-marker-green.0b6a92.png +0 -0
  151. package/dist/assets/style/icon-marker-o-blue.7b6d62.png +0 -0
  152. package/dist/assets/style/icon-marker-o-green.c863c0.png +0 -0
  153. package/dist/assets/style/icon-marker-o-red.93ff58.png +0 -0
  154. package/dist/assets/style/icon-marker-o.036477.png +0 -0
  155. package/dist/assets/style/icon-marker-red.313d03.png +0 -0
  156. package/dist/assets/style/icon-marker.70960f.png +0 -0
  157. package/dist/assets/style/icon-pin-blue.7be369.png +0 -0
  158. package/dist/assets/style/icon-pin-green.cbb935.png +0 -0
  159. package/dist/assets/style/icon-pin-red.3f25b2.png +0 -0
  160. package/dist/assets/style/icon-pin.b7ce77.png +0 -0
  161. package/dist/assets/ui.e84ce9.css +5 -0
  162. package/dist/assets/ui.e84ce9.js +16488 -0
  163. package/dist/assets/ui.js +1 -1
  164. package/dist/assets/vue.1c8696.js +4911 -0
  165. package/dist/assets/vue.js +5 -1
  166. package/dist/assets/vuetify.008fac.css +5 -0
  167. package/dist/assets/vuetify.008fac.js +21262 -0
  168. package/dist/assets/vuetify.js +5 -2
  169. package/dist/index.html +90 -8
  170. package/index.html +111 -0
  171. package/index.js +203 -18
  172. package/lib/cesium.js +1 -1
  173. package/lib/core.js +1 -1
  174. package/lib/olLib.js +861 -843
  175. package/lib/ui.js +1 -1
  176. package/lib/vue.js +2 -1
  177. package/lib/vuetify.js +2 -2
  178. package/package.json +53 -34
  179. package/plugins/.eslintrc +9 -0
  180. package/plugins/@vcmap-show-case/README.md +28 -0
  181. package/plugins/@vcmap-show-case/buttons-example/README.md +4 -0
  182. package/plugins/@vcmap-show-case/buttons-example/package.json +5 -0
  183. package/plugins/@vcmap-show-case/buttons-example/src/ButtonsExample.vue +282 -0
  184. package/plugins/@vcmap-show-case/buttons-example/src/index.js +51 -0
  185. package/plugins/@vcmap-show-case/category-tester/README.md +3 -0
  186. package/plugins/@vcmap-show-case/category-tester/package.json +5 -0
  187. package/plugins/@vcmap-show-case/category-tester/src/CategoriesExample.vue +135 -0
  188. package/plugins/@vcmap-show-case/category-tester/src/CollectionComponentOptions.vue +209 -0
  189. package/plugins/@vcmap-show-case/category-tester/src/index.js +73 -0
  190. package/plugins/@vcmap-show-case/collection-manager-example/README.md +3 -0
  191. package/plugins/@vcmap-show-case/collection-manager-example/package.json +5 -0
  192. package/plugins/@vcmap-show-case/collection-manager-example/src/CollectionManagerExample.vue +182 -0
  193. package/plugins/@vcmap-show-case/collection-manager-example/src/index.js +79 -0
  194. package/plugins/@vcmap-show-case/config-editor/README.md +3 -0
  195. package/plugins/@vcmap-show-case/config-editor/package.json +5 -0
  196. package/plugins/@vcmap-show-case/config-editor/src/ConfigEditor.vue +62 -0
  197. package/plugins/@vcmap-show-case/config-editor/src/index.js +49 -0
  198. package/plugins/@vcmap-show-case/context-menu-tester/README.md +3 -0
  199. package/plugins/@vcmap-show-case/context-menu-tester/package.json +5 -0
  200. package/plugins/@vcmap-show-case/context-menu-tester/src/index.js +41 -0
  201. package/plugins/@vcmap-show-case/form-inputs-example/README.md +4 -0
  202. package/plugins/@vcmap-show-case/form-inputs-example/config.json +5 -0
  203. package/plugins/@vcmap-show-case/form-inputs-example/package.json +5 -0
  204. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +516 -0
  205. package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +36 -0
  206. package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example/src}/index.js +123 -39
  207. package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example/src}/validation.js +14 -2
  208. package/plugins/@vcmap-show-case/hello-world/README.md +31 -0
  209. package/plugins/@vcmap-show-case/hello-world/package.json +6 -0
  210. package/plugins/@vcmap-show-case/hello-world/plugin-assets/vcs_logo.png +0 -0
  211. package/plugins/@vcmap-show-case/hello-world/src/defaultOptions.js +4 -0
  212. package/plugins/@vcmap-show-case/hello-world/src/helloWorld.vue +69 -0
  213. package/plugins/@vcmap-show-case/hello-world/src/index.js +142 -0
  214. package/plugins/@vcmap-show-case/hello-world/tests/helloWorld.spec.js +53 -0
  215. package/plugins/@vcmap-show-case/icons-example/README.md +5 -0
  216. package/plugins/@vcmap-show-case/icons-example/package.json +5 -0
  217. package/plugins/@vcmap-show-case/icons-example/src/AllIconsComponent.vue +51 -0
  218. package/plugins/@vcmap-show-case/icons-example/src/index.js +46 -0
  219. package/plugins/@vcmap-show-case/list-example/README.md +3 -0
  220. package/plugins/@vcmap-show-case/list-example/package.json +5 -0
  221. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +411 -0
  222. package/plugins/@vcmap-show-case/list-example/src/index.js +46 -0
  223. package/plugins/@vcmap-show-case/notifier-tester/README.md +3 -0
  224. package/plugins/@vcmap-show-case/notifier-tester/package.json +5 -0
  225. package/plugins/@vcmap-show-case/notifier-tester/src/NotifierTester.vue +82 -0
  226. package/plugins/@vcmap-show-case/notifier-tester/src/index.js +42 -0
  227. package/plugins/@vcmap-show-case/plugin-editors/README.md +4 -0
  228. package/plugins/@vcmap-show-case/plugin-editors/package.json +5 -0
  229. package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +119 -0
  230. package/plugins/@vcmap-show-case/plugin-editors/src/index.js +41 -0
  231. package/plugins/@vcmap-show-case/project-selector/README.md +25 -0
  232. package/plugins/@vcmap-show-case/project-selector/config.json +15 -0
  233. package/plugins/@vcmap-show-case/project-selector/package.json +13 -0
  234. package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +65 -0
  235. package/plugins/@vcmap-show-case/project-selector/src/ProjectSelectorComponent.vue +102 -0
  236. package/plugins/@vcmap-show-case/project-selector/src/de.json +10 -0
  237. package/plugins/@vcmap-show-case/project-selector/src/en.json +10 -0
  238. package/plugins/@vcmap-show-case/project-selector/src/index.js +269 -0
  239. package/plugins/@vcmap-show-case/simple-graph/README.md +71 -0
  240. package/plugins/@vcmap-show-case/simple-graph/package.json +11 -0
  241. package/plugins/@vcmap-show-case/simple-graph/src/SimpleGraphComponent.vue +59 -0
  242. package/plugins/@vcmap-show-case/simple-graph/src/index.js +17 -0
  243. package/plugins/@vcmap-show-case/simple-graph/src/simpleGraphView.js +78 -0
  244. package/plugins/@vcmap-show-case/style-input-example/README.md +4 -0
  245. package/plugins/@vcmap-show-case/style-input-example/package.json +5 -0
  246. package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +190 -0
  247. package/plugins/@vcmap-show-case/style-input-example/src/index.js +42 -0
  248. package/plugins/@vcmap-show-case/switch-map-callback-example/README.md +21 -0
  249. package/plugins/@vcmap-show-case/switch-map-callback-example/config.json +3 -0
  250. package/plugins/@vcmap-show-case/switch-map-callback-example/package.json +5 -0
  251. package/plugins/@vcmap-show-case/switch-map-callback-example/src/index.js +34 -0
  252. package/plugins/@vcmap-show-case/switch-map-callback-example/src/switchMapCallback.js +47 -0
  253. package/plugins/@vcmap-show-case/table-example/README.md +3 -0
  254. package/plugins/@vcmap-show-case/table-example/package.json +5 -0
  255. package/plugins/@vcmap-show-case/table-example/src/DataTableExample.vue +182 -0
  256. package/plugins/@vcmap-show-case/table-example/src/index.js +49 -0
  257. package/plugins/@vcmap-show-case/textfields-example/README.md +3 -0
  258. package/plugins/@vcmap-show-case/textfields-example/package.json +5 -0
  259. package/plugins/{example/mySuperComponent.vue → @vcmap-show-case/textfields-example/src/TextfieldsExample.vue} +13 -31
  260. package/plugins/@vcmap-show-case/textfields-example/src/index.js +64 -0
  261. package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/README.md +5 -3
  262. package/plugins/@vcmap-show-case/theme-changer/config.json +69 -0
  263. package/plugins/@vcmap-show-case/theme-changer/package.json +11 -0
  264. package/plugins/{@vcmap/theme-changer → @vcmap-show-case/theme-changer/src}/ThemeChangerComponent.vue +36 -8
  265. package/plugins/{@vcmap/theme-changer → @vcmap-show-case/theme-changer/src}/index.js +20 -14
  266. package/plugins/@vcmap-show-case/vector-properties-example/package.json +5 -0
  267. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +128 -0
  268. package/plugins/@vcmap-show-case/vector-properties-example/src/index.js +40 -0
  269. package/plugins/@vcmap-show-case/window-tester/README.md +3 -0
  270. package/plugins/@vcmap-show-case/window-tester/package.json +5 -0
  271. package/plugins/@vcmap-show-case/window-tester/src/EmptyComponent.vue +18 -0
  272. package/plugins/@vcmap-show-case/window-tester/src/MyCustomHeader.vue +31 -0
  273. package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +185 -0
  274. package/plugins/@vcmap-show-case/window-tester/src/WindowExampleContent.vue +18 -0
  275. package/plugins/@vcmap-show-case/window-tester/src/WindowExampleToggleChild.vue +45 -0
  276. package/plugins/@vcmap-show-case/window-tester/src/index.js +80 -0
  277. package/plugins/@vcmap-show-case/window-tester/src/toolboxData.js +288 -0
  278. package/plugins/@vcmap-show-case/wizard-example/README.md +3 -0
  279. package/plugins/@vcmap-show-case/wizard-example/package.json +5 -0
  280. package/plugins/@vcmap-show-case/wizard-example/src/WizardExample.vue +127 -0
  281. package/plugins/@vcmap-show-case/wizard-example/src/index.js +53 -0
  282. package/plugins/package.json +9 -2
  283. package/public/assets/@mdi/font/LICENSE +20 -0
  284. package/public/assets/@mdi/font/css/materialdesignicons.css.map +16 -0
  285. package/public/assets/@mdi/font/css/materialdesignicons.min.css +3 -0
  286. package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  287. package/public/assets/favicon-128.png +0 -0
  288. package/public/assets/favicon-180.png +0 -0
  289. package/public/assets/favicon-192.png +0 -0
  290. package/public/assets/favicon-32.png +0 -0
  291. package/public/assets/favicon.svg +10 -0
  292. package/public/assets/font/OFL.txt +93 -0
  293. package/public/assets/font/TitilliumWeb-Regular.woff2 +0 -0
  294. package/public/assets/style/icon-marker-blue.png +0 -0
  295. package/public/assets/style/icon-marker-green.png +0 -0
  296. package/public/assets/style/icon-marker-o-blue.png +0 -0
  297. package/public/assets/style/icon-marker-o-green.png +0 -0
  298. package/public/assets/style/icon-marker-o-red.png +0 -0
  299. package/public/assets/style/icon-marker-o.png +0 -0
  300. package/public/assets/style/icon-marker-red.png +0 -0
  301. package/public/assets/style/icon-marker.png +0 -0
  302. package/public/assets/style/icon-pin-blue.png +0 -0
  303. package/public/assets/style/icon-pin-green.png +0 -0
  304. package/public/assets/style/icon-pin-red.png +0 -0
  305. package/public/assets/style/icon-pin.png +0 -0
  306. package/src/actions/StyleSelector.vue +121 -0
  307. package/src/actions/actionHelper.js +186 -50
  308. package/src/actions/stateRefAction.js +2 -3
  309. package/src/application/VcsApp.vue +539 -93
  310. package/src/application/VcsAppWrapper.vue +32 -0
  311. package/src/application/VcsAttributions.vue +83 -0
  312. package/src/application/VcsAttributionsFooter.vue +83 -0
  313. package/src/application/VcsMap.vue +22 -5
  314. package/src/application/VcsNavbar.vue +217 -0
  315. package/src/application/VcsSettings.vue +98 -0
  316. package/src/application/attributionsHelper.js +162 -0
  317. package/src/callback/activateLayersCallback.js +54 -0
  318. package/src/callback/applyLayerStyleCallback.js +63 -0
  319. package/src/callback/deactivateLayersCallback.js +54 -0
  320. package/src/callback/goToViewpointCallback.js +54 -0
  321. package/src/callback/vcsCallback.js +66 -0
  322. package/src/components/ImageElementInjector.vue +24 -0
  323. package/src/components/buttons/VcsActionButtonList.vue +129 -0
  324. package/src/components/buttons/VcsButton.vue +151 -0
  325. package/src/components/buttons/VcsFormButton.vue +178 -0
  326. package/src/components/buttons/VcsToolButton.vue +161 -0
  327. package/src/components/form-inputs-controls/VcsCheckbox.vue +115 -0
  328. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +290 -0
  329. package/src/components/form-inputs-controls/VcsDatePicker.vue +156 -0
  330. package/src/components/form-inputs-controls/VcsFormSection.vue +150 -0
  331. package/src/components/form-inputs-controls/VcsLabel.vue +56 -0
  332. package/src/components/form-inputs-controls/VcsRadio.vue +149 -0
  333. package/src/components/form-inputs-controls/VcsRadioGrid.vue +175 -0
  334. package/src/components/form-inputs-controls/VcsSelect.vue +211 -0
  335. package/src/components/form-inputs-controls/VcsSlider.vue +73 -0
  336. package/src/components/form-inputs-controls/VcsTextArea.vue +180 -0
  337. package/src/components/form-inputs-controls/VcsTextField.vue +298 -0
  338. package/src/components/form-inputs-controls/VcsWizard.vue +137 -0
  339. package/src/components/form-inputs-controls/VcsWizardStep.vue +161 -0
  340. package/src/components/form-inputs-controls/composables.js +31 -0
  341. package/src/components/form-output/VcsFormattedNumber.vue +103 -0
  342. package/src/components/icons/+all.js +463 -0
  343. package/src/components/icons/2DAreaIcon.vue +58 -0
  344. package/src/components/icons/2DDistanceIcon.vue +24 -0
  345. package/src/components/icons/3DAreaIcon.vue +58 -0
  346. package/src/components/icons/3DDistanceIcon.vue +24 -0
  347. package/src/components/icons/3DHeightIcon.vue +24 -0
  348. package/src/components/icons/AngleIcon.vue +16 -0
  349. package/src/components/icons/AssociationsIcon.vue +37 -0
  350. package/src/components/icons/AxisIcon.vue +35 -0
  351. package/src/components/icons/BoundingBoxIcon.vue +38 -0
  352. package/src/components/icons/CheckboxCheckedIcon.vue +12 -0
  353. package/src/components/icons/CheckboxIcon.vue +21 -0
  354. package/src/components/icons/CheckboxIndeterminateIcon.vue +10 -0
  355. package/src/components/icons/CircleIcon.vue +25 -0
  356. package/src/components/icons/ClippingHorizontalIcon.vue +18 -0
  357. package/src/components/icons/ClippingIcon.vue +17 -0
  358. package/src/components/icons/ClippingVerticalIcon.vue +18 -0
  359. package/src/components/icons/ColorPickerIcon.vue +17 -0
  360. package/src/components/icons/ColorSwatchIcon.vue +21 -0
  361. package/src/components/icons/CommentIcon.vue +19 -0
  362. package/src/components/icons/CompassIcon.vue +24 -0
  363. package/src/components/icons/ComponentsIcon.vue +18 -0
  364. package/src/components/icons/ConeIcon.vue +30 -0
  365. package/src/components/icons/DimensionsHouseIcon.vue +20 -0
  366. package/src/components/icons/EditIcon.vue +17 -0
  367. package/src/components/icons/EditVerticesIcon.vue +35 -0
  368. package/src/components/icons/ElevationProfileIcon.vue +104 -0
  369. package/src/components/icons/ExportAreaIcon.vue +17 -0
  370. package/src/components/icons/ExportFlightIcon.vue +17 -0
  371. package/src/components/icons/ExportIcon.vue +24 -0
  372. package/src/components/icons/ExternalLinkIcon.vue +23 -0
  373. package/src/components/icons/EyeIcon.vue +17 -0
  374. package/src/components/icons/FastForwardIcon.vue +17 -0
  375. package/src/components/icons/FilterIcon.vue +18 -0
  376. package/src/components/icons/GlobalTerrainIcon.vue +19 -0
  377. package/src/components/icons/GlobeNatureIcon.vue +17 -0
  378. package/src/components/icons/GroundIcon.vue +27 -0
  379. package/src/components/icons/HealthCareIndustriesIcon.vue +113 -0
  380. package/src/components/icons/HelpIcon.vue +17 -0
  381. package/src/components/icons/HideIcon.vue +25 -0
  382. package/src/components/icons/HomePointIcon.vue +17 -0
  383. package/src/components/icons/HospitalsIcon.vue +223 -0
  384. package/src/components/icons/HouseIcon.vue +32 -0
  385. package/src/components/icons/ImportIcon.vue +18 -0
  386. package/src/components/icons/InfoIcon.vue +24 -0
  387. package/src/components/icons/KebabIcon.vue +38 -0
  388. package/src/components/icons/LabelIcon.vue +23 -0
  389. package/src/components/icons/LayersIcon.vue +28 -0
  390. package/src/components/icons/LegendIcon.vue +24 -0
  391. package/src/components/icons/LineIcon.vue +22 -0
  392. package/src/components/icons/LinkIcon.vue +17 -0
  393. package/src/components/icons/LogoutIcon.vue +17 -0
  394. package/src/components/icons/MapIcon.vue +18 -0
  395. package/src/components/icons/MenuIcon.vue +36 -0
  396. package/src/components/icons/MinusIcon.vue +18 -0
  397. package/src/components/icons/ObjectAttributeIcon.vue +18 -0
  398. package/src/components/icons/ObjectSelectIcon.vue +18 -0
  399. package/src/components/icons/ObliqueViewIcon.vue +19 -0
  400. package/src/components/icons/PdfIcon.vue +19 -0
  401. package/src/components/icons/PedestrianIcon.vue +17 -0
  402. package/src/components/icons/PenIcon.vue +16 -0
  403. package/src/components/icons/PlayCircleIcon.vue +20 -0
  404. package/src/components/icons/PlusIcon.vue +18 -0
  405. package/src/components/icons/PoiIcon.vue +23 -0
  406. package/src/components/icons/PointIcon.vue +40 -0
  407. package/src/components/icons/PointSelectIcon.vue +18 -0
  408. package/src/components/icons/PresentationModeIcon.vue +17 -0
  409. package/src/components/icons/ProgressIcon.vue +26 -0
  410. package/src/components/icons/QueryIcon.vue +39 -0
  411. package/src/components/icons/RectangleIcon.vue +24 -0
  412. package/src/components/icons/ReturnIcon.vue +17 -0
  413. package/src/components/icons/RewindIcon.vue +16 -0
  414. package/src/components/icons/RotateLeftIcon.vue +17 -0
  415. package/src/components/icons/RotateRightIcon.vue +17 -0
  416. package/src/components/icons/ScreenshotIcon.vue +53 -0
  417. package/src/components/icons/SearchIcon.vue +17 -0
  418. package/src/components/icons/ShadowIcon.vue +18 -0
  419. package/src/components/icons/ShapesIcon.vue +35 -0
  420. package/src/components/icons/ShareIcon.vue +22 -0
  421. package/src/components/icons/SimpleCircleFilledIcon.vue +18 -0
  422. package/src/components/icons/SimpleCircleHalfFilledIcon.vue +16 -0
  423. package/src/components/icons/SimpleCircleOutlinedIcon.vue +13 -0
  424. package/src/components/icons/SkipNextIcon.vue +18 -0
  425. package/src/components/icons/SkipPreviousIcon.vue +18 -0
  426. package/src/components/icons/SplitViewIcon.vue +19 -0
  427. package/src/components/icons/TerrainBoxIcon.vue +19 -0
  428. package/src/components/icons/TextStyleIcon.vue +17 -0
  429. package/src/components/icons/ThreeDimensionsIcon.vue +17 -0
  430. package/src/components/icons/ToolsIcon.vue +16 -0
  431. package/src/components/icons/TouchIcon.vue +18 -0
  432. package/src/components/icons/TrashCanIcon.vue +18 -0
  433. package/src/components/icons/TriangleIcon.vue +16 -0
  434. package/src/components/icons/TwoDimensionsIcon.vue +18 -0
  435. package/src/components/icons/UploadIcon.vue +17 -0
  436. package/src/components/icons/UserProfileIcon.vue +17 -0
  437. package/src/components/icons/UserShareIcon.vue +16 -0
  438. package/src/components/icons/VideoRecorderIcon.vue +23 -0
  439. package/src/components/icons/ViewpointFlightIcon.vue +28 -0
  440. package/src/components/icons/ViewpointIcon.vue +28 -0
  441. package/src/components/icons/Viewshed360Icon.vue +18 -0
  442. package/src/components/icons/ViewshedConeIcon.vue +17 -0
  443. package/src/components/icons/ViewshedIcon.vue +18 -0
  444. package/src/components/icons/WalkingIcon.vue +17 -0
  445. package/src/components/icons/WallIcon.vue +22 -0
  446. package/src/components/icons/WandIcon.vue +123 -0
  447. package/src/components/lists/VcsActionList.vue +132 -0
  448. package/src/components/lists/VcsList.vue +590 -0
  449. package/src/components/lists/VcsTreeview.vue +112 -0
  450. package/src/components/lists/VcsTreeviewLeaf.vue +81 -0
  451. package/src/components/lists/VcsTreeviewSearchbar.vue +148 -0
  452. package/src/components/notification/VcsBadge.vue +29 -0
  453. package/src/components/notification/VcsHelp.vue +39 -0
  454. package/src/components/notification/VcsTooltip.vue +160 -0
  455. package/src/components/notification/validation.js +19 -0
  456. package/src/components/plugins/AbstractConfigEditor.vue +84 -0
  457. package/src/components/style/MenuWrapper.vue +140 -0
  458. package/src/components/style/VcsFillMenu.vue +61 -0
  459. package/src/components/style/VcsFillSelector.vue +45 -0
  460. package/src/components/style/VcsImageMenu.vue +83 -0
  461. package/src/components/style/VcsImageSelector.vue +577 -0
  462. package/src/components/style/VcsStrokeMenu.vue +73 -0
  463. package/src/components/style/VcsStrokeSelector.vue +88 -0
  464. package/src/components/style/VcsTextMenu.vue +81 -0
  465. package/src/components/style/VcsTextSelector.vue +269 -0
  466. package/src/components/style/VcsVectorStyleComponent.vue +114 -0
  467. package/src/components/style/composables.js +84 -0
  468. package/src/components/tables/VcsDataTable.vue +475 -0
  469. package/src/components/tables/VcsTable.vue +145 -0
  470. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +778 -0
  471. package/src/components/vector-properties/composables.js +93 -0
  472. package/src/contentTree/LayerTree.vue +19 -15
  473. package/src/contentTree/contentTreeCollection.js +114 -42
  474. package/src/contentTree/contentTreeItem.js +109 -43
  475. package/src/contentTree/groupContentTreeItem.js +46 -23
  476. package/src/contentTree/layerContentTreeItem.js +54 -23
  477. package/src/contentTree/layerGroupContentTreeItem.js +58 -26
  478. package/src/contentTree/nodeContentTreeItem.js +19 -8
  479. package/src/contentTree/obliqueCollectionContentTreeItem.js +51 -22
  480. package/src/contentTree/subContentTreeItem.js +14 -5
  481. package/src/contentTree/vcsObjectContentTreeItem.js +27 -16
  482. package/src/contentTree/viewpointContentTreeItem.js +121 -0
  483. package/src/downloadHelper.js +52 -0
  484. package/src/featureInfo/AddressBalloonComponent.vue +58 -0
  485. package/src/featureInfo/BalloonComponent.vue +193 -0
  486. package/src/featureInfo/abstractFeatureInfoView.js +346 -0
  487. package/src/featureInfo/addressBalloonFeatureInfoView.js +130 -0
  488. package/src/featureInfo/balloonFeatureInfoView.js +159 -0
  489. package/src/featureInfo/balloonHelper.js +172 -0
  490. package/src/featureInfo/featureInfo.js +525 -0
  491. package/src/featureInfo/featureInfoInteraction.js +48 -0
  492. package/src/featureInfo/iframeFeatureInfoView.js +97 -0
  493. package/src/featureInfo/tableFeatureInfoView.js +120 -0
  494. package/src/i18n/de.js +195 -0
  495. package/src/i18n/en.js +195 -0
  496. package/src/i18n/i18nCollection.js +137 -0
  497. package/src/init.js +121 -36
  498. package/src/legend/StyleLegendItem.vue +176 -0
  499. package/src/legend/VcsLegend.vue +140 -0
  500. package/src/legend/legendHelper.js +204 -0
  501. package/src/logo-mobile.svg +9 -0
  502. package/src/logo.svg +26 -0
  503. package/src/manager/buttonManager.js +30 -61
  504. package/src/manager/collectionManager/CollectionComponent.vue +140 -0
  505. package/src/manager/collectionManager/CollectionComponentList.vue +77 -0
  506. package/src/manager/collectionManager/CollectionComponentProvider.vue +39 -0
  507. package/src/manager/collectionManager/CollectionManager.vue +62 -0
  508. package/src/manager/collectionManager/categoryManager.js +83 -0
  509. package/src/manager/collectionManager/collectionComponent.js +470 -0
  510. package/src/manager/collectionManager/collectionManager.js +432 -0
  511. package/src/manager/contextMenu/ContextMenuComponent.vue +43 -0
  512. package/src/manager/contextMenu/contextMenuInteraction.js +47 -0
  513. package/src/manager/contextMenu/contextMenuManager.js +220 -0
  514. package/src/manager/navbarManager.js +115 -0
  515. package/src/manager/toolbox/GroupToolboxComponent.vue +128 -0
  516. package/src/manager/toolbox/SelectToolboxComponent.vue +144 -0
  517. package/src/manager/toolbox/ToolboxManager.vue +139 -74
  518. package/src/manager/toolbox/toolboxManager.js +371 -0
  519. package/src/manager/window/WindowComponent.vue +105 -85
  520. package/src/manager/window/WindowComponentHeader.vue +116 -25
  521. package/src/manager/window/WindowManager.vue +133 -50
  522. package/src/manager/window/windowHelper.js +465 -0
  523. package/src/manager/window/windowManager.js +297 -91
  524. package/src/navigation/{mapNavCompass.vue → MapNavCompass.vue} +31 -11
  525. package/src/navigation/MapNavigation.vue +291 -0
  526. package/src/navigation/ObliqueRotation.vue +69 -0
  527. package/src/navigation/{orientationToolsButton.vue → OrientationToolsButton.vue} +14 -13
  528. package/src/navigation/{tiltSlider.vue → TiltSlider.vue} +40 -17
  529. package/src/navigation/VcsCompass.vue +69 -0
  530. package/src/navigation/VcsZoomButton.vue +52 -0
  531. package/src/navigation/overviewMap.js +142 -104
  532. package/src/navigation/overviewMapClickedInteraction.js +6 -1
  533. package/src/notifier/NotifierComponent.vue +86 -0
  534. package/src/notifier/notifier.js +129 -0
  535. package/src/pluginHelper.js +148 -20
  536. package/src/search/ResultItem.vue +83 -0
  537. package/src/search/ResultsComponent.vue +103 -0
  538. package/src/search/SearchComponent.vue +116 -0
  539. package/src/search/search.js +342 -0
  540. package/src/setup.js +9 -10
  541. package/src/state.js +272 -0
  542. package/src/styles/_theming.scss +69 -11
  543. package/src/styles/_typography.scss +3 -6
  544. package/src/styles/main.scss +12 -0
  545. package/src/styles/shades.scss +4 -0
  546. package/src/styles/utils/_border.scss +1 -1
  547. package/src/styles/utils/_cursor.scss +4 -0
  548. package/src/styles/utils/_display.scss +1 -1
  549. package/src/styles/variables.scss +138 -0
  550. package/src/styles/vcsFont.scss +2 -0
  551. package/src/styles/vcsGrid.scss +13 -0
  552. package/src/uiConfig.js +83 -0
  553. package/src/vcsUiApp.js +510 -69
  554. package/src/vuePlugins/i18n.js +51 -13
  555. package/src/vuePlugins/vuetify.js +104 -43
  556. package/config/berlin.config.json +0 -529
  557. package/dist/assets/cesium/Workers/ArcType-fc72c06c.js +0 -1
  558. package/dist/assets/cesium/Workers/AttributeCompression-80665726.js +0 -1
  559. package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-a655a4bc.js +0 -1
  560. package/dist/assets/cesium/Workers/BoundingRectangle-c3b79029.js +0 -1
  561. package/dist/assets/cesium/Workers/BoxGeometry-f8f9c981.js +0 -1
  562. package/dist/assets/cesium/Workers/Color-de06a177.js +0 -1
  563. package/dist/assets/cesium/Workers/ComponentDatatype-a15c9a19.js +0 -1
  564. package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-48cdc26d.js +0 -1
  565. package/dist/assets/cesium/Workers/CorridorGeometryLibrary-ddc027d3.js +0 -1
  566. package/dist/assets/cesium/Workers/CylinderGeometry-82a8cbe6.js +0 -1
  567. package/dist/assets/cesium/Workers/CylinderGeometryLibrary-76cda53e.js +0 -1
  568. package/dist/assets/cesium/Workers/EllipseGeometry-32d55454.js +0 -1
  569. package/dist/assets/cesium/Workers/EllipseGeometryLibrary-b2ae188a.js +0 -1
  570. package/dist/assets/cesium/Workers/EllipseOutlineGeometry-f05a5a27.js +0 -1
  571. package/dist/assets/cesium/Workers/EllipsoidGeodesic-19e75e11.js +0 -1
  572. package/dist/assets/cesium/Workers/EllipsoidGeometry-7c99fc81.js +0 -1
  573. package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-21c243df.js +0 -1
  574. package/dist/assets/cesium/Workers/EllipsoidRhumbLine-6145377b.js +0 -1
  575. package/dist/assets/cesium/Workers/EllipsoidTangentPlane-a01286f6.js +0 -1
  576. package/dist/assets/cesium/Workers/EncodedCartesian3-d9f5c4a4.js +0 -1
  577. package/dist/assets/cesium/Workers/FrustumGeometry-17776af8.js +0 -1
  578. package/dist/assets/cesium/Workers/GeometryAttribute-89a520b9.js +0 -1
  579. package/dist/assets/cesium/Workers/GeometryAttributes-32b29525.js +0 -1
  580. package/dist/assets/cesium/Workers/GeometryInstance-4fbf16ba.js +0 -1
  581. package/dist/assets/cesium/Workers/GeometryOffsetAttribute-8c5e10db.js +0 -1
  582. package/dist/assets/cesium/Workers/GeometryPipeline-309fad76.js +0 -1
  583. package/dist/assets/cesium/Workers/IndexDatatype-f1dcdf35.js +0 -1
  584. package/dist/assets/cesium/Workers/IntersectionTests-58aa8f80.js +0 -1
  585. package/dist/assets/cesium/Workers/Matrix2-47e98d76.js +0 -1
  586. package/dist/assets/cesium/Workers/OrientedBoundingBox-fcb5b750.js +0 -1
  587. package/dist/assets/cesium/Workers/Plane-3f01019d.js +0 -1
  588. package/dist/assets/cesium/Workers/PolygonGeometryLibrary-0b29eb16.js +0 -1
  589. package/dist/assets/cesium/Workers/PolygonPipeline-a934c4dd.js +0 -1
  590. package/dist/assets/cesium/Workers/PolylinePipeline-8095c9bc.js +0 -1
  591. package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-67d12fff.js +0 -1
  592. package/dist/assets/cesium/Workers/PrimitivePipeline-980e44c5.js +0 -1
  593. package/dist/assets/cesium/Workers/RectangleGeometryLibrary-621c6de8.js +0 -1
  594. package/dist/assets/cesium/Workers/RuntimeError-8952249c.js +0 -1
  595. package/dist/assets/cesium/Workers/TerrainEncoding-f96552d5.js +0 -1
  596. package/dist/assets/cesium/Workers/Transforms-c8cb8f43.js +0 -39
  597. package/dist/assets/cesium/Workers/VertexFormat-a0b706b0.js +0 -1
  598. package/dist/assets/cesium/Workers/WallGeometryLibrary-c03d8479.js +0 -1
  599. package/dist/assets/cesium/Workers/WebGLConstants-508b9636.js +0 -1
  600. package/dist/assets/cesium/Workers/WebMercatorProjection-79b3214e.js +0 -1
  601. package/dist/assets/cesium/Workers/_commonjsHelpers-3aae1032-26891ab7.js +0 -1
  602. package/dist/assets/cesium/Workers/_rollup_plugin_ignore_empty_module_placeholder-57d574d0.js +0 -1
  603. package/dist/assets/cesium/Workers/arrayRemoveDuplicates-dc2f4046.js +0 -1
  604. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +0 -6
  605. package/dist/assets/cesium/Workers/combine-3c023bda.js +0 -1
  606. package/dist/assets/cesium/Workers/defaultValue-81eec7ed.js +0 -1
  607. package/dist/assets/cesium.6b5bb6.js +0 -9105
  608. package/dist/assets/core.98f9bb.js +0 -4
  609. package/dist/assets/index.0be2842f.js +0 -1
  610. package/dist/assets/index.60dea538.css +0 -1
  611. package/dist/assets/ol.0561aa.js +0 -318
  612. package/dist/assets/ui.b7c1e3.css +0 -1
  613. package/dist/assets/ui.b7c1e3.js +0 -39
  614. package/dist/assets/uicomponents.682c5f.css +0 -1
  615. package/dist/assets/uicomponents.682c5f.js +0 -32
  616. package/dist/assets/uicomponents.js +0 -1
  617. package/dist/assets/vue-composition-api.f926fa.js +0 -14
  618. package/dist/assets/vue-composition-api.js +0 -2
  619. package/dist/assets/vue.ddcb6b.js +0 -9
  620. package/dist/assets/vuetify.d21163.css +0 -5
  621. package/dist/assets/vuetify.d21163.js +0 -48
  622. package/lib/uicomponents.js +0 -1
  623. package/lib/vue-composition-api.js +0 -2
  624. package/map.config.json +0 -35
  625. package/plugins/@vcmap/pluginExample/config.json +0 -6
  626. package/plugins/@vcmap/pluginExample/package.json +0 -7
  627. package/plugins/@vcmap/pluginExample/pluginExampleComponent.vue +0 -374
  628. package/plugins/@vcmap/project-selector/ContextsListComponent.vue +0 -62
  629. package/plugins/@vcmap/project-selector/ProjectSelectorComponent.vue +0 -81
  630. package/plugins/@vcmap/project-selector/README.md +0 -29
  631. package/plugins/@vcmap/project-selector/config.json +0 -15
  632. package/plugins/@vcmap/project-selector/index.js +0 -254
  633. package/plugins/@vcmap/project-selector/package.json +0 -15
  634. package/plugins/@vcmap/theme-changer/config.json +0 -69
  635. package/plugins/@vcmap/theme-changer/package.json +0 -12
  636. package/plugins/buttonExamples/ButtonExamples.vue +0 -190
  637. package/plugins/buttonExamples/index.js +0 -40
  638. package/plugins/categoryTest/Categories.vue +0 -145
  639. package/plugins/categoryTest/Category.vue +0 -114
  640. package/plugins/categoryTest/ItemEditor.vue +0 -13
  641. package/plugins/categoryTest/index.js +0 -41
  642. package/plugins/example/index.js +0 -56
  643. package/plugins/test/editor.vue +0 -63
  644. package/plugins/test/index.js +0 -93
  645. package/plugins/test/myCustomHeader.vue +0 -19
  646. package/plugins/test/toolbox-data.js +0 -49
  647. package/plugins/test/vcsContent.vue +0 -23
  648. package/plugins/test/windowManagerExample.vue +0 -144
  649. package/src/actions/styleSelector.vue +0 -90
  650. package/src/application/Navbar.vue +0 -118
  651. package/src/application/empty-cmp.vue +0 -6
  652. package/src/assets/logo.svg +0 -26
  653. package/src/contentTree/viewPointContentTreeItem.js +0 -107
  654. package/src/lang/de.js +0 -60
  655. package/src/lang/en.js +0 -53
  656. package/src/manager/toolbox/ToolboxMultiSelectButton.vue +0 -96
  657. package/src/manager/toolbox/ToolboxSingleSelectButton.vue +0 -98
  658. package/src/manager/toolbox/toolbox-manager.js +0 -203
  659. package/src/navigation/mapNavigation.vue +0 -201
  660. package/src/navigation/obliqueRotation.vue +0 -48
  661. package/src/navigation/vcsCompass.vue +0 -144
  662. package/src/navigation/vcsZoomButton.vue +0 -27
  663. package/start.js +0 -3
package/src/vcsUiApp.js CHANGED
@@ -1,53 +1,89 @@
1
1
  import {
2
- VcsApp,
3
- contextIdSymbol,
4
2
  Collection,
5
- makeOverrideCollection,
3
+ defaultDynamicModuleId,
6
4
  destroyCollection,
5
+ getObjectFromClassRegistry,
6
+ makeOverrideCollection,
7
+ moduleIdSymbol,
8
+ ObliqueMap,
7
9
  OverrideClassRegistry,
10
+ VcsApp,
11
+ VcsEvent,
12
+ Viewpoint,
13
+ volatileModuleId,
8
14
  } from '@vcmap/core';
9
15
  import { getLogger as getLoggerByName } from '@vcsuite/logger';
10
- import {
11
- isValidPackageName,
12
- loadPlugin,
13
- serializePlugin,
14
- deserializePlugin,
15
- } from './pluginHelper.js';
16
- import { ToolboxManager } from './manager/toolbox/toolbox-manager.js';
17
- import { WindowManager } from './manager/window/windowManager.js';
18
- import ButtonManager from './manager/buttonManager.js';
16
+ import { deserializePlugin, serializePlugin } from './pluginHelper.js';
17
+ import ToolboxManager, {
18
+ setupDefaultGroups,
19
+ } from './manager/toolbox/toolboxManager.js';
20
+ import WindowManager from './manager/window/windowManager.js';
21
+ import NavbarManager from './manager/navbarManager.js';
19
22
  import { createContentTreeCollection } from './contentTree/contentTreeCollection.js';
20
23
  import { contentTreeClassRegistry } from './contentTree/contentTreeItem.js';
21
24
  import OverviewMap from './navigation/overviewMap.js';
25
+ import I18nCollection from './i18n/i18nCollection.js';
26
+ import CategoryManager from './manager/collectionManager/categoryManager.js';
27
+ import ContextMenuManager from './manager/contextMenu/contextMenuManager.js';
28
+ import FeatureInfo, {
29
+ featureInfoClassRegistry,
30
+ } from './featureInfo/featureInfo.js';
31
+ import UiConfig from './uiConfig.js';
32
+ import { createEmptyState, getStateFromURL } from './state.js';
33
+ import { version } from '../package.json';
34
+ import Search from './search/search.js';
35
+ import Notifier from './notifier/notifier.js';
36
+ import AbstractFeatureInfoView from './featureInfo/abstractFeatureInfoView.js';
37
+ import { createVueI18n, setupI18n } from './vuePlugins/i18n.js';
38
+ import { callbackClassRegistry } from './callback/vcsCallback.js';
22
39
 
23
40
  /**
24
- * @typedef {import("@vcmap/core").VcsAppConfig} VcsUiAppConfig
41
+ * @typedef {import("@vcmap/core").VcsModuleConfig} VcsUiModuleConfig
25
42
  * @property {Array<Object>} [plugins]
26
43
  * @property {Array<ContentTreeItemOptions>} [contentTree]
44
+ * @property {Array<UiConfigurationItem>} [uiConfig]
45
+ * @property {Array<FeatureInfoViewOptions>} [featureInfo]
46
+ * @property {Array<Object>} [i18n]
27
47
  */
28
48
 
29
49
  /**
30
50
  * @typedef {Object} PluginConfig
31
51
  * @property {string} name
32
- * @property {string|undefined} entry
33
- * @property {string|undefined} version
52
+ * @property {string|undefined} entry - path to the plugin's index.js
53
+ * @property {string|undefined} version - version or version range
54
+ */
55
+
56
+ /**
57
+ * @typedef {Object} PluginConfigEditor
58
+ * @property {import("vue").Component & { title: string | undefined}} component - A editor component to configure a plugin or item
59
+ * @property {string} [collectionName='plugins'] - The collection the item belongs to. Default is plugins collection.
60
+ * @property {string} [itemName] - The item the editor can be used for. Can be a name or className. Default is the plugin's name.
34
61
  */
35
62
 
36
63
  /**
37
64
  * @callback createPlugin
38
65
  * @template {Object} P
39
66
  * @param {P} config
67
+ * @param {string} pluginBaseUrl
40
68
  * @returns {VcsPlugin<P>}
41
69
  */
42
70
 
43
71
  /**
72
+ * Interface for VcsPlugins.
73
+ * The function implementing the interface should not throw!
44
74
  * @interface VcsPlugin
45
75
  * @template {Object} P
46
- * @property {string} version
76
+ * @template {Object} S
47
77
  * @property {string} name
48
- * @property {function(VcsUiApp)} initialize - called on plugin added
78
+ * @property {string} version
79
+ * @property {string} mapVersion - version range of the VC Map, which this plugin supports
80
+ * @property {Object<string, *>} [i18n] - the i18n messages of this plugin
81
+ * @property {function(VcsUiApp, S=)} initialize - called on plugin added. Is passed the VcsUiApp and optionally, the state for the plugin
49
82
  * @property {function(VcsUiApp)} onVcsAppMounted - called on mounted of VcsApp.vue
50
- * @property {function():P} [toJSON] - serialization
83
+ * @property {function():P} [toJSON] - should return the plugin's serialization excluding all default values
84
+ * @property {function():P} [getDefaultOptions] - should return the plugin's default options
85
+ * @property {function(boolean=):S|Promise<S>} [getState] - should return the plugin's state or a promise for said state. is passed a "for url" flag. If true, only the state relevant for sharing a URL should be passed and short keys shall be used
86
+ * @property {Array<PluginConfigEditor>} [getConfigEditors] - should return components for configuring the plugin or custom items defined by the plugin
51
87
  * @property {function():Promise<void>} destroy
52
88
  * @api
53
89
  */
@@ -56,8 +92,8 @@ import OverviewMap from './navigation/overviewMap.js';
56
92
  * @interface VcsComponentManager
57
93
  * @template {Object} T - the component type
58
94
  * @template {Object} O - component options
59
- * @property {VcsEvent<T>} added
60
- * @property {VcsEvent<T>} removed
95
+ * @property {import("@vcmap/core").VcsEvent<T>} added
96
+ * @property {import("@vcmap/core").VcsEvent<T>} removed
61
97
  * @property {string[]} componentIds - all registered component ids as reactive array
62
98
  * @property {function(string):T} get - get component by id
63
99
  * @property {function(string):boolean} has - has component with id
@@ -80,29 +116,87 @@ function getLogger() {
80
116
  * @class
81
117
  */
82
118
  class VcsUiApp extends VcsApp {
119
+ /**
120
+ * Gets the version of the @vcmap/ui npm package
121
+ * @returns {string}
122
+ */
123
+ static getVersion() {
124
+ return version;
125
+ }
126
+
83
127
  constructor() {
84
128
  super();
85
129
  /**
86
- * @type {OverrideCollection<VcsPlugin>}
130
+ * An event triggered when the vuetify theme mode changes or the primary color is updated by a new uiConfig entry.
131
+ * @type {VcsEvent<void>}
132
+ */
133
+ this.themeChanged = new VcsEvent();
134
+ /**
135
+ * @type {import("@vcmap/core").OverrideCollection<VcsPlugin>}
87
136
  * @private
88
137
  */
89
138
  this._plugins = makeOverrideCollection(
90
139
  new Collection(),
91
- () => this.dynamicContextId,
140
+ () => this.dynamicModuleId,
92
141
  serializePlugin,
93
142
  deserializePlugin,
94
143
  );
95
- this._pluginAddedListener = this._plugins.added.addEventListener((plugin) => {
96
- if (plugin.initialize) {
97
- plugin.initialize(this);
98
- }
99
- });
144
+ /**
145
+ * @type {Array<function():void>}
146
+ * @private
147
+ */
148
+ this._pluginListeners = [
149
+ this._plugins.added.addEventListener((plugin) => {
150
+ this._windowManager.removeOwner(plugin.name);
151
+ this._navbarManager.removeOwner(plugin.name);
152
+ this._toolboxManager.removeOwner(plugin.name);
153
+ this._categoryManager.removeOwner(plugin.name);
154
+ this._contextMenuManager.removeOwner(plugin.name);
155
+ this._search.removeOwner(plugin.name);
156
+ // i18n messages of the plugin are added by the i18n collection
157
+ if (plugin.initialize) {
158
+ let state;
159
+ if (this._cachedAppState.moduleIds.includes(plugin[moduleIdSymbol])) {
160
+ state = this._cachedAppState.plugins.find(
161
+ (s) => s.name === plugin.name,
162
+ );
163
+ }
164
+ try {
165
+ plugin.initialize(this, state?.state);
166
+ } catch (e) {
167
+ getLogger().error(
168
+ `Error in plugin ${plugin.name} initialize hook`,
169
+ e,
170
+ );
171
+ }
172
+ }
173
+ }),
174
+ this._plugins.removed.addEventListener(async (plugin) => {
175
+ this._windowManager.removeOwner(plugin.name);
176
+ this._navbarManager.removeOwner(plugin.name);
177
+ this._toolboxManager.removeOwner(plugin.name);
178
+ this._categoryManager.removeOwner(plugin.name);
179
+ this._contextMenuManager.removeOwner(plugin.name);
180
+ this._search.removeOwner(plugin.name);
181
+ // i18n messages of the plugin are removed by the i18n collection
182
+ }),
183
+ ];
184
+
185
+ /**
186
+ * @type {OverrideClassRegistry<VcsCallback>}
187
+ * @private
188
+ */
189
+ this._callbackClassRegistry = new OverrideClassRegistry(
190
+ callbackClassRegistry,
191
+ );
100
192
 
101
193
  /**
102
- * @type {OverrideClassRegistry<ContentTreeItem>}
194
+ * @type {import("@vcmap/core").OverrideClassRegistry<ContentTreeItem>}
103
195
  * @private
104
196
  */
105
- this._contentTreeClassRegistry = new OverrideClassRegistry(contentTreeClassRegistry);
197
+ this._contentTreeClassRegistry = new OverrideClassRegistry(
198
+ contentTreeClassRegistry,
199
+ );
106
200
 
107
201
  /**
108
202
  * @type {OverrideContentTreeCollection}
@@ -115,6 +209,7 @@ class VcsUiApp extends VcsApp {
115
209
  * @private
116
210
  */
117
211
  this._toolboxManager = new ToolboxManager();
212
+ setupDefaultGroups(this._toolboxManager);
118
213
 
119
214
  /**
120
215
  * @type {WindowManager}
@@ -122,99 +217,434 @@ class VcsUiApp extends VcsApp {
122
217
  */
123
218
  this._windowManager = new WindowManager();
124
219
  /**
125
- * @type {ButtonManager}
220
+ * @type {NavbarManager}
221
+ * @private
222
+ */
223
+ this._navbarManager = new NavbarManager();
224
+ /**
225
+ * @type {UiConfig}
126
226
  * @private
127
227
  */
128
- this._navbarManager = new ButtonManager();
228
+ this._uiConfig = new UiConfig(() => this.dynamicModuleId);
229
+ /**
230
+ * @type {import("@vcmap/core").OverrideClassRegistry<AbstractFeatureInfoView>}
231
+ * @private
232
+ */
233
+ this._featureInfoClassRegistry = new OverrideClassRegistry(
234
+ featureInfoClassRegistry,
235
+ );
236
+ /**
237
+ * @type {import("@vcmap/core").OverrideCollection<AbstractFeatureInfoView>}
238
+ * @private
239
+ */
240
+ this._featureInfo = makeOverrideCollection(
241
+ new FeatureInfo(this),
242
+ () => this.dynamicModuleId,
243
+ null,
244
+ (config) =>
245
+ getObjectFromClassRegistry(this._featureInfoClassRegistry, config),
246
+ AbstractFeatureInfoView,
247
+ );
129
248
 
130
249
  /**
131
250
  * @type {OverviewMap}
132
251
  * @private
133
252
  */
134
253
  this._overviewMap = new OverviewMap(this);
254
+
255
+ /**
256
+ * @type {I18nCollection<Object>}
257
+ * @private
258
+ */
259
+ this._i18n = makeOverrideCollection(
260
+ new I18nCollection(this._plugins),
261
+ () => this.dynamicModuleId,
262
+ );
263
+
264
+ /**
265
+ *
266
+ * @type {import("vue-i18n").VueI18n}
267
+ * @private
268
+ */
269
+ this._vueI18n = createVueI18n();
270
+ /**
271
+ *
272
+ * @type {function(): void}
273
+ * @private
274
+ */
275
+ this._vueI18nDestroy = setupI18n(this);
276
+
277
+ /**
278
+ * @type {CategoryManager}
279
+ * @private
280
+ */
281
+ this._categoryManager = new CategoryManager(this);
282
+
283
+ /**
284
+ * @type {ContextMenuManager}
285
+ * @private
286
+ */
287
+ this._contextMenuManager = new ContextMenuManager(this);
288
+
289
+ /**
290
+ * @type {Search}
291
+ * @private
292
+ */
293
+ this._search = new Search(this);
294
+
295
+ /**
296
+ * @type {Notifier}
297
+ * @private
298
+ */
299
+ this._notifier = new Notifier();
300
+
301
+ /**
302
+ * @type {AppState}
303
+ * @private
304
+ */
305
+ this._cachedAppState = getStateFromURL(new URL(window.location.href));
306
+ /**
307
+ * An event triggered when the VcsApp was mounted and a target was set for the maps.
308
+ * Provides the id of the target html element.
309
+ * @type {import("@vcmap/core").VcsEvent<string>}
310
+ */
311
+ this.mounted = new VcsEvent();
312
+ }
313
+
314
+ /**
315
+ * @type {import("@vcmap/core").OverrideCollection<VcsPlugin>}
316
+ * @readonly
317
+ */
318
+ get plugins() {
319
+ return this._plugins;
320
+ }
321
+
322
+ /**
323
+ * @type {OverrideContentTreeCollection}
324
+ * @readonly
325
+ */
326
+ get contentTree() {
327
+ return this._contentTree;
135
328
  }
136
329
 
137
330
  /**
138
- * @type {OverrideCollection<VcsPlugin>}
331
+ * @type {import("@vcmap/core").OverrideClassRegistry<VcsCallback>}
139
332
  * @readonly
140
333
  */
141
- get plugins() { return this._plugins; }
334
+ get callbackClassRegistry() {
335
+ return this._callbackClassRegistry;
336
+ }
142
337
 
143
338
  /**
144
- * @type {OverrideCollection<ContentTreeItem>}
339
+ * @type {import("@vcmap/core").OverrideClassRegistry<ContentTreeItem>}
145
340
  * @readonly
146
341
  */
147
- get contentTree() { return this._contentTree; }
342
+ get contentTreeClassRegistry() {
343
+ return this._contentTreeClassRegistry;
344
+ }
148
345
 
149
346
  /**
150
- * @type {OverrideClassRegistry<ContentTreeItem>}
347
+ * @type {import("@vcmap/core").OverrideClassRegistry<AbstractFeatureInfoView>}
151
348
  * @readonly
152
349
  */
153
- get contentTreeClassRegistry() { return this._contentTreeClassRegistry; }
350
+ get featureInfoClassRegistry() {
351
+ return this._featureInfoClassRegistry;
352
+ }
154
353
 
155
354
  /**
156
355
  * @returns {ToolboxManager}
157
356
  * @readonly
158
357
  */
159
- get toolboxManager() { return this._toolboxManager; }
358
+ get toolboxManager() {
359
+ return this._toolboxManager;
360
+ }
160
361
 
161
362
  /**
162
363
  * @returns {WindowManager}
163
364
  * @readonly
164
365
  */
165
- get windowManager() { return this._windowManager; }
366
+ get windowManager() {
367
+ return this._windowManager;
368
+ }
166
369
 
167
370
  /**
168
- * @returns {ButtonManager}
371
+ * @returns {NavbarManager}
169
372
  * @readonly
170
373
  */
171
- get navbarManager() { return this._navbarManager; }
374
+ get navbarManager() {
375
+ return this._navbarManager;
376
+ }
377
+
378
+ /**
379
+ * @returns {FeatureInfo}
380
+ * @readonly
381
+ */
382
+ get featureInfo() {
383
+ return this._featureInfo;
384
+ }
172
385
 
173
386
  /**
174
387
  * @type {OverviewMap}
175
388
  * @readonly
176
389
  */
177
- get overviewMap() { return this._overviewMap; }
390
+ get overviewMap() {
391
+ return this._overviewMap;
392
+ }
393
+
394
+ /**
395
+ * @type {I18nCollection}
396
+ * @readonly
397
+ */
398
+ get i18n() {
399
+ return this._i18n;
400
+ }
178
401
 
179
402
  /**
180
- * @param {import("@vcmap/core").Context} context
403
+ * @returns {import("vue-i18n").VueI18n}
404
+ * @readonly
405
+ */
406
+ get vueI18n() {
407
+ return this._vueI18n;
408
+ }
409
+
410
+ /**
411
+ * @returns {CategoryManager}
412
+ * @readonly
413
+ */
414
+ get categoryManager() {
415
+ return this._categoryManager;
416
+ }
417
+
418
+ /**
419
+ * @type {ContextMenuManager}
420
+ * @readonly
421
+ */
422
+ get contextMenuManager() {
423
+ return this._contextMenuManager;
424
+ }
425
+
426
+ /**
427
+ * @type {Search}
428
+ * @readonly
429
+ */
430
+ get search() {
431
+ return this._search;
432
+ }
433
+
434
+ /**
435
+ * @type {UiConfig}
436
+ * @readonly
437
+ */
438
+ get uiConfig() {
439
+ return this._uiConfig;
440
+ }
441
+
442
+ /**
443
+ * @type {Notifier}
444
+ * @readonly
445
+ */
446
+ get notifier() {
447
+ return this._notifier;
448
+ }
449
+
450
+ /**
451
+ * Returns a callback function providing a URL to help page.
452
+ * The default helpBaseUrl can be changed by adding an 'helpBaseUrl' item to the UiConfig Collection.
453
+ * The callback derives the url from the VC Map mayor and minor version, the current app locale and a provided path pointing to a specific help section.
454
+ * This function can be used for the WindowState infoUrlCallback property.
455
+ * @param {string} [path] - the path to a help section
456
+ * @param {string} [subpage='vc-map'] - path to a subpage. Default is 'vc-map'.
457
+ * @returns {function():string}
458
+ */
459
+ getHelpUrlCallback(path = '', subpage = 'vc-map') {
460
+ const mayorMinorVersion = /\d+\.\d+/.exec(VcsUiApp.getVersion())[0];
461
+ return () => {
462
+ const base =
463
+ this.uiConfig.config.value.helpBaseUrl || 'https://help.vc.systems/';
464
+ const url = `${
465
+ this.locale
466
+ }/${subpage}/v${mayorMinorVersion}/${path.replace(/^\//, '')}`;
467
+ const { href } = new URL(url, base);
468
+ return href;
469
+ };
470
+ }
471
+
472
+ /**
473
+ * 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
474
+ * the maximum URL length is not exceeded). This includes: layer active state & styling, active map, active viewpoint,
475
+ * currently selected feature info & any state deemed required for a sharable URL by the currently loaded plugins.
476
+ * @param {boolean=} forUrl
477
+ * @returns {Promise<AppState>}
478
+ */
479
+ async getState(forUrl) {
480
+ const state = createEmptyState();
481
+ state.moduleIds = this.modules
482
+ .filter(({ _id }) => _id !== defaultDynamicModuleId)
483
+ .map(({ _id }) => _id);
484
+
485
+ state.activeMap = this.maps.activeMap.name;
486
+ const viewpoint = await this.maps.activeMap.getViewpoint();
487
+ state.activeViewpoint = viewpoint?.isValid?.()
488
+ ? viewpoint.toJSON()
489
+ : undefined;
490
+ state.layers = [...this.layers]
491
+ .filter(
492
+ (l) =>
493
+ l.isSupported(this.maps.activeMap) &&
494
+ l[moduleIdSymbol] !== defaultDynamicModuleId &&
495
+ l[moduleIdSymbol] !== volatileModuleId &&
496
+ (((l.active || l.loading) && !l.activeOnStartup) ||
497
+ (!l.active && l.activeOnStartup) ||
498
+ ((l.active || l.loading) &&
499
+ l.style !== l.defaultStyle &&
500
+ this.styles.has(l.style))),
501
+ )
502
+ .map((l) => {
503
+ const layerState = {
504
+ name: l.name,
505
+ active: l.active || l.loading,
506
+ };
507
+ if (
508
+ l.style &&
509
+ l.style.name !== l.defaultStyle.name &&
510
+ this.styles.has(l.style) &&
511
+ l.style[moduleIdSymbol] !== defaultDynamicModuleId &&
512
+ l.style[moduleIdSymbol] !== volatileModuleId
513
+ ) {
514
+ layerState.styleName = l.style.name;
515
+ }
516
+ return layerState;
517
+ });
518
+
519
+ const plugins = await Promise.all(
520
+ [...this.plugins]
521
+ .filter(
522
+ (p) =>
523
+ p[moduleIdSymbol] !== defaultDynamicModuleId &&
524
+ p[moduleIdSymbol] !== volatileModuleId &&
525
+ typeof p.getState === 'function',
526
+ )
527
+ .map(async (p) => {
528
+ try {
529
+ return { name: p.name, state: await p.getState(forUrl) };
530
+ } catch (e) {
531
+ getLogger().error(e);
532
+ return null;
533
+ }
534
+ }),
535
+ );
536
+
537
+ state.plugins = plugins.filter((p) => p);
538
+
539
+ if (this.maps.activeMap instanceof ObliqueMap) {
540
+ state.activeObliqueCollection = this.maps.activeMap.collection.name;
541
+ }
542
+ return state;
543
+ }
544
+
545
+ /**
546
+ * @param {import("@vcmap/core").VcsModule} module
181
547
  * @returns {Promise<void>}
182
548
  * @protected
183
549
  */
184
- async _parseContext(context) {
185
- const { config } = context;
550
+ async _parseModule(module) {
551
+ const { config } = module;
186
552
  if (Array.isArray(config.plugins)) {
187
- const plugins = await Promise.all(config.plugins.map(async (pluginConfig) => {
188
- const plugin = await loadPlugin(this, pluginConfig.name, pluginConfig);
189
- if (!plugin) {
190
- return null;
191
- }
192
- if (!isValidPackageName(plugin.name)) {
193
- getLogger().warning(`plugin ${plugin.name} has no valid package name!`);
553
+ await this._plugins.parseItems(config.plugins, module._id);
554
+ }
555
+ if (Array.isArray(config.i18n)) {
556
+ await this._i18n.parseItems(config.i18n, module._id);
557
+ }
558
+ await super._parseModule(module);
559
+ await this._contentTree.parseItems(config.contentTree, module._id);
560
+ await this._uiConfig.parseItems(config.uiConfig, module._id);
561
+ await this._featureInfo.parseItems(config.featureInfo, module._id);
562
+ }
563
+
564
+ /**
565
+ * @param {import("@vcmap/core").VcsModule} module
566
+ * @returns {Promise<void>}
567
+ * @protected
568
+ */
569
+ async _setModuleState(module) {
570
+ await super._setModuleState(module);
571
+ if (this._cachedAppState.moduleIds.includes(module._id)) {
572
+ this._cachedAppState.layers.forEach((layerState) => {
573
+ const layer = this.layers.getByKey(layerState.name);
574
+ if (layer) {
575
+ if (layerState.active) {
576
+ layer.activate();
577
+ } else {
578
+ layer.deactivate();
579
+ }
580
+
581
+ if (
582
+ layerState.styleName &&
583
+ this.styles.hasKey(layerState.styleName) &&
584
+ layer.setStyle
585
+ ) {
586
+ layer.setStyle(this.styles.getByKey(layerState.styleName));
587
+ }
194
588
  }
195
- plugin[contextIdSymbol] = context.id;
196
- return plugin;
197
- }));
198
-
199
- plugins
200
- .filter(p => p)
201
- .map(p => this._plugins.override(p))
202
- .filter(p => p);
589
+ });
590
+ if (
591
+ this._cachedAppState.activeMap &&
592
+ this.maps.hasKey(this._cachedAppState.activeMap)
593
+ ) {
594
+ await this.maps.setActiveMap(this._cachedAppState.activeMap);
595
+ }
596
+ if (
597
+ this._cachedAppState.activeObliqueCollection &&
598
+ this.maps.activeMap instanceof ObliqueMap &&
599
+ this.obliqueCollections.hasKey(
600
+ this._cachedAppState.activeObliqueCollection,
601
+ )
602
+ ) {
603
+ await this.maps.activeMap.setCollection(
604
+ this.obliqueCollections.getByKey(
605
+ this._cachedAppState.activeObliqueCollection,
606
+ ),
607
+ new Viewpoint(this._cachedAppState.activeViewpoint),
608
+ );
609
+ } else if (this._cachedAppState.activeViewpoint && this.maps.activeMap) {
610
+ await this.maps.activeMap.gotoViewpoint(
611
+ new Viewpoint(this._cachedAppState.activeViewpoint),
612
+ );
613
+ }
614
+ this._cachedAppState.moduleIds.splice(
615
+ this._cachedAppState.moduleIds.indexOf(module._id),
616
+ 1,
617
+ );
203
618
  }
204
- await super._parseContext(context);
205
- await this._contentTree.parseItems(config.contentTree, context.id);
206
619
  }
207
620
 
208
621
  /**
209
- * @param {string} contextId
622
+ * @param {string} moduleId
623
+ * @returns {VcsUiModuleConfig}
624
+ */
625
+ serializeModule(moduleId) {
626
+ const config = super.serializeModule(moduleId);
627
+ config.uiConfig = this._uiConfig.serializeModule(moduleId);
628
+ config.featureInfo = this._featureInfo.serializeModule(moduleId);
629
+ config.i18n = this._i18n.serializeModule(moduleId);
630
+ config.contentTree = this._contentTree.serializeModule(moduleId);
631
+ config.plugins = this._plugins.serializeModule(moduleId);
632
+ return config;
633
+ }
634
+
635
+ /**
636
+ * @param {string} moduleId
210
637
  * @returns {Promise<void>}
211
638
  * @protected
212
639
  */
213
- async _removeContext(contextId) {
640
+ async _removeModule(moduleId) {
214
641
  await Promise.all([
215
- super._removeContext(contextId),
216
- this._plugins.removeContext(contextId),
217
- this._contentTree.removeContext(contextId),
642
+ super._removeModule(moduleId),
643
+ this._plugins.removeModule(moduleId),
644
+ this._i18n.removeModule(moduleId),
645
+ this._contentTree.removeModule(moduleId),
646
+ this._featureInfo.removeModule(moduleId),
647
+ this._uiConfig.removeModule(moduleId),
218
648
  ]);
219
649
  }
220
650
 
@@ -224,12 +654,23 @@ class VcsUiApp extends VcsApp {
224
654
  destroy() {
225
655
  this.windowManager.destroy();
226
656
  this.navbarManager.destroy();
657
+ this.toolboxManager.destroy();
658
+ this.categoryManager.destroy();
659
+ this.contextMenuManager.destroy();
227
660
  this._overviewMap.destroy();
228
- // TODO destroy other manager
229
- this._pluginAddedListener();
661
+ this._pluginListeners.forEach((cb) => {
662
+ cb();
663
+ });
664
+ this._pluginListeners = [];
230
665
  destroyCollection(this._plugins);
231
666
  destroyCollection(this._contentTree);
667
+ destroyCollection(this._i18n);
668
+ destroyCollection(this._search);
669
+ this._vueI18nDestroy();
232
670
  this._contentTreeClassRegistry.destroy();
671
+ this._featureInfoClassRegistry.destroy();
672
+ this._featureInfo.destroy();
673
+ this._uiConfig.destroy();
233
674
  super.destroy();
234
675
  }
235
676
  }