@vcmap/ui 6.0.0-rc.1 → 6.0.0-rc.3

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 (320) hide show
  1. package/build/build.js +40 -60
  2. package/build/buildHelpers.js +2 -8
  3. package/build/info/conf.json +1 -1
  4. package/config/base.config.json +4 -4
  5. package/config/projects.config.json +2 -1
  6. package/config/splashscreen.config.json +45 -0
  7. package/dist/.htaccess +7 -0
  8. package/dist/assets/@mdi/font/README.md +25 -0
  9. package/dist/assets/@mdi/font/css/materialdesignicons.min-7a4f6be0.css +3 -0
  10. package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  11. package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  12. package/dist/assets/cesium/Assets/approximateTerrainHeights.json +1 -1
  13. package/dist/assets/cesium/ThirdParty/Workers/z-worker-pako.js +1 -1
  14. package/dist/assets/cesium/Workers/{chunk-ZA25DG4Y.js → chunk-3DRPXHZ4.js} +11 -11
  15. package/dist/assets/cesium/Workers/{chunk-OAVNIRB4.js → chunk-3GI7DWF7.js} +5 -7
  16. package/dist/assets/cesium/Workers/{chunk-TFC6TZ3S.js → chunk-4EW3HFFI.js} +33 -22
  17. package/dist/assets/cesium/Workers/{chunk-LLUNNUJV.js → chunk-4OX4RYLB.js} +5 -5
  18. package/dist/assets/cesium/Workers/{chunk-66QLLS45.js → chunk-4RJH3H6D.js} +11 -9
  19. package/dist/assets/cesium/Workers/{chunk-MPAZH4BF.js → chunk-5OUTANXX.js} +1 -1
  20. package/dist/assets/cesium/Workers/{chunk-WXTV4ATB.js → chunk-6DH5PLFD.js} +1 -1
  21. package/dist/assets/cesium/Workers/{chunk-A4JVFBQ3.js → chunk-6DXIYFX3.js} +2 -2
  22. package/dist/assets/cesium/Workers/chunk-A5C2A5O5.js +963 -0
  23. package/dist/assets/cesium/Workers/{chunk-HQF437NJ.js → chunk-AGTH5JMJ.js} +6 -6
  24. package/dist/assets/cesium/Workers/{chunk-RP2A7BR5.js → chunk-AVFIYUKX.js} +12 -14
  25. package/dist/assets/cesium/Workers/{chunk-227AJNOA.js → chunk-BAJAVGUF.js} +5 -5
  26. package/dist/assets/cesium/Workers/{chunk-N3JIFFX2.js → chunk-BPY4HDAK.js} +5 -6
  27. package/dist/assets/cesium/Workers/{chunk-ABADGKYE.js → chunk-D6PDWQXW.js} +2 -2
  28. package/dist/assets/cesium/Workers/{chunk-34YUDLRP.js → chunk-DR7LK6PG.js} +13 -13
  29. package/dist/assets/cesium/Workers/{chunk-OYFCF4PL.js → chunk-DTACCQDR.js} +6 -6
  30. package/dist/assets/cesium/Workers/{chunk-C3SXRKRW.js → chunk-EVU2UNBD.js} +7 -7
  31. package/dist/assets/cesium/Workers/{chunk-6BTKZDRG.js → chunk-F7IEM66T.js} +3 -5
  32. package/dist/assets/cesium/Workers/{chunk-QT3MPEMI.js → chunk-FSXNF76Y.js} +4 -4
  33. package/dist/assets/cesium/Workers/{chunk-PCJWUS4M.js → chunk-FYYT5EVH.js} +830 -14
  34. package/dist/assets/cesium/Workers/{chunk-QMEMZIJI.js → chunk-FZDKIUDT.js} +4 -4
  35. package/dist/assets/cesium/Workers/{chunk-XTY7B2N6.js → chunk-G6346EDR.js} +16 -16
  36. package/dist/assets/cesium/Workers/{chunk-CHHNOC2C.js → chunk-H7PSTL64.js} +95 -155
  37. package/dist/assets/cesium/Workers/{chunk-2R5O53JW.js → chunk-I67V66MN.js} +6 -6
  38. package/dist/assets/cesium/Workers/{chunk-JS3AW5BK.js → chunk-IALQGTA2.js} +6 -6
  39. package/dist/assets/cesium/Workers/{chunk-K36FEYS7.js → chunk-KNMGSIIN.js} +16 -12
  40. package/dist/assets/cesium/Workers/{chunk-J3JY6I2C.js → chunk-L4XQPD6P.js} +49 -88
  41. package/dist/assets/cesium/Workers/{chunk-X4SU25DT.js → chunk-LMTN7R7M.js} +10 -12
  42. package/dist/assets/cesium/Workers/{chunk-JB2LWGH4.js → chunk-LUYI3XCB.js} +14 -14
  43. package/dist/assets/cesium/Workers/{chunk-AFFLIKOH.js → chunk-N5MIFVXJ.js} +7 -7
  44. package/dist/assets/cesium/Workers/{chunk-MYZB7C4T.js → chunk-O7OUBDMZ.js} +10 -10
  45. package/dist/assets/cesium/Workers/{chunk-VLGOATD6.js → chunk-P24I5VUS.js} +22 -22
  46. package/dist/assets/cesium/Workers/{chunk-KD4Y7CZL.js → chunk-PIOKSAZH.js} +15 -17
  47. package/dist/assets/cesium/Workers/{chunk-3W63OHNJ.js → chunk-PRKEY4QK.js} +5 -5
  48. package/dist/assets/cesium/Workers/{chunk-O5AMBQ36.js → chunk-Q7PM4W34.js} +8 -8
  49. package/dist/assets/cesium/Workers/{chunk-GLZBE3ML.js → chunk-QLC66ZRL.js} +13 -13
  50. package/dist/assets/cesium/Workers/{chunk-OZJDGN5F.js → chunk-RRLGJV3Q.js} +16 -16
  51. package/dist/assets/cesium/Workers/{chunk-CCFQRR6D.js → chunk-S2UEXF6T.js} +1 -1
  52. package/dist/assets/cesium/Workers/{chunk-QIKODV5G.js → chunk-S4VTLNAJ.js} +4 -4
  53. package/dist/assets/cesium/Workers/{chunk-EW2GWJYB.js → chunk-SJC5PRDX.js} +2 -2
  54. package/dist/assets/cesium/Workers/{chunk-KTJSNCK4.js → chunk-T6TZXGG5.js} +230 -20
  55. package/dist/assets/cesium/Workers/{chunk-RW6LU2CJ.js → chunk-TLGODPEV.js} +5 -5
  56. package/dist/assets/cesium/Workers/{chunk-CTELOFLA.js → chunk-UC566ISB.js} +6 -6
  57. package/dist/assets/cesium/Workers/{chunk-ZFOBYDGF.js → chunk-UMX265HW.js} +2 -2
  58. package/dist/assets/cesium/Workers/{chunk-Z24VKNDO.js → chunk-V7WJDCPA.js} +12 -12
  59. package/dist/assets/cesium/Workers/{chunk-4MFFIWUA.js → chunk-VD6G7UPU.js} +2 -2
  60. package/dist/assets/cesium/Workers/{chunk-XY7MGBKC.js → chunk-WMVCLETM.js} +14 -16
  61. package/dist/assets/cesium/Workers/{chunk-IPA4EACJ.js → chunk-WOA6WSHH.js} +12 -12
  62. package/dist/assets/cesium/Workers/{chunk-PFQBCKBM.js → chunk-X67EJ6X6.js} +4398 -2722
  63. package/dist/assets/cesium/Workers/{chunk-V3NGATMV.js → chunk-XGI4FRXF.js} +11 -13
  64. package/dist/assets/cesium/Workers/{chunk-AHKEZ2OE.js → chunk-YFVI4SQI.js} +1 -1
  65. package/dist/assets/cesium/Workers/{chunk-HARLBUOL.js → chunk-YFYPR4MW.js} +11 -8
  66. package/dist/assets/cesium/Workers/combineGeometry.js +22 -23
  67. package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -17
  68. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -15
  69. package/dist/assets/cesium/Workers/createCircleGeometry.js +29 -26
  70. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -18
  71. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +35 -36
  72. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -30
  73. package/dist/assets/cesium/Workers/createCorridorGeometry.js +29 -30
  74. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +27 -28
  75. package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -19
  76. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +17 -19
  77. package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -25
  78. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -18
  79. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -18
  80. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -17
  81. package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -17
  82. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +18 -18
  83. package/dist/assets/cesium/Workers/createGeometry.js +52 -33
  84. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +28 -29
  85. package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -15
  86. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -14
  87. package/dist/assets/cesium/Workers/createPolygonGeometry.js +451 -176
  88. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +29 -30
  89. package/dist/assets/cesium/Workers/createPolylineGeometry.js +24 -25
  90. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +31 -33
  91. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +27 -29
  92. package/dist/assets/cesium/Workers/createRectangleGeometry.js +30 -31
  93. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +21 -24
  94. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +22 -23
  95. package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -18
  96. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -17
  97. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
  98. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +14 -16
  99. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -23
  100. package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
  101. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -21
  102. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +14 -16
  103. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +24 -25
  104. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +25 -26
  105. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +19 -21
  106. package/dist/assets/cesium/Workers/createWallGeometry.js +23 -24
  107. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +22 -23
  108. package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
  109. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +12 -19
  110. package/dist/assets/cesium/Workers/decodeI3S.js +600 -92
  111. package/dist/assets/cesium/Workers/transcodeKTX2.js +46 -82
  112. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  113. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +21 -22
  114. package/dist/assets/{cesium.6b12b4.js → cesium-cb4dbfba.js} +151166 -145641
  115. package/dist/assets/cesium.js +1 -1
  116. package/dist/assets/{core.074b78.js → core-72f21835.js} +2299 -2225
  117. package/dist/assets/core.js +1 -1
  118. package/dist/assets/{ol.8b2e3a.js → ol-2d33bc8b.js} +42505 -44282
  119. package/dist/assets/ol.js +1 -1
  120. package/dist/assets/ui-2ab43a16.css +1 -0
  121. package/dist/assets/{ui.715986.js → ui-2ab43a16.js} +12001 -11136
  122. package/dist/assets/ui.js +1 -1
  123. package/dist/assets/vue.js +1 -1
  124. package/dist/assets/{vuetify.28d881.css → vuetify-760ced3b.css} +1 -1
  125. package/dist/assets/{vuetify.28d881.js → vuetify-760ced3b.js} +5720 -5662
  126. package/dist/assets/vuetify.js +1 -1
  127. package/dist/index.html +11 -10
  128. package/index.d.ts +9 -5
  129. package/index.html +5 -5
  130. package/index.js +4 -3
  131. package/lib/olLib.js +84 -23
  132. package/package.json +10 -9
  133. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
  134. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +70 -30
  135. package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
  136. package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
  137. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +45 -94
  138. package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
  139. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +35 -10
  140. package/plugins/@vcmap-show-case/wizard-example/src/WizardExample.vue +40 -54
  141. package/public/assets/@mdi/font/README.md +25 -0
  142. package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
  143. package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  144. package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  145. package/src/actions/actionHelper.js +20 -20
  146. package/src/actions/flightActions.js +5 -5
  147. package/src/actions/listActions.d.ts +0 -7
  148. package/src/actions/listActions.js +4 -20
  149. package/src/actions/stateRefAction.js +2 -2
  150. package/src/application/VcsApp.vue +53 -29
  151. package/src/application/VcsApp.vue.d.ts +1 -0
  152. package/src/application/VcsAttributions.vue +2 -13
  153. package/src/application/VcsAttributionsFooter.vue +10 -11
  154. package/src/application/VcsNavbar.vue.d.ts +1 -1
  155. package/src/application/VcsPositionDisplay.vue +8 -23
  156. package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
  157. package/src/application/VcsSettings.vue +10 -17
  158. package/src/application/VcsSplashScreen.vue +34 -54
  159. package/src/application/VcsSplashScreen.vue.d.ts +4 -6
  160. package/src/application/VcsTextPage.vue +13 -44
  161. package/src/application/VcsTextPage.vue.d.ts +4 -8
  162. package/src/application/VcsTextPageFooter.vue +22 -40
  163. package/src/application/markdownHelper.js +2 -17
  164. package/src/components/buttons/VcsButton.vue +1 -1
  165. package/src/components/buttons/VcsButton.vue.d.ts +3 -3
  166. package/src/components/buttons/VcsFormButton.vue +1 -1
  167. package/src/components/buttons/VcsFormButton.vue.d.ts +2 -2
  168. package/src/components/buttons/VcsToolButton.vue +1 -1
  169. package/src/components/buttons/VcsToolButton.vue.d.ts +4 -4
  170. package/src/components/composables.d.ts +7 -0
  171. package/src/components/composables.js +35 -1
  172. package/src/components/extent/VcsExtentEditor.vue +1 -1
  173. package/src/components/flight/VcsFlightAnchorsComponent.vue +63 -36
  174. package/src/components/flight/VcsFlightComponent.vue +16 -21
  175. package/src/components/flight/VcsFlightPlayer.vue +27 -5
  176. package/src/components/form-inputs-controls/VcsCheckbox.vue +19 -11
  177. package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +1 -0
  178. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +1 -1
  179. package/src/components/form-inputs-controls/VcsCoordinate.vue +13 -1
  180. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
  181. package/src/components/form-inputs-controls/VcsDatePicker.vue +34 -60
  182. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +2 -64
  183. package/src/components/form-inputs-controls/VcsFileInput.vue +18 -19
  184. package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
  185. package/src/components/form-inputs-controls/VcsLabel.vue +31 -1
  186. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +21 -1
  187. package/src/components/form-inputs-controls/VcsRadio.vue +19 -5
  188. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
  189. package/src/components/form-inputs-controls/VcsSelect.vue +44 -41
  190. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +7 -4
  191. package/src/components/form-inputs-controls/VcsSlider.vue +49 -10
  192. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +28 -2
  193. package/src/components/form-inputs-controls/VcsTextArea.vue +54 -35
  194. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
  195. package/src/components/form-inputs-controls/VcsTextField.vue +21 -14
  196. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +1 -0
  197. package/src/components/form-inputs-controls/VcsWizard.vue +89 -112
  198. package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +3 -13
  199. package/src/components/form-inputs-controls/VcsWizardStep.vue +75 -57
  200. package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +24 -11
  201. package/src/components/form-inputs-controls/vcsTextField.scss +13 -8
  202. package/src/components/form-output/VcsFormattedNumber.vue +40 -10
  203. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +27 -0
  204. package/src/components/form-output/VcsMarkdown.vue +53 -0
  205. package/src/{application/VcsCustomScreen.vue.d.ts → components/form-output/VcsMarkdown.vue.d.ts} +6 -5
  206. package/src/components/lists/VcsActionList.vue +50 -34
  207. package/src/components/lists/VcsActionList.vue.d.ts +3 -1
  208. package/src/components/lists/VcsList.vue +82 -158
  209. package/src/components/lists/VcsList.vue.d.ts +7 -14
  210. package/src/components/lists/VcsListItem.vue +184 -0
  211. package/src/components/lists/VcsListItem.vue.d.ts +27 -0
  212. package/src/components/lists/VcsTreeviewLeaf.vue +1 -1
  213. package/src/components/modelHelper.d.ts +11 -0
  214. package/src/components/modelHelper.js +42 -2
  215. package/src/components/section/VcsExpansionPanel.vue +101 -0
  216. package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
  217. package/src/components/style/MenuWrapper.vue +24 -26
  218. package/src/components/style/MenuWrapper.vue.d.ts +4 -4
  219. package/src/components/style/VcsFillMenu.vue +9 -16
  220. package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
  221. package/src/components/style/VcsFillSelector.vue +13 -16
  222. package/src/components/style/VcsImageMenu.vue +8 -25
  223. package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
  224. package/src/components/style/VcsImageSelector.vue +102 -167
  225. package/src/components/style/VcsImageSelector.vue.d.ts +15 -15
  226. package/src/components/style/VcsStrokeMenu.vue +8 -15
  227. package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
  228. package/src/components/style/VcsStrokeSelector.vue +11 -18
  229. package/src/components/style/VcsTextMenu.vue +9 -12
  230. package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
  231. package/src/components/style/VcsTextSelector.vue +79 -95
  232. package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
  233. package/src/components/style/VcsVectorStyleComponent.vue +7 -18
  234. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
  235. package/src/components/style/composables.d.ts +0 -14
  236. package/src/components/style/composables.js +0 -49
  237. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +53 -12
  238. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +3 -3
  239. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +475 -586
  240. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +193 -22
  241. package/src/components/viewpoint/VcsViewpointComponent.vue +21 -8
  242. package/src/components/viewpoint/VcsViewpointEditor.vue +1 -0
  243. package/src/contentTree/contentTreeItem.d.ts +2 -2
  244. package/src/contentTree/contentTreeItem.js +7 -7
  245. package/src/featureInfo/featureInfo.js +8 -10
  246. package/src/init.d.ts +5 -38
  247. package/src/init.js +19 -18
  248. package/src/legend/StyleLegendItem.vue +4 -9
  249. package/src/legend/VcsLegend.vue +28 -54
  250. package/src/manager/buttonManager.js +4 -4
  251. package/src/manager/collectionManager/CollectionComponent.vue +17 -42
  252. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
  253. package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
  254. package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
  255. package/src/manager/collectionManager/CollectionComponentList.vue +10 -8
  256. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +4 -2
  257. package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
  258. package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
  259. package/src/manager/collectionManager/CollectionManager.vue +1 -1
  260. package/src/manager/collectionManager/collectionComponentClass.js +6 -9
  261. package/src/manager/collectionManager/collectionManager.js +10 -10
  262. package/src/manager/collectionManager/editorCollectionComponentClass.js +4 -4
  263. package/src/manager/contextMenu/contextMenuManager.js +2 -2
  264. package/src/manager/navbarManager.js +2 -2
  265. package/src/manager/panel/panelManager.js +3 -3
  266. package/src/manager/toolbox/toolboxManager.js +10 -10
  267. package/src/manager/window/windowManager.d.ts +6 -6
  268. package/src/manager/window/windowManager.js +6 -6
  269. package/src/navigation/MapNavigation.vue +6 -3
  270. package/src/navigation/OrientationToolsButton.vue +39 -26
  271. package/src/navigation/OrientationToolsButton.vue.d.ts +5 -1
  272. package/src/navigation/TiltSlider.vue +83 -88
  273. package/src/navigation/TiltSlider.vue.d.ts +10 -7
  274. package/src/navigation/VcsCompass.vue +17 -11
  275. package/src/navigation/VcsCompass.vue.d.ts +2 -0
  276. package/src/search/search.js +2 -2
  277. package/src/siteConfig.js +1 -1
  278. package/src/state.js +4 -4
  279. package/src/styles/_typography.scss +1 -0
  280. package/src/vcsUiApp.d.ts +24 -26
  281. package/src/vcsUiApp.js +11 -4
  282. package/src/vuePlugins/i18n.js +7 -0
  283. package/src/vuePlugins/vuetify.d.ts +2 -0
  284. package/src/vuePlugins/vuetify.js +15 -0
  285. package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  286. package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
  287. package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +0 -3273
  288. package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +0 -73
  289. package/dist/assets/index-ca7EmZ3d.js +0 -1
  290. package/dist/assets/ui.715986.css +0 -1
  291. package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  292. package/src/application/VcsCustomScreen.vue +0 -45
  293. package/src/components/vector-properties/composables.d.ts +0 -33
  294. package/src/components/vector-properties/composables.js +0 -100
  295. package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
  296. package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
  297. package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
  298. package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
  299. package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
  300. package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
  301. package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
  302. package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
  303. package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
  304. package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
  305. package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
  306. package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
  307. package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
  308. package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
  309. package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
  310. package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
  311. package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
  312. package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
  313. package/dist/assets/{vue.0f2c53.js → vue-03b265aa.js} +0 -0
  314. package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
  315. package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
  316. package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
  317. package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
  318. package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
  319. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +0 -0
  320. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +1 -1
@@ -1,26 +1,25 @@
1
1
  <template>
2
- <div class="d-contents">
2
+ <div class="d-contents vcs-list">
3
3
  <vcs-treeview-searchbar
4
4
  v-if="searchable"
5
5
  :placeholder="searchbarPlaceholder"
6
6
  v-model="query"
7
7
  />
8
- <v-list density="compact">
9
- <v-list-item v-if="showTitle" class="font-weight-bold">
8
+ <v-list :class="{ 'vcs-list__selectable': selectable }">
9
+ <v-list-item v-if="showTitle && title">
10
10
  <template #prepend>
11
11
  <v-icon v-if="icon">
12
12
  {{ icon }}
13
13
  </v-icon>
14
14
  </template>
15
- <v-list-item-title>
16
- <VcsTooltip :tooltip="$st(listHeaderTooltip)">
17
- <template #activator="{ props }">
18
- <span v-bind="props" ref="listHeader">
19
- {{ $st(title) }}
20
- </span>
21
- </template>
22
- </VcsTooltip>
23
- <span v-if="selectable && selected.length > 0">
15
+ <v-list-item-title class="font-weight-bold" ref="listHeader">
16
+ <span :class="{ 'vcs-list-title__selected': selected.length > 0 }">
17
+ {{ $st(title) }}
18
+ </span>
19
+ <v-tooltip v-if="listHeaderTooltip" activator="parent">
20
+ {{ $st(listHeaderTooltip) }}
21
+ </v-tooltip>
22
+ <span v-if="selectable && selected.length > 0" class="ml-1">
24
23
  {{ `(${selected.length})` }}
25
24
  </span>
26
25
  </v-list-item-title>
@@ -32,90 +31,48 @@
32
31
  />
33
32
  </template>
34
33
  </v-list-item>
35
- <div v-for="(item, index) in renderingItems" :key="`item-${index}`">
36
- <v-list-item
34
+ <template v-for="(item, index) in renderingItems">
35
+ <VcsListItem
36
+ v-if="item"
37
+ :dragging="dragging === index"
38
+ :item="item"
39
+ :key="`item-${index}`"
37
40
  :active="selected.includes(item)"
38
- :disabled="item.disabled"
39
41
  @mousedown.shift="$event.preventDefault()"
40
42
  @mouseover="hovering = index"
41
43
  @mouseout="hovering = undefined"
42
44
  :draggable="isDraggable"
43
45
  @dragstart="drag($event, item, index)"
44
46
  @mouseup="drop($event, index)"
45
- color="primary"
46
47
  :class="{
47
48
  'v-list-item__selected': selected.includes(item),
48
49
  'v-list-item__lighten_even': lightenEven,
49
50
  'v-list-item__lighten_odd': !lightenEven,
50
51
  'vcs-draggable-item': isDraggable,
51
52
  'v-list-item__dragged': dragging === index,
53
+ 'v-list-item__dragged_over': dragging !== undefined,
52
54
  'border-bottom': borderBottom(index),
53
55
  'border-top': borderTop(index),
54
56
  'cursor-pointer': selectable && !isDraggable,
55
57
  }"
56
58
  @click="select(item, $event)"
57
59
  >
58
- <template #prepend>
59
- <v-icon v-if="item.icon">
60
- {{ item.icon }}
61
- </v-icon>
60
+ <template #title="titleScope">
61
+ <slot name="item.title" v-bind="{ ...titleScope, index }"></slot>
62
+ </template>
63
+ <template #subtitle="subtitleScope">
64
+ <slot name="item.subtitle" v-bind="{ ...subtitleScope, index }" />
62
65
  </template>
63
- <VcsTooltip
64
- :tooltip="
65
- dragging !== undefined
66
- ? undefined
67
- : $st(item.tooltip || overflowTitle(index, item.title))
68
- "
69
- >
70
- <template #activator="{ props }">
71
- <v-list-item-title
72
- v-bind="props"
73
- ref="titles"
74
- class="d-flex gc-2"
75
- >
76
- <slot name="item.prepend-title" :item="item" :index="index" />
77
- <slot name="item.title" :item="item" :index="index">
78
- <VcsTextField
79
- v-if="item.rename"
80
- :model-value="item.title"
81
- autofocus
82
- :no-padding="true"
83
- @update:model-value="(value) => rename(item, value)"
84
- @click.stop
85
- @keydown.enter="item.rename = false"
86
- @blur="item.rename = false"
87
- :rules="[(v) => !!v || 'components.validation.required']"
88
- />
89
- <span v-else>
90
- {{ $st(item.title) }}
91
- </span>
92
- </slot>
93
- <slot
94
- name="item.append-title"
95
- :item="item"
96
- :index="index"
97
- class="ml-auto"
98
- />
99
- </v-list-item-title>
100
- </template>
101
- </VcsTooltip>
102
- <template #append>
103
- <VcsBadge v-if="item.hasUpdate" :color="'warning'" />
104
- <vcs-action-button-list
105
- v-if="item.actions?.length > 0"
106
- :actions="item.actions"
107
- :disabled="item.disabled"
108
- :block-overflow="true"
109
- :overflow-count="actionButtonListOverflowCount"
110
- />
66
+ <template #default="scope">
67
+ <slot name="item.default" v-bind="{ ...scope, index }" />
111
68
  </template>
112
- </v-list-item>
69
+ </VcsListItem>
113
70
  <slot name="item.intermediate" :item="item" :index="index" />
114
71
  <div
115
72
  v-if="hasIntermediateSlot"
116
73
  :key="`item-intermediate-child-balance-${index}`"
117
74
  />
118
- </div>
75
+ </template>
119
76
  </v-list>
120
77
  </div>
121
78
  </template>
@@ -130,12 +87,17 @@
130
87
  shallowRef,
131
88
  watch,
132
89
  } from 'vue';
133
- import { VList, VListItem, VIcon, VListItemTitle } from 'vuetify/components';
90
+ import {
91
+ VList,
92
+ VListItem,
93
+ VIcon,
94
+ VListItemTitle,
95
+ VTooltip,
96
+ } from 'vuetify/components';
134
97
  import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
135
- import VcsTooltip from '../notification/VcsTooltip.vue';
136
98
  import VcsTreeviewSearchbar from './VcsTreeviewSearchbar.vue';
137
- import VcsBadge from '../notification/VcsBadge.vue';
138
- import VcsTextField from '../form-inputs-controls/VcsTextField.vue';
99
+ import VcsListItem from './VcsListItem.vue';
100
+ import { createEllipseTooltip } from '../composables.js';
139
101
 
140
102
  /**
141
103
  * @param {import("vue").Ref<VcsListItem[]>} items
@@ -181,7 +143,7 @@
181
143
  * @property {string} name
182
144
  * @property {boolean} [visible] - Whether to display this item or not.
183
145
  * @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.
146
+ * @property {boolean|import("../../actions/actionHelper.js").ActionOptions} [renamable] - Whether the title of can be edited. will add a rename action to the end of the action list. This action will call titleChanged with the new title, you must provide the callback yourself, otherwise this does not work as expeted.
185
147
  * @property {string} title - The title to be displayed
186
148
  * @property {string} [tooltip]
187
149
  * @property {string|HTMLCanvasElement|HTMLImageElement|undefined} [icon] - An optional icon to display with this item. Can be a URL or HTMLElement.
@@ -189,7 +151,7 @@
189
151
  * @property {Array<import("../../actions/actionHelper.js").VcsAction>} [actions]
190
152
  * @property {Array<function(PointerEvent):void>|undefined} [clickedCallbacks] - An array of callbacks called on item click. called before selection update
191
153
  * @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
154
+ * @property {function(string):void} [titleChanged] - A callback called if the title changes via rename action. only usable with renamble true.
193
155
  */
194
156
 
195
157
  /**
@@ -198,12 +160,6 @@
198
160
  * @property {number} targetIndex
199
161
  */
200
162
 
201
- /**
202
- * @typedef {Object} ItemRenamedEvent
203
- * @property {VcsListItem} item
204
- * @property {string} newTitle
205
- */
206
-
207
163
  /**
208
164
  * @description
209
165
  * The VCS list is intended to render items. Items can be selectable (by default, more than one) or only a single item can
@@ -230,7 +186,6 @@
230
186
  * @vue-prop {string} [tooltip] - tooltip to render on the list title
231
187
  * @vue-prop {Array<import("../../actions/actionHelper.js").VcsAction>} [actions] - actions to render in the list title
232
188
  * @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
189
  * @vue-data {slot} [#item.prepend-title] - A slot to adapt the list item titel, adding content before the title. Binds item and index.
235
190
  * @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
191
  * @vue-data {slot} [#item.append-title] - A slot to adapt the list item titel, adding content after the title. Binds item and index.
@@ -239,15 +194,14 @@
239
194
  export default {
240
195
  name: 'VcsList',
241
196
  components: {
242
- VcsBadge,
197
+ VcsListItem,
243
198
  VcsTreeviewSearchbar,
244
199
  VcsActionButtonList,
245
- VcsTooltip,
200
+ VTooltip,
246
201
  VList,
247
202
  VListItem,
248
203
  VIcon,
249
204
  VListItemTitle,
250
- VcsTextField,
251
205
  },
252
206
  props: {
253
207
  items: {
@@ -335,8 +289,7 @@
335
289
  return !(!props.searchable && !props.showTitle);
336
290
  });
337
291
  let firstSelected = null;
338
- const titles = ref([]);
339
- const listHeader = ref(null);
292
+ const listHeader = ref();
340
293
 
341
294
  watch(
342
295
  props,
@@ -383,7 +336,7 @@
383
336
  let draggedItem = null;
384
337
 
385
338
  const isDraggable = computed(() => {
386
- return query.value === '' && props.draggable;
339
+ return !query.value && props.draggable;
387
340
  });
388
341
 
389
342
  /**
@@ -587,31 +540,12 @@
587
540
  },
588
541
  drag,
589
542
  drop,
590
- titles,
591
- overflowTitle(index, alternative) {
592
- const elem = titles.value[index];
593
- if (elem && elem.offsetWidth < elem.scrollWidth) {
594
- return alternative;
595
- }
596
- return '';
597
- },
598
543
  listHeader,
599
- listHeaderTooltip: computed(() => {
600
- if (props.tooltip) {
601
- return props.tooltip;
602
- }
603
- const elem = listHeader.value;
604
- if (elem && elem.offsetWidth < elem.scrollWidth) {
605
- return props.title;
606
- }
607
- return '';
608
- }),
609
- rename(item, newTitle) {
610
- if (newTitle) {
611
- emit('item-renamed', { item, newTitle });
612
- item.titleChanged?.(newTitle);
613
- }
614
- },
544
+ listHeaderTooltip: createEllipseTooltip(
545
+ computed(() => listHeader.value?.$el),
546
+ computed(() => props.tooltip),
547
+ computed(() => props.title),
548
+ ),
615
549
  hasIntermediateSlot: computed(() => !!slots['item.intermediate']),
616
550
  };
617
551
  },
@@ -620,67 +554,57 @@
620
554
 
621
555
  <style lang="scss" scoped>
622
556
  :deep(.v-list) {
623
- .v-list-item__lighten_even {
624
- &:nth-child(even) {
625
- background-color: var(--v-base-lighten4);
626
- }
557
+ .v-list-item__lighten_even:nth-child(even) {
558
+ background-color: rgb(var(--v-theme-base-lighten-4));
627
559
  }
628
- .v-list-item__lighten_odd {
629
- &:nth-child(odd) {
630
- background-color: var(--v-base-lighten4);
631
- }
560
+ .v-list-item__lighten_odd:nth-child(odd) {
561
+ background-color: rgb(var(--v-theme-base-lighten-4));
632
562
  }
633
563
  .v-list-item__dragged {
634
- background-color: var(--v-base-lighten2) !important;
564
+ background-color: rgb(var(--v-theme-base-lighten-2)) !important;
565
+ }
566
+ .v-list-item__dragged_over:hover {
567
+ background-color: rgb(var(--v-theme-base-lighten-1)) !important;
635
568
  }
636
569
  .v-list-item__selected {
637
570
  border-left: solid 4px;
638
- border-left-color: var(--v-primary-base);
571
+ border-left-color: rgb(var(--v-theme-primary));
572
+ color: rgb(var(--v-theme-primary));
639
573
  padding-left: 12px !important;
640
574
  }
575
+ .v-list-item--active {
576
+ .v-list-item__append {
577
+ color: rgb(var(--v-theme-on-surface));
578
+ }
579
+ }
641
580
  .v-list-item {
642
- padding: 4px 8px 4px 16px;
643
581
  &.vcs-draggable-item:hover {
644
582
  cursor: grab;
645
583
  user-select: none;
646
584
  }
647
- &.border-bottom {
648
- border-bottom: solid;
649
- border-bottom-color: var(--v-base-lighten2);
650
- }
651
- &.border-top {
652
- border-top: solid;
653
- border-top-color: var(--v-base-lighten2);
654
- }
655
- &:after {
656
- display: none;
657
- }
658
- &.font-weight-bold {
659
- .v-list-item__title {
660
- font-weight: 700;
585
+ &:hover {
586
+ .v-list-item__overlay {
587
+ background-color: rgb(var(--v-theme-base));
661
588
  }
662
589
  }
663
- .v-list-item__action {
664
- .v-icon {
665
- font-size: 16px;
666
- }
667
- &:last-child {
668
- min-width: auto;
669
- }
590
+ .vcs-list-title__selected {
591
+ width: 90%;
592
+ display: inline-block;
593
+ overflow: hidden;
594
+ text-overflow: ellipsis;
595
+ vertical-align: bottom;
670
596
  }
671
- .v-list-item__content {
672
- flex-wrap: nowrap;
673
- column-gap: 4px;
674
- .v-icon,
675
- .action-btn-wrap {
676
- flex: 1 1 auto;
677
- }
678
- .v-icon {
679
- font-size: 16px;
680
- .v-icon__component {
681
- width: 16px;
682
- height: 16px;
683
- }
597
+ }
598
+
599
+ &:not(.vcs-list__selectable) {
600
+ .v-list-item--link {
601
+ cursor: auto;
602
+ }
603
+ cursor: auto;
604
+
605
+ &:hover {
606
+ .v-list-item__overlay {
607
+ background-color: transparent;
684
608
  }
685
609
  }
686
610
  }
@@ -97,11 +97,8 @@ declare const _default: import("vue").DefineComponent<{
97
97
  clear(): void;
98
98
  drag: (e: MouseEvent, item: VcsListItem, index: number) => void;
99
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>;
100
+ listHeader: import("vue").Ref<any>;
103
101
  listHeaderTooltip: import("vue").ComputedRef<string>;
104
- rename(item: any, newTitle: any): void;
105
102
  hasIntermediateSlot: import("vue").ComputedRef<boolean>;
106
103
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
107
104
  items: {
@@ -163,17 +160,17 @@ declare const _default: import("vue").DefineComponent<{
163
160
  };
164
161
  }>>, {
165
162
  title: string;
166
- modelValue: unknown[];
167
- tooltip: string;
168
163
  icon: string;
164
+ modelValue: unknown[];
169
165
  draggable: boolean;
166
+ tooltip: string;
170
167
  selectable: boolean;
171
168
  actions: unknown[];
172
169
  searchbarPlaceholder: string;
170
+ actionButtonListOverflowCount: number;
173
171
  singleSelect: boolean;
174
172
  searchable: boolean;
175
173
  showTitle: boolean;
176
- actionButtonListOverflowCount: number;
177
174
  }, {}>;
178
175
  export default _default;
179
176
  export type VcsListItem = {
@@ -187,9 +184,9 @@ export type VcsListItem = {
187
184
  */
188
185
  disabled?: boolean | undefined;
189
186
  /**
190
- * - Whether the title of this item is currently in edit mode.
187
+ * - Whether the title of can be edited. will add a rename action to the end of the action list. This action will call titleChanged with the new title, you must provide the callback yourself, otherwise this does not work as expeted.
191
188
  */
192
- rename?: boolean | undefined;
189
+ renamable?: boolean | import("../../actions/actionHelper.js", { with: { "resolution-mode": "import" } }).ActionOptions | undefined;
193
190
  /**
194
191
  * - The title to be displayed
195
192
  */
@@ -213,7 +210,7 @@ export type VcsListItem = {
213
210
  */
214
211
  selectionChanged?: ((arg0: boolean) => void) | undefined;
215
212
  /**
216
- * - A callback called if the title changes via rename action. called before value update
213
+ * - A callback called if the title changes via rename action. only usable with renamble true.
217
214
  */
218
215
  titleChanged?: ((arg0: string) => void) | undefined;
219
216
  };
@@ -221,7 +218,3 @@ export type ItemMovedEvent = {
221
218
  item: VcsListItem;
222
219
  targetIndex: number;
223
220
  };
224
- export type ItemRenamedEvent = {
225
- item: VcsListItem;
226
- newTitle: string;
227
- };
@@ -0,0 +1,184 @@
1
+ <script setup>
2
+ import {
3
+ VListItem,
4
+ VIcon,
5
+ VListItemTitle,
6
+ VTooltip,
7
+ } from 'vuetify/components';
8
+ import { computed, ref } from 'vue';
9
+ import { is } from '@vcsuite/check';
10
+ import VcsBadge from '../notification/VcsBadge.vue';
11
+ import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
12
+ import VcsTextField from '../form-inputs-controls/VcsTextField.vue';
13
+ import { createEllipseTooltip } from '../composables.js';
14
+
15
+ const props = defineProps({
16
+ /** @type {import("./VcsList.vue").VcsListItem} */
17
+ item: {
18
+ type: Object,
19
+ required: true,
20
+ },
21
+ actionButtonListOverflowCount: {
22
+ type: Number,
23
+ default: undefined,
24
+ },
25
+ dragging: {
26
+ type: Boolean,
27
+ default: false,
28
+ },
29
+ });
30
+
31
+ const rename = ref(false);
32
+ const renameAction = computed(() => {
33
+ if (props.item.renamable) {
34
+ return {
35
+ name: 'list.renameItem',
36
+ ...(is(props.item.renamable, Object) ? props.item.renamable : {}),
37
+ callback() {
38
+ rename.value = true;
39
+ },
40
+ };
41
+ }
42
+ return undefined;
43
+ });
44
+
45
+ function renameOff() {
46
+ rename.value = false;
47
+ }
48
+
49
+ const actions = computed(() => {
50
+ if (renameAction.value) {
51
+ return [...(props.item?.actions || []), renameAction.value];
52
+ }
53
+ return [...(props.item?.actions || [])];
54
+ });
55
+
56
+ const title = ref();
57
+ const tooltip = createEllipseTooltip(
58
+ computed(() => {
59
+ if (rename.value) {
60
+ return undefined;
61
+ }
62
+ return title.value?.$el;
63
+ }),
64
+ computed(() => props.item?.tooltip),
65
+ computed(() => props.item?.title),
66
+ );
67
+
68
+ function renameItem(item, newTitle) {
69
+ if (newTitle) {
70
+ item.titleChanged?.(newTitle);
71
+ }
72
+ }
73
+ </script>
74
+
75
+ <template>
76
+ <v-list-item :disabled="item.disabled" v-bind="$attrs">
77
+ <template #prepend>
78
+ <v-icon v-if="item.icon">
79
+ {{ item.icon }}
80
+ </v-icon>
81
+ </template>
82
+ <template #title>
83
+ <slot name="title" v-bind="{ item, dragging, tooltip }">
84
+ <v-list-item-title
85
+ ref="title"
86
+ :class="{ 'vcs-list-item__rename': rename }"
87
+ >
88
+ <vcs-text-field
89
+ v-if="rename"
90
+ :model-value="item.title"
91
+ autofocus
92
+ @update:model-value="(value) => renameItem(item, value)"
93
+ @click.stop
94
+ @keydown.enter="renameOff"
95
+ @blur="renameOff"
96
+ :rules="[(v) => !!v || 'components.validation.required']"
97
+ class="pa-0"
98
+ />
99
+ <template v-else>
100
+ {{ $st(item.title) }}
101
+ </template>
102
+ <v-tooltip v-if="dragging === false && tooltip" activator="parent">
103
+ {{ $st(tooltip) }}
104
+ </v-tooltip>
105
+ </v-list-item-title>
106
+ </slot>
107
+ </template>
108
+ <template #subtitle>
109
+ <slot name="subtitle" v-bind="{ item }" />
110
+ </template>
111
+ <template #default="scope">
112
+ <slot name="default" v-bind="{ ...scope, item, dragging, tooltip }" />
113
+ </template>
114
+ <template #append>
115
+ <vcs-badge v-if="item.hasUpdate" class="mr-1" />
116
+ <vcs-action-button-list
117
+ v-if="actions.length > 0"
118
+ :actions="actions"
119
+ :disabled="item.disabled"
120
+ :block-overflow="true"
121
+ :overflow-count="actionButtonListOverflowCount"
122
+ class="ml-2"
123
+ />
124
+ </template>
125
+ </v-list-item>
126
+ </template>
127
+
128
+ <style lang="scss" scoped>
129
+ .v-list-item {
130
+ padding: 4px 8px 4px 8px;
131
+ padding-inline-end: 8px !important;
132
+ padding-inline-start: 16px !important;
133
+ &.border-bottom {
134
+ border-bottom: solid;
135
+ border-bottom-color: rgb(var(--v-theme-base-lighten-2));
136
+ }
137
+ &.border-top {
138
+ border-top: solid;
139
+ border-top-color: rgb(var(--v-theme-base-lighten-2));
140
+ }
141
+ &:after {
142
+ display: none;
143
+ }
144
+ &.font-weight-bold {
145
+ .v-list-item__title {
146
+ font-weight: 700;
147
+ }
148
+ }
149
+ :deep(.v-list-item__action) {
150
+ .v-icon {
151
+ font-size: 16px;
152
+ }
153
+ &:last-child {
154
+ min-width: auto;
155
+ }
156
+ }
157
+ :deep(.v-list-item__content) {
158
+ flex-wrap: nowrap;
159
+ column-gap: 4px;
160
+ .v-icon,
161
+ .action-btn-wrap {
162
+ flex: 1 1 auto;
163
+ }
164
+ .v-icon {
165
+ font-size: 16px;
166
+ .v-icon__component {
167
+ width: 16px;
168
+ height: 16px;
169
+ }
170
+ }
171
+ }
172
+ :deep(.v-list-item__prepend > .v-badge ~ .v-list-item__spacer),
173
+ :deep(.v-list-item__prepend > .v-icon ~ .v-list-item__spacer),
174
+ :deep(.v-list-item__prepend > .v-tooltip ~ .v-list-item__spacer) {
175
+ width: 8px;
176
+ }
177
+ :deep(.v-list-item__overlay) {
178
+ background-color: transparent;
179
+ }
180
+ :deep(.vcs-list-item__rename) {
181
+ color: rgb(var(--v-theme-on-surface));
182
+ }
183
+ }
184
+ </style>
@@ -0,0 +1,27 @@
1
+ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {
2
+ $props: {
3
+ readonly [x: string]: any;
4
+ };
5
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>, {
6
+ title?(_: {
7
+ item: any;
8
+ dragging: any;
9
+ tooltip: string;
10
+ }): any;
11
+ subtitle?(_: {
12
+ item: any;
13
+ }): any;
14
+ default?(_: {
15
+ item: any;
16
+ dragging: any;
17
+ tooltip: string;
18
+ isActive: boolean;
19
+ isSelected: boolean;
20
+ isIndeterminate: boolean;
21
+ select: (value: boolean) => void;
22
+ }): any;
23
+ }>;
24
+ export default _default;
25
+ type __VLS_WithTemplateSlots<T, S> = T & (new () => {
26
+ $slots: S;
27
+ });
@@ -65,8 +65,8 @@
65
65
  </div>
66
66
  <v-tooltip
67
67
  activator="parent"
68
- :text="tooltip"
69
68
  v-if="tooltip"
69
+ :text="$st(tooltip)"
70
70
  location="bottom"
71
71
  />
72
72
  <template #append>
@@ -23,3 +23,14 @@ export function useProxiedAtomicModel<T>(props: Object, prop: string, emit: (eve
23
23
  * @template T
24
24
  */
25
25
  export function useProxiedComplexModel<T>(props: Object, prop: string, emit: (event: string, value: T) => void): import("vue").Ref<import("vue").UnwrapRef<T>>;
26
+ /**
27
+ * Helper function that returns a modelValue for VcsCheckbox depending on the availability of a specific property within a model object
28
+ * Getter returns true, if property is available, otherwise false.
29
+ * Setter applies provided defaultValue on the model object, if checked (true) and undefined, if unchecked (false)
30
+ * @param {import("vue").Ref<Object>} localValue The model object, e.g. provided by `useProxiedComplexModel` or a local ref object.
31
+ * @param {string} key The key of the localValue that should be return on get and updated on set.
32
+ * @param {D} defaultValue The default value that is set on checked (true)
33
+ * @returns {import('vue').WritableComputedRef<boolean>}
34
+ * @template D
35
+ */
36
+ export function useModelHasProperty<D>(localValue: import("vue").Ref<Object>, key: string, defaultValue: D): import('vue').WritableComputedRef<boolean>;