@vcmap/ui 5.0.2 → 5.1.0-rc.2

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 +32 -0
  8. package/dist/assets/{cesium.a3a1dc.js → cesium.b97c3b.js} +1859 -1828
  9. package/dist/assets/cesium.js +1 -1
  10. package/dist/assets/{core.bb64ed.js → core.5b03e5.js} +5859 -5041
  11. package/dist/assets/core.js +1 -1
  12. package/dist/assets/index-92075a75.js +1 -0
  13. package/dist/assets/{ol.833fa9.js → ol.0cd250.js} +7257 -7252
  14. package/dist/assets/ol.js +1 -1
  15. package/dist/assets/{ui.aeb2ec.css → ui.67779e.css} +2 -2
  16. package/dist/assets/{ui.aeb2ec.js → ui.67779e.js} +14199 -9198
  17. package/dist/assets/ui.js +1 -1
  18. package/dist/assets/{vue.8e1850.js → vue.62ecd5.js} +1243 -1234
  19. package/dist/assets/vue.js +2 -2
  20. package/dist/assets/{vuetify.3ed426.css → vuetify.3b3e23.css} +1 -1
  21. package/dist/assets/{vuetify.3ed426.js → vuetify.3b3e23.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 +6 -2
  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
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Creates an action for renaming an item in a VcsList. Sho VcsTextfield in VcsList.
3
+ * @param {import("../components/lists/VcsList.vue").VcsListItem} item
4
+ * @param {Partial<import("./actionHelper.js").ActionOptions>} [actionOptions={}]
5
+ * @returns {import("./actionHelper.js").VcsAction}
6
+ */
7
+ export function createListItemRenameAction(item: import("../components/lists/VcsList.vue").VcsListItem, actionOptions?: Partial<import("./actionHelper.js").ActionOptions> | undefined): import("./actionHelper.js").VcsAction;
8
+ /**
9
+ * Creates an action for renaming an item in a VcsList.
10
+ * @param {import("@vcmap/core").Collection<T>} collection
11
+ * @param {T} item
12
+ * @param {Partial<import("./actionHelper.js").ActionOptions>} [actionOptions={}]
13
+ * @template {Object} T
14
+ * @returns {import("./actionHelper.js").VcsAction}
15
+ */
16
+ export function createListItemDeleteAction<T extends Object>(collection: import("@vcmap/core/dist/src/util/collection.js").default<T>, item: T, actionOptions?: Partial<import("./actionHelper.js").ActionOptions> | undefined): import("./actionHelper.js").VcsAction;
17
+ /**
18
+ * Creates an action based on a provided selection
19
+ * @param {import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>} selection
20
+ * @param {import("./actionHelper.js").ActionOptions & {callback:import("./actionHelper.js").ActionCallback}} [actionOptions]
21
+ * @returns {{action: import("vue").UnwrapRef<import("./actionHelper.js").VcsAction>, destroy: import("vue").WatchStopHandle}}
22
+ */
23
+ export function createListItemBulkAction(selection: import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>, actionOptions?: (import("./actionHelper.js").ActionOptions & {
24
+ callback: import("./actionHelper.js").ActionCallback;
25
+ }) | undefined): {
26
+ action: import("vue").UnwrapRef<import("./actionHelper.js").VcsAction>;
27
+ destroy: import("vue").WatchStopHandle;
28
+ };
29
+ /**
30
+ * @param {import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>} selection
31
+ * @param {import("./actionHelper.js").ActionCallback} exportCallback
32
+ * @param {string|symbol} owner
33
+ * @returns {{action: import("../manager/collectionManager/collectionManager.js").OwnedAction, destroy: (function(): void)}}
34
+ */
35
+ export function createListExportAction(selection: import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>, exportCallback: import("./actionHelper.js").ActionCallback, owner: string | symbol): {
36
+ action: import("../manager/collectionManager/collectionManager.js").OwnedAction;
37
+ destroy: (() => void);
38
+ };
39
+ /**
40
+ *
41
+ * @param {function(File[]):void|Promise<void>} importCallback
42
+ * @param {import("../manager/window/windowManager.js").default} windowManager
43
+ * @param {string|symbol} owner
44
+ * @param {string} parentId
45
+ * @returns {{action: import("../manager/collectionManager/collectionManager.js").OwnedAction, destroy: (function(): void)}}
46
+ */
47
+ export function createListImportAction(importCallback: (arg0: File[]) => void | Promise<void>, windowManager: import("../manager/window/windowManager.js").default, owner: string | symbol, parentId: string): {
48
+ action: import("../manager/collectionManager/collectionManager.js").OwnedAction;
49
+ destroy: (() => void);
50
+ };
51
+ /**
52
+ * @param {import("vue").Ref<Array<import("../manager/collectionManager/collectionComponentClass.js").CollectionComponentListItem>>} selection
53
+ * @param {function(T):void} editCallback
54
+ * @param {import("../manager/window/windowManager.js").default} windowManager
55
+ * @param {string|symbol} owner
56
+ * @param {string} multiEditorId
57
+ * @template {Object} T
58
+ * @returns {{action: import("./actionHelper.js").VcsAction, destroy: function(): void}}
59
+ */
60
+ export function createListEditAction<T extends Object>(selection: import("vue").Ref<Array<import("../manager/collectionManager/collectionComponentClass.js").CollectionComponentListItem>>, editCallback: (arg0: T) => void, windowManager: import("../manager/window/windowManager.js").default, owner: string | symbol, multiEditorId: string): {
61
+ action: import("./actionHelper.js").VcsAction;
62
+ destroy: () => void;
63
+ };
@@ -0,0 +1,185 @@
1
+ import { reactive, watch } from 'vue';
2
+ import { check } from '@vcsuite/check';
3
+ import { createToggleAction } from './actionHelper.js';
4
+ import ImportComponent from '../components/import/ImportComponent.vue';
5
+ import { WindowSlot } from '../manager/window/windowManager.js';
6
+ import { vcsAppSymbol } from '../pluginHelper.js';
7
+
8
+ /**
9
+ * Creates an action for renaming an item in a VcsList. Sho VcsTextfield in VcsList.
10
+ * @param {import("../components/lists/VcsList.vue").VcsListItem} item
11
+ * @param {Partial<import("./actionHelper.js").ActionOptions>} [actionOptions={}]
12
+ * @returns {import("./actionHelper.js").VcsAction}
13
+ */
14
+ export function createListItemRenameAction(item, actionOptions = {}) {
15
+ return {
16
+ name: 'list.renameItem',
17
+ ...actionOptions,
18
+ callback: () => {
19
+ item.rename = true;
20
+ },
21
+ };
22
+ }
23
+
24
+ /**
25
+ * Creates an action for renaming an item in a VcsList.
26
+ * @param {import("@vcmap/core").Collection<T>} collection
27
+ * @param {T} item
28
+ * @param {Partial<import("./actionHelper.js").ActionOptions>} [actionOptions={}]
29
+ * @template {Object} T
30
+ * @returns {import("./actionHelper.js").VcsAction}
31
+ */
32
+ export function createListItemDeleteAction(
33
+ collection,
34
+ item,
35
+ actionOptions = {},
36
+ ) {
37
+ return {
38
+ name: 'list.deleteItem',
39
+ ...actionOptions,
40
+ callback: () => {
41
+ if (collection.has(item)) {
42
+ collection.remove(item);
43
+ }
44
+ },
45
+ };
46
+ }
47
+
48
+ /**
49
+ * Creates an action based on a provided selection
50
+ * @param {import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>} selection
51
+ * @param {import("./actionHelper.js").ActionOptions & {callback:import("./actionHelper.js").ActionCallback}} [actionOptions]
52
+ * @returns {{action: import("vue").UnwrapRef<import("./actionHelper.js").VcsAction>, destroy: import("vue").WatchStopHandle}}
53
+ */
54
+ export function createListItemBulkAction(selection, actionOptions) {
55
+ check(actionOptions, {
56
+ name: String,
57
+ icon: [undefined, String],
58
+ title: [undefined, String],
59
+ callback: Function,
60
+ });
61
+
62
+ const action = reactive({
63
+ disabled: true,
64
+ ...actionOptions,
65
+ });
66
+
67
+ const destroy = watch(selection, () => {
68
+ action.disabled = selection.value.length < 1;
69
+ });
70
+
71
+ return { action, destroy };
72
+ }
73
+
74
+ /**
75
+ * @param {import("vue").Ref<Array<import("../components/lists/VcsList.vue").VcsListItem>>} selection
76
+ * @param {import("./actionHelper.js").ActionCallback} exportCallback
77
+ * @param {string|symbol} owner
78
+ * @returns {{action: import("../manager/collectionManager/collectionManager.js").OwnedAction, destroy: (function(): void)}}
79
+ */
80
+ export function createListExportAction(selection, exportCallback, owner) {
81
+ const { action, destroy } = createListItemBulkAction(selection, {
82
+ name: 'list.export',
83
+ callback: exportCallback,
84
+ });
85
+
86
+ return {
87
+ action: {
88
+ action,
89
+ owner,
90
+ weight: 99,
91
+ },
92
+ destroy,
93
+ };
94
+ }
95
+
96
+ /**
97
+ *
98
+ * @param {function(File[]):void|Promise<void>} importCallback
99
+ * @param {import("../manager/window/windowManager.js").default} windowManager
100
+ * @param {string|symbol} owner
101
+ * @param {string} parentId
102
+ * @returns {{action: import("../manager/collectionManager/collectionManager.js").OwnedAction, destroy: (function(): void)}}
103
+ */
104
+ export function createListImportAction(
105
+ importCallback,
106
+ windowManager,
107
+ owner,
108
+ parentId,
109
+ ) {
110
+ check(importCallback, Function);
111
+ check(owner, [String, vcsAppSymbol]);
112
+ check(parentId, String);
113
+
114
+ const { action, destroy } = createToggleAction(
115
+ {
116
+ name: `list.import`,
117
+ },
118
+ {
119
+ id: `list-import`,
120
+ parentId,
121
+ component: ImportComponent,
122
+ slot: WindowSlot.DYNAMIC_CHILD,
123
+ state: {
124
+ headerTitle: `list.import`,
125
+ headerIcon: '$vcsPlus',
126
+ },
127
+ props: {
128
+ importFiles: importCallback,
129
+ },
130
+ },
131
+ windowManager,
132
+ owner,
133
+ );
134
+
135
+ return {
136
+ action: {
137
+ action,
138
+ owner,
139
+ weight: 98,
140
+ },
141
+ destroy,
142
+ };
143
+ }
144
+
145
+ /**
146
+ * @param {import("vue").Ref<Array<import("../manager/collectionManager/collectionComponentClass.js").CollectionComponentListItem>>} selection
147
+ * @param {function(T):void} editCallback
148
+ * @param {import("../manager/window/windowManager.js").default} windowManager
149
+ * @param {string|symbol} owner
150
+ * @param {string} multiEditorId
151
+ * @template {Object} T
152
+ * @returns {{action: import("./actionHelper.js").VcsAction, destroy: function(): void}}
153
+ */
154
+ export function createListEditAction(
155
+ selection,
156
+ editCallback,
157
+ windowManager,
158
+ owner,
159
+ multiEditorId,
160
+ ) {
161
+ const { action, destroy: destroyEditSelected } = createListItemBulkAction(
162
+ selection,
163
+ {
164
+ name: 'list.edit',
165
+ callback: editCallback,
166
+ },
167
+ );
168
+
169
+ function handleWindowChanged() {
170
+ action.active = windowManager.has(multiEditorId);
171
+ }
172
+
173
+ const editorStateListener = [
174
+ windowManager.added.addEventListener(handleWindowChanged),
175
+ windowManager.removed.addEventListener(handleWindowChanged),
176
+ ];
177
+
178
+ return {
179
+ action,
180
+ destroy: () => {
181
+ destroyEditSelected();
182
+ editorStateListener.forEach((cb) => cb());
183
+ },
184
+ };
185
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Creates an action
3
+ * @param {string} name
4
+ * @param {import("vue").Ref<StateActionState>} stateRef
5
+ * @param {function():void} callback
6
+ * @returns {{ action: import("./actionHelper.js").VcsAction, destroy: function():void }}
7
+ */
8
+ export function createStateRefAction(name: string, stateRef: import("vue").Ref<StateActionState>, callback: () => void): {
9
+ action: import("./actionHelper.js").VcsAction;
10
+ destroy: () => void;
11
+ };
12
+ export type StateActionState = number;
13
+ export namespace StateActionState {
14
+ let NONE: number;
15
+ let INACTIVE: number;
16
+ let LOADING: number;
17
+ let ACTIVE: number;
18
+ let INDETERMINATE: number;
19
+ }
@@ -24,7 +24,7 @@ const stateIconMap = {
24
24
  * @param {string} name
25
25
  * @param {import("vue").Ref<StateActionState>} stateRef
26
26
  * @param {function():void} callback
27
- * @returns {{ action: VcsAction, destroy: function():void }}
27
+ * @returns {{ action: import("./actionHelper.js").VcsAction, destroy: function():void }}
28
28
  */
29
29
  export function createStateRefAction(name, stateRef, callback) {
30
30
  check(name, String);
@@ -31,11 +31,29 @@
31
31
  <WindowManagerComponent />
32
32
  <NotifierComponent />
33
33
  </v-container>
34
- <v-footer absolute v-if="$vuetify.breakpoint.smAndUp" min-height="22px">
34
+ <v-footer
35
+ absolute
36
+ v-if="$vuetify.breakpoint.smAndUp"
37
+ min-height="22px"
38
+ class="d-flex gap-1 pa-0"
39
+ >
40
+ <VcsPositionDisplay />
41
+
42
+ <VcsTextPageFooter
43
+ v-if="imprint"
44
+ :text-page="imprint"
45
+ :window-id="'imprintWindow'"
46
+ />
47
+ <VcsTextPageFooter
48
+ v-if="dataProtection"
49
+ :text-page="dataProtection"
50
+ :window-id="'dataProtectionWindow'"
51
+ />
35
52
  <VcsAttributionsFooter
53
+ class="align-wrapper"
36
54
  :entries="attributionEntries"
37
55
  :attribution-action="attributionAction"
38
- />
56
+ ></VcsAttributionsFooter>
39
57
  </v-footer>
40
58
  </v-container>
41
59
  </template>
@@ -44,6 +62,11 @@
44
62
  ::v-deep .v-application--wrap {
45
63
  min-height: fit-content;
46
64
  }
65
+ .align-wrapper {
66
+ position: absolute;
67
+ right: 0;
68
+ margin-right: 4px !important;
69
+ }
47
70
  .vcs-main {
48
71
  position: absolute;
49
72
  top: 48px;
@@ -84,7 +107,7 @@
84
107
  ref,
85
108
  watch,
86
109
  } from 'vue';
87
- import { getVcsAppById } from '@vcmap/core';
110
+ import { getVcsAppById, moduleIdSymbol } from '@vcmap/core';
88
111
  import { VContainer, VFooter } from 'vuetify/lib';
89
112
  import { getLogger } from '@vcsuite/logger';
90
113
  import WindowManagerComponent from '../manager/window/WindowManager.vue';
@@ -106,24 +129,26 @@
106
129
  import VcsLegend from '../legend/VcsLegend.vue';
107
130
  import { getLegendEntries } from '../legend/legendHelper.js';
108
131
  import VcsAttributionsFooter from './VcsAttributionsFooter.vue';
132
+ import VcsTextPageFooter from './VcsTextPageFooter.vue';
109
133
  import VcsButton from '../components/buttons/VcsButton.vue';
110
134
  import VcsAttributions from './VcsAttributions.vue';
111
135
  import { getAttributions } from './attributionsHelper.js';
112
136
  import NotifierComponent from '../notifier/NotifierComponent.vue';
113
137
  import VcsDefaultLogoMobile from '../logo-mobile.svg';
138
+ import VcsPositionDisplay from './VcsPositionDisplay.vue';
114
139
 
115
140
  /**
116
141
  * You should call this function in the component providing the vcsUiApp to your
117
142
  * application in the components mounted hook. This will call VcsAppMounted on all plugins in the app
118
143
  * and add a listener to call. Returns a destroy hook to stop listening to the added event. If you use the VcsApp
119
144
  * component, do not call this function, since the component will do this for you.
120
- * @param {VcsUiApp} app
145
+ * @param {import("../vcsUiApp.js").default} app
121
146
  * @returns {function():void}
122
147
  */
123
148
  export function setupPluginMountedListeners(app) {
124
149
  /**
125
150
  * wrapped execution of onVcsAppMounted hook
126
- * @param {VcsPlugin} plugin
151
+ * @param {import("@src/vcsUiApp.js").VcsPlugin} plugin
127
152
  */
128
153
  function onVcsAppMounted(plugin) {
129
154
  if (plugin.onVcsAppMounted) {
@@ -146,7 +171,7 @@
146
171
  /**
147
172
  * This helper function will add a map action button based on the default icons
148
173
  * to the apps NavbarManager. Furthermore, all maps on the app are synced for adding and removing.
149
- * @param {VcsUiApp} app
174
+ * @param {import("../vcsUiApp.js").default} app
150
175
  * @returns {function():void}
151
176
  */
152
177
  export function setupMapNavbar(app) {
@@ -209,7 +234,7 @@
209
234
  /**
210
235
  * This helper function will add a legend action button to the apps NavbarManager TOOL location, if legend entries are available.
211
236
  * Watches number of legend entries.
212
- * @param {VcsUiApp} app
237
+ * @param {import("../vcsUiApp.js").default} app
213
238
  * @returns {function():void}
214
239
  */
215
240
  export function setupLegendWindow(app) {
@@ -295,7 +320,7 @@
295
320
 
296
321
  /**
297
322
  * This helper function will add a settings action button to the apps NavbarManager MENU location.
298
- * @param {VcsUiApp} app
323
+ * @param {import("../vcsUiApp.js").default} app
299
324
  * @returns {function():void}
300
325
  */
301
326
  export function setupSettingsWindow(app) {
@@ -330,7 +355,7 @@
330
355
 
331
356
  /**
332
357
  * This helper function will add a help action button referencing VC Map help page to the apps NavbarManager MENU location.
333
- * @param {VcsUiApp} app
358
+ * @param {import("../vcsUiApp.js").default} app
334
359
  */
335
360
  export function setupHelpButton(app) {
336
361
  const helpAction = createLinkAction(
@@ -354,7 +379,7 @@
354
379
  /**
355
380
  * This helper function will add a category manager button to the navbar. The category Manager
356
381
  * will only be shown if there is at least one category under management in the categoryManager.
357
- * @param {VcsUiApp} app
382
+ * @param {import("../vcsUiApp.js").default} app
358
383
  * @returns {function():void}
359
384
  */
360
385
  export function setupCategoryManagerWindow(app) {
@@ -384,30 +409,74 @@
384
409
  vcsAppSymbol,
385
410
  );
386
411
 
387
- const setupCategories = () => {
388
- if (app.categoryManager.componentIds.length > 0) {
389
- if (!app.navbarManager.has(id)) {
390
- app.navbarManager.add(
391
- { id, action: categoryManagerAction },
392
- vcsAppSymbol,
393
- ButtonLocation.CONTENT,
394
- );
395
- }
396
- } else {
412
+ const collectionListeners = new Map();
413
+
414
+ /**
415
+ * Makes sure that the category-manager button is in the navbar.
416
+ * Adds listener to the collectionComponents collection to display hasUpdate if new item is added to collection AND category-manager window is closed.
417
+ * @param {import("../manager/collectionManager/collectionComponentClass.js").default} collectionComponent
418
+ */
419
+ function handleAdded(collectionComponent) {
420
+ if (!app.navbarManager.has(id)) {
421
+ app.navbarManager.add(
422
+ { id, action: categoryManagerAction },
423
+ vcsAppSymbol,
424
+ ButtonLocation.CONTENT,
425
+ );
426
+ }
427
+ collectionListeners.set(
428
+ collectionComponent.id,
429
+ collectionComponent.collection.added.addEventListener((item) => {
430
+ if (
431
+ !app.windowManager.has(id) &&
432
+ item[moduleIdSymbol] === app.dynamicModuleId
433
+ ) {
434
+ categoryManagerAction.hasUpdate = true;
435
+ }
436
+ }),
437
+ );
438
+ }
439
+
440
+ /**
441
+ * Removes listener on collection of collectionComponent.
442
+ * Removes collection-manager button in navbar, if categoryManager has no more collectionComponents.
443
+ * @param {import("../manager/collectionManager/collectionComponentClass.js").default} collectionComponent
444
+ */
445
+ function handleRemoved(collectionComponent) {
446
+ collectionListeners.get(collectionComponent.id)?.();
447
+ collectionListeners.delete(collectionComponent.id);
448
+
449
+ if (!app.categoryManager.componentIds.length) {
397
450
  app.windowManager.remove(id);
398
451
  app.navbarManager.remove(id);
452
+ categoryManagerAction.hasUpdate = false;
399
453
  }
400
- };
454
+ }
455
+
401
456
  const addedListener =
402
- app.categoryManager.added.addEventListener(setupCategories);
457
+ app.categoryManager.added.addEventListener(handleAdded);
403
458
  const removedListener =
404
- app.categoryManager.removed.addEventListener(setupCategories);
405
- setupCategories();
459
+ app.categoryManager.removed.addEventListener(handleRemoved);
460
+
461
+ // setup existing collectionComponents
462
+ app.categoryManager.componentIds.forEach((componentId) =>
463
+ handleAdded(app.categoryManager.get(componentId)),
464
+ );
465
+
466
+ const windowListener = app.windowManager.added.addEventListener(
467
+ (windowComponent) => {
468
+ if (windowComponent.id === id) {
469
+ categoryManagerAction.hasUpdate = false;
470
+ }
471
+ },
472
+ );
406
473
 
407
474
  return () => {
408
475
  destroy();
409
476
  addedListener();
410
477
  removedListener();
478
+ collectionListeners.forEach((value) => value());
479
+ windowListener();
411
480
  };
412
481
  }
413
482
 
@@ -416,7 +485,7 @@
416
485
  * with a given vuetify instance. Use this helper, if you do not use the VcsApp component and wish to evaluate
417
486
  * the theming keys. Returns a function to stop syncing.
418
487
  * Also adds a watcher to vuetify theme, which triggers themeChanged event on the VcsUiApp.
419
- * @param {VcsUiApp} app
488
+ * @param {import("../vcsUiApp.js").default} app
420
489
  * @param {import("vuetify").Framework} vuetify
421
490
  * @returns {function():void} - call to stop syncing
422
491
  */
@@ -454,8 +523,8 @@
454
523
  /**
455
524
  * This helper gets attributions of all active maps, layers and oblique collections and returns an array of entries.
456
525
  * It also returns a attributionAction to toggle the attributions window and a destroy function.
457
- * @param {VcsUiApp} app
458
- * @returns {{attributionEntries: import("vue").Ref<Array<AttributionEntry>>, attributionAction: VcsAction, destroyAttributions: function():void}}
526
+ * @param {import("../vcsUiApp.js").default} app
527
+ * @returns {{ attributionEntries: import("vue").Ref<Array<import("./attributionsHelper.js").AttributionEntry>>, attributionAction: import("../actions/actionHelper.js").VcsAction, destroyAttributions: function():void }}
459
528
  */
460
529
  export function setupAttributions(app) {
461
530
  const { entries, destroy } = getAttributions(app);
@@ -521,7 +590,9 @@
521
590
  export default {
522
591
  components: {
523
592
  VcsButton,
593
+ VcsPositionDisplay,
524
594
  VcsAttributionsFooter,
595
+ VcsTextPageFooter,
525
596
  MapNavigation,
526
597
  VcsNavbar,
527
598
  VcsMap,
@@ -540,7 +611,7 @@
540
611
  setup(props) {
541
612
  const id = uuid();
542
613
  const mapId = `mapCollection-${id}`;
543
- /** @type {VcsUiApp} */
614
+ /** @type {import("../vcsUiApp.js").default} */
544
615
  const app = getVcsAppById(props.appId);
545
616
  provide('vcsApp', app);
546
617
 
@@ -586,6 +657,10 @@
586
657
  app.uiConfig.config.value.logo ??
587
658
  VcsDefaultLogoMobile,
588
659
  ),
660
+ imprint: computed(() => app.uiConfig.config.value.imprint),
661
+ dataProtection: computed(
662
+ () => app.uiConfig.config.value.dataProtection,
663
+ ),
589
664
  attributionEntries,
590
665
  attributionAction,
591
666
  showMapNavigation,
@@ -0,0 +1,86 @@
1
+ /**
2
+ * You should call this function in the component providing the vcsUiApp to your
3
+ * application in the components mounted hook. This will call VcsAppMounted on all plugins in the app
4
+ * and add a listener to call. Returns a destroy hook to stop listening to the added event. If you use the VcsApp
5
+ * component, do not call this function, since the component will do this for you.
6
+ * @param {import("../vcsUiApp.js").default} app
7
+ * @returns {function():void}
8
+ */
9
+ export function setupPluginMountedListeners(app: import("../vcsUiApp.js").default): () => void;
10
+ /**
11
+ * This helper function will add a map action button based on the default icons
12
+ * to the apps NavbarManager. Furthermore, all maps on the app are synced for adding and removing.
13
+ * @param {import("../vcsUiApp.js").default} app
14
+ * @returns {function():void}
15
+ */
16
+ export function setupMapNavbar(app: import("../vcsUiApp.js").default): () => void;
17
+ /**
18
+ * This helper function will add a legend action button to the apps NavbarManager TOOL location, if legend entries are available.
19
+ * Watches number of legend entries.
20
+ * @param {import("../vcsUiApp.js").default} app
21
+ * @returns {function():void}
22
+ */
23
+ export function setupLegendWindow(app: import("../vcsUiApp.js").default): () => void;
24
+ /**
25
+ * This helper function will add a settings action button to the apps NavbarManager MENU location.
26
+ * @param {import("../vcsUiApp.js").default} app
27
+ * @returns {function():void}
28
+ */
29
+ export function setupSettingsWindow(app: import("../vcsUiApp.js").default): () => void;
30
+ /**
31
+ * This helper function will add a help action button referencing VC Map help page to the apps NavbarManager MENU location.
32
+ * @param {import("../vcsUiApp.js").default} app
33
+ */
34
+ export function setupHelpButton(app: import("../vcsUiApp.js").default): void;
35
+ /**
36
+ * This helper function will add a category manager button to the navbar. The category Manager
37
+ * will only be shown if there is at least one category under management in the categoryManager.
38
+ * @param {import("../vcsUiApp.js").default} app
39
+ * @returns {function():void}
40
+ */
41
+ export function setupCategoryManagerWindow(app: import("../vcsUiApp.js").default): () => void;
42
+ /**
43
+ * This helper sets up a listener to sync the theming relevant keys from the {@see UiConfigObject}
44
+ * with a given vuetify instance. Use this helper, if you do not use the VcsApp component and wish to evaluate
45
+ * the theming keys. Returns a function to stop syncing.
46
+ * Also adds a watcher to vuetify theme, which triggers themeChanged event on the VcsUiApp.
47
+ * @param {import("../vcsUiApp.js").default} app
48
+ * @param {import("vuetify").Framework} vuetify
49
+ * @returns {function():void} - call to stop syncing
50
+ */
51
+ export function setupUiConfigTheming(app: import("../vcsUiApp.js").default, vuetify: import("vuetify").Framework): () => void;
52
+ /**
53
+ * This helper gets attributions of all active maps, layers and oblique collections and returns an array of entries.
54
+ * It also returns a attributionAction to toggle the attributions window and a destroy function.
55
+ * @param {import("../vcsUiApp.js").default} app
56
+ * @returns {{ attributionEntries: import("vue").Ref<Array<import("./attributionsHelper.js").AttributionEntry>>, attributionAction: import("../actions/actionHelper.js").VcsAction, destroyAttributions: function():void }}
57
+ */
58
+ export function setupAttributions(app: import("../vcsUiApp.js").default): {
59
+ attributionEntries: import("vue").Ref<Array<import("./attributionsHelper.js").AttributionEntry>>;
60
+ attributionAction: import("../actions/actionHelper.js").VcsAction;
61
+ destroyAttributions: () => void;
62
+ };
63
+ export function setupMapNavigation(app: any): {
64
+ showMapNavigation: import("vue").Ref<boolean>;
65
+ destroy: () => void;
66
+ };
67
+ declare const _default: import("vue").DefineComponent<{
68
+ appId: {
69
+ type: StringConstructor;
70
+ required: true;
71
+ };
72
+ }, {
73
+ mapId: string;
74
+ mobileLogo: import("vue").ComputedRef<any>;
75
+ imprint: import("vue").ComputedRef<unknown>;
76
+ dataProtection: import("vue").ComputedRef<unknown>;
77
+ attributionEntries: import("vue").Ref<import("./attributionsHelper.js").AttributionEntry[]>;
78
+ attributionAction: import("../actions/actionHelper.js").VcsAction;
79
+ showMapNavigation: import("vue").Ref<boolean>;
80
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
81
+ appId: {
82
+ type: StringConstructor;
83
+ required: true;
84
+ };
85
+ }>>, {}>;
86
+ export default _default;
@@ -0,0 +1,12 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ appId: {
3
+ type: StringConstructor;
4
+ required: true;
5
+ };
6
+ }, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
7
+ appId: {
8
+ type: StringConstructor;
9
+ required: true;
10
+ };
11
+ }>>, {}>;
12
+ export default _default;
@@ -0,0 +1,14 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ entries: {
3
+ type: ObjectConstructor;
4
+ default: () => void;
5
+ };
6
+ }, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
7
+ entries: {
8
+ type: ObjectConstructor;
9
+ default: () => void;
10
+ };
11
+ }>>, {
12
+ entries: Record<string, any>;
13
+ }>;
14
+ export default _default;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <span class="d-inline-block text-truncate mr-10 attribution-wrap">
2
+ <span class="d-inline-block text-truncate mr-10">
3
3
  <span
4
4
  v-for="attribution in mergedAttributions"
5
5
  class="attribution-span"
@@ -10,7 +10,6 @@
10
10
  </a>
11
11
  </span>
12
12
  <VcsButton
13
- class="d-flex"
14
13
  :key="attributionAction.name"
15
14
  :tooltip="attributionAction.title"
16
15
  :icon="attributionAction.icon"
@@ -23,8 +22,6 @@
23
22
 
24
23
  <style lang="scss" scoped>
25
24
  .attribution-wrap .vcs-button-wrap {
26
- position: absolute;
27
- right: 4px;
28
25
  bottom: 3px;
29
26
  }
30
27