@vcmap/ui 5.0.0-rc.9 → 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 (724) hide show
  1. package/README.md +90 -106
  2. package/app.config.json +3 -0
  3. package/build/.eslintrc +3 -0
  4. package/build/build.js +302 -162
  5. package/build/buildCesium.js +39 -19
  6. package/build/buildHelpers.js +279 -87
  7. package/build/buildPreview.js +16 -6
  8. package/build/bundle.js +57 -0
  9. package/build/commonViteConfig.js +6 -15
  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 +171 -24
  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 -33
  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 +119 -35
  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 → @vcmap-show-case}/project-selector/package.json +3 -4
  234. package/plugins/{@vcmap/project-selector/ContextsListComponent.vue → @vcmap-show-case/project-selector/src/ModulesListComponent.vue} +22 -19
  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 +14 -8
  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 +184 -49
  308. package/src/actions/stateRefAction.js +2 -3
  309. package/src/application/VcsApp.vue +538 -98
  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 +52 -22
  324. package/src/components/buttons/VcsButton.vue +60 -110
  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 +62 -20
  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 +120 -16
  331. package/src/components/form-inputs-controls/VcsLabel.vue +29 -11
  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 +164 -50
  335. package/src/components/form-inputs-controls/VcsSlider.vue +73 -0
  336. package/src/components/form-inputs-controls/VcsTextArea.vue +118 -68
  337. package/src/components/form-inputs-controls/VcsTextField.vue +238 -69
  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 +28 -28
  342. package/src/{icons → components/icons}/+all.js +109 -5
  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/{icons → components/icons}/AssociationsIcon.vue +7 -4
  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/{icons → components/icons}/ColorSwatchIcon.vue +6 -2
  361. package/src/{icons → components/icons}/CommentIcon.vue +6 -6
  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/{icons → components/icons}/ElevationProfileIcon.vue +7 -14
  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/{icons → components/icons}/HealthCareIndustriesIcon.vue +7 -12
  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/{icons → components/icons}/HospitalsIcon.vue +7 -21
  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/{icons → components/icons}/KebabIcon.vue +7 -5
  388. package/src/components/icons/LabelIcon.vue +23 -0
  389. package/src/{icons → components/icons}/LayersIcon.vue +7 -5
  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/{icons → components/icons}/MenuIcon.vue +7 -5
  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/{icons/PolygonIcon.vue → components/icons/PointIcon.vue} +8 -6
  407. package/src/components/icons/PointSelectIcon.vue +18 -0
  408. package/src/components/icons/PresentationModeIcon.vue +17 -0
  409. package/src/{icons → components/icons}/ProgressIcon.vue +9 -7
  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/{icons → components/icons}/ShapesIcon.vue +13 -6
  420. package/src/components/icons/ShareIcon.vue +22 -0
  421. package/src/components/icons/SimpleCircleFilledIcon.vue +18 -0
  422. package/src/{icons → components/icons}/SimpleCircleHalfFilledIcon.vue +6 -2
  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/{icons → components/icons}/SplitViewIcon.vue +6 -6
  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 +57 -25
  448. package/src/components/lists/VcsList.vue +590 -0
  449. package/src/components/lists/VcsTreeview.vue +45 -42
  450. package/src/components/lists/VcsTreeviewLeaf.vue +45 -69
  451. package/src/components/lists/VcsTreeviewSearchbar.vue +40 -48
  452. package/src/components/notification/VcsBadge.vue +6 -4
  453. package/src/components/notification/VcsHelp.vue +39 -0
  454. package/src/components/notification/VcsTooltip.vue +111 -105
  455. package/src/components/notification/validation.js +1 -1
  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 +18 -14
  473. package/src/contentTree/contentTreeCollection.js +109 -41
  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/manager/buttonManager.js +32 -15
  502. package/src/manager/collectionManager/CollectionComponent.vue +140 -0
  503. package/src/manager/collectionManager/CollectionComponentList.vue +77 -0
  504. package/src/manager/collectionManager/CollectionComponentProvider.vue +39 -0
  505. package/src/manager/collectionManager/CollectionManager.vue +62 -0
  506. package/src/manager/collectionManager/categoryManager.js +83 -0
  507. package/src/manager/collectionManager/collectionComponent.js +470 -0
  508. package/src/manager/collectionManager/collectionManager.js +432 -0
  509. package/src/manager/contextMenu/ContextMenuComponent.vue +43 -0
  510. package/src/manager/contextMenu/contextMenuInteraction.js +47 -0
  511. package/src/manager/contextMenu/contextMenuManager.js +220 -0
  512. package/src/manager/navbarManager.js +47 -13
  513. package/src/manager/toolbox/GroupToolboxComponent.vue +128 -0
  514. package/src/manager/toolbox/SelectToolboxComponent.vue +144 -0
  515. package/src/manager/toolbox/ToolboxManager.vue +124 -102
  516. package/src/manager/toolbox/toolboxManager.js +254 -87
  517. package/src/manager/window/WindowComponent.vue +105 -85
  518. package/src/manager/window/WindowComponentHeader.vue +115 -24
  519. package/src/manager/window/WindowManager.vue +121 -55
  520. package/src/manager/window/windowHelper.js +465 -0
  521. package/src/manager/window/windowManager.js +294 -86
  522. package/src/navigation/{mapNavCompass.vue → MapNavCompass.vue} +31 -11
  523. package/src/navigation/MapNavigation.vue +291 -0
  524. package/src/navigation/ObliqueRotation.vue +69 -0
  525. package/src/navigation/{orientationToolsButton.vue → OrientationToolsButton.vue} +13 -12
  526. package/src/navigation/{tiltSlider.vue → TiltSlider.vue} +39 -16
  527. package/src/navigation/VcsCompass.vue +69 -0
  528. package/src/navigation/VcsZoomButton.vue +52 -0
  529. package/src/navigation/overviewMap.js +142 -104
  530. package/src/navigation/overviewMapClickedInteraction.js +6 -1
  531. package/src/notifier/NotifierComponent.vue +86 -0
  532. package/src/notifier/notifier.js +129 -0
  533. package/src/pluginHelper.js +148 -20
  534. package/src/search/ResultItem.vue +83 -0
  535. package/src/search/ResultsComponent.vue +103 -0
  536. package/src/search/SearchComponent.vue +116 -0
  537. package/src/search/search.js +342 -0
  538. package/src/setup.js +9 -10
  539. package/src/state.js +272 -0
  540. package/src/styles/_theming.scss +69 -21
  541. package/src/styles/_typography.scss +3 -6
  542. package/src/styles/main.scss +9 -0
  543. package/src/styles/shades.scss +4 -0
  544. package/src/styles/utils/_border.scss +1 -1
  545. package/src/styles/utils/_cursor.scss +4 -0
  546. package/src/styles/utils/_display.scss +1 -1
  547. package/src/styles/variables.scss +79 -11
  548. package/src/styles/vcsFont.scss +2 -5
  549. package/src/styles/vcsGrid.scss +9 -0
  550. package/src/uiConfig.js +83 -0
  551. package/src/vcsUiApp.js +508 -68
  552. package/src/vuePlugins/i18n.js +51 -13
  553. package/src/vuePlugins/vuetify.js +104 -43
  554. package/config/berlin.config.json +0 -529
  555. package/dist/assets/cesium/Workers/ArcType-fc72c06c.js +0 -1
  556. package/dist/assets/cesium/Workers/AttributeCompression-80665726.js +0 -1
  557. package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-a655a4bc.js +0 -1
  558. package/dist/assets/cesium/Workers/BoundingRectangle-c3b79029.js +0 -1
  559. package/dist/assets/cesium/Workers/BoxGeometry-f8f9c981.js +0 -1
  560. package/dist/assets/cesium/Workers/Color-de06a177.js +0 -1
  561. package/dist/assets/cesium/Workers/ComponentDatatype-a15c9a19.js +0 -1
  562. package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-48cdc26d.js +0 -1
  563. package/dist/assets/cesium/Workers/CorridorGeometryLibrary-ddc027d3.js +0 -1
  564. package/dist/assets/cesium/Workers/CylinderGeometry-82a8cbe6.js +0 -1
  565. package/dist/assets/cesium/Workers/CylinderGeometryLibrary-76cda53e.js +0 -1
  566. package/dist/assets/cesium/Workers/EllipseGeometry-32d55454.js +0 -1
  567. package/dist/assets/cesium/Workers/EllipseGeometryLibrary-b2ae188a.js +0 -1
  568. package/dist/assets/cesium/Workers/EllipseOutlineGeometry-f05a5a27.js +0 -1
  569. package/dist/assets/cesium/Workers/EllipsoidGeodesic-19e75e11.js +0 -1
  570. package/dist/assets/cesium/Workers/EllipsoidGeometry-7c99fc81.js +0 -1
  571. package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-21c243df.js +0 -1
  572. package/dist/assets/cesium/Workers/EllipsoidRhumbLine-6145377b.js +0 -1
  573. package/dist/assets/cesium/Workers/EllipsoidTangentPlane-a01286f6.js +0 -1
  574. package/dist/assets/cesium/Workers/EncodedCartesian3-d9f5c4a4.js +0 -1
  575. package/dist/assets/cesium/Workers/FrustumGeometry-17776af8.js +0 -1
  576. package/dist/assets/cesium/Workers/GeometryAttribute-89a520b9.js +0 -1
  577. package/dist/assets/cesium/Workers/GeometryAttributes-32b29525.js +0 -1
  578. package/dist/assets/cesium/Workers/GeometryInstance-4fbf16ba.js +0 -1
  579. package/dist/assets/cesium/Workers/GeometryOffsetAttribute-8c5e10db.js +0 -1
  580. package/dist/assets/cesium/Workers/GeometryPipeline-309fad76.js +0 -1
  581. package/dist/assets/cesium/Workers/IndexDatatype-f1dcdf35.js +0 -1
  582. package/dist/assets/cesium/Workers/IntersectionTests-58aa8f80.js +0 -1
  583. package/dist/assets/cesium/Workers/Matrix2-47e98d76.js +0 -1
  584. package/dist/assets/cesium/Workers/OrientedBoundingBox-fcb5b750.js +0 -1
  585. package/dist/assets/cesium/Workers/Plane-3f01019d.js +0 -1
  586. package/dist/assets/cesium/Workers/PolygonGeometryLibrary-0b29eb16.js +0 -1
  587. package/dist/assets/cesium/Workers/PolygonPipeline-a934c4dd.js +0 -1
  588. package/dist/assets/cesium/Workers/PolylinePipeline-8095c9bc.js +0 -1
  589. package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-67d12fff.js +0 -1
  590. package/dist/assets/cesium/Workers/PrimitivePipeline-980e44c5.js +0 -1
  591. package/dist/assets/cesium/Workers/RectangleGeometryLibrary-621c6de8.js +0 -1
  592. package/dist/assets/cesium/Workers/RuntimeError-8952249c.js +0 -1
  593. package/dist/assets/cesium/Workers/TerrainEncoding-f96552d5.js +0 -1
  594. package/dist/assets/cesium/Workers/Transforms-c8cb8f43.js +0 -39
  595. package/dist/assets/cesium/Workers/VertexFormat-a0b706b0.js +0 -1
  596. package/dist/assets/cesium/Workers/WallGeometryLibrary-c03d8479.js +0 -1
  597. package/dist/assets/cesium/Workers/WebGLConstants-508b9636.js +0 -1
  598. package/dist/assets/cesium/Workers/WebMercatorProjection-79b3214e.js +0 -1
  599. package/dist/assets/cesium/Workers/_commonjsHelpers-3aae1032-26891ab7.js +0 -1
  600. package/dist/assets/cesium/Workers/_rollup_plugin_ignore_empty_module_placeholder-57d574d0.js +0 -1
  601. package/dist/assets/cesium/Workers/arrayRemoveDuplicates-dc2f4046.js +0 -1
  602. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +0 -6
  603. package/dist/assets/cesium/Workers/combine-3c023bda.js +0 -1
  604. package/dist/assets/cesium/Workers/defaultValue-81eec7ed.js +0 -1
  605. package/dist/assets/cesium.4e40f4.js +0 -9105
  606. package/dist/assets/core.edcf5e.js +0 -4
  607. package/dist/assets/index.60dea538.css +0 -1
  608. package/dist/assets/index.889d0f3a.js +0 -1
  609. package/dist/assets/ol.246fd4.js +0 -318
  610. package/dist/assets/ui.df4f6d.css +0 -1
  611. package/dist/assets/ui.df4f6d.js +0 -43
  612. package/dist/assets/vue-composition-api.a520f3.js +0 -14
  613. package/dist/assets/vue-composition-api.js +0 -2
  614. package/dist/assets/vue.2cee44.js +0 -9
  615. package/dist/assets/vuetify.cc817b.css +0 -5
  616. package/dist/assets/vuetify.cc817b.js +0 -48
  617. package/lib/vue-composition-api.js +0 -2
  618. package/map.config.json +0 -35
  619. package/plugins/@vcmap/pluginExample/config.json +0 -6
  620. package/plugins/@vcmap/pluginExample/package.json +0 -7
  621. package/plugins/@vcmap/pluginExample/pluginExampleComponent.vue +0 -374
  622. package/plugins/@vcmap/project-selector/ProjectSelectorComponent.vue +0 -81
  623. package/plugins/@vcmap/project-selector/README.md +0 -29
  624. package/plugins/@vcmap/project-selector/config.json +0 -15
  625. package/plugins/@vcmap/project-selector/index.js +0 -254
  626. package/plugins/@vcmap/theme-changer/config.json +0 -69
  627. package/plugins/@vcmap/theme-changer/package.json +0 -12
  628. package/plugins/buttonExamples/ButtonExamples.vue +0 -190
  629. package/plugins/buttonExamples/index.js +0 -41
  630. package/plugins/categoryTest/Categories.vue +0 -145
  631. package/plugins/categoryTest/Category.vue +0 -114
  632. package/plugins/categoryTest/ItemEditor.vue +0 -13
  633. package/plugins/categoryTest/index.js +0 -41
  634. package/plugins/example/index.js +0 -75
  635. package/plugins/test/allIconsComponent.vue +0 -34
  636. package/plugins/test/editor.vue +0 -63
  637. package/plugins/test/index.js +0 -116
  638. package/plugins/test/myCustomHeader.vue +0 -19
  639. package/plugins/test/toolbox-data.js +0 -129
  640. package/plugins/test/vcsContent.vue +0 -23
  641. package/plugins/test/windowManagerExample.vue +0 -143
  642. package/src/actions/styleSelector.vue +0 -90
  643. package/src/application/Navbar.vue +0 -130
  644. package/src/application/empty-cmp.vue +0 -6
  645. package/src/components/form-inputs-controls/VcsColorPicker.vue +0 -81
  646. package/src/contentTree/viewPointContentTreeItem.js +0 -107
  647. package/src/icons/2DAreaIcon.vue +0 -21
  648. package/src/icons/2DDistanceIcon.vue +0 -18
  649. package/src/icons/3DAreaIcon.vue +0 -21
  650. package/src/icons/3DDistanceIcon.vue +0 -18
  651. package/src/icons/3DHeightIcon.vue +0 -18
  652. package/src/icons/AngleIcon.vue +0 -8
  653. package/src/icons/AxisIcon.vue +0 -10
  654. package/src/icons/BoundingBoxIcon.vue +0 -15
  655. package/src/icons/CheckboxCheckedIcon.vue +0 -16
  656. package/src/icons/CheckboxIcon.vue +0 -23
  657. package/src/icons/CheckboxIndeterminateIcon.vue +0 -24
  658. package/src/icons/CircleIcon.vue +0 -10
  659. package/src/icons/CompassIcon.vue +0 -8
  660. package/src/icons/ComponentsIcon.vue +0 -7
  661. package/src/icons/ConeIcon.vue +0 -11
  662. package/src/icons/DimensionsHouseIcon.vue +0 -14
  663. package/src/icons/ExportAreaIcon.vue +0 -7
  664. package/src/icons/ExportFlightIcon.vue +0 -7
  665. package/src/icons/ExportIcon.vue +0 -8
  666. package/src/icons/ExternalLinkIcon.vue +0 -10
  667. package/src/icons/EyeIcon.vue +0 -7
  668. package/src/icons/FastForwardIcon.vue +0 -7
  669. package/src/icons/FilterIcon.vue +0 -8
  670. package/src/icons/GlobeNatureIcon.vue +0 -14
  671. package/src/icons/HelpIcon.vue +0 -7
  672. package/src/icons/HomePointIcon.vue +0 -8
  673. package/src/icons/HouseIcon.vue +0 -25
  674. package/src/icons/ImportIcon.vue +0 -8
  675. package/src/icons/InfoIcon.vue +0 -10
  676. package/src/icons/LabelIcon.vue +0 -7
  677. package/src/icons/LegendIcon.vue +0 -65
  678. package/src/icons/LineIcon.vue +0 -7
  679. package/src/icons/LinkIcon.vue +0 -7
  680. package/src/icons/MapIcon.vue +0 -8
  681. package/src/icons/MinusIcon.vue +0 -8
  682. package/src/icons/ObjectAttributeIcon.vue +0 -18
  683. package/src/icons/ObjectSelectIcon.vue +0 -8
  684. package/src/icons/ObliqueViewIcon.vue +0 -13
  685. package/src/icons/PdfIcon.vue +0 -10
  686. package/src/icons/PedestrianIcon.vue +0 -8
  687. package/src/icons/PenIcon.vue +0 -14
  688. package/src/icons/PlayCircleIcon.vue +0 -10
  689. package/src/icons/PlusIcon.vue +0 -9
  690. package/src/icons/PoiIcon.vue +0 -7
  691. package/src/icons/PointSelectIcon.vue +0 -7
  692. package/src/icons/PresentationModeIcon.vue +0 -7
  693. package/src/icons/QueryIcon.vue +0 -15
  694. package/src/icons/RectangleIcon.vue +0 -9
  695. package/src/icons/ReturnIcon.vue +0 -7
  696. package/src/icons/RewindIcon.vue +0 -6
  697. package/src/icons/SearchIcon.vue +0 -8
  698. package/src/icons/ShadowIcon.vue +0 -9
  699. package/src/icons/ShareIcon.vue +0 -22
  700. package/src/icons/SimpleCircleFilledIcon.vue +0 -15
  701. package/src/icons/SimpleCircleOutlinedIcon.vue +0 -15
  702. package/src/icons/SkipNextIcon.vue +0 -7
  703. package/src/icons/SkipPreviousIcon.vue +0 -9
  704. package/src/icons/TextStyleIcon.vue +0 -14
  705. package/src/icons/ThreeDimensionsIcon.vue +0 -7
  706. package/src/icons/ToolsIcon.vue +0 -35
  707. package/src/icons/TouchIcon.vue +0 -8
  708. package/src/icons/TrashCanIcon.vue +0 -7
  709. package/src/icons/TriangleIcon.vue +0 -15
  710. package/src/icons/TwoDimensionsIcon.vue +0 -8
  711. package/src/icons/UploadIcon.vue +0 -14
  712. package/src/icons/VideoRecorderIcon.vue +0 -14
  713. package/src/icons/WalkingIcon.vue +0 -7
  714. package/src/icons/WallIcon.vue +0 -14
  715. package/src/lang/de.js +0 -60
  716. package/src/lang/en.js +0 -53
  717. package/src/manager/toolbox/ToolboxGroupComponent.vue +0 -128
  718. package/src/navigation/mapNavigation.vue +0 -205
  719. package/src/navigation/obliqueRotation.vue +0 -48
  720. package/src/navigation/vcsCompass.vue +0 -144
  721. package/src/navigation/vcsZoomButton.vue +0 -27
  722. package/start.js +0 -3
  723. /package/src/{assets/logo-mobile.svg → logo-mobile.svg} +0 -0
  724. /package/src/{assets/logo.svg → logo.svg} +0 -0
@@ -1,4 +1,4 @@
1
- import { reactive, ref } from '@vue/composition-api';
1
+ import { computed, reactive, ref } from 'vue';
2
2
  import { VcsEvent } from '@vcmap/core';
3
3
  import { v4 as uuidv4 } from 'uuid';
4
4
  import { parseEnumValue } from '@vcsuite/parsers';
@@ -8,46 +8,55 @@ import { vcsAppSymbol } from '../../pluginHelper.js';
8
8
  /**
9
9
  * @readonly
10
10
  * @enum {string}
11
- * @property {string} STATIC
12
- * @property {string} DYNAMIC_LEFT
13
- * @property {string} DYNAMIC_RIGHT
14
- * @property {string} DETACHED
11
+ * @property {string} STATIC - Static windows cannot be moved and will be positioned top-left.
12
+ * @property {string} DYNAMIC_LEFT - Positioned top-left, if no static window is present. Can be moved by user interaction.
13
+ * @property {string} DYNAMIC_RIGHT - Positioned top-right. Can be moved by user interaction.
14
+ * @property {string} DYNAMIC_CHILD - Positioned top-right of a parent window. Can be moved by user interaction. Will be moved with parent window, if docked. Requires parentId.
15
+ * @property {string} DETACHED - Positioned at initial provided position. Can be moved by user interaction.
15
16
  */
16
17
  export const WindowSlot = {
17
18
  STATIC: 'static',
18
19
  DYNAMIC_LEFT: 'dynamicLeft',
19
20
  DYNAMIC_RIGHT: 'dynamicRight',
21
+ DYNAMIC_CHILD: 'dynamicChild',
20
22
  DETACHED: 'detached',
21
23
  };
22
24
 
23
-
24
25
  /**
25
- * @typedef WindowPositionOptions
26
+ * @typedef {Object} WindowPositionOptions
26
27
  * @property {string|number|undefined} left Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
27
28
  * @property {string|number|undefined} top Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
28
29
  * @property {string|number|undefined} right Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
29
30
  * @property {string|number|undefined} bottom Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
30
- * @property {string|number|undefined} width Can be a css position string (e.g. '320px') number values are treated as `px` values
31
- * @property {string|number|undefined} height Can be pixel-value string (e.g. '320px') number values are treated as `px` values
31
+ * @property {string|number|undefined} width Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
32
+ * @property {string|number|undefined} height Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
33
+ * @property {string|number|undefined} maxHeight Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
34
+ * @property {string|number|undefined} maxWidth Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
35
+ * @property {string|number|undefined} minHeight Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
36
+ * @property {string|number|undefined} minWidth Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
32
37
  */
33
38
 
34
39
  /**
35
- * @typedef WindowPosition
36
- * @property {string} left - absolute to map container
37
- * @property {string} top - absolute to map container
38
- * @property {string} right - absolute to map container
39
- * @property {string} bottom - absolute to map container
40
- * @property {string} width
41
- * @property {string} height
40
+ * @typedef {Object} WindowPosition
41
+ * @property {string} left - The left CSS property participates in specifying the horizontal position of a window.
42
+ * @property {string} top - The top CSS property participates in specifying the vertical position of a window.
43
+ * @property {string} right - The right CSS property participates in specifying the horizontal position of a window.
44
+ * @property {string} bottom - The bottom CSS property participates in specifying the vertical position of a window.
45
+ * @property {string} width - The width CSS property sets an element's width.
46
+ * @property {string} height - The height CSS property sets an element's height.
47
+ * @property {string} [maxHeight] - It prevents the used value of the height property from becoming larger than the value specified for max-height. (max is target height, will be automatically updated)
48
+ * @property {string} [maxWidth] - It prevents the used value of the width property from becoming larger than the value specified by max-width. (max is target width, will be automatically updated)
49
+ * @property {string} [minHeight] - It prevents the used value of the height property from becoming smaller than the value specified for min-height.
50
+ * @property {string} [minWidth] - It prevents the used value of the width property from becoming smaller than the value specified for min-width.
42
51
  */
43
52
 
44
53
  /**
45
54
  * @readonly
46
- * @enum {WindowPositionOptions}
47
- * @property {Position} TOP_LEFT position of the DYNAMIC_LEFT or STATIC Slot
48
- * @property {Position} TOP_LEFT2 position of the DYNAMIC_LEFT Slot if a STATIC is present
49
- * @property {Position} TOP_RIGHT position of the DYNAMIC_RIGHT Slot
50
- * @property {Position} DETACHED default position of DETACHED Windows if no position is given
55
+ * @enum {WindowPosition}
56
+ * @property {WindowPosition} TOP_LEFT position of the DYNAMIC_LEFT or STATIC Slot
57
+ * @property {WindowPosition} TOP_LEFT2 position of the DYNAMIC_LEFT Slot if a STATIC is present
58
+ * @property {WindowPosition} TOP_RIGHT position of the DYNAMIC_RIGHT Slot
59
+ * @property {WindowPosition} DETACHED default position of DETACHED Windows if no position is given
51
60
  * @private
52
61
  */
53
62
  export const WindowPositions = {
@@ -56,7 +65,7 @@ export const WindowPositions = {
56
65
  top: '0px',
57
66
  },
58
67
  TOP_LEFT2: {
59
- left: '320px',
68
+ left: '322px', // 2px space
60
69
  top: '0px',
61
70
  },
62
71
  TOP_RIGHT: {
@@ -69,15 +78,40 @@ export const WindowPositions = {
69
78
  },
70
79
  };
71
80
 
81
+ /**
82
+ * Return true, if all values of pos1 match with the corresponding values of pos2
83
+ * @param {WindowPosition} pos1
84
+ * @param {WindowPosition} pos2
85
+ * @returns {boolean}
86
+ */
87
+ export function compareWindowPositions(pos1, pos2) {
88
+ return !Object.keys(pos1).some((key) => pos1[key] !== pos2[key]);
89
+ }
90
+
91
+ /**
92
+ * Returns true, if the provided position is a slot position
93
+ * @param {WindowPosition} windowPosition
94
+ * @returns {boolean}
95
+ */
96
+ export function isSlotPosition(windowPosition) {
97
+ return [
98
+ WindowPositions.TOP_LEFT,
99
+ WindowPositions.TOP_LEFT2,
100
+ WindowPositions.TOP_RIGHT,
101
+ ].some((s) => compareWindowPositions(s, windowPosition));
102
+ }
103
+
72
104
  /**
73
105
  * @typedef WindowComponentOptions
74
106
  * @property {string} [id] Optional ID, If not provided an uuid will be generated.
75
- * @property {VueComponent} component Main Component which is shown below the header.
76
- * @property {VueComponent} [headerComponent] Replaces the Header Component.
77
- * @property {WindowPositionOptions} [position] Will be ignored if WindowSlot !== DETACHED, can be given otherwise or default will be used
107
+ * @property {string} [parentId] An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
108
+ * @property {import("vue").Component} component Main Component which is shown below the header.
109
+ * @property {import("vue").Component} [headerComponent] Replaces the Header Component.
78
110
  * @property {WindowState} [state]
79
- * @property {WindowSlot} [slot] If WindowSlot is not detached the position will be ignored
111
+ * @property {WindowPositionOptions} [position] Will be merged with default position for slot
112
+ * @property {WindowSlot} [slot]
80
113
  * @property {Object} [props]
114
+ * @property {Object} [provides]
81
115
  */
82
116
 
83
117
  /**
@@ -85,28 +119,39 @@ export const WindowPositions = {
85
119
  * @property {string} id
86
120
  * @property {string|vcsAppSymbol} owner Owner of the window, set by windowManager on add
87
121
  * @property {boolean} [hideHeader] be used to not show the header.
88
- * @property {string} [headerTitle]
122
+ * @property {boolean} [hidePin] be used to not show the pin button.
123
+ * @property {string|string[]} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
89
124
  * @property {string} [headerIcon]
90
- * @property {Object<string, string>} styles[styles] Can be used to add additional styles to the root WindowComponent. Use Vue Style Bindings Object Syntax https://vuejs.org/v2/guide/class-and-style.html
125
+ * @property {Array<VcsAction>} [headerActions]
126
+ * @property {number} [headerActionsOverflow]
127
+ * @property {string} [infoUrl] An optional url referencing help or further information on the window's content.
128
+ * @property {function():string} [infoUrlCallback] An optional function returning an url referencing help or further information. Can be used for urls depending on the app's locale, e.g. app.getHelpUrl()
129
+ * @property {boolean} [dockable] Auto derived from hidePin, current slot, current position and initial position.
130
+ * @property {Object<string, string>} [styles] Can be used to add additional styles to the root WindowComponent. Use Vue Style Bindings Object Syntax https://vuejs.org/v2/guide/class-and-style.html
91
131
  * @property {Array<string>|Object<string,string>} [classes] Can be used to add additional classes to the root WindowComponent. Use Vue Class Bindings Syntax https://vuejs.org/v2/guide/class-and-style.html
92
132
  */
93
133
 
94
134
  /**
95
135
  * @typedef WindowComponent
96
136
  * @property {string} id
97
- * @property {VueComponent} component
98
- * @property {VueComponent} [headerComponent]
99
- * @property {WindowPosition} position
137
+ * @property {string} [parentId]
138
+ * @property {import("vue").Component} component
139
+ * @property {import("vue").Component} [headerComponent]
100
140
  * @property {WindowState} state
101
- * @property {Ref<UnwrapRef<WindowSlot>>} slot
141
+ * @property {WindowPosition} [position]
142
+ * @property {WindowPositionOptions} initialPositionOptions
143
+ * @property {import("vue").Ref<WindowSlot>} slot
144
+ * @property {WindowSlot} initialSlot
102
145
  * @property {Object} props
146
+ * @property {Object} provides
147
+ * @property {import("vue").ComputedGetter<number>} zIndex
103
148
  */
104
149
 
105
150
  /**
106
151
  * @param {string|number|undefined} pos
107
152
  * @returns {string|undefined}
108
153
  */
109
- function parsePosition(pos) {
154
+ export function posToPixel(pos) {
110
155
  if (typeof pos === 'number') {
111
156
  return `${pos}px`;
112
157
  }
@@ -114,17 +159,21 @@ function parsePosition(pos) {
114
159
  }
115
160
 
116
161
  /**
162
+ * Returns CSS position string properties
117
163
  * @param {WindowPositionOptions} windowPositionOptions
118
164
  * @param {WindowPosition=} windowPosition
119
165
  * @returns {WindowPosition}
120
166
  */
121
- export function windowPositionFromOptions(windowPositionOptions, windowPosition = {}) {
122
- let left = parsePosition(windowPositionOptions.left) || 'unset';
123
- const right = parsePosition(windowPositionOptions.right) || 'unset';
124
- let top = parsePosition(windowPositionOptions.top) || 'unset';
125
- const bottom = parsePosition(windowPositionOptions.bottom) || 'unset';
126
- let width = parsePosition(windowPositionOptions.width) || 'auto';
127
- let height = parsePosition(windowPositionOptions.height) || 'auto';
167
+ export function windowPositionFromOptions(
168
+ windowPositionOptions,
169
+ windowPosition = {},
170
+ ) {
171
+ let left = posToPixel(windowPositionOptions.left) || 'unset';
172
+ const right = posToPixel(windowPositionOptions.right) || 'unset';
173
+ let top = posToPixel(windowPositionOptions.top) || 'unset';
174
+ const bottom = posToPixel(windowPositionOptions.bottom) || 'unset';
175
+ let width = posToPixel(windowPositionOptions.width) || 'auto';
176
+ let height = posToPixel(windowPositionOptions.height) || 'auto';
128
177
  if (left !== 'unset' && right !== 'unset') {
129
178
  width = 'auto'; // left + right takes precedence over configured width
130
179
  } else if (width === 'auto') {
@@ -147,23 +196,50 @@ export function windowPositionFromOptions(windowPositionOptions, windowPosition
147
196
  width,
148
197
  height,
149
198
  };
199
+ if (windowPositionOptions.maxWidth) {
200
+ result.maxWidth = posToPixel(windowPositionOptions.maxWidth);
201
+ }
202
+ if (windowPositionOptions.maxHeight) {
203
+ result.maxHeight = posToPixel(windowPositionOptions.maxHeight);
204
+ }
205
+ if (windowPositionOptions.minHeight) {
206
+ result.minHeight = posToPixel(windowPositionOptions.minHeight);
207
+ }
208
+ if (windowPositionOptions.minWidth) {
209
+ result.minWidth = posToPixel(windowPositionOptions.minWidth);
210
+ }
211
+
150
212
  return Object.assign(windowPosition, result);
151
213
  }
152
214
 
153
215
  /**
154
- * WindowPositionOptions from client position relative to a HTMLElement
155
- * @param {number} x
156
- * @param {number} y
157
- * @param {string|HTMLElement} [element='mapElement']
158
- * @returns {WindowPositionOptions}
216
+ * Sets a position on a component. Updates dockable state.
217
+ * @param {WindowComponent} windowComponent
218
+ * @param {WindowPositionOptions} windowPositionOptions
159
219
  */
160
- export function getWindowPositionOptions(x, y, element = 'mapElement') {
161
- let mapElement = element;
162
- if (typeof mapElement === 'string') {
163
- mapElement = document.getElementsByClassName(element).item(0);
220
+ function setWindowPosition(windowComponent, windowPositionOptions) {
221
+ const windowPosition = windowPositionFromOptions(
222
+ windowPositionOptions,
223
+ windowComponent.position,
224
+ );
225
+ // not one of the default Positions, so we also have to DETACH the windowState.
226
+ if (!isSlotPosition(windowPosition)) {
227
+ windowComponent.slot.value = WindowSlot.DETACHED;
228
+ }
229
+ // check dockable state
230
+ const initialWindowPosition = windowPositionFromOptions(
231
+ windowComponent.initialPositionOptions,
232
+ );
233
+ const isInitialPosition = compareWindowPositions(
234
+ windowPosition,
235
+ initialWindowPosition,
236
+ );
237
+ windowComponent.state.dockable =
238
+ windowComponent.slot.value === WindowSlot.DETACHED && !isInitialPosition;
239
+
240
+ if (isInitialPosition) {
241
+ windowComponent.slot.value = windowComponent.initialSlot;
164
242
  }
165
- const { left, top } = mapElement.getBoundingClientRect();
166
- return { left: x - left, top: y - top };
167
243
  }
168
244
 
169
245
  /**
@@ -171,7 +247,7 @@ export function getWindowPositionOptions(x, y, element = 'mapElement') {
171
247
  * @description Manages a set of Draggable Windows
172
248
  * @implements VcsComponentManager<WindowComponent,WindowComponentOptions>
173
249
  */
174
- export class WindowManager {
250
+ class WindowManager {
175
251
  constructor() {
176
252
  /**
177
253
  * @type {import("@vcmap/core").VcsEvent<WindowComponent>}
@@ -185,13 +261,23 @@ export class WindowManager {
185
261
  * reactive ordered array of ids,
186
262
  * @type {Array<string>}
187
263
  */
188
- this.componentIds = reactive([]);
264
+ this.componentIds = [];
265
+ /**
266
+ * reactive ordered array of ids, defining the zIndex of a component
267
+ * @type {import("vue").Ref<Array<string>>}
268
+ */
269
+ this._zIndices = ref([]);
189
270
 
190
271
  /**
191
272
  * @type {Map<string, WindowComponent>}
192
273
  * @private
193
274
  */
194
275
  this._windowComponents = new Map();
276
+ /**
277
+ * @type {Map<string, WindowPosition>}
278
+ * @private
279
+ */
280
+ this._windowPositionsCache = new Map();
195
281
  }
196
282
 
197
283
  /**
@@ -219,11 +305,18 @@ export class WindowManager {
219
305
  check(id, String);
220
306
  const windowComponent = this._windowComponents.get(id);
221
307
  if (windowComponent) {
222
- const index = this.componentIds.indexOf(id);
223
- this.componentIds.splice(index, 1);
308
+ this._cachePosition(windowComponent);
309
+ this.componentIds.splice(this.componentIds.indexOf(id), 1);
310
+ this._zIndices.value.splice(this._zIndices.value.indexOf(id), 1);
224
311
  this._windowComponents.delete(id);
225
312
  this._handleSlotsChanged(windowComponent.slot.value);
226
313
  this.removed.raiseEvent(windowComponent);
314
+ const child = Array.from(this._windowComponents.values()).find(
315
+ ({ parentId }) => id === parentId,
316
+ );
317
+ if (child) {
318
+ this.remove(child.id);
319
+ }
227
320
  }
228
321
  }
229
322
 
@@ -234,14 +327,7 @@ export class WindowManager {
234
327
  setWindowPositionOptions(id, windowPositionOptions) {
235
328
  const windowComponent = this._windowComponents.get(id);
236
329
  if (windowComponent) {
237
- const isSlotPosition = windowPositionOptions === WindowPositions.TOP_LEFT ||
238
- windowPositionOptions === WindowPositions.TOP_LEFT2 ||
239
- windowPositionOptions === WindowPositions.TOP_RIGHT;
240
- // not one of the default Positions, so we also have to DETACH the windowState.
241
- if (!isSlotPosition) {
242
- windowComponent.slot.value = WindowSlot.DETACHED;
243
- }
244
- windowPositionFromOptions(windowPositionOptions, windowComponent.position);
330
+ setWindowPosition(windowComponent, windowPositionOptions);
245
331
  }
246
332
  }
247
333
 
@@ -256,9 +342,15 @@ export class WindowManager {
256
342
  const staticWindow = this._findWindowBySlot(WindowSlot.STATIC);
257
343
  const dynamicWindowLeft = this._findWindowBySlot(WindowSlot.DYNAMIC_LEFT);
258
344
  if (staticWindow && dynamicWindowLeft) {
259
- this.setWindowPositionOptions(dynamicWindowLeft.id, WindowPositions.TOP_LEFT2);
345
+ this.setWindowPositionOptions(dynamicWindowLeft.id, {
346
+ ...dynamicWindowLeft.position,
347
+ ...WindowPositions.TOP_LEFT2,
348
+ });
260
349
  } else if (!staticWindow && dynamicWindowLeft) {
261
- this.setWindowPositionOptions(dynamicWindowLeft.id, WindowPositions.TOP_LEFT);
350
+ this.setWindowPositionOptions(dynamicWindowLeft.id, {
351
+ ...dynamicWindowLeft.position,
352
+ ...WindowPositions.TOP_LEFT,
353
+ });
262
354
  }
263
355
  }
264
356
  }
@@ -269,7 +361,9 @@ export class WindowManager {
269
361
  * @private
270
362
  */
271
363
  _findWindowBySlot(slot) {
272
- return Array.from(this._windowComponents.values()).find(item => item.slot.value === slot);
364
+ return Array.from(this._windowComponents.values()).find(
365
+ (item) => item.slot.value === slot,
366
+ );
273
367
  }
274
368
 
275
369
  /**
@@ -280,18 +374,21 @@ export class WindowManager {
280
374
  */
281
375
  _getPositionOptionsForSlot(slot, position) {
282
376
  if (slot === WindowSlot.STATIC) {
283
- return WindowPositions.TOP_LEFT;
377
+ return { ...WindowPositions.TOP_LEFT, maxWidth: '320px' };
284
378
  }
285
379
  if (slot === WindowSlot.DYNAMIC_LEFT) {
286
380
  const windowAtStatic = this._findWindowBySlot(WindowSlot.STATIC);
287
381
  if (windowAtStatic) {
288
- return WindowPositions.TOP_LEFT2;
382
+ return { ...position, ...WindowPositions.TOP_LEFT2 };
289
383
  } else {
290
- return WindowPositions.TOP_LEFT;
384
+ return { ...position, ...WindowPositions.TOP_LEFT };
291
385
  }
292
386
  }
293
387
  if (slot === WindowSlot.DYNAMIC_RIGHT) {
294
- return WindowPositions.TOP_RIGHT;
388
+ return { ...position, ...WindowPositions.TOP_RIGHT };
389
+ }
390
+ if (slot === WindowSlot.DYNAMIC_CHILD) {
391
+ return { ...position, ...WindowPositions.TOP_LEFT };
295
392
  }
296
393
  return position || WindowPositions.DETACHED;
297
394
  }
@@ -310,10 +407,52 @@ export class WindowManager {
310
407
  }
311
408
  }
312
409
 
410
+ /**
411
+ * @param {string} id
412
+ * @returns {WindowPosition|undefined}
413
+ */
414
+ getCachedPosition(id) {
415
+ return this._windowPositionsCache.get(id);
416
+ }
417
+
418
+ /**
419
+ * Caches the position, if it differs from the initial position
420
+ * @param {WindowComponent} windowComponent
421
+ * @private
422
+ */
423
+ _cachePosition(windowComponent) {
424
+ const initialWindowPosition = windowPositionFromOptions(
425
+ windowComponent.initialPositionOptions,
426
+ );
427
+ if (
428
+ !compareWindowPositions(initialWindowPosition, windowComponent.position)
429
+ ) {
430
+ this._windowPositionsCache.set(windowComponent.id, {
431
+ ...windowComponent.position,
432
+ });
433
+ }
434
+ }
435
+
436
+ /**
437
+ * Returns true, if cached position was assigned.
438
+ * @param {WindowComponent} windowComponent
439
+ * @returns {boolean}
440
+ * @private
441
+ */
442
+ _assignCachedPosition(windowComponent) {
443
+ if (this._windowPositionsCache.has(windowComponent.id)) {
444
+ const windowPosition = this.getCachedPosition(windowComponent.id);
445
+ setWindowPosition(windowComponent, windowPosition);
446
+ this._windowPositionsCache.delete(windowComponent.id);
447
+ return true;
448
+ }
449
+ return false;
450
+ }
451
+
313
452
  /**
314
453
  * adds a windowComponent to the WindowManager and renders the Window at the provided position/slot.
315
454
  * The reactive WindowState Object can be used to watch Changes on position/WindowSlot.
316
- * The WindowState Object can also be used to change hideHeader, headerTitle, headerIcon, styles and classes
455
+ * The WindowState Object can also be used to change hideHeader, headerTitle, headerIcon, headerActions, styles and classes
317
456
  * @param {WindowComponentOptions|WindowComponent} windowComponentOptions
318
457
  * @param {string|symbol} owner pluginName or vcsAppSymbol
319
458
  * @throws {Error} if a windowComponent with the same ID has already been added
@@ -323,36 +462,60 @@ export class WindowManager {
323
462
  check(owner, [String, vcsAppSymbol]);
324
463
 
325
464
  if (windowComponentOptions.id && this.has(windowComponentOptions.id)) {
326
- throw new Error(`A window with id ${windowComponentOptions.id} has already been registered.`);
465
+ throw new Error(
466
+ `A window with id ${windowComponentOptions.id} has already been registered.`,
467
+ );
327
468
  }
328
469
  const id = windowComponentOptions.id || uuidv4();
329
- const slotOption = windowComponentOptions.slot?.value || windowComponentOptions.slot;
470
+ const parentId = windowComponentOptions?.parentId;
471
+ const slotOption =
472
+ windowComponentOptions.slot?.value || windowComponentOptions.slot;
330
473
  const slot = parseEnumValue(slotOption, WindowSlot, WindowSlot.DETACHED);
331
- const windowPositionOptions = this._getPositionOptionsForSlot(slot, windowComponentOptions.position);
474
+ if (
475
+ slot === WindowSlot.DYNAMIC_CHILD &&
476
+ !this.has(windowComponentOptions.parentId)
477
+ ) {
478
+ throw new Error(
479
+ `The mandatory parent window with id ${windowComponentOptions.parentId} is not registered. Add the parent window or choose another slot than dynamicChild.`,
480
+ );
481
+ }
482
+ const windowPositionOptions = this._getPositionOptionsForSlot(
483
+ slot,
484
+ windowComponentOptions.position,
485
+ );
332
486
  const windowPosition = windowPositionFromOptions(windowPositionOptions);
333
487
 
334
488
  const slotRef = ref(slot);
335
- const {
336
- component, headerComponent,
337
- } = windowComponentOptions;
489
+ const { component, headerComponent } = windowComponentOptions;
338
490
  const styles = { ...windowComponentOptions?.state?.styles };
339
- const classes = Array.isArray(windowComponentOptions?.state?.classes) ?
340
- [...(windowComponentOptions?.state?.classes ?? [])] :
341
- { ...windowComponentOptions?.state?.classes };
491
+ const classes = Array.isArray(windowComponentOptions?.state?.classes)
492
+ ? [...(windowComponentOptions?.state?.classes ?? [])]
493
+ : { ...windowComponentOptions?.state?.classes };
342
494
 
343
495
  const state = reactive({
344
496
  id,
497
+ parentId,
345
498
  owner,
346
499
  hideHeader: !!windowComponentOptions?.state?.hideHeader,
500
+ hidePin: !!windowComponentOptions?.state?.hidePin,
347
501
  headerTitle: windowComponentOptions?.state?.headerTitle,
348
502
  headerIcon: windowComponentOptions?.state?.headerIcon,
503
+ headerActions: windowComponentOptions?.state?.headerActions,
504
+ headerActionsOverflow:
505
+ windowComponentOptions?.state?.headerActionsOverflow,
506
+ dockable: false,
507
+ infoUrl: windowComponentOptions?.state?.infoUrl,
508
+ infoUrlCallback: windowComponentOptions?.state?.infoUrlCallback,
349
509
  classes,
350
510
  styles,
351
511
  });
352
512
 
353
513
  const props = windowComponentOptions.props || {};
514
+ const provides = windowComponentOptions.provides || {};
354
515
 
355
516
  const position = reactive(windowPosition);
517
+ const initialPosition = { ...windowPositionOptions };
518
+ const zIndex = computed(() => this._zIndices.value.indexOf(id));
356
519
  /**
357
520
  * @type {WindowComponent}
358
521
  */
@@ -360,6 +523,9 @@ export class WindowManager {
360
523
  get id() {
361
524
  return id;
362
525
  },
526
+ get parentId() {
527
+ return parentId;
528
+ },
363
529
  get state() {
364
530
  return state;
365
531
  },
@@ -372,16 +538,32 @@ export class WindowManager {
372
538
  get slot() {
373
539
  return slotRef;
374
540
  },
541
+ get initialSlot() {
542
+ return slot;
543
+ },
375
544
  get position() {
376
545
  return position;
377
546
  },
547
+ get initialPositionOptions() {
548
+ return initialPosition;
549
+ },
378
550
  get props() {
379
551
  return props;
380
552
  },
553
+ get provides() {
554
+ return provides;
555
+ },
556
+ get zIndex() {
557
+ return zIndex;
558
+ },
381
559
  };
382
- this._removeWindowAtSlot(slot);
560
+ const cached = this._assignCachedPosition(windowComponent);
561
+ if (!cached) {
562
+ this._removeWindowAtSlot(slot);
563
+ }
383
564
  this._windowComponents.set(id, windowComponent);
384
565
  this.componentIds.push(id);
566
+ this._zIndices.value.push(id);
385
567
  this._handleSlotsChanged(slot);
386
568
  this.added.raiseEvent(windowComponent);
387
569
  return windowComponent;
@@ -393,14 +575,36 @@ export class WindowManager {
393
575
  */
394
576
  bringWindowToTop(id) {
395
577
  if (this.has(id)) {
396
- const index = this.componentIds.indexOf(id);
397
- if (index >= 0 && index !== this.componentIds.length - 1) {
398
- this.componentIds.push(id);
399
- this.componentIds.splice(index, 1);
578
+ const index = this._zIndices.value.indexOf(id);
579
+ if (index >= 0 && index !== this._zIndices.value.length - 1) {
580
+ this._zIndices.value.push(id);
581
+ this._zIndices.value.splice(index, 1);
400
582
  }
401
583
  }
402
584
  }
403
585
 
586
+ /**
587
+ * Docks a window by resetting detached to its initial slot.
588
+ * Updates position according to its initial slot or initial position.
589
+ * Clears any cached position for this window.
590
+ * @param {string} id
591
+ */
592
+ pinWindow(id) {
593
+ const component = this.get(id);
594
+ if (!component?.state?.dockable) {
595
+ return;
596
+ }
597
+ this._removeWindowAtSlot(component.initialSlot);
598
+ component.slot.value = component.initialSlot;
599
+ component.state.dockable = false;
600
+ const dockedPosition = this._getPositionOptionsForSlot(
601
+ component.initialSlot,
602
+ component.initialPositionOptions,
603
+ );
604
+ windowPositionFromOptions(dockedPosition, component.position);
605
+ this._windowPositionsCache.delete(id);
606
+ }
607
+
404
608
  /**
405
609
  * removes all windowComponents of a specific owner (plugin) and fires removed Events
406
610
  * @param {string|vcsAppSymbol} owner
@@ -420,7 +624,9 @@ export class WindowManager {
420
624
  */
421
625
  clear() {
422
626
  const componentIds = [...this.componentIds];
423
- componentIds.forEach((id) => { this.remove(id); });
627
+ componentIds.forEach((id) => {
628
+ this.remove(id);
629
+ });
424
630
  }
425
631
 
426
632
  /**
@@ -433,3 +639,5 @@ export class WindowManager {
433
639
  this._windowComponents.clear();
434
640
  }
435
641
  }
642
+
643
+ export default WindowManager;