@vcmap/ui 5.0.1 → 5.1.0-rc.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 (444) hide show
  1. package/README.md +2 -2
  2. package/build/buildTypes.js +176 -0
  3. package/build/lintTypes.js +30 -0
  4. package/config/aerowest.config.json +4 -0
  5. package/config/base.config.json +24 -2
  6. package/config/dev.config.json +176 -5
  7. package/config/www.config.json +25 -1
  8. package/dist/assets/{cesium.888ef7.js → cesium.e9b3ca.js} +1859 -1828
  9. package/dist/assets/cesium.js +1 -1
  10. package/dist/assets/{core.860907.js → core.a9fe5a.js} +5865 -5041
  11. package/dist/assets/core.js +1 -1
  12. package/dist/assets/index-bb2549d6.js +1 -0
  13. package/dist/assets/{ol.5e8a90.js → ol.5f0496.js} +7257 -7252
  14. package/dist/assets/ol.js +1 -1
  15. package/dist/assets/{ui.7758a8.css → ui.3c73c2.css} +2 -2
  16. package/dist/assets/{ui.7758a8.js → ui.3c73c2.js} +14281 -9264
  17. package/dist/assets/ui.js +1 -1
  18. package/dist/assets/{vue.9771b3.js → vue.4fe14e.js} +1243 -1234
  19. package/dist/assets/vue.js +2 -2
  20. package/dist/assets/{vuetify.2818ff.css → vuetify.260d9a.css} +1 -1
  21. package/dist/assets/{vuetify.2818ff.js → vuetify.260d9a.js} +155 -154
  22. package/dist/assets/vuetify.js +2 -2
  23. package/dist/index.html +2 -2
  24. package/index.d.ts +256 -0
  25. package/index.html +1 -1
  26. package/index.js +48 -11
  27. package/package.json +22 -15
  28. package/plugins/@vcmap-show-case/buttons-example/src/ButtonsExample.vue +3 -0
  29. package/plugins/@vcmap-show-case/category-tester/src/CategoriesExample.vue +312 -43
  30. package/plugins/@vcmap-show-case/category-tester/src/CollectionComponentOptions.vue +48 -182
  31. package/plugins/@vcmap-show-case/category-tester/src/FoobarEditor.vue +118 -0
  32. package/plugins/@vcmap-show-case/category-tester/src/importExportHelper.js +29 -0
  33. package/plugins/@vcmap-show-case/category-tester/src/index.js +16 -0
  34. package/plugins/@vcmap-show-case/collection-manager-example/src/CollectionManagerExample.vue +2 -1
  35. package/plugins/@vcmap-show-case/collection-manager-example/src/index.js +8 -4
  36. package/plugins/@vcmap-show-case/extent-example/README.md +3 -0
  37. package/plugins/@vcmap-show-case/extent-example/package.json +5 -0
  38. package/plugins/@vcmap-show-case/extent-example/src/ExtentExample.vue +71 -0
  39. package/plugins/@vcmap-show-case/extent-example/src/index.js +68 -0
  40. package/plugins/@vcmap-show-case/flight-component-example/README.md +3 -0
  41. package/plugins/@vcmap-show-case/flight-component-example/package.json +5 -0
  42. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +53 -0
  43. package/plugins/@vcmap-show-case/flight-component-example/src/index.js +42 -0
  44. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +78 -5
  45. package/plugins/@vcmap-show-case/hello-world/src/helloWorld.vue +2 -2
  46. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +22 -10
  47. package/plugins/@vcmap-show-case/toolbox-example/README.md +9 -0
  48. package/plugins/@vcmap-show-case/toolbox-example/package.json +5 -0
  49. package/plugins/@vcmap-show-case/toolbox-example/src/TriStateExampleWindow.vue +21 -0
  50. package/plugins/@vcmap-show-case/toolbox-example/src/dummyToolboxActions.js +94 -0
  51. package/plugins/@vcmap-show-case/toolbox-example/src/index.js +260 -0
  52. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +12 -2
  53. package/plugins/@vcmap-show-case/viewpoint-component-example/README.md +3 -0
  54. package/plugins/@vcmap-show-case/viewpoint-component-example/package.json +5 -0
  55. package/plugins/@vcmap-show-case/viewpoint-component-example/src/ViewpointExample.vue +52 -0
  56. package/plugins/@vcmap-show-case/viewpoint-component-example/src/index.js +42 -0
  57. package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +31 -1
  58. package/plugins/@vcmap-show-case/window-tester/src/WindowExampleToggleChild.vue +20 -16
  59. package/plugins/@vcmap-show-case/window-tester/src/index.js +2 -17
  60. package/plugins/package.json +3 -1
  61. package/src/actions/StyleSelector.vue +8 -7
  62. package/src/actions/StyleSelector.vue.d.ts +27 -0
  63. package/src/actions/actionHelper.d.ts +153 -0
  64. package/src/actions/actionHelper.js +48 -21
  65. package/src/actions/extentActions.d.ts +40 -0
  66. package/src/actions/extentActions.js +359 -0
  67. package/src/actions/flightActions.d.ts +59 -0
  68. package/src/actions/flightActions.js +232 -0
  69. package/src/actions/listActions.d.ts +63 -0
  70. package/src/actions/listActions.js +185 -0
  71. package/src/actions/stateRefAction.d.ts +19 -0
  72. package/src/actions/stateRefAction.js +1 -1
  73. package/src/application/VcsApp.vue +103 -28
  74. package/src/application/VcsApp.vue.d.ts +86 -0
  75. package/src/application/VcsAppWrapper.vue.d.ts +12 -0
  76. package/src/application/VcsAttributions.vue.d.ts +14 -0
  77. package/src/application/VcsAttributionsFooter.vue +1 -4
  78. package/src/application/VcsAttributionsFooter.vue.d.ts +26 -0
  79. package/src/application/VcsMap.vue.d.ts +12 -0
  80. package/src/application/VcsNavbar.vue.d.ts +45 -0
  81. package/src/application/VcsPositionDisplay.vue +208 -0
  82. package/src/application/VcsPositionDisplay.vue.d.ts +18 -0
  83. package/src/application/VcsSettings.vue.d.ts +5 -0
  84. package/src/application/VcsTextPage.vue +65 -0
  85. package/src/application/VcsTextPage.vue.d.ts +16 -0
  86. package/src/application/VcsTextPageFooter.vue +89 -0
  87. package/src/application/VcsTextPageFooter.vue.d.ts +22 -0
  88. package/src/application/attributionsHelper.d.ts +64 -0
  89. package/src/application/attributionsHelper.js +1 -1
  90. package/src/application/markdownHelper.d.ts +5 -0
  91. package/src/application/markdownHelper.js +11 -0
  92. package/src/application/positionDisplayInteraction.d.ts +42 -0
  93. package/src/application/positionDisplayInteraction.js +65 -0
  94. package/src/callback/activateLayersCallback.d.ts +29 -0
  95. package/src/callback/activateLayersCallback.js +2 -2
  96. package/src/callback/applyLayerStyleCallback.d.ts +36 -0
  97. package/src/callback/applyLayerStyleCallback.js +2 -2
  98. package/src/callback/deactivateLayersCallback.d.ts +29 -0
  99. package/src/callback/deactivateLayersCallback.js +2 -2
  100. package/src/callback/goToViewpointCallback.d.ts +29 -0
  101. package/src/callback/goToViewpointCallback.js +2 -2
  102. package/src/callback/vcsCallback.d.ts +44 -0
  103. package/src/callback/vcsCallback.js +4 -9
  104. package/src/components/ImageElementInjector.vue.d.ts +24 -0
  105. package/src/components/buttons/VcsActionButtonList.vue +24 -16
  106. package/src/components/buttons/VcsActionButtonList.vue.d.ts +68 -0
  107. package/src/components/buttons/VcsButton.vue +7 -0
  108. package/src/components/buttons/VcsButton.vue.d.ts +89 -0
  109. package/src/components/buttons/VcsFormButton.vue +9 -0
  110. package/src/components/buttons/VcsFormButton.vue.d.ts +91 -0
  111. package/src/components/buttons/VcsToolButton.vue +9 -0
  112. package/src/components/buttons/VcsToolButton.vue.d.ts +91 -0
  113. package/src/components/flight/VcsFlightAnchorsComponent.vue +329 -0
  114. package/src/components/flight/VcsFlightAnchorsComponent.vue.d.ts +45 -0
  115. package/src/components/flight/VcsFlightComponent.vue +284 -0
  116. package/src/components/flight/VcsFlightComponent.vue.d.ts +104 -0
  117. package/src/components/flight/VcsFlightEditor.vue +77 -0
  118. package/src/components/flight/VcsFlightEditor.vue.d.ts +34 -0
  119. package/src/components/flight/VcsFlightPlayer.vue +124 -0
  120. package/src/components/flight/VcsFlightPlayer.vue.d.ts +25 -0
  121. package/src/components/flight/composables.d.ts +11 -0
  122. package/src/components/flight/composables.js +39 -0
  123. package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +18 -0
  124. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +82 -0
  125. package/src/components/form-inputs-controls/VcsCoordinate.vue +152 -0
  126. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +90 -0
  127. package/src/components/form-inputs-controls/VcsDatePicker.vue +2 -2
  128. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +31 -0
  129. package/src/components/form-inputs-controls/VcsExtent.vue +122 -0
  130. package/src/components/form-inputs-controls/VcsExtent.vue.d.ts +36 -0
  131. package/src/components/form-inputs-controls/VcsFormSection.vue +6 -1
  132. package/src/components/form-inputs-controls/VcsFormSection.vue.d.ts +75 -0
  133. package/src/components/form-inputs-controls/VcsLabel.vue +18 -0
  134. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +41 -0
  135. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +32 -0
  136. package/src/components/form-inputs-controls/VcsRadioGrid.vue.d.ts +35 -0
  137. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +31 -0
  138. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +2 -0
  139. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +22 -0
  140. package/src/components/form-inputs-controls/VcsTextField.vue +57 -10
  141. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +65 -0
  142. package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +14 -0
  143. package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +89 -0
  144. package/src/components/form-inputs-controls/composables.d.ts +7 -0
  145. package/src/components/form-inputs-controls/composables.js +1 -1
  146. package/src/components/form-output/VcsFormattedNumber.vue +13 -2
  147. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +89 -0
  148. package/src/components/icons/+all.d.ts +9 -0
  149. package/src/components/icons/+all.js +16 -0
  150. package/src/components/icons/2DAreaIcon.vue.d.ts +2 -0
  151. package/src/components/icons/2DDistanceIcon.vue.d.ts +2 -0
  152. package/src/components/icons/2DHeightObliqueIcon.vue +20 -0
  153. package/src/components/icons/2DHeightObliqueIcon.vue.d.ts +2 -0
  154. package/src/components/icons/3DAreaIcon.vue.d.ts +2 -0
  155. package/src/components/icons/3DDistanceIcon.vue.d.ts +2 -0
  156. package/src/components/icons/3DHeightIcon.vue.d.ts +2 -0
  157. package/src/components/icons/AngleIcon.vue.d.ts +2 -0
  158. package/src/components/icons/AssociationsIcon.vue.d.ts +2 -0
  159. package/src/components/icons/AxisIcon.vue.d.ts +2 -0
  160. package/src/components/icons/BoundingBoxIcon.vue.d.ts +2 -0
  161. package/src/components/icons/CheckboxCheckedIcon.vue.d.ts +2 -0
  162. package/src/components/icons/CheckboxIcon.vue.d.ts +2 -0
  163. package/src/components/icons/CheckboxIndeterminateIcon.vue.d.ts +2 -0
  164. package/src/components/icons/CircleIcon.vue.d.ts +2 -0
  165. package/src/components/icons/ClippingHorizontalIcon.vue.d.ts +2 -0
  166. package/src/components/icons/ClippingIcon.vue.d.ts +2 -0
  167. package/src/components/icons/ClippingVerticalIcon.vue.d.ts +2 -0
  168. package/src/components/icons/ColorPickerIcon.vue.d.ts +2 -0
  169. package/src/components/icons/ColorSwatchIcon.vue.d.ts +2 -0
  170. package/src/components/icons/CommentIcon.vue.d.ts +2 -0
  171. package/src/components/icons/CompassIcon.vue.d.ts +2 -0
  172. package/src/components/icons/ComponentsIcon.vue.d.ts +2 -0
  173. package/src/components/icons/ComponentsPlusIcon.vue +17 -0
  174. package/src/components/icons/ComponentsPlusIcon.vue.d.ts +2 -0
  175. package/src/components/icons/ConeIcon.vue.d.ts +2 -0
  176. package/src/components/icons/DimensionsHouseIcon.vue.d.ts +2 -0
  177. package/src/components/icons/EditIcon.vue.d.ts +2 -0
  178. package/src/components/icons/EditVerticesIcon.vue.d.ts +2 -0
  179. package/src/components/icons/ElevationProfileIcon.vue.d.ts +2 -0
  180. package/src/components/icons/ExportAreaIcon.vue.d.ts +2 -0
  181. package/src/components/icons/ExportFlightIcon.vue.d.ts +2 -0
  182. package/src/components/icons/ExportIcon.vue.d.ts +2 -0
  183. package/src/components/icons/ExternalLinkIcon.vue.d.ts +2 -0
  184. package/src/components/icons/EyeIcon.vue.d.ts +2 -0
  185. package/src/components/icons/FastForwardIcon.vue.d.ts +2 -0
  186. package/src/components/icons/FilterIcon.vue.d.ts +2 -0
  187. package/src/components/icons/GlobalTerrainIcon.vue.d.ts +2 -0
  188. package/src/components/icons/GlobeNatureIcon.vue.d.ts +2 -0
  189. package/src/components/icons/GroundIcon.vue.d.ts +2 -0
  190. package/src/components/icons/HealthCareIndustriesIcon.vue.d.ts +2 -0
  191. package/src/components/icons/HelpIcon.vue.d.ts +2 -0
  192. package/src/components/icons/HideIcon.vue.d.ts +2 -0
  193. package/src/components/icons/HomePointIcon.vue.d.ts +2 -0
  194. package/src/components/icons/HospitalsIcon.vue.d.ts +2 -0
  195. package/src/components/icons/HouseIcon.vue.d.ts +2 -0
  196. package/src/components/icons/ImportIcon.vue.d.ts +2 -0
  197. package/src/components/icons/InfoIcon.vue.d.ts +2 -0
  198. package/src/components/icons/KebabIcon.vue.d.ts +2 -0
  199. package/src/components/icons/LabelIcon.vue.d.ts +2 -0
  200. package/src/components/icons/LayersIcon.vue.d.ts +2 -0
  201. package/src/components/icons/LegendIcon.vue.d.ts +2 -0
  202. package/src/components/icons/LineIcon.vue.d.ts +2 -0
  203. package/src/components/icons/LinkIcon.vue.d.ts +2 -0
  204. package/src/components/icons/LogoutIcon.vue.d.ts +2 -0
  205. package/src/components/icons/MapIcon.vue.d.ts +2 -0
  206. package/src/components/icons/MenuIcon.vue.d.ts +2 -0
  207. package/src/components/icons/MinusIcon.vue.d.ts +2 -0
  208. package/src/components/icons/MultiViewIcon.vue +16 -0
  209. package/src/components/icons/MultiViewIcon.vue.d.ts +2 -0
  210. package/src/components/icons/ObjectAttributeIcon.vue.d.ts +2 -0
  211. package/src/components/icons/ObjectSelectIcon.vue.d.ts +2 -0
  212. package/src/components/icons/ObliqueViewIcon.vue.d.ts +2 -0
  213. package/src/components/icons/PdfIcon.vue.d.ts +2 -0
  214. package/src/components/icons/PedestrianIcon.vue.d.ts +2 -0
  215. package/src/components/icons/PenIcon.vue.d.ts +2 -0
  216. package/src/components/icons/PlayCircleIcon.vue.d.ts +2 -0
  217. package/src/components/icons/PlusIcon.vue.d.ts +2 -0
  218. package/src/components/icons/PoiIcon.vue.d.ts +2 -0
  219. package/src/components/icons/PointIcon.vue.d.ts +2 -0
  220. package/src/components/icons/PointMeasurementIcon.vue +36 -0
  221. package/src/components/icons/PointMeasurementIcon.vue.d.ts +2 -0
  222. package/src/components/icons/PointSelectIcon.vue.d.ts +2 -0
  223. package/src/components/icons/PresentationModeIcon.vue.d.ts +2 -0
  224. package/src/components/icons/ProgressIcon.vue.d.ts +2 -0
  225. package/src/components/icons/QueryIcon.vue.d.ts +2 -0
  226. package/src/components/icons/RectangleIcon.vue.d.ts +2 -0
  227. package/src/components/icons/ReturnIcon.vue.d.ts +2 -0
  228. package/src/components/icons/RewindIcon.vue.d.ts +2 -0
  229. package/src/components/icons/RotateLeftIcon.vue.d.ts +2 -0
  230. package/src/components/icons/RotateRightIcon.vue.d.ts +2 -0
  231. package/src/components/icons/ScreenshotIcon.vue.d.ts +2 -0
  232. package/src/components/icons/SearchIcon.vue.d.ts +2 -0
  233. package/src/components/icons/ShadowIcon.vue.d.ts +2 -0
  234. package/src/components/icons/ShapesIcon.vue.d.ts +2 -0
  235. package/src/components/icons/ShareIcon.vue.d.ts +2 -0
  236. package/src/components/icons/SimpleCircleFilledIcon.vue.d.ts +2 -0
  237. package/src/components/icons/SimpleCircleHalfFilledIcon.vue.d.ts +2 -0
  238. package/src/components/icons/SimpleCircleOutlinedIcon.vue.d.ts +2 -0
  239. package/src/components/icons/SkipNextIcon.vue.d.ts +2 -0
  240. package/src/components/icons/SkipPreviousIcon.vue.d.ts +2 -0
  241. package/src/components/icons/SplitViewIcon.vue.d.ts +2 -0
  242. package/src/components/icons/TerrainBoxIcon.vue.d.ts +2 -0
  243. package/src/components/icons/TextStyleIcon.vue.d.ts +2 -0
  244. package/src/components/icons/ThreeDimensionsIcon.vue.d.ts +2 -0
  245. package/src/components/icons/ToolsIcon.vue.d.ts +2 -0
  246. package/src/components/icons/TouchIcon.vue.d.ts +2 -0
  247. package/src/components/icons/TrashCanIcon.vue.d.ts +2 -0
  248. package/src/components/icons/TriangleIcon.vue.d.ts +2 -0
  249. package/src/components/icons/TwoDimensionsIcon.vue.d.ts +2 -0
  250. package/src/components/icons/UploadIcon.vue.d.ts +2 -0
  251. package/src/components/icons/UserProfileIcon.vue.d.ts +2 -0
  252. package/src/components/icons/UserShareIcon.vue.d.ts +2 -0
  253. package/src/components/icons/VideoRecorderIcon.vue.d.ts +2 -0
  254. package/src/components/icons/ViewpointFlightIcon.vue.d.ts +2 -0
  255. package/src/components/icons/ViewpointIcon.vue.d.ts +2 -0
  256. package/src/components/icons/Viewshed360Icon.vue.d.ts +2 -0
  257. package/src/components/icons/ViewshedConeIcon.vue.d.ts +2 -0
  258. package/src/components/icons/ViewshedIcon.vue.d.ts +2 -0
  259. package/src/components/icons/WalkingIcon.vue.d.ts +2 -0
  260. package/src/components/icons/WallIcon.vue.d.ts +2 -0
  261. package/src/components/icons/WandIcon.vue.d.ts +2 -0
  262. package/src/components/import/FileDrop.vue +69 -0
  263. package/src/components/import/FileDrop.vue.d.ts +26 -0
  264. package/src/components/import/ImportComponent.vue +78 -0
  265. package/src/components/import/ImportComponent.vue.d.ts +34 -0
  266. package/src/components/lists/VcsActionList.vue +8 -15
  267. package/src/components/lists/VcsActionList.vue.d.ts +66 -0
  268. package/src/components/lists/VcsList.vue +207 -116
  269. package/src/components/lists/VcsList.vue.d.ts +227 -0
  270. package/src/components/lists/VcsTreeview.vue +3 -1
  271. package/src/components/lists/VcsTreeview.vue.d.ts +28 -0
  272. package/src/components/lists/VcsTreeviewLeaf.vue +1 -0
  273. package/src/components/lists/VcsTreeviewLeaf.vue.d.ts +19 -0
  274. package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +41 -0
  275. package/src/components/notification/VcsBadge.vue.d.ts +14 -0
  276. package/src/components/notification/VcsHelp.vue.d.ts +22 -0
  277. package/src/components/notification/VcsTooltip.vue.d.ts +27 -0
  278. package/src/components/notification/validation.d.ts +8 -0
  279. package/src/components/notification/validation.js +3 -2
  280. package/src/components/plugins/AbstractConfigEditor.vue +25 -4
  281. package/src/components/plugins/AbstractConfigEditor.vue.d.ts +55 -0
  282. package/src/components/style/MenuWrapper.vue.d.ts +55 -0
  283. package/src/components/style/VcsFeatureStyleComponent.vue +389 -0
  284. package/src/components/style/VcsFeatureStyleComponent.vue.d.ts +31 -0
  285. package/src/components/style/VcsFillMenu.vue.d.ts +34 -0
  286. package/src/components/style/VcsFillSelector.vue.d.ts +22 -0
  287. package/src/components/style/VcsImageMenu.vue.d.ts +43 -0
  288. package/src/components/style/VcsImageSelector.vue.d.ts +128 -0
  289. package/src/components/style/VcsStrokeMenu.vue.d.ts +34 -0
  290. package/src/components/style/VcsStrokeSelector.vue.d.ts +23 -0
  291. package/src/components/style/VcsTextMenu.vue.d.ts +52 -0
  292. package/src/components/style/VcsTextSelector.vue.d.ts +58 -0
  293. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +76 -0
  294. package/src/components/style/composables.d.ts +43 -0
  295. package/src/components/style/composables.js +11 -8
  296. package/src/components/tables/VcsDataTable.vue +11 -3
  297. package/src/components/tables/VcsDataTable.vue.d.ts +142 -0
  298. package/src/components/tables/VcsTable.vue +71 -2
  299. package/src/components/tables/VcsTable.vue.d.ts +88 -0
  300. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +392 -0
  301. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +87 -0
  302. package/src/components/vector-properties/VcsFeatureTransforms.vue +217 -0
  303. package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +45 -0
  304. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +96 -52
  305. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +119 -0
  306. package/src/components/vector-properties/composables.d.ts +33 -0
  307. package/src/components/vector-properties/composables.js +21 -14
  308. package/src/components/viewpoint/VcsViewpointComponent.vue +514 -0
  309. package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +126 -0
  310. package/src/components/viewpoint/VcsViewpointEditor.vue +87 -0
  311. package/src/components/viewpoint/VcsViewpointEditor.vue.d.ts +25 -0
  312. package/src/contentTree/LayerTree.vue.d.ts +15 -0
  313. package/src/contentTree/contentTreeCollection.d.ts +113 -0
  314. package/src/contentTree/contentTreeCollection.js +10 -20
  315. package/src/contentTree/contentTreeItem.d.ts +334 -0
  316. package/src/contentTree/contentTreeItem.js +31 -17
  317. package/src/contentTree/flightContentTreeItem.d.ts +53 -0
  318. package/src/contentTree/flightContentTreeItem.js +201 -0
  319. package/src/contentTree/groupContentTreeItem.d.ts +14 -0
  320. package/src/contentTree/groupContentTreeItem.js +2 -2
  321. package/src/contentTree/layerContentTreeItem.d.ts +76 -0
  322. package/src/contentTree/layerContentTreeItem.js +7 -9
  323. package/src/contentTree/layerGroupContentTreeItem.d.ts +50 -0
  324. package/src/contentTree/layerGroupContentTreeItem.js +2 -3
  325. package/src/contentTree/nodeContentTreeItem.d.ts +10 -0
  326. package/src/contentTree/nodeContentTreeItem.js +2 -2
  327. package/src/contentTree/obliqueCollectionContentTreeItem.d.ts +46 -0
  328. package/src/contentTree/obliqueCollectionContentTreeItem.js +3 -5
  329. package/src/contentTree/subContentTreeItem.d.ts +15 -0
  330. package/src/contentTree/subContentTreeItem.js +3 -3
  331. package/src/contentTree/vcsObjectContentTreeItem.d.ts +56 -0
  332. package/src/contentTree/vcsObjectContentTreeItem.js +3 -4
  333. package/src/contentTree/viewpointContentTreeItem.d.ts +46 -0
  334. package/src/contentTree/viewpointContentTreeItem.js +3 -4
  335. package/src/downloadHelper.d.ts +27 -0
  336. package/src/featureInfo/AddressBalloonComponent.vue.d.ts +2 -0
  337. package/src/featureInfo/BalloonComponent.vue +16 -3
  338. package/src/featureInfo/BalloonComponent.vue.d.ts +61 -0
  339. package/src/featureInfo/abstractFeatureInfoView.d.ts +199 -0
  340. package/src/featureInfo/abstractFeatureInfoView.js +82 -18
  341. package/src/featureInfo/addressBalloonFeatureInfoView.d.ts +67 -0
  342. package/src/featureInfo/addressBalloonFeatureInfoView.js +9 -2
  343. package/src/featureInfo/balloonFeatureInfoView.d.ts +49 -0
  344. package/src/featureInfo/balloonFeatureInfoView.js +12 -11
  345. package/src/featureInfo/balloonHelper.d.ts +31 -0
  346. package/src/featureInfo/balloonHelper.js +6 -6
  347. package/src/featureInfo/featureInfo.d.ts +146 -0
  348. package/src/featureInfo/featureInfo.js +11 -16
  349. package/src/featureInfo/featureInfoInteraction.d.ts +21 -0
  350. package/src/featureInfo/featureInfoInteraction.js +2 -2
  351. package/src/featureInfo/iframeFeatureInfoView.d.ts +48 -0
  352. package/src/featureInfo/iframeFeatureInfoView.js +3 -5
  353. package/src/featureInfo/tableFeatureInfoView.d.ts +75 -0
  354. package/src/featureInfo/tableFeatureInfoView.js +19 -9
  355. package/src/i18n/de.d.ts +353 -0
  356. package/src/i18n/de.js +114 -2
  357. package/src/i18n/en.d.ts +352 -0
  358. package/src/i18n/en.js +113 -1
  359. package/src/i18n/i18nCollection.d.ts +82 -0
  360. package/src/i18n/i18nCollection.js +3 -3
  361. package/src/init.d.ts +58 -0
  362. package/src/init.js +3 -5
  363. package/src/legend/StyleLegendItem.vue.d.ts +25 -0
  364. package/src/legend/VcsLegend.vue.d.ts +20 -0
  365. package/src/legend/legendHelper.d.ts +172 -0
  366. package/src/legend/legendHelper.js +21 -21
  367. package/src/manager/buttonManager.d.ts +106 -0
  368. package/src/manager/buttonManager.js +8 -4
  369. package/src/manager/collectionManager/CollectionComponent.vue +38 -38
  370. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +17 -0
  371. package/src/manager/collectionManager/CollectionComponentList.vue +78 -24
  372. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +38 -0
  373. package/src/manager/collectionManager/CollectionComponentProvider.vue +3 -2
  374. package/src/manager/collectionManager/CollectionComponentProvider.vue.d.ts +12 -0
  375. package/src/manager/collectionManager/CollectionManager.vue +29 -4
  376. package/src/manager/collectionManager/CollectionManager.vue.d.ts +8 -0
  377. package/src/manager/collectionManager/categoryManager.d.ts +56 -0
  378. package/src/manager/collectionManager/categoryManager.js +21 -7
  379. package/src/manager/collectionManager/collectionComponentClass.d.ts +257 -0
  380. package/src/manager/collectionManager/{collectionComponent.js → collectionComponentClass.js} +210 -57
  381. package/src/manager/collectionManager/collectionManager.d.ts +200 -0
  382. package/src/manager/collectionManager/collectionManager.js +45 -39
  383. package/src/manager/collectionManager/editorCollectionComponentClass.d.ts +60 -0
  384. package/src/manager/collectionManager/editorCollectionComponentClass.js +295 -0
  385. package/src/manager/contextMenu/ContextMenuComponent.vue.d.ts +18 -0
  386. package/src/manager/contextMenu/contextMenuInteraction.d.ts +24 -0
  387. package/src/manager/contextMenu/contextMenuManager.d.ts +70 -0
  388. package/src/manager/contextMenu/contextMenuManager.js +5 -5
  389. package/src/manager/navbarManager.d.ts +60 -0
  390. package/src/manager/navbarManager.js +10 -6
  391. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +17 -0
  392. package/src/manager/toolbox/SelectToolboxComponent.vue +1 -0
  393. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +15 -0
  394. package/src/manager/toolbox/ToolboxManager.vue +33 -7
  395. package/src/manager/toolbox/ToolboxManager.vue.d.ts +21 -0
  396. package/src/manager/toolbox/toolboxManager.d.ts +177 -0
  397. package/src/manager/toolbox/toolboxManager.js +86 -31
  398. package/src/manager/window/WindowComponent.vue.d.ts +40 -0
  399. package/src/manager/window/WindowComponentHeader.vue +1 -1
  400. package/src/manager/window/WindowComponentHeader.vue.d.ts +36 -0
  401. package/src/manager/window/WindowManager.vue +1 -0
  402. package/src/manager/window/WindowManager.vue.d.ts +19 -0
  403. package/src/manager/window/windowHelper.d.ts +134 -0
  404. package/src/manager/window/windowHelper.js +20 -20
  405. package/src/manager/window/windowManager.d.ts +422 -0
  406. package/src/manager/window/windowManager.js +95 -40
  407. package/src/navigation/MapNavCompass.vue.d.ts +25 -0
  408. package/src/navigation/MapNavigation.vue +2 -2
  409. package/src/navigation/MapNavigation.vue.d.ts +46 -0
  410. package/src/navigation/ObliqueRotation.vue +8 -4
  411. package/src/navigation/ObliqueRotation.vue.d.ts +14 -0
  412. package/src/navigation/OrientationToolsButton.vue.d.ts +30 -0
  413. package/src/navigation/TiltSlider.vue.d.ts +19 -0
  414. package/src/navigation/VcsCompass.vue.d.ts +25 -0
  415. package/src/navigation/VcsZoomButton.vue +6 -3
  416. package/src/navigation/VcsZoomButton.vue.d.ts +2 -0
  417. package/src/navigation/overviewMap.d.ts +199 -0
  418. package/src/navigation/overviewMap.js +3 -7
  419. package/src/navigation/overviewMapClickedInteraction.d.ts +21 -0
  420. package/src/notifier/NotifierComponent.vue.d.ts +10 -0
  421. package/src/notifier/notifier.d.ts +53 -0
  422. package/src/notifier/notifier.js +0 -1
  423. package/src/pluginHelper.d.ts +67 -0
  424. package/src/pluginHelper.js +11 -9
  425. package/src/search/ResultItem.vue.d.ts +25 -0
  426. package/src/search/ResultsComponent.vue +1 -1
  427. package/src/search/ResultsComponent.vue.d.ts +24 -0
  428. package/src/search/SearchComponent.vue +1 -1
  429. package/src/search/SearchComponent.vue.d.ts +10 -0
  430. package/src/search/search.d.ts +129 -0
  431. package/src/search/search.js +8 -11
  432. package/src/setup.d.ts +1 -0
  433. package/src/state.d.ts +57 -0
  434. package/src/state.js +7 -5
  435. package/src/uiConfig.d.ts +99 -0
  436. package/src/uiConfig.js +17 -7
  437. package/src/vcsUiApp.d.ts +301 -0
  438. package/src/vcsUiApp.js +57 -53
  439. package/src/vuePlugins/i18n.d.ts +10 -0
  440. package/src/vuePlugins/i18n.js +3 -3
  441. package/src/vuePlugins/vuetify.d.ts +27 -0
  442. package/tsconfig.json +36 -0
  443. package/dist/assets/index-f265c560.js +0 -1
  444. package/plugins/@vcmap-show-case/window-tester/src/toolboxData.js +0 -288
@@ -0,0 +1,422 @@
1
+ /**
2
+ * Return true, if all values of pos1 match with the corresponding values of pos2
3
+ * @param {WindowPosition} pos1
4
+ * @param {WindowPosition} pos2
5
+ * @returns {boolean}
6
+ */
7
+ export function compareWindowPositions(pos1: WindowPosition, pos2: WindowPosition): boolean;
8
+ /**
9
+ * Returns true, if the provided position is a slot position
10
+ * @param {WindowPosition} windowPosition
11
+ * @returns {boolean}
12
+ */
13
+ export function isSlotPosition(windowPosition: WindowPosition): boolean;
14
+ /**
15
+ * @typedef {Object} WindowComponentOptions
16
+ * @property {string} [id] Optional ID, If not provided an uuid will be generated.
17
+ * @property {string} [parentId] An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
18
+ * @property {import("vue").Component} component Main Component which is shown below the header.
19
+ * @property {import("vue").Component} [headerComponent] Replaces the Header Component.
20
+ * @property {Partial<WindowState>} [state]
21
+ * @property {Partial<WindowPositionOptions>} [position] Will be merged with default position for slot
22
+ * @property {WindowSlot} [slot]
23
+ * @property {Object} [props]
24
+ * @property {Object} [provides]
25
+ */
26
+ /**
27
+ * @typedef {Object} WindowState
28
+ * @property {string} id
29
+ * @property {string|vcsAppSymbol} owner Owner of the window, set by windowManager on add
30
+ * @property {boolean} [hideHeader] be used to not show the header.
31
+ * @property {boolean} [hidePin] be used to not show the pin button.
32
+ * @property {string|string[]} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
33
+ * @property {string} [headerIcon]
34
+ * @property {Array<import("../../actions/actionHelper.js").VcsAction>} [headerActions]
35
+ * @property {number} [headerActionsOverflow]
36
+ * @property {string} [infoUrl] An optional url referencing help or further information on the window's content.
37
+ * @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()
38
+ * @property {boolean} [dockable] Auto derived from hidePin, current slot, current position and initial position.
39
+ * @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
40
+ * @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
41
+ */
42
+ /**
43
+ * @typedef {Object} WindowComponent
44
+ * @property {string} id
45
+ * @property {string} [parentId]
46
+ * @property {import("vue").Component} component
47
+ * @property {import("vue").Component} [headerComponent]
48
+ * @property {WindowState} state
49
+ * @property {WindowPosition} [position]
50
+ * @property {WindowPositionOptions} initialPositionOptions
51
+ * @property {import("vue").Ref<WindowSlot>} slot
52
+ * @property {WindowSlot} initialSlot
53
+ * @property {Object} props
54
+ * @property {Object} provides
55
+ * @property {import("vue").ComputedGetter<number>} zIndex
56
+ */
57
+ /**
58
+ * @param {string|number|undefined} pos
59
+ * @returns {string|undefined}
60
+ */
61
+ export function posToPixel(pos: string | number | undefined): string | undefined;
62
+ /**
63
+ * Returns CSS position string properties
64
+ * @param {WindowPositionOptions} windowPositionOptions
65
+ * @param {WindowPosition=} windowPosition
66
+ * @returns {WindowPosition}
67
+ */
68
+ export function windowPositionFromOptions(windowPositionOptions: WindowPositionOptions, windowPosition?: WindowPosition | undefined): WindowPosition;
69
+ /**
70
+ * *
71
+ */
72
+ export type WindowSlot = string;
73
+ export namespace WindowSlot {
74
+ let STATIC: string;
75
+ let DYNAMIC_LEFT: string;
76
+ let DYNAMIC_RIGHT: string;
77
+ let DYNAMIC_CHILD: string;
78
+ let DETACHED: string;
79
+ }
80
+ /**
81
+ * *
82
+ */
83
+ export type WindowPositions = WindowPosition;
84
+ export namespace WindowPositions {
85
+ export namespace TOP_LEFT {
86
+ let left: string;
87
+ let top: string;
88
+ }
89
+ export namespace TOP_LEFT2 {
90
+ let left_1: string;
91
+ export { left_1 as left };
92
+ let top_1: string;
93
+ export { top_1 as top };
94
+ }
95
+ export namespace TOP_RIGHT {
96
+ export let right: string;
97
+ let top_2: string;
98
+ export { top_2 as top };
99
+ }
100
+ export namespace DETACHED_1 {
101
+ let left_2: string;
102
+ export { left_2 as left };
103
+ let top_3: string;
104
+ export { top_3 as top };
105
+ }
106
+ export { DETACHED_1 as DETACHED };
107
+ }
108
+ export default WindowManager;
109
+ export type WindowComponentOptions = {
110
+ /**
111
+ * Optional ID, If not provided an uuid will be generated.
112
+ */
113
+ id?: string | undefined;
114
+ /**
115
+ * An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
116
+ */
117
+ parentId?: string | undefined;
118
+ /**
119
+ * Main Component which is shown below the header.
120
+ */
121
+ component: import("vue").Component;
122
+ /**
123
+ * Replaces the Header Component.
124
+ */
125
+ headerComponent?: import("vue").Component<import("vue/types/options.js").DefaultData<never>, import("vue/types/options.js").DefaultMethods<never>, import("vue/types/options.js").DefaultComputed, import("vue/types/options.js").DefaultProps, {}> | undefined;
126
+ state?: Partial<WindowState> | undefined;
127
+ /**
128
+ * Will be merged with default position for slot
129
+ */
130
+ position?: Partial<WindowPositionOptions> | undefined;
131
+ slot?: string | undefined;
132
+ props?: Object | undefined;
133
+ provides?: Object | undefined;
134
+ };
135
+ export type WindowState = {
136
+ id: string;
137
+ /**
138
+ * Owner of the window, set by windowManager on add
139
+ */
140
+ owner: string | symbol;
141
+ /**
142
+ * be used to not show the header.
143
+ */
144
+ hideHeader?: boolean | undefined;
145
+ /**
146
+ * be used to not show the pin button.
147
+ */
148
+ hidePin?: boolean | undefined;
149
+ /**
150
+ * An optional translatable header. If an array is provided all elements are translated and joined afterward.
151
+ */
152
+ headerTitle?: string | string[] | undefined;
153
+ headerIcon?: string | undefined;
154
+ headerActions?: import("../../actions/actionHelper.js").VcsAction[] | undefined;
155
+ headerActionsOverflow?: number | undefined;
156
+ /**
157
+ * An optional url referencing help or further information on the window's content.
158
+ */
159
+ infoUrl?: string | undefined;
160
+ /**
161
+ * 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()
162
+ */
163
+ infoUrlCallback?: (() => string) | undefined;
164
+ /**
165
+ * Auto derived from hidePin, current slot, current position and initial position.
166
+ */
167
+ dockable?: boolean | undefined;
168
+ /**
169
+ * 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
170
+ */
171
+ styles?: {
172
+ [x: string]: string;
173
+ } | undefined;
174
+ /**
175
+ * 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
176
+ */
177
+ classes?: string[] | {
178
+ [x: string]: string;
179
+ } | undefined;
180
+ };
181
+ export type WindowComponent = {
182
+ id: string;
183
+ parentId?: string | undefined;
184
+ component: import("vue").Component;
185
+ headerComponent?: import("vue").Component<import("vue/types/options.js").DefaultData<never>, import("vue/types/options.js").DefaultMethods<never>, import("vue/types/options.js").DefaultComputed, import("vue/types/options.js").DefaultProps, {}> | undefined;
186
+ state: WindowState;
187
+ position?: WindowPosition | undefined;
188
+ initialPositionOptions: WindowPositionOptions;
189
+ slot: import("vue").Ref<WindowSlot>;
190
+ initialSlot: WindowSlot;
191
+ props: Object;
192
+ provides: Object;
193
+ zIndex: import("vue").ComputedGetter<number>;
194
+ };
195
+ export type WindowPositionOptions = {
196
+ /**
197
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
198
+ */
199
+ left?: string | number | undefined;
200
+ /**
201
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
202
+ */
203
+ top?: string | number | undefined;
204
+ /**
205
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
206
+ */
207
+ right?: string | number | undefined;
208
+ /**
209
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
210
+ */
211
+ bottom?: string | number | undefined;
212
+ /**
213
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
214
+ */
215
+ width?: string | number | undefined;
216
+ /**
217
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
218
+ */
219
+ height?: string | number | undefined;
220
+ /**
221
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
222
+ */
223
+ maxHeight?: string | number | undefined;
224
+ /**
225
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
226
+ */
227
+ maxWidth?: string | number | undefined;
228
+ /**
229
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
230
+ */
231
+ minHeight?: string | number | undefined;
232
+ /**
233
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
234
+ */
235
+ minWidth?: string | number | undefined;
236
+ };
237
+ export type WindowPosition = {
238
+ /**
239
+ * - The left CSS property participates in specifying the horizontal position of a window.
240
+ */
241
+ left: string;
242
+ /**
243
+ * - The top CSS property participates in specifying the vertical position of a window.
244
+ */
245
+ top: string;
246
+ /**
247
+ * - The right CSS property participates in specifying the horizontal position of a window.
248
+ */
249
+ right: string;
250
+ /**
251
+ * - The bottom CSS property participates in specifying the vertical position of a window.
252
+ */
253
+ bottom: string;
254
+ /**
255
+ * - The width CSS property sets an element's width.
256
+ */
257
+ width: string;
258
+ /**
259
+ * - The height CSS property sets an element's height.
260
+ */
261
+ height: string;
262
+ /**
263
+ * - 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)
264
+ */
265
+ maxHeight?: string | undefined;
266
+ /**
267
+ * - 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)
268
+ */
269
+ maxWidth?: string | undefined;
270
+ /**
271
+ * - It prevents the used value of the height property from becoming smaller than the value specified for min-height.
272
+ */
273
+ minHeight?: string | undefined;
274
+ /**
275
+ * - It prevents the used value of the width property from becoming smaller than the value specified for min-width.
276
+ */
277
+ minWidth?: string | undefined;
278
+ };
279
+ export type IWindowManager = import("../../vcsUiApp.js").VcsComponentManager<WindowComponent, WindowComponentOptions>;
280
+ /**
281
+ * @typedef {import("../../vcsUiApp.js").VcsComponentManager<WindowComponent,WindowComponentOptions>} IWindowManager
282
+ */
283
+ /**
284
+ * @class WindowManager
285
+ * @description Manages a set of Draggable Windows
286
+ * @implements {IWindowManager}
287
+ */
288
+ declare class WindowManager implements IWindowManager {
289
+ /**
290
+ * @type {import("@vcmap/core").VcsEvent<WindowComponent>}
291
+ */
292
+ added: import("@vcmap/core").VcsEvent<WindowComponent>;
293
+ /**
294
+ * @type {import("@vcmap/core").VcsEvent<WindowComponent>}
295
+ */
296
+ removed: import("@vcmap/core").VcsEvent<WindowComponent>;
297
+ /**
298
+ * reactive ordered array of ids,
299
+ * @type {Array<string>}
300
+ */
301
+ componentIds: Array<string>;
302
+ /**
303
+ * reactive ordered array of ids, defining the zIndex of a component
304
+ * @type {import("vue").Ref<Array<string>>}
305
+ */
306
+ _zIndices: import("vue").Ref<Array<string>>;
307
+ /**
308
+ * @type {Map<string, WindowComponent>}
309
+ * @private
310
+ */
311
+ private _windowComponents;
312
+ /**
313
+ * @type {Map<string, WindowPosition>}
314
+ * @private
315
+ */
316
+ private _windowPositionsCache;
317
+ /**
318
+ * @param {string} id
319
+ * @returns {WindowComponent}
320
+ */
321
+ get(id: string): WindowComponent;
322
+ /**
323
+ * @param {string} id
324
+ * @returns {boolean}
325
+ */
326
+ has(id: string): boolean;
327
+ /**
328
+ * removes a window, Component will not be rendered anymore and will be destroyed. Add WindowComponent again
329
+ * to show the component again
330
+ * @param {string} id
331
+ */
332
+ remove(id: string): void;
333
+ /**
334
+ * @param {string} id
335
+ * @param {WindowPositionOptions} windowPositionOptions
336
+ */
337
+ setWindowPositionOptions(id: string, windowPositionOptions: WindowPositionOptions): void;
338
+ /**
339
+ * handles changes in the Slots. Makes sure that a STATIC Window is positioned on the right to the DYNAMIC_LEFT Slot.
340
+ * If a STATIC Window is removed again, the DYNAMIC_LEFT will be moved back.
341
+ * @param {WindowSlot} changedSlot
342
+ * @private
343
+ */
344
+ private _handleSlotsChanged;
345
+ /**
346
+ * @param {WindowSlot} slot
347
+ * @param {string=} parentId
348
+ * @param {string=} id
349
+ * @returns {WindowComponent}
350
+ * @private
351
+ */
352
+ private _findWindowBySlot;
353
+ /**
354
+ * @param {WindowSlot} slot
355
+ * @param {WindowPositionOptions=} position
356
+ * @param {string=} parentId
357
+ * @returns {WindowPositionOptions}
358
+ * @private
359
+ */
360
+ private _getPositionOptionsForSlot;
361
+ /**
362
+ * removes the window at the given slot if it exists (not for DETACHED)
363
+ * @param {WindowSlot} slot
364
+ * @param {string} parentId
365
+ * @param {string} id
366
+ * @private
367
+ */
368
+ private _removeWindowAtSlot;
369
+ /**
370
+ * @param {string} id
371
+ * @returns {WindowPosition|undefined}
372
+ */
373
+ getCachedPosition(id: string): WindowPosition | undefined;
374
+ /**
375
+ * Caches the position, if it differs from the initial position
376
+ * @param {WindowComponent} windowComponent
377
+ * @private
378
+ */
379
+ private _cachePosition;
380
+ /**
381
+ * Returns true, if cached position was assigned.
382
+ * @param {WindowComponent} windowComponent
383
+ * @returns {boolean}
384
+ * @private
385
+ */
386
+ private _assignCachedPosition;
387
+ /**
388
+ * adds a windowComponent to the WindowManager and renders the Window at the provided position/slot.
389
+ * The reactive WindowState Object can be used to watch Changes on position/WindowSlot.
390
+ * The WindowState Object can also be used to change hideHeader, headerTitle, headerIcon, headerActions, styles and classes
391
+ * @param {WindowComponentOptions|WindowComponent} windowComponentOptions
392
+ * @param {string|symbol} owner pluginName or vcsAppSymbol
393
+ * @throws {Error} if a windowComponent with the same ID has already been added
394
+ * @returns {WindowComponent}
395
+ */
396
+ add(windowComponentOptions: WindowComponentOptions | WindowComponent, owner: string | symbol): WindowComponent;
397
+ /**
398
+ * reorders the order of all windows to bring the given ID on top
399
+ * @param {string} id
400
+ */
401
+ bringWindowToTop(id: string): void;
402
+ /**
403
+ * Docks a window by resetting detached to its initial slot.
404
+ * Updates position according to its initial slot or initial position.
405
+ * Clears any cached position for this window.
406
+ * @param {string} id
407
+ */
408
+ pinWindow(id: string): void;
409
+ /**
410
+ * removes all windowComponents of a specific owner (plugin) and fires removed Events
411
+ * @param {string|vcsAppSymbol} owner
412
+ */
413
+ removeOwner(owner: string | symbol): void;
414
+ /**
415
+ * removes all windowComponents and fires removed Events
416
+ */
417
+ clear(): void;
418
+ /**
419
+ * destroys the windowManager;
420
+ */
421
+ destroy(): void;
422
+ }
@@ -24,16 +24,16 @@ export const WindowSlot = {
24
24
 
25
25
  /**
26
26
  * @typedef {Object} WindowPositionOptions
27
- * @property {string|number|undefined} left Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
28
- * @property {string|number|undefined} top Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
29
- * @property {string|number|undefined} right Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
30
- * @property {string|number|undefined} bottom Can be a css position string (e.g. '320px' or '50%') 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
27
+ * @property {string|number|undefined} [left] Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
28
+ * @property {string|number|undefined} [top] Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
29
+ * @property {string|number|undefined} [right] Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
30
+ * @property {string|number|undefined} [bottom] Can be a css position string (e.g. '320px' or '50%') 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
37
37
  */
38
38
 
39
39
  /**
@@ -102,27 +102,27 @@ export function isSlotPosition(windowPosition) {
102
102
  }
103
103
 
104
104
  /**
105
- * @typedef WindowComponentOptions
105
+ * @typedef {Object} WindowComponentOptions
106
106
  * @property {string} [id] Optional ID, If not provided an uuid will be generated.
107
107
  * @property {string} [parentId] An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
108
108
  * @property {import("vue").Component} component Main Component which is shown below the header.
109
109
  * @property {import("vue").Component} [headerComponent] Replaces the Header Component.
110
- * @property {WindowState} [state]
111
- * @property {WindowPositionOptions} [position] Will be merged with default position for slot
110
+ * @property {Partial<WindowState>} [state]
111
+ * @property {Partial<WindowPositionOptions>} [position] Will be merged with default position for slot
112
112
  * @property {WindowSlot} [slot]
113
113
  * @property {Object} [props]
114
114
  * @property {Object} [provides]
115
115
  */
116
116
 
117
117
  /**
118
- * @typedef WindowState
118
+ * @typedef {Object} WindowState
119
119
  * @property {string} id
120
120
  * @property {string|vcsAppSymbol} owner Owner of the window, set by windowManager on add
121
121
  * @property {boolean} [hideHeader] be used to not show the header.
122
122
  * @property {boolean} [hidePin] be used to not show the pin button.
123
123
  * @property {string|string[]} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
124
124
  * @property {string} [headerIcon]
125
- * @property {Array<VcsAction>} [headerActions]
125
+ * @property {Array<import("../../actions/actionHelper.js").VcsAction>} [headerActions]
126
126
  * @property {number} [headerActionsOverflow]
127
127
  * @property {string} [infoUrl] An optional url referencing help or further information on the window's content.
128
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()
@@ -132,7 +132,7 @@ export function isSlotPosition(windowPosition) {
132
132
  */
133
133
 
134
134
  /**
135
- * @typedef WindowComponent
135
+ * @typedef {Object} WindowComponent
136
136
  * @property {string} id
137
137
  * @property {string} [parentId]
138
138
  * @property {import("vue").Component} component
@@ -242,10 +242,14 @@ function setWindowPosition(windowComponent, windowPositionOptions) {
242
242
  }
243
243
  }
244
244
 
245
+ /**
246
+ * @typedef {import("../../vcsUiApp.js").VcsComponentManager<WindowComponent,WindowComponentOptions>} IWindowManager
247
+ */
248
+
245
249
  /**
246
250
  * @class WindowManager
247
251
  * @description Manages a set of Draggable Windows
248
- * @implements VcsComponentManager<WindowComponent,WindowComponentOptions>
252
+ * @implements {IWindowManager}
249
253
  */
250
254
  class WindowManager {
251
255
  constructor() {
@@ -311,11 +315,13 @@ class WindowManager {
311
315
  this._windowComponents.delete(id);
312
316
  this._handleSlotsChanged(windowComponent.slot.value);
313
317
  this.removed.raiseEvent(windowComponent);
314
- const child = Array.from(this._windowComponents.values()).find(
318
+ const childs = Array.from(this._windowComponents.values()).filter(
315
319
  ({ parentId }) => id === parentId,
316
320
  );
317
- if (child) {
318
- this.remove(child.id);
321
+ if (childs.length) {
322
+ childs.forEach((child) => {
323
+ this.remove(child.id);
324
+ });
319
325
  }
320
326
  }
321
327
  }
@@ -337,13 +343,21 @@ class WindowManager {
337
343
  * @param {WindowSlot} changedSlot
338
344
  * @private
339
345
  */
340
- _handleSlotsChanged(changedSlot) {
346
+ _handleSlotsChanged(changedSlot, parentId) {
341
347
  if (
342
348
  changedSlot === WindowSlot.STATIC ||
343
- changedSlot === WindowSlot.DYNAMIC_LEFT
349
+ changedSlot === WindowSlot.DYNAMIC_LEFT ||
350
+ (parentId != null &&
351
+ changedSlot === WindowSlot.DETACHED &&
352
+ !this.has(parentId))
344
353
  ) {
345
354
  const staticWindow = this._findWindowBySlot(WindowSlot.STATIC);
346
- const dynamicWindowLeft = this._findWindowBySlot(WindowSlot.DYNAMIC_LEFT);
355
+ const dynamicWindowLeft =
356
+ this._findWindowBySlot(WindowSlot.DYNAMIC_LEFT) ??
357
+ [...this._windowComponents.values()].find(
358
+ (c) => parentId != null && c.parentId === parentId,
359
+ );
360
+
347
361
  if (staticWindow && dynamicWindowLeft) {
348
362
  this.setWindowPositionOptions(dynamicWindowLeft.id, {
349
363
  ...dynamicWindowLeft.position,
@@ -360,26 +374,61 @@ class WindowManager {
360
374
 
361
375
  /**
362
376
  * @param {WindowSlot} slot
377
+ * @param {string=} parentId
378
+ * @param {string=} id
363
379
  * @returns {WindowComponent}
364
380
  * @private
365
381
  */
366
- _findWindowBySlot(slot) {
367
- return Array.from(this._windowComponents.values()).find(
368
- (item) => item.slot.value === slot,
382
+ _findWindowBySlot(slot, parentId, id) {
383
+ const components = /** @type {WindowComponent[]} */ (
384
+ Array.from(this._windowComponents.values())
369
385
  );
386
+ let parent;
387
+ let usedSlot = slot;
388
+ if (parentId) {
389
+ parent = components.find((i) => i.id === parentId);
390
+ usedSlot = parent ? slot : WindowSlot.DYNAMIC_LEFT;
391
+ }
392
+
393
+ return components.find((item) => {
394
+ if (item.id === id) {
395
+ return false;
396
+ }
397
+ if (parent) {
398
+ return item.parentId === parentId && item.slot.value === usedSlot;
399
+ } else if (
400
+ item.slot.value === WindowSlot.DYNAMIC_CHILD &&
401
+ !this.has(item.parentId) &&
402
+ item.parentId !== id &&
403
+ usedSlot === WindowSlot.DYNAMIC_LEFT
404
+ ) {
405
+ return true;
406
+ }
407
+
408
+ if (id != null) {
409
+ return item.slot.value === usedSlot && item.parentId !== id;
410
+ }
411
+ return item.slot.value === usedSlot;
412
+ });
370
413
  }
371
414
 
372
415
  /**
373
416
  * @param {WindowSlot} slot
374
417
  * @param {WindowPositionOptions=} position
418
+ * @param {string=} parentId
375
419
  * @returns {WindowPositionOptions}
376
420
  * @private
377
421
  */
378
- _getPositionOptionsForSlot(slot, position) {
422
+ _getPositionOptionsForSlot(slot, position, parentId) {
379
423
  if (slot === WindowSlot.STATIC) {
380
424
  return { ...WindowPositions.TOP_LEFT, maxWidth: '320px' };
381
425
  }
382
- if (slot === WindowSlot.DYNAMIC_LEFT) {
426
+ if (
427
+ slot === WindowSlot.DYNAMIC_LEFT ||
428
+ (parentId != null &&
429
+ slot === WindowSlot.DYNAMIC_CHILD &&
430
+ !this.has(parentId))
431
+ ) {
383
432
  const windowAtStatic = this._findWindowBySlot(WindowSlot.STATIC);
384
433
  if (windowAtStatic) {
385
434
  return { ...position, ...WindowPositions.TOP_LEFT2 };
@@ -399,11 +448,13 @@ class WindowManager {
399
448
  /**
400
449
  * removes the window at the given slot if it exists (not for DETACHED)
401
450
  * @param {WindowSlot} slot
451
+ * @param {string} parentId
452
+ * @param {string} id
402
453
  * @private
403
454
  */
404
- _removeWindowAtSlot(slot) {
455
+ _removeWindowAtSlot(slot, parentId, id) {
405
456
  if (slot !== WindowSlot.DETACHED) {
406
- const toRemove = this._findWindowBySlot(slot);
457
+ const toRemove = this._findWindowBySlot(slot, parentId, id);
407
458
  if (toRemove) {
408
459
  this.remove(toRemove.id);
409
460
  }
@@ -469,22 +520,21 @@ class WindowManager {
469
520
  `A window with id ${windowComponentOptions.id} has already been registered.`,
470
521
  );
471
522
  }
523
+ if (
524
+ windowComponentOptions.slot === WindowSlot.DYNAMIC_CHILD &&
525
+ !windowComponentOptions.parentId
526
+ ) {
527
+ throw new Error('A child window must have a parent id');
528
+ }
472
529
  const id = windowComponentOptions.id || uuidv4();
473
530
  const parentId = windowComponentOptions?.parentId;
474
531
  const slotOption =
475
532
  windowComponentOptions.slot?.value || windowComponentOptions.slot;
476
533
  const slot = parseEnumValue(slotOption, WindowSlot, WindowSlot.DETACHED);
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
534
  const windowPositionOptions = this._getPositionOptionsForSlot(
486
535
  slot,
487
536
  windowComponentOptions.position,
537
+ parentId,
488
538
  );
489
539
  const windowPosition = windowPositionFromOptions(windowPositionOptions);
490
540
 
@@ -562,7 +612,7 @@ class WindowManager {
562
612
  };
563
613
  const cached = this._assignCachedPosition(windowComponent);
564
614
  if (!cached) {
565
- this._removeWindowAtSlot(slot);
615
+ this._removeWindowAtSlot(slot, state.parentId, state.id);
566
616
  }
567
617
  this._windowComponents.set(id, windowComponent);
568
618
  this.componentIds.push(id);
@@ -597,12 +647,17 @@ class WindowManager {
597
647
  if (!component?.state?.dockable) {
598
648
  return;
599
649
  }
600
- this._removeWindowAtSlot(component.initialSlot);
650
+ this._removeWindowAtSlot(
651
+ component.initialSlot,
652
+ component.parentId,
653
+ component.id,
654
+ );
601
655
  component.slot.value = component.initialSlot;
602
656
  component.state.dockable = false;
603
657
  const dockedPosition = this._getPositionOptionsForSlot(
604
658
  component.initialSlot,
605
659
  component.initialPositionOptions,
660
+ component.parentId,
606
661
  );
607
662
  windowPositionFromOptions(dockedPosition, component.position);
608
663
  this._windowPositionsCache.delete(id);