@vcmap/ui 5.0.2 → 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 (443) 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 +22 -0
  6. package/config/dev.config.json +176 -5
  7. package/config/www.config.json +24 -0
  8. package/dist/assets/{cesium.a3a1dc.js → cesium.e9b3ca.js} +1859 -1828
  9. package/dist/assets/cesium.js +1 -1
  10. package/dist/assets/{core.bb64ed.js → core.a9fe5a.js} +5859 -5041
  11. package/dist/assets/core.js +1 -1
  12. package/dist/assets/index-bb2549d6.js +1 -0
  13. package/dist/assets/{ol.833fa9.js → ol.5f0496.js} +7257 -7252
  14. package/dist/assets/ol.js +1 -1
  15. package/dist/assets/{ui.aeb2ec.css → ui.3c73c2.css} +2 -2
  16. package/dist/assets/{ui.aeb2ec.js → ui.3c73c2.js} +14199 -9198
  17. package/dist/assets/ui.js +1 -1
  18. package/dist/assets/{vue.8e1850.js → vue.4fe14e.js} +1243 -1234
  19. package/dist/assets/vue.js +2 -2
  20. package/dist/assets/{vuetify.3ed426.css → vuetify.260d9a.css} +1 -1
  21. package/dist/assets/{vuetify.3ed426.js → vuetify.260d9a.js} +155 -154
  22. package/dist/assets/vuetify.js +2 -2
  23. package/dist/index.html +1 -1
  24. package/index.d.ts +256 -0
  25. package/index.js +48 -11
  26. package/package.json +21 -14
  27. package/plugins/@vcmap-show-case/buttons-example/src/ButtonsExample.vue +3 -0
  28. package/plugins/@vcmap-show-case/category-tester/src/CategoriesExample.vue +312 -43
  29. package/plugins/@vcmap-show-case/category-tester/src/CollectionComponentOptions.vue +48 -182
  30. package/plugins/@vcmap-show-case/category-tester/src/FoobarEditor.vue +118 -0
  31. package/plugins/@vcmap-show-case/category-tester/src/importExportHelper.js +29 -0
  32. package/plugins/@vcmap-show-case/category-tester/src/index.js +16 -0
  33. package/plugins/@vcmap-show-case/collection-manager-example/src/CollectionManagerExample.vue +2 -1
  34. package/plugins/@vcmap-show-case/collection-manager-example/src/index.js +8 -4
  35. package/plugins/@vcmap-show-case/extent-example/README.md +3 -0
  36. package/plugins/@vcmap-show-case/extent-example/package.json +5 -0
  37. package/plugins/@vcmap-show-case/extent-example/src/ExtentExample.vue +71 -0
  38. package/plugins/@vcmap-show-case/extent-example/src/index.js +68 -0
  39. package/plugins/@vcmap-show-case/flight-component-example/README.md +3 -0
  40. package/plugins/@vcmap-show-case/flight-component-example/package.json +5 -0
  41. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +53 -0
  42. package/plugins/@vcmap-show-case/flight-component-example/src/index.js +42 -0
  43. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +78 -5
  44. package/plugins/@vcmap-show-case/hello-world/src/helloWorld.vue +2 -2
  45. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +22 -10
  46. package/plugins/@vcmap-show-case/toolbox-example/README.md +9 -0
  47. package/plugins/@vcmap-show-case/toolbox-example/package.json +5 -0
  48. package/plugins/@vcmap-show-case/toolbox-example/src/TriStateExampleWindow.vue +21 -0
  49. package/plugins/@vcmap-show-case/toolbox-example/src/dummyToolboxActions.js +94 -0
  50. package/plugins/@vcmap-show-case/toolbox-example/src/index.js +260 -0
  51. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +12 -2
  52. package/plugins/@vcmap-show-case/viewpoint-component-example/README.md +3 -0
  53. package/plugins/@vcmap-show-case/viewpoint-component-example/package.json +5 -0
  54. package/plugins/@vcmap-show-case/viewpoint-component-example/src/ViewpointExample.vue +52 -0
  55. package/plugins/@vcmap-show-case/viewpoint-component-example/src/index.js +42 -0
  56. package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +31 -1
  57. package/plugins/@vcmap-show-case/window-tester/src/WindowExampleToggleChild.vue +20 -16
  58. package/plugins/@vcmap-show-case/window-tester/src/index.js +2 -17
  59. package/plugins/package.json +3 -1
  60. package/src/actions/StyleSelector.vue +8 -7
  61. package/src/actions/StyleSelector.vue.d.ts +27 -0
  62. package/src/actions/actionHelper.d.ts +153 -0
  63. package/src/actions/actionHelper.js +36 -19
  64. package/src/actions/extentActions.d.ts +40 -0
  65. package/src/actions/extentActions.js +359 -0
  66. package/src/actions/flightActions.d.ts +59 -0
  67. package/src/actions/flightActions.js +232 -0
  68. package/src/actions/listActions.d.ts +63 -0
  69. package/src/actions/listActions.js +185 -0
  70. package/src/actions/stateRefAction.d.ts +19 -0
  71. package/src/actions/stateRefAction.js +1 -1
  72. package/src/application/VcsApp.vue +103 -28
  73. package/src/application/VcsApp.vue.d.ts +86 -0
  74. package/src/application/VcsAppWrapper.vue.d.ts +12 -0
  75. package/src/application/VcsAttributions.vue.d.ts +14 -0
  76. package/src/application/VcsAttributionsFooter.vue +1 -4
  77. package/src/application/VcsAttributionsFooter.vue.d.ts +26 -0
  78. package/src/application/VcsMap.vue.d.ts +12 -0
  79. package/src/application/VcsNavbar.vue.d.ts +45 -0
  80. package/src/application/VcsPositionDisplay.vue +208 -0
  81. package/src/application/VcsPositionDisplay.vue.d.ts +18 -0
  82. package/src/application/VcsSettings.vue.d.ts +5 -0
  83. package/src/application/VcsTextPage.vue +65 -0
  84. package/src/application/VcsTextPage.vue.d.ts +16 -0
  85. package/src/application/VcsTextPageFooter.vue +89 -0
  86. package/src/application/VcsTextPageFooter.vue.d.ts +22 -0
  87. package/src/application/attributionsHelper.d.ts +64 -0
  88. package/src/application/attributionsHelper.js +1 -1
  89. package/src/application/markdownHelper.d.ts +5 -0
  90. package/src/application/markdownHelper.js +11 -0
  91. package/src/application/positionDisplayInteraction.d.ts +42 -0
  92. package/src/application/positionDisplayInteraction.js +65 -0
  93. package/src/callback/activateLayersCallback.d.ts +29 -0
  94. package/src/callback/activateLayersCallback.js +2 -2
  95. package/src/callback/applyLayerStyleCallback.d.ts +36 -0
  96. package/src/callback/applyLayerStyleCallback.js +2 -2
  97. package/src/callback/deactivateLayersCallback.d.ts +29 -0
  98. package/src/callback/deactivateLayersCallback.js +2 -2
  99. package/src/callback/goToViewpointCallback.d.ts +29 -0
  100. package/src/callback/goToViewpointCallback.js +2 -2
  101. package/src/callback/vcsCallback.d.ts +44 -0
  102. package/src/callback/vcsCallback.js +4 -9
  103. package/src/components/ImageElementInjector.vue.d.ts +24 -0
  104. package/src/components/buttons/VcsActionButtonList.vue +24 -16
  105. package/src/components/buttons/VcsActionButtonList.vue.d.ts +68 -0
  106. package/src/components/buttons/VcsButton.vue +7 -0
  107. package/src/components/buttons/VcsButton.vue.d.ts +89 -0
  108. package/src/components/buttons/VcsFormButton.vue +9 -0
  109. package/src/components/buttons/VcsFormButton.vue.d.ts +91 -0
  110. package/src/components/buttons/VcsToolButton.vue +9 -0
  111. package/src/components/buttons/VcsToolButton.vue.d.ts +91 -0
  112. package/src/components/flight/VcsFlightAnchorsComponent.vue +329 -0
  113. package/src/components/flight/VcsFlightAnchorsComponent.vue.d.ts +45 -0
  114. package/src/components/flight/VcsFlightComponent.vue +284 -0
  115. package/src/components/flight/VcsFlightComponent.vue.d.ts +104 -0
  116. package/src/components/flight/VcsFlightEditor.vue +77 -0
  117. package/src/components/flight/VcsFlightEditor.vue.d.ts +34 -0
  118. package/src/components/flight/VcsFlightPlayer.vue +124 -0
  119. package/src/components/flight/VcsFlightPlayer.vue.d.ts +25 -0
  120. package/src/components/flight/composables.d.ts +11 -0
  121. package/src/components/flight/composables.js +39 -0
  122. package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +18 -0
  123. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +82 -0
  124. package/src/components/form-inputs-controls/VcsCoordinate.vue +152 -0
  125. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +90 -0
  126. package/src/components/form-inputs-controls/VcsDatePicker.vue +2 -2
  127. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +31 -0
  128. package/src/components/form-inputs-controls/VcsExtent.vue +122 -0
  129. package/src/components/form-inputs-controls/VcsExtent.vue.d.ts +36 -0
  130. package/src/components/form-inputs-controls/VcsFormSection.vue +6 -1
  131. package/src/components/form-inputs-controls/VcsFormSection.vue.d.ts +75 -0
  132. package/src/components/form-inputs-controls/VcsLabel.vue +18 -0
  133. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +41 -0
  134. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +32 -0
  135. package/src/components/form-inputs-controls/VcsRadioGrid.vue.d.ts +35 -0
  136. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +31 -0
  137. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +2 -0
  138. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +22 -0
  139. package/src/components/form-inputs-controls/VcsTextField.vue +57 -10
  140. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +65 -0
  141. package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +14 -0
  142. package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +89 -0
  143. package/src/components/form-inputs-controls/composables.d.ts +7 -0
  144. package/src/components/form-inputs-controls/composables.js +1 -1
  145. package/src/components/form-output/VcsFormattedNumber.vue +13 -2
  146. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +89 -0
  147. package/src/components/icons/+all.d.ts +9 -0
  148. package/src/components/icons/+all.js +16 -0
  149. package/src/components/icons/2DAreaIcon.vue.d.ts +2 -0
  150. package/src/components/icons/2DDistanceIcon.vue.d.ts +2 -0
  151. package/src/components/icons/2DHeightObliqueIcon.vue +20 -0
  152. package/src/components/icons/2DHeightObliqueIcon.vue.d.ts +2 -0
  153. package/src/components/icons/3DAreaIcon.vue.d.ts +2 -0
  154. package/src/components/icons/3DDistanceIcon.vue.d.ts +2 -0
  155. package/src/components/icons/3DHeightIcon.vue.d.ts +2 -0
  156. package/src/components/icons/AngleIcon.vue.d.ts +2 -0
  157. package/src/components/icons/AssociationsIcon.vue.d.ts +2 -0
  158. package/src/components/icons/AxisIcon.vue.d.ts +2 -0
  159. package/src/components/icons/BoundingBoxIcon.vue.d.ts +2 -0
  160. package/src/components/icons/CheckboxCheckedIcon.vue.d.ts +2 -0
  161. package/src/components/icons/CheckboxIcon.vue.d.ts +2 -0
  162. package/src/components/icons/CheckboxIndeterminateIcon.vue.d.ts +2 -0
  163. package/src/components/icons/CircleIcon.vue.d.ts +2 -0
  164. package/src/components/icons/ClippingHorizontalIcon.vue.d.ts +2 -0
  165. package/src/components/icons/ClippingIcon.vue.d.ts +2 -0
  166. package/src/components/icons/ClippingVerticalIcon.vue.d.ts +2 -0
  167. package/src/components/icons/ColorPickerIcon.vue.d.ts +2 -0
  168. package/src/components/icons/ColorSwatchIcon.vue.d.ts +2 -0
  169. package/src/components/icons/CommentIcon.vue.d.ts +2 -0
  170. package/src/components/icons/CompassIcon.vue.d.ts +2 -0
  171. package/src/components/icons/ComponentsIcon.vue.d.ts +2 -0
  172. package/src/components/icons/ComponentsPlusIcon.vue +17 -0
  173. package/src/components/icons/ComponentsPlusIcon.vue.d.ts +2 -0
  174. package/src/components/icons/ConeIcon.vue.d.ts +2 -0
  175. package/src/components/icons/DimensionsHouseIcon.vue.d.ts +2 -0
  176. package/src/components/icons/EditIcon.vue.d.ts +2 -0
  177. package/src/components/icons/EditVerticesIcon.vue.d.ts +2 -0
  178. package/src/components/icons/ElevationProfileIcon.vue.d.ts +2 -0
  179. package/src/components/icons/ExportAreaIcon.vue.d.ts +2 -0
  180. package/src/components/icons/ExportFlightIcon.vue.d.ts +2 -0
  181. package/src/components/icons/ExportIcon.vue.d.ts +2 -0
  182. package/src/components/icons/ExternalLinkIcon.vue.d.ts +2 -0
  183. package/src/components/icons/EyeIcon.vue.d.ts +2 -0
  184. package/src/components/icons/FastForwardIcon.vue.d.ts +2 -0
  185. package/src/components/icons/FilterIcon.vue.d.ts +2 -0
  186. package/src/components/icons/GlobalTerrainIcon.vue.d.ts +2 -0
  187. package/src/components/icons/GlobeNatureIcon.vue.d.ts +2 -0
  188. package/src/components/icons/GroundIcon.vue.d.ts +2 -0
  189. package/src/components/icons/HealthCareIndustriesIcon.vue.d.ts +2 -0
  190. package/src/components/icons/HelpIcon.vue.d.ts +2 -0
  191. package/src/components/icons/HideIcon.vue.d.ts +2 -0
  192. package/src/components/icons/HomePointIcon.vue.d.ts +2 -0
  193. package/src/components/icons/HospitalsIcon.vue.d.ts +2 -0
  194. package/src/components/icons/HouseIcon.vue.d.ts +2 -0
  195. package/src/components/icons/ImportIcon.vue.d.ts +2 -0
  196. package/src/components/icons/InfoIcon.vue.d.ts +2 -0
  197. package/src/components/icons/KebabIcon.vue.d.ts +2 -0
  198. package/src/components/icons/LabelIcon.vue.d.ts +2 -0
  199. package/src/components/icons/LayersIcon.vue.d.ts +2 -0
  200. package/src/components/icons/LegendIcon.vue.d.ts +2 -0
  201. package/src/components/icons/LineIcon.vue.d.ts +2 -0
  202. package/src/components/icons/LinkIcon.vue.d.ts +2 -0
  203. package/src/components/icons/LogoutIcon.vue.d.ts +2 -0
  204. package/src/components/icons/MapIcon.vue.d.ts +2 -0
  205. package/src/components/icons/MenuIcon.vue.d.ts +2 -0
  206. package/src/components/icons/MinusIcon.vue.d.ts +2 -0
  207. package/src/components/icons/MultiViewIcon.vue +16 -0
  208. package/src/components/icons/MultiViewIcon.vue.d.ts +2 -0
  209. package/src/components/icons/ObjectAttributeIcon.vue.d.ts +2 -0
  210. package/src/components/icons/ObjectSelectIcon.vue.d.ts +2 -0
  211. package/src/components/icons/ObliqueViewIcon.vue.d.ts +2 -0
  212. package/src/components/icons/PdfIcon.vue.d.ts +2 -0
  213. package/src/components/icons/PedestrianIcon.vue.d.ts +2 -0
  214. package/src/components/icons/PenIcon.vue.d.ts +2 -0
  215. package/src/components/icons/PlayCircleIcon.vue.d.ts +2 -0
  216. package/src/components/icons/PlusIcon.vue.d.ts +2 -0
  217. package/src/components/icons/PoiIcon.vue.d.ts +2 -0
  218. package/src/components/icons/PointIcon.vue.d.ts +2 -0
  219. package/src/components/icons/PointMeasurementIcon.vue +36 -0
  220. package/src/components/icons/PointMeasurementIcon.vue.d.ts +2 -0
  221. package/src/components/icons/PointSelectIcon.vue.d.ts +2 -0
  222. package/src/components/icons/PresentationModeIcon.vue.d.ts +2 -0
  223. package/src/components/icons/ProgressIcon.vue.d.ts +2 -0
  224. package/src/components/icons/QueryIcon.vue.d.ts +2 -0
  225. package/src/components/icons/RectangleIcon.vue.d.ts +2 -0
  226. package/src/components/icons/ReturnIcon.vue.d.ts +2 -0
  227. package/src/components/icons/RewindIcon.vue.d.ts +2 -0
  228. package/src/components/icons/RotateLeftIcon.vue.d.ts +2 -0
  229. package/src/components/icons/RotateRightIcon.vue.d.ts +2 -0
  230. package/src/components/icons/ScreenshotIcon.vue.d.ts +2 -0
  231. package/src/components/icons/SearchIcon.vue.d.ts +2 -0
  232. package/src/components/icons/ShadowIcon.vue.d.ts +2 -0
  233. package/src/components/icons/ShapesIcon.vue.d.ts +2 -0
  234. package/src/components/icons/ShareIcon.vue.d.ts +2 -0
  235. package/src/components/icons/SimpleCircleFilledIcon.vue.d.ts +2 -0
  236. package/src/components/icons/SimpleCircleHalfFilledIcon.vue.d.ts +2 -0
  237. package/src/components/icons/SimpleCircleOutlinedIcon.vue.d.ts +2 -0
  238. package/src/components/icons/SkipNextIcon.vue.d.ts +2 -0
  239. package/src/components/icons/SkipPreviousIcon.vue.d.ts +2 -0
  240. package/src/components/icons/SplitViewIcon.vue.d.ts +2 -0
  241. package/src/components/icons/TerrainBoxIcon.vue.d.ts +2 -0
  242. package/src/components/icons/TextStyleIcon.vue.d.ts +2 -0
  243. package/src/components/icons/ThreeDimensionsIcon.vue.d.ts +2 -0
  244. package/src/components/icons/ToolsIcon.vue.d.ts +2 -0
  245. package/src/components/icons/TouchIcon.vue.d.ts +2 -0
  246. package/src/components/icons/TrashCanIcon.vue.d.ts +2 -0
  247. package/src/components/icons/TriangleIcon.vue.d.ts +2 -0
  248. package/src/components/icons/TwoDimensionsIcon.vue.d.ts +2 -0
  249. package/src/components/icons/UploadIcon.vue.d.ts +2 -0
  250. package/src/components/icons/UserProfileIcon.vue.d.ts +2 -0
  251. package/src/components/icons/UserShareIcon.vue.d.ts +2 -0
  252. package/src/components/icons/VideoRecorderIcon.vue.d.ts +2 -0
  253. package/src/components/icons/ViewpointFlightIcon.vue.d.ts +2 -0
  254. package/src/components/icons/ViewpointIcon.vue.d.ts +2 -0
  255. package/src/components/icons/Viewshed360Icon.vue.d.ts +2 -0
  256. package/src/components/icons/ViewshedConeIcon.vue.d.ts +2 -0
  257. package/src/components/icons/ViewshedIcon.vue.d.ts +2 -0
  258. package/src/components/icons/WalkingIcon.vue.d.ts +2 -0
  259. package/src/components/icons/WallIcon.vue.d.ts +2 -0
  260. package/src/components/icons/WandIcon.vue.d.ts +2 -0
  261. package/src/components/import/FileDrop.vue +69 -0
  262. package/src/components/import/FileDrop.vue.d.ts +26 -0
  263. package/src/components/import/ImportComponent.vue +78 -0
  264. package/src/components/import/ImportComponent.vue.d.ts +34 -0
  265. package/src/components/lists/VcsActionList.vue +8 -15
  266. package/src/components/lists/VcsActionList.vue.d.ts +66 -0
  267. package/src/components/lists/VcsList.vue +207 -116
  268. package/src/components/lists/VcsList.vue.d.ts +227 -0
  269. package/src/components/lists/VcsTreeview.vue +3 -1
  270. package/src/components/lists/VcsTreeview.vue.d.ts +28 -0
  271. package/src/components/lists/VcsTreeviewLeaf.vue +1 -0
  272. package/src/components/lists/VcsTreeviewLeaf.vue.d.ts +19 -0
  273. package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +41 -0
  274. package/src/components/notification/VcsBadge.vue.d.ts +14 -0
  275. package/src/components/notification/VcsHelp.vue.d.ts +22 -0
  276. package/src/components/notification/VcsTooltip.vue.d.ts +27 -0
  277. package/src/components/notification/validation.d.ts +8 -0
  278. package/src/components/notification/validation.js +3 -2
  279. package/src/components/plugins/AbstractConfigEditor.vue +25 -4
  280. package/src/components/plugins/AbstractConfigEditor.vue.d.ts +55 -0
  281. package/src/components/style/MenuWrapper.vue.d.ts +55 -0
  282. package/src/components/style/VcsFeatureStyleComponent.vue +389 -0
  283. package/src/components/style/VcsFeatureStyleComponent.vue.d.ts +31 -0
  284. package/src/components/style/VcsFillMenu.vue.d.ts +34 -0
  285. package/src/components/style/VcsFillSelector.vue.d.ts +22 -0
  286. package/src/components/style/VcsImageMenu.vue.d.ts +43 -0
  287. package/src/components/style/VcsImageSelector.vue.d.ts +128 -0
  288. package/src/components/style/VcsStrokeMenu.vue.d.ts +34 -0
  289. package/src/components/style/VcsStrokeSelector.vue.d.ts +23 -0
  290. package/src/components/style/VcsTextMenu.vue.d.ts +52 -0
  291. package/src/components/style/VcsTextSelector.vue.d.ts +58 -0
  292. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +76 -0
  293. package/src/components/style/composables.d.ts +43 -0
  294. package/src/components/style/composables.js +11 -8
  295. package/src/components/tables/VcsDataTable.vue +11 -3
  296. package/src/components/tables/VcsDataTable.vue.d.ts +142 -0
  297. package/src/components/tables/VcsTable.vue +71 -2
  298. package/src/components/tables/VcsTable.vue.d.ts +88 -0
  299. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +392 -0
  300. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +87 -0
  301. package/src/components/vector-properties/VcsFeatureTransforms.vue +217 -0
  302. package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +45 -0
  303. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +96 -52
  304. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +119 -0
  305. package/src/components/vector-properties/composables.d.ts +33 -0
  306. package/src/components/vector-properties/composables.js +21 -14
  307. package/src/components/viewpoint/VcsViewpointComponent.vue +514 -0
  308. package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +126 -0
  309. package/src/components/viewpoint/VcsViewpointEditor.vue +87 -0
  310. package/src/components/viewpoint/VcsViewpointEditor.vue.d.ts +25 -0
  311. package/src/contentTree/LayerTree.vue.d.ts +15 -0
  312. package/src/contentTree/contentTreeCollection.d.ts +113 -0
  313. package/src/contentTree/contentTreeCollection.js +10 -20
  314. package/src/contentTree/contentTreeItem.d.ts +334 -0
  315. package/src/contentTree/contentTreeItem.js +31 -17
  316. package/src/contentTree/flightContentTreeItem.d.ts +53 -0
  317. package/src/contentTree/flightContentTreeItem.js +201 -0
  318. package/src/contentTree/groupContentTreeItem.d.ts +14 -0
  319. package/src/contentTree/groupContentTreeItem.js +2 -2
  320. package/src/contentTree/layerContentTreeItem.d.ts +76 -0
  321. package/src/contentTree/layerContentTreeItem.js +7 -9
  322. package/src/contentTree/layerGroupContentTreeItem.d.ts +50 -0
  323. package/src/contentTree/layerGroupContentTreeItem.js +2 -3
  324. package/src/contentTree/nodeContentTreeItem.d.ts +10 -0
  325. package/src/contentTree/nodeContentTreeItem.js +2 -2
  326. package/src/contentTree/obliqueCollectionContentTreeItem.d.ts +46 -0
  327. package/src/contentTree/obliqueCollectionContentTreeItem.js +3 -5
  328. package/src/contentTree/subContentTreeItem.d.ts +15 -0
  329. package/src/contentTree/subContentTreeItem.js +3 -3
  330. package/src/contentTree/vcsObjectContentTreeItem.d.ts +56 -0
  331. package/src/contentTree/vcsObjectContentTreeItem.js +3 -4
  332. package/src/contentTree/viewpointContentTreeItem.d.ts +46 -0
  333. package/src/contentTree/viewpointContentTreeItem.js +3 -4
  334. package/src/downloadHelper.d.ts +27 -0
  335. package/src/featureInfo/AddressBalloonComponent.vue.d.ts +2 -0
  336. package/src/featureInfo/BalloonComponent.vue +16 -3
  337. package/src/featureInfo/BalloonComponent.vue.d.ts +61 -0
  338. package/src/featureInfo/abstractFeatureInfoView.d.ts +199 -0
  339. package/src/featureInfo/abstractFeatureInfoView.js +82 -18
  340. package/src/featureInfo/addressBalloonFeatureInfoView.d.ts +67 -0
  341. package/src/featureInfo/addressBalloonFeatureInfoView.js +9 -2
  342. package/src/featureInfo/balloonFeatureInfoView.d.ts +49 -0
  343. package/src/featureInfo/balloonFeatureInfoView.js +12 -11
  344. package/src/featureInfo/balloonHelper.d.ts +31 -0
  345. package/src/featureInfo/balloonHelper.js +6 -6
  346. package/src/featureInfo/featureInfo.d.ts +146 -0
  347. package/src/featureInfo/featureInfo.js +11 -16
  348. package/src/featureInfo/featureInfoInteraction.d.ts +21 -0
  349. package/src/featureInfo/featureInfoInteraction.js +2 -2
  350. package/src/featureInfo/iframeFeatureInfoView.d.ts +48 -0
  351. package/src/featureInfo/iframeFeatureInfoView.js +3 -5
  352. package/src/featureInfo/tableFeatureInfoView.d.ts +75 -0
  353. package/src/featureInfo/tableFeatureInfoView.js +19 -9
  354. package/src/i18n/de.d.ts +353 -0
  355. package/src/i18n/de.js +114 -2
  356. package/src/i18n/en.d.ts +352 -0
  357. package/src/i18n/en.js +113 -1
  358. package/src/i18n/i18nCollection.d.ts +82 -0
  359. package/src/i18n/i18nCollection.js +3 -3
  360. package/src/init.d.ts +58 -0
  361. package/src/init.js +3 -5
  362. package/src/legend/StyleLegendItem.vue.d.ts +25 -0
  363. package/src/legend/VcsLegend.vue.d.ts +20 -0
  364. package/src/legend/legendHelper.d.ts +172 -0
  365. package/src/legend/legendHelper.js +21 -21
  366. package/src/manager/buttonManager.d.ts +106 -0
  367. package/src/manager/buttonManager.js +8 -4
  368. package/src/manager/collectionManager/CollectionComponent.vue +38 -42
  369. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +17 -0
  370. package/src/manager/collectionManager/CollectionComponentList.vue +53 -18
  371. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +38 -0
  372. package/src/manager/collectionManager/CollectionComponentProvider.vue +3 -2
  373. package/src/manager/collectionManager/CollectionComponentProvider.vue.d.ts +12 -0
  374. package/src/manager/collectionManager/CollectionManager.vue +29 -4
  375. package/src/manager/collectionManager/CollectionManager.vue.d.ts +8 -0
  376. package/src/manager/collectionManager/categoryManager.d.ts +56 -0
  377. package/src/manager/collectionManager/categoryManager.js +21 -7
  378. package/src/manager/collectionManager/collectionComponentClass.d.ts +257 -0
  379. package/src/manager/collectionManager/{collectionComponent.js → collectionComponentClass.js} +210 -57
  380. package/src/manager/collectionManager/collectionManager.d.ts +200 -0
  381. package/src/manager/collectionManager/collectionManager.js +45 -39
  382. package/src/manager/collectionManager/editorCollectionComponentClass.d.ts +60 -0
  383. package/src/manager/collectionManager/editorCollectionComponentClass.js +295 -0
  384. package/src/manager/contextMenu/ContextMenuComponent.vue.d.ts +18 -0
  385. package/src/manager/contextMenu/contextMenuInteraction.d.ts +24 -0
  386. package/src/manager/contextMenu/contextMenuManager.d.ts +70 -0
  387. package/src/manager/contextMenu/contextMenuManager.js +5 -5
  388. package/src/manager/navbarManager.d.ts +60 -0
  389. package/src/manager/navbarManager.js +10 -6
  390. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +17 -0
  391. package/src/manager/toolbox/SelectToolboxComponent.vue +1 -0
  392. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +15 -0
  393. package/src/manager/toolbox/ToolboxManager.vue +33 -7
  394. package/src/manager/toolbox/ToolboxManager.vue.d.ts +21 -0
  395. package/src/manager/toolbox/toolboxManager.d.ts +177 -0
  396. package/src/manager/toolbox/toolboxManager.js +86 -31
  397. package/src/manager/window/WindowComponent.vue.d.ts +40 -0
  398. package/src/manager/window/WindowComponentHeader.vue +1 -1
  399. package/src/manager/window/WindowComponentHeader.vue.d.ts +36 -0
  400. package/src/manager/window/WindowManager.vue +1 -0
  401. package/src/manager/window/WindowManager.vue.d.ts +19 -0
  402. package/src/manager/window/windowHelper.d.ts +134 -0
  403. package/src/manager/window/windowHelper.js +20 -20
  404. package/src/manager/window/windowManager.d.ts +422 -0
  405. package/src/manager/window/windowManager.js +95 -40
  406. package/src/navigation/MapNavCompass.vue.d.ts +25 -0
  407. package/src/navigation/MapNavigation.vue +2 -2
  408. package/src/navigation/MapNavigation.vue.d.ts +46 -0
  409. package/src/navigation/ObliqueRotation.vue +8 -4
  410. package/src/navigation/ObliqueRotation.vue.d.ts +14 -0
  411. package/src/navigation/OrientationToolsButton.vue.d.ts +30 -0
  412. package/src/navigation/TiltSlider.vue.d.ts +19 -0
  413. package/src/navigation/VcsCompass.vue.d.ts +25 -0
  414. package/src/navigation/VcsZoomButton.vue +6 -3
  415. package/src/navigation/VcsZoomButton.vue.d.ts +2 -0
  416. package/src/navigation/overviewMap.d.ts +199 -0
  417. package/src/navigation/overviewMap.js +3 -7
  418. package/src/navigation/overviewMapClickedInteraction.d.ts +21 -0
  419. package/src/notifier/NotifierComponent.vue.d.ts +10 -0
  420. package/src/notifier/notifier.d.ts +53 -0
  421. package/src/notifier/notifier.js +0 -1
  422. package/src/pluginHelper.d.ts +67 -0
  423. package/src/pluginHelper.js +11 -9
  424. package/src/search/ResultItem.vue.d.ts +25 -0
  425. package/src/search/ResultsComponent.vue +1 -1
  426. package/src/search/ResultsComponent.vue.d.ts +24 -0
  427. package/src/search/SearchComponent.vue +1 -1
  428. package/src/search/SearchComponent.vue.d.ts +10 -0
  429. package/src/search/search.d.ts +129 -0
  430. package/src/search/search.js +8 -11
  431. package/src/setup.d.ts +1 -0
  432. package/src/state.d.ts +57 -0
  433. package/src/state.js +7 -5
  434. package/src/uiConfig.d.ts +99 -0
  435. package/src/uiConfig.js +17 -7
  436. package/src/vcsUiApp.d.ts +301 -0
  437. package/src/vcsUiApp.js +58 -54
  438. package/src/vuePlugins/i18n.d.ts +10 -0
  439. package/src/vuePlugins/i18n.js +3 -3
  440. package/src/vuePlugins/vuetify.d.ts +27 -0
  441. package/tsconfig.json +36 -0
  442. package/dist/assets/index-661636d9.js +0 -1
  443. package/plugins/@vcmap-show-case/window-tester/src/toolboxData.js +0 -288
@@ -2,8 +2,13 @@
2
2
  <div>
3
3
  <div class="v-expansion-panel-header px-2 v-expansion-panel-header--active">
4
4
  <div class="d-flex justify-space-between">
5
- <div class="d-flex align-center">
6
- {{ $t(title) }}
5
+ <div class="d-flex align-center gap-1 pl-2">
6
+ <span>
7
+ {{ $t(title) }}
8
+ </span>
9
+ <span v-if="selectable && selection.length > 0">
10
+ {{ `(${selection.length})` }}
11
+ </span>
7
12
  </div>
8
13
  <VcsActionButtonList
9
14
  v-if="actions?.length > 0"
@@ -21,21 +26,30 @@
21
26
  :show-title="false"
22
27
  @item-moved="move"
23
28
  />
29
+ <v-sheet v-if="showLessButton" class="ma-2 pl-2">
30
+ <VcsButton @click="closeList">
31
+ {{ $t('collectionManager.less') }}
32
+ </VcsButton>
33
+ </v-sheet>
24
34
  </div>
25
35
  </template>
26
36
 
27
37
  <script>
28
- import { inject } from 'vue';
38
+ import { computed, inject } from 'vue';
29
39
  import { IndexedCollection } from '@vcmap/core';
30
- import VcsList from '../../components/lists/VcsList.vue';
40
+ import { VSheet } from 'vuetify/lib';
41
+ import VcsList, {
42
+ createSelectionActions,
43
+ } from '../../components/lists/VcsList.vue';
31
44
  import VcsActionButtonList from '../../components/buttons/VcsActionButtonList.vue';
45
+ import VcsButton from '../../components/buttons/VcsButton.vue';
32
46
 
33
47
  /**
34
48
  * Moves an item to a new position.
35
49
  * New position is derived from a target item in the collection.
36
50
  * This ensures correct movement, if rendered list is only a subset of the collection.
37
- * @param {CollectionComponent} collectionComponent
38
- * @param {VcsListItem} item
51
+ * @param {import("./collectionComponentClass.js").default<Object>} collectionComponent
52
+ * @param {import("../../components/lists/VcsList.vue").VcsListItem} item
39
53
  * @param {number} targetIndex
40
54
  */
41
55
  export function moveItem(collectionComponent, item, targetIndex) {
@@ -45,7 +59,7 @@
45
59
  const keyProperty = collection.uniqueKey;
46
60
  const targetItem = collectionComponent.items.value[targetIndex];
47
61
  const targetIndexCol = [...collection].findIndex(
48
- (i) => i[keyProperty] === targetItem[keyProperty],
62
+ (i) => i[keyProperty] === targetItem.name,
49
63
  );
50
64
  collection.moveTo(collectionItem, targetIndexCol);
51
65
  }
@@ -53,28 +67,38 @@
53
67
 
54
68
  /**
55
69
  * @description
56
- * Renders the items of a CollectionComponent in a List.
70
+ * Renders the items of a CollectionComponentClass in a List.
57
71
  * The collectionComponent must be passed via {@link https://vuejs.org/api/composition-api-dependency-injection.html |provide }.
58
- * @vue-prop {string} windowId
72
+ * @vue-prop {string} showLessButton - Show a `show less button` at the end of the list, which will emit a closeList event
59
73
  */
60
74
  export default {
61
75
  name: 'CollectionComponentList',
76
+ props: {
77
+ showLessButton: {
78
+ type: Boolean,
79
+ default: true,
80
+ },
81
+ },
62
82
  components: {
83
+ VcsButton,
63
84
  VcsActionButtonList,
64
85
  VcsList,
86
+ VSheet,
65
87
  },
66
- props: {
67
- windowId: {
68
- type: String,
69
- required: true,
70
- },
71
- },
72
- setup() {
88
+ setup(_props, { emit }) {
73
89
  /**
74
- * @type {CollectionComponent}
90
+ * @type {import("./collectionComponentClass.js").CollectionComponentClass}
75
91
  */
76
92
  const collectionComponent = inject('collectionComponent');
77
93
 
94
+ const selectionActions = createSelectionActions(
95
+ collectionComponent.items,
96
+ collectionComponent.selection,
97
+ emit,
98
+ );
99
+
100
+ const actions = collectionComponent.getActions();
101
+
78
102
  return {
79
103
  title: collectionComponent.title,
80
104
  items: collectionComponent.items,
@@ -84,10 +108,21 @@
84
108
  singleSelect: collectionComponent.singleSelect,
85
109
  overflowCount: collectionComponent.overflowCount,
86
110
  limit: collectionComponent.limit,
87
- actions: collectionComponent.getActions(),
111
+ actions: computed(() => {
112
+ if (
113
+ collectionComponent.selectable.value &&
114
+ !collectionComponent.singleSelect.value
115
+ ) {
116
+ return [...selectionActions, ...actions.value];
117
+ }
118
+ return actions.value;
119
+ }),
88
120
  move({ item, targetIndex }) {
89
121
  moveItem(collectionComponent, item, targetIndex);
90
122
  },
123
+ closeList() {
124
+ emit('closeList', collectionComponent.id);
125
+ },
91
126
  };
92
127
  },
93
128
  };
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Moves an item to a new position.
3
+ * New position is derived from a target item in the collection.
4
+ * This ensures correct movement, if rendered list is only a subset of the collection.
5
+ * @param {import("./collectionComponentClass.js").default<Object>} collectionComponent
6
+ * @param {import("../../components/lists/VcsList.vue").VcsListItem} item
7
+ * @param {number} targetIndex
8
+ */
9
+ export function moveItem(collectionComponent: import("./collectionComponentClass.js").default<Object>, item: import("../../components/lists/VcsList.vue").VcsListItem, targetIndex: number): void;
10
+ declare const _default: import("vue").DefineComponent<{
11
+ showLessButton: {
12
+ type: BooleanConstructor;
13
+ default: boolean;
14
+ };
15
+ }, {
16
+ title: any;
17
+ items: any;
18
+ selection: any;
19
+ draggable: any;
20
+ selectable: any;
21
+ singleSelect: any;
22
+ overflowCount: any;
23
+ limit: any;
24
+ actions: import("vue").ComputedRef<any>;
25
+ move({ item, targetIndex }: {
26
+ item: any;
27
+ targetIndex: any;
28
+ }): void;
29
+ closeList(): void;
30
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
31
+ showLessButton: {
32
+ type: BooleanConstructor;
33
+ default: boolean;
34
+ };
35
+ }>>, {
36
+ showLessButton: boolean;
37
+ }>;
38
+ export default _default;
@@ -11,7 +11,8 @@
11
11
  import CollectionComponent from './CollectionComponent.vue';
12
12
 
13
13
  /**
14
- * @description Provides a CollectionComponent of a CollectionManager.
14
+ * @description Provides a CollectionComponentClass of a CollectionManager.
15
+ * Default rendering of the slot is the `CollectionComponent.vue`
15
16
  * The collectionManager must be passed via {@link https://vuejs.org/api/composition-api-dependency-injection.html |provide }.
16
17
  * @vue-prop {string} componentId - ID of the collectionComponent to be provided
17
18
  * @vue-data {slot} [#default] - Slot rendering collection component.
@@ -29,7 +30,7 @@
29
30
  },
30
31
  setup(props) {
31
32
  /**
32
- * @type {CollectionManager}
33
+ * @type {import("./collectionManager.js").CollectionManager}
33
34
  */
34
35
  const collectionManager = inject('collectionManager');
35
36
  const collectionComponent = collectionManager.get(props.componentId);
@@ -0,0 +1,12 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ componentId: {
3
+ type: StringConstructor;
4
+ required: true;
5
+ };
6
+ }, void, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
7
+ componentId: {
8
+ type: StringConstructor;
9
+ required: true;
10
+ };
11
+ }>>, {}>;
12
+ export default _default;
@@ -3,7 +3,7 @@
3
3
  <v-expansion-panels
4
4
  accordion
5
5
  multiple
6
- v-if="componentIds.length > 0"
6
+ v-if="!componentView && componentIds.length > 0"
7
7
  v-model="panels"
8
8
  class="rounded-0"
9
9
  >
@@ -11,8 +11,16 @@
11
11
  v-for="componentId in componentIds"
12
12
  :component-id="componentId"
13
13
  :key="componentId"
14
- />
14
+ >
15
+ <collection-component @openList="openList" />
16
+ </collection-component-provider>
15
17
  </v-expansion-panels>
18
+ <collection-component-provider
19
+ v-if="componentView"
20
+ :component-id="componentView"
21
+ >
22
+ <collection-component-list @closeList="closeList" />
23
+ </collection-component-provider>
16
24
  </v-container>
17
25
  </template>
18
26
 
@@ -20,6 +28,8 @@
20
28
  import { computed, inject, ref } from 'vue';
21
29
  import { VExpansionPanels, VContainer } from 'vuetify/lib';
22
30
  import CollectionComponentProvider from './CollectionComponentProvider.vue';
31
+ import CollectionComponentList from './CollectionComponentList.vue';
32
+ import CollectionComponent from './CollectionComponent.vue';
23
33
 
24
34
  /**
25
35
  * @description Renders the all managed CollectionComponents of a CollectionManager.
@@ -28,16 +38,24 @@
28
38
  export default {
29
39
  name: 'CollectionManager',
30
40
  components: {
41
+ CollectionComponentList,
31
42
  VExpansionPanels,
32
43
  VContainer,
33
44
  CollectionComponentProvider,
45
+ CollectionComponent,
34
46
  },
35
47
  setup() {
48
+ /**
49
+ * @type {import("./collectionManager.js").CollectionManager}
50
+ */
36
51
  const collectionManager = inject('collectionManager');
37
52
  const componentIds = ref(collectionManager.componentIds);
38
-
39
53
  /**
40
- * @type {WritableComputedRef<number[]>}
54
+ * @type {import("vue").Ref<string|null>}
55
+ */
56
+ const componentView = ref(null);
57
+ /**
58
+ * @type {import("vue").WritableComputedRef<number[]>}
41
59
  */
42
60
  const panels = computed({
43
61
  get() {
@@ -56,6 +74,13 @@
56
74
  return {
57
75
  componentIds,
58
76
  panels,
77
+ componentView,
78
+ openList(id) {
79
+ componentView.value = id;
80
+ },
81
+ closeList() {
82
+ componentView.value = null;
83
+ },
59
84
  };
60
85
  },
61
86
  };
@@ -0,0 +1,8 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {
2
+ componentIds: any;
3
+ panels: import("vue").WritableComputedRef<number[]>;
4
+ componentView: import("vue").Ref<string | null>;
5
+ openList(id: any): void;
6
+ closeList(): void;
7
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
8
+ export default _default;
@@ -0,0 +1,56 @@
1
+ export default CategoryManager;
2
+ export type ICategoryManager = import("../../vcsUiApp.js").VcsComponentManager<import("./collectionComponentClass.js").default<Object>, import("./collectionComponentClass.js").CollectionComponentClassOptions<Object>>;
3
+ /**
4
+ * @typedef {import("../../vcsUiApp.js").VcsComponentManager<import("./collectionComponentClass.js").default<Object>, import("./collectionComponentClass.js").CollectionComponentClassOptions<Object>>} ICategoryManager
5
+ */
6
+ /**
7
+ * Manages all requested category collections.
8
+ * Provides an API to add/remove collectionsComponents.
9
+ * @implements {ICategoryManager}
10
+ * @extends CollectionManager
11
+ */
12
+ declare class CategoryManager extends CollectionManager implements ICategoryManager {
13
+ /**
14
+ * @param {import("../../vcsUiApp.js").default} app
15
+ */
16
+ /**
17
+ * @param {import("../../vcsUiApp.js").default} app
18
+ */
19
+ constructor(app: import("../../vcsUiApp.js").default);
20
+ /**
21
+ * @type {import("../../vcsUiApp.js").default}
22
+ * @private
23
+ */
24
+ private _app;
25
+ /**
26
+ * @type {string}
27
+ * @private
28
+ */
29
+ private _dynamicModuleId;
30
+ /**
31
+ * @param {Object} item
32
+ * @return {boolean}
33
+ * @private
34
+ */
35
+ private _dynamicModuleIdFilter;
36
+ /**
37
+ * @type {(() => void)[]}
38
+ * @private
39
+ */
40
+ private _categoryListeners;
41
+ /**
42
+ * Requests a new or existing category and adds its collection to this manager.
43
+ * The collectionComponent's id is always the category's name.
44
+ * Returns requested category and its corresponding collectionComponent.
45
+ * @param {import("@vcmap/core").CategoryOptions<T>} options
46
+ * @param {string|symbol} owner
47
+ * @param {import("./collectionComponentClass.js").CollectionComponentUiOptions} collectionComponentOptions
48
+ * @returns {Promise<{ collectionComponent: import("./collectionComponentClass.js").default<T>, category: import("@vcmap/core").Category<T> }>}
49
+ * @template {Object|import("@vcmap/core").VcsObject} T
50
+ */
51
+ requestCategory<T extends Object | import("@vcmap/core/dist/src/vcsObject.js").default>(options: import("@vcmap/core").CategoryOptions<T>, owner: string | symbol, collectionComponentOptions?: import("./collectionComponentClass.js").CollectionComponentUiOptions): Promise<{
52
+ collectionComponent: import("./collectionComponentClass.js").default<T>;
53
+ category: import("@vcmap/core/dist/src/category/category.js").default<T>;
54
+ }>;
55
+ }
56
+ import CollectionManager from './collectionManager.js';
@@ -2,24 +2,28 @@ import { moduleIdSymbol } from '@vcmap/core';
2
2
  import { vcsAppSymbol } from '../../pluginHelper.js';
3
3
  import CollectionManager from './collectionManager.js';
4
4
 
5
+ /**
6
+ * @typedef {import("../../vcsUiApp.js").VcsComponentManager<import("./collectionComponentClass.js").default<Object>, import("./collectionComponentClass.js").CollectionComponentClassOptions<Object>>} ICategoryManager
7
+ */
8
+
5
9
  /**
6
10
  * Manages all requested category collections.
7
11
  * Provides an API to add/remove collectionsComponents.
8
- * @implements {VcsComponentManager<CollectionComponent, CollectionComponentOptions>}
12
+ * @implements {ICategoryManager}
9
13
  * @extends CollectionManager
10
14
  */
11
15
  class CategoryManager extends CollectionManager {
12
16
  /**
13
- * @param {import("@vcmap/ui").VcsUiApp} app
17
+ * @param {import("../../vcsUiApp.js").default} app
14
18
  */
15
19
  /**
16
- * @param {import("@vcmap/ui").VcsUiApp} app
20
+ * @param {import("../../vcsUiApp.js").default} app
17
21
  */
18
22
  constructor(app) {
19
23
  super();
20
24
 
21
25
  /**
22
- * @type {import("@vcmap/ui").VcsUiApp}
26
+ * @type {import("../../vcsUiApp.js").default}
23
27
  * @private
24
28
  */
25
29
  this._app = app;
@@ -29,11 +33,20 @@ class CategoryManager extends CollectionManager {
29
33
  */
30
34
  this._dynamicModuleId = this._app.dynamicModuleId;
31
35
 
36
+ /**
37
+ * @param {Object} item
38
+ * @return {boolean}
39
+ * @private
40
+ */
32
41
  this._dynamicModuleIdFilter = (item) =>
33
42
  item[moduleIdSymbol] === this._dynamicModuleId;
34
43
 
35
44
  this.addFilterFunction(this._dynamicModuleIdFilter, vcsAppSymbol);
36
45
 
46
+ /**
47
+ * @type {(() => void)[]}
48
+ * @private
49
+ */
37
50
  this._categoryListeners = [
38
51
  this._app.dynamicModuleIdChanged.addEventListener((id) => {
39
52
  this._dynamicModuleId = id;
@@ -50,10 +63,11 @@ class CategoryManager extends CollectionManager {
50
63
  * Requests a new or existing category and adds its collection to this manager.
51
64
  * The collectionComponent's id is always the category's name.
52
65
  * Returns requested category and its corresponding collectionComponent.
53
- * @param {import("@vcmap/core").CategoryOptions} options
66
+ * @param {import("@vcmap/core").CategoryOptions<T>} options
54
67
  * @param {string|symbol} owner
55
- * @param {CollectionComponentUiOptions} collectionComponentOptions
56
- * @return {{ collectionComponent:CollectionComponent,category:import("@vcmap/core").Category }}
68
+ * @param {import("./collectionComponentClass.js").CollectionComponentUiOptions} collectionComponentOptions
69
+ * @returns {Promise<{ collectionComponent: import("./collectionComponentClass.js").default<T>, category: import("@vcmap/core").Category<T> }>}
70
+ * @template {Object|import("@vcmap/core").VcsObject} T
57
71
  */
58
72
  async requestCategory(options, owner, collectionComponentOptions = {}) {
59
73
  const category = await this._app.categories.requestCategory(options);
@@ -0,0 +1,257 @@
1
+ export default CollectionComponentClass;
2
+ export type CollectionComponentUiOptions = {
3
+ id?: string | undefined;
4
+ title?: string | undefined;
5
+ /**
6
+ * - only supported for IndexedCollections
7
+ */
8
+ draggable?: boolean | undefined;
9
+ /**
10
+ * - adds actions to rename items from list. Sets a default titleChanged callback on all list items, which can be overwritten in the mapping function, if necessary.
11
+ */
12
+ renamable?: boolean | undefined;
13
+ /**
14
+ * - adds actions to remove items from list. Also adds a header action to delete selected, if selectable is set to true.
15
+ */
16
+ removable?: boolean | undefined;
17
+ selectable?: boolean | undefined;
18
+ singleSelect?: boolean | undefined;
19
+ /**
20
+ * - number of header action buttons rendered until overflow
21
+ */
22
+ overflowCount?: number | undefined;
23
+ /**
24
+ * - limit number of items in rendered list (more items are rendered in extra window)
25
+ */
26
+ limit?: number | undefined;
27
+ };
28
+ export type CollectionComponentClassOptions<T extends Object> = CollectionComponentUiOptions & {
29
+ collection: import("@vcmap/core").Collection<T>;
30
+ };
31
+ export type CollectionComponentListItem = import("../../components/lists/VcsList.vue").VcsListItem & {
32
+ actions: Array<import("../../actions/actionHelper.js").VcsAction & {
33
+ weight?: number;
34
+ }>;
35
+ clickedCallbacks: Array<(arg0: PointerEvent) => void>;
36
+ destroy: () => void | undefined;
37
+ destroyFunctions: Array<() => void>;
38
+ };
39
+ /**
40
+ * Manages one collection and creates a mirrored items array with ListItems.
41
+ * Listens to all collection events and synchronizes changes to the items array.
42
+ * The Collection Items will be transformed and filtered with the given itemMappings and itemFilter functions
43
+ * @class
44
+ * @template {Object|import("@vcmap/core").VcsObject} T
45
+ */
46
+ declare class CollectionComponentClass<T extends Object | import("@vcmap/core/dist/src/vcsObject.js").default> {
47
+ /**
48
+ * @param {CollectionComponentClassOptions<T>} options
49
+ * @param {string|import("../../pluginHelper.js").vcsAppSymbol} owner
50
+ */
51
+ constructor(options: CollectionComponentClassOptions<T>, owner: string | symbol);
52
+ /**
53
+ * @type {import("@vcmap/core").Collection<T>}
54
+ * @private
55
+ */
56
+ private _collection;
57
+ /**
58
+ * @type {string}
59
+ * @private
60
+ */
61
+ private _id;
62
+ /**
63
+ * @type {import("vue").Ref<string>}
64
+ */
65
+ title: import("vue").Ref<string>;
66
+ /**
67
+ * @type {import("vue").Ref<boolean>}
68
+ */
69
+ open: import("vue").Ref<boolean>;
70
+ /**
71
+ *
72
+ * @type {import("vue").Ref<number>}
73
+ */
74
+ overflowCount: import("vue").Ref<number>;
75
+ /**
76
+ *
77
+ * @type {import("vue").Ref<number>}
78
+ */
79
+ limit: import("vue").Ref<number>;
80
+ /**
81
+ * @type {import("vue").Ref<boolean>}
82
+ * @private
83
+ */
84
+ private _draggable;
85
+ /**
86
+ * @type {import("vue").Ref<boolean>}
87
+ */
88
+ renamable: import("vue").Ref<boolean>;
89
+ /**
90
+ * @type {import("vue").Ref<boolean>}
91
+ */
92
+ removable: import("vue").Ref<boolean>;
93
+ /**
94
+ * @type {import("vue").Ref<boolean>}
95
+ */
96
+ selectable: import("vue").Ref<boolean>;
97
+ /**
98
+ * @type {import("vue").Ref<boolean>}
99
+ */
100
+ singleSelect: import("vue").Ref<boolean>;
101
+ /**
102
+ * @type {string|vcsAppSymbol}
103
+ * @private
104
+ */
105
+ private _owner;
106
+ /**
107
+ * @type {import("vue").Ref<Array<import("./collectionManager.js").OwnedAction>>}
108
+ */
109
+ _actions: import("vue").Ref<Array<import("./collectionManager.js").OwnedAction>>;
110
+ /**
111
+ * @type {Array<import("./collectionManager.js").ItemMapping<T>>}
112
+ * @private
113
+ */
114
+ private _itemMappings;
115
+ /**
116
+ * @type {Array<import("./collectionManager.js").ItemFilter<T>>}
117
+ * @private
118
+ */
119
+ private _itemFilters;
120
+ /**
121
+ * @type {import("vue").Ref<Array<CollectionComponentListItem>>}
122
+ * @private
123
+ */
124
+ private _listItems;
125
+ /**
126
+ * @type {import("vue").Ref<Array<CollectionComponentListItem>>}
127
+ */
128
+ selection: import("vue").Ref<Array<CollectionComponentListItem>>;
129
+ _resetWatchers: import("vue").WatchStopHandle[];
130
+ _destroyBulkDelete: () => void;
131
+ _listeners: (() => void)[];
132
+ /**
133
+ * @type {string}
134
+ */
135
+ get id(): string;
136
+ /**
137
+ * @type {import("@vcmap/core").Collection<T>}
138
+ */
139
+ get collection(): import("@vcmap/core/dist/src/util/collection.js").default<T>;
140
+ /**
141
+ * @type {import("vue").Ref<Array<CollectionComponentListItem>>}
142
+ */
143
+ get items(): import("vue").Ref<CollectionComponentListItem[]>;
144
+ /**
145
+ * @param {boolean} value
146
+ * @deprecated
147
+ */
148
+ set draggable(arg: import("vue").Ref<boolean>);
149
+ /**
150
+ * @type {import("vue").Ref<boolean>}
151
+ */
152
+ get draggable(): import("vue").Ref<boolean>;
153
+ /**
154
+ * @type {string|import("../../pluginHelper.js").vcsAppSymbol}
155
+ */
156
+ get owner(): string | symbol;
157
+ /**
158
+ * @returns {import("vue").ComputedRef<import("../../actions/actionHelper.js").VcsAction[]>}
159
+ */
160
+ getActions(): import("vue").ComputedRef<import("../../actions/actionHelper.js").VcsAction[]>;
161
+ /**
162
+ * @private
163
+ */
164
+ private _addBulkDeleteAction;
165
+ /**
166
+ * @private
167
+ */
168
+ private _removeBulkDeleteAction;
169
+ /**
170
+ * uses the itemMappings to transform the given Item to an CollectionComponentListItem usable in the VcsList
171
+ * @param {T} item
172
+ * @returns {CollectionComponentListItem}
173
+ * @template T
174
+ * @private
175
+ */
176
+ private _transformItem;
177
+ /**
178
+ * Inserts the listItem into the list items array at the correct relative position in respect to the position of the listItem
179
+ * in the collection
180
+ * @param {CollectionComponentListItem} listItem
181
+ * @private
182
+ */
183
+ private _insertListItem;
184
+ /**
185
+ * synchronizes the collection items with the internal items list.
186
+ * @param {T} item
187
+ * @template T
188
+ * @private
189
+ */
190
+ private _handleItemAdded;
191
+ /**
192
+ * synchronizes the collection items with the internal items list by preserving previous selection
193
+ * @param {import("@vcmap/core").ReplacedEvent<T>} replaced
194
+ * @private
195
+ */
196
+ private _handleItemReplaced;
197
+ /**
198
+ * synchronizes the order of the list items with respect to the order of the items in the collection.
199
+ * removes and reinserts the moved item.
200
+ * @param {T} item
201
+ * @template T
202
+ * @private
203
+ */
204
+ private _handleItemMoved;
205
+ /**
206
+ * synchronizes the collection items with the internal list items.
207
+ * @param {T} item
208
+ * @template T
209
+ * @private
210
+ */
211
+ private _handleItemRemoved;
212
+ /**
213
+ * @param {T} item
214
+ * @template T
215
+ * @returns {CollectionComponentListItem|undefined}
216
+ */
217
+ getListItemForItem<T_1>(item: T_1): CollectionComponentListItem | undefined;
218
+ /**
219
+ * recreates the items array with the new Mapping Function
220
+ * @param {import("./collectionManager.js").ItemMapping<T>} itemMapping
221
+ */
222
+ addItemMapping(itemMapping: import("./collectionManager.js").ItemMapping<T>): void;
223
+ /**
224
+ * recreates the items array with the new Mapping Function
225
+ * @param {import("./collectionManager.js").ItemMapping<T>} itemMapping
226
+ */
227
+ removeItemMapping(itemMapping: import("./collectionManager.js").ItemMapping<T>): void;
228
+ /**
229
+ * recreates the items array with the new Filter Function
230
+ * @param {import("./collectionManager.js").ItemFilter<T>} itemFilter
231
+ */
232
+ addItemFilter(itemFilter: import("./collectionManager.js").ItemFilter<T>): void;
233
+ /**
234
+ * recreates the items array with the new Filter Function
235
+ * @param {import("./collectionManager.js").ItemFilter<T>} itemFilter
236
+ */
237
+ removeItemFilter(itemFilter: import("./collectionManager.js").ItemFilter<T>): void;
238
+ /**
239
+ * @param {Array<import("./collectionManager.js").OwnedAction>} ownedActions
240
+ */
241
+ addActions(ownedActions: Array<import("./collectionManager.js").OwnedAction>): void;
242
+ /**
243
+ * @param {Array<import("./collectionManager.js").OwnedAction>} ownedActions
244
+ */
245
+ removeActions(ownedActions: Array<import("./collectionManager.js").OwnedAction>): void;
246
+ /**
247
+ * removes itemMapping, itemFilter and actions of provided owner and resets all list items
248
+ * @param {string | symbol} owner
249
+ */
250
+ removeOwner(owner: string | symbol): void;
251
+ /**
252
+ * resets this collection component by destroying all list items and
253
+ * re-adding them from the collection applying current filter and mapping functions
254
+ */
255
+ reset(): void;
256
+ destroy(): void;
257
+ }