@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
@@ -32,6 +32,7 @@ export const pluginBaseUrlSymbol = Symbol('pluginBaseUrl');
32
32
  * @type {symbol}
33
33
  */
34
34
  export const pluginModuleUrlSymbol = Symbol('pluginModuleUrl');
35
+
35
36
  /**
36
37
  * A symbol added to each plugin which describes the configured version range
37
38
  * @type {symbol}
@@ -43,7 +44,7 @@ export const pluginVersionRangeSymbol = Symbol('pluginVersionRange');
43
44
  * shipping your plugin with a "plugin-asset/icon.png", you can always retrieve said icon with getPluginAssetUrl(app, name, 'pluing-assets/icon.png')
44
45
  * Sets the plugin version as searchParam.
45
46
  * Returns null, if the plugin does not exist.
46
- * @param {VcsUiApp} app
47
+ * @param {import("@src/vcsUiApp.js").default} app
47
48
  * @param {string} pluginName
48
49
  * @param {string} asset
49
50
  * @returns {string|null}
@@ -83,8 +84,10 @@ export function isValidPackageName(name) {
83
84
 
84
85
  /**
85
86
  * @param {string} name
86
- * @param {PluginConfig} config
87
- * @returns {Promise<VcsPlugin|null>}
87
+ * @param {T} config
88
+ * @returns {Promise<import("@src/vcsUiApp.js").VcsPlugin<T, S>|null>}
89
+ * @template {Object} T
90
+ * @template {Object} S
88
91
  */
89
92
  export async function loadPlugin(name, config) {
90
93
  let module = config.entry;
@@ -97,7 +100,7 @@ export async function loadPlugin(name, config) {
97
100
  } else if (module === '_dev') {
98
101
  module = `/${name}.js`;
99
102
  } else if (module === 'http://localhost/_test') {
100
- // early escape to bypass module loading for testing, see VcsUiApp.spec.js
103
+ // early escape to bypass module loading for testing, see import("@src/vcsUiApp.js").default.spec.js
101
104
  return null;
102
105
  }
103
106
  if (config.version) {
@@ -193,7 +196,7 @@ export function getPluginEntry(base, pluginUrl) {
193
196
  }
194
197
 
195
198
  /**
196
- * @param {VcsPlugin} plugin
199
+ * @param {import("@src/vcsUiApp.js").VcsPlugin<Object, Object>} plugin
197
200
  * @returns {Object}
198
201
  */
199
202
  export function serializePlugin(plugin) {
@@ -215,13 +218,12 @@ export function serializePlugin(plugin) {
215
218
 
216
219
  /**
217
220
  * @param {Object} serializedPlugin
218
- * @returns {Promise<VcsPlugin|null>}
221
+ * @returns {Promise<import("@src/vcsUiApp.js").VcsPlugin<Object, Object>|null>}
219
222
  */
220
223
  export async function deserializePlugin(serializedPlugin) {
221
224
  if (serializedPlugin[pluginFactorySymbol]) {
222
- const reincarnation = await serializedPlugin[pluginFactorySymbol](
223
- serializedPlugin,
224
- );
225
+ const reincarnation =
226
+ await serializedPlugin[pluginFactorySymbol](serializedPlugin);
225
227
  reincarnation[pluginFactorySymbol] = serializedPlugin[pluginFactorySymbol];
226
228
  reincarnation[pluginBaseUrlSymbol] = serializedPlugin[pluginBaseUrlSymbol];
227
229
  reincarnation[pluginModuleUrlSymbol] =
@@ -0,0 +1,25 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ query: {
3
+ type: StringConstructor;
4
+ default: string;
5
+ };
6
+ item: {
7
+ type: ObjectConstructor;
8
+ required: true;
9
+ };
10
+ }, {
11
+ hasActions: import("vue").ComputedRef<boolean>;
12
+ marked: import("vue").ComputedRef<string>;
13
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
14
+ query: {
15
+ type: StringConstructor;
16
+ default: string;
17
+ };
18
+ item: {
19
+ type: ObjectConstructor;
20
+ required: true;
21
+ };
22
+ }>>, {
23
+ query: string;
24
+ }>;
25
+ export default _default;
@@ -54,7 +54,7 @@
54
54
  },
55
55
  setup(props) {
56
56
  const highlightedRef = ref(-1);
57
- /** @type {VcsUiApp} */
57
+ /** @type {import("@src/vcsUiApp.js").default} */
58
58
  const app = inject('vcsApp');
59
59
  const selectedListener = app.featureInfo.featureChanged.addEventListener(
60
60
  (feature) => {
@@ -0,0 +1,24 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ query: {
3
+ type: StringConstructor;
4
+ default: string;
5
+ };
6
+ results: {
7
+ type: ArrayConstructor;
8
+ required: true;
9
+ };
10
+ }, {
11
+ highlighted: import("vue").WritableComputedRef<number>;
12
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
13
+ query: {
14
+ type: StringConstructor;
15
+ default: string;
16
+ };
17
+ results: {
18
+ type: ArrayConstructor;
19
+ required: true;
20
+ };
21
+ }>>, {
22
+ query: string;
23
+ }>;
24
+ export default _default;
@@ -65,7 +65,7 @@
65
65
  VDivider,
66
66
  },
67
67
  setup() {
68
- /** @type {VcsUiApp} */
68
+ /** @type {import("@src/vcsUiApp.js").default} */
69
69
  const app = inject('vcsApp');
70
70
  const searching = ref(false);
71
71
  const query = ref(null);
@@ -0,0 +1,10 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {
2
+ query: import("vue").Ref<null>;
3
+ searching: import("vue").Ref<boolean>;
4
+ results: import("vue").Ref<import("./search.js").ResultItem[]>;
5
+ reset: () => void;
6
+ clear: () => void;
7
+ search: () => Promise<void>;
8
+ zoomToAll: () => void;
9
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
10
+ export default _default;
@@ -0,0 +1,129 @@
1
+ export default Search;
2
+ /**
3
+ * A readonly rendering interface of a ResultItem.
4
+ * A ResultItem must provide either a feature, a clicked handler or both.
5
+ */
6
+ export type ResultItem = {
7
+ title: string;
8
+ /**
9
+ * An optional icon
10
+ */
11
+ icon?: string | undefined;
12
+ actions?: import("../actions/actionHelper.js").VcsAction[] | undefined;
13
+ /**
14
+ * Obligatory, if no feature is provided. Can overwrite default zoom to feature behaviour.
15
+ */
16
+ clicked?: (() => Promise<void>) | undefined;
17
+ /**
18
+ * If a feature is provided, the feature is added to the result layer and search zooms to the layer's extent. Default clicked handler is zoom to feature, highlight feature and select feature, if feature has a FeatureInfoView.
19
+ */
20
+ feature?: import("ol").Feature | undefined;
21
+ };
22
+ export type SearchImpl = {
23
+ /**
24
+ * Name of the implementation. Must be the name of the plugin the SearchImpl is owned by
25
+ */
26
+ name: string;
27
+ search: (arg0: string) => Array<ResultItem>;
28
+ suggest?: ((arg0: string) => Array<string>) | undefined;
29
+ /**
30
+ * - should abort any ongoing requests to search or suggest without throwing an error
31
+ */
32
+ abort: () => void;
33
+ destroy: () => void;
34
+ };
35
+ /**
36
+ * Collection of SearchImpl
37
+ * @extends {IndexedCollection<SearchImpl>}
38
+ */
39
+ declare class Search extends IndexedCollection<SearchImpl> {
40
+ /**
41
+ * @param {import("@src/vcsUiApp.js").default} app
42
+ */
43
+ constructor(app: import("@src/vcsUiApp.js").default);
44
+ /**
45
+ * @type {import("@src/vcsUiApp.js").default}
46
+ * @private
47
+ */
48
+ private _app;
49
+ /**
50
+ * An event triggered every time the currentResults array changes,
51
+ * either by a new search providing the new results or
52
+ * on clearing, if the results array has not been empty already.
53
+ * @type {import("@vcmap/core").VcsEvent<Array<ResultItem>>}
54
+ * @private
55
+ */
56
+ private _resultsChanged;
57
+ /**
58
+ * @type {import("vue").Ref<Array<ResultItem>>}
59
+ * @private
60
+ */
61
+ private _currentResults;
62
+ /**
63
+ * @type {import("@vcmap/core").VectorLayer}
64
+ * @private
65
+ */
66
+ private _resultLayer;
67
+ /**
68
+ * @type {function():void}
69
+ * @private
70
+ */
71
+ private _destroyResultLayer;
72
+ /**
73
+ * An event triggered every time the currentResults array changes,
74
+ * either by a new search providing the new results or
75
+ * on clearing, if the results array has not been empty already.
76
+ * @type {import("@vcmap/core").VcsEvent<Array<ResultItem>>}
77
+ */
78
+ get resultsChanged(): VcsEvent<ResultItem[]>;
79
+ /**
80
+ * @type {import("vue").Ref<Array<ResultItem>>}
81
+ */
82
+ get currentResults(): import("vue").Ref<ResultItem[]>;
83
+ /**
84
+ * @type {VectorLayer}
85
+ */
86
+ get resultLayer(): VectorLayer;
87
+ /**
88
+ * @param {SearchImpl} item
89
+ * @param {string|symbol} owner pluginName or vcsAppSymbol
90
+ * @param {number=} index
91
+ */
92
+ // @ts-ignore
93
+ add(item: SearchImpl, owner: string | symbol, index?: number | undefined): void;
94
+ /**
95
+ * removes all search implementations of a specific owner (plugin) and fires removed Events
96
+ * @param {string|vcsAppSymbol} owner
97
+ */
98
+ removeOwner(owner: string | symbol): void;
99
+ /**
100
+ * Get the results for a given query string.
101
+ * Available features are added to results layer and map is zoomed to all results (extent of result layer).
102
+ * Adds default clicked handler to result items with feature, which zooms to and highlights said feature. If feature has FeatureInfoView, feature is selected by featureInfo.
103
+ * @param {string} q
104
+ * @returns {Promise<Array<ResultItem>>}
105
+ */
106
+ search(q: string): Promise<Array<ResultItem>>;
107
+ /**
108
+ * Get the suggestions for a given query string
109
+ * @param {string} q
110
+ * @returns {Promise<Array<string>>}
111
+ */
112
+ suggest(q: string): Promise<Array<string>>;
113
+ /**
114
+ * Aborting any ongoing request
115
+ */
116
+ abort(): void;
117
+ /**
118
+ * Zooms to the extent of all available result features
119
+ * @returns {Promise<void>}
120
+ */
121
+ zoomToAll(): Promise<void>;
122
+ /**
123
+ * Clears the results and aborts running request
124
+ */
125
+ clearResults(): void;
126
+ }
127
+ import { IndexedCollection } from '@vcmap/core';
128
+ import { VcsEvent } from '@vcmap/core';
129
+ import { VectorLayer } from '@vcmap/core';
@@ -26,16 +26,16 @@ import { getViewpointFromFeature } from '../actions/actionHelper.js';
26
26
  * @typedef {Object} ResultItem
27
27
  * @property {string} title
28
28
  * @property {string} [icon] An optional icon
29
- * @property {Array<VcsAction>} [actions]
29
+ * @property {Array<import("../actions/actionHelper.js").VcsAction>} [actions]
30
30
  * @property {function():Promise<void>} [clicked] Obligatory, if no feature is provided. Can overwrite default zoom to feature behaviour.
31
31
  * @property {import("ol").Feature|undefined} [feature] If a feature is provided, the feature is added to the result layer and search zooms to the layer's extent. Default clicked handler is zoom to feature, highlight feature and select feature, if feature has a FeatureInfoView.
32
32
  */
33
33
 
34
34
  /**
35
- * @interface SearchImpl
35
+ * @typedef {Object} SearchImpl
36
36
  * @property {string} name Name of the implementation. Must be the name of the plugin the SearchImpl is owned by
37
- * @property {function(q:string):Array<ResultItem>} search
38
- * @property {function(q:string):Array<string>} [suggest] // XXX currently not implemented in UI at Beta state
37
+ * @property {function(string):Array<ResultItem>} search
38
+ * @property {function(string):Array<string>} [suggest] // XXX currently not implemented in UI at Beta state
39
39
  * @property{function():void} abort - should abort any ongoing requests to search or suggest without throwing an error
40
40
  * @property {function():void} destroy
41
41
  */
@@ -56,7 +56,7 @@ function getPointResultIcon(color) {
56
56
 
57
57
  /**
58
58
  * sets up result layer for displaying search results
59
- * @param {VcsUiApp} app
59
+ * @param {import("@src/vcsUiApp.js").default} app
60
60
  * @returns {{ resultLayer: import("@vcmap/core").VectorLayer, destroy: (function(): void)}}
61
61
  */
62
62
  function setupSearchResultLayer(app) {
@@ -111,17 +111,17 @@ const searchImplOwnerSymbol = Symbol('featureInfoView');
111
111
 
112
112
  /**
113
113
  * Collection of SearchImpl
114
- * @extends {IndexedCollection<SearchImpl<ResultItem>>}
114
+ * @extends {IndexedCollection<SearchImpl>}
115
115
  */
116
116
  class Search extends IndexedCollection {
117
117
  /**
118
- * @param {VcsUiApp} app
118
+ * @param {import("@src/vcsUiApp.js").default} app
119
119
  */
120
120
  constructor(app) {
121
121
  super();
122
122
 
123
123
  /**
124
- * @type {VcsUiApp}
124
+ * @type {import("@src/vcsUiApp.js").default}
125
125
  * @private
126
126
  */
127
127
  this._app = app;
@@ -158,7 +158,6 @@ class Search extends IndexedCollection {
158
158
  * either by a new search providing the new results or
159
159
  * on clearing, if the results array has not been empty already.
160
160
  * @type {import("@vcmap/core").VcsEvent<Array<ResultItem>>}
161
- * @readonly
162
161
  */
163
162
  get resultsChanged() {
164
163
  return this._resultsChanged;
@@ -166,7 +165,6 @@ class Search extends IndexedCollection {
166
165
 
167
166
  /**
168
167
  * @type {import("vue").Ref<Array<ResultItem>>}
169
- * @readonly
170
168
  */
171
169
  get currentResults() {
172
170
  return this._currentResults;
@@ -174,7 +172,6 @@ class Search extends IndexedCollection {
174
172
 
175
173
  /**
176
174
  * @type {VectorLayer}
177
- * @readonly
178
175
  */
179
176
  get resultLayer() {
180
177
  return this._resultLayer;
package/src/setup.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/src/state.d.ts ADDED
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @returns {AppState}
3
+ */
4
+ export function createEmptyState(): AppState;
5
+ /**
6
+ * @param {(URL)=} url
7
+ * @returns {AppState}
8
+ */
9
+ export function getStateFromURL(url?: (URL) | undefined): AppState;
10
+ /**
11
+ * @param {AppState} state
12
+ * @param {URL} url - sets the query parameter "state" on this URL
13
+ */
14
+ export function setStateToUrl(state: AppState, url: URL): void;
15
+ export type LayerState = {
16
+ name: string;
17
+ active: boolean;
18
+ styleName?: string | undefined;
19
+ };
20
+ /**
21
+ * The URL state of a layer is an array. The first entry is the layer name,
22
+ * the second its active state encoded in an integer (1 active, 0 inactive),
23
+ * the third and optional entry, is an optional styleName to set on the layer
24
+ */
25
+ export type UrlLayerState = [string, number, string | 0];
26
+ export type PluginState<T> = {
27
+ name: string;
28
+ state: T;
29
+ };
30
+ /**
31
+ * The URL state of a plugin is an array. The first entry is the plugin name, the second entry is
32
+ * an encoded object, which is the plugins state.
33
+ */
34
+ export type UrlPluginState = [string, unknown];
35
+ /**
36
+ * The URL state of a viewpoint is an array, the first entry is the camera position (or 0)
37
+ * the second is the ground position (or 0), the third is the distance, the last three are
38
+ * heading, pitch, roll in that order
39
+ */
40
+ export type UrlViewpointState = [Array<number> | 0, Array<number> | 0, number, number, number, number];
41
+ export type AppState = {
42
+ activeViewpoint?: import("@vcmap/core").ViewpointOptions | undefined;
43
+ activeMap?: string | undefined;
44
+ moduleIds: Array<string>;
45
+ layers: Array<LayerState>;
46
+ plugins: Array<PluginState<unknown>>;
47
+ activeObliqueCollection?: string | undefined;
48
+ };
49
+ /**
50
+ * The URL state of the app is an array. To null parameters, pass in 0 instead.
51
+ * The first entry is the viewpoint state, the second the active map name
52
+ * The third is an array of modules to apply the state to
53
+ * the fourth is an array of layer states
54
+ * the fifth is an array of plugin states
55
+ * the sixth is the currently active oblique collection or 0 if not applicable
56
+ */
57
+ export type UrlAppState = [[0 | number[], 0 | number[], number, number, number, number], string, Array<string>, Array<[string, number, string | 0]>, Array<[string, unknown]>, (string | 0)];
package/src/state.js CHANGED
@@ -17,15 +17,17 @@ import { Viewpoint } from '@vcmap/core';
17
17
  */
18
18
 
19
19
  /**
20
- * @typedef {Object} PluginState
21
- * @property {string} name
22
- * @property {*} state
20
+ * @typedef {{
21
+ * name: string,
22
+ * state: T
23
+ * }} PluginState
24
+ * @template T
23
25
  */
24
26
 
25
27
  /**
26
28
  * The URL state of a plugin is an array. The first entry is the plugin name, the second entry is
27
29
  * an encoded object, which is the plugins state.
28
- * @typedef {[string, *]} UrlPluginState
30
+ * @typedef {[string, unknown]} UrlPluginState
29
31
  */
30
32
 
31
33
  /**
@@ -41,7 +43,7 @@ import { Viewpoint } from '@vcmap/core';
41
43
  * @property {string} [activeMap]
42
44
  * @property {Array<string>} moduleIds
43
45
  * @property {Array<LayerState>} layers
44
- * @property {Array<PluginState>} plugins
46
+ * @property {Array<PluginState<unknown>>} plugins
45
47
  * @property {string} [activeObliqueCollection]
46
48
  */
47
49
 
@@ -0,0 +1,99 @@
1
+ export default UiConfig;
2
+ export type UiConfigurationItem<T> = {
3
+ name: string;
4
+ value: T;
5
+ };
6
+ export type TextPageType = {
7
+ title: string;
8
+ url?: string | URL | undefined;
9
+ content?: string | undefined;
10
+ };
11
+ export type UiConfigObject = {
12
+ /**
13
+ * - the company logo to display. this will override any and all css overrides.
14
+ */
15
+ logo?: string | undefined;
16
+ /**
17
+ * - an alternative logo to display in mobile view
18
+ */
19
+ mobileLogo?: string | undefined;
20
+ /**
21
+ * - an optional title to display next to the company logo
22
+ */
23
+ appTitle?: string | undefined;
24
+ /**
25
+ * - an optional primary color to use in all themes
26
+ */
27
+ primaryColor?: string | undefined;
28
+ /**
29
+ * - an optional flag whether to activate feature info on startup (default active)
30
+ */
31
+ startingFeatureInfo?: boolean | undefined;
32
+ /**
33
+ * - mouse event, when position display is updated. Either 'click' (default) or 'move'.
34
+ */
35
+ positionDisplayEventType?: string | undefined;
36
+ /**
37
+ * - an optional URL to a help landing page
38
+ */
39
+ helpBaseUrl?: string | undefined;
40
+ /**
41
+ * - an option imprint, will show a link in the footer.
42
+ */
43
+ imprint?: TextPageType | undefined;
44
+ /**
45
+ * - an option dataProtection, will show a link in the footer.
46
+ */
47
+ dataProtection?: TextPageType | undefined;
48
+ };
49
+ /**
50
+ * @typedef {{
51
+ * name: string,
52
+ * value: T
53
+ * }} UiConfigurationItem
54
+ * @template T
55
+ */
56
+ /**
57
+ * @typedef {Object} TextPageType
58
+ * @property {string} title
59
+ * @property {URL|string} [url]
60
+ * @property {string} [content]
61
+ */
62
+ /**
63
+ * @typedef {Object} UiConfigObject
64
+ * @property {string} [logo] - the company logo to display. this will override any and all css overrides.
65
+ * @property {string} [mobileLogo] - an alternative logo to display in mobile view
66
+ * @property {string} [appTitle] - an optional title to display next to the company logo
67
+ * @property {string} [primaryColor] - an optional primary color to use in all themes
68
+ * @property {boolean} [startingFeatureInfo] - an optional flag whether to activate feature info on startup (default active)
69
+ * @property {string} [positionDisplayEventType] - mouse event, when position display is updated. Either 'click' (default) or 'move'.
70
+ * @property {string} [helpBaseUrl='https://help.vc.systems/'] - an optional URL to a help landing page
71
+ * @property {TextPageType} [imprint] - an option imprint, will show a link in the footer.
72
+ * @property {TextPageType} [dataProtection] - an option dataProtection, will show a link in the footer.
73
+ */
74
+ /**
75
+ * @extends {Collection<UiConfigurationItem<unknown>>}
76
+ */
77
+ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
78
+ /**
79
+ * @param {function():string} getDynamicModuleId
80
+ */
81
+ constructor(getDynamicModuleId: () => string);
82
+ /**
83
+ * @type {import("vue").Ref<Object<string, *>>}
84
+ * @private
85
+ */
86
+ private _config;
87
+ /**
88
+ * @type {Array<function():void>}
89
+ * @private
90
+ */
91
+ private _listeners;
92
+ /**
93
+ * @type {import("vue").Ref<Object<string, unknown>|UiConfigObject>}
94
+ */
95
+ get config(): import("vue").Ref<{
96
+ [x: string]: unknown;
97
+ } | UiConfigObject>;
98
+ }
99
+ import { Collection } from '@vcmap/core';
package/src/uiConfig.js CHANGED
@@ -2,9 +2,18 @@ import { Collection, makeOverrideCollection } from '@vcmap/core';
2
2
  import { ref } from 'vue';
3
3
 
4
4
  /**
5
- * @typedef {Object} UiConfigurationItem
6
- * @property {string} name
7
- * @property {*} value
5
+ * @typedef {{
6
+ * name: string,
7
+ * value: T
8
+ * }} UiConfigurationItem
9
+ * @template T
10
+ */
11
+
12
+ /**
13
+ * @typedef {Object} TextPageType
14
+ * @property {string} title
15
+ * @property {URL|string} [url]
16
+ * @property {string} [content]
8
17
  */
9
18
 
10
19
  /**
@@ -14,13 +23,14 @@ import { ref } from 'vue';
14
23
  * @property {string} [appTitle] - an optional title to display next to the company logo
15
24
  * @property {string} [primaryColor] - an optional primary color to use in all themes
16
25
  * @property {boolean} [startingFeatureInfo] - an optional flag whether to activate feature info on startup (default active)
26
+ * @property {string} [positionDisplayEventType] - mouse event, when position display is updated. Either 'click' (default) or 'move'.
17
27
  * @property {string} [helpBaseUrl='https://help.vc.systems/'] - an optional URL to a help landing page
28
+ * @property {TextPageType} [imprint] - an option imprint, will show a link in the footer.
29
+ * @property {TextPageType} [dataProtection] - an option dataProtection, will show a link in the footer.
18
30
  */
19
31
 
20
32
  /**
21
- * @class
22
- * @extends {Collection<UiConfigurationItem>}
23
- * @implements {import("@vcmap/core").OverrideCollectionInterface<UiConfigurationItem>}
33
+ * @extends {Collection<UiConfigurationItem<unknown>>}
24
34
  */
25
35
  class UiConfig extends Collection {
26
36
  /**
@@ -62,7 +72,7 @@ class UiConfig extends Collection {
62
72
  }
63
73
 
64
74
  /**
65
- * @returns {import("vue").Ref<Object<string, *>|UiConfigObject>}
75
+ * @type {import("vue").Ref<Object<string, unknown>|UiConfigObject>}
66
76
  */
67
77
  get config() {
68
78
  return this._config;