@vcmap/ui 5.0.0-rc.22 → 5.0.0-rc.24

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 (425) hide show
  1. package/README.md +38 -20
  2. package/app.config.json +3 -0
  3. package/build/.eslintrc +3 -0
  4. package/build/build.js +184 -174
  5. package/build/buildCesium.js +32 -19
  6. package/build/buildHelpers.js +117 -48
  7. package/build/buildPreview.js +9 -6
  8. package/build/commonViteConfig.js +1 -3
  9. package/build/determineHost.js +17 -4
  10. package/build/generateOLLib.js +13 -16
  11. package/build/getPluginProxies.js +16 -3
  12. package/build/info/conf.json +21 -21
  13. package/build/info/publish.js +15 -4
  14. package/config/aerowest.config.json +18 -44
  15. package/config/base.config.json +72 -246
  16. package/config/codes.config.json +4 -0
  17. package/config/dev.config.json +11 -13
  18. package/config/graphFeatureInfo.config.json +58 -17
  19. package/config/projects.config.json +30 -0
  20. package/config/www.config.json +98 -297
  21. package/dist/assets/cesium/Workers/{ArcType-ce2e50ab.js → ArcType-2d9abbbc.js} +4 -4
  22. package/dist/assets/cesium/Workers/{AttributeCompression-b646d393.js → AttributeCompression-f9f6c717.js} +24 -24
  23. package/dist/assets/cesium/Workers/{AxisAlignedBoundingBox-ff186ccc.js → AxisAlignedBoundingBox-85d9e53a.js} +3 -3
  24. package/dist/assets/cesium/Workers/{BoundingRectangle-be5924f4.js → BoundingRectangle-1ee7eb47.js} +18 -18
  25. package/dist/assets/cesium/Workers/{BoxGeometry-12eeccaf.js → BoxGeometry-3b2be784.js} +9 -9
  26. package/dist/assets/cesium/Workers/{Check-666ab1a0.js → Check-6ede7e26.js} +22 -22
  27. package/dist/assets/cesium/Workers/{Color-a84038cb.js → Color-f107c84d.js} +59 -59
  28. package/dist/assets/cesium/Workers/{ComponentDatatype-f7b11d02.js → ComponentDatatype-cf1fa08e.js} +16 -16
  29. package/dist/assets/cesium/Workers/{CoplanarPolygonGeometryLibrary-3272c1b3.js → CoplanarPolygonGeometryLibrary-78d71993.js} +1 -1
  30. package/dist/assets/cesium/Workers/{CorridorGeometryLibrary-0170e093.js → CorridorGeometryLibrary-50d99b33.js} +1 -1
  31. package/dist/assets/cesium/Workers/{CylinderGeometry-7c5da648.js → CylinderGeometry-51b0d9bf.js} +12 -12
  32. package/dist/assets/cesium/Workers/{CylinderGeometryLibrary-372c07d8.js → CylinderGeometryLibrary-7bf291b4.js} +1 -1
  33. package/dist/assets/cesium/Workers/{EllipseGeometry-797d580e.js → EllipseGeometry-bcfb5d87.js} +20 -20
  34. package/dist/assets/cesium/Workers/{EllipseGeometryLibrary-2939e1dc.js → EllipseGeometryLibrary-e94f8472.js} +1 -1
  35. package/dist/assets/cesium/Workers/{EllipseOutlineGeometry-8b50870f.js → EllipseOutlineGeometry-28e3a1bb.js} +15 -15
  36. package/dist/assets/cesium/Workers/{EllipsoidGeodesic-98c62a56.js → EllipsoidGeodesic-5b3623dc.js} +6 -6
  37. package/dist/assets/cesium/Workers/{EllipsoidGeometry-21c0e3a5.js → EllipsoidGeometry-b222fa63.js} +14 -14
  38. package/dist/assets/cesium/Workers/{EllipsoidOutlineGeometry-eff247c8.js → EllipsoidOutlineGeometry-38a3fb5b.js} +15 -15
  39. package/dist/assets/cesium/Workers/{EllipsoidRhumbLine-19756602.js → EllipsoidRhumbLine-ef872433.js} +9 -9
  40. package/dist/assets/cesium/Workers/{EllipsoidTangentPlane-214683dc.js → EllipsoidTangentPlane-8c89f28c.js} +1 -1
  41. package/dist/assets/cesium/Workers/{EncodedCartesian3-81f70735.js → EncodedCartesian3-57415c8a.js} +6 -6
  42. package/dist/assets/cesium/Workers/{FrustumGeometry-ac42a6d9.js → FrustumGeometry-bdd3a04d.js} +139 -111
  43. package/dist/assets/cesium/Workers/{GeometryAttribute-7d6f1732.js → GeometryAttribute-153115c5.js} +20 -20
  44. package/dist/assets/cesium/Workers/{GeometryAttributes-f06a2792.js → GeometryAttributes-ad136444.js} +1 -1
  45. package/dist/assets/cesium/Workers/{GeometryInstance-451dc1cd.js → GeometryInstance-34d9e21e.js} +6 -6
  46. package/dist/assets/cesium/Workers/{GeometryPipeline-ce4339ed.js → GeometryPipeline-acb2399c.js} +22 -22
  47. package/dist/assets/cesium/Workers/{IndexDatatype-a55ceaa1.js → IndexDatatype-2643aa47.js} +13 -13
  48. package/dist/assets/cesium/Workers/{IntersectionTests-f6e6bd8a.js → IntersectionTests-271e513e.js} +37 -37
  49. package/dist/assets/cesium/Workers/{Math-2dbd6b93.js → Math-0a2ac845.js} +149 -139
  50. package/dist/assets/cesium/Workers/{Matrix2-13178034.js → Matrix2-e1298525.js} +256 -256
  51. package/dist/assets/cesium/Workers/{Matrix3-315394f6.js → Matrix3-41c58dde.js} +150 -150
  52. package/dist/assets/cesium/Workers/{OrientedBoundingBox-04920dc7.js → OrientedBoundingBox-5e04e31f.js} +19 -17
  53. package/dist/assets/cesium/Workers/{Plane-900aa728.js → Plane-4c3d403b.js} +5 -5
  54. package/dist/assets/cesium/Workers/{PolygonGeometryLibrary-a8680d96.js → PolygonGeometryLibrary-6762b65b.js} +6 -6
  55. package/dist/assets/cesium/Workers/PolygonPipeline-7dc7a431.js +1344 -0
  56. package/dist/assets/cesium/Workers/{PolylinePipeline-32f36d2a.js → PolylinePipeline-15fde655.js} +16 -16
  57. package/dist/assets/cesium/Workers/{PolylineVolumeGeometryLibrary-a510d657.js → PolylineVolumeGeometryLibrary-ba7dfed5.js} +7 -7
  58. package/dist/assets/cesium/Workers/{PrimitivePipeline-ba38434a.js → PrimitivePipeline-68f0b9a2.js} +6 -6
  59. package/dist/assets/cesium/Workers/{RectangleGeometryLibrary-bdba697e.js → RectangleGeometryLibrary-8eaf23da.js} +1 -1
  60. package/dist/assets/cesium/Workers/{RuntimeError-06c93819.js → RuntimeError-ef395448.js} +5 -5
  61. package/dist/assets/cesium/Workers/{TerrainEncoding-833187da.js → TerrainEncoding-eb8a645a.js} +30 -30
  62. package/dist/assets/cesium/Workers/Transforms-f6451f99.js +14698 -0
  63. package/dist/assets/cesium/Workers/{VertexFormat-6b480673.js → VertexFormat-030f11ff.js} +14 -14
  64. package/dist/assets/cesium/Workers/{WallGeometryLibrary-919eed92.js → WallGeometryLibrary-feef3109.js} +1 -1
  65. package/dist/assets/cesium/Workers/{WebGLConstants-a8cc3e8c.js → WebGLConstants-0b1ce7ba.js} +1 -1
  66. package/dist/assets/cesium/Workers/{WebMercatorProjection-13a90d41.js → WebMercatorProjection-13ed1a6e.js} +6 -6
  67. package/dist/assets/cesium/Workers/{arrayRemoveDuplicates-c2038105.js → arrayRemoveDuplicates-d2061e85.js} +5 -5
  68. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +5 -5
  69. package/dist/assets/cesium/Workers/{combine-ca22a614.js → combine-d9581036.js} +5 -5
  70. package/dist/assets/cesium/Workers/combineGeometry.js +1 -1
  71. package/dist/assets/cesium/Workers/createBoxGeometry.js +1 -1
  72. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +9 -9
  73. package/dist/assets/cesium/Workers/createCircleGeometry.js +13 -13
  74. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +13 -13
  75. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +11 -11
  76. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +9 -9
  77. package/dist/assets/cesium/Workers/createCorridorGeometry.js +14 -14
  78. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +12 -12
  79. package/dist/assets/cesium/Workers/createCylinderGeometry.js +1 -1
  80. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +13 -13
  81. package/dist/assets/cesium/Workers/createEllipseGeometry.js +1 -1
  82. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +1 -1
  83. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +1 -1
  84. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +1 -1
  85. package/dist/assets/cesium/Workers/createFrustumGeometry.js +1 -1
  86. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +8 -8
  87. package/dist/assets/cesium/Workers/createGeometry.js +1 -1
  88. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +33 -33
  89. package/dist/assets/cesium/Workers/createPlaneGeometry.js +8 -8
  90. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +6 -6
  91. package/dist/assets/cesium/Workers/createPolygonGeometry.js +25 -25
  92. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +17 -17
  93. package/dist/assets/cesium/Workers/createPolylineGeometry.js +11 -11
  94. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +9 -9
  95. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +9 -9
  96. package/dist/assets/cesium/Workers/createRectangleGeometry.js +16 -16
  97. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +12 -12
  98. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +10 -10
  99. package/dist/assets/cesium/Workers/createSphereGeometry.js +11 -11
  100. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +12 -12
  101. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +2 -2
  102. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +1 -1
  103. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +8 -8
  104. package/dist/assets/cesium/Workers/createVectorTilePoints.js +1 -1
  105. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +1 -1
  106. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +1 -1
  107. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  108. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +27 -28
  109. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +33 -38
  110. package/dist/assets/cesium/Workers/createWallGeometry.js +14 -14
  111. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +14 -14
  112. package/dist/assets/cesium/Workers/decodeDraco.js +10 -2
  113. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +15 -15
  114. package/dist/assets/cesium/Workers/decodeI3S.js +1 -1
  115. package/dist/assets/cesium/Workers/{defaultValue-0a909f67.js → defaultValue-fe22d8c0.js} +2 -2
  116. package/dist/assets/cesium/Workers/package.js +1 -1
  117. package/dist/assets/cesium/Workers/transcodeKTX2.js +46 -26
  118. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  119. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +24 -24
  120. package/dist/assets/{cesium.88cffd.js → cesium.253914.js} +36578 -33768
  121. package/dist/assets/cesium.js +1 -1
  122. package/dist/assets/{core.a66593.js → core.3a8205.js} +7824 -5377
  123. package/dist/assets/core.js +1 -1
  124. package/dist/assets/index.91ae2d55.js +1 -0
  125. package/dist/assets/{ol.d4539f.js → ol.1c946a.js} +5550 -5491
  126. package/dist/assets/ol.js +1 -1
  127. package/dist/assets/ui.0025be.css +5 -0
  128. package/dist/assets/{ui.d760e4.js → ui.0025be.js} +6260 -5164
  129. package/dist/assets/ui.js +1 -1
  130. package/dist/assets/vue.js +2 -2
  131. package/dist/assets/{vuetify.427322.css → vuetify.6efa21.css} +2 -2
  132. package/dist/assets/{vuetify.427322.js → vuetify.6efa21.js} +1 -1
  133. package/dist/assets/vuetify.js +2 -2
  134. package/dist/index.html +27 -7
  135. package/index.html +26 -6
  136. package/index.js +68 -15
  137. package/lib/cesium.js +1 -1
  138. package/lib/core.js +1 -1
  139. package/lib/ui.js +1 -1
  140. package/lib/vue.js +2 -2
  141. package/lib/vuetify.js +2 -2
  142. package/package.json +19 -10
  143. package/plugins/.eslintrc +9 -0
  144. package/plugins/@vcmap/create-link/fallbackCreateLink.vue +13 -9
  145. package/plugins/@vcmap/create-link/index.js +15 -6
  146. package/plugins/@vcmap/project-selector/{ContextsListComponent.vue → ModulesListComponent.vue} +14 -18
  147. package/plugins/@vcmap/project-selector/ProjectSelectorComponent.vue +19 -24
  148. package/plugins/@vcmap/project-selector/README.md +16 -20
  149. package/plugins/@vcmap/project-selector/config.json +13 -13
  150. package/plugins/@vcmap/project-selector/de.json +4 -1
  151. package/plugins/@vcmap/project-selector/en.json +4 -1
  152. package/plugins/@vcmap/project-selector/index.js +117 -107
  153. package/plugins/@vcmap/search-nominatim/LICENSE.md +5 -6
  154. package/plugins/@vcmap/search-nominatim/README.md +2 -1
  155. package/plugins/@vcmap/search-nominatim/config.json +1 -2
  156. package/plugins/@vcmap/search-nominatim/index.js +7 -4
  157. package/plugins/@vcmap/search-nominatim/nominatim.js +7 -2
  158. package/plugins/@vcmap/search-nominatim/package.json +2 -36
  159. package/plugins/@vcmap/simple-graph/README.md +29 -9
  160. package/plugins/@vcmap/simple-graph/SimpleGraphComponent.vue +2 -7
  161. package/plugins/@vcmap/simple-graph/index.js +2 -2
  162. package/plugins/@vcmap/simple-graph/simpleGraphView.js +3 -1
  163. package/plugins/@vcmap/theme-changer/README.md +5 -3
  164. package/plugins/@vcmap/theme-changer/ThemeChangerComponent.vue +6 -10
  165. package/plugins/@vcmap/theme-changer/config.json +67 -67
  166. package/plugins/@vcmap/theme-changer/index.js +11 -5
  167. package/plugins/@vcmap-show-case/buttons-example/ButtonsExample.vue +76 -11
  168. package/plugins/@vcmap-show-case/buttons-example/index.js +10 -8
  169. package/plugins/@vcmap-show-case/category-tester/Categories.vue +144 -117
  170. package/plugins/@vcmap-show-case/category-tester/Category.vue +46 -29
  171. package/plugins/@vcmap-show-case/category-tester/index.js +9 -3
  172. package/plugins/@vcmap-show-case/config-editor/ConfigEditor.vue +62 -0
  173. package/plugins/@vcmap-show-case/config-editor/index.js +13 -11
  174. package/plugins/@vcmap-show-case/context-menu-tester/index.js +18 -10
  175. package/plugins/@vcmap-show-case/form-inputs-example/FormInputsExample.vue +97 -109
  176. package/plugins/@vcmap-show-case/form-inputs-example/config.json +3 -3
  177. package/plugins/@vcmap-show-case/form-inputs-example/exampleActions.js +14 -4
  178. package/plugins/@vcmap-show-case/form-inputs-example/index.js +42 -19
  179. package/plugins/@vcmap-show-case/form-inputs-example/validation.js +2 -1
  180. package/plugins/@vcmap-show-case/icons-example/README.md +1 -1
  181. package/plugins/@vcmap-show-case/icons-example/allIconsComponent.vue +10 -10
  182. package/plugins/@vcmap-show-case/icons-example/index.js +10 -8
  183. package/plugins/@vcmap-show-case/list-example/ListExample.vue +221 -103
  184. package/plugins/@vcmap-show-case/list-example/index.js +10 -8
  185. package/plugins/@vcmap-show-case/notifier-tester/index.js +9 -3
  186. package/plugins/@vcmap-show-case/notifier-tester/notifierTester.vue +15 -21
  187. package/plugins/@vcmap-show-case/table-example/DataTableExample.vue +183 -0
  188. package/plugins/@vcmap-show-case/table-example/README.md +3 -0
  189. package/plugins/@vcmap-show-case/table-example/index.js +49 -0
  190. package/plugins/@vcmap-show-case/table-example/package.json +5 -0
  191. package/plugins/@vcmap-show-case/textfields-example/TextfieldsExample.vue +7 -30
  192. package/plugins/@vcmap-show-case/textfields-example/index.js +10 -4
  193. package/plugins/@vcmap-show-case/window-tester/WindowExample.vue +16 -13
  194. package/plugins/@vcmap-show-case/window-tester/emptyComponent.vue +4 -7
  195. package/plugins/@vcmap-show-case/window-tester/index.js +26 -20
  196. package/plugins/@vcmap-show-case/window-tester/myCustomHeader.vue +7 -3
  197. package/plugins/@vcmap-show-case/window-tester/toolbox-data.js +82 -5
  198. package/plugins/@vcmap-show-case/window-tester/windowExampleContent.vue +3 -7
  199. package/plugins/@vcmap-show-case/wizard-example/index.js +9 -3
  200. package/plugins/@vcmap-show-case/wizard-example/wizardExample.vue +36 -38
  201. package/src/actions/actionHelper.js +64 -37
  202. package/src/actions/styleSelector.vue +40 -24
  203. package/src/application/VcsApp.vue +117 -80
  204. package/src/application/VcsAttributions.vue +8 -9
  205. package/src/application/VcsAttributionsFooter.vue +12 -9
  206. package/src/application/VcsMap.vue +9 -5
  207. package/src/application/VcsNavbar.vue +44 -27
  208. package/src/application/VcsSettings.vue +5 -12
  209. package/src/application/attributionsHelper.js +23 -11
  210. package/src/application/vcsAppWrapper.vue +1 -3
  211. package/src/components/buttons/VcsActionButtonList.vue +20 -17
  212. package/src/components/buttons/VcsButton.vue +19 -23
  213. package/src/components/buttons/VcsFormButton.vue +176 -0
  214. package/src/components/form-inputs-controls/VcsCheckbox.vue +6 -7
  215. package/src/components/form-inputs-controls/VcsDatePicker.vue +142 -0
  216. package/src/components/form-inputs-controls/VcsFormSection.vue +11 -12
  217. package/src/components/form-inputs-controls/VcsLabel.vue +9 -10
  218. package/src/components/form-inputs-controls/VcsRadio.vue +44 -44
  219. package/src/components/form-inputs-controls/VcsSelect.vue +16 -13
  220. package/src/components/form-inputs-controls/VcsTextArea.vue +21 -14
  221. package/src/components/form-inputs-controls/VcsTextField.vue +44 -19
  222. package/src/components/form-inputs-controls/VcsWizard.vue +79 -77
  223. package/src/components/form-inputs-controls/VcsWizardStep.vue +20 -20
  224. package/src/components/form-inputs-controls/composables.js +13 -8
  225. package/src/components/form-output/VcsFormattedNumber.vue +26 -26
  226. package/src/components/icons/+all.js +13 -5
  227. package/src/components/icons/2DAreaIcon.vue +62 -10
  228. package/src/components/icons/2DDistanceIcon.vue +14 -2
  229. package/src/components/icons/3DAreaIcon.vue +62 -10
  230. package/src/components/icons/3DDistanceIcon.vue +14 -2
  231. package/src/components/icons/3DHeightIcon.vue +14 -2
  232. package/src/components/icons/AngleIcon.vue +12 -3
  233. package/src/components/icons/AssociationsIcon.vue +6 -1
  234. package/src/components/icons/AxisIcon.vue +34 -5
  235. package/src/components/icons/BoundingBoxIcon.vue +31 -5
  236. package/src/components/icons/CheckboxCheckedIcon.vue +4 -1
  237. package/src/components/icons/CheckboxIcon.vue +1 -8
  238. package/src/components/icons/CheckboxIndeterminateIcon.vue +9 -2
  239. package/src/components/icons/CircleIcon.vue +24 -4
  240. package/src/components/icons/ClippingHorizontalIcon.vue +14 -2
  241. package/src/components/icons/ClippingIcon.vue +13 -2
  242. package/src/components/icons/ClippingVerticalIcon.vue +14 -2
  243. package/src/components/icons/ColorPickerIcon.vue +13 -2
  244. package/src/components/icons/ColorSwatchIcon.vue +7 -1
  245. package/src/components/icons/CommentIcon.vue +6 -1
  246. package/src/components/icons/CompassIcon.vue +21 -3
  247. package/src/components/icons/ComponentsIcon.vue +14 -2
  248. package/src/components/icons/ConeIcon.vue +26 -4
  249. package/src/components/icons/DimensionsHouseIcon.vue +7 -1
  250. package/src/components/icons/EditIcon.vue +13 -2
  251. package/src/components/icons/ElevationProfileIcon.vue +6 -1
  252. package/src/components/icons/ExportAreaIcon.vue +13 -2
  253. package/src/components/icons/ExportFlightIcon.vue +13 -2
  254. package/src/components/icons/ExportIcon.vue +14 -2
  255. package/src/components/icons/ExternalLinkIcon.vue +18 -3
  256. package/src/components/icons/EyeIcon.vue +12 -2
  257. package/src/components/icons/FastForwardIcon.vue +13 -2
  258. package/src/components/icons/FilterIcon.vue +13 -2
  259. package/src/components/icons/GlobalTerrainIcon.vue +12 -2
  260. package/src/components/icons/GlobeNatureIcon.vue +7 -1
  261. package/src/components/icons/GroundIcon.vue +12 -2
  262. package/src/components/icons/HealthCareIndustriesIcon.vue +6 -1
  263. package/src/components/icons/HelpIcon.vue +12 -2
  264. package/src/components/icons/HideIcon.vue +17 -3
  265. package/src/components/icons/HomePointIcon.vue +13 -3
  266. package/src/components/icons/HospitalsIcon.vue +6 -1
  267. package/src/components/icons/HouseIcon.vue +20 -3
  268. package/src/components/icons/ImportIcon.vue +21 -3
  269. package/src/components/icons/InfoIcon.vue +19 -3
  270. package/src/components/icons/KebabIcon.vue +12 -2
  271. package/src/components/icons/LabelIcon.vue +21 -3
  272. package/src/components/icons/LayersIcon.vue +12 -2
  273. package/src/components/icons/LegendIcon.vue +20 -60
  274. package/src/components/icons/LineIcon.vue +20 -3
  275. package/src/components/icons/LinkIcon.vue +13 -2
  276. package/src/components/icons/LogoutIcon.vue +13 -2
  277. package/src/components/icons/MapIcon.vue +14 -2
  278. package/src/components/icons/MenuIcon.vue +7 -1
  279. package/src/components/icons/MinusIcon.vue +14 -2
  280. package/src/components/icons/ObjectAttributeIcon.vue +13 -2
  281. package/src/components/icons/ObjectSelectIcon.vue +14 -2
  282. package/src/components/icons/ObliqueViewIcon.vue +11 -2
  283. package/src/components/icons/PdfIcon.vue +12 -2
  284. package/src/components/icons/PedestrianIcon.vue +13 -2
  285. package/src/components/icons/PenIcon.vue +13 -3
  286. package/src/components/icons/PlayCircleIcon.vue +20 -3
  287. package/src/components/icons/PlusIcon.vue +14 -3
  288. package/src/components/icons/PoiIcon.vue +17 -3
  289. package/src/components/icons/PointSelectIcon.vue +12 -2
  290. package/src/components/icons/PolygonIcon.vue +7 -1
  291. package/src/components/icons/PresentationModeIcon.vue +13 -2
  292. package/src/components/icons/ProgressIcon.vue +8 -6
  293. package/src/components/icons/QueryIcon.vue +31 -5
  294. package/src/components/icons/RectangleIcon.vue +24 -4
  295. package/src/components/icons/ReturnIcon.vue +13 -2
  296. package/src/components/icons/RewindIcon.vue +13 -2
  297. package/src/components/icons/RotateLeftIcon.vue +13 -2
  298. package/src/components/icons/RotateRightIcon.vue +13 -2
  299. package/src/components/icons/ScreenshotIcon.vue +52 -10
  300. package/src/components/icons/SearchIcon.vue +13 -3
  301. package/src/components/icons/ShadowIcon.vue +14 -3
  302. package/src/components/icons/ShapesIcon.vue +13 -3
  303. package/src/components/icons/ShareIcon.vue +17 -4
  304. package/src/components/icons/SimpleCircleFilledIcon.vue +14 -10
  305. package/src/components/icons/SimpleCircleHalfFilledIcon.vue +6 -1
  306. package/src/components/icons/SimpleCircleOutlinedIcon.vue +14 -10
  307. package/src/components/icons/SkipNextIcon.vue +11 -2
  308. package/src/components/icons/SkipPreviousIcon.vue +17 -3
  309. package/src/components/icons/SplitViewIcon.vue +6 -1
  310. package/src/components/icons/TerrainBoxIcon.vue +12 -2
  311. package/src/components/icons/TextStyleIcon.vue +7 -1
  312. package/src/components/icons/ThreeDimensionsIcon.vue +13 -2
  313. package/src/components/icons/ToolsIcon.vue +12 -2
  314. package/src/components/icons/TouchIcon.vue +13 -2
  315. package/src/components/icons/TrashCanIcon.vue +13 -2
  316. package/src/components/icons/TriangleIcon.vue +6 -2
  317. package/src/components/icons/TwoDimensionsIcon.vue +14 -2
  318. package/src/components/icons/UploadIcon.vue +13 -2
  319. package/src/components/icons/UserProfileIcon.vue +13 -2
  320. package/src/components/icons/UserShareIcon.vue +12 -2
  321. package/src/components/icons/VideoRecorderIcon.vue +16 -3
  322. package/src/components/icons/ViewpointFlightIcon.vue +22 -4
  323. package/src/components/icons/ViewpointIcon.vue +22 -4
  324. package/src/components/icons/Viewshed360Icon.vue +14 -2
  325. package/src/components/icons/ViewshedConeIcon.vue +13 -2
  326. package/src/components/icons/ViewshedIcon.vue +14 -2
  327. package/src/components/icons/WalkingIcon.vue +13 -2
  328. package/src/components/icons/WallIcon.vue +19 -3
  329. package/src/components/icons/WandIcon.vue +129 -21
  330. package/src/components/imageElementInjector.vue +1 -3
  331. package/src/components/lists/VcsActionList.vue +21 -18
  332. package/src/components/lists/VcsList.vue +226 -97
  333. package/src/components/lists/VcsTreeview.vue +30 -26
  334. package/src/components/lists/VcsTreeviewLeaf.vue +23 -22
  335. package/src/components/lists/VcsTreeviewSearchbar.vue +19 -15
  336. package/src/components/notification/VcsBadge.vue +4 -6
  337. package/src/components/notification/VcsTooltip.vue +95 -94
  338. package/src/components/notification/validation.js +1 -1
  339. package/src/components/tables/VcsDataTable.vue +398 -0
  340. package/src/components/tables/VcsTable.vue +63 -300
  341. package/src/contentTree/LayerTree.vue +2 -3
  342. package/src/contentTree/contentTreeCollection.js +49 -23
  343. package/src/contentTree/contentTreeItem.js +36 -14
  344. package/src/contentTree/groupContentTreeItem.js +44 -22
  345. package/src/contentTree/layerContentTreeItem.js +45 -20
  346. package/src/contentTree/layerGroupContentTreeItem.js +53 -31
  347. package/src/contentTree/nodeContentTreeItem.js +18 -7
  348. package/src/contentTree/obliqueCollectionContentTreeItem.js +45 -20
  349. package/src/contentTree/subContentTreeItem.js +13 -4
  350. package/src/contentTree/vcsObjectContentTreeItem.js +24 -15
  351. package/src/contentTree/viewpointContentTreeItem.js +19 -6
  352. package/src/downloadHelper.js +52 -0
  353. package/src/featureInfo/AddressBalloonComponent.vue +11 -16
  354. package/src/featureInfo/BalloonComponent.vue +41 -31
  355. package/src/featureInfo/abstractFeatureInfoView.js +30 -14
  356. package/src/featureInfo/addressBalloonFeatureInfoView.js +19 -7
  357. package/src/featureInfo/balloonFeatureInfoView.js +22 -9
  358. package/src/featureInfo/balloonHelper.js +61 -42
  359. package/src/featureInfo/featureInfo.js +74 -34
  360. package/src/featureInfo/featureInfoInteraction.js +13 -7
  361. package/src/featureInfo/iframeFeatureInfoView.js +3 -1
  362. package/src/featureInfo/tableFeatureInfoView.js +15 -5
  363. package/src/i18n/de.js +8 -0
  364. package/src/i18n/en.js +8 -0
  365. package/src/i18n/i18nCollection.js +183 -155
  366. package/src/init.js +124 -38
  367. package/src/legend/legendHelper.js +11 -6
  368. package/src/legend/styleLegendItem.vue +18 -12
  369. package/src/legend/vcsLegend.vue +15 -17
  370. package/src/manager/buttonManager.js +6 -3
  371. package/src/manager/categoryManager/CategoryComponent.vue +99 -63
  372. package/src/manager/categoryManager/CategoryComponentList.vue +33 -8
  373. package/src/manager/categoryManager/CategoryManager.vue +23 -11
  374. package/src/manager/categoryManager/categoryManager.js +90 -45
  375. package/src/manager/contextMenu/contextMenuComponent.vue +2 -6
  376. package/src/manager/contextMenu/contextMenuInteraction.js +6 -1
  377. package/src/manager/contextMenu/contextMenuManager.js +37 -22
  378. package/src/manager/navbarManager.js +28 -3
  379. package/src/manager/toolbox/GroupToolboxComponent.vue +22 -21
  380. package/src/manager/toolbox/SelectToolboxComponent.vue +36 -35
  381. package/src/manager/toolbox/ToolboxManager.vue +18 -10
  382. package/src/manager/toolbox/toolboxManager.js +30 -12
  383. package/src/manager/window/WindowComponent.vue +24 -32
  384. package/src/manager/window/WindowComponentHeader.vue +38 -28
  385. package/src/manager/window/WindowManager.vue +45 -35
  386. package/src/manager/window/windowHelper.js +80 -24
  387. package/src/manager/window/windowManager.js +79 -39
  388. package/src/navigation/mapNavCompass.vue +18 -4
  389. package/src/navigation/mapNavigation.vue +65 -46
  390. package/src/navigation/obliqueRotation.vue +34 -13
  391. package/src/navigation/orientationToolsButton.vue +6 -10
  392. package/src/navigation/overviewMap.js +76 -45
  393. package/src/navigation/overviewMapClickedInteraction.js +6 -1
  394. package/src/navigation/tiltSlider.vue +6 -10
  395. package/src/navigation/vcsCompass.vue +1 -9
  396. package/src/navigation/vcsZoomButton.vue +36 -11
  397. package/src/notifier/notifier.js +22 -13
  398. package/src/notifier/notifierComponent.vue +21 -21
  399. package/src/pluginHelper.js +39 -5
  400. package/src/search/resultItem.vue +10 -15
  401. package/src/search/resultsComponent.vue +30 -24
  402. package/src/search/search.js +48 -22
  403. package/src/search/searchComponent.vue +35 -10
  404. package/src/setup.js +9 -9
  405. package/src/state.js +28 -12
  406. package/src/styles/_typography.scss +0 -1
  407. package/src/styles/shades.scss +4 -2
  408. package/src/styles/utils/_border.scss +1 -1
  409. package/src/styles/utils/_display.scss +1 -1
  410. package/src/styles/variables.scss +39 -34
  411. package/src/styles/vcsFont.scss +6 -5
  412. package/src/styles/vcsGrid.scss +9 -0
  413. package/src/uiConfig.js +6 -4
  414. package/src/vcsUiApp.js +192 -91
  415. package/src/vuePlugins/i18n.js +5 -4
  416. package/src/vuePlugins/vuetify.js +4 -0
  417. package/start.js +8 -2
  418. package/dist/assets/cesium/Workers/PolygonPipeline-844aab0a.js +0 -1345
  419. package/dist/assets/cesium/Workers/Transforms-40229881.js +0 -14696
  420. package/dist/assets/index.8b833ead.js +0 -1
  421. package/dist/assets/ui.d760e4.css +0 -5
  422. package/map.config.json +0 -44
  423. package/plugins/@vcmap-show-case/config-editor/editor.vue +0 -66
  424. /package/dist/assets/cesium/Workers/{GeometryOffsetAttribute-04332ce7.js → GeometryOffsetAttribute-9ad0019c.js} +0 -0
  425. /package/dist/assets/{vue.db5102.js → vue.c1ece7.js} +0 -0
@@ -1,58 +1,47 @@
1
1
  <template>
2
- <div
3
- class="d-contents"
4
- >
2
+ <div class="d-contents">
5
3
  <vcs-treeview-searchbar
6
4
  v-if="searchable"
7
5
  :placeholder="searchbarPlaceholder"
8
6
  v-model="query"
9
7
  />
10
- <v-list
11
- dense
12
- >
13
- <v-list-item
14
- v-if="showTitle"
15
- class="font-weight-bold"
16
- >
17
- <v-list-item-action
18
- v-if="selectable"
19
- >
8
+ <v-list dense>
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" />
20
12
  <v-icon
21
- v-if="selected.length === renderingItems.length"
13
+ v-else-if="selected.length === renderingItems.length"
22
14
  @click="clear"
23
15
  >
24
- mdi-check-circle-outline
16
+ mdi-check-circle
25
17
  </v-icon>
26
18
  <v-icon
27
- v-else
19
+ v-else-if="
20
+ selected.length > 0 && selected.length < renderingItems.length
21
+ "
28
22
  @click="selectAll()"
29
23
  >
30
- mdi-circle-outline
24
+ mdi-minus-circle
31
25
  </v-icon>
26
+ <v-icon v-else @click="selectAll()"> mdi-circle-outline </v-icon>
32
27
  </v-list-item-action>
33
-
34
28
  <v-list-item-content>
35
29
  <v-icon v-if="icon">
36
30
  {{ icon }}
37
31
  </v-icon>
38
-
39
- <VcsTooltip
40
- :tooltip="tooltip || title"
41
- >
32
+ <VcsTooltip :tooltip="$t(listHeaderTooltip)">
42
33
  <template #activator="{ on, attrs }">
43
- <v-list-item-title v-bind="attrs" v-on="on">
34
+ <v-list-item-title v-bind="attrs" v-on="on" ref="listHeader">
44
35
  {{ $t(title) }}
45
36
  </v-list-item-title>
46
37
  </template>
47
38
  </VcsTooltip>
48
-
49
39
  <vcs-action-button-list
50
40
  v-if="actions?.length > 0"
51
41
  :actions="actions"
52
42
  :block-overflow="true"
53
43
  :overflow-count="actionButtonListOverflowCount"
54
44
  small
55
- right
56
45
  />
57
46
  </v-list-item-content>
58
47
  </v-list-item>
@@ -63,58 +52,66 @@
63
52
  :disabled="item.disabled"
64
53
  @mousedown.shift="$event.preventDefault()"
65
54
  @mouseover="hovering = index"
66
- @mouseout="hovering = null"
55
+ @mouseout="hovering = undefined"
56
+ :draggable="isDraggable"
57
+ @dragstart="drag($event, item, index)"
58
+ @mouseup="drop($event, index)"
59
+ :class="{
60
+ 'v-list-item__lighten_even': lightenEven,
61
+ 'v-list-item__lighten_odd': !lightenEven,
62
+ 'vcs-draggable-item': isDraggable,
63
+ 'v-list-item__dragged': dragging === index,
64
+ 'border-bottom': borderBottom(index),
65
+ 'border-top': borderTop(index),
66
+ }"
67
67
  >
68
- <v-list-item-action
69
- v-if="selectable"
70
- >
71
- <v-icon
72
- v-if="selected.includes(item)"
73
- @click="remove(item)"
74
- >
75
- mdi-check-circle-outline
68
+ <v-list-item-action v-if="selectable">
69
+ <v-icon v-if="selected.includes(item)" @click="remove(item)">
70
+ mdi-check-circle
76
71
  </v-icon>
77
72
  <v-icon
78
- v-else-if="hovering === index || (!singleSelect && selected.length > 0)"
73
+ v-else-if="
74
+ hovering === index || (!singleSelect && selected.length > 0)
75
+ "
79
76
  @click="singleSelect ? select(item, $event) : add(item)"
80
77
  >
81
78
  mdi-circle-outline
82
79
  </v-icon>
83
- <v-icon
84
- v-else
85
- @click="select(item, $event)"
86
- >
80
+ <v-icon v-else @click="select(item, $event)">
87
81
  mdi-circle-small
88
82
  </v-icon>
89
83
  </v-list-item-action>
90
-
91
84
  <v-list-item-content
92
- :class="[selectable ? 'cursor-pointer' : '']"
85
+ :class="[selectable && !isDraggable ? 'cursor-pointer' : '']"
93
86
  @click="select(item, $event)"
94
87
  >
95
88
  <v-icon v-if="item.icon">
96
89
  {{ item.icon }}
97
90
  </v-icon>
98
-
99
91
  <VcsTooltip
100
- :tooltip="item.tooltip || item.title"
92
+ :tooltip="
93
+ dragging !== undefined
94
+ ? undefined
95
+ : $t(item.tooltip || overflowTitle(index, item.title))
96
+ "
101
97
  >
102
98
  <template #activator="{ on, attrs }">
103
- <v-list-item-title v-bind="attrs" v-on="on">
99
+ <v-list-item-title v-bind="attrs" v-on="on" ref="titles">
104
100
  {{ $t(item.title) }}
105
101
  </v-list-item-title>
106
102
  </template>
107
103
  </VcsTooltip>
108
-
104
+ </v-list-item-content>
105
+ <VcsBadge v-if="item.hasUpdate" :color="'warning'" />
106
+ <v-list-item-action>
109
107
  <vcs-action-button-list
110
108
  v-if="item.actions?.length > 0"
111
109
  :actions="item.actions"
112
110
  :block-overflow="true"
113
111
  :overflow-count="actionButtonListOverflowCount"
114
112
  small
115
- right
116
113
  />
117
- </v-list-item-content>
114
+ </v-list-item-action>
118
115
  </v-list-item>
119
116
  </v-list>
120
117
  </div>
@@ -129,10 +126,12 @@
129
126
  VListItemAction,
130
127
  VIcon,
131
128
  VListItemTitle,
129
+ VSpacer,
132
130
  } from 'vuetify/lib';
133
131
  import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
134
132
  import VcsTooltip from '../notification/VcsTooltip.vue';
135
133
  import VcsTreeviewSearchbar from './VcsTreeviewSearchbar.vue';
134
+ import VcsBadge from '../notification/VcsBadge.vue';
136
135
 
137
136
  /**
138
137
  * @typedef {Object} VcsListItem
@@ -141,14 +140,21 @@
141
140
  * @property {boolean} [disabled] - Whether this item should be displayed as disabled.
142
141
  * @property {string} title - The title to be displayed
143
142
  * @property {string} [tooltip]
144
- * @property {string|HTMLCanvasElement|HTMLImageElement|undefined} [icon] - An optional icon to display with this item. Can be an URL or HTMLElement.
143
+ * @property {string|HTMLCanvasElement|HTMLImageElement|undefined} [icon] - An optional icon to display with this item. Can be a URL or HTMLElement.
144
+ * @property {boolean} [hasUpdate] - Shows badge, if item has an update.
145
145
  * @property {Array<VcsAction>} [actions]
146
146
  * @property {function(boolean):void} [selectionChanged] - A callback called if the selection changes with the current selection status. called before value update
147
147
  */
148
148
 
149
149
  /**
150
- * The VCS list is intended to render items. Items can be selectable (by default, more then one) or only a single item can
151
- * be selected. If items are disabled they cannot selected. Items which are not visible are not rendered. This items can
150
+ * @typedef {Object} ItemMovedEvent
151
+ * @property {VcsListItem} item
152
+ * @property {number} targetIndex
153
+ */
154
+
155
+ /**
156
+ * The VCS list is intended to render items. Items can be selectable (by default, more than one) or only a single item can
157
+ * be selected. If items are disabled they cannot be selected. Items which are not visible are not rendered. These items can
152
158
  * no longer be selected or deselected either. Making a selected item invisible can lead to undefined behavior
153
159
  * in the selection state.
154
160
  * Clicking an unselected item selects it.
@@ -158,6 +164,7 @@
158
164
  * Clicking with SHIFT will create a selection range, starting or ending with the first item in the list
159
165
  * or the last normally selected item (not the last item clicked with CTRL for instance).
160
166
  * @vue-prop {Array<VcsListItem>} items
167
+ * @vue-prop {boolean} [draggable=false]
161
168
  * @vue-prop {boolean} [selectable=false]
162
169
  * @vue-prop {boolean} [singleSelect=false]
163
170
  * @vue-prop {Array<VcsListItem>} [value=[]] - the initial items to be selected.
@@ -169,10 +176,12 @@
169
176
  * @vue-prop {string} [icon] - icon to prepend to the list title
170
177
  * @vue-prop {string} [tooltip] - tooltip to render on the list title
171
178
  * @vue-prop {Array<VcsAction>} [actions] - actions to render in the list title
179
+ * @vue-event {ItemMovedEvent} item-moved - event triggered after item was dragged and is dropped
172
180
  */
173
181
  export default {
174
182
  name: 'VcsList',
175
183
  components: {
184
+ VcsBadge,
176
185
  VcsTreeviewSearchbar,
177
186
  VcsActionButtonList,
178
187
  VcsTooltip,
@@ -182,13 +191,17 @@
182
191
  VListItemAction,
183
192
  VIcon,
184
193
  VListItemTitle,
194
+ VSpacer,
185
195
  },
186
196
  props: {
187
- /** @type {Array<VcsListItem>} */
188
197
  items: {
189
198
  type: Array,
190
199
  required: true,
191
200
  },
201
+ draggable: {
202
+ type: Boolean,
203
+ default: false,
204
+ },
192
205
  selectable: {
193
206
  type: Boolean,
194
207
  default: false,
@@ -197,7 +210,6 @@
197
210
  type: Boolean,
198
211
  default: false,
199
212
  },
200
- /** @type {Array<VcsListItem>} */
201
213
  value: {
202
214
  type: Array,
203
215
  default: () => [],
@@ -245,49 +257,117 @@
245
257
  const selected = ref(props.value);
246
258
  /** @type {import("vue").Ref<string>} */
247
259
  const query = ref('');
248
- const hovering = ref(null);
260
+ /** @type {import("vue").Ref<number|undefined>} */
261
+ const hovering = ref(undefined);
262
+ /** @type {import("vue").Ref<number|undefined>} */
263
+ const dragging = ref(undefined);
264
+ const borderBottom = (index) => {
265
+ return (
266
+ dragging.value !== undefined &&
267
+ dragging.value < index &&
268
+ index === hovering.value
269
+ );
270
+ };
271
+ const borderTop = (index) => {
272
+ return (
273
+ dragging.value !== undefined &&
274
+ dragging.value > index &&
275
+ index === hovering.value
276
+ );
277
+ };
278
+ const lightenEven = computed(() => {
279
+ return !(!props.searchable && !props.showTitle);
280
+ });
249
281
  let firstSelected = null;
282
+ const titles = ref([]);
283
+ const listHeader = ref(null);
250
284
 
251
- watch(props, () => {
252
- if (selected.value !== props.value) {
253
- selected.value = props.value;
254
- }
255
- if (props.singleSelect && selected.value.length > 1) {
256
- selected.value
257
- .filter((i, index) => index && i.selectionChanged)
258
- .forEach(i => i.selectionChanged(false));
259
- selected.value = [selected.value[0]];
260
- emit('input', selected);
261
- }
262
- if (!props.selectable && selected.value.length > 0) {
263
- selected.value
264
- .filter(i => i.selectionChanged)
265
- .forEach(i => i.selectionChanged(false));
266
- selected.value = [];
267
- emit('input', selected);
268
- }
269
- if (!props.searchable) {
270
- query.value = '';
271
- }
272
- }, { immediate: true, deep: false });
285
+ watch(
286
+ props,
287
+ () => {
288
+ if (selected.value !== props.value) {
289
+ selected.value = props.value;
290
+ }
291
+ if (props.singleSelect && selected.value.length > 1) {
292
+ selected.value
293
+ .filter((i, index) => index && i.selectionChanged)
294
+ .forEach((i) => i.selectionChanged(false));
295
+ selected.value = [selected.value[0]];
296
+ emit('input', selected);
297
+ }
298
+ if (!props.selectable && selected.value.length > 0) {
299
+ selected.value
300
+ .filter((i) => i.selectionChanged)
301
+ .forEach((i) => i.selectionChanged(false));
302
+ selected.value = [];
303
+ emit('input', selected);
304
+ }
305
+ if (!props.searchable) {
306
+ query.value = '';
307
+ }
308
+ },
309
+ { immediate: true, deep: false },
310
+ );
273
311
 
274
312
  const vm = getCurrentInstance().proxy;
275
313
  /** @type {function(VcsListItem, string):boolean} */
276
- const filterPredicate = inject('filterPredicate', (item, queryString = '') => {
277
- const translatedTitle = vm.$t(item.title);
278
- return translatedTitle.toLocaleLowerCase().includes(queryString.toLocaleLowerCase());
279
- });
314
+ const filterPredicate = inject(
315
+ 'filterPredicate',
316
+ (item, queryString = '') => {
317
+ const translatedTitle = vm.$t(item.title);
318
+ return translatedTitle
319
+ .toLocaleLowerCase()
320
+ .includes(queryString.toLocaleLowerCase());
321
+ },
322
+ );
323
+
324
+ /**
325
+ * @type {VcsListItem|null}
326
+ */
327
+ let draggedItem = null;
328
+
329
+ /**
330
+ * @param {MouseEvent} e
331
+ * @param {number} targetIndex
332
+ */
333
+ function drop(e, targetIndex) {
334
+ if (draggedItem !== null && targetIndex !== undefined) {
335
+ emit('item-moved', { item: draggedItem, targetIndex });
336
+ }
337
+ draggedItem = null;
338
+ dragging.value = undefined;
339
+ document.removeEventListener('mouseup', drop);
340
+ }
341
+
342
+ /**
343
+ * @param {MouseEvent} e
344
+ * @param {VcsListItem} item
345
+ * @param {number} index
346
+ */
347
+ function drag(e, item, index) {
348
+ dragging.value = index;
349
+ draggedItem = item;
350
+ e.dataTransfer.effectAllowed = 'move';
351
+ document.addEventListener('mouseup', drop);
352
+ }
280
353
 
281
354
  return {
282
355
  query,
283
356
  hovering,
357
+ dragging,
358
+ isDraggable: computed(() => {
359
+ return query.value === '' && props.draggable;
360
+ }),
361
+ borderBottom,
362
+ borderTop,
363
+ lightenEven,
284
364
  /**
285
365
  * @type {import("vue").ComputedRef<Array<VcsListItem>>}
286
366
  */
287
367
  renderingItems: computed(() => {
288
- let items = props.items.filter(i => i.visible !== false);
368
+ let items = props.items.filter((i) => i.visible !== false);
289
369
  if (query.value) {
290
- items = items.filter(i => filterPredicate(i, query.value));
370
+ items = items.filter((i) => filterPredicate(i, query.value));
291
371
  }
292
372
  return items;
293
373
  }),
@@ -325,30 +405,36 @@
325
405
  Math.max(firstIndex, currentIndex) + 1,
326
406
  );
327
407
  currentSelection.forEach((oldItem) => {
328
- if (oldItem.selectionChanged && !selected.value.includes(oldItem)) {
408
+ if (
409
+ oldItem.selectionChanged &&
410
+ !selected.value.includes(oldItem)
411
+ ) {
329
412
  oldItem.selectionChanged(false);
330
413
  }
331
414
  });
332
415
  selected.value.forEach((newItem) => {
333
- if (newItem.selectionChanged && !currentSelection.includes(newItem)) {
416
+ if (
417
+ newItem.selectionChanged &&
418
+ !currentSelection.includes(newItem)
419
+ ) {
334
420
  newItem.selectionChanged(true);
335
421
  }
336
422
  });
337
423
  } else {
338
424
  selected.value
339
- .filter(i => i !== item && i.selectionChanged)
340
- .forEach(i => i.selectionChanged(false));
425
+ .filter((i) => i !== item && i.selectionChanged)
426
+ .forEach((i) => i.selectionChanged(false));
341
427
  selected.value = [];
342
428
  firstSelected = null;
343
429
  }
344
430
  } else if (selected.value.includes(item)) {
345
431
  if (event.ctrlKey) {
346
432
  item.selectionChanged?.(false);
347
- selected.value = selected.value.filter(i => i !== item);
433
+ selected.value = selected.value.filter((i) => i !== item);
348
434
  } else if (selected.value.length > 1) {
349
435
  selected.value
350
- .filter(i => i !== item && i.selectionChanged)
351
- .forEach(i => i.selectionChanged(false));
436
+ .filter((i) => i !== item && i.selectionChanged)
437
+ .forEach((i) => i.selectionChanged(false));
352
438
  selected.value = [item];
353
439
  firstSelected = item;
354
440
  } else {
@@ -364,8 +450,8 @@
364
450
  }
365
451
  } else {
366
452
  selected.value
367
- .filter(i => i !== item && i.selectionChanged)
368
- .forEach(i => i.selectionChanged(false));
453
+ .filter((i) => i !== item && i.selectionChanged)
454
+ .forEach((i) => i.selectionChanged(false));
369
455
  item.selectionChanged?.(true);
370
456
  selected.value = [item];
371
457
  firstSelected = item;
@@ -389,14 +475,14 @@
389
475
  remove(item) {
390
476
  if (selected.value.includes(item) && !item.disabled) {
391
477
  item.selectionChanged?.(false);
392
- selected.value = selected.value.filter(i => i !== item);
478
+ selected.value = selected.value.filter((i) => i !== item);
393
479
  emit('input', selected.value);
394
480
  }
395
481
  },
396
482
  clear() {
397
483
  selected.value
398
- .filter(i => i.selectionChanged)
399
- .forEach(i => i.selectionChanged(false));
484
+ .filter((i) => i.selectionChanged)
485
+ .forEach((i) => i.selectionChanged(false));
400
486
  selected.value = [];
401
487
  firstSelected = null;
402
488
  emit('input', selected.value);
@@ -411,6 +497,27 @@
411
497
  });
412
498
  emit('input', selected.value);
413
499
  },
500
+ drag,
501
+ drop,
502
+ titles,
503
+ overflowTitle(index, alternative) {
504
+ const elem = titles.value[index];
505
+ if (elem && elem.offsetWidth < elem.scrollWidth) {
506
+ return alternative;
507
+ }
508
+ return '';
509
+ },
510
+ listHeader,
511
+ listHeaderTooltip: computed(() => {
512
+ if (props.tooltip) {
513
+ return props.tooltip;
514
+ }
515
+ const elem = listHeader.value;
516
+ if (elem && elem.offsetWidth < elem.scrollWidth) {
517
+ return props.title;
518
+ }
519
+ return '';
520
+ }),
414
521
  };
415
522
  },
416
523
  };
@@ -419,9 +526,34 @@
419
526
  <style lang="scss" scoped>
420
527
  ::v-deep {
421
528
  .v-list {
529
+ .v-list-item__lighten_even {
530
+ &:nth-child(even) {
531
+ background-color: var(--v-base-lighten4);
532
+ }
533
+ }
534
+ .v-list-item__lighten_odd {
535
+ &:nth-child(odd) {
536
+ background-color: var(--v-base-lighten4);
537
+ }
538
+ }
539
+ .v-list-item__dragged {
540
+ background-color: var(--v-base-lighten2) !important;
541
+ }
422
542
  .v-list-item {
423
543
  padding: 4px 8px 4px 16px;
424
- &:after{
544
+ &.vcs-draggable-item:hover {
545
+ cursor: grab;
546
+ user-select: none;
547
+ }
548
+ &.border-bottom {
549
+ border-bottom: solid;
550
+ border-bottom-color: var(--v-base-lighten2);
551
+ }
552
+ &.border-top {
553
+ border-top: solid;
554
+ border-top-color: var(--v-base-lighten2);
555
+ }
556
+ &:after {
425
557
  display: none;
426
558
  }
427
559
  &.font-weight-bold {
@@ -429,9 +561,6 @@
429
561
  font-weight: 700;
430
562
  }
431
563
  }
432
- &:nth-child(even) {
433
- background-color: var(--v-base-lighten4);
434
- }
435
564
  .v-list-item__action {
436
565
  .v-icon {
437
566
  font-size: 16px;
@@ -7,7 +7,7 @@
7
7
  />
8
8
  <v-treeview
9
9
  class="vcs-treeview"
10
- v-bind="{...$props, ...$attrs}"
10
+ v-bind="{ ...$props, ...$attrs }"
11
11
  v-on="$listeners"
12
12
  expand-icon="mdi-chevron-down"
13
13
  item-key="name"
@@ -25,32 +25,35 @@
25
25
  </div>
26
26
  </template>
27
27
  <style lang="scss" scoped>
28
- .vcs-treeview {
29
- ::v-deep {
30
- // Root Level Entries should be 40px high
31
- > .v-treeview-node > .v-treeview-node__root {
32
- min-height: 40px;
33
- }
34
- // Border around root nodes with children included
35
- > .v-treeview-node:not(:last-child) {
36
- border-bottom: 1px solid var(--v-base-lighten2);
37
- }
38
- // Only Root Entries have a bold font
39
- > .v-treeview-node > .v-treeview-node__root > .v-treeview-node__content > .v-treeview-node__label {
40
- font-weight: 700;
41
- }
42
- // remove ripple effect from expand icon
43
- .v-icon.v-icon {
44
- &::after{
45
- background-color: transparent;
28
+ .vcs-treeview {
29
+ ::v-deep {
30
+ // Root Level Entries should be 40px high
31
+ > .v-treeview-node > .v-treeview-node__root {
32
+ min-height: 40px;
33
+ }
34
+ // Border around root nodes with children included
35
+ > .v-treeview-node:not(:last-child) {
36
+ border-bottom: 1px solid var(--v-base-lighten2);
37
+ }
38
+ // Only Root Entries have a bold font
39
+ > .v-treeview-node
40
+ > .v-treeview-node__root
41
+ > .v-treeview-node__content
42
+ > .v-treeview-node__label {
43
+ font-weight: 700;
44
+ }
45
+ // remove ripple effect from expand icon
46
+ .v-icon.v-icon {
47
+ &::after {
48
+ background-color: transparent;
49
+ }
50
+ }
51
+ // Toggle Item Chevron with should be 16px
52
+ .v-treeview-node__toggle {
53
+ width: 16px;
46
54
  }
47
- }
48
- // Toggle Item Chevron with should be 16px
49
- .v-treeview-node__toggle {
50
- width: 16px;
51
55
  }
52
56
  }
53
- }
54
57
  </style>
55
58
 
56
59
  <script>
@@ -95,7 +98,9 @@
95
98
  */
96
99
  const handleFilter = (treeNode, q = '') => {
97
100
  const translatedTitle = vm.$t(treeNode.title);
98
- return translatedTitle.toLocaleLowerCase().includes(q.toLocaleLowerCase());
101
+ return translatedTitle
102
+ .toLocaleLowerCase()
103
+ .includes(q.toLocaleLowerCase());
99
104
  };
100
105
 
101
106
  return {
@@ -105,4 +110,3 @@
105
110
  },
106
111
  };
107
112
  </script>
108
-