@vcmap/ui 5.0.2 → 5.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/README.md +2 -2
  2. package/build/buildTypes.js +176 -0
  3. package/build/lintTypes.js +30 -0
  4. package/config/aerowest.config.json +4 -0
  5. package/config/base.config.json +22 -0
  6. package/config/dev.config.json +176 -5
  7. package/config/www.config.json +24 -0
  8. package/dist/assets/{cesium.a3a1dc.js → cesium.e9b3ca.js} +1859 -1828
  9. package/dist/assets/cesium.js +1 -1
  10. package/dist/assets/{core.bb64ed.js → core.a9fe5a.js} +5859 -5041
  11. package/dist/assets/core.js +1 -1
  12. package/dist/assets/index-bb2549d6.js +1 -0
  13. package/dist/assets/{ol.833fa9.js → ol.5f0496.js} +7257 -7252
  14. package/dist/assets/ol.js +1 -1
  15. package/dist/assets/{ui.aeb2ec.css → ui.3c73c2.css} +2 -2
  16. package/dist/assets/{ui.aeb2ec.js → ui.3c73c2.js} +14199 -9198
  17. package/dist/assets/ui.js +1 -1
  18. package/dist/assets/{vue.8e1850.js → vue.4fe14e.js} +1243 -1234
  19. package/dist/assets/vue.js +2 -2
  20. package/dist/assets/{vuetify.3ed426.css → vuetify.260d9a.css} +1 -1
  21. package/dist/assets/{vuetify.3ed426.js → vuetify.260d9a.js} +155 -154
  22. package/dist/assets/vuetify.js +2 -2
  23. package/dist/index.html +1 -1
  24. package/index.d.ts +256 -0
  25. package/index.js +48 -11
  26. package/package.json +21 -14
  27. package/plugins/@vcmap-show-case/buttons-example/src/ButtonsExample.vue +3 -0
  28. package/plugins/@vcmap-show-case/category-tester/src/CategoriesExample.vue +312 -43
  29. package/plugins/@vcmap-show-case/category-tester/src/CollectionComponentOptions.vue +48 -182
  30. package/plugins/@vcmap-show-case/category-tester/src/FoobarEditor.vue +118 -0
  31. package/plugins/@vcmap-show-case/category-tester/src/importExportHelper.js +29 -0
  32. package/plugins/@vcmap-show-case/category-tester/src/index.js +16 -0
  33. package/plugins/@vcmap-show-case/collection-manager-example/src/CollectionManagerExample.vue +2 -1
  34. package/plugins/@vcmap-show-case/collection-manager-example/src/index.js +8 -4
  35. package/plugins/@vcmap-show-case/extent-example/README.md +3 -0
  36. package/plugins/@vcmap-show-case/extent-example/package.json +5 -0
  37. package/plugins/@vcmap-show-case/extent-example/src/ExtentExample.vue +71 -0
  38. package/plugins/@vcmap-show-case/extent-example/src/index.js +68 -0
  39. package/plugins/@vcmap-show-case/flight-component-example/README.md +3 -0
  40. package/plugins/@vcmap-show-case/flight-component-example/package.json +5 -0
  41. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +53 -0
  42. package/plugins/@vcmap-show-case/flight-component-example/src/index.js +42 -0
  43. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +78 -5
  44. package/plugins/@vcmap-show-case/hello-world/src/helloWorld.vue +2 -2
  45. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +22 -10
  46. package/plugins/@vcmap-show-case/toolbox-example/README.md +9 -0
  47. package/plugins/@vcmap-show-case/toolbox-example/package.json +5 -0
  48. package/plugins/@vcmap-show-case/toolbox-example/src/TriStateExampleWindow.vue +21 -0
  49. package/plugins/@vcmap-show-case/toolbox-example/src/dummyToolboxActions.js +94 -0
  50. package/plugins/@vcmap-show-case/toolbox-example/src/index.js +260 -0
  51. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +12 -2
  52. package/plugins/@vcmap-show-case/viewpoint-component-example/README.md +3 -0
  53. package/plugins/@vcmap-show-case/viewpoint-component-example/package.json +5 -0
  54. package/plugins/@vcmap-show-case/viewpoint-component-example/src/ViewpointExample.vue +52 -0
  55. package/plugins/@vcmap-show-case/viewpoint-component-example/src/index.js +42 -0
  56. package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +31 -1
  57. package/plugins/@vcmap-show-case/window-tester/src/WindowExampleToggleChild.vue +20 -16
  58. package/plugins/@vcmap-show-case/window-tester/src/index.js +2 -17
  59. package/plugins/package.json +3 -1
  60. package/src/actions/StyleSelector.vue +8 -7
  61. package/src/actions/StyleSelector.vue.d.ts +27 -0
  62. package/src/actions/actionHelper.d.ts +153 -0
  63. package/src/actions/actionHelper.js +36 -19
  64. package/src/actions/extentActions.d.ts +40 -0
  65. package/src/actions/extentActions.js +359 -0
  66. package/src/actions/flightActions.d.ts +59 -0
  67. package/src/actions/flightActions.js +232 -0
  68. package/src/actions/listActions.d.ts +63 -0
  69. package/src/actions/listActions.js +185 -0
  70. package/src/actions/stateRefAction.d.ts +19 -0
  71. package/src/actions/stateRefAction.js +1 -1
  72. package/src/application/VcsApp.vue +103 -28
  73. package/src/application/VcsApp.vue.d.ts +86 -0
  74. package/src/application/VcsAppWrapper.vue.d.ts +12 -0
  75. package/src/application/VcsAttributions.vue.d.ts +14 -0
  76. package/src/application/VcsAttributionsFooter.vue +1 -4
  77. package/src/application/VcsAttributionsFooter.vue.d.ts +26 -0
  78. package/src/application/VcsMap.vue.d.ts +12 -0
  79. package/src/application/VcsNavbar.vue.d.ts +45 -0
  80. package/src/application/VcsPositionDisplay.vue +208 -0
  81. package/src/application/VcsPositionDisplay.vue.d.ts +18 -0
  82. package/src/application/VcsSettings.vue.d.ts +5 -0
  83. package/src/application/VcsTextPage.vue +65 -0
  84. package/src/application/VcsTextPage.vue.d.ts +16 -0
  85. package/src/application/VcsTextPageFooter.vue +89 -0
  86. package/src/application/VcsTextPageFooter.vue.d.ts +22 -0
  87. package/src/application/attributionsHelper.d.ts +64 -0
  88. package/src/application/attributionsHelper.js +1 -1
  89. package/src/application/markdownHelper.d.ts +5 -0
  90. package/src/application/markdownHelper.js +11 -0
  91. package/src/application/positionDisplayInteraction.d.ts +42 -0
  92. package/src/application/positionDisplayInteraction.js +65 -0
  93. package/src/callback/activateLayersCallback.d.ts +29 -0
  94. package/src/callback/activateLayersCallback.js +2 -2
  95. package/src/callback/applyLayerStyleCallback.d.ts +36 -0
  96. package/src/callback/applyLayerStyleCallback.js +2 -2
  97. package/src/callback/deactivateLayersCallback.d.ts +29 -0
  98. package/src/callback/deactivateLayersCallback.js +2 -2
  99. package/src/callback/goToViewpointCallback.d.ts +29 -0
  100. package/src/callback/goToViewpointCallback.js +2 -2
  101. package/src/callback/vcsCallback.d.ts +44 -0
  102. package/src/callback/vcsCallback.js +4 -9
  103. package/src/components/ImageElementInjector.vue.d.ts +24 -0
  104. package/src/components/buttons/VcsActionButtonList.vue +24 -16
  105. package/src/components/buttons/VcsActionButtonList.vue.d.ts +68 -0
  106. package/src/components/buttons/VcsButton.vue +7 -0
  107. package/src/components/buttons/VcsButton.vue.d.ts +89 -0
  108. package/src/components/buttons/VcsFormButton.vue +9 -0
  109. package/src/components/buttons/VcsFormButton.vue.d.ts +91 -0
  110. package/src/components/buttons/VcsToolButton.vue +9 -0
  111. package/src/components/buttons/VcsToolButton.vue.d.ts +91 -0
  112. package/src/components/flight/VcsFlightAnchorsComponent.vue +329 -0
  113. package/src/components/flight/VcsFlightAnchorsComponent.vue.d.ts +45 -0
  114. package/src/components/flight/VcsFlightComponent.vue +284 -0
  115. package/src/components/flight/VcsFlightComponent.vue.d.ts +104 -0
  116. package/src/components/flight/VcsFlightEditor.vue +77 -0
  117. package/src/components/flight/VcsFlightEditor.vue.d.ts +34 -0
  118. package/src/components/flight/VcsFlightPlayer.vue +124 -0
  119. package/src/components/flight/VcsFlightPlayer.vue.d.ts +25 -0
  120. package/src/components/flight/composables.d.ts +11 -0
  121. package/src/components/flight/composables.js +39 -0
  122. package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +18 -0
  123. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +82 -0
  124. package/src/components/form-inputs-controls/VcsCoordinate.vue +152 -0
  125. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +90 -0
  126. package/src/components/form-inputs-controls/VcsDatePicker.vue +2 -2
  127. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +31 -0
  128. package/src/components/form-inputs-controls/VcsExtent.vue +122 -0
  129. package/src/components/form-inputs-controls/VcsExtent.vue.d.ts +36 -0
  130. package/src/components/form-inputs-controls/VcsFormSection.vue +6 -1
  131. package/src/components/form-inputs-controls/VcsFormSection.vue.d.ts +75 -0
  132. package/src/components/form-inputs-controls/VcsLabel.vue +18 -0
  133. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +41 -0
  134. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +32 -0
  135. package/src/components/form-inputs-controls/VcsRadioGrid.vue.d.ts +35 -0
  136. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +31 -0
  137. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +2 -0
  138. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +22 -0
  139. package/src/components/form-inputs-controls/VcsTextField.vue +57 -10
  140. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +65 -0
  141. package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +14 -0
  142. package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +89 -0
  143. package/src/components/form-inputs-controls/composables.d.ts +7 -0
  144. package/src/components/form-inputs-controls/composables.js +1 -1
  145. package/src/components/form-output/VcsFormattedNumber.vue +13 -2
  146. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +89 -0
  147. package/src/components/icons/+all.d.ts +9 -0
  148. package/src/components/icons/+all.js +16 -0
  149. package/src/components/icons/2DAreaIcon.vue.d.ts +2 -0
  150. package/src/components/icons/2DDistanceIcon.vue.d.ts +2 -0
  151. package/src/components/icons/2DHeightObliqueIcon.vue +20 -0
  152. package/src/components/icons/2DHeightObliqueIcon.vue.d.ts +2 -0
  153. package/src/components/icons/3DAreaIcon.vue.d.ts +2 -0
  154. package/src/components/icons/3DDistanceIcon.vue.d.ts +2 -0
  155. package/src/components/icons/3DHeightIcon.vue.d.ts +2 -0
  156. package/src/components/icons/AngleIcon.vue.d.ts +2 -0
  157. package/src/components/icons/AssociationsIcon.vue.d.ts +2 -0
  158. package/src/components/icons/AxisIcon.vue.d.ts +2 -0
  159. package/src/components/icons/BoundingBoxIcon.vue.d.ts +2 -0
  160. package/src/components/icons/CheckboxCheckedIcon.vue.d.ts +2 -0
  161. package/src/components/icons/CheckboxIcon.vue.d.ts +2 -0
  162. package/src/components/icons/CheckboxIndeterminateIcon.vue.d.ts +2 -0
  163. package/src/components/icons/CircleIcon.vue.d.ts +2 -0
  164. package/src/components/icons/ClippingHorizontalIcon.vue.d.ts +2 -0
  165. package/src/components/icons/ClippingIcon.vue.d.ts +2 -0
  166. package/src/components/icons/ClippingVerticalIcon.vue.d.ts +2 -0
  167. package/src/components/icons/ColorPickerIcon.vue.d.ts +2 -0
  168. package/src/components/icons/ColorSwatchIcon.vue.d.ts +2 -0
  169. package/src/components/icons/CommentIcon.vue.d.ts +2 -0
  170. package/src/components/icons/CompassIcon.vue.d.ts +2 -0
  171. package/src/components/icons/ComponentsIcon.vue.d.ts +2 -0
  172. package/src/components/icons/ComponentsPlusIcon.vue +17 -0
  173. package/src/components/icons/ComponentsPlusIcon.vue.d.ts +2 -0
  174. package/src/components/icons/ConeIcon.vue.d.ts +2 -0
  175. package/src/components/icons/DimensionsHouseIcon.vue.d.ts +2 -0
  176. package/src/components/icons/EditIcon.vue.d.ts +2 -0
  177. package/src/components/icons/EditVerticesIcon.vue.d.ts +2 -0
  178. package/src/components/icons/ElevationProfileIcon.vue.d.ts +2 -0
  179. package/src/components/icons/ExportAreaIcon.vue.d.ts +2 -0
  180. package/src/components/icons/ExportFlightIcon.vue.d.ts +2 -0
  181. package/src/components/icons/ExportIcon.vue.d.ts +2 -0
  182. package/src/components/icons/ExternalLinkIcon.vue.d.ts +2 -0
  183. package/src/components/icons/EyeIcon.vue.d.ts +2 -0
  184. package/src/components/icons/FastForwardIcon.vue.d.ts +2 -0
  185. package/src/components/icons/FilterIcon.vue.d.ts +2 -0
  186. package/src/components/icons/GlobalTerrainIcon.vue.d.ts +2 -0
  187. package/src/components/icons/GlobeNatureIcon.vue.d.ts +2 -0
  188. package/src/components/icons/GroundIcon.vue.d.ts +2 -0
  189. package/src/components/icons/HealthCareIndustriesIcon.vue.d.ts +2 -0
  190. package/src/components/icons/HelpIcon.vue.d.ts +2 -0
  191. package/src/components/icons/HideIcon.vue.d.ts +2 -0
  192. package/src/components/icons/HomePointIcon.vue.d.ts +2 -0
  193. package/src/components/icons/HospitalsIcon.vue.d.ts +2 -0
  194. package/src/components/icons/HouseIcon.vue.d.ts +2 -0
  195. package/src/components/icons/ImportIcon.vue.d.ts +2 -0
  196. package/src/components/icons/InfoIcon.vue.d.ts +2 -0
  197. package/src/components/icons/KebabIcon.vue.d.ts +2 -0
  198. package/src/components/icons/LabelIcon.vue.d.ts +2 -0
  199. package/src/components/icons/LayersIcon.vue.d.ts +2 -0
  200. package/src/components/icons/LegendIcon.vue.d.ts +2 -0
  201. package/src/components/icons/LineIcon.vue.d.ts +2 -0
  202. package/src/components/icons/LinkIcon.vue.d.ts +2 -0
  203. package/src/components/icons/LogoutIcon.vue.d.ts +2 -0
  204. package/src/components/icons/MapIcon.vue.d.ts +2 -0
  205. package/src/components/icons/MenuIcon.vue.d.ts +2 -0
  206. package/src/components/icons/MinusIcon.vue.d.ts +2 -0
  207. package/src/components/icons/MultiViewIcon.vue +16 -0
  208. package/src/components/icons/MultiViewIcon.vue.d.ts +2 -0
  209. package/src/components/icons/ObjectAttributeIcon.vue.d.ts +2 -0
  210. package/src/components/icons/ObjectSelectIcon.vue.d.ts +2 -0
  211. package/src/components/icons/ObliqueViewIcon.vue.d.ts +2 -0
  212. package/src/components/icons/PdfIcon.vue.d.ts +2 -0
  213. package/src/components/icons/PedestrianIcon.vue.d.ts +2 -0
  214. package/src/components/icons/PenIcon.vue.d.ts +2 -0
  215. package/src/components/icons/PlayCircleIcon.vue.d.ts +2 -0
  216. package/src/components/icons/PlusIcon.vue.d.ts +2 -0
  217. package/src/components/icons/PoiIcon.vue.d.ts +2 -0
  218. package/src/components/icons/PointIcon.vue.d.ts +2 -0
  219. package/src/components/icons/PointMeasurementIcon.vue +36 -0
  220. package/src/components/icons/PointMeasurementIcon.vue.d.ts +2 -0
  221. package/src/components/icons/PointSelectIcon.vue.d.ts +2 -0
  222. package/src/components/icons/PresentationModeIcon.vue.d.ts +2 -0
  223. package/src/components/icons/ProgressIcon.vue.d.ts +2 -0
  224. package/src/components/icons/QueryIcon.vue.d.ts +2 -0
  225. package/src/components/icons/RectangleIcon.vue.d.ts +2 -0
  226. package/src/components/icons/ReturnIcon.vue.d.ts +2 -0
  227. package/src/components/icons/RewindIcon.vue.d.ts +2 -0
  228. package/src/components/icons/RotateLeftIcon.vue.d.ts +2 -0
  229. package/src/components/icons/RotateRightIcon.vue.d.ts +2 -0
  230. package/src/components/icons/ScreenshotIcon.vue.d.ts +2 -0
  231. package/src/components/icons/SearchIcon.vue.d.ts +2 -0
  232. package/src/components/icons/ShadowIcon.vue.d.ts +2 -0
  233. package/src/components/icons/ShapesIcon.vue.d.ts +2 -0
  234. package/src/components/icons/ShareIcon.vue.d.ts +2 -0
  235. package/src/components/icons/SimpleCircleFilledIcon.vue.d.ts +2 -0
  236. package/src/components/icons/SimpleCircleHalfFilledIcon.vue.d.ts +2 -0
  237. package/src/components/icons/SimpleCircleOutlinedIcon.vue.d.ts +2 -0
  238. package/src/components/icons/SkipNextIcon.vue.d.ts +2 -0
  239. package/src/components/icons/SkipPreviousIcon.vue.d.ts +2 -0
  240. package/src/components/icons/SplitViewIcon.vue.d.ts +2 -0
  241. package/src/components/icons/TerrainBoxIcon.vue.d.ts +2 -0
  242. package/src/components/icons/TextStyleIcon.vue.d.ts +2 -0
  243. package/src/components/icons/ThreeDimensionsIcon.vue.d.ts +2 -0
  244. package/src/components/icons/ToolsIcon.vue.d.ts +2 -0
  245. package/src/components/icons/TouchIcon.vue.d.ts +2 -0
  246. package/src/components/icons/TrashCanIcon.vue.d.ts +2 -0
  247. package/src/components/icons/TriangleIcon.vue.d.ts +2 -0
  248. package/src/components/icons/TwoDimensionsIcon.vue.d.ts +2 -0
  249. package/src/components/icons/UploadIcon.vue.d.ts +2 -0
  250. package/src/components/icons/UserProfileIcon.vue.d.ts +2 -0
  251. package/src/components/icons/UserShareIcon.vue.d.ts +2 -0
  252. package/src/components/icons/VideoRecorderIcon.vue.d.ts +2 -0
  253. package/src/components/icons/ViewpointFlightIcon.vue.d.ts +2 -0
  254. package/src/components/icons/ViewpointIcon.vue.d.ts +2 -0
  255. package/src/components/icons/Viewshed360Icon.vue.d.ts +2 -0
  256. package/src/components/icons/ViewshedConeIcon.vue.d.ts +2 -0
  257. package/src/components/icons/ViewshedIcon.vue.d.ts +2 -0
  258. package/src/components/icons/WalkingIcon.vue.d.ts +2 -0
  259. package/src/components/icons/WallIcon.vue.d.ts +2 -0
  260. package/src/components/icons/WandIcon.vue.d.ts +2 -0
  261. package/src/components/import/FileDrop.vue +69 -0
  262. package/src/components/import/FileDrop.vue.d.ts +26 -0
  263. package/src/components/import/ImportComponent.vue +78 -0
  264. package/src/components/import/ImportComponent.vue.d.ts +34 -0
  265. package/src/components/lists/VcsActionList.vue +8 -15
  266. package/src/components/lists/VcsActionList.vue.d.ts +66 -0
  267. package/src/components/lists/VcsList.vue +207 -116
  268. package/src/components/lists/VcsList.vue.d.ts +227 -0
  269. package/src/components/lists/VcsTreeview.vue +3 -1
  270. package/src/components/lists/VcsTreeview.vue.d.ts +28 -0
  271. package/src/components/lists/VcsTreeviewLeaf.vue +1 -0
  272. package/src/components/lists/VcsTreeviewLeaf.vue.d.ts +19 -0
  273. package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +41 -0
  274. package/src/components/notification/VcsBadge.vue.d.ts +14 -0
  275. package/src/components/notification/VcsHelp.vue.d.ts +22 -0
  276. package/src/components/notification/VcsTooltip.vue.d.ts +27 -0
  277. package/src/components/notification/validation.d.ts +8 -0
  278. package/src/components/notification/validation.js +3 -2
  279. package/src/components/plugins/AbstractConfigEditor.vue +25 -4
  280. package/src/components/plugins/AbstractConfigEditor.vue.d.ts +55 -0
  281. package/src/components/style/MenuWrapper.vue.d.ts +55 -0
  282. package/src/components/style/VcsFeatureStyleComponent.vue +389 -0
  283. package/src/components/style/VcsFeatureStyleComponent.vue.d.ts +31 -0
  284. package/src/components/style/VcsFillMenu.vue.d.ts +34 -0
  285. package/src/components/style/VcsFillSelector.vue.d.ts +22 -0
  286. package/src/components/style/VcsImageMenu.vue.d.ts +43 -0
  287. package/src/components/style/VcsImageSelector.vue.d.ts +128 -0
  288. package/src/components/style/VcsStrokeMenu.vue.d.ts +34 -0
  289. package/src/components/style/VcsStrokeSelector.vue.d.ts +23 -0
  290. package/src/components/style/VcsTextMenu.vue.d.ts +52 -0
  291. package/src/components/style/VcsTextSelector.vue.d.ts +58 -0
  292. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +76 -0
  293. package/src/components/style/composables.d.ts +43 -0
  294. package/src/components/style/composables.js +11 -8
  295. package/src/components/tables/VcsDataTable.vue +11 -3
  296. package/src/components/tables/VcsDataTable.vue.d.ts +142 -0
  297. package/src/components/tables/VcsTable.vue +71 -2
  298. package/src/components/tables/VcsTable.vue.d.ts +88 -0
  299. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +392 -0
  300. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +87 -0
  301. package/src/components/vector-properties/VcsFeatureTransforms.vue +217 -0
  302. package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +45 -0
  303. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +96 -52
  304. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +119 -0
  305. package/src/components/vector-properties/composables.d.ts +33 -0
  306. package/src/components/vector-properties/composables.js +21 -14
  307. package/src/components/viewpoint/VcsViewpointComponent.vue +514 -0
  308. package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +126 -0
  309. package/src/components/viewpoint/VcsViewpointEditor.vue +87 -0
  310. package/src/components/viewpoint/VcsViewpointEditor.vue.d.ts +25 -0
  311. package/src/contentTree/LayerTree.vue.d.ts +15 -0
  312. package/src/contentTree/contentTreeCollection.d.ts +113 -0
  313. package/src/contentTree/contentTreeCollection.js +10 -20
  314. package/src/contentTree/contentTreeItem.d.ts +334 -0
  315. package/src/contentTree/contentTreeItem.js +31 -17
  316. package/src/contentTree/flightContentTreeItem.d.ts +53 -0
  317. package/src/contentTree/flightContentTreeItem.js +201 -0
  318. package/src/contentTree/groupContentTreeItem.d.ts +14 -0
  319. package/src/contentTree/groupContentTreeItem.js +2 -2
  320. package/src/contentTree/layerContentTreeItem.d.ts +76 -0
  321. package/src/contentTree/layerContentTreeItem.js +7 -9
  322. package/src/contentTree/layerGroupContentTreeItem.d.ts +50 -0
  323. package/src/contentTree/layerGroupContentTreeItem.js +2 -3
  324. package/src/contentTree/nodeContentTreeItem.d.ts +10 -0
  325. package/src/contentTree/nodeContentTreeItem.js +2 -2
  326. package/src/contentTree/obliqueCollectionContentTreeItem.d.ts +46 -0
  327. package/src/contentTree/obliqueCollectionContentTreeItem.js +3 -5
  328. package/src/contentTree/subContentTreeItem.d.ts +15 -0
  329. package/src/contentTree/subContentTreeItem.js +3 -3
  330. package/src/contentTree/vcsObjectContentTreeItem.d.ts +56 -0
  331. package/src/contentTree/vcsObjectContentTreeItem.js +3 -4
  332. package/src/contentTree/viewpointContentTreeItem.d.ts +46 -0
  333. package/src/contentTree/viewpointContentTreeItem.js +3 -4
  334. package/src/downloadHelper.d.ts +27 -0
  335. package/src/featureInfo/AddressBalloonComponent.vue.d.ts +2 -0
  336. package/src/featureInfo/BalloonComponent.vue +16 -3
  337. package/src/featureInfo/BalloonComponent.vue.d.ts +61 -0
  338. package/src/featureInfo/abstractFeatureInfoView.d.ts +199 -0
  339. package/src/featureInfo/abstractFeatureInfoView.js +82 -18
  340. package/src/featureInfo/addressBalloonFeatureInfoView.d.ts +67 -0
  341. package/src/featureInfo/addressBalloonFeatureInfoView.js +9 -2
  342. package/src/featureInfo/balloonFeatureInfoView.d.ts +49 -0
  343. package/src/featureInfo/balloonFeatureInfoView.js +12 -11
  344. package/src/featureInfo/balloonHelper.d.ts +31 -0
  345. package/src/featureInfo/balloonHelper.js +6 -6
  346. package/src/featureInfo/featureInfo.d.ts +146 -0
  347. package/src/featureInfo/featureInfo.js +11 -16
  348. package/src/featureInfo/featureInfoInteraction.d.ts +21 -0
  349. package/src/featureInfo/featureInfoInteraction.js +2 -2
  350. package/src/featureInfo/iframeFeatureInfoView.d.ts +48 -0
  351. package/src/featureInfo/iframeFeatureInfoView.js +3 -5
  352. package/src/featureInfo/tableFeatureInfoView.d.ts +75 -0
  353. package/src/featureInfo/tableFeatureInfoView.js +19 -9
  354. package/src/i18n/de.d.ts +353 -0
  355. package/src/i18n/de.js +114 -2
  356. package/src/i18n/en.d.ts +352 -0
  357. package/src/i18n/en.js +113 -1
  358. package/src/i18n/i18nCollection.d.ts +82 -0
  359. package/src/i18n/i18nCollection.js +3 -3
  360. package/src/init.d.ts +58 -0
  361. package/src/init.js +3 -5
  362. package/src/legend/StyleLegendItem.vue.d.ts +25 -0
  363. package/src/legend/VcsLegend.vue.d.ts +20 -0
  364. package/src/legend/legendHelper.d.ts +172 -0
  365. package/src/legend/legendHelper.js +21 -21
  366. package/src/manager/buttonManager.d.ts +106 -0
  367. package/src/manager/buttonManager.js +8 -4
  368. package/src/manager/collectionManager/CollectionComponent.vue +38 -42
  369. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +17 -0
  370. package/src/manager/collectionManager/CollectionComponentList.vue +53 -18
  371. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +38 -0
  372. package/src/manager/collectionManager/CollectionComponentProvider.vue +3 -2
  373. package/src/manager/collectionManager/CollectionComponentProvider.vue.d.ts +12 -0
  374. package/src/manager/collectionManager/CollectionManager.vue +29 -4
  375. package/src/manager/collectionManager/CollectionManager.vue.d.ts +8 -0
  376. package/src/manager/collectionManager/categoryManager.d.ts +56 -0
  377. package/src/manager/collectionManager/categoryManager.js +21 -7
  378. package/src/manager/collectionManager/collectionComponentClass.d.ts +257 -0
  379. package/src/manager/collectionManager/{collectionComponent.js → collectionComponentClass.js} +210 -57
  380. package/src/manager/collectionManager/collectionManager.d.ts +200 -0
  381. package/src/manager/collectionManager/collectionManager.js +45 -39
  382. package/src/manager/collectionManager/editorCollectionComponentClass.d.ts +60 -0
  383. package/src/manager/collectionManager/editorCollectionComponentClass.js +295 -0
  384. package/src/manager/contextMenu/ContextMenuComponent.vue.d.ts +18 -0
  385. package/src/manager/contextMenu/contextMenuInteraction.d.ts +24 -0
  386. package/src/manager/contextMenu/contextMenuManager.d.ts +70 -0
  387. package/src/manager/contextMenu/contextMenuManager.js +5 -5
  388. package/src/manager/navbarManager.d.ts +60 -0
  389. package/src/manager/navbarManager.js +10 -6
  390. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +17 -0
  391. package/src/manager/toolbox/SelectToolboxComponent.vue +1 -0
  392. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +15 -0
  393. package/src/manager/toolbox/ToolboxManager.vue +33 -7
  394. package/src/manager/toolbox/ToolboxManager.vue.d.ts +21 -0
  395. package/src/manager/toolbox/toolboxManager.d.ts +177 -0
  396. package/src/manager/toolbox/toolboxManager.js +86 -31
  397. package/src/manager/window/WindowComponent.vue.d.ts +40 -0
  398. package/src/manager/window/WindowComponentHeader.vue +1 -1
  399. package/src/manager/window/WindowComponentHeader.vue.d.ts +36 -0
  400. package/src/manager/window/WindowManager.vue +1 -0
  401. package/src/manager/window/WindowManager.vue.d.ts +19 -0
  402. package/src/manager/window/windowHelper.d.ts +134 -0
  403. package/src/manager/window/windowHelper.js +20 -20
  404. package/src/manager/window/windowManager.d.ts +422 -0
  405. package/src/manager/window/windowManager.js +95 -40
  406. package/src/navigation/MapNavCompass.vue.d.ts +25 -0
  407. package/src/navigation/MapNavigation.vue +2 -2
  408. package/src/navigation/MapNavigation.vue.d.ts +46 -0
  409. package/src/navigation/ObliqueRotation.vue +8 -4
  410. package/src/navigation/ObliqueRotation.vue.d.ts +14 -0
  411. package/src/navigation/OrientationToolsButton.vue.d.ts +30 -0
  412. package/src/navigation/TiltSlider.vue.d.ts +19 -0
  413. package/src/navigation/VcsCompass.vue.d.ts +25 -0
  414. package/src/navigation/VcsZoomButton.vue +6 -3
  415. package/src/navigation/VcsZoomButton.vue.d.ts +2 -0
  416. package/src/navigation/overviewMap.d.ts +199 -0
  417. package/src/navigation/overviewMap.js +3 -7
  418. package/src/navigation/overviewMapClickedInteraction.d.ts +21 -0
  419. package/src/notifier/NotifierComponent.vue.d.ts +10 -0
  420. package/src/notifier/notifier.d.ts +53 -0
  421. package/src/notifier/notifier.js +0 -1
  422. package/src/pluginHelper.d.ts +67 -0
  423. package/src/pluginHelper.js +11 -9
  424. package/src/search/ResultItem.vue.d.ts +25 -0
  425. package/src/search/ResultsComponent.vue +1 -1
  426. package/src/search/ResultsComponent.vue.d.ts +24 -0
  427. package/src/search/SearchComponent.vue +1 -1
  428. package/src/search/SearchComponent.vue.d.ts +10 -0
  429. package/src/search/search.d.ts +129 -0
  430. package/src/search/search.js +8 -11
  431. package/src/setup.d.ts +1 -0
  432. package/src/state.d.ts +57 -0
  433. package/src/state.js +7 -5
  434. package/src/uiConfig.d.ts +99 -0
  435. package/src/uiConfig.js +17 -7
  436. package/src/vcsUiApp.d.ts +301 -0
  437. package/src/vcsUiApp.js +58 -54
  438. package/src/vuePlugins/i18n.d.ts +10 -0
  439. package/src/vuePlugins/i18n.js +3 -3
  440. package/src/vuePlugins/vuetify.d.ts +27 -0
  441. package/tsconfig.json +36 -0
  442. package/dist/assets/index-661636d9.js +0 -1
  443. package/plugins/@vcmap-show-case/window-tester/src/toolboxData.js +0 -288
@@ -7,108 +7,117 @@
7
7
  />
8
8
  <v-list dense>
9
9
  <v-list-item v-if="showTitle" class="font-weight-bold">
10
- <v-list-item-action v-if="selectable">
11
- <v-spacer v-if="singleSelect" />
12
- <v-icon
13
- v-else-if="
14
- selected.length ===
15
- renderingItems.filter((item) => !item.disabled).length
16
- "
17
- @click="clear"
18
- >
19
- mdi-check-circle
20
- </v-icon>
21
- <v-icon
22
- v-else-if="
23
- selected.length > 0 && selected.length < renderingItems.length
24
- "
25
- @click="selectAll()"
26
- >
27
- mdi-minus-circle
28
- </v-icon>
29
- <v-icon v-else @click="selectAll()"> mdi-circle-outline </v-icon>
30
- </v-list-item-action>
31
10
  <v-list-item-content>
32
11
  <v-icon v-if="icon">
33
12
  {{ icon }}
34
13
  </v-icon>
35
- <VcsTooltip :tooltip="$t(listHeaderTooltip)">
36
- <template #activator="{ on, attrs }">
37
- <v-list-item-title v-bind="attrs" v-on="on" ref="listHeader">
38
- {{ $t(title) }}
39
- </v-list-item-title>
40
- </template>
41
- </VcsTooltip>
14
+ <v-list-item-title>
15
+ <VcsTooltip :tooltip="$t(listHeaderTooltip)">
16
+ <template #activator="{ on, attrs }">
17
+ <span v-bind="attrs" v-on="on" ref="listHeader">
18
+ {{ $t(title) }}
19
+ </span>
20
+ </template>
21
+ </VcsTooltip>
22
+ <span v-if="selectable && selected.length > 0">
23
+ {{ `(${selected.length})` }}
24
+ </span>
25
+ </v-list-item-title>
42
26
  <vcs-action-button-list
43
- v-if="actions?.length > 0"
44
- :actions="actions"
27
+ v-if="renderingActions?.length > 0"
28
+ :actions="renderingActions"
45
29
  :block-overflow="true"
46
30
  :overflow-count="actionButtonListOverflowCount"
47
31
  />
48
32
  </v-list-item-content>
49
33
  </v-list-item>
50
- <v-list-item
51
- v-for="(item, index) in renderingItems"
52
- :key="`item-${index}`"
53
- :input-value="selected.includes(item)"
54
- :disabled="item.disabled"
55
- @mousedown.shift="$event.preventDefault()"
56
- @mouseover="hovering = index"
57
- @mouseout="hovering = undefined"
58
- :draggable="isDraggable"
59
- @dragstart="drag($event, item, index)"
60
- @mouseup="drop($event, index)"
61
- :class="{
62
- 'v-list-item__lighten_even': lightenEven,
63
- 'v-list-item__lighten_odd': !lightenEven,
64
- 'vcs-draggable-item': isDraggable,
65
- 'v-list-item__dragged': dragging === index,
66
- 'border-bottom': borderBottom(index),
67
- 'border-top': borderTop(index),
68
- }"
69
- >
70
- <v-list-item-action v-if="selectable">
71
- <v-icon v-if="selected.includes(item)" @click="remove(item)">
72
- mdi-check-circle
73
- </v-icon>
74
- <v-icon
75
- v-else
76
- @click="singleSelect ? select(item, $event) : add(item)"
77
- >
78
- mdi-circle-outline
79
- </v-icon>
80
- </v-list-item-action>
81
- <v-list-item-content
82
- :class="[selectable && !isDraggable ? 'cursor-pointer' : '']"
83
- @click="select(item, $event)"
34
+ <template v-for="(item, index) in renderingItems">
35
+ <v-list-item
36
+ :key="`item-${index}`"
37
+ :input-value="selected.includes(item)"
38
+ :disabled="item.disabled"
39
+ @mousedown.shift="$event.preventDefault()"
40
+ @mouseover="hovering = index"
41
+ @mouseout="hovering = undefined"
42
+ :draggable="isDraggable"
43
+ @dragstart="drag($event, item, index)"
44
+ @mouseup="drop($event, index)"
45
+ color="primary"
46
+ :class="{
47
+ 'v-list-item__selected': selected.includes(item),
48
+ 'v-list-item__lighten_even': lightenEven,
49
+ 'v-list-item__lighten_odd': !lightenEven,
50
+ 'vcs-draggable-item': isDraggable,
51
+ 'v-list-item__dragged': dragging === index,
52
+ 'border-bottom': borderBottom(index),
53
+ 'border-top': borderTop(index),
54
+ }"
84
55
  >
85
- <v-icon v-if="item.icon">
86
- {{ item.icon }}
87
- </v-icon>
88
- <VcsTooltip
89
- :tooltip="
90
- dragging !== undefined
91
- ? undefined
92
- : $t(item.tooltip || overflowTitle(index, item.title))
93
- "
56
+ <v-list-item-content
57
+ :class="[selectable && !isDraggable ? 'cursor-pointer' : '']"
58
+ @click="select(item, $event)"
94
59
  >
95
- <template #activator="{ on, attrs }">
96
- <v-list-item-title v-bind="attrs" v-on="on" ref="titles">
97
- {{ $t(item.title) }}
98
- </v-list-item-title>
99
- </template>
100
- </VcsTooltip>
101
- </v-list-item-content>
102
- <VcsBadge v-if="item.hasUpdate" :color="'warning'" />
103
- <v-list-item-action>
104
- <vcs-action-button-list
105
- v-if="item.actions?.length > 0"
106
- :actions="item.actions"
107
- :block-overflow="true"
108
- :overflow-count="actionButtonListOverflowCount"
109
- />
110
- </v-list-item-action>
111
- </v-list-item>
60
+ <v-icon v-if="item.icon">
61
+ {{ item.icon }}
62
+ </v-icon>
63
+ <VcsTooltip
64
+ :tooltip="
65
+ dragging !== undefined
66
+ ? undefined
67
+ : $t(item.tooltip || overflowTitle(index, item.title))
68
+ "
69
+ >
70
+ <template #activator="{ on, attrs }">
71
+ <v-list-item-title
72
+ v-bind="attrs"
73
+ v-on="on"
74
+ ref="titles"
75
+ class="d-flex gap-2"
76
+ >
77
+ <slot name="item.prepend-title" :item="item" :index="index" />
78
+ <slot name="item.title" :item="item" :index="index">
79
+ <VcsTextField
80
+ v-if="item.rename"
81
+ :value="item.title"
82
+ autofocus
83
+ :no-padding="true"
84
+ @input="(value) => rename(item, value)"
85
+ @click.stop
86
+ @keydown.enter="item.rename = false"
87
+ @blur="item.rename = false"
88
+ :rules="[(v) => !!v || 'components.validation.required']"
89
+ />
90
+ <span v-else>
91
+ {{ $t(item.title) }}
92
+ </span>
93
+ </slot>
94
+ <slot
95
+ name="item.append-title"
96
+ :item="item"
97
+ :index="index"
98
+ class="ml-auto"
99
+ />
100
+ </v-list-item-title>
101
+ </template>
102
+ </VcsTooltip>
103
+ </v-list-item-content>
104
+ <VcsBadge v-if="item.hasUpdate" :color="'warning'" />
105
+ <v-list-item-action>
106
+ <vcs-action-button-list
107
+ v-if="item.actions?.length > 0"
108
+ :actions="item.actions"
109
+ :disabled="item.disabled"
110
+ :block-overflow="true"
111
+ :overflow-count="actionButtonListOverflowCount"
112
+ />
113
+ </v-list-item-action>
114
+ </v-list-item>
115
+ <slot name="item.intermediate" :item="item" :index="index" />
116
+ <div
117
+ v-if="hasIntermediateSlot"
118
+ :key="`item-intermediate-child-balance-${index}`"
119
+ />
120
+ </template>
112
121
  </v-list>
113
122
  </div>
114
123
  </template>
@@ -122,24 +131,65 @@
122
131
  VListItemAction,
123
132
  VIcon,
124
133
  VListItemTitle,
125
- VSpacer,
126
134
  } from 'vuetify/lib';
127
135
  import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
128
136
  import VcsTooltip from '../notification/VcsTooltip.vue';
129
137
  import VcsTreeviewSearchbar from './VcsTreeviewSearchbar.vue';
130
138
  import VcsBadge from '../notification/VcsBadge.vue';
139
+ import VcsTextField from '../form-inputs-controls/VcsTextField.vue';
140
+
141
+ /**
142
+ * @param {import("vue").Ref<VcsListItem[]>} items
143
+ * @param {import("vue").Ref<VcsListItem[]>} selected
144
+ * @param {function(string, ...any[]):void} emit
145
+ * @returns {Array<import("../../actions/actionHelper.js").VcsAction>}
146
+ */
147
+ export function createSelectionActions(items, selected, emit) {
148
+ return [
149
+ {
150
+ name: 'list.selectAll',
151
+ tooltip: 'list.selectAll',
152
+ callback() {
153
+ const currentSelection = [...selected.value];
154
+ selected.value = items.value.filter((item) => !item.disabled);
155
+ selected.value.forEach((item) => {
156
+ if (item.selectionChanged && !currentSelection.includes(item)) {
157
+ item.selectionChanged(true);
158
+ }
159
+ });
160
+ emit('input', selected.value);
161
+ },
162
+ },
163
+ {
164
+ name: 'list.clearSelection',
165
+ tooltip: 'list.clearSelection',
166
+ callback() {
167
+ [...selected.value].forEach((item) => {
168
+ if (item.selectionChanged) {
169
+ item.selectionChanged(false);
170
+ }
171
+ });
172
+ selected.value = [];
173
+ emit('input', selected.value);
174
+ },
175
+ },
176
+ ];
177
+ }
131
178
 
132
179
  /**
133
180
  * @typedef {Object} VcsListItem
134
181
  * @property {string} name
135
182
  * @property {boolean} [visible] - Whether to display this item or not.
136
183
  * @property {boolean} [disabled] - Whether this item should be displayed as disabled.
184
+ * @property {boolean} [rename] - Whether the title of this item is currently in edit mode.
137
185
  * @property {string} title - The title to be displayed
138
186
  * @property {string} [tooltip]
139
187
  * @property {string|HTMLCanvasElement|HTMLImageElement|undefined} [icon] - An optional icon to display with this item. Can be a URL or HTMLElement.
140
188
  * @property {boolean} [hasUpdate] - Shows badge, if item has an update.
141
- * @property {Array<VcsAction>} [actions]
189
+ * @property {Array<import("../../actions/actionHelper.js").VcsAction>} [actions]
190
+ * @property {Array<function(PointerEvent):void>|undefined} [clickedCallbacks] - An array of callbacks called on item click. called before selection update
142
191
  * @property {function(boolean):void} [selectionChanged] - A callback called if the selection changes with the current selection status. called before value update
192
+ * @property {function(string):void} [titleChanged] - A callback called if the title changes via rename action. called before value update
143
193
  */
144
194
 
145
195
  /**
@@ -148,6 +198,12 @@
148
198
  * @property {number} targetIndex
149
199
  */
150
200
 
201
+ /**
202
+ * @typedef {Object} ItemRenamedEvent
203
+ * @property {VcsListItem} item
204
+ * @property {string} newTitle
205
+ */
206
+
151
207
  /**
152
208
  * @description
153
209
  * The VCS list is intended to render items. Items can be selectable (by default, more than one) or only a single item can
@@ -172,8 +228,13 @@
172
228
  * @vue-prop {string} [title] - the lists title
173
229
  * @vue-prop {string} [icon] - icon to prepend to the list title
174
230
  * @vue-prop {string} [tooltip] - tooltip to render on the list title
175
- * @vue-prop {Array<VcsAction>} [actions] - actions to render in the list title
231
+ * @vue-prop {Array<import("../../actions/actionHelper.js").VcsAction>} [actions] - actions to render in the list title
176
232
  * @vue-event {ItemMovedEvent} item-moved - event triggered after item was dragged and is dropped
233
+ * @vue-event {ItemRenamedEvent} item-renamed - event triggered after item was renamed
234
+ * @vue-data {slot} [#item.prepend-title] - A slot to adapt the list item titel, adding content before the title. Binds item and index.
235
+ * @vue-data {slot} [#item.title] - A slot to adapt the list item titel. Default content is a span or VcsTextField for active rename action. Binds item and index.
236
+ * @vue-data {slot} [#item.append-title] - A slot to adapt the list item titel, adding content after the title. Binds item and index.
237
+ * @vue-data {slot} [#item.intermediate] - A slot to introduce content, e.g. buttons between two list items. Binds item and index.
177
238
  */
178
239
  export default {
179
240
  name: 'VcsList',
@@ -188,7 +249,7 @@
188
249
  VListItemAction,
189
250
  VIcon,
190
251
  VListItemTitle,
191
- VSpacer,
252
+ VcsTextField,
192
253
  },
193
254
  props: {
194
255
  items: {
@@ -246,10 +307,10 @@
246
307
  actions: {
247
308
  type: Array,
248
309
  required: false,
249
- default: undefined,
310
+ default: () => [],
250
311
  },
251
312
  },
252
- setup(props, { emit }) {
313
+ setup(props, { emit, slots }) {
253
314
  /** @type {import("vue").Ref<Array<VcsListItem>>} */
254
315
  const selected = ref(props.value);
255
316
  /** @type {import("vue").Ref<string>} */
@@ -356,6 +417,33 @@
356
417
  }
357
418
  }
358
419
 
420
+ /**
421
+ * @type {import("vue").ComputedRef<Array<VcsListItem>>}
422
+ */
423
+ const renderingItems = computed(() => {
424
+ let items = props.items.filter((i) => i.visible !== false);
425
+ if (query.value) {
426
+ items = items.filter((i) => filterPredicate(i, query.value));
427
+ }
428
+ return items;
429
+ });
430
+
431
+ const selectionActions = createSelectionActions(
432
+ renderingItems,
433
+ selected,
434
+ emit,
435
+ );
436
+
437
+ /**
438
+ * @type {import("vue").ComputedRef<Array<import("../../actions/actionHelper.js").VcsAction>>}
439
+ */
440
+ const renderingActions = computed(() => {
441
+ if (props.selectable && !props.singleSelect) {
442
+ return [...selectionActions, ...props.actions];
443
+ }
444
+ return props.actions;
445
+ });
446
+
359
447
  return {
360
448
  query,
361
449
  hovering,
@@ -364,16 +452,14 @@
364
452
  borderBottom,
365
453
  borderTop,
366
454
  lightenEven,
455
+ /**
456
+ * @type {import("vue").ComputedRef<Array<import("../../actions/actionHelper.js").VcsAction>>}
457
+ */
458
+ renderingActions,
367
459
  /**
368
460
  * @type {import("vue").ComputedRef<Array<VcsListItem>>}
369
461
  */
370
- renderingItems: computed(() => {
371
- let items = props.items.filter((i) => i.visible !== false);
372
- if (query.value) {
373
- items = items.filter((i) => filterPredicate(i, query.value));
374
- }
375
- return items;
376
- }),
462
+ renderingItems,
377
463
  /** @type {import("vue").Ref<Array<VcsListItem>>} */
378
464
  selected,
379
465
  /**
@@ -381,6 +467,9 @@
381
467
  * @param {PointerEvent} event
382
468
  */
383
469
  select(item, event) {
470
+ if (Array.isArray(item.clickedCallbacks)) {
471
+ item.clickedCallbacks.forEach((cb) => cb(event));
472
+ }
384
473
  if (!props.selectable || item.disabled) {
385
474
  return;
386
475
  }
@@ -398,12 +487,12 @@
398
487
  } else if (event.shiftKey) {
399
488
  let firstIndex = 0;
400
489
  if (firstSelected) {
401
- firstIndex = this.renderingItems.indexOf(firstSelected);
490
+ firstIndex = renderingItems.value.indexOf(firstSelected);
402
491
  }
403
- const currentIndex = this.renderingItems.indexOf(item);
492
+ const currentIndex = renderingItems.value.indexOf(item);
404
493
  if (firstIndex > -1 && currentIndex > -1) {
405
494
  const currentSelection = [...selected.value];
406
- selected.value = this.renderingItems.slice(
495
+ selected.value = renderingItems.value.slice(
407
496
  Math.min(firstIndex, currentIndex),
408
497
  Math.max(firstIndex, currentIndex) + 1,
409
498
  );
@@ -490,16 +579,6 @@
490
579
  firstSelected = null;
491
580
  emit('input', selected.value);
492
581
  },
493
- selectAll() {
494
- const currentSelection = [...selected.value];
495
- selected.value = this.renderingItems.filter((item) => !item.disabled);
496
- selected.value.forEach((item) => {
497
- if (item.selectionChanged && !currentSelection.includes(item)) {
498
- item.selectionChanged(true);
499
- }
500
- });
501
- emit('input', selected.value);
502
- },
503
582
  drag,
504
583
  drop,
505
584
  titles,
@@ -521,6 +600,13 @@
521
600
  }
522
601
  return '';
523
602
  }),
603
+ rename(item, newTitle) {
604
+ if (newTitle) {
605
+ emit('item-renamed', { item, newTitle });
606
+ item.titleChanged?.(newTitle);
607
+ }
608
+ },
609
+ hasIntermediateSlot: computed(() => !!slots['item.intermediate']),
524
610
  };
525
611
  },
526
612
  };
@@ -542,6 +628,11 @@
542
628
  .v-list-item__dragged {
543
629
  background-color: var(--v-base-lighten2) !important;
544
630
  }
631
+ .v-list-item__selected {
632
+ border-left: solid 4px;
633
+ border-left-color: var(--v-primary-base);
634
+ padding-left: 12px !important;
635
+ }
545
636
  .v-list-item {
546
637
  padding: 4px 8px 4px 16px;
547
638
  &.vcs-draggable-item:hover {
@@ -0,0 +1,227 @@
1
+ /**
2
+ * @param {import("vue").Ref<VcsListItem[]>} items
3
+ * @param {import("vue").Ref<VcsListItem[]>} selected
4
+ * @param {function(string, ...any[]):void} emit
5
+ * @returns {Array<import("../../actions/actionHelper.js").VcsAction>}
6
+ */
7
+ export function createSelectionActions(items: import("vue").Ref<VcsListItem[]>, selected: import("vue").Ref<VcsListItem[]>, emit: (arg0: string, ...args: any[][]) => void): Array<import("../../actions/actionHelper.js").VcsAction>;
8
+ declare const _default: import("vue").DefineComponent<{
9
+ items: {
10
+ type: ArrayConstructor;
11
+ required: true;
12
+ };
13
+ draggable: {
14
+ type: BooleanConstructor;
15
+ default: boolean;
16
+ };
17
+ selectable: {
18
+ type: BooleanConstructor;
19
+ default: boolean;
20
+ };
21
+ singleSelect: {
22
+ type: BooleanConstructor;
23
+ default: boolean;
24
+ };
25
+ value: {
26
+ type: ArrayConstructor;
27
+ default: () => never[];
28
+ };
29
+ searchable: {
30
+ type: BooleanConstructor;
31
+ default: boolean;
32
+ };
33
+ searchbarPlaceholder: {
34
+ type: StringConstructor;
35
+ default: undefined;
36
+ };
37
+ showTitle: {
38
+ type: BooleanConstructor;
39
+ default: boolean;
40
+ };
41
+ actionButtonListOverflowCount: {
42
+ type: NumberConstructor;
43
+ required: false;
44
+ default: undefined;
45
+ };
46
+ title: {
47
+ type: StringConstructor;
48
+ required: false;
49
+ default: string;
50
+ };
51
+ icon: {
52
+ type: StringConstructor;
53
+ required: false;
54
+ default: undefined;
55
+ };
56
+ tooltip: {
57
+ type: StringConstructor;
58
+ required: false;
59
+ default: string;
60
+ };
61
+ actions: {
62
+ type: ArrayConstructor;
63
+ required: false;
64
+ default: () => never[];
65
+ };
66
+ }, {
67
+ query: import("vue").Ref<string>;
68
+ hovering: import("vue").Ref<number | undefined>;
69
+ dragging: import("vue").Ref<number | undefined>;
70
+ isDraggable: import("vue").ComputedRef<any>;
71
+ borderBottom: (index: any) => boolean;
72
+ borderTop: (index: any) => boolean;
73
+ lightenEven: import("vue").ComputedRef<boolean>;
74
+ /**
75
+ * @type {import("vue").ComputedRef<Array<import("../../actions/actionHelper.js").VcsAction>>}
76
+ */
77
+ renderingActions: import("vue").ComputedRef<Array<import("../../actions/actionHelper.js").VcsAction>>;
78
+ /**
79
+ * @type {import("vue").ComputedRef<Array<VcsListItem>>}
80
+ */
81
+ renderingItems: import("vue").ComputedRef<Array<VcsListItem>>;
82
+ /** @type {import("vue").Ref<Array<VcsListItem>>} */
83
+ selected: import("vue").Ref<Array<VcsListItem>>;
84
+ /**
85
+ * @param {VcsListItem} item
86
+ * @param {PointerEvent} event
87
+ */
88
+ select(item: VcsListItem, event: PointerEvent): void;
89
+ /**
90
+ * @param {VcsListItem} item
91
+ */
92
+ add(item: VcsListItem): void;
93
+ /**
94
+ * @param {VcsListItem} item
95
+ */
96
+ remove(item: VcsListItem): void;
97
+ clear(): void;
98
+ drag: (e: MouseEvent, item: VcsListItem, index: number) => void;
99
+ drop: (e: MouseEvent, targetIndex: number) => void;
100
+ titles: import("vue").Ref<never[]>;
101
+ overflowTitle(index: any, alternative: any): any;
102
+ listHeader: import("vue").Ref<null>;
103
+ listHeaderTooltip: import("vue").ComputedRef<any>;
104
+ rename(item: any, newTitle: any): void;
105
+ hasIntermediateSlot: import("vue").ComputedRef<boolean>;
106
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
107
+ items: {
108
+ type: ArrayConstructor;
109
+ required: true;
110
+ };
111
+ draggable: {
112
+ type: BooleanConstructor;
113
+ default: boolean;
114
+ };
115
+ selectable: {
116
+ type: BooleanConstructor;
117
+ default: boolean;
118
+ };
119
+ singleSelect: {
120
+ type: BooleanConstructor;
121
+ default: boolean;
122
+ };
123
+ value: {
124
+ type: ArrayConstructor;
125
+ default: () => never[];
126
+ };
127
+ searchable: {
128
+ type: BooleanConstructor;
129
+ default: boolean;
130
+ };
131
+ searchbarPlaceholder: {
132
+ type: StringConstructor;
133
+ default: undefined;
134
+ };
135
+ showTitle: {
136
+ type: BooleanConstructor;
137
+ default: boolean;
138
+ };
139
+ actionButtonListOverflowCount: {
140
+ type: NumberConstructor;
141
+ required: false;
142
+ default: undefined;
143
+ };
144
+ title: {
145
+ type: StringConstructor;
146
+ required: false;
147
+ default: string;
148
+ };
149
+ icon: {
150
+ type: StringConstructor;
151
+ required: false;
152
+ default: undefined;
153
+ };
154
+ tooltip: {
155
+ type: StringConstructor;
156
+ required: false;
157
+ default: string;
158
+ };
159
+ actions: {
160
+ type: ArrayConstructor;
161
+ required: false;
162
+ default: () => never[];
163
+ };
164
+ }>>, {
165
+ value: unknown[];
166
+ title: string;
167
+ tooltip: string;
168
+ icon: string;
169
+ actions: unknown[];
170
+ searchbarPlaceholder: string;
171
+ draggable: boolean;
172
+ selectable: boolean;
173
+ singleSelect: boolean;
174
+ searchable: boolean;
175
+ showTitle: boolean;
176
+ actionButtonListOverflowCount: number;
177
+ }>;
178
+ export default _default;
179
+ export type VcsListItem = {
180
+ name: string;
181
+ /**
182
+ * - Whether to display this item or not.
183
+ */
184
+ visible?: boolean | undefined;
185
+ /**
186
+ * - Whether this item should be displayed as disabled.
187
+ */
188
+ disabled?: boolean | undefined;
189
+ /**
190
+ * - Whether the title of this item is currently in edit mode.
191
+ */
192
+ rename?: boolean | undefined;
193
+ /**
194
+ * - The title to be displayed
195
+ */
196
+ title: string;
197
+ tooltip?: string | undefined;
198
+ /**
199
+ * - An optional icon to display with this item. Can be a URL or HTMLElement.
200
+ */
201
+ icon?: string | HTMLCanvasElement | HTMLImageElement | undefined;
202
+ /**
203
+ * - Shows badge, if item has an update.
204
+ */
205
+ hasUpdate?: boolean | undefined;
206
+ actions?: import("../../actions/actionHelper.js").VcsAction[] | undefined;
207
+ /**
208
+ * - An array of callbacks called on item click. called before selection update
209
+ */
210
+ clickedCallbacks?: Array<(arg0: PointerEvent) => void> | undefined;
211
+ /**
212
+ * - A callback called if the selection changes with the current selection status. called before value update
213
+ */
214
+ selectionChanged?: ((arg0: boolean) => void) | undefined;
215
+ /**
216
+ * - A callback called if the title changes via rename action. called before value update
217
+ */
218
+ titleChanged?: ((arg0: string) => void) | undefined;
219
+ };
220
+ export type ItemMovedEvent = {
221
+ item: VcsListItem;
222
+ targetIndex: number;
223
+ };
224
+ export type ItemRenamedEvent = {
225
+ item: VcsListItem;
226
+ newTitle: string;
227
+ };
@@ -18,7 +18,9 @@
18
18
  <VcsTreeviewLeaf
19
19
  :item="item"
20
20
  :class="[item.clickable ? 'cursor-pointer' : '']"
21
- @click.native="item.clickable && item.clicked($event)"
21
+ @click.native="
22
+ item.clickable && !item.disabled && item.clicked($event)
23
+ "
22
24
  />
23
25
  </template>
24
26
  </v-treeview>