@vcmap/ui 5.0.1 → 5.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/README.md +2 -2
  2. package/build/buildTypes.js +176 -0
  3. package/build/lintTypes.js +30 -0
  4. package/config/aerowest.config.json +4 -0
  5. package/config/base.config.json +24 -2
  6. package/config/dev.config.json +176 -5
  7. package/config/www.config.json +25 -1
  8. package/dist/assets/{cesium.888ef7.js → cesium.e9b3ca.js} +1859 -1828
  9. package/dist/assets/cesium.js +1 -1
  10. package/dist/assets/{core.860907.js → core.a9fe5a.js} +5865 -5041
  11. package/dist/assets/core.js +1 -1
  12. package/dist/assets/index-bb2549d6.js +1 -0
  13. package/dist/assets/{ol.5e8a90.js → ol.5f0496.js} +7257 -7252
  14. package/dist/assets/ol.js +1 -1
  15. package/dist/assets/{ui.7758a8.css → ui.3c73c2.css} +2 -2
  16. package/dist/assets/{ui.7758a8.js → ui.3c73c2.js} +14281 -9264
  17. package/dist/assets/ui.js +1 -1
  18. package/dist/assets/{vue.9771b3.js → vue.4fe14e.js} +1243 -1234
  19. package/dist/assets/vue.js +2 -2
  20. package/dist/assets/{vuetify.2818ff.css → vuetify.260d9a.css} +1 -1
  21. package/dist/assets/{vuetify.2818ff.js → vuetify.260d9a.js} +155 -154
  22. package/dist/assets/vuetify.js +2 -2
  23. package/dist/index.html +2 -2
  24. package/index.d.ts +256 -0
  25. package/index.html +1 -1
  26. package/index.js +48 -11
  27. package/package.json +22 -15
  28. package/plugins/@vcmap-show-case/buttons-example/src/ButtonsExample.vue +3 -0
  29. package/plugins/@vcmap-show-case/category-tester/src/CategoriesExample.vue +312 -43
  30. package/plugins/@vcmap-show-case/category-tester/src/CollectionComponentOptions.vue +48 -182
  31. package/plugins/@vcmap-show-case/category-tester/src/FoobarEditor.vue +118 -0
  32. package/plugins/@vcmap-show-case/category-tester/src/importExportHelper.js +29 -0
  33. package/plugins/@vcmap-show-case/category-tester/src/index.js +16 -0
  34. package/plugins/@vcmap-show-case/collection-manager-example/src/CollectionManagerExample.vue +2 -1
  35. package/plugins/@vcmap-show-case/collection-manager-example/src/index.js +8 -4
  36. package/plugins/@vcmap-show-case/extent-example/README.md +3 -0
  37. package/plugins/@vcmap-show-case/extent-example/package.json +5 -0
  38. package/plugins/@vcmap-show-case/extent-example/src/ExtentExample.vue +71 -0
  39. package/plugins/@vcmap-show-case/extent-example/src/index.js +68 -0
  40. package/plugins/@vcmap-show-case/flight-component-example/README.md +3 -0
  41. package/plugins/@vcmap-show-case/flight-component-example/package.json +5 -0
  42. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +53 -0
  43. package/plugins/@vcmap-show-case/flight-component-example/src/index.js +42 -0
  44. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +78 -5
  45. package/plugins/@vcmap-show-case/hello-world/src/helloWorld.vue +2 -2
  46. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +22 -10
  47. package/plugins/@vcmap-show-case/toolbox-example/README.md +9 -0
  48. package/plugins/@vcmap-show-case/toolbox-example/package.json +5 -0
  49. package/plugins/@vcmap-show-case/toolbox-example/src/TriStateExampleWindow.vue +21 -0
  50. package/plugins/@vcmap-show-case/toolbox-example/src/dummyToolboxActions.js +94 -0
  51. package/plugins/@vcmap-show-case/toolbox-example/src/index.js +260 -0
  52. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +12 -2
  53. package/plugins/@vcmap-show-case/viewpoint-component-example/README.md +3 -0
  54. package/plugins/@vcmap-show-case/viewpoint-component-example/package.json +5 -0
  55. package/plugins/@vcmap-show-case/viewpoint-component-example/src/ViewpointExample.vue +52 -0
  56. package/plugins/@vcmap-show-case/viewpoint-component-example/src/index.js +42 -0
  57. package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +31 -1
  58. package/plugins/@vcmap-show-case/window-tester/src/WindowExampleToggleChild.vue +20 -16
  59. package/plugins/@vcmap-show-case/window-tester/src/index.js +2 -17
  60. package/plugins/package.json +3 -1
  61. package/src/actions/StyleSelector.vue +8 -7
  62. package/src/actions/StyleSelector.vue.d.ts +27 -0
  63. package/src/actions/actionHelper.d.ts +153 -0
  64. package/src/actions/actionHelper.js +48 -21
  65. package/src/actions/extentActions.d.ts +40 -0
  66. package/src/actions/extentActions.js +359 -0
  67. package/src/actions/flightActions.d.ts +59 -0
  68. package/src/actions/flightActions.js +232 -0
  69. package/src/actions/listActions.d.ts +63 -0
  70. package/src/actions/listActions.js +185 -0
  71. package/src/actions/stateRefAction.d.ts +19 -0
  72. package/src/actions/stateRefAction.js +1 -1
  73. package/src/application/VcsApp.vue +103 -28
  74. package/src/application/VcsApp.vue.d.ts +86 -0
  75. package/src/application/VcsAppWrapper.vue.d.ts +12 -0
  76. package/src/application/VcsAttributions.vue.d.ts +14 -0
  77. package/src/application/VcsAttributionsFooter.vue +1 -4
  78. package/src/application/VcsAttributionsFooter.vue.d.ts +26 -0
  79. package/src/application/VcsMap.vue.d.ts +12 -0
  80. package/src/application/VcsNavbar.vue.d.ts +45 -0
  81. package/src/application/VcsPositionDisplay.vue +208 -0
  82. package/src/application/VcsPositionDisplay.vue.d.ts +18 -0
  83. package/src/application/VcsSettings.vue.d.ts +5 -0
  84. package/src/application/VcsTextPage.vue +65 -0
  85. package/src/application/VcsTextPage.vue.d.ts +16 -0
  86. package/src/application/VcsTextPageFooter.vue +89 -0
  87. package/src/application/VcsTextPageFooter.vue.d.ts +22 -0
  88. package/src/application/attributionsHelper.d.ts +64 -0
  89. package/src/application/attributionsHelper.js +1 -1
  90. package/src/application/markdownHelper.d.ts +5 -0
  91. package/src/application/markdownHelper.js +11 -0
  92. package/src/application/positionDisplayInteraction.d.ts +42 -0
  93. package/src/application/positionDisplayInteraction.js +65 -0
  94. package/src/callback/activateLayersCallback.d.ts +29 -0
  95. package/src/callback/activateLayersCallback.js +2 -2
  96. package/src/callback/applyLayerStyleCallback.d.ts +36 -0
  97. package/src/callback/applyLayerStyleCallback.js +2 -2
  98. package/src/callback/deactivateLayersCallback.d.ts +29 -0
  99. package/src/callback/deactivateLayersCallback.js +2 -2
  100. package/src/callback/goToViewpointCallback.d.ts +29 -0
  101. package/src/callback/goToViewpointCallback.js +2 -2
  102. package/src/callback/vcsCallback.d.ts +44 -0
  103. package/src/callback/vcsCallback.js +4 -9
  104. package/src/components/ImageElementInjector.vue.d.ts +24 -0
  105. package/src/components/buttons/VcsActionButtonList.vue +24 -16
  106. package/src/components/buttons/VcsActionButtonList.vue.d.ts +68 -0
  107. package/src/components/buttons/VcsButton.vue +7 -0
  108. package/src/components/buttons/VcsButton.vue.d.ts +89 -0
  109. package/src/components/buttons/VcsFormButton.vue +9 -0
  110. package/src/components/buttons/VcsFormButton.vue.d.ts +91 -0
  111. package/src/components/buttons/VcsToolButton.vue +9 -0
  112. package/src/components/buttons/VcsToolButton.vue.d.ts +91 -0
  113. package/src/components/flight/VcsFlightAnchorsComponent.vue +329 -0
  114. package/src/components/flight/VcsFlightAnchorsComponent.vue.d.ts +45 -0
  115. package/src/components/flight/VcsFlightComponent.vue +284 -0
  116. package/src/components/flight/VcsFlightComponent.vue.d.ts +104 -0
  117. package/src/components/flight/VcsFlightEditor.vue +77 -0
  118. package/src/components/flight/VcsFlightEditor.vue.d.ts +34 -0
  119. package/src/components/flight/VcsFlightPlayer.vue +124 -0
  120. package/src/components/flight/VcsFlightPlayer.vue.d.ts +25 -0
  121. package/src/components/flight/composables.d.ts +11 -0
  122. package/src/components/flight/composables.js +39 -0
  123. package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +18 -0
  124. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +82 -0
  125. package/src/components/form-inputs-controls/VcsCoordinate.vue +152 -0
  126. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +90 -0
  127. package/src/components/form-inputs-controls/VcsDatePicker.vue +2 -2
  128. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +31 -0
  129. package/src/components/form-inputs-controls/VcsExtent.vue +122 -0
  130. package/src/components/form-inputs-controls/VcsExtent.vue.d.ts +36 -0
  131. package/src/components/form-inputs-controls/VcsFormSection.vue +6 -1
  132. package/src/components/form-inputs-controls/VcsFormSection.vue.d.ts +75 -0
  133. package/src/components/form-inputs-controls/VcsLabel.vue +18 -0
  134. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +41 -0
  135. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +32 -0
  136. package/src/components/form-inputs-controls/VcsRadioGrid.vue.d.ts +35 -0
  137. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +31 -0
  138. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +2 -0
  139. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +22 -0
  140. package/src/components/form-inputs-controls/VcsTextField.vue +57 -10
  141. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +65 -0
  142. package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +14 -0
  143. package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +89 -0
  144. package/src/components/form-inputs-controls/composables.d.ts +7 -0
  145. package/src/components/form-inputs-controls/composables.js +1 -1
  146. package/src/components/form-output/VcsFormattedNumber.vue +13 -2
  147. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +89 -0
  148. package/src/components/icons/+all.d.ts +9 -0
  149. package/src/components/icons/+all.js +16 -0
  150. package/src/components/icons/2DAreaIcon.vue.d.ts +2 -0
  151. package/src/components/icons/2DDistanceIcon.vue.d.ts +2 -0
  152. package/src/components/icons/2DHeightObliqueIcon.vue +20 -0
  153. package/src/components/icons/2DHeightObliqueIcon.vue.d.ts +2 -0
  154. package/src/components/icons/3DAreaIcon.vue.d.ts +2 -0
  155. package/src/components/icons/3DDistanceIcon.vue.d.ts +2 -0
  156. package/src/components/icons/3DHeightIcon.vue.d.ts +2 -0
  157. package/src/components/icons/AngleIcon.vue.d.ts +2 -0
  158. package/src/components/icons/AssociationsIcon.vue.d.ts +2 -0
  159. package/src/components/icons/AxisIcon.vue.d.ts +2 -0
  160. package/src/components/icons/BoundingBoxIcon.vue.d.ts +2 -0
  161. package/src/components/icons/CheckboxCheckedIcon.vue.d.ts +2 -0
  162. package/src/components/icons/CheckboxIcon.vue.d.ts +2 -0
  163. package/src/components/icons/CheckboxIndeterminateIcon.vue.d.ts +2 -0
  164. package/src/components/icons/CircleIcon.vue.d.ts +2 -0
  165. package/src/components/icons/ClippingHorizontalIcon.vue.d.ts +2 -0
  166. package/src/components/icons/ClippingIcon.vue.d.ts +2 -0
  167. package/src/components/icons/ClippingVerticalIcon.vue.d.ts +2 -0
  168. package/src/components/icons/ColorPickerIcon.vue.d.ts +2 -0
  169. package/src/components/icons/ColorSwatchIcon.vue.d.ts +2 -0
  170. package/src/components/icons/CommentIcon.vue.d.ts +2 -0
  171. package/src/components/icons/CompassIcon.vue.d.ts +2 -0
  172. package/src/components/icons/ComponentsIcon.vue.d.ts +2 -0
  173. package/src/components/icons/ComponentsPlusIcon.vue +17 -0
  174. package/src/components/icons/ComponentsPlusIcon.vue.d.ts +2 -0
  175. package/src/components/icons/ConeIcon.vue.d.ts +2 -0
  176. package/src/components/icons/DimensionsHouseIcon.vue.d.ts +2 -0
  177. package/src/components/icons/EditIcon.vue.d.ts +2 -0
  178. package/src/components/icons/EditVerticesIcon.vue.d.ts +2 -0
  179. package/src/components/icons/ElevationProfileIcon.vue.d.ts +2 -0
  180. package/src/components/icons/ExportAreaIcon.vue.d.ts +2 -0
  181. package/src/components/icons/ExportFlightIcon.vue.d.ts +2 -0
  182. package/src/components/icons/ExportIcon.vue.d.ts +2 -0
  183. package/src/components/icons/ExternalLinkIcon.vue.d.ts +2 -0
  184. package/src/components/icons/EyeIcon.vue.d.ts +2 -0
  185. package/src/components/icons/FastForwardIcon.vue.d.ts +2 -0
  186. package/src/components/icons/FilterIcon.vue.d.ts +2 -0
  187. package/src/components/icons/GlobalTerrainIcon.vue.d.ts +2 -0
  188. package/src/components/icons/GlobeNatureIcon.vue.d.ts +2 -0
  189. package/src/components/icons/GroundIcon.vue.d.ts +2 -0
  190. package/src/components/icons/HealthCareIndustriesIcon.vue.d.ts +2 -0
  191. package/src/components/icons/HelpIcon.vue.d.ts +2 -0
  192. package/src/components/icons/HideIcon.vue.d.ts +2 -0
  193. package/src/components/icons/HomePointIcon.vue.d.ts +2 -0
  194. package/src/components/icons/HospitalsIcon.vue.d.ts +2 -0
  195. package/src/components/icons/HouseIcon.vue.d.ts +2 -0
  196. package/src/components/icons/ImportIcon.vue.d.ts +2 -0
  197. package/src/components/icons/InfoIcon.vue.d.ts +2 -0
  198. package/src/components/icons/KebabIcon.vue.d.ts +2 -0
  199. package/src/components/icons/LabelIcon.vue.d.ts +2 -0
  200. package/src/components/icons/LayersIcon.vue.d.ts +2 -0
  201. package/src/components/icons/LegendIcon.vue.d.ts +2 -0
  202. package/src/components/icons/LineIcon.vue.d.ts +2 -0
  203. package/src/components/icons/LinkIcon.vue.d.ts +2 -0
  204. package/src/components/icons/LogoutIcon.vue.d.ts +2 -0
  205. package/src/components/icons/MapIcon.vue.d.ts +2 -0
  206. package/src/components/icons/MenuIcon.vue.d.ts +2 -0
  207. package/src/components/icons/MinusIcon.vue.d.ts +2 -0
  208. package/src/components/icons/MultiViewIcon.vue +16 -0
  209. package/src/components/icons/MultiViewIcon.vue.d.ts +2 -0
  210. package/src/components/icons/ObjectAttributeIcon.vue.d.ts +2 -0
  211. package/src/components/icons/ObjectSelectIcon.vue.d.ts +2 -0
  212. package/src/components/icons/ObliqueViewIcon.vue.d.ts +2 -0
  213. package/src/components/icons/PdfIcon.vue.d.ts +2 -0
  214. package/src/components/icons/PedestrianIcon.vue.d.ts +2 -0
  215. package/src/components/icons/PenIcon.vue.d.ts +2 -0
  216. package/src/components/icons/PlayCircleIcon.vue.d.ts +2 -0
  217. package/src/components/icons/PlusIcon.vue.d.ts +2 -0
  218. package/src/components/icons/PoiIcon.vue.d.ts +2 -0
  219. package/src/components/icons/PointIcon.vue.d.ts +2 -0
  220. package/src/components/icons/PointMeasurementIcon.vue +36 -0
  221. package/src/components/icons/PointMeasurementIcon.vue.d.ts +2 -0
  222. package/src/components/icons/PointSelectIcon.vue.d.ts +2 -0
  223. package/src/components/icons/PresentationModeIcon.vue.d.ts +2 -0
  224. package/src/components/icons/ProgressIcon.vue.d.ts +2 -0
  225. package/src/components/icons/QueryIcon.vue.d.ts +2 -0
  226. package/src/components/icons/RectangleIcon.vue.d.ts +2 -0
  227. package/src/components/icons/ReturnIcon.vue.d.ts +2 -0
  228. package/src/components/icons/RewindIcon.vue.d.ts +2 -0
  229. package/src/components/icons/RotateLeftIcon.vue.d.ts +2 -0
  230. package/src/components/icons/RotateRightIcon.vue.d.ts +2 -0
  231. package/src/components/icons/ScreenshotIcon.vue.d.ts +2 -0
  232. package/src/components/icons/SearchIcon.vue.d.ts +2 -0
  233. package/src/components/icons/ShadowIcon.vue.d.ts +2 -0
  234. package/src/components/icons/ShapesIcon.vue.d.ts +2 -0
  235. package/src/components/icons/ShareIcon.vue.d.ts +2 -0
  236. package/src/components/icons/SimpleCircleFilledIcon.vue.d.ts +2 -0
  237. package/src/components/icons/SimpleCircleHalfFilledIcon.vue.d.ts +2 -0
  238. package/src/components/icons/SimpleCircleOutlinedIcon.vue.d.ts +2 -0
  239. package/src/components/icons/SkipNextIcon.vue.d.ts +2 -0
  240. package/src/components/icons/SkipPreviousIcon.vue.d.ts +2 -0
  241. package/src/components/icons/SplitViewIcon.vue.d.ts +2 -0
  242. package/src/components/icons/TerrainBoxIcon.vue.d.ts +2 -0
  243. package/src/components/icons/TextStyleIcon.vue.d.ts +2 -0
  244. package/src/components/icons/ThreeDimensionsIcon.vue.d.ts +2 -0
  245. package/src/components/icons/ToolsIcon.vue.d.ts +2 -0
  246. package/src/components/icons/TouchIcon.vue.d.ts +2 -0
  247. package/src/components/icons/TrashCanIcon.vue.d.ts +2 -0
  248. package/src/components/icons/TriangleIcon.vue.d.ts +2 -0
  249. package/src/components/icons/TwoDimensionsIcon.vue.d.ts +2 -0
  250. package/src/components/icons/UploadIcon.vue.d.ts +2 -0
  251. package/src/components/icons/UserProfileIcon.vue.d.ts +2 -0
  252. package/src/components/icons/UserShareIcon.vue.d.ts +2 -0
  253. package/src/components/icons/VideoRecorderIcon.vue.d.ts +2 -0
  254. package/src/components/icons/ViewpointFlightIcon.vue.d.ts +2 -0
  255. package/src/components/icons/ViewpointIcon.vue.d.ts +2 -0
  256. package/src/components/icons/Viewshed360Icon.vue.d.ts +2 -0
  257. package/src/components/icons/ViewshedConeIcon.vue.d.ts +2 -0
  258. package/src/components/icons/ViewshedIcon.vue.d.ts +2 -0
  259. package/src/components/icons/WalkingIcon.vue.d.ts +2 -0
  260. package/src/components/icons/WallIcon.vue.d.ts +2 -0
  261. package/src/components/icons/WandIcon.vue.d.ts +2 -0
  262. package/src/components/import/FileDrop.vue +69 -0
  263. package/src/components/import/FileDrop.vue.d.ts +26 -0
  264. package/src/components/import/ImportComponent.vue +78 -0
  265. package/src/components/import/ImportComponent.vue.d.ts +34 -0
  266. package/src/components/lists/VcsActionList.vue +8 -15
  267. package/src/components/lists/VcsActionList.vue.d.ts +66 -0
  268. package/src/components/lists/VcsList.vue +207 -116
  269. package/src/components/lists/VcsList.vue.d.ts +227 -0
  270. package/src/components/lists/VcsTreeview.vue +3 -1
  271. package/src/components/lists/VcsTreeview.vue.d.ts +28 -0
  272. package/src/components/lists/VcsTreeviewLeaf.vue +1 -0
  273. package/src/components/lists/VcsTreeviewLeaf.vue.d.ts +19 -0
  274. package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +41 -0
  275. package/src/components/notification/VcsBadge.vue.d.ts +14 -0
  276. package/src/components/notification/VcsHelp.vue.d.ts +22 -0
  277. package/src/components/notification/VcsTooltip.vue.d.ts +27 -0
  278. package/src/components/notification/validation.d.ts +8 -0
  279. package/src/components/notification/validation.js +3 -2
  280. package/src/components/plugins/AbstractConfigEditor.vue +25 -4
  281. package/src/components/plugins/AbstractConfigEditor.vue.d.ts +55 -0
  282. package/src/components/style/MenuWrapper.vue.d.ts +55 -0
  283. package/src/components/style/VcsFeatureStyleComponent.vue +389 -0
  284. package/src/components/style/VcsFeatureStyleComponent.vue.d.ts +31 -0
  285. package/src/components/style/VcsFillMenu.vue.d.ts +34 -0
  286. package/src/components/style/VcsFillSelector.vue.d.ts +22 -0
  287. package/src/components/style/VcsImageMenu.vue.d.ts +43 -0
  288. package/src/components/style/VcsImageSelector.vue.d.ts +128 -0
  289. package/src/components/style/VcsStrokeMenu.vue.d.ts +34 -0
  290. package/src/components/style/VcsStrokeSelector.vue.d.ts +23 -0
  291. package/src/components/style/VcsTextMenu.vue.d.ts +52 -0
  292. package/src/components/style/VcsTextSelector.vue.d.ts +58 -0
  293. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +76 -0
  294. package/src/components/style/composables.d.ts +43 -0
  295. package/src/components/style/composables.js +11 -8
  296. package/src/components/tables/VcsDataTable.vue +11 -3
  297. package/src/components/tables/VcsDataTable.vue.d.ts +142 -0
  298. package/src/components/tables/VcsTable.vue +71 -2
  299. package/src/components/tables/VcsTable.vue.d.ts +88 -0
  300. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +392 -0
  301. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +87 -0
  302. package/src/components/vector-properties/VcsFeatureTransforms.vue +217 -0
  303. package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +45 -0
  304. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +96 -52
  305. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +119 -0
  306. package/src/components/vector-properties/composables.d.ts +33 -0
  307. package/src/components/vector-properties/composables.js +21 -14
  308. package/src/components/viewpoint/VcsViewpointComponent.vue +514 -0
  309. package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +126 -0
  310. package/src/components/viewpoint/VcsViewpointEditor.vue +87 -0
  311. package/src/components/viewpoint/VcsViewpointEditor.vue.d.ts +25 -0
  312. package/src/contentTree/LayerTree.vue.d.ts +15 -0
  313. package/src/contentTree/contentTreeCollection.d.ts +113 -0
  314. package/src/contentTree/contentTreeCollection.js +10 -20
  315. package/src/contentTree/contentTreeItem.d.ts +334 -0
  316. package/src/contentTree/contentTreeItem.js +31 -17
  317. package/src/contentTree/flightContentTreeItem.d.ts +53 -0
  318. package/src/contentTree/flightContentTreeItem.js +201 -0
  319. package/src/contentTree/groupContentTreeItem.d.ts +14 -0
  320. package/src/contentTree/groupContentTreeItem.js +2 -2
  321. package/src/contentTree/layerContentTreeItem.d.ts +76 -0
  322. package/src/contentTree/layerContentTreeItem.js +7 -9
  323. package/src/contentTree/layerGroupContentTreeItem.d.ts +50 -0
  324. package/src/contentTree/layerGroupContentTreeItem.js +2 -3
  325. package/src/contentTree/nodeContentTreeItem.d.ts +10 -0
  326. package/src/contentTree/nodeContentTreeItem.js +2 -2
  327. package/src/contentTree/obliqueCollectionContentTreeItem.d.ts +46 -0
  328. package/src/contentTree/obliqueCollectionContentTreeItem.js +3 -5
  329. package/src/contentTree/subContentTreeItem.d.ts +15 -0
  330. package/src/contentTree/subContentTreeItem.js +3 -3
  331. package/src/contentTree/vcsObjectContentTreeItem.d.ts +56 -0
  332. package/src/contentTree/vcsObjectContentTreeItem.js +3 -4
  333. package/src/contentTree/viewpointContentTreeItem.d.ts +46 -0
  334. package/src/contentTree/viewpointContentTreeItem.js +3 -4
  335. package/src/downloadHelper.d.ts +27 -0
  336. package/src/featureInfo/AddressBalloonComponent.vue.d.ts +2 -0
  337. package/src/featureInfo/BalloonComponent.vue +16 -3
  338. package/src/featureInfo/BalloonComponent.vue.d.ts +61 -0
  339. package/src/featureInfo/abstractFeatureInfoView.d.ts +199 -0
  340. package/src/featureInfo/abstractFeatureInfoView.js +82 -18
  341. package/src/featureInfo/addressBalloonFeatureInfoView.d.ts +67 -0
  342. package/src/featureInfo/addressBalloonFeatureInfoView.js +9 -2
  343. package/src/featureInfo/balloonFeatureInfoView.d.ts +49 -0
  344. package/src/featureInfo/balloonFeatureInfoView.js +12 -11
  345. package/src/featureInfo/balloonHelper.d.ts +31 -0
  346. package/src/featureInfo/balloonHelper.js +6 -6
  347. package/src/featureInfo/featureInfo.d.ts +146 -0
  348. package/src/featureInfo/featureInfo.js +11 -16
  349. package/src/featureInfo/featureInfoInteraction.d.ts +21 -0
  350. package/src/featureInfo/featureInfoInteraction.js +2 -2
  351. package/src/featureInfo/iframeFeatureInfoView.d.ts +48 -0
  352. package/src/featureInfo/iframeFeatureInfoView.js +3 -5
  353. package/src/featureInfo/tableFeatureInfoView.d.ts +75 -0
  354. package/src/featureInfo/tableFeatureInfoView.js +19 -9
  355. package/src/i18n/de.d.ts +353 -0
  356. package/src/i18n/de.js +114 -2
  357. package/src/i18n/en.d.ts +352 -0
  358. package/src/i18n/en.js +113 -1
  359. package/src/i18n/i18nCollection.d.ts +82 -0
  360. package/src/i18n/i18nCollection.js +3 -3
  361. package/src/init.d.ts +58 -0
  362. package/src/init.js +3 -5
  363. package/src/legend/StyleLegendItem.vue.d.ts +25 -0
  364. package/src/legend/VcsLegend.vue.d.ts +20 -0
  365. package/src/legend/legendHelper.d.ts +172 -0
  366. package/src/legend/legendHelper.js +21 -21
  367. package/src/manager/buttonManager.d.ts +106 -0
  368. package/src/manager/buttonManager.js +8 -4
  369. package/src/manager/collectionManager/CollectionComponent.vue +38 -38
  370. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +17 -0
  371. package/src/manager/collectionManager/CollectionComponentList.vue +78 -24
  372. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +38 -0
  373. package/src/manager/collectionManager/CollectionComponentProvider.vue +3 -2
  374. package/src/manager/collectionManager/CollectionComponentProvider.vue.d.ts +12 -0
  375. package/src/manager/collectionManager/CollectionManager.vue +29 -4
  376. package/src/manager/collectionManager/CollectionManager.vue.d.ts +8 -0
  377. package/src/manager/collectionManager/categoryManager.d.ts +56 -0
  378. package/src/manager/collectionManager/categoryManager.js +21 -7
  379. package/src/manager/collectionManager/collectionComponentClass.d.ts +257 -0
  380. package/src/manager/collectionManager/{collectionComponent.js → collectionComponentClass.js} +210 -57
  381. package/src/manager/collectionManager/collectionManager.d.ts +200 -0
  382. package/src/manager/collectionManager/collectionManager.js +45 -39
  383. package/src/manager/collectionManager/editorCollectionComponentClass.d.ts +60 -0
  384. package/src/manager/collectionManager/editorCollectionComponentClass.js +295 -0
  385. package/src/manager/contextMenu/ContextMenuComponent.vue.d.ts +18 -0
  386. package/src/manager/contextMenu/contextMenuInteraction.d.ts +24 -0
  387. package/src/manager/contextMenu/contextMenuManager.d.ts +70 -0
  388. package/src/manager/contextMenu/contextMenuManager.js +5 -5
  389. package/src/manager/navbarManager.d.ts +60 -0
  390. package/src/manager/navbarManager.js +10 -6
  391. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +17 -0
  392. package/src/manager/toolbox/SelectToolboxComponent.vue +1 -0
  393. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +15 -0
  394. package/src/manager/toolbox/ToolboxManager.vue +33 -7
  395. package/src/manager/toolbox/ToolboxManager.vue.d.ts +21 -0
  396. package/src/manager/toolbox/toolboxManager.d.ts +177 -0
  397. package/src/manager/toolbox/toolboxManager.js +86 -31
  398. package/src/manager/window/WindowComponent.vue.d.ts +40 -0
  399. package/src/manager/window/WindowComponentHeader.vue +1 -1
  400. package/src/manager/window/WindowComponentHeader.vue.d.ts +36 -0
  401. package/src/manager/window/WindowManager.vue +1 -0
  402. package/src/manager/window/WindowManager.vue.d.ts +19 -0
  403. package/src/manager/window/windowHelper.d.ts +134 -0
  404. package/src/manager/window/windowHelper.js +20 -20
  405. package/src/manager/window/windowManager.d.ts +422 -0
  406. package/src/manager/window/windowManager.js +95 -40
  407. package/src/navigation/MapNavCompass.vue.d.ts +25 -0
  408. package/src/navigation/MapNavigation.vue +2 -2
  409. package/src/navigation/MapNavigation.vue.d.ts +46 -0
  410. package/src/navigation/ObliqueRotation.vue +8 -4
  411. package/src/navigation/ObliqueRotation.vue.d.ts +14 -0
  412. package/src/navigation/OrientationToolsButton.vue.d.ts +30 -0
  413. package/src/navigation/TiltSlider.vue.d.ts +19 -0
  414. package/src/navigation/VcsCompass.vue.d.ts +25 -0
  415. package/src/navigation/VcsZoomButton.vue +6 -3
  416. package/src/navigation/VcsZoomButton.vue.d.ts +2 -0
  417. package/src/navigation/overviewMap.d.ts +199 -0
  418. package/src/navigation/overviewMap.js +3 -7
  419. package/src/navigation/overviewMapClickedInteraction.d.ts +21 -0
  420. package/src/notifier/NotifierComponent.vue.d.ts +10 -0
  421. package/src/notifier/notifier.d.ts +53 -0
  422. package/src/notifier/notifier.js +0 -1
  423. package/src/pluginHelper.d.ts +67 -0
  424. package/src/pluginHelper.js +11 -9
  425. package/src/search/ResultItem.vue.d.ts +25 -0
  426. package/src/search/ResultsComponent.vue +1 -1
  427. package/src/search/ResultsComponent.vue.d.ts +24 -0
  428. package/src/search/SearchComponent.vue +1 -1
  429. package/src/search/SearchComponent.vue.d.ts +10 -0
  430. package/src/search/search.d.ts +129 -0
  431. package/src/search/search.js +8 -11
  432. package/src/setup.d.ts +1 -0
  433. package/src/state.d.ts +57 -0
  434. package/src/state.js +7 -5
  435. package/src/uiConfig.d.ts +99 -0
  436. package/src/uiConfig.js +17 -7
  437. package/src/vcsUiApp.d.ts +301 -0
  438. package/src/vcsUiApp.js +57 -53
  439. package/src/vuePlugins/i18n.d.ts +10 -0
  440. package/src/vuePlugins/i18n.js +3 -3
  441. package/src/vuePlugins/vuetify.d.ts +27 -0
  442. package/tsconfig.json +36 -0
  443. package/dist/assets/index-f265c560.js +0 -1
  444. package/plugins/@vcmap-show-case/window-tester/src/toolboxData.js +0 -288
@@ -1,6 +1,8 @@
1
1
  <template>
2
2
  <v-container>
3
- <VcsFormButton @click="toggle">toggle child</VcsFormButton>
3
+ <VcsFormButton v-for="num in [1, 2]" :key="num" @click.stop="toggle(num)"
4
+ >toggle child {{ num }}</VcsFormButton
5
+ >
4
6
  </v-container>
5
7
  </template>
6
8
 
@@ -19,24 +21,26 @@
19
21
  const app = inject('vcsApp');
20
22
  const parentId = attrs['window-state'].id;
21
23
  const childId = `dynamicChild-${parentId}`;
22
- const childComponent = {
23
- id: childId,
24
- parentId,
25
- state: {
26
- headerTitle: 'Example dynamicChild',
27
- headerIcon: 'mdi-human-child',
28
- },
29
- component: WindowExampleContent,
30
- slot: WindowSlot.DYNAMIC_CHILD,
31
- };
32
24
 
33
25
  return {
34
- toggle(e) {
35
- if (app.windowManager.has(childId)) {
36
- app.windowManager.remove(childId);
26
+ toggle(num) {
27
+ const id = `${childId}-${num}`;
28
+ if (app.windowManager.has(id)) {
29
+ app.windowManager.remove(id);
37
30
  } else {
38
- e.stopPropagation();
39
- app.windowManager.add(childComponent, owner);
31
+ app.windowManager.add(
32
+ {
33
+ id,
34
+ parentId,
35
+ state: {
36
+ headerTitle: `Example dynamicChild ${num}`,
37
+ headerIcon: 'mdi-human-child',
38
+ },
39
+ component: WindowExampleContent,
40
+ slot: WindowSlot.DYNAMIC_CHILD,
41
+ },
42
+ owner,
43
+ );
40
44
  }
41
45
  },
42
46
  };
@@ -1,6 +1,5 @@
1
- import { ButtonLocation, createToggleAction, ToolboxType } from '@vcmap/ui';
1
+ import { ButtonLocation, createToggleAction } from '@vcmap/ui';
2
2
  import packageJSON from '../package.json';
3
- import { getToolboxData } from './toolboxData.js';
4
3
  import windowExample from './WindowExample.vue';
5
4
 
6
5
  /**
@@ -42,21 +41,7 @@ export default async function windowTester() {
42
41
  packageJSON.name,
43
42
  ButtonLocation.TOOL,
44
43
  );
45
- const { toolboxData, destroy: destroyToolboxData } = getToolboxData(app);
46
- toolboxData.forEach(
47
- ([{ buttonComponents, ...toolboxComponentOptions }, owner]) => {
48
- let group;
49
- if (app.toolboxManager.has(toolboxComponentOptions.id)) {
50
- group = app.toolboxManager.get(toolboxComponentOptions.id);
51
- } else {
52
- group = app.toolboxManager.add(toolboxComponentOptions, owner);
53
- }
54
- if (group.type === ToolboxType.GROUP && buttonComponents) {
55
- buttonComponents.forEach((c) => group.buttonManager.add(c, owner));
56
- }
57
- },
58
- );
59
- this._destroyAction = [destroy, destroyToolboxData];
44
+ this._destroyAction = [destroy];
60
45
  },
61
46
  i18n: {
62
47
  de: {
@@ -6,7 +6,9 @@
6
6
  "@vcmap/shadow": "^1.0.1",
7
7
  "@vcmap/draw": "^1.0.0",
8
8
  "@vcmap/create-link": "^1.0.1",
9
- "@vcmap/search-nominatim": "^1.0.1"
9
+ "@vcmap/search-nominatim": "^1.0.1",
10
+ "@vcmap/multi-view": "^1.0.1",
11
+ "@vcmap/cesium-filters": "^1.0.1"
10
12
  },
11
13
  "optionalDependencies": {}
12
14
  }
@@ -70,7 +70,7 @@
70
70
  },
71
71
  },
72
72
  setup(props, { attrs }) {
73
- /** @type {VcsUiApp} */
73
+ /** @type {import("@src/vcsUiApp.js").default} */
74
74
  const app = inject('vcsApp');
75
75
  /** @type {import("@vcmap/core").FeatureLayer} */
76
76
  const layer = app.layers.getByKey(props.layerName);
@@ -99,7 +99,7 @@
99
99
  text: app.styles.getByKey(name)?.properties?.title || name,
100
100
  value: name,
101
101
  }));
102
- if (props.availableStyles.indexOf(defaultStyle) < 0) {
102
+ if (defaultStyle && props.availableStyles.indexOf(defaultStyle) < 0) {
103
103
  return [
104
104
  {
105
105
  text: 'Default',
@@ -108,11 +108,12 @@
108
108
  ...styles,
109
109
  ];
110
110
  }
111
- const firstStyle = styles.find(({ value }) => value === defaultStyle);
112
- return [
113
- firstStyle,
114
- ...styles.filter(({ value }) => value !== defaultStyle),
115
- ];
111
+ return styles.sort((a) => {
112
+ if (a === defaultStyle) {
113
+ return -1;
114
+ }
115
+ return 0;
116
+ });
116
117
  });
117
118
 
118
119
  function select(styleName) {
@@ -0,0 +1,27 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ availableStyles: {
3
+ type: ArrayConstructor;
4
+ default: () => never[];
5
+ };
6
+ layerName: {
7
+ type: StringConstructor;
8
+ required: true;
9
+ };
10
+ }, {
11
+ currentStyleName: import("vue").Ref<string>;
12
+ currentStyleLegend: import("vue").Ref<never[]>;
13
+ items: import("vue").ComputedRef<any>;
14
+ select: (styleName: any) => void;
15
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
16
+ availableStyles: {
17
+ type: ArrayConstructor;
18
+ default: () => never[];
19
+ };
20
+ layerName: {
21
+ type: StringConstructor;
22
+ required: true;
23
+ };
24
+ }>>, {
25
+ availableStyles: unknown[];
26
+ }>;
27
+ export default _default;
@@ -0,0 +1,153 @@
1
+ /**
2
+ * @typedef {Object} ActionOptions
3
+ * @property {string} name
4
+ * @property {string} [title]
5
+ * @property {string} [icon]
6
+ */
7
+ /**
8
+ * @typedef {function(PointerEvent): void | Promise<void>} ActionCallback
9
+ */
10
+ /**
11
+ * @typedef {Object} VcsAction
12
+ * @property {string} name - reactive and translatable name rendered in overflow
13
+ * @property {string} [title] - reactive and translatable title rendered as tooltip
14
+ * @property {string} [icon] - icon rendered on the button. If no icon provided, item is rendered in overflow
15
+ * @property {ActionCallback} callback - callback function is triggered when the button is clicked
16
+ * @property {boolean} [active=false] - optional state of button. If active, button is rendered in primary color
17
+ * @property {boolean} [hasUpdate=false] - optional hasUpdate of button. If true, a yellow notification is rendered next to the button
18
+ * @property {boolean} [background=false] - optional background state. If active and background, button is rendered in primary color outlined
19
+ * @property {boolean} [disabled=false] - optional flag to indicate that the action is disabled
20
+ */
21
+ /**
22
+ * merges action options with defaults
23
+ * @param {VcsAction|ActionOptions & { callback: ActionCallback}} options
24
+ * @returns {VcsAction}
25
+ */
26
+ export function getActionFromOptions(options: VcsAction | (ActionOptions & {
27
+ callback: ActionCallback;
28
+ })): VcsAction;
29
+ /**
30
+ * @param {ActionOptions} actionOptions
31
+ * @param {string} mapName
32
+ * @param {import("@vcmap/core").OverrideCollection<import("@vcmap/core").VcsMap, import("@vcmap/core").MapCollection>} maps
33
+ * @returns {{action: VcsAction, destroy: () => void}}
34
+ */
35
+ export function createMapButtonAction(actionOptions: ActionOptions, mapName: string, maps: import("@vcmap/core").OverrideCollection<import("@vcmap/core").VcsMap, import("@vcmap/core").MapCollection>): {
36
+ action: VcsAction;
37
+ destroy: () => void;
38
+ };
39
+ /**
40
+ * Creates an action which will toggle the given window component (opening & closing the window). The window component must have an id set.
41
+ * @param {ActionOptions} actionOptions
42
+ * @param {import("../manager/window/windowManager.js").WindowComponentOptions} windowComponent
43
+ * @param {import("../manager/window/windowManager.js").default} windowManager
44
+ * @param {string|symbol} owner
45
+ * @returns {{action: VcsAction, destroy: function(): void}}
46
+ */
47
+ export function createToggleAction(actionOptions: ActionOptions, windowComponent: import("../manager/window/windowManager.js").WindowComponentOptions, windowManager: import("../manager/window/windowManager.js").default, owner: string | symbol): {
48
+ action: VcsAction;
49
+ destroy: () => void;
50
+ };
51
+ /**
52
+ * Creates a toggle button for the search tool, which is only available, if at least one search implementation is registered.
53
+ * @param {import("../vcsUiApp.js").default} app
54
+ * @returns {{ searchAction: import("vue").Ref<import("vue").UnwrapRef<VcsAction>|null>, destroy: function():void }}
55
+ */
56
+ export function createSearchButtonAction(app: import("../vcsUiApp.js").default): {
57
+ searchAction: import("vue").Ref<import("vue").UnwrapRef<VcsAction> | null>;
58
+ destroy: () => void;
59
+ };
60
+ /**
61
+ * Creates an action which will toggle the overview map (opening & closing the window and activating/ deactivating the overview map).
62
+ * @param {import("../navigation/overviewMap.js").default} overviewMap
63
+ * @param {import("../manager/window/windowManager.js").WindowComponentOptions} windowComponent
64
+ * @param {import("../manager/window/windowManager.js").default} windowManager
65
+ * @returns {{action: VcsAction, destroy: function(): void}}
66
+ */
67
+ export function createOverviewMapAction(overviewMap: import("../navigation/overviewMap.js").default, windowComponent: import("../manager/window/windowManager.js").WindowComponentOptions, windowManager: import("../manager/window/windowManager.js").default): {
68
+ action: VcsAction;
69
+ destroy: () => void;
70
+ };
71
+ /**
72
+ * Creates a header less window which will close if anything outside of the window is clicked. The window will open
73
+ * at the clicked position (the actions position) by default, unless the window component already has a position set.
74
+ * @param {ActionOptions} actionOptions
75
+ * @param {import("../manager/window/windowManager.js").WindowComponentOptions} modalComponent
76
+ * @param {import("../vcsUiApp.js").default} app
77
+ * @param {string|symbol} owner
78
+ * @returns {{action: VcsAction, destroy: function(): void}}
79
+ */
80
+ export function createModalAction(actionOptions: ActionOptions, modalComponent: import("../manager/window/windowManager.js").WindowComponentOptions, app: import("../vcsUiApp.js").default, owner: string | symbol): {
81
+ action: VcsAction;
82
+ destroy: () => void;
83
+ };
84
+ /**
85
+ * Creates an action which opens a given link in a new tab
86
+ * @param {ActionOptions} actionOptions
87
+ * @param {string|function():string} url
88
+ * @returns {VcsAction}
89
+ */
90
+ export function createLinkAction(actionOptions: ActionOptions, url: string | (() => string)): VcsAction;
91
+ /**
92
+ * @param {ActionOptions} actionOptions
93
+ * @param {string|import("@vcmap/core").Viewpoint} viewpoint
94
+ * @param {import("@vcmap/core").Collection<import("@vcmap/core").Viewpoint>} viewpointCollection
95
+ * @param {import("@vcmap/core").MapCollection} mapCollection
96
+ * @returns {VcsAction}
97
+ */
98
+ export function createGoToViewpointAction(actionOptions: ActionOptions, viewpoint: string | import("@vcmap/core").Viewpoint, viewpointCollection: import("@vcmap/core").Collection<import("@vcmap/core").Viewpoint>, mapCollection: import("@vcmap/core").MapCollection): VcsAction;
99
+ /**
100
+ * calculates and returns a viewpoint using feature's extent
101
+ * @param {import("ol").Feature} feature
102
+ * @returns {Viewpoint|null}
103
+ */
104
+ export function getViewpointFromFeature(feature: import("ol").Feature): Viewpoint | null;
105
+ /**
106
+ * Creates an action, which when clicked, zooms to the provided feature
107
+ * @param {ActionOptions} actionOptions
108
+ * @param {import("ol").Feature} feature
109
+ * @param {import("@vcmap/core").MapCollection} mapCollection
110
+ * @returns {VcsAction|null} returns null if the feature does not have a geometry with a valid extent
111
+ */
112
+ export function createZoomToFeatureAction(actionOptions: ActionOptions, feature: import("ol").Feature, mapCollection: import("@vcmap/core").MapCollection): VcsAction | null;
113
+ export type ActionOptions = {
114
+ name: string;
115
+ title?: string | undefined;
116
+ icon?: string | undefined;
117
+ };
118
+ export type ActionCallback = (arg0: PointerEvent) => void | Promise<void>;
119
+ export type VcsAction = {
120
+ /**
121
+ * - reactive and translatable name rendered in overflow
122
+ */
123
+ name: string;
124
+ /**
125
+ * - reactive and translatable title rendered as tooltip
126
+ */
127
+ title?: string | undefined;
128
+ /**
129
+ * - icon rendered on the button. If no icon provided, item is rendered in overflow
130
+ */
131
+ icon?: string | undefined;
132
+ /**
133
+ * - callback function is triggered when the button is clicked
134
+ */
135
+ callback: ActionCallback;
136
+ /**
137
+ * - optional state of button. If active, button is rendered in primary color
138
+ */
139
+ active?: boolean | undefined;
140
+ /**
141
+ * - optional hasUpdate of button. If true, a yellow notification is rendered next to the button
142
+ */
143
+ hasUpdate?: boolean | undefined;
144
+ /**
145
+ * - optional background state. If active and background, button is rendered in primary color outlined
146
+ */
147
+ background?: boolean | undefined;
148
+ /**
149
+ * - optional flag to indicate that the action is disabled
150
+ */
151
+ disabled?: boolean | undefined;
152
+ };
153
+ import { Viewpoint } from '@vcmap/core';
@@ -12,7 +12,10 @@ import { reactive, ref } from 'vue';
12
12
  import { parseBoolean } from '@vcsuite/parsers';
13
13
  import { vcsAppSymbol } from '../pluginHelper.js';
14
14
  import { WindowSlot } from '../manager/window/windowManager.js';
15
- import { getWindowPositionOptions } from '../manager/window/windowHelper.js';
15
+ import {
16
+ getFittedWindowPositionOptionsFromMapEvent,
17
+ getTargetSize,
18
+ } from '../manager/window/windowHelper.js';
16
19
  import SearchComponent from '../search/SearchComponent.vue';
17
20
 
18
21
  /**
@@ -22,9 +25,25 @@ import SearchComponent from '../search/SearchComponent.vue';
22
25
  * @property {string} [icon]
23
26
  */
24
27
 
28
+ /**
29
+ * @typedef {function(PointerEvent): void | Promise<void>} ActionCallback
30
+ */
31
+
32
+ /**
33
+ * @typedef {Object} VcsAction
34
+ * @property {string} name - reactive and translatable name rendered in overflow
35
+ * @property {string} [title] - reactive and translatable title rendered as tooltip
36
+ * @property {string} [icon] - icon rendered on the button. If no icon provided, item is rendered in overflow
37
+ * @property {ActionCallback} callback - callback function is triggered when the button is clicked
38
+ * @property {boolean} [active=false] - optional state of button. If active, button is rendered in primary color
39
+ * @property {boolean} [hasUpdate=false] - optional hasUpdate of button. If true, a yellow notification is rendered next to the button
40
+ * @property {boolean} [background=false] - optional background state. If active and background, button is rendered in primary color outlined
41
+ * @property {boolean} [disabled=false] - optional flag to indicate that the action is disabled
42
+ */
43
+
25
44
  /**
26
45
  * merges action options with defaults
27
- * @param {VcsAction|ActionOptions & { callback: Function}} options
46
+ * @param {VcsAction|ActionOptions & { callback: ActionCallback}} options
28
47
  * @returns {VcsAction}
29
48
  */
30
49
  export function getActionFromOptions(options) {
@@ -42,8 +61,8 @@ export function getActionFromOptions(options) {
42
61
  /**
43
62
  * @param {ActionOptions} actionOptions
44
63
  * @param {string} mapName
45
- * @param {import("@vcmap/core").OverrideMapCollection} maps
46
- * @returns {{action: VcsAction, destroy: Function}}
64
+ * @param {import("@vcmap/core").OverrideCollection<import("@vcmap/core").VcsMap, import("@vcmap/core").MapCollection>} maps
65
+ * @returns {{action: VcsAction, destroy: () => void}}
47
66
  */
48
67
  export function createMapButtonAction(actionOptions, mapName, maps) {
49
68
  check(actionOptions, {
@@ -72,10 +91,10 @@ export function createMapButtonAction(actionOptions, mapName, maps) {
72
91
  /**
73
92
  * Creates an action which will toggle the given window component (opening & closing the window). The window component must have an id set.
74
93
  * @param {ActionOptions} actionOptions
75
- * @param {WindowComponentOptions} windowComponent
76
- * @param {WindowManager} windowManager
94
+ * @param {import("../manager/window/windowManager.js").WindowComponentOptions} windowComponent
95
+ * @param {import("../manager/window/windowManager.js").default} windowManager
77
96
  * @param {string|symbol} owner
78
- * @returns {{action: VcsAction, destroy: Function}}
97
+ * @returns {{action: VcsAction, destroy: function(): void}}
79
98
  */
80
99
  export function createToggleAction(
81
100
  actionOptions,
@@ -128,7 +147,7 @@ export function createToggleAction(
128
147
 
129
148
  /**
130
149
  * Creates a toggle button for the search tool, which is only available, if at least one search implementation is registered.
131
- * @param {VcsUiApp} app
150
+ * @param {import("../vcsUiApp.js").default} app
132
151
  * @returns {{ searchAction: import("vue").Ref<import("vue").UnwrapRef<VcsAction>|null>, destroy: function():void }}
133
152
  */
134
153
  export function createSearchButtonAction(app) {
@@ -182,10 +201,10 @@ export function createSearchButtonAction(app) {
182
201
 
183
202
  /**
184
203
  * Creates an action which will toggle the overview map (opening & closing the window and activating/ deactivating the overview map).
185
- * @param {OverviewMap} overviewMap
186
- * @param {WindowComponentOptions} windowComponent
187
- * @param {WindowManager} windowManager
188
- * @returns {(function(): void)|*}
204
+ * @param {import("../navigation/overviewMap.js").default} overviewMap
205
+ * @param {import("../manager/window/windowManager.js").WindowComponentOptions} windowComponent
206
+ * @param {import("../manager/window/windowManager.js").default} windowManager
207
+ * @returns {{action: VcsAction, destroy: function(): void}}
189
208
  */
190
209
  export function createOverviewMapAction(
191
210
  overviewMap,
@@ -229,10 +248,10 @@ export function createOverviewMapAction(
229
248
  * Creates a header less window which will close if anything outside of the window is clicked. The window will open
230
249
  * at the clicked position (the actions position) by default, unless the window component already has a position set.
231
250
  * @param {ActionOptions} actionOptions
232
- * @param {WindowComponentOptions} modalComponent
233
- * @param {VcsUiApp} app
251
+ * @param {import("../manager/window/windowManager.js").WindowComponentOptions} modalComponent
252
+ * @param {import("../vcsUiApp.js").default} app
234
253
  * @param {string|symbol} owner
235
- * @returns {{action: VcsAction, destroy: Function}}
254
+ * @returns {{action: VcsAction, destroy: function(): void}}
236
255
  */
237
256
  export function createModalAction(actionOptions, modalComponent, app, owner) {
238
257
  check(actionOptions, {
@@ -268,9 +287,16 @@ export function createModalAction(actionOptions, modalComponent, app, owner) {
268
287
  event.currentTarget.getBoundingClientRect();
269
288
  modalActivator = event.currentTarget;
270
289
  const position = {
271
- ...getWindowPositionOptions(left + width, top, app.maps.target),
290
+ ...getFittedWindowPositionOptionsFromMapEvent(
291
+ { x: left + width, y: top - getTargetSize(app.maps.target).top },
292
+ windowPositionOptions?.width || 320,
293
+ windowPositionOptions?.height || 0,
294
+ app.maps.target,
295
+ ),
272
296
  ...windowPositionOptions,
273
297
  };
298
+ position.maxWidth = 320;
299
+ position.width = windowPositionOptions?.width || -1; // unset width magic. dont touch.
274
300
  const state = { ...modalComponent?.state, hideHeader: true };
275
301
  app.windowManager.add({ position, ...component, id, state }, owner);
276
302
  document.addEventListener('mousedown', handleMouseDown);
@@ -367,7 +393,7 @@ export function createGoToViewpointAction(
367
393
 
368
394
  /**
369
395
  * calculates and returns a viewpoint using feature's extent
370
- * @param {import("ol").Feature<import("ol/geom/Geometry").default>} feature
396
+ * @param {import("ol").Feature} feature
371
397
  * @returns {Viewpoint|null}
372
398
  */
373
399
  export function getViewpointFromFeature(feature) {
@@ -385,7 +411,7 @@ export function getViewpointFromFeature(feature) {
385
411
  /**
386
412
  * Creates an action, which when clicked, zooms to the provided feature
387
413
  * @param {ActionOptions} actionOptions
388
- * @param {import("ol").Feature<import("ol/geom/Geometry").default>} feature
414
+ * @param {import("ol").Feature} feature
389
415
  * @param {import("@vcmap/core").MapCollection} mapCollection
390
416
  * @returns {VcsAction|null} returns null if the feature does not have a geometry with a valid extent
391
417
  */
@@ -402,13 +428,14 @@ export function createZoomToFeatureAction(
402
428
  check(feature, Feature);
403
429
  check(mapCollection, MapCollection);
404
430
 
405
- const viewpoint = getViewpointFromFeature(feature);
406
-
407
431
  return {
408
432
  title: 'search.zoomToFeatureAction',
409
433
  ...actionOptions,
410
434
  async callback() {
411
- await mapCollection.activeMap.gotoViewpoint(viewpoint);
435
+ const viewpoint = getViewpointFromFeature(feature);
436
+ if (viewpoint && viewpoint.isValid()) {
437
+ await mapCollection.activeMap.gotoViewpoint(viewpoint);
438
+ }
412
439
  },
413
440
  };
414
441
  }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @param {import("@src/vcsUiApp.js").default} app
3
+ * @param {import("vue").ComputedRef<import("@vcmap/core").Extent>|import("vue").Ref<import("@vcmap/core").Extent>} extent
4
+ * @returns {import("./actionHelper.js").VcsAction}
5
+ */
6
+ export function createZoomToExtentAction(app: import("@src/vcsUiApp.js").default, extent: import("vue").ComputedRef<import("@vcmap/core").Extent> | import("vue").Ref<import("@vcmap/core").Extent>): import("./actionHelper.js").VcsAction;
7
+ /**
8
+ * @param {import("@vcmap/core").Layer} layer
9
+ * @param {boolean} disabled
10
+ * @returns {{action: import("./actionHelper.js").VcsAction, destroy: (function(): void)}}
11
+ */
12
+ export function createLayerToggleAction(layer: import("@vcmap/core").Layer, disabled: boolean): {
13
+ action: import("./actionHelper.js").VcsAction;
14
+ destroy: (() => void);
15
+ };
16
+ /**
17
+ *
18
+ * @param {import("@src/vcsUiApp.js").default} app
19
+ * @param {import("@vcmap/core").VectorLayer} layer
20
+ * @param {import("vue").ComputedRef<import("@vcmap/core").Extent>|import("vue").Ref<import("@vcmap/core").Extent>} extent
21
+ * @param {string} featureId
22
+ * @param {boolean} disabled
23
+ * @returns {{ action: import("./actionHelper.js").VcsAction, destroy:()=>void}}
24
+ */
25
+ export function createExtentFeatureAction(app: import("@src/vcsUiApp.js").default, layer: import("@vcmap/core").VectorLayer, extent: import("vue").ComputedRef<import("@vcmap/core").Extent> | import("vue").Ref<import("@vcmap/core").Extent>, featureId: string, disabled: boolean): {
26
+ action: import("./actionHelper.js").VcsAction;
27
+ destroy: () => void;
28
+ };
29
+ /**
30
+ * @param {import("@src/vcsUiApp.js").default} app
31
+ * @param {import("vue").ComputedRef<import("@vcmap/core").Extent>|import("vue").Ref<import("@vcmap/core").Extent>|import("vue").WritableComputedRef<import("@vcmap/core").Extent>} extent
32
+ * @param {boolean} disabled
33
+ * @returns {{ actions: Array<import("./actionHelper.js").VcsAction>, destroy: () => void, layer: import("@vcmap/core").VectorLayer, featureId: string }}
34
+ */
35
+ export function setupExtentComponentActions(app: import("@src/vcsUiApp.js").default, extent: import("vue").ComputedRef<import("@vcmap/core").Extent> | import("vue").Ref<import("@vcmap/core").Extent> | import("vue").WritableComputedRef<import("@vcmap/core").Extent>, disabled: boolean): {
36
+ actions: Array<import("./actionHelper.js").VcsAction>;
37
+ destroy: () => void;
38
+ layer: import("@vcmap/core").VectorLayer;
39
+ featureId: string;
40
+ };