@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
@@ -1,5 +1,6 @@
1
1
  import { VcsObject } from '@vcmap/core';
2
2
  import { WindowSlot } from '../manager/window/windowManager.js';
3
+ import { defaultTagOptions } from '../components/tables/VcsTable.vue';
3
4
 
4
5
  /**
5
6
  * @typedef {Object} FeatureInfoProps
@@ -7,14 +8,28 @@ import { WindowSlot } from '../manager/window/windowManager.js';
7
8
  * @property {string} layerName
8
9
  * @property {Object} layerProperties
9
10
  * @property {Object} attributes
11
+ * @property {Object} tags
10
12
  */
11
13
 
12
14
  /**
13
- * @typedef {import("@vcmap/core").VcsObjectOptions} FeatureInfoViewOptions
15
+ * @typedef {Object} HTMLTagOptions
16
+ * @property {string} tag - the html element type
17
+ * ... further html options, which can contain template string $value for reusing the attribute's value
18
+ */
19
+
20
+ /**
21
+ * @typedef {import("@vcmap/core").VcsObjectOptions & {
22
+ * attributeKeys?: string[],
23
+ * keyMapping?: Record<string,string>,
24
+ * valueMapping?: Record<string, string|Record<string,string>>,
25
+ * tags?: Record<string, HTMLTagOptions>,
26
+ * window?: import("../manager/window/windowManager.js").WindowComponentOptions
27
+ * }} FeatureInfoViewOptions
14
28
  * @property {Array<string>} [attributeKeys] - list of keys to filter attributes of selected feature
15
29
  * @property {Object<string,string>} [keyMapping] - object providing text replacements or i18n strings for attribute keys
16
30
  * @property {Object<string, string|Object<string,string>>} [valueMapping] - object providing text replacements or i18n strings for attribute values
17
- * @property {WindowComponentOptions} [window] - state, slot, position can be set. Other options are predefined.
31
+ * @property {Object<string,HTMLTagOptions>} [tags] - object with keys rendered as special html element. Value contains html options
32
+ * @property {import("../manager/window/windowManager.js").WindowComponentOptions} [window] - state, slot, position can be set. Other options are predefined.
18
33
  */
19
34
 
20
35
  /**
@@ -31,7 +46,7 @@ function getMappedValue(mappedValue, value) {
31
46
 
32
47
  /**
33
48
  * Replaces values by new values according to mapping table. Nested keys are represented by a "."
34
- * @param {Object<string, *>} attributes
49
+ * @param {Record<string, unknown>} attributes
35
50
  * @param {Object<string, string|Object<string,string>>} mapping - value mapping
36
51
  */
37
52
  export function applyValueMapping(attributes, mapping) {
@@ -93,7 +108,7 @@ export function applyValueMapping(attributes, mapping) {
93
108
  * // apply flat mapping of a key with a period. this will overwrite an existing _other_ key
94
109
  * const periodAttrs = applyKeyMapping(getAttrs(), periodMapping);
95
110
  * assert(periodAttrs.foo === true);
96
- * @param {Object<string, *>} attributes
111
+ * @param {Object<string, unknown>} attributes
97
112
  * @param {Object<string,string>} mapping - key mapping
98
113
  */
99
114
  export function applyKeyMapping(attributes, mapping) {
@@ -130,6 +145,22 @@ export function applyKeyMapping(attributes, mapping) {
130
145
  });
131
146
  }
132
147
 
148
+ /**
149
+ * Applies value mapping on tag options
150
+ * @param {Object<string, unknown>} attributes
151
+ * @param {Object<string,HTMLTagOptions>} tags
152
+ */
153
+ function applyTagMapping(attributes, tags) {
154
+ Object.keys(tags).forEach((key) => {
155
+ Object.keys(tags[key]).forEach((option) => {
156
+ const mappedValue = tags[key][option];
157
+ if (typeof mappedValue === 'string') {
158
+ tags[key][option] = getMappedValue(tags[key][option], attributes[key]);
159
+ }
160
+ });
161
+ });
162
+ }
163
+
133
164
  /**
134
165
  * Applies an attribute filtering. Nested attributes are represented by a ".".
135
166
  * @example
@@ -144,10 +175,10 @@ export function applyKeyMapping(attributes, mapping) {
144
175
  * assert(filtered.baz === true);
145
176
  * // if filtering parent top level keys, will pass on a reference of the actual value and its children.
146
177
  * assert(deepEquals(filtered.foobar, attrs.foobar));
147
- * @param {Object<string, *>} attributes
178
+ * @param {Object<string, unknown>} attributes
148
179
  * @param {Array<string>} keys
149
- * @param {Object<string, *>=} result
150
- * @returns {Object<string, *>}
180
+ * @param {Object<string, unknown>=} result
181
+ * @returns {Object<string, unknown>}
151
182
  */
152
183
  export function applyAttributeFilter(attributes, keys, result = {}) {
153
184
  const nestedKeys = {};
@@ -174,7 +205,7 @@ export function applyAttributeFilter(attributes, keys, result = {}) {
174
205
 
175
206
  /**
176
207
  * Filters all olcs attributes, not provided as keys
177
- * @param {Object<string, *>} attributes
208
+ * @param {Object<string, unknown>} attributes
178
209
  * @param {Array<string>} keys
179
210
  * @returns {Object}
180
211
  */
@@ -208,6 +239,7 @@ class AbstractFeatureInfoView extends VcsObject {
208
239
  attributeKeys: [],
209
240
  keyMapping: undefined,
210
241
  valueMapping: undefined,
242
+ tags: undefined,
211
243
  window: {},
212
244
  };
213
245
  }
@@ -232,7 +264,11 @@ class AbstractFeatureInfoView extends VcsObject {
232
264
  */
233
265
  this.valueMapping = options.valueMapping || defaultOptions.valueMapping;
234
266
  /**
235
- * @type {WindowComponentOptions|Object}
267
+ * @type {null|Object<string,HTMLTagOptions>}
268
+ */
269
+ this.tags = options.tags || defaultOptions.tags;
270
+ /**
271
+ * @type {import("../manager/window/windowManager.js").WindowComponentOptions|Object}
236
272
  * @private
237
273
  */
238
274
  this._window = options.window || defaultOptions.window;
@@ -245,8 +281,7 @@ class AbstractFeatureInfoView extends VcsObject {
245
281
 
246
282
  /**
247
283
  * window options, configured in a module, used only internally by AbstractFeatureInfoView or subclass
248
- * @type {WindowComponentOptions|Object}
249
- * @readonly
284
+ * @type {import("../manager/window/windowManager.js").WindowComponentOptions|Object}
250
285
  */
251
286
  get window() {
252
287
  return this._window;
@@ -255,7 +290,6 @@ class AbstractFeatureInfoView extends VcsObject {
255
290
  /**
256
291
  * component provided by a FeatureInfoView class, passed to featureInfo via `getWindowComponentOptions()`
257
292
  * @type {import("vue").Component|undefined}
258
- * @readonly
259
293
  */
260
294
  get component() {
261
295
  return this._component;
@@ -266,7 +300,7 @@ class AbstractFeatureInfoView extends VcsObject {
266
300
  * Called by `getProperties()` to pass attributes as props object to the VueComponent of this view.
267
301
  * May be overwritten by classes extending AbstractFeatureInfoView.
268
302
  * It filters attributes of the feature by keys, performs value and key mapping, if provided.
269
- * @param {undefined|import("ol").Feature<import("ol/geom/Geometry").default>|import("@vcmap-cesium/engine").Cesium3DTileFeature|import("@vcmap-cesium/engine").Cesium3DTilePointFeature} feature
303
+ * @param {undefined|import("ol").Feature|import("@vcmap-cesium/engine").Cesium3DTileFeature|import("@vcmap-cesium/engine").Cesium3DTilePointFeature} feature
270
304
  * @returns {Object}
271
305
  */
272
306
  getAttributes(feature) {
@@ -283,11 +317,40 @@ class AbstractFeatureInfoView extends VcsObject {
283
317
  return applyOlcsAttributeFilter(attributes, this.attributeKeys);
284
318
  }
285
319
 
320
+ /**
321
+ * This method returns an object with keys rendered as special html elements.
322
+ * Applies value mapping, when using $value html option.
323
+ * Ensures key mapping on defined anchor keys.
324
+ * @param {undefined|import("ol").Feature|import("@vcmap-cesium/engine").Cesium3DTileFeature|import("@vcmap-cesium/engine").Cesium3DTilePointFeature} feature
325
+ * @returns {Object|undefined}
326
+ */
327
+ getTags(feature) {
328
+ if (this.tags) {
329
+ const attributes = feature.getProperty('attributes') || {};
330
+ const tags = Object.keys(this.tags)
331
+ .filter(
332
+ (key) =>
333
+ Object.keys(attributes).includes(key) &&
334
+ Object.keys(defaultTagOptions).includes(this.tags[key].tag),
335
+ )
336
+ .reduce((obj, key) => {
337
+ obj[key] = { ...this.tags[key] };
338
+ return obj;
339
+ }, {});
340
+ applyTagMapping(attributes, tags);
341
+ if (this.keyMapping) {
342
+ applyKeyMapping(tags, this.keyMapping);
343
+ }
344
+ return tags;
345
+ }
346
+ return undefined;
347
+ }
348
+
286
349
  /**
287
350
  * This method returns all relevant properties passed to the VueComponent of this view.
288
351
  * May be overwritten by classes extending AbstractFeatureInfoView.
289
352
  * Called by `getWindowComponentOptions()`.
290
- * @param {FeatureInfoEvent} featureInfo
353
+ * @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
291
354
  * @param {import("@vcmap/core").Layer} layer
292
355
  * @returns {FeatureInfoProps}
293
356
  */
@@ -297,16 +360,17 @@ class AbstractFeatureInfoView extends VcsObject {
297
360
  layerName: layer.name,
298
361
  layerProperties: layer.properties,
299
362
  attributes: this.getAttributes(feature),
363
+ tags: this.getTags(feature),
300
364
  };
301
365
  }
302
366
 
303
367
  /**
304
368
  * This method is being called by featureInfo, whenever a new window is created (added to the windowManager).
305
369
  * May be overwritten by classes extending AbstractFeatureInfoView.
306
- * @param {VcsUiApp} app
307
- * @param {FeatureInfoEvent} featureInfo
370
+ * @param {import("../vcsUiApp.js").default} app
371
+ * @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
308
372
  * @param {import("@vcmap/core").Layer} layer
309
- * @returns {WindowComponentOptions}
373
+ * @returns {import("../manager/window/windowManager.js").WindowComponentOptions}
310
374
  */
311
375
  getWindowComponentOptions(app, featureInfo, layer) {
312
376
  return {
@@ -315,7 +379,7 @@ class AbstractFeatureInfoView extends VcsObject {
315
379
  headerIcon: '$vcsInfo',
316
380
  infoUrl: app.getHelpUrlCallback('/tools/infoTool.html'),
317
381
  },
318
- slot: this.window.slot ?? WindowSlot.DYNAMIC_LEFT,
382
+ slot: this.window.slot ?? WindowSlot.DYNAMIC_RIGHT,
319
383
  component: this.component,
320
384
  position: this.window.position,
321
385
  props: this.getProperties(featureInfo, layer),
@@ -0,0 +1,67 @@
1
+ export default AddressBalloonFeatureInfoView;
2
+ export type AddressBalloonFeatureInfoViewOptions = import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & {
3
+ addressName?: string | null;
4
+ street?: string | null;
5
+ number?: string | null;
6
+ city?: string | null;
7
+ zip?: string | null;
8
+ country?: string | null;
9
+ };
10
+ /**
11
+ * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions &{
12
+ * addressName?: string|null,
13
+ * street?: string|null,
14
+ * number?: string|null,
15
+ * city?: string|null,
16
+ * zip?: string|null,
17
+ * country?: string|null,
18
+ * }} AddressBalloonFeatureInfoViewOptions
19
+ * @property {string|null} [addressName='gml:name'] key to evaluate for name. Use null to suppress
20
+ * @property {string|null} [street='Address.Street'] key to evaluate for street. Use null to suppress
21
+ * @property {string|null} [number='Address.HouseNumber'] key to evaluate for house number. Use null to suppress
22
+ * @property {string|null} [city='Address.City'] key to evaluate for city. Use null to suppress
23
+ * @property {string|null} [zip='Address.ZipCode'] key to evaluate for zip code. Use null to suppress
24
+ * @property {string|null} [country='Address.Country'] key to evaluate for country. Use null to suppress
25
+ */
26
+ /**
27
+ * @class
28
+ * @description An balloon view.
29
+ * @extends {BalloonFeatureInfoView}
30
+ */
31
+ declare class AddressBalloonFeatureInfoView extends BalloonFeatureInfoView {
32
+ /** @returns {AddressBalloonFeatureInfoViewOptions} */
33
+ static getDefaultOptions(): AddressBalloonFeatureInfoViewOptions;
34
+ /**
35
+ * @param {AddressBalloonFeatureInfoViewOptions} options
36
+ */
37
+ constructor(options: AddressBalloonFeatureInfoViewOptions);
38
+ /**
39
+ * @type {string|null}
40
+ */
41
+ addressName: string | null;
42
+ /**
43
+ * @type {string|null}
44
+ */
45
+ street: string | null;
46
+ /**
47
+ * @type {string|null}
48
+ */
49
+ number: string | null;
50
+ /**
51
+ * @type {string|null}
52
+ */
53
+ city: string | null;
54
+ /**
55
+ * @type {string|null}
56
+ */
57
+ zip: string | null;
58
+ /**
59
+ * @type {string|null}
60
+ */
61
+ country: string | null;
62
+ /**
63
+ * @returns {AddressBalloonFeatureInfoViewOptions}
64
+ */
65
+ toJSON(): AddressBalloonFeatureInfoViewOptions;
66
+ }
67
+ import BalloonFeatureInfoView from './balloonFeatureInfoView.js';
@@ -4,7 +4,14 @@ import BalloonFeatureInfoView, {
4
4
  import AddressBalloonComponent from './AddressBalloonComponent.vue';
5
5
 
6
6
  /**
7
- * @typedef {FeatureInfoViewOptions} AddressBalloonFeatureInfoViewOptions
7
+ * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions &{
8
+ * addressName?: string|null,
9
+ * street?: string|null,
10
+ * number?: string|null,
11
+ * city?: string|null,
12
+ * zip?: string|null,
13
+ * country?: string|null,
14
+ * }} AddressBalloonFeatureInfoViewOptions
8
15
  * @property {string|null} [addressName='gml:name'] key to evaluate for name. Use null to suppress
9
16
  * @property {string|null} [street='Address.Street'] key to evaluate for street. Use null to suppress
10
17
  * @property {string|null} [number='Address.HouseNumber'] key to evaluate for house number. Use null to suppress
@@ -79,7 +86,7 @@ class AddressBalloonFeatureInfoView extends BalloonFeatureInfoView {
79
86
 
80
87
  /**
81
88
  * derives address attributes from addressKeys
82
- * @param {undefined|import("ol").Feature<import("ol/geom/Geometry").default>|import("@vcmap-cesium/engine").Cesium3DTileFeature|import("@vcmap-cesium/engine").Cesium3DTilePointFeature} feature
89
+ * @param {undefined|import("ol").Feature|import("@vcmap-cesium/engine").Cesium3DTileFeature|import("@vcmap-cesium/engine").Cesium3DTilePointFeature} feature
83
90
  * @returns {Object}
84
91
  */
85
92
  getAttributes(feature) {
@@ -0,0 +1,49 @@
1
+ /**
2
+ * derive value from attributes
3
+ * @param {string} key - key or nested key
4
+ * @param {Object} attrs
5
+ * @param {string|null} [defaultValue]
6
+ * @returns {string|null}
7
+ */
8
+ export function extractNestedKey(key: string, attrs: Object, defaultValue?: string | null | undefined): string | null;
9
+ export default BalloonFeatureInfoView;
10
+ export type BalloonFeatureInfoViewOptions = import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & {
11
+ balloonTitle?: string;
12
+ balloonSubtitle?: string;
13
+ };
14
+ export type BalloonFeatureInfoViewProps = import("./abstractFeatureInfoView.js").FeatureInfoProps & {
15
+ balloonTitle: string;
16
+ balloonSubtitle: string;
17
+ position: import("ol/coordinate.js").Coordinate;
18
+ };
19
+ /**
20
+ * @class
21
+ * @description An balloon view.
22
+ * @extends {AbstractFeatureInfoView}
23
+ */
24
+ declare class BalloonFeatureInfoView extends AbstractFeatureInfoView {
25
+ /**
26
+ * @param {BalloonFeatureInfoViewOptions} options
27
+ * @param {import("vue").Component} [component=BalloonComponent]
28
+ */
29
+ constructor(options: BalloonFeatureInfoViewOptions, component?: import("vue").Component<import("vue/types/options.js").DefaultData<never>, import("vue/types/options.js").DefaultMethods<never>, import("vue/types/options.js").DefaultComputed, import("vue/types/options.js").DefaultProps, {}> | undefined);
30
+ /**
31
+ * @type {string}
32
+ */
33
+ balloonTitle: string;
34
+ /**
35
+ * @type {string}
36
+ */
37
+ balloonSubtitle: string;
38
+ /**
39
+ * @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
40
+ * @param {import("@vcmap/core").Layer} layer
41
+ * @returns {BalloonFeatureInfoViewProps}
42
+ */
43
+ getProperties(featureInfo: import("./featureInfo.js").FeatureInfoEvent, layer: import("@vcmap/core").Layer): BalloonFeatureInfoViewProps;
44
+ /**
45
+ * @returns {BalloonFeatureInfoViewOptions}
46
+ */
47
+ toJSON(): BalloonFeatureInfoViewOptions;
48
+ }
49
+ import AbstractFeatureInfoView from './abstractFeatureInfoView.js';
@@ -24,21 +24,22 @@ export function extractNestedKey(key, attrs, defaultValue = null) {
24
24
  }
25
25
 
26
26
  /**
27
- * @typedef {FeatureInfoViewOptions} BalloonFeatureInfoViewOptions
27
+ * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { balloonTitle?: string, balloonSubtitle?: string }} BalloonFeatureInfoViewOptions
28
28
  * @property {string} [balloonTitle] - optional title to overwrite default (layerName). Can be attribute key (nested key using '.'), i18n key or text
29
29
  * @property {string} [balloonSubtitle] - optional window title to overwrite default (featureId). Can be attribute key (nested key using '.'), i18n key or text
30
30
  */
31
31
 
32
32
  /**
33
- * @typedef {FeatureInfoProps} BalloonFeatureInfoViewProps
34
- * @property {string} balloonTitle
35
- * @property {string} balloonSubtitle
36
- * @property {import("ol/coordinate").Coordinate} position
33
+ * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoProps & {
34
+ * balloonTitle: string,
35
+ * balloonSubtitle: string,
36
+ * position: import("ol/coordinate.js").Coordinate
37
+ * }} BalloonFeatureInfoViewProps
37
38
  */
38
39
 
39
40
  /**
40
41
  * @param {import("@vcmap/core").Cartesian3} cartesian
41
- * @returns {import("ol/coordinate").Coordinate}
42
+ * @returns {import("ol/coordinate.js").Coordinate}
42
43
  */
43
44
  function cartesian3ToCoordinate(cartesian) {
44
45
  const cartographic = Cartographic.fromCartesian(cartesian);
@@ -52,7 +53,7 @@ function cartesian3ToCoordinate(cartesian) {
52
53
 
53
54
  /**
54
55
  * @param {FeatureType} feature
55
- * @returns {import("ol/coordinate").Coordinate|null}
56
+ * @returns {import("ol/coordinate.js").Coordinate|null}
56
57
  */
57
58
  function getPositionFromFeature(feature) {
58
59
  if (feature instanceof Feature && feature.getGeometry()) {
@@ -97,7 +98,7 @@ class BalloonFeatureInfoView extends AbstractFeatureInfoView {
97
98
  }
98
99
 
99
100
  /**
100
- * @param {FeatureInfoEvent} featureInfo
101
+ * @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
101
102
  * @param {import("@vcmap/core").Layer} layer
102
103
  * @returns {BalloonFeatureInfoViewProps}
103
104
  */
@@ -127,10 +128,10 @@ class BalloonFeatureInfoView extends AbstractFeatureInfoView {
127
128
  }
128
129
 
129
130
  /**
130
- * @param {VcsUiApp} app
131
- * @param {FeatureInfoEvent} featureInfo
131
+ * @param {import("@src/vcsUiApp.js").default} app
132
+ * @param {import("./featureInfo.js").FeatureInfoEvent} featureInfo
132
133
  * @param {import("@vcmap/core").Layer} layer
133
- * @returns {WindowComponentOptions}
134
+ * @returns {import("../manager/window/windowManager.js").WindowComponentOptions}
134
135
  */
135
136
  getWindowComponentOptions(app, featureInfo, layer) {
136
137
  const options = super.getWindowComponentOptions(app, featureInfo, layer);
@@ -0,0 +1,31 @@
1
+ /**
2
+ * returns the windowPosition of a balloon from a map position
3
+ * @param {import("@vcmap/core").VcsApp} app
4
+ * @param {import("ol/coordinate.js").Coordinate} position - position in mercator
5
+ * @returns {Promise<undefined|Cartesian2>}
6
+ */
7
+ export function getBalloonPosition(app: import("@vcmap/core").VcsApp, position: import("ol/coordinate.js").Coordinate): Promise<undefined | Cartesian2>;
8
+ /**
9
+ * sets the windowPosition of a balloon
10
+ * @param {import("../manager/window/windowManager.js").default} windowManager
11
+ * @param {string} id - windowId of balloon
12
+ * @param {import("@vcmap-cesium/engine").Cartesian2|undefined} windowPosition
13
+ * @param {HTMLElement} target - the map's target { @link @import("@vcmap/core").MapCollection }
14
+ */
15
+ export function setBalloonPosition(windowManager: import("../manager/window/windowManager.js").default, id: string, windowPosition: import("@vcmap-cesium/engine").Cartesian2 | undefined, target: HTMLElement): void;
16
+ /**
17
+ * @param {import("@vcmap/core").VcsApp} vcsApp
18
+ * @param {string} windowId
19
+ * @param {import("ol/coordinate.js").Coordinate} clickedPosition - position in mercator
20
+ * @returns {Promise<(() => void)>}
21
+ */
22
+ export function setupBalloonPositionListener(vcsApp: import("@vcmap/core").VcsApp, windowId: string, clickedPosition: import("ol/coordinate.js").Coordinate): Promise<(() => void)>;
23
+ /**
24
+ * balloon offset from location or click position in pixel
25
+ * @type {{x: number, y: number}}
26
+ */
27
+ export const balloonOffset: {
28
+ x: number;
29
+ y: number;
30
+ };
31
+ import { Cartesian2 } from '@vcmap-cesium/engine';
@@ -33,7 +33,7 @@ function getBalloonPositionCesium(scene, cartesian) {
33
33
 
34
34
  /**
35
35
  * @param {import("@vcmap/core").OpenlayersMap} olMap
36
- * @param {import("ol/coordinate").Coordinate} position
36
+ * @param {import("ol/coordinate.js").Coordinate} position
37
37
  * @returns {undefined|import("@vcmap-cesium/engine").Cartesian2}
38
38
  */
39
39
  function getBalloonPositionOL(olMap, position) {
@@ -46,8 +46,8 @@ function getBalloonPositionOL(olMap, position) {
46
46
 
47
47
  /**
48
48
  * returns the windowPosition of a balloon from a map position
49
- * @param {VcsApp} app
50
- * @param {import("ol/coordinate").Coordinate} position - position in mercator
49
+ * @param {import("@vcmap/core").VcsApp} app
50
+ * @param {import("ol/coordinate.js").Coordinate} position - position in mercator
51
51
  * @returns {Promise<undefined|Cartesian2>}
52
52
  */
53
53
  export async function getBalloonPosition(app, position) {
@@ -69,7 +69,7 @@ export async function getBalloonPosition(app, position) {
69
69
 
70
70
  /**
71
71
  * sets the windowPosition of a balloon
72
- * @param {WindowManager} windowManager
72
+ * @param {import("../manager/window/windowManager.js").default} windowManager
73
73
  * @param {string} id - windowId of balloon
74
74
  * @param {import("@vcmap-cesium/engine").Cartesian2|undefined} windowPosition
75
75
  * @param {HTMLElement} target - the map's target { @link @import("@vcmap/core").MapCollection }
@@ -92,9 +92,9 @@ export function setBalloonPosition(windowManager, id, windowPosition, target) {
92
92
  }
93
93
 
94
94
  /**
95
- * @param {VcsApp} vcsApp
95
+ * @param {import("@vcmap/core").VcsApp} vcsApp
96
96
  * @param {string} windowId
97
- * @param {import("ol/coordinate").Coordinate} clickedPosition - position in mercator
97
+ * @param {import("ol/coordinate.js").Coordinate} clickedPosition - position in mercator
98
98
  * @returns {Promise<(() => void)>}
99
99
  */
100
100
  export async function setupBalloonPositionListener(
@@ -0,0 +1,146 @@
1
+ /**
2
+ * @param {FeatureType} feature
3
+ * @param {import("@vcmap/core").Layer} layer
4
+ * @param {string} defaultFillColor
5
+ * @returns {import("ol/style/Style.js").default|import("@vcmap/core").VectorStyleItem}
6
+ */
7
+ export function getHighlightStyle(feature: FeatureType, layer: import("@vcmap/core").Layer, defaultFillColor: string): import("ol/style/Style.js").default | import("@vcmap/core").VectorStyleItem;
8
+ /**
9
+ * @param {import("../vcsUiApp.js").default} app
10
+ * @returns {FeatureInfoSession}
11
+ */
12
+ export function createFeatureInfoSession(app: import("../vcsUiApp.js").default): FeatureInfoSession;
13
+ /**
14
+ * @typedef {Object} FeatureInfoSession
15
+ * @property {VcsEvent<void>} stopped
16
+ * @property {function():void} stop
17
+ */
18
+ /**
19
+ * @type {ClassRegistry<import("@vcmap/core").Ctor<typeof AbstractFeatureInfoView>>}
20
+ */
21
+ export const featureInfoClassRegistry: ClassRegistry<import("@vcmap/core").Ctor<typeof AbstractFeatureInfoView>>;
22
+ /**
23
+ * Symbol added to features to overwrite the layers predefined feature info
24
+ * @type {symbol}
25
+ */
26
+ export const featureInfoViewSymbol: symbol;
27
+ export default FeatureInfo;
28
+ export type FeatureType = import("ol").Feature | import("@vcmap-cesium/engine").Cesium3DTileFeature | import("@vcmap-cesium/engine").Cesium3DTilePointFeature | import("@vcmap-cesium/engine").Entity;
29
+ export type FeatureInfoEvent = {
30
+ feature: FeatureType;
31
+ /**
32
+ * - potential position to place the balloon at
33
+ */
34
+ position?: import("ol/coordinate.js").Coordinate | undefined;
35
+ /**
36
+ * - potential window position to initially place the balloon at
37
+ */
38
+ windowPosition?: import("ol/coordinate.js").Coordinate | undefined;
39
+ };
40
+ export type FeatureInfoSession = {
41
+ stopped: VcsEvent<void>;
42
+ stop: () => void;
43
+ };
44
+ import { ClassRegistry } from '@vcmap/core';
45
+ import AbstractFeatureInfoView from './abstractFeatureInfoView.js';
46
+ /**
47
+ * @class FeatureInfo
48
+ * @description Provides registration of featureInfoClasses and stores featureInfoView instances.
49
+ * @extends {Collection<AbstractFeatureInfoView>}
50
+ */
51
+ declare class FeatureInfo extends Collection<AbstractFeatureInfoView> {
52
+ /**
53
+ * @param {import("@src/vcsUiApp.js").default} app
54
+ */
55
+ constructor(app: import("@src/vcsUiApp.js").default);
56
+ /**
57
+ * @type {import("@src/vcsUiApp.js").default}
58
+ * @private
59
+ */
60
+ private _app;
61
+ /**
62
+ * @type {function():void|null}
63
+ * @private
64
+ */
65
+ private _clearHighlightingCb;
66
+ /**
67
+ * @type {string|null}
68
+ * @private
69
+ */
70
+ private _windowId;
71
+ /**
72
+ * @type {VcsEvent<FeatureType>}
73
+ * @private
74
+ */
75
+ private _featureChanged;
76
+ /**
77
+ * @type {FeatureType|null}
78
+ * @private
79
+ */
80
+ private _selectedFeature;
81
+ /**
82
+ * @type {string|null}
83
+ * @private
84
+ */
85
+ private _selectedFeatureId;
86
+ /**
87
+ * @type {Array<function():void>}
88
+ * @private
89
+ */
90
+ private _listeners;
91
+ _destroyFeatureInfoTool: () => void;
92
+ /**
93
+ * A vector layer to render provided features on
94
+ * @type {VectorLayer|null}
95
+ * @private
96
+ */
97
+ private _scratchLayer;
98
+ /**
99
+ * @type {VcsEvent<null|FeatureType>}
100
+ */
101
+ get featureChanged(): VcsEvent<FeatureType | null>;
102
+ /**
103
+ * @type {null|FeatureType}
104
+ */
105
+ get selectedFeature(): FeatureType | null;
106
+ /**
107
+ * @type {null|string}
108
+ */
109
+ get selectedFeatureId(): string | null;
110
+ /**
111
+ * The window id of the current features FeatureInfoView window
112
+ * @type {string|null}
113
+ */
114
+ get windowId(): string | null;
115
+ /**
116
+ * @private
117
+ */
118
+ private _ensureScratchLayer;
119
+ /**
120
+ * @param {FeatureType} feature
121
+ * @returns {null|AbstractFeatureInfoView}
122
+ * @private
123
+ */
124
+ private _getFeatureInfoViewForFeature;
125
+ /**
126
+ * Selecting a feature highlights said feature and opens a FeatureInfoView, if configured on the layer. For a successful selection,
127
+ * the feature must meet the following criteria: a) the feature must be part of a layer, b) said layer must be managed in
128
+ * the same VcsApp as provided to the FeatureInfo on construction. if not providing a feature info view, then c) said layer must have a featureInfo property set on
129
+ * its properties bag and d) said featureInfo property must provide the name of a FeatureInfoView present on this FeatureInfos
130
+ * collection.
131
+ * If passing a feature create by a FeatureProvider, the feature will be highlighted on an internal scratch layer.
132
+ * @param {FeatureType} feature
133
+ * @param {import("ol/coordinate.js").Coordinate=} [position] - optional clicked position. If not given feature's center point is used to place balloons
134
+ * @param {import("ol/coordinate.js").Coordinate=} [windowPosition] - optional clicked window position. If not given derived from position for balloons
135
+ * @param {AbstractFeatureInfoView=} featureInfoView
136
+ * @returns {Promise<void>}
137
+ */
138
+ selectFeature(feature: FeatureType, position?: import("ol/coordinate.js").Coordinate | undefined, windowPosition?: import("ol/coordinate.js").Coordinate | undefined, featureInfoView?: AbstractFeatureInfoView | undefined): Promise<void>;
139
+ /**
140
+ * Clears the current feature. remove window, highlighting and provided feature.
141
+ * @private
142
+ */
143
+ private _clearInternal;
144
+ }
145
+ import { VcsEvent } from '@vcmap/core';
146
+ import { Collection } from '@vcmap/core';