@vcmap/ui 5.0.0-rc.9 → 5.0.1

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 +607 -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 +1843 -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.888ef7.js +164897 -0
  136. package/dist/assets/cesium.js +1 -1
  137. package/dist/assets/core.860907.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-f265c560.js +1 -0
  147. package/dist/assets/ol.5e8a90.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.7758a8.css +5 -0
  162. package/dist/assets/ui.7758a8.js +16909 -0
  163. package/dist/assets/ui.js +1 -1
  164. package/dist/assets/vue.9771b3.js +4911 -0
  165. package/dist/assets/vue.js +5 -1
  166. package/dist/assets/vuetify.2818ff.css +5 -0
  167. package/dist/assets/vuetify.2818ff.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 +56 -36
  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 +187 -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 +136 -0
  307. package/src/actions/actionHelper.js +203 -50
  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 +593 -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 +986 -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 +503 -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 +35 -16
  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 +257 -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 +298 -87
  522. package/src/navigation/{mapNavCompass.vue → MapNavCompass.vue} +31 -11
  523. package/src/navigation/MapNavigation.vue +276 -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
 
@@ -252,13 +338,22 @@ export class WindowManager {
252
338
  * @private
253
339
  */
254
340
  _handleSlotsChanged(changedSlot) {
255
- if (changedSlot === WindowSlot.STATIC) {
341
+ if (
342
+ changedSlot === WindowSlot.STATIC ||
343
+ changedSlot === WindowSlot.DYNAMIC_LEFT
344
+ ) {
256
345
  const staticWindow = this._findWindowBySlot(WindowSlot.STATIC);
257
346
  const dynamicWindowLeft = this._findWindowBySlot(WindowSlot.DYNAMIC_LEFT);
258
347
  if (staticWindow && dynamicWindowLeft) {
259
- this.setWindowPositionOptions(dynamicWindowLeft.id, WindowPositions.TOP_LEFT2);
348
+ this.setWindowPositionOptions(dynamicWindowLeft.id, {
349
+ ...dynamicWindowLeft.position,
350
+ ...WindowPositions.TOP_LEFT2,
351
+ });
260
352
  } else if (!staticWindow && dynamicWindowLeft) {
261
- this.setWindowPositionOptions(dynamicWindowLeft.id, WindowPositions.TOP_LEFT);
353
+ this.setWindowPositionOptions(dynamicWindowLeft.id, {
354
+ ...dynamicWindowLeft.position,
355
+ ...WindowPositions.TOP_LEFT,
356
+ });
262
357
  }
263
358
  }
264
359
  }
@@ -269,7 +364,9 @@ export class WindowManager {
269
364
  * @private
270
365
  */
271
366
  _findWindowBySlot(slot) {
272
- return Array.from(this._windowComponents.values()).find(item => item.slot.value === slot);
367
+ return Array.from(this._windowComponents.values()).find(
368
+ (item) => item.slot.value === slot,
369
+ );
273
370
  }
274
371
 
275
372
  /**
@@ -280,18 +377,21 @@ export class WindowManager {
280
377
  */
281
378
  _getPositionOptionsForSlot(slot, position) {
282
379
  if (slot === WindowSlot.STATIC) {
283
- return WindowPositions.TOP_LEFT;
380
+ return { ...WindowPositions.TOP_LEFT, maxWidth: '320px' };
284
381
  }
285
382
  if (slot === WindowSlot.DYNAMIC_LEFT) {
286
383
  const windowAtStatic = this._findWindowBySlot(WindowSlot.STATIC);
287
384
  if (windowAtStatic) {
288
- return WindowPositions.TOP_LEFT2;
385
+ return { ...position, ...WindowPositions.TOP_LEFT2 };
289
386
  } else {
290
- return WindowPositions.TOP_LEFT;
387
+ return { ...position, ...WindowPositions.TOP_LEFT };
291
388
  }
292
389
  }
293
390
  if (slot === WindowSlot.DYNAMIC_RIGHT) {
294
- return WindowPositions.TOP_RIGHT;
391
+ return { ...position, ...WindowPositions.TOP_RIGHT };
392
+ }
393
+ if (slot === WindowSlot.DYNAMIC_CHILD) {
394
+ return { ...position, ...WindowPositions.TOP_LEFT };
295
395
  }
296
396
  return position || WindowPositions.DETACHED;
297
397
  }
@@ -310,10 +410,52 @@ export class WindowManager {
310
410
  }
311
411
  }
312
412
 
413
+ /**
414
+ * @param {string} id
415
+ * @returns {WindowPosition|undefined}
416
+ */
417
+ getCachedPosition(id) {
418
+ return this._windowPositionsCache.get(id);
419
+ }
420
+
421
+ /**
422
+ * Caches the position, if it differs from the initial position
423
+ * @param {WindowComponent} windowComponent
424
+ * @private
425
+ */
426
+ _cachePosition(windowComponent) {
427
+ const initialWindowPosition = windowPositionFromOptions(
428
+ windowComponent.initialPositionOptions,
429
+ );
430
+ if (
431
+ !compareWindowPositions(initialWindowPosition, windowComponent.position)
432
+ ) {
433
+ this._windowPositionsCache.set(windowComponent.id, {
434
+ ...windowComponent.position,
435
+ });
436
+ }
437
+ }
438
+
439
+ /**
440
+ * Returns true, if cached position was assigned.
441
+ * @param {WindowComponent} windowComponent
442
+ * @returns {boolean}
443
+ * @private
444
+ */
445
+ _assignCachedPosition(windowComponent) {
446
+ if (this._windowPositionsCache.has(windowComponent.id)) {
447
+ const windowPosition = this.getCachedPosition(windowComponent.id);
448
+ setWindowPosition(windowComponent, windowPosition);
449
+ this._windowPositionsCache.delete(windowComponent.id);
450
+ return true;
451
+ }
452
+ return false;
453
+ }
454
+
313
455
  /**
314
456
  * adds a windowComponent to the WindowManager and renders the Window at the provided position/slot.
315
457
  * 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
458
+ * The WindowState Object can also be used to change hideHeader, headerTitle, headerIcon, headerActions, styles and classes
317
459
  * @param {WindowComponentOptions|WindowComponent} windowComponentOptions
318
460
  * @param {string|symbol} owner pluginName or vcsAppSymbol
319
461
  * @throws {Error} if a windowComponent with the same ID has already been added
@@ -323,36 +465,60 @@ export class WindowManager {
323
465
  check(owner, [String, vcsAppSymbol]);
324
466
 
325
467
  if (windowComponentOptions.id && this.has(windowComponentOptions.id)) {
326
- throw new Error(`A window with id ${windowComponentOptions.id} has already been registered.`);
468
+ throw new Error(
469
+ `A window with id ${windowComponentOptions.id} has already been registered.`,
470
+ );
327
471
  }
328
472
  const id = windowComponentOptions.id || uuidv4();
329
- const slotOption = windowComponentOptions.slot?.value || windowComponentOptions.slot;
473
+ const parentId = windowComponentOptions?.parentId;
474
+ const slotOption =
475
+ windowComponentOptions.slot?.value || windowComponentOptions.slot;
330
476
  const slot = parseEnumValue(slotOption, WindowSlot, WindowSlot.DETACHED);
331
- const windowPositionOptions = this._getPositionOptionsForSlot(slot, windowComponentOptions.position);
477
+ if (
478
+ slot === WindowSlot.DYNAMIC_CHILD &&
479
+ !this.has(windowComponentOptions.parentId)
480
+ ) {
481
+ throw new Error(
482
+ `The mandatory parent window with id ${windowComponentOptions.parentId} is not registered. Add the parent window or choose another slot than dynamicChild.`,
483
+ );
484
+ }
485
+ const windowPositionOptions = this._getPositionOptionsForSlot(
486
+ slot,
487
+ windowComponentOptions.position,
488
+ );
332
489
  const windowPosition = windowPositionFromOptions(windowPositionOptions);
333
490
 
334
491
  const slotRef = ref(slot);
335
- const {
336
- component, headerComponent,
337
- } = windowComponentOptions;
492
+ const { component, headerComponent } = windowComponentOptions;
338
493
  const styles = { ...windowComponentOptions?.state?.styles };
339
- const classes = Array.isArray(windowComponentOptions?.state?.classes) ?
340
- [...(windowComponentOptions?.state?.classes ?? [])] :
341
- { ...windowComponentOptions?.state?.classes };
494
+ const classes = Array.isArray(windowComponentOptions?.state?.classes)
495
+ ? [...(windowComponentOptions?.state?.classes ?? [])]
496
+ : { ...windowComponentOptions?.state?.classes };
342
497
 
343
498
  const state = reactive({
344
499
  id,
500
+ parentId,
345
501
  owner,
346
502
  hideHeader: !!windowComponentOptions?.state?.hideHeader,
503
+ hidePin: !!windowComponentOptions?.state?.hidePin,
347
504
  headerTitle: windowComponentOptions?.state?.headerTitle,
348
505
  headerIcon: windowComponentOptions?.state?.headerIcon,
506
+ headerActions: windowComponentOptions?.state?.headerActions,
507
+ headerActionsOverflow:
508
+ windowComponentOptions?.state?.headerActionsOverflow,
509
+ dockable: false,
510
+ infoUrl: windowComponentOptions?.state?.infoUrl,
511
+ infoUrlCallback: windowComponentOptions?.state?.infoUrlCallback,
349
512
  classes,
350
513
  styles,
351
514
  });
352
515
 
353
516
  const props = windowComponentOptions.props || {};
517
+ const provides = windowComponentOptions.provides || {};
354
518
 
355
519
  const position = reactive(windowPosition);
520
+ const initialPosition = { ...windowPositionOptions };
521
+ const zIndex = computed(() => this._zIndices.value.indexOf(id));
356
522
  /**
357
523
  * @type {WindowComponent}
358
524
  */
@@ -360,6 +526,9 @@ export class WindowManager {
360
526
  get id() {
361
527
  return id;
362
528
  },
529
+ get parentId() {
530
+ return parentId;
531
+ },
363
532
  get state() {
364
533
  return state;
365
534
  },
@@ -372,16 +541,32 @@ export class WindowManager {
372
541
  get slot() {
373
542
  return slotRef;
374
543
  },
544
+ get initialSlot() {
545
+ return slot;
546
+ },
375
547
  get position() {
376
548
  return position;
377
549
  },
550
+ get initialPositionOptions() {
551
+ return initialPosition;
552
+ },
378
553
  get props() {
379
554
  return props;
380
555
  },
556
+ get provides() {
557
+ return provides;
558
+ },
559
+ get zIndex() {
560
+ return zIndex;
561
+ },
381
562
  };
382
- this._removeWindowAtSlot(slot);
563
+ const cached = this._assignCachedPosition(windowComponent);
564
+ if (!cached) {
565
+ this._removeWindowAtSlot(slot);
566
+ }
383
567
  this._windowComponents.set(id, windowComponent);
384
568
  this.componentIds.push(id);
569
+ this._zIndices.value.push(id);
385
570
  this._handleSlotsChanged(slot);
386
571
  this.added.raiseEvent(windowComponent);
387
572
  return windowComponent;
@@ -393,14 +578,36 @@ export class WindowManager {
393
578
  */
394
579
  bringWindowToTop(id) {
395
580
  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);
581
+ const index = this._zIndices.value.indexOf(id);
582
+ if (index >= 0 && index !== this._zIndices.value.length - 1) {
583
+ this._zIndices.value.push(id);
584
+ this._zIndices.value.splice(index, 1);
400
585
  }
401
586
  }
402
587
  }
403
588
 
589
+ /**
590
+ * Docks a window by resetting detached to its initial slot.
591
+ * Updates position according to its initial slot or initial position.
592
+ * Clears any cached position for this window.
593
+ * @param {string} id
594
+ */
595
+ pinWindow(id) {
596
+ const component = this.get(id);
597
+ if (!component?.state?.dockable) {
598
+ return;
599
+ }
600
+ this._removeWindowAtSlot(component.initialSlot);
601
+ component.slot.value = component.initialSlot;
602
+ component.state.dockable = false;
603
+ const dockedPosition = this._getPositionOptionsForSlot(
604
+ component.initialSlot,
605
+ component.initialPositionOptions,
606
+ );
607
+ windowPositionFromOptions(dockedPosition, component.position);
608
+ this._windowPositionsCache.delete(id);
609
+ }
610
+
404
611
  /**
405
612
  * removes all windowComponents of a specific owner (plugin) and fires removed Events
406
613
  * @param {string|vcsAppSymbol} owner
@@ -420,7 +627,9 @@ export class WindowManager {
420
627
  */
421
628
  clear() {
422
629
  const componentIds = [...this.componentIds];
423
- componentIds.forEach((id) => { this.remove(id); });
630
+ componentIds.forEach((id) => {
631
+ this.remove(id);
632
+ });
424
633
  }
425
634
 
426
635
  /**
@@ -433,3 +642,5 @@ export class WindowManager {
433
642
  this._windowComponents.clear();
434
643
  }
435
644
  }
645
+
646
+ export default WindowManager;