vuetify 3.0.0-beta.8 → 3.0.0

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 (960) hide show
  1. package/_settings.scss +2 -0
  2. package/_styles.scss +1 -0
  3. package/_tools.scss +1 -0
  4. package/dist/json/attributes.json +3758 -2478
  5. package/dist/json/importMap.json +28 -32
  6. package/dist/json/tags.json +485 -56
  7. package/dist/json/web-types.json +14622 -10829
  8. package/dist/vuetify.css +1568 -2291
  9. package/dist/vuetify.d.ts +18996 -9076
  10. package/dist/vuetify.esm.js +2405 -2942
  11. package/dist/vuetify.esm.js.map +1 -1
  12. package/dist/vuetify.js +2380 -2918
  13. package/dist/vuetify.js.map +1 -1
  14. package/dist/vuetify.min.css +3 -3
  15. package/dist/vuetify.min.js +1235 -1237
  16. package/dist/vuetify.min.js.map +1 -1
  17. package/lib/blueprints/index.d.ts +163 -0
  18. package/lib/blueprints/index.mjs.map +1 -1
  19. package/lib/blueprints/md1.d.ts +159 -0
  20. package/lib/blueprints/md1.mjs +3 -1
  21. package/lib/blueprints/md1.mjs.map +1 -1
  22. package/lib/blueprints/md2.d.ts +159 -0
  23. package/lib/blueprints/md2.mjs +3 -1
  24. package/lib/blueprints/md2.mjs.map +1 -1
  25. package/lib/blueprints/md3.d.ts +159 -0
  26. package/lib/blueprints/md3.mjs +2 -2
  27. package/lib/blueprints/md3.mjs.map +1 -1
  28. package/lib/components/VAlert/VAlert.css +2 -3
  29. package/lib/components/VAlert/VAlert.mjs +10 -23
  30. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  31. package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
  32. package/lib/components/VAlert/index.d.ts +187 -0
  33. package/lib/components/VAlert/index.mjs.map +1 -1
  34. package/lib/components/VApp/VApp.css +0 -11
  35. package/lib/components/VApp/VApp.mjs +5 -7
  36. package/lib/components/VApp/VApp.mjs.map +1 -1
  37. package/lib/components/VApp/VApp.sass +0 -9
  38. package/lib/components/VApp/index.d.ts +85 -0
  39. package/lib/components/VApp/index.mjs.map +1 -1
  40. package/lib/components/VAppBar/VAppBar.css +4 -1
  41. package/lib/components/VAppBar/VAppBar.mjs +7 -11
  42. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  43. package/lib/components/VAppBar/VAppBar.sass +3 -0
  44. package/lib/components/VAppBar/VAppBarNavIcon.mjs +0 -4
  45. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  46. package/lib/components/VAppBar/VAppBarTitle.mjs +2 -4
  47. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  48. package/lib/components/VAppBar/index.d.ts +160 -0
  49. package/lib/components/VAppBar/index.mjs.map +1 -1
  50. package/lib/components/VAutocomplete/VAutocomplete.css +19 -2
  51. package/lib/components/VAutocomplete/VAutocomplete.mjs +50 -48
  52. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  53. package/lib/components/VAutocomplete/VAutocomplete.sass +11 -1
  54. package/lib/components/VAutocomplete/_variables.scss +1 -0
  55. package/lib/components/VAutocomplete/index.d.ts +1520 -0
  56. package/lib/components/VAutocomplete/index.mjs.map +1 -1
  57. package/lib/components/VAvatar/VAvatar.css +45 -2
  58. package/lib/components/VAvatar/VAvatar.mjs +19 -19
  59. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  60. package/lib/components/VAvatar/VAvatar.sass +6 -1
  61. package/lib/components/VAvatar/_variables.scss +9 -4
  62. package/lib/components/VAvatar/index.d.ts +82 -0
  63. package/lib/components/VAvatar/index.mjs.map +1 -1
  64. package/lib/components/VBadge/VBadge.mjs +3 -9
  65. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  66. package/lib/components/VBadge/index.d.ts +123 -0
  67. package/lib/components/VBadge/index.mjs.map +1 -1
  68. package/lib/components/VBanner/VBanner.css +1 -1
  69. package/lib/components/VBanner/VBanner.mjs +5 -7
  70. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  71. package/lib/components/VBanner/VBannerActions.mjs +0 -4
  72. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  73. package/lib/components/VBanner/VBannerText.mjs.map +1 -1
  74. package/lib/components/VBanner/index.d.ts +126 -0
  75. package/lib/components/VBanner/index.mjs.map +1 -1
  76. package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -1
  77. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +3 -6
  78. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  79. package/lib/components/VBottomNavigation/index.d.ts +145 -0
  80. package/lib/components/VBottomNavigation/index.mjs.map +1 -1
  81. package/lib/components/VBottomSheet/VBottomSheet.mjs +5 -5
  82. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
  83. package/lib/components/VBottomSheet/index.mjs.map +1 -1
  84. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +8 -12
  85. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  86. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  87. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +4 -9
  88. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  89. package/lib/components/VBreadcrumbs/index.d.ts +311 -0
  90. package/lib/components/VBreadcrumbs/index.mjs.map +1 -1
  91. package/lib/components/VBtn/VBtn.css +14 -10
  92. package/lib/components/VBtn/VBtn.mjs +22 -20
  93. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  94. package/lib/components/VBtn/index.d.ts +212 -0
  95. package/lib/components/VBtn/index.mjs.map +1 -1
  96. package/lib/components/VBtnGroup/VBtnGroup.css +1 -1
  97. package/lib/components/VBtnGroup/VBtnGroup.mjs +2 -4
  98. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  99. package/lib/components/VBtnGroup/index.d.ts +68 -0
  100. package/lib/components/VBtnGroup/index.mjs.map +1 -1
  101. package/lib/components/VBtnToggle/VBtnToggle.mjs +3 -10
  102. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  103. package/lib/components/VBtnToggle/index.d.ts +170 -0
  104. package/lib/components/VBtnToggle/index.mjs.map +1 -1
  105. package/lib/components/VCalendar/VCalendar.mjs +6 -67
  106. package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
  107. package/lib/components/VCalendar/VCalendarCategory.mjs +7 -18
  108. package/lib/components/VCalendar/VCalendarCategory.mjs.map +1 -1
  109. package/lib/components/VCalendar/VCalendarDaily.mjs +3 -34
  110. package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
  111. package/lib/components/VCalendar/VCalendarMonthly.mjs +3 -7
  112. package/lib/components/VCalendar/VCalendarMonthly.mjs.map +1 -1
  113. package/lib/components/VCalendar/VCalendarWeekly.mjs +3 -32
  114. package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
  115. package/lib/components/VCalendar/index.mjs.map +1 -1
  116. package/lib/components/VCalendar/mixins/calendar-base.mjs +1 -19
  117. package/lib/components/VCalendar/mixins/calendar-base.mjs.map +1 -1
  118. package/lib/components/VCalendar/mixins/calendar-with-events.mjs +16 -84
  119. package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
  120. package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs +0 -30
  121. package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +1 -1
  122. package/lib/components/VCalendar/mixins/mouse.mjs +7 -17
  123. package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
  124. package/lib/components/VCalendar/mixins/times.mjs +1 -9
  125. package/lib/components/VCalendar/mixins/times.mjs.map +1 -1
  126. package/lib/components/VCalendar/modes/column.mjs +0 -3
  127. package/lib/components/VCalendar/modes/column.mjs.map +1 -1
  128. package/lib/components/VCalendar/modes/common.mjs +0 -14
  129. package/lib/components/VCalendar/modes/common.mjs.map +1 -1
  130. package/lib/components/VCalendar/modes/index.mjs +0 -1
  131. package/lib/components/VCalendar/modes/index.mjs.map +1 -1
  132. package/lib/components/VCalendar/modes/stack.mjs +3 -45
  133. package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
  134. package/lib/components/VCalendar/util/events.mjs +0 -1
  135. package/lib/components/VCalendar/util/events.mjs.map +1 -1
  136. package/lib/components/VCalendar/util/parser.mjs +3 -4
  137. package/lib/components/VCalendar/util/parser.mjs.map +1 -1
  138. package/lib/components/VCalendar/util/props.mjs +0 -13
  139. package/lib/components/VCalendar/util/props.mjs.map +1 -1
  140. package/lib/components/VCalendar/util/timestamp.mjs +2 -64
  141. package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
  142. package/lib/components/VCard/VCard.css +13 -9
  143. package/lib/components/VCard/VCard.mjs +6 -11
  144. package/lib/components/VCard/VCard.mjs.map +1 -1
  145. package/lib/components/VCard/VCardActions.mjs +0 -4
  146. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  147. package/lib/components/VCard/VCardItem.mjs +5 -10
  148. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  149. package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
  150. package/lib/components/VCard/VCardText.mjs.map +1 -1
  151. package/lib/components/VCard/VCardTitle.mjs.map +1 -1
  152. package/lib/components/VCard/index.d.ts +237 -0
  153. package/lib/components/VCard/index.mjs.map +1 -1
  154. package/lib/components/VCarousel/VCarousel.mjs +8 -12
  155. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  156. package/lib/components/VCarousel/VCarouselItem.mjs +0 -3
  157. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  158. package/lib/components/VCarousel/index.d.ts +81 -0
  159. package/lib/components/VCarousel/index.mjs.map +1 -1
  160. package/lib/components/VCheckbox/VCheckbox.mjs +22 -9
  161. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  162. package/lib/components/VCheckbox/VCheckboxBtn.mjs +7 -15
  163. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  164. package/lib/components/VCheckbox/index.d.ts +302 -0
  165. package/lib/components/VCheckbox/index.mjs.map +1 -1
  166. package/lib/components/VChip/VChip.css +27 -3
  167. package/lib/components/VChip/VChip.mjs +5 -13
  168. package/lib/components/VChip/VChip.mjs.map +1 -1
  169. package/lib/components/VChip/VChip.sass +1 -0
  170. package/lib/components/VChip/index.d.ts +197 -0
  171. package/lib/components/VChip/index.mjs.map +1 -1
  172. package/lib/components/VChipGroup/VChipGroup.mjs +5 -6
  173. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  174. package/lib/components/VChipGroup/index.d.ts +89 -0
  175. package/lib/components/VChipGroup/index.mjs.map +1 -1
  176. package/lib/components/VCode/VCode.css +5 -3
  177. package/lib/components/VCode/VCode.sass +3 -1
  178. package/lib/components/VCode/_variables.scss +5 -3
  179. package/lib/components/VCode/index.d.ts +20 -0
  180. package/lib/components/VCode/index.mjs.map +1 -1
  181. package/lib/components/VColorPicker/VColorPicker.css +3 -3
  182. package/lib/components/VColorPicker/VColorPicker.mjs +54 -61
  183. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  184. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +10 -25
  185. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  186. package/lib/components/VColorPicker/VColorPickerEdit.mjs +6 -10
  187. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  188. package/lib/components/VColorPicker/VColorPickerPreview.mjs +14 -24
  189. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  190. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +2 -6
  191. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  192. package/lib/components/VColorPicker/index.d.ts +116 -0
  193. package/lib/components/VColorPicker/index.mjs.map +1 -1
  194. package/lib/components/VColorPicker/util/index.mjs +25 -29
  195. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  196. package/lib/components/VCombobox/VCombobox.css +14 -1
  197. package/lib/components/VCombobox/VCombobox.mjs +56 -62
  198. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  199. package/lib/components/VCombobox/VCombobox.sass +5 -0
  200. package/lib/components/VCombobox/_variables.scss +1 -0
  201. package/lib/components/VCombobox/index.d.ts +1541 -0
  202. package/lib/components/VCombobox/index.mjs.map +1 -1
  203. package/lib/components/VCounter/VCounter.mjs +2 -5
  204. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  205. package/lib/components/VCounter/index.d.ts +224 -0
  206. package/lib/components/VCounter/index.mjs.map +1 -1
  207. package/lib/components/VData/VData.mjs +9 -67
  208. package/lib/components/VData/VData.mjs.map +1 -1
  209. package/lib/components/VData/index.mjs.map +1 -1
  210. package/lib/components/VDataIterator/VDataFooter.mjs +6 -25
  211. package/lib/components/VDataIterator/VDataFooter.mjs.map +1 -1
  212. package/lib/components/VDataIterator/VDataIterator.mjs +12 -51
  213. package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
  214. package/lib/components/VDataIterator/index.mjs.map +1 -1
  215. package/lib/components/VDataTable/MobileRow.mjs +3 -8
  216. package/lib/components/VDataTable/MobileRow.mjs.map +1 -1
  217. package/lib/components/VDataTable/Row.mjs +1 -8
  218. package/lib/components/VDataTable/Row.mjs.map +1 -1
  219. package/lib/components/VDataTable/RowGroup.mjs +1 -7
  220. package/lib/components/VDataTable/RowGroup.mjs.map +1 -1
  221. package/lib/components/VDataTable/VDataTable.mjs +53 -105
  222. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  223. package/lib/components/VDataTable/VDataTableHeader.mjs +6 -10
  224. package/lib/components/VDataTable/VDataTableHeader.mjs.map +1 -1
  225. package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs +0 -18
  226. package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +1 -1
  227. package/lib/components/VDataTable/VDataTableHeaderMobile.mjs +0 -9
  228. package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +1 -1
  229. package/lib/components/VDataTable/VEditDialog.mjs +3 -17
  230. package/lib/components/VDataTable/VEditDialog.mjs.map +1 -1
  231. package/lib/components/VDataTable/VVirtualTable.mjs +3 -28
  232. package/lib/components/VDataTable/VVirtualTable.mjs.map +1 -1
  233. package/lib/components/VDataTable/index.mjs +0 -1
  234. package/lib/components/VDataTable/index.mjs.map +1 -1
  235. package/lib/components/VDataTable/mixins/header.mjs +1 -8
  236. package/lib/components/VDataTable/mixins/header.mjs.map +1 -1
  237. package/lib/components/VDatePicker/VDatePicker.mjs +2 -69
  238. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  239. package/lib/components/VDatePicker/VDatePickerDateTable.mjs +1 -29
  240. package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
  241. package/lib/components/VDatePicker/VDatePickerHeader.mjs +4 -17
  242. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  243. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs +1 -12
  244. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +1 -1
  245. package/lib/components/VDatePicker/VDatePickerTitle.mjs +4 -15
  246. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +1 -1
  247. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -18
  248. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  249. package/lib/components/VDatePicker/index.mjs.map +1 -1
  250. package/lib/components/VDatePicker/mixins/date-picker-table.mjs +6 -33
  251. package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
  252. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs +0 -5
  253. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
  254. package/lib/components/VDatePicker/util/eventHelpers.mjs +2 -3
  255. package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
  256. package/lib/components/VDatePicker/util/index.mjs +0 -1
  257. package/lib/components/VDatePicker/util/index.mjs.map +1 -1
  258. package/lib/components/VDatePicker/util/isDateAllowed.mjs +1 -1
  259. package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +1 -1
  260. package/lib/components/VDatePicker/util/monthChange.mjs +0 -3
  261. package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
  262. package/lib/components/VDatePicker/util/pad.mjs +1 -6
  263. package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
  264. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
  265. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +2 -4
  266. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  267. package/lib/components/VDefaultsProvider/index.d.ts +27 -0
  268. package/lib/components/VDefaultsProvider/index.mjs.map +1 -1
  269. package/lib/components/VDialog/VDialog.css +4 -1
  270. package/lib/components/VDialog/VDialog.mjs +49 -59
  271. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  272. package/lib/components/VDialog/VDialog.sass +3 -0
  273. package/lib/components/VDialog/index.d.ts +1795 -0
  274. package/lib/components/VDialog/index.mjs.map +1 -1
  275. package/lib/components/VDivider/VDivider.mjs +2 -8
  276. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  277. package/lib/components/VDivider/index.d.ts +23 -0
  278. package/lib/components/VDivider/index.mjs.map +1 -1
  279. package/lib/components/VExpansionPanel/VExpansionPanel.css +9 -4
  280. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +0 -5
  281. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  282. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +2 -6
  283. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  284. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +3 -8
  285. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  286. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +2 -5
  287. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  288. package/lib/components/VExpansionPanel/index.d.ts +206 -0
  289. package/lib/components/VExpansionPanel/index.mjs.map +1 -1
  290. package/lib/components/VField/VField.css +29 -26
  291. package/lib/components/VField/VField.mjs +36 -35
  292. package/lib/components/VField/VField.mjs.map +1 -1
  293. package/lib/components/VField/VField.sass +23 -22
  294. package/lib/components/VField/VFieldLabel.mjs +0 -3
  295. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  296. package/lib/components/VField/index.d.ts +306 -0
  297. package/lib/components/VField/index.mjs.map +1 -1
  298. package/lib/components/VFileInput/VFileInput.css +16 -0
  299. package/lib/components/VFileInput/VFileInput.mjs +41 -60
  300. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  301. package/lib/components/VFileInput/VFileInput.sass +10 -0
  302. package/lib/components/VFileInput/_variables.scss +2 -0
  303. package/lib/components/VFileInput/index.d.ts +477 -0
  304. package/lib/components/VFileInput/index.mjs.map +1 -1
  305. package/lib/components/VFooter/VFooter.css +8 -1
  306. package/lib/components/VFooter/VFooter.mjs +2 -4
  307. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  308. package/lib/components/VFooter/VFooter.sass +1 -1
  309. package/lib/components/VFooter/_variables.scss +11 -0
  310. package/lib/components/VFooter/index.d.ts +77 -0
  311. package/lib/components/VFooter/index.mjs.map +1 -1
  312. package/lib/components/VForm/VForm.mjs +2 -13
  313. package/lib/components/VForm/VForm.mjs.map +1 -1
  314. package/lib/components/VForm/index.d.ts +81 -0
  315. package/lib/components/VForm/index.mjs.map +1 -1
  316. package/lib/components/VGrid/VCol.mjs +10 -24
  317. package/lib/components/VGrid/VCol.mjs.map +1 -1
  318. package/lib/components/VGrid/VContainer.mjs +2 -4
  319. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  320. package/lib/components/VGrid/VRow.mjs +13 -26
  321. package/lib/components/VGrid/VRow.mjs.map +1 -1
  322. package/lib/components/VGrid/VSpacer.mjs.map +1 -1
  323. package/lib/components/VGrid/index.d.ts +156 -0
  324. package/lib/components/VGrid/index.mjs.map +1 -1
  325. package/lib/components/VHover/VHover.mjs +0 -4
  326. package/lib/components/VHover/VHover.mjs.map +1 -1
  327. package/lib/components/VHover/index.d.ts +31 -0
  328. package/lib/components/VHover/index.mjs.map +1 -1
  329. package/lib/components/VIcon/VIcon.mjs +4 -9
  330. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  331. package/lib/components/VIcon/index.d.ts +125 -0
  332. package/lib/components/VIcon/index.mjs.map +1 -1
  333. package/lib/components/VImg/VImg.mjs +36 -60
  334. package/lib/components/VImg/VImg.mjs.map +1 -1
  335. package/lib/components/VImg/index.d.ts +93 -0
  336. package/lib/components/VImg/index.mjs.map +1 -1
  337. package/lib/components/VInput/InputIcon.mjs +31 -0
  338. package/lib/components/VInput/InputIcon.mjs.map +1 -0
  339. package/lib/components/VInput/VInput.mjs +20 -20
  340. package/lib/components/VInput/VInput.mjs.map +1 -1
  341. package/lib/components/VInput/index.d.ts +320 -0
  342. package/lib/components/VInput/index.mjs.map +1 -1
  343. package/lib/components/VItemGroup/VItem.mjs +0 -5
  344. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  345. package/lib/components/VItemGroup/VItemGroup.mjs +4 -6
  346. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  347. package/lib/components/VItemGroup/index.d.ts +204 -0
  348. package/lib/components/VItemGroup/index.mjs.map +1 -1
  349. package/lib/components/VKbd/VKbd.css +3 -3
  350. package/lib/components/VKbd/VKbd.sass +2 -2
  351. package/lib/components/VKbd/index.d.ts +20 -0
  352. package/lib/components/VKbd/index.mjs.map +1 -1
  353. package/lib/components/VLabel/VLabel.css +4 -1
  354. package/lib/components/VLabel/VLabel.mjs +6 -6
  355. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  356. package/lib/components/VLabel/VLabel.sass +3 -1
  357. package/lib/components/VLabel/index.d.ts +16 -0
  358. package/lib/components/VLabel/index.mjs.map +1 -1
  359. package/lib/components/VLayout/VLayout.mjs +2 -5
  360. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  361. package/lib/components/VLayout/VLayoutItem.mjs +2 -6
  362. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  363. package/lib/components/VLayout/index.d.ts +78 -0
  364. package/lib/components/VLayout/index.mjs.map +1 -1
  365. package/lib/components/VLazy/VLazy.mjs +0 -8
  366. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  367. package/lib/components/VLazy/index.d.ts +86 -0
  368. package/lib/components/VLazy/index.mjs.map +1 -1
  369. package/lib/components/VList/VList.css +1 -1
  370. package/lib/components/VList/VList.mjs +73 -24
  371. package/lib/components/VList/VList.mjs.map +1 -1
  372. package/lib/components/VList/VListChildren.mjs +22 -31
  373. package/lib/components/VList/VListChildren.mjs.map +1 -1
  374. package/lib/components/VList/VListGroup.mjs +11 -17
  375. package/lib/components/VList/VListGroup.mjs.map +1 -1
  376. package/lib/components/VList/VListImg.mjs.map +1 -1
  377. package/lib/components/VList/VListItem.css +12 -8
  378. package/lib/components/VList/VListItem.mjs +42 -42
  379. package/lib/components/VList/VListItem.mjs.map +1 -1
  380. package/lib/components/VList/VListItem.sass +2 -2
  381. package/lib/components/VList/VListItemAction.mjs +0 -3
  382. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  383. package/lib/components/VList/VListItemMedia.mjs +0 -3
  384. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  385. package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
  386. package/lib/components/VList/VListItemTitle.mjs.map +1 -1
  387. package/lib/components/VList/VListSubheader.mjs +2 -6
  388. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  389. package/lib/components/VList/index.d.ts +1242 -0
  390. package/lib/components/VList/index.mjs.map +1 -1
  391. package/lib/components/VList/list.mjs +5 -2
  392. package/lib/components/VList/list.mjs.map +1 -1
  393. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +4 -9
  394. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  395. package/lib/components/VLocaleProvider/index.d.ts +24 -0
  396. package/lib/components/VLocaleProvider/index.mjs.map +1 -1
  397. package/lib/components/VMain/VMain.css +0 -7
  398. package/lib/components/VMain/VMain.mjs +2 -5
  399. package/lib/components/VMain/VMain.mjs.map +1 -1
  400. package/lib/components/VMain/VMain.sass +0 -8
  401. package/lib/components/VMain/index.d.ts +27 -0
  402. package/lib/components/VMain/index.mjs.map +1 -1
  403. package/lib/components/VMenu/VMenu.css +1 -1
  404. package/lib/components/VMenu/VMenu.mjs +45 -43
  405. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  406. package/lib/components/VMenu/index.d.ts +1823 -0
  407. package/lib/components/VMenu/index.mjs.map +1 -1
  408. package/lib/components/VMenu/shared.mjs.map +1 -1
  409. package/lib/components/VMessages/VMessages.mjs +2 -6
  410. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  411. package/lib/components/VMessages/index.d.ts +235 -0
  412. package/lib/components/VMessages/index.mjs.map +1 -1
  413. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +6 -2
  414. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +32 -22
  415. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  416. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +5 -1
  417. package/lib/components/VNavigationDrawer/_variables.scss +1 -0
  418. package/lib/components/VNavigationDrawer/index.d.ts +148 -0
  419. package/lib/components/VNavigationDrawer/index.mjs.map +1 -1
  420. package/lib/components/VNavigationDrawer/sticky.mjs +66 -0
  421. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -0
  422. package/lib/components/VNavigationDrawer/touch.mjs +2 -15
  423. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  424. package/lib/components/VNoSsr/VNoSsr.mjs +0 -4
  425. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  426. package/lib/components/VNoSsr/index.d.ts +8 -0
  427. package/lib/components/VNoSsr/index.mjs.map +1 -1
  428. package/lib/components/VOtpInput/VOtpInput.mjs +7 -58
  429. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  430. package/lib/components/VOtpInput/index.mjs.map +1 -1
  431. package/lib/components/VOverflowBtn/VOverflowBtn.mjs +7 -19
  432. package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
  433. package/lib/components/VOverflowBtn/index.mjs.map +1 -1
  434. package/lib/components/VOverlay/VOverlay.mjs +47 -53
  435. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  436. package/lib/components/VOverlay/_variables.scss +1 -1
  437. package/lib/components/VOverlay/index.d.ts +551 -0
  438. package/lib/components/VOverlay/index.mjs.map +1 -1
  439. package/lib/components/VOverlay/locationStrategies.mjs +34 -58
  440. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  441. package/lib/components/VOverlay/requestNewFrame.mjs +1 -2
  442. package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -1
  443. package/lib/components/VOverlay/scrollStrategies.mjs +10 -29
  444. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  445. package/lib/components/VOverlay/useActivator.mjs +29 -29
  446. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  447. package/lib/components/VOverlay/util/point.mjs +3 -4
  448. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  449. package/lib/components/VPagination/VPagination.mjs +20 -30
  450. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  451. package/lib/components/VPagination/index.d.ts +249 -0
  452. package/lib/components/VPagination/index.mjs.map +1 -1
  453. package/lib/components/VParallax/VParallax.mjs +32 -24
  454. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  455. package/lib/components/VParallax/index.d.ts +18 -0
  456. package/lib/components/VParallax/index.mjs.map +1 -1
  457. package/lib/components/VPicker/VPicker.mjs +3 -12
  458. package/lib/components/VPicker/VPicker.mjs.map +1 -1
  459. package/lib/components/VPicker/index.mjs.map +1 -1
  460. package/lib/components/VProgressCircular/VProgressCircular.mjs +2 -5
  461. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  462. package/lib/components/VProgressCircular/index.d.ts +69 -0
  463. package/lib/components/VProgressCircular/index.mjs.map +1 -1
  464. package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -8
  465. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  466. package/lib/components/VProgressLinear/index.d.ts +102 -0
  467. package/lib/components/VProgressLinear/index.mjs.map +1 -1
  468. package/lib/components/VRadio/VRadio.mjs +2 -4
  469. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  470. package/lib/components/VRadio/index.d.ts +105 -0
  471. package/lib/components/VRadio/index.mjs.map +1 -1
  472. package/lib/components/VRadioGroup/VRadioGroup.css +2 -3
  473. package/lib/components/VRadioGroup/VRadioGroup.mjs +17 -21
  474. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  475. package/lib/components/VRadioGroup/VRadioGroup.sass +2 -2
  476. package/lib/components/VRadioGroup/_variables.scss +0 -1
  477. package/lib/components/VRadioGroup/index.d.ts +179 -0
  478. package/lib/components/VRadioGroup/index.mjs.map +1 -1
  479. package/lib/components/VRangeSlider/VRangeSlider.mjs +24 -27
  480. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  481. package/lib/components/VRangeSlider/index.d.ts +246 -0
  482. package/lib/components/VRangeSlider/index.mjs.map +1 -1
  483. package/lib/components/VRating/VRating.mjs +6 -30
  484. package/lib/components/VRating/VRating.mjs.map +1 -1
  485. package/lib/components/VRating/index.d.ts +348 -0
  486. package/lib/components/VRating/index.mjs.map +1 -1
  487. package/lib/components/VResponsive/VResponsive.mjs +2 -5
  488. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  489. package/lib/components/VResponsive/index.d.ts +24 -0
  490. package/lib/components/VResponsive/index.mjs.map +1 -1
  491. package/lib/components/VSelect/VSelect.css +21 -2
  492. package/lib/components/VSelect/VSelect.mjs +53 -38
  493. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  494. package/lib/components/VSelect/VSelect.sass +16 -1
  495. package/lib/components/VSelect/_variables.scss +1 -0
  496. package/lib/components/VSelect/index.d.ts +1484 -0
  497. package/lib/components/VSelect/index.mjs.map +1 -1
  498. package/lib/components/VSelectionControl/VSelectionControl.mjs +17 -62
  499. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  500. package/lib/components/VSelectionControl/index.d.ts +259 -0
  501. package/lib/components/VSelectionControl/index.mjs.map +1 -1
  502. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +6 -0
  503. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +59 -29
  504. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  505. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +6 -0
  506. package/lib/components/VSelectionControlGroup/index.d.ts +96 -0
  507. package/lib/components/VSelectionControlGroup/index.mjs.map +1 -1
  508. package/lib/components/VSheet/VSheet.css +1 -1
  509. package/lib/components/VSheet/VSheet.mjs +2 -4
  510. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  511. package/lib/components/VSheet/index.d.ts +69 -0
  512. package/lib/components/VSheet/index.mjs.map +1 -1
  513. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +19 -32
  514. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  515. package/lib/components/VSkeletonLoader/index.mjs.map +1 -1
  516. package/lib/components/VSlideGroup/VSlideGroup.mjs +56 -78
  517. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  518. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +5 -9
  519. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  520. package/lib/components/VSlideGroup/helpers.mjs +4 -17
  521. package/lib/components/VSlideGroup/helpers.mjs.map +1 -1
  522. package/lib/components/VSlideGroup/index.d.ts +434 -0
  523. package/lib/components/VSlideGroup/index.mjs.map +1 -1
  524. package/lib/components/VSlider/VSlider.css +7 -2
  525. package/lib/components/VSlider/VSlider.mjs +19 -12
  526. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  527. package/lib/components/VSlider/VSlider.sass +6 -2
  528. package/lib/components/VSlider/VSliderThumb.css +10 -6
  529. package/lib/components/VSlider/VSliderThumb.mjs +7 -18
  530. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  531. package/lib/components/VSlider/VSliderThumb.sass +11 -8
  532. package/lib/components/VSlider/VSliderTrack.css +20 -20
  533. package/lib/components/VSlider/VSliderTrack.mjs +16 -14
  534. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  535. package/lib/components/VSlider/VSliderTrack.sass +14 -14
  536. package/lib/components/VSlider/_variables.scss +2 -2
  537. package/lib/components/VSlider/index.d.ts +243 -0
  538. package/lib/components/VSlider/index.mjs.map +1 -1
  539. package/lib/components/VSlider/slider.mjs +15 -46
  540. package/lib/components/VSlider/slider.mjs.map +1 -1
  541. package/lib/components/VSnackbar/VSnackbar.css +2 -3
  542. package/lib/components/VSnackbar/VSnackbar.mjs +51 -60
  543. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  544. package/lib/components/VSnackbar/index.d.ts +1696 -0
  545. package/lib/components/VSnackbar/index.mjs.map +1 -1
  546. package/lib/components/VSparkline/VSparkline.mjs +5 -40
  547. package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
  548. package/lib/components/VSparkline/helpers/core.mjs +1 -1
  549. package/lib/components/VSparkline/helpers/core.mjs.map +1 -1
  550. package/lib/components/VSparkline/helpers/math.mjs +2 -3
  551. package/lib/components/VSparkline/helpers/math.mjs.map +1 -1
  552. package/lib/components/VSparkline/helpers/path.mjs +0 -4
  553. package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
  554. package/lib/components/VSparkline/index.mjs.map +1 -1
  555. package/lib/components/VSpeedDial/VSpeedDial.mjs +3 -12
  556. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  557. package/lib/components/VSpeedDial/index.mjs.map +1 -1
  558. package/lib/components/VStepper/VStepper.mjs +5 -24
  559. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  560. package/lib/components/VStepper/VStepperContent.mjs +4 -25
  561. package/lib/components/VStepper/VStepperContent.mjs.map +1 -1
  562. package/lib/components/VStepper/VStepperStep.mjs +0 -24
  563. package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
  564. package/lib/components/VStepper/index.mjs.map +1 -1
  565. package/lib/components/VSwitch/VSwitch.css +2 -2
  566. package/lib/components/VSwitch/VSwitch.mjs +26 -17
  567. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  568. package/lib/components/VSwitch/index.d.ts +186 -0
  569. package/lib/components/VSwitch/index.mjs.map +1 -1
  570. package/lib/components/VSystemBar/VSystemBar.css +1 -1
  571. package/lib/components/VSystemBar/VSystemBar.mjs +3 -9
  572. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  573. package/lib/components/VSystemBar/index.d.ts +62 -0
  574. package/lib/components/VSystemBar/index.mjs.map +1 -1
  575. package/lib/components/VTable/VTable.css +3 -3
  576. package/lib/components/VTable/VTable.mjs +5 -6
  577. package/lib/components/VTable/VTable.mjs.map +1 -1
  578. package/lib/components/VTable/VTable.sass +9 -3
  579. package/lib/components/VTable/index.d.ts +44 -0
  580. package/lib/components/VTable/index.mjs.map +1 -1
  581. package/lib/components/VTabs/VTab.css +3 -1
  582. package/lib/components/VTabs/VTab.mjs +5 -12
  583. package/lib/components/VTabs/VTab.mjs.map +1 -1
  584. package/lib/components/VTabs/VTab.sass +3 -1
  585. package/lib/components/VTabs/VTabs.css +7 -7
  586. package/lib/components/VTabs/VTabs.mjs +18 -21
  587. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  588. package/lib/components/VTabs/VTabs.sass +5 -5
  589. package/lib/components/VTabs/_variables.scss +1 -1
  590. package/lib/components/VTabs/index.d.ts +186 -0
  591. package/lib/components/VTabs/index.mjs.map +1 -1
  592. package/lib/components/VTabs/shared.mjs.map +1 -1
  593. package/lib/components/VTextField/VTextField.css +2 -3
  594. package/lib/components/VTextField/VTextField.mjs +32 -38
  595. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  596. package/lib/components/VTextField/VTextField.sass +2 -4
  597. package/lib/components/VTextField/index.d.ts +1807 -0
  598. package/lib/components/VTextField/index.mjs.map +1 -1
  599. package/lib/components/VTextarea/VTextarea.css +5 -3
  600. package/lib/components/VTextarea/VTextarea.mjs +26 -33
  601. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  602. package/lib/components/VTextarea/VTextarea.sass +5 -4
  603. package/lib/components/VTextarea/index.d.ts +461 -0
  604. package/lib/components/VTextarea/index.mjs.map +1 -1
  605. package/lib/components/VThemeProvider/VThemeProvider.mjs +2 -5
  606. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  607. package/lib/components/VThemeProvider/index.d.ts +25 -0
  608. package/lib/components/VThemeProvider/index.mjs.map +1 -1
  609. package/lib/components/VTimePicker/SelectingTimes.mjs +0 -3
  610. package/lib/components/VTimePicker/SelectingTimes.mjs.map +1 -1
  611. package/lib/components/VTimePicker/VTimePicker.mjs +3 -53
  612. package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
  613. package/lib/components/VTimePicker/VTimePickerClock.mjs +6 -42
  614. package/lib/components/VTimePicker/VTimePickerClock.mjs.map +1 -1
  615. package/lib/components/VTimePicker/VTimePickerTitle.mjs +4 -13
  616. package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +1 -1
  617. package/lib/components/VTimePicker/index.mjs.map +1 -1
  618. package/lib/components/VTimeline/VTimeline.css +77 -41
  619. package/lib/components/VTimeline/VTimeline.mjs +8 -10
  620. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  621. package/lib/components/VTimeline/VTimeline.sass +95 -64
  622. package/lib/components/VTimeline/VTimelineDivider.mjs +2 -7
  623. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  624. package/lib/components/VTimeline/VTimelineItem.mjs +2 -8
  625. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  626. package/lib/components/VTimeline/_mixins.sass +10 -0
  627. package/lib/components/VTimeline/_variables.scss +4 -3
  628. package/lib/components/VTimeline/index.d.ts +158 -0
  629. package/lib/components/VTimeline/index.mjs.map +1 -1
  630. package/lib/components/VToolbar/VToolbar.css +3 -4
  631. package/lib/components/VToolbar/VToolbar.mjs +3 -11
  632. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  633. package/lib/components/VToolbar/VToolbar.sass +0 -1
  634. package/lib/components/VToolbar/VToolbarItems.mjs +0 -4
  635. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  636. package/lib/components/VToolbar/VToolbarTitle.mjs +0 -5
  637. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  638. package/lib/components/VToolbar/_variables.scss +1 -1
  639. package/lib/components/VToolbar/index.d.ts +377 -0
  640. package/lib/components/VToolbar/index.mjs.map +1 -1
  641. package/lib/components/VTooltip/VTooltip.mjs +46 -57
  642. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  643. package/lib/components/VTooltip/index.d.ts +1789 -0
  644. package/lib/components/VTooltip/index.mjs.map +1 -1
  645. package/lib/components/VTreeview/VTreeview.mjs +18 -75
  646. package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
  647. package/lib/components/VTreeview/VTreeviewNode.mjs +2 -32
  648. package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
  649. package/lib/components/VTreeview/index.mjs.map +1 -1
  650. package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -6
  651. package/lib/components/VTreeview/util/filterTreeItems.mjs.map +1 -1
  652. package/lib/components/VValidation/VValidation.mjs +2 -5
  653. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  654. package/lib/components/VValidation/index.d.ts +67 -0
  655. package/lib/components/VValidation/index.mjs.map +1 -1
  656. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +3 -18
  657. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  658. package/lib/components/VVirtualScroll/index.mjs.map +1 -1
  659. package/lib/components/VWindow/VWindow.mjs +6 -22
  660. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  661. package/lib/components/VWindow/VWindowItem.mjs +8 -21
  662. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  663. package/lib/components/VWindow/index.d.ts +378 -0
  664. package/lib/components/VWindow/index.mjs.map +1 -1
  665. package/lib/components/index.d.ts +18377 -8694
  666. package/lib/components/index.mjs +0 -11
  667. package/lib/components/index.mjs.map +1 -1
  668. package/lib/components/transitions/createTransition.mjs +0 -10
  669. package/lib/components/transitions/createTransition.mjs.map +1 -1
  670. package/lib/components/transitions/dialog-transition.mjs +8 -23
  671. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  672. package/lib/components/transitions/expand-transition.mjs +2 -11
  673. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  674. package/lib/components/transitions/index.d.ts +470 -0
  675. package/lib/components/transitions/index.mjs +5 -4
  676. package/lib/components/transitions/index.mjs.map +1 -1
  677. package/lib/composables/border.mjs +0 -3
  678. package/lib/composables/border.mjs.map +1 -1
  679. package/lib/composables/color.mjs +0 -4
  680. package/lib/composables/color.mjs.map +1 -1
  681. package/lib/composables/defaults.mjs +1 -6
  682. package/lib/composables/defaults.mjs.map +1 -1
  683. package/lib/composables/delay.mjs +1 -6
  684. package/lib/composables/delay.mjs.map +1 -1
  685. package/lib/composables/density.mjs +4 -1
  686. package/lib/composables/density.mjs.map +1 -1
  687. package/lib/composables/dimensions.mjs +0 -1
  688. package/lib/composables/dimensions.mjs.map +1 -1
  689. package/lib/composables/display.mjs +8 -21
  690. package/lib/composables/display.mjs.map +1 -1
  691. package/lib/composables/elevation.mjs +2 -4
  692. package/lib/composables/elevation.mjs.map +1 -1
  693. package/lib/composables/filter.mjs +11 -20
  694. package/lib/composables/filter.mjs.map +1 -1
  695. package/lib/composables/focus.mjs +0 -5
  696. package/lib/composables/focus.mjs.map +1 -1
  697. package/lib/composables/form.mjs +36 -24
  698. package/lib/composables/form.mjs.map +1 -1
  699. package/lib/composables/forwardRefs.mjs +9 -16
  700. package/lib/composables/forwardRefs.mjs.map +1 -1
  701. package/lib/composables/group.mjs +11 -38
  702. package/lib/composables/group.mjs.map +1 -1
  703. package/lib/composables/hydration.mjs +0 -1
  704. package/lib/composables/hydration.mjs.map +1 -1
  705. package/lib/composables/icons.mjs +5 -18
  706. package/lib/composables/icons.mjs.map +1 -1
  707. package/lib/composables/index.mjs +1 -2
  708. package/lib/composables/index.mjs.map +1 -1
  709. package/lib/composables/intersectionObserver.mjs +0 -3
  710. package/lib/composables/intersectionObserver.mjs.map +1 -1
  711. package/lib/composables/items.mjs +5 -17
  712. package/lib/composables/items.mjs.map +1 -1
  713. package/lib/composables/layout.mjs +31 -37
  714. package/lib/composables/layout.mjs.map +1 -1
  715. package/lib/composables/lazy.mjs +2 -3
  716. package/lib/composables/lazy.mjs.map +1 -1
  717. package/lib/composables/loader.mjs +0 -3
  718. package/lib/composables/loader.mjs.map +1 -1
  719. package/lib/composables/locale.mjs +48 -127
  720. package/lib/composables/locale.mjs.map +1 -1
  721. package/lib/composables/location.mjs +1 -8
  722. package/lib/composables/location.mjs.map +1 -1
  723. package/lib/composables/mutationObserver.mjs +7 -7
  724. package/lib/composables/mutationObserver.mjs.map +1 -1
  725. package/lib/composables/nested/nested.mjs +21 -38
  726. package/lib/composables/nested/nested.mjs.map +1 -1
  727. package/lib/composables/nested/openStrategies.mjs +0 -9
  728. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  729. package/lib/composables/nested/selectStrategies.mjs +6 -21
  730. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  731. package/lib/composables/position.mjs +1 -4
  732. package/lib/composables/position.mjs.map +1 -1
  733. package/lib/composables/proxiedModel.mjs +28 -16
  734. package/lib/composables/proxiedModel.mjs.map +1 -1
  735. package/lib/composables/refs.mjs +0 -2
  736. package/lib/composables/refs.mjs.map +1 -1
  737. package/lib/composables/resizeObserver.mjs +0 -3
  738. package/lib/composables/resizeObserver.mjs.map +1 -1
  739. package/lib/composables/rounded.mjs +0 -3
  740. package/lib/composables/rounded.mjs.map +1 -1
  741. package/lib/composables/router.mjs +12 -12
  742. package/lib/composables/router.mjs.map +1 -1
  743. package/lib/composables/scopeId.mjs.map +1 -1
  744. package/lib/composables/scroll.mjs +4 -12
  745. package/lib/composables/scroll.mjs.map +1 -1
  746. package/lib/composables/selectLink.mjs +7 -6
  747. package/lib/composables/selectLink.mjs.map +1 -1
  748. package/lib/composables/size.mjs +0 -3
  749. package/lib/composables/size.mjs.map +1 -1
  750. package/lib/composables/ssrBoot.mjs +2 -1
  751. package/lib/composables/ssrBoot.mjs.map +1 -1
  752. package/lib/composables/stack.mjs +0 -6
  753. package/lib/composables/stack.mjs.map +1 -1
  754. package/lib/composables/tag.mjs +0 -1
  755. package/lib/composables/tag.mjs.map +1 -1
  756. package/lib/composables/teleport.mjs +0 -4
  757. package/lib/composables/teleport.mjs.map +1 -1
  758. package/lib/composables/theme.mjs +67 -83
  759. package/lib/composables/theme.mjs.map +1 -1
  760. package/lib/composables/toggleScope.mjs +0 -1
  761. package/lib/composables/toggleScope.mjs.map +1 -1
  762. package/lib/composables/touch.mjs +6 -31
  763. package/lib/composables/touch.mjs.map +1 -1
  764. package/lib/composables/transition.mjs +0 -4
  765. package/lib/composables/transition.mjs.map +1 -1
  766. package/lib/composables/validation.mjs +40 -28
  767. package/lib/composables/validation.mjs.map +1 -1
  768. package/lib/composables/variant.mjs +0 -2
  769. package/lib/composables/variant.mjs.map +1 -1
  770. package/lib/directives/click-outside/index.mjs +10 -22
  771. package/lib/directives/click-outside/index.mjs.map +1 -1
  772. package/lib/directives/color/index.mjs +0 -11
  773. package/lib/directives/color/index.mjs.map +1 -1
  774. package/lib/directives/index.d.ts +104 -13
  775. package/lib/directives/index.mjs +0 -1
  776. package/lib/directives/index.mjs.map +1 -1
  777. package/lib/directives/intersect/index.mjs +3 -10
  778. package/lib/directives/intersect/index.mjs.map +1 -1
  779. package/lib/directives/mutate/index.mjs +5 -11
  780. package/lib/directives/mutate/index.mjs.map +1 -1
  781. package/lib/directives/resize/index.mjs +0 -5
  782. package/lib/directives/resize/index.mjs.map +1 -1
  783. package/lib/directives/ripple/index.mjs +12 -66
  784. package/lib/directives/ripple/index.mjs.map +1 -1
  785. package/lib/directives/scroll/index.mjs +1 -7
  786. package/lib/directives/scroll/index.mjs.map +1 -1
  787. package/lib/directives/touch/index.mjs +3 -18
  788. package/lib/directives/touch/index.mjs.map +1 -1
  789. package/lib/entry-bundler.mjs +2 -1
  790. package/lib/entry-bundler.mjs.map +1 -1
  791. package/lib/framework.mjs +60 -61
  792. package/lib/framework.mjs.map +1 -1
  793. package/lib/iconsets/fa-svg.mjs +0 -1
  794. package/lib/iconsets/fa-svg.mjs.map +1 -1
  795. package/lib/iconsets/fa.mjs +0 -1
  796. package/lib/iconsets/fa.mjs.map +1 -1
  797. package/lib/iconsets/fa4.mjs +4 -3
  798. package/lib/iconsets/fa4.mjs.map +1 -1
  799. package/lib/iconsets/md.mjs +4 -3
  800. package/lib/iconsets/md.mjs.map +1 -1
  801. package/lib/iconsets/mdi-svg.mjs +1 -1
  802. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  803. package/lib/iconsets/mdi.mjs +4 -3
  804. package/lib/iconsets/mdi.mjs.map +1 -1
  805. package/lib/index.d.ts +109 -110
  806. package/lib/locale/adapters/vue-i18n.d.ts +29 -0
  807. package/lib/locale/adapters/vue-i18n.mjs +59 -54
  808. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  809. package/lib/locale/adapters/vuetify.d.ts +24 -0
  810. package/lib/locale/adapters/vuetify.mjs +97 -0
  811. package/lib/locale/adapters/vuetify.mjs.map +1 -0
  812. package/lib/locale/af.mjs +5 -0
  813. package/lib/locale/af.mjs.map +1 -1
  814. package/lib/locale/ar.mjs +5 -0
  815. package/lib/locale/ar.mjs.map +1 -1
  816. package/lib/locale/az.mjs +5 -0
  817. package/lib/locale/az.mjs.map +1 -1
  818. package/lib/locale/bg.mjs +5 -0
  819. package/lib/locale/bg.mjs.map +1 -1
  820. package/lib/locale/ca.mjs +5 -0
  821. package/lib/locale/ca.mjs.map +1 -1
  822. package/lib/locale/ckb.mjs +5 -0
  823. package/lib/locale/ckb.mjs.map +1 -1
  824. package/lib/locale/cs.mjs +5 -0
  825. package/lib/locale/cs.mjs.map +1 -1
  826. package/lib/locale/da.mjs +5 -0
  827. package/lib/locale/da.mjs.map +1 -1
  828. package/lib/locale/de.mjs +5 -0
  829. package/lib/locale/de.mjs.map +1 -1
  830. package/lib/locale/el.mjs +5 -0
  831. package/lib/locale/el.mjs.map +1 -1
  832. package/lib/locale/en.mjs +5 -0
  833. package/lib/locale/en.mjs.map +1 -1
  834. package/lib/locale/es.mjs +5 -0
  835. package/lib/locale/es.mjs.map +1 -1
  836. package/lib/locale/et.mjs +5 -0
  837. package/lib/locale/et.mjs.map +1 -1
  838. package/lib/locale/fa.mjs +5 -0
  839. package/lib/locale/fa.mjs.map +1 -1
  840. package/lib/locale/fi.mjs +5 -0
  841. package/lib/locale/fi.mjs.map +1 -1
  842. package/lib/locale/fr.mjs +5 -0
  843. package/lib/locale/fr.mjs.map +1 -1
  844. package/lib/locale/he.mjs +5 -0
  845. package/lib/locale/he.mjs.map +1 -1
  846. package/lib/locale/hr.mjs +5 -0
  847. package/lib/locale/hr.mjs.map +1 -1
  848. package/lib/locale/hu.mjs +5 -0
  849. package/lib/locale/hu.mjs.map +1 -1
  850. package/lib/locale/id.mjs +5 -0
  851. package/lib/locale/id.mjs.map +1 -1
  852. package/lib/locale/index.d.ts +212 -2
  853. package/lib/locale/index.mjs +1 -1
  854. package/lib/locale/index.mjs.map +1 -1
  855. package/lib/locale/it.mjs +5 -0
  856. package/lib/locale/it.mjs.map +1 -1
  857. package/lib/locale/ja.mjs +5 -0
  858. package/lib/locale/ja.mjs.map +1 -1
  859. package/lib/locale/ko.mjs +5 -0
  860. package/lib/locale/ko.mjs.map +1 -1
  861. package/lib/locale/lt.mjs +5 -0
  862. package/lib/locale/lt.mjs.map +1 -1
  863. package/lib/locale/lv.mjs +5 -0
  864. package/lib/locale/lv.mjs.map +1 -1
  865. package/lib/locale/nl.mjs +5 -0
  866. package/lib/locale/nl.mjs.map +1 -1
  867. package/lib/locale/no.mjs +5 -0
  868. package/lib/locale/no.mjs.map +1 -1
  869. package/lib/locale/pl.mjs +9 -4
  870. package/lib/locale/pl.mjs.map +1 -1
  871. package/lib/locale/pt.mjs +5 -0
  872. package/lib/locale/pt.mjs.map +1 -1
  873. package/lib/locale/ro.mjs +5 -0
  874. package/lib/locale/ro.mjs.map +1 -1
  875. package/lib/locale/ru.mjs +5 -0
  876. package/lib/locale/ru.mjs.map +1 -1
  877. package/lib/locale/sk.mjs +5 -0
  878. package/lib/locale/sk.mjs.map +1 -1
  879. package/lib/locale/sl.mjs +5 -0
  880. package/lib/locale/sl.mjs.map +1 -1
  881. package/lib/locale/sr-Cyrl.mjs +5 -0
  882. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  883. package/lib/locale/sr-Latn.mjs +5 -0
  884. package/lib/locale/sr-Latn.mjs.map +1 -1
  885. package/lib/locale/sv.mjs +5 -0
  886. package/lib/locale/sv.mjs.map +1 -1
  887. package/lib/locale/th.mjs +5 -0
  888. package/lib/locale/th.mjs.map +1 -1
  889. package/lib/locale/tr.mjs +5 -0
  890. package/lib/locale/tr.mjs.map +1 -1
  891. package/lib/locale/uk.mjs +5 -0
  892. package/lib/locale/uk.mjs.map +1 -1
  893. package/lib/locale/vi.mjs +5 -0
  894. package/lib/locale/vi.mjs.map +1 -1
  895. package/lib/locale/zh-Hans.mjs +5 -0
  896. package/lib/locale/zh-Hans.mjs.map +1 -1
  897. package/lib/locale/zh-Hant.mjs +5 -0
  898. package/lib/locale/zh-Hant.mjs.map +1 -1
  899. package/lib/services/goto/easing-patterns.mjs +24 -24
  900. package/lib/services/goto/easing-patterns.mjs.map +1 -1
  901. package/lib/services/goto/index.mjs +11 -15
  902. package/lib/services/goto/index.mjs.map +1 -1
  903. package/lib/services/goto/util.mjs +1 -8
  904. package/lib/services/goto/util.mjs.map +1 -1
  905. package/lib/styles/main.css +129 -101
  906. package/lib/styles/settings/_colors.scss +84 -84
  907. package/lib/styles/settings/_elevations.scss +3 -3
  908. package/lib/styles/settings/_utilities.scss +12 -4
  909. package/lib/styles/tools/_states.sass +8 -3
  910. package/lib/styles/tools/_variant.sass +0 -1
  911. package/lib/util/anchor.mjs +0 -3
  912. package/lib/util/anchor.mjs.map +1 -1
  913. package/lib/util/animation.mjs +14 -4
  914. package/lib/util/animation.mjs.map +1 -1
  915. package/lib/util/box.mjs +0 -5
  916. package/lib/util/box.mjs.map +1 -1
  917. package/lib/util/color/APCA.mjs +23 -21
  918. package/lib/util/color/APCA.mjs.map +1 -1
  919. package/lib/util/color/transformCIELAB.mjs +0 -2
  920. package/lib/util/color/transformCIELAB.mjs.map +1 -1
  921. package/lib/util/color/transformSRGB.mjs +14 -12
  922. package/lib/util/color/transformSRGB.mjs.map +1 -1
  923. package/lib/util/colorUtils.mjs +10 -27
  924. package/lib/util/colorUtils.mjs.map +1 -1
  925. package/lib/util/colors.mjs +1 -1
  926. package/lib/util/colors.mjs.map +1 -1
  927. package/lib/util/console.mjs +5 -14
  928. package/lib/util/console.mjs.map +1 -1
  929. package/lib/util/createSimpleFunctional.mjs +1 -4
  930. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  931. package/lib/util/dateTimeUtils.mjs +0 -10
  932. package/lib/util/dateTimeUtils.mjs.map +1 -1
  933. package/lib/util/defineComponent.mjs +12 -36
  934. package/lib/util/defineComponent.mjs.map +1 -1
  935. package/lib/util/dom.mjs +4 -4
  936. package/lib/util/dom.mjs.map +1 -1
  937. package/lib/util/easing.mjs +0 -1
  938. package/lib/util/easing.mjs.map +1 -1
  939. package/lib/util/getCurrentInstance.mjs +3 -10
  940. package/lib/util/getCurrentInstance.mjs.map +1 -1
  941. package/lib/util/getScrollParent.mjs +3 -4
  942. package/lib/util/getScrollParent.mjs.map +1 -1
  943. package/lib/util/globals.mjs +1 -1
  944. package/lib/util/globals.mjs.map +1 -1
  945. package/lib/util/helpers.mjs +46 -85
  946. package/lib/util/helpers.mjs.map +1 -1
  947. package/lib/util/injectSelf.mjs +0 -1
  948. package/lib/util/injectSelf.mjs.map +1 -1
  949. package/lib/util/isFixedPosition.mjs +0 -2
  950. package/lib/util/isFixedPosition.mjs.map +1 -1
  951. package/lib/util/propsFactory.mjs +4 -5
  952. package/lib/util/propsFactory.mjs.map +1 -1
  953. package/lib/util/useRender.mjs +0 -1
  954. package/lib/util/useRender.mjs.map +1 -1
  955. package/package.json +19 -19
  956. package/lib/composables/rtl.mjs +0 -44
  957. package/lib/composables/rtl.mjs.map +0 -1
  958. package/lib/locale/adapters/vue-intl.mjs +0 -67
  959. package/lib/locale/adapters/vue-intl.mjs.map +0 -1
  960. package/lib/styles.scss +0 -4
@@ -3,7 +3,6 @@ import { getCurrentInstance, getUid, propsFactory } from "../../util/index.mjs";
3
3
  import { computed, inject, onBeforeUnmount, provide, ref } from 'vue';
4
4
  import { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from "./openStrategies.mjs";
5
5
  import { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy, leafSingleSelectStrategy } from "./selectStrategies.mjs"; // Types
6
-
7
6
  export const VNestedSymbol = Symbol.for('vuetify:nested');
8
7
  export const emptyNested = {
9
8
  id: ref(),
@@ -13,6 +12,7 @@ export const emptyNested = {
13
12
  parents: ref(new Map()),
14
13
  children: ref(new Map()),
15
14
  open: () => null,
15
+ openOnSelect: () => null,
16
16
  select: () => null,
17
17
  opened: ref(new Set()),
18
18
  selected: ref(new Map()),
@@ -33,20 +33,15 @@ export const useNested = props => {
33
33
  const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
34
34
  const selectStrategy = computed(() => {
35
35
  if (typeof props.selectStrategy === 'object') return props.selectStrategy;
36
-
37
36
  switch (props.selectStrategy) {
38
37
  case 'single-leaf':
39
38
  return leafSingleSelectStrategy(props.mandatory);
40
-
41
39
  case 'leaf':
42
40
  return leafSelectStrategy(props.mandatory);
43
-
44
41
  case 'independent':
45
42
  return independentSelectStrategy(props.mandatory);
46
-
47
43
  case 'single-independent':
48
44
  return independentSingleSelectStrategy(props.mandatory);
49
-
50
45
  case 'classic':
51
46
  default:
52
47
  return classicSelectStrategy(props.mandatory);
@@ -54,14 +49,11 @@ export const useNested = props => {
54
49
  });
55
50
  const openStrategy = computed(() => {
56
51
  if (typeof props.openStrategy === 'function') return props.openStrategy;
57
-
58
52
  switch (props.openStrategy) {
59
53
  case 'list':
60
54
  return listOpenStrategy;
61
-
62
55
  case 'single':
63
56
  return singleOpenStrategy;
64
-
65
57
  case 'multiple':
66
58
  default:
67
59
  return multipleOpenStrategy;
@@ -71,19 +63,15 @@ export const useNested = props => {
71
63
  onBeforeUnmount(() => {
72
64
  isUnmounted = true;
73
65
  });
74
-
75
66
  function getPath(id) {
76
67
  const path = [];
77
68
  let parent = id;
78
-
79
69
  while (parent != null) {
80
70
  path.unshift(parent);
81
71
  parent = parents.value.get(parent);
82
72
  }
83
-
84
73
  return path;
85
74
  }
86
-
87
75
  const vm = getCurrentInstance('nested');
88
76
  const nested = {
89
77
  id: ref(),
@@ -92,17 +80,14 @@ export const useNested = props => {
92
80
  selected,
93
81
  selectedValues: computed(() => {
94
82
  const arr = [];
95
-
96
83
  for (const [key, value] of selected.value.entries()) {
97
84
  if (value === 'on') arr.push(key);
98
85
  }
99
-
100
86
  return arr;
101
87
  }),
102
88
  register: (id, parentId, isGroup) => {
103
89
  parentId && id !== parentId && parents.value.set(id, parentId);
104
90
  isGroup && children.value.set(id, []);
105
-
106
91
  if (parentId != null) {
107
92
  children.value.set(parentId, [...(children.value.get(parentId) || []), id]);
108
93
  }
@@ -111,14 +96,10 @@ export const useNested = props => {
111
96
  if (isUnmounted) return;
112
97
  children.value.delete(id);
113
98
  const parent = parents.value.get(id);
114
-
115
99
  if (parent) {
116
- var _children$value$get;
117
-
118
- const list = (_children$value$get = children.value.get(parent)) != null ? _children$value$get : [];
100
+ const list = children.value.get(parent) ?? [];
119
101
  children.value.set(parent, list.filter(child => child !== id));
120
102
  }
121
-
122
103
  parents.value.delete(id);
123
104
  opened.value.delete(id);
124
105
  },
@@ -139,6 +120,18 @@ export const useNested = props => {
139
120
  });
140
121
  newOpened && (opened.value = newOpened);
141
122
  },
123
+ openOnSelect: (id, value, event) => {
124
+ const newOpened = openStrategy.value.select({
125
+ id,
126
+ value,
127
+ selected: new Map(selected.value),
128
+ opened: new Set(opened.value),
129
+ children: children.value,
130
+ parents: parents.value,
131
+ event
132
+ });
133
+ newOpened && (opened.value = newOpened);
134
+ },
142
135
  select: (id, value, event) => {
143
136
  vm.emit('click:select', {
144
137
  id,
@@ -155,16 +148,7 @@ export const useNested = props => {
155
148
  event
156
149
  });
157
150
  newSelected && (selected.value = newSelected);
158
- const newOpened = openStrategy.value.select({
159
- id,
160
- value,
161
- selected: new Map(selected.value),
162
- opened: new Set(opened.value),
163
- children: children.value,
164
- parents: parents.value,
165
- event
166
- });
167
- newOpened && (opened.value = newOpened);
151
+ nested.root.openOnSelect(id, value, event);
168
152
  },
169
153
  children,
170
154
  parents
@@ -175,14 +159,12 @@ export const useNested = props => {
175
159
  };
176
160
  export const useNestedItem = (id, isGroup) => {
177
161
  const parent = inject(VNestedSymbol, emptyNested);
178
- const computedId = computed(() => {
179
- var _id$value;
180
-
181
- return (_id$value = id.value) != null ? _id$value : getUid().toString();
182
- });
183
- const item = { ...parent,
162
+ const computedId = computed(() => id.value ?? Symbol(getUid()));
163
+ const item = {
164
+ ...parent,
184
165
  id: computedId,
185
166
  open: (open, e) => parent.root.open(computedId.value, open, e),
167
+ openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
186
168
  isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
187
169
  parent: computed(() => parent.root.parents.value.get(computedId.value)),
188
170
  select: (selected, e) => parent.root.select(computedId.value, selected, e),
@@ -200,7 +182,8 @@ export const useNestedItem = (id, isGroup) => {
200
182
  };
201
183
  export const useNestedGroupActivator = () => {
202
184
  const parent = inject(VNestedSymbol, emptyNested);
203
- provide(VNestedSymbol, { ...parent,
185
+ provide(VNestedSymbol, {
186
+ ...parent,
204
187
  isGroupActivator: true
205
188
  });
206
189
  };
@@ -1 +1 @@
1
- {"version":3,"file":"nested.mjs","names":["useProxiedModel","getCurrentInstance","getUid","propsFactory","computed","inject","onBeforeUnmount","provide","ref","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","select","opened","Set","selected","selectedValues","makeNestedProps","selectStrategy","String","Function","openStrategy","Array","mandatory","Boolean","useNested","props","isUnmounted","v","values","value","in","out","getPath","path","parent","unshift","get","vm","nested","arr","key","entries","push","parentId","isGroup","set","delete","list","filter","child","event","emit","newOpened","newSelected","useNestedItem","computedId","toString","item","e","isOpen","has","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["import { useProxiedModel } from '@/composables/proxiedModel'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\nimport { computed, inject, onBeforeUnmount, provide, ref } from 'vue'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\n\n// Types\nimport type { InjectionKey, Prop, Ref } from 'vue'\nimport type { SelectStrategyFn } from './selectStrategies'\nimport type { OpenStrategy } from './openStrategies'\n\nexport type SelectStrategy = 'single-leaf' | 'leaf' | 'independent' | 'single-independent' | 'classic' | SelectStrategyFn\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n selectStrategy: SelectStrategy | undefined\n openStrategy: OpenStrategyProp | undefined\n selected: string[] | undefined\n opened: string[] | undefined\n mandatory: boolean\n 'onUpdate:selected': ((val: string[]) => void) | undefined\n 'onUpdate:opened': ((val: string[]) => void) | undefined\n}\n\ntype NestedProvide = {\n id: Ref<string | undefined>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<string, string[]>>\n parents: Ref<Map<string, string>>\n opened: Ref<Set<string>>\n selected: Ref<Map<string, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<string[]>\n register: (id: string, parentId: string | undefined, isGroup?: boolean) => void\n unregister: (id: string) => void\n open: (id: string, value: boolean, event?: Event) => void\n select: (id: string, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: ref(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n select: () => null,\n opened: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n selectStrategy: [String, Function] as Prop<SelectStrategy>,\n openStrategy: [String, Function] as Prop<OpenStrategyProp>,\n opened: Array as Prop<string[]>,\n selected: Array as Prop<string[]>,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<string, string[]>())\n const parents = ref(new Map<string, string>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'function') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: string) {\n const path: string[] = []\n let parent: string | undefined = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nested: NestedProvide = {\n id: ref(),\n root: {\n opened,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n opened.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<string | undefined>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const computedId = computed(() => id.value ?? getUid().toString())\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"nested.mjs","names":["useProxiedModel","getCurrentInstance","getUid","propsFactory","computed","inject","onBeforeUnmount","provide","ref","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","openOnSelect","select","opened","Set","selected","selectedValues","makeNestedProps","selectStrategy","String","Function","openStrategy","Array","mandatory","Boolean","useNested","props","isUnmounted","v","values","value","in","out","getPath","path","parent","unshift","get","vm","nested","arr","key","entries","push","parentId","isGroup","set","delete","list","filter","child","event","emit","newOpened","newSelected","useNestedItem","computedId","item","e","isOpen","has","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["import { useProxiedModel } from '@/composables/proxiedModel'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\nimport { computed, inject, onBeforeUnmount, provide, ref } from 'vue'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { SelectStrategyFn } from './selectStrategies'\nimport type { OpenStrategy } from './openStrategies'\n\nexport type SelectStrategy = 'single-leaf' | 'leaf' | 'independent' | 'single-independent' | 'classic' | SelectStrategyFn\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n selectStrategy: SelectStrategy | undefined\n openStrategy: OpenStrategyProp | undefined\n selected: unknown[] | undefined\n opened: unknown[] | undefined\n mandatory: boolean\n 'onUpdate:selected': ((val: unknown[]) => void) | undefined\n 'onUpdate:opened': ((val: unknown[]) => void) | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n opened: Ref<Set<unknown>>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: ref(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n select: () => null,\n opened: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n selectStrategy: [String, Function] as PropType<SelectStrategy>,\n openStrategy: [String, Function] as PropType<OpenStrategyProp>,\n opened: Array as PropType<unknown[]>,\n selected: Array as PropType<unknown[]>,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<unknown, unknown[]>())\n const parents = ref(new Map<unknown, unknown>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'function') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nested: NestedProvide = {\n id: ref(),\n root: {\n opened,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n opened.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<unknown>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const computedId = computed(() => id.value ?? Symbol(getUid()))\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n"],"mappings":"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"}
@@ -6,17 +6,14 @@ export const singleOpenStrategy = {
6
6
  opened,
7
7
  parents
8
8
  } = _ref;
9
-
10
9
  if (value) {
11
10
  const newOpened = new Set();
12
11
  newOpened.add(id);
13
12
  let parent = parents.get(id);
14
-
15
13
  while (parent != null) {
16
14
  newOpened.add(parent);
17
15
  parent = parents.get(parent);
18
16
  }
19
-
20
17
  return newOpened;
21
18
  } else {
22
19
  opened.delete(id);
@@ -33,21 +30,17 @@ export const multipleOpenStrategy = {
33
30
  opened,
34
31
  parents
35
32
  } = _ref2;
36
-
37
33
  if (value) {
38
34
  let parent = parents.get(id);
39
35
  opened.add(id);
40
-
41
36
  while (parent != null && parent !== id) {
42
37
  opened.add(parent);
43
38
  parent = parents.get(parent);
44
39
  }
45
-
46
40
  return opened;
47
41
  } else {
48
42
  opened.delete(id);
49
43
  }
50
-
51
44
  return opened;
52
45
  },
53
46
  select: () => null
@@ -64,12 +57,10 @@ export const listOpenStrategy = {
64
57
  if (!value) return opened;
65
58
  const path = [];
66
59
  let parent = parents.get(id);
67
-
68
60
  while (parent != null) {
69
61
  path.push(parent);
70
62
  parent = parents.get(parent);
71
63
  }
72
-
73
64
  return new Set(path);
74
65
  }
75
66
  };
@@ -1 +1 @@
1
- {"version":3,"file":"openStrategies.mjs","names":["singleOpenStrategy","open","id","value","opened","parents","newOpened","Set","add","parent","get","delete","select","multipleOpenStrategy","listOpenStrategy","path","push"],"sources":["../../../src/composables/nested/openStrategies.ts"],"sourcesContent":["export type OpenStrategyFn = (data: {\n id: string\n value: boolean\n opened: Set<string>\n children: Map<string, string[]>\n parents: Map<string, string>\n event?: Event\n}) => Set<string>\n\nexport type OpenSelectStrategyFn = (data: {\n id: string\n value: boolean\n opened: Set<string>\n selected: Map<string, 'on' | 'off' | 'indeterminate'>\n children: Map<string, string[]>\n parents: Map<string, string>\n event?: Event\n}) => Set<string> | null\n\nexport type OpenStrategy = {\n open: OpenStrategyFn\n select: OpenSelectStrategyFn\n}\n\nexport const singleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n const newOpened = new Set<string>()\n newOpened.add(id)\n\n let parent = parents.get(id)\n\n while (parent != null) {\n newOpened.add(parent)\n parent = parents.get(parent)\n }\n\n return newOpened\n } else {\n opened.delete(id)\n return opened\n }\n },\n select: () => null,\n}\n\nexport const multipleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n let parent = parents.get(id)\n opened.add(id)\n\n while (parent != null && parent !== id) {\n opened.add(parent)\n parent = parents.get(parent)\n }\n\n return opened\n } else {\n opened.delete(id)\n }\n return opened\n },\n select: () => null,\n}\n\nexport const listOpenStrategy: OpenStrategy = {\n open: multipleOpenStrategy.open,\n select: ({ id, value, opened, parents }) => {\n if (!value) return opened\n\n const path: string[] = []\n\n let parent = parents.get(id)\n\n while (parent != null) {\n path.push(parent)\n parent = parents.get(parent)\n }\n\n return new Set(path)\n },\n}\n"],"mappings":"AAwBA,OAAO,MAAMA,kBAAgC,GAAG;EAC9CC,IAAI,EAAE,QAAoC;IAAA,IAAnC;MAAEC,EAAF;MAAMC,KAAN;MAAaC,MAAb;MAAqBC;IAArB,CAAmC;;IACxC,IAAIF,KAAJ,EAAW;MACT,MAAMG,SAAS,GAAG,IAAIC,GAAJ,EAAlB;MACAD,SAAS,CAACE,GAAV,CAAcN,EAAd;MAEA,IAAIO,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYR,EAAZ,CAAb;;MAEA,OAAOO,MAAM,IAAI,IAAjB,EAAuB;QACrBH,SAAS,CAACE,GAAV,CAAcC,MAAd;QACAA,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYD,MAAZ,CAAT;MACD;;MAED,OAAOH,SAAP;IACD,CAZD,MAYO;MACLF,MAAM,CAACO,MAAP,CAAcT,EAAd;MACA,OAAOE,MAAP;IACD;EACF,CAlB6C;EAmB9CQ,MAAM,EAAE,MAAM;AAnBgC,CAAzC;AAsBP,OAAO,MAAMC,oBAAkC,GAAG;EAChDZ,IAAI,EAAE,SAAoC;IAAA,IAAnC;MAAEC,EAAF;MAAMC,KAAN;MAAaC,MAAb;MAAqBC;IAArB,CAAmC;;IACxC,IAAIF,KAAJ,EAAW;MACT,IAAIM,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYR,EAAZ,CAAb;MACAE,MAAM,CAACI,GAAP,CAAWN,EAAX;;MAEA,OAAOO,MAAM,IAAI,IAAV,IAAkBA,MAAM,KAAKP,EAApC,EAAwC;QACtCE,MAAM,CAACI,GAAP,CAAWC,MAAX;QACAA,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYD,MAAZ,CAAT;MACD;;MAED,OAAOL,MAAP;IACD,CAVD,MAUO;MACLA,MAAM,CAACO,MAAP,CAAcT,EAAd;IACD;;IACD,OAAOE,MAAP;EACD,CAhB+C;EAiBhDQ,MAAM,EAAE,MAAM;AAjBkC,CAA3C;AAoBP,OAAO,MAAME,gBAA8B,GAAG;EAC5Cb,IAAI,EAAEY,oBAAoB,CAACZ,IADiB;EAE5CW,MAAM,EAAE,SAAoC;IAAA,IAAnC;MAAEV,EAAF;MAAMC,KAAN;MAAaC,MAAb;MAAqBC;IAArB,CAAmC;IAC1C,IAAI,CAACF,KAAL,EAAY,OAAOC,MAAP;IAEZ,MAAMW,IAAc,GAAG,EAAvB;IAEA,IAAIN,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYR,EAAZ,CAAb;;IAEA,OAAOO,MAAM,IAAI,IAAjB,EAAuB;MACrBM,IAAI,CAACC,IAAL,CAAUP,MAAV;MACAA,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYD,MAAZ,CAAT;IACD;;IAED,OAAO,IAAIF,GAAJ,CAAQQ,IAAR,CAAP;EACD;AAf2C,CAAvC"}
1
+ {"version":3,"file":"openStrategies.mjs","names":["singleOpenStrategy","open","id","value","opened","parents","newOpened","Set","add","parent","get","delete","select","multipleOpenStrategy","listOpenStrategy","path","push"],"sources":["../../../src/composables/nested/openStrategies.ts"],"sourcesContent":["export type OpenStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set<unknown>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Set<unknown>\n\nexport type OpenSelectStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set<unknown>\n selected: Map<unknown, 'on' | 'off' | 'indeterminate'>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Set<unknown> | null\n\nexport type OpenStrategy = {\n open: OpenStrategyFn\n select: OpenSelectStrategyFn\n}\n\nexport const singleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n const newOpened = new Set<unknown>()\n newOpened.add(id)\n\n let parent = parents.get(id)\n\n while (parent != null) {\n newOpened.add(parent)\n parent = parents.get(parent)\n }\n\n return newOpened\n } else {\n opened.delete(id)\n return opened\n }\n },\n select: () => null,\n}\n\nexport const multipleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n let parent = parents.get(id)\n opened.add(id)\n\n while (parent != null && parent !== id) {\n opened.add(parent)\n parent = parents.get(parent)\n }\n\n return opened\n } else {\n opened.delete(id)\n }\n return opened\n },\n select: () => null,\n}\n\nexport const listOpenStrategy: OpenStrategy = {\n open: multipleOpenStrategy.open,\n select: ({ id, value, opened, parents }) => {\n if (!value) return opened\n\n const path: unknown[] = []\n\n let parent = parents.get(id)\n\n while (parent != null) {\n path.push(parent)\n parent = parents.get(parent)\n }\n\n return new Set(path)\n },\n}\n"],"mappings":"AAwBA,OAAO,MAAMA,kBAAgC,GAAG;EAC9CC,IAAI,EAAE,QAAoC;IAAA,IAAnC;MAAEC,EAAE;MAAEC,KAAK;MAAEC,MAAM;MAAEC;IAAQ,CAAC;IACnC,IAAIF,KAAK,EAAE;MACT,MAAMG,SAAS,GAAG,IAAIC,GAAG,EAAW;MACpCD,SAAS,CAACE,GAAG,CAACN,EAAE,CAAC;MAEjB,IAAIO,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACR,EAAE,CAAC;MAE5B,OAAOO,MAAM,IAAI,IAAI,EAAE;QACrBH,SAAS,CAACE,GAAG,CAACC,MAAM,CAAC;QACrBA,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACD,MAAM,CAAC;MAC9B;MAEA,OAAOH,SAAS;IAClB,CAAC,MAAM;MACLF,MAAM,CAACO,MAAM,CAACT,EAAE,CAAC;MACjB,OAAOE,MAAM;IACf;EACF,CAAC;EACDQ,MAAM,EAAE,MAAM;AAChB,CAAC;AAED,OAAO,MAAMC,oBAAkC,GAAG;EAChDZ,IAAI,EAAE,SAAoC;IAAA,IAAnC;MAAEC,EAAE;MAAEC,KAAK;MAAEC,MAAM;MAAEC;IAAQ,CAAC;IACnC,IAAIF,KAAK,EAAE;MACT,IAAIM,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACR,EAAE,CAAC;MAC5BE,MAAM,CAACI,GAAG,CAACN,EAAE,CAAC;MAEd,OAAOO,MAAM,IAAI,IAAI,IAAIA,MAAM,KAAKP,EAAE,EAAE;QACtCE,MAAM,CAACI,GAAG,CAACC,MAAM,CAAC;QAClBA,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACD,MAAM,CAAC;MAC9B;MAEA,OAAOL,MAAM;IACf,CAAC,MAAM;MACLA,MAAM,CAACO,MAAM,CAACT,EAAE,CAAC;IACnB;IACA,OAAOE,MAAM;EACf,CAAC;EACDQ,MAAM,EAAE,MAAM;AAChB,CAAC;AAED,OAAO,MAAME,gBAA8B,GAAG;EAC5Cb,IAAI,EAAEY,oBAAoB,CAACZ,IAAI;EAC/BW,MAAM,EAAE,SAAoC;IAAA,IAAnC;MAAEV,EAAE;MAAEC,KAAK;MAAEC,MAAM;MAAEC;IAAQ,CAAC;IACrC,IAAI,CAACF,KAAK,EAAE,OAAOC,MAAM;IAEzB,MAAMW,IAAe,GAAG,EAAE;IAE1B,IAAIN,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACR,EAAE,CAAC;IAE5B,OAAOO,MAAM,IAAI,IAAI,EAAE;MACrBM,IAAI,CAACC,IAAI,CAACP,MAAM,CAAC;MACjBA,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACD,MAAM,CAAC;IAC9B;IAEA,OAAO,IAAIF,GAAG,CAACQ,IAAI,CAAC;EACtB;AACF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable sonarjs/no-identical-functions */
2
+
2
3
  export const independentSelectStrategy = mandatory => {
3
4
  const strategy = {
4
5
  select: _ref => {
@@ -7,7 +8,6 @@ export const independentSelectStrategy = mandatory => {
7
8
  value,
8
9
  selected
9
10
  } = _ref;
10
-
11
11
  // When mandatory and we're trying to deselect when id
12
12
  // is the only currently selected item then do nothing
13
13
  if (mandatory && !value) {
@@ -17,13 +17,11 @@ export const independentSelectStrategy = mandatory => {
17
17
  }, []);
18
18
  if (on.length === 1 && on[0] === id) return selected;
19
19
  }
20
-
21
20
  selected.set(id, value ? 'on' : 'off');
22
21
  return selected;
23
22
  },
24
23
  in: (v, children, parents) => {
25
24
  let map = new Map();
26
-
27
25
  for (const id of v || []) {
28
26
  map = strategy.select({
29
27
  id,
@@ -33,16 +31,13 @@ export const independentSelectStrategy = mandatory => {
33
31
  parents
34
32
  });
35
33
  }
36
-
37
34
  return map;
38
35
  },
39
36
  out: v => {
40
37
  const arr = [];
41
-
42
38
  for (const [key, value] of v.entries()) {
43
39
  if (value === 'on') arr.push(key);
44
40
  }
45
-
46
41
  return arr;
47
42
  }
48
43
  };
@@ -58,18 +53,17 @@ export const independentSingleSelectStrategy = mandatory => {
58
53
  ...rest
59
54
  } = _ref3;
60
55
  const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();
61
- return parentStrategy.select({ ...rest,
56
+ return parentStrategy.select({
57
+ ...rest,
62
58
  id,
63
59
  selected: singleSelected
64
60
  });
65
61
  },
66
62
  in: (v, children, parents) => {
67
63
  let map = new Map();
68
-
69
64
  if (v != null && v.length) {
70
65
  map = parentStrategy.in(v.slice(0, 1), children, parents);
71
66
  }
72
-
73
67
  return map;
74
68
  },
75
69
  out: (v, children, parents) => {
@@ -136,28 +130,24 @@ export const classicSelectStrategy = mandatory => {
136
130
  } = _ref6;
137
131
  const original = new Map(selected);
138
132
  const items = [id];
139
-
140
133
  while (items.length) {
141
134
  const item = items.shift();
142
135
  selected.set(item, value ? 'on' : 'off');
143
-
144
136
  if (children.has(item)) {
145
137
  items.push(...children.get(item));
146
138
  }
147
139
  }
148
-
149
140
  let parent = parents.get(id);
150
-
151
141
  while (parent) {
152
142
  const childrenIds = children.get(parent);
153
143
  const everySelected = childrenIds.every(cid => selected.get(cid) === 'on');
154
144
  const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off');
155
145
  selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
156
146
  parent = parents.get(parent);
157
- } // If mandatory and planned deselect results in no selected
158
- // items then we can't do it, so return original state
159
-
147
+ }
160
148
 
149
+ // If mandatory and planned deselect results in no selected
150
+ // items then we can't do it, so return original state
161
151
  if (mandatory && !value) {
162
152
  const on = Array.from(selected.entries()).reduce((arr, _ref7) => {
163
153
  let [key, value] = _ref7;
@@ -165,12 +155,10 @@ export const classicSelectStrategy = mandatory => {
165
155
  }, []);
166
156
  if (on.length === 0) return original;
167
157
  }
168
-
169
158
  return selected;
170
159
  },
171
160
  in: (v, children, parents) => {
172
161
  let map = new Map();
173
-
174
162
  for (const id of v || []) {
175
163
  map = strategy.select({
176
164
  id,
@@ -180,16 +168,13 @@ export const classicSelectStrategy = mandatory => {
180
168
  parents
181
169
  });
182
170
  }
183
-
184
171
  return map;
185
172
  },
186
173
  out: (v, children) => {
187
174
  const arr = [];
188
-
189
175
  for (const [key, value] of v.entries()) {
190
176
  if (value === 'on' && !children.has(key)) arr.push(key);
191
177
  }
192
-
193
178
  return arr;
194
179
  }
195
180
  };
@@ -1 +1 @@
1
- {"version":3,"file":"selectStrategies.mjs","names":["independentSelectStrategy","mandatory","strategy","select","id","value","selected","on","Array","from","entries","reduce","arr","key","length","set","in","v","children","parents","map","Map","out","push","independentSingleSelectStrategy","parentStrategy","rest","singleSelected","has","get","slice","leafSelectStrategy","leafSingleSelectStrategy","classicSelectStrategy","original","items","item","shift","parent","childrenIds","everySelected","every","cid","noneSelected"],"sources":["../../../src/composables/nested/selectStrategies.ts"],"sourcesContent":["/* eslint-disable sonarjs/no-identical-functions */\nexport type SelectStrategyFn = (data: {\n id: string\n value: boolean\n selected: Map<string, 'on' | 'off' | 'indeterminate'>\n children: Map<string, string[]>\n parents: Map<string, string>\n event?: Event\n}) => Map<string, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformInFn = (\n v: string[] | undefined,\n children: Map<string, string[]>,\n parents: Map<string, string>,\n) => Map<string, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformOutFn = (\n v: Map<string, 'on' | 'off' | 'indeterminate'>,\n children: Map<string, string[]>,\n parents: Map<string, string>,\n) => any[]\n\nexport type SelectStrategy = {\n select: SelectStrategyFn\n in: SelectStrategyTransformInFn\n out: SelectStrategyTransformOutFn\n}\n\nexport const independentSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected }) => {\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as string[])\n if (on.length === 1 && on[0] === id) return selected\n }\n\n selected.set(id, value ? 'on' : 'off')\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const independentSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ selected, id, ...rest }) => {\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)!]]) : new Map()\n return parentStrategy.select({ ...rest, id, selected: singleSelected })\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n if (v?.length) {\n map = parentStrategy.in(v.slice(0, 1), children, parents)\n }\n\n return map\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSingleSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const classicSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected, children, parents }) => {\n const original = new Map(selected)\n\n const items = [id]\n\n while (items.length) {\n const item = items.shift()!\n\n selected.set(item, value ? 'on' : 'off')\n\n if (children.has(item)) {\n items.push(...children.get(item)!)\n }\n }\n\n let parent = parents.get(id)\n\n while (parent) {\n const childrenIds = children.get(parent)!\n const everySelected = childrenIds.every(cid => selected.get(cid) === 'on')\n const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off')\n\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate')\n\n parent = parents.get(parent)\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as string[])\n if (on.length === 0) return original\n }\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: (v, children) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n"],"mappings":"AAAA;AA4BA,OAAO,MAAMA,yBAAyB,GAAIC,SAAD,IAAyC;EAChF,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAE,QAA6B;MAAA,IAA5B;QAAEC,EAAF;QAAMC,KAAN;QAAaC;MAAb,CAA4B;;MACnC;MACA;MACA,IAAIL,SAAS,IAAI,CAACI,KAAlB,EAAyB;QACvB,MAAME,EAAE,GAAGC,KAAK,CAACC,IAAN,CAAWH,QAAQ,CAACI,OAAT,EAAX,EAA+BC,MAA/B,CAAsC,CAACC,GAAD;UAAA,IAAM,CAACC,GAAD,EAAMR,KAAN,CAAN;UAAA,OAAuBA,KAAK,KAAK,IAAV,GAAiB,CAAC,GAAGO,GAAJ,EAASC,GAAT,CAAjB,GAAiCD,GAAxD;QAAA,CAAtC,EAAmG,EAAnG,CAAX;QACA,IAAIL,EAAE,CAACO,MAAH,KAAc,CAAd,IAAmBP,EAAE,CAAC,CAAD,CAAF,KAAUH,EAAjC,EAAqC,OAAOE,QAAP;MACtC;;MAEDA,QAAQ,CAACS,GAAT,CAAaX,EAAb,EAAiBC,KAAK,GAAG,IAAH,GAAU,KAAhC;MAEA,OAAOC,QAAP;IACD,CAZ8B;IAa/BU,EAAE,EAAE,CAACC,CAAD,EAAIC,QAAJ,EAAcC,OAAd,KAA0B;MAC5B,IAAIC,GAAG,GAAG,IAAIC,GAAJ,EAAV;;MAEA,KAAK,MAAMjB,EAAX,IAAkBa,CAAC,IAAI,EAAvB,EAA4B;QAC1BG,GAAG,GAAGlB,QAAQ,CAACC,MAAT,CAAgB;UACpBC,EADoB;UAEpBC,KAAK,EAAE,IAFa;UAGpBC,QAAQ,EAAE,IAAIe,GAAJ,CAAQD,GAAR,CAHU;UAIpBF,QAJoB;UAKpBC;QALoB,CAAhB,CAAN;MAOD;;MAED,OAAOC,GAAP;IACD,CA3B8B;IA4B/BE,GAAG,EAAEL,CAAC,IAAI;MACR,MAAML,GAAG,GAAG,EAAZ;;MAEA,KAAK,MAAM,CAACC,GAAD,EAAMR,KAAN,CAAX,IAA2BY,CAAC,CAACP,OAAF,EAA3B,EAAwC;QACtC,IAAIL,KAAK,KAAK,IAAd,EAAoBO,GAAG,CAACW,IAAJ,CAASV,GAAT;MACrB;;MAED,OAAOD,GAAP;IACD;EApC8B,CAAjC;EAuCA,OAAOV,QAAP;AACD,CAzCM;AA2CP,OAAO,MAAMsB,+BAA+B,GAAIvB,SAAD,IAAyC;EACtF,MAAMwB,cAAc,GAAGzB,yBAAyB,CAACC,SAAD,CAAhD;EAEA,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAE,SAA+B;MAAA,IAA9B;QAAEG,QAAF;QAAYF,EAAZ;QAAgB,GAAGsB;MAAnB,CAA8B;MACrC,MAAMC,cAAc,GAAGrB,QAAQ,CAACsB,GAAT,CAAaxB,EAAb,IAAmB,IAAIiB,GAAJ,CAAQ,CAAC,CAACjB,EAAD,EAAKE,QAAQ,CAACuB,GAAT,CAAazB,EAAb,CAAL,CAAD,CAAR,CAAnB,GAAwD,IAAIiB,GAAJ,EAA/E;MACA,OAAOI,cAAc,CAACtB,MAAf,CAAsB,EAAE,GAAGuB,IAAL;QAAWtB,EAAX;QAAeE,QAAQ,EAAEqB;MAAzB,CAAtB,CAAP;IACD,CAJ8B;IAK/BX,EAAE,EAAE,CAACC,CAAD,EAAIC,QAAJ,EAAcC,OAAd,KAA0B;MAC5B,IAAIC,GAAG,GAAG,IAAIC,GAAJ,EAAV;;MAEA,IAAIJ,CAAJ,YAAIA,CAAC,CAAEH,MAAP,EAAe;QACbM,GAAG,GAAGK,cAAc,CAACT,EAAf,CAAkBC,CAAC,CAACa,KAAF,CAAQ,CAAR,EAAW,CAAX,CAAlB,EAAiCZ,QAAjC,EAA2CC,OAA3C,CAAN;MACD;;MAED,OAAOC,GAAP;IACD,CAb8B;IAc/BE,GAAG,EAAE,CAACL,CAAD,EAAIC,QAAJ,EAAcC,OAAd,KAA0B;MAC7B,OAAOM,cAAc,CAACH,GAAf,CAAmBL,CAAnB,EAAsBC,QAAtB,EAAgCC,OAAhC,CAAP;IACD;EAhB8B,CAAjC;EAmBA,OAAOjB,QAAP;AACD,CAvBM;AAyBP,OAAO,MAAM6B,kBAAkB,GAAI9B,SAAD,IAAyC;EACzE,MAAMwB,cAAc,GAAGzB,yBAAyB,CAACC,SAAD,CAAhD;EAEA,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAE,SAAyC;MAAA,IAAxC;QAAEC,EAAF;QAAME,QAAN;QAAgBY,QAAhB;QAA0B,GAAGQ;MAA7B,CAAwC;MAC/C,IAAIR,QAAQ,CAACU,GAAT,CAAaxB,EAAb,CAAJ,EAAsB,OAAOE,QAAP;MAEtB,OAAOmB,cAAc,CAACtB,MAAf,CAAsB;QAAEC,EAAF;QAAME,QAAN;QAAgBY,QAAhB;QAA0B,GAAGQ;MAA7B,CAAtB,CAAP;IACD,CAL8B;IAM/BV,EAAE,EAAES,cAAc,CAACT,EANY;IAO/BM,GAAG,EAAEG,cAAc,CAACH;EAPW,CAAjC;EAUA,OAAOpB,QAAP;AACD,CAdM;AAgBP,OAAO,MAAM8B,wBAAwB,GAAI/B,SAAD,IAAyC;EAC/E,MAAMwB,cAAc,GAAGD,+BAA+B,CAACvB,SAAD,CAAtD;EAEA,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAE,SAAyC;MAAA,IAAxC;QAAEC,EAAF;QAAME,QAAN;QAAgBY,QAAhB;QAA0B,GAAGQ;MAA7B,CAAwC;MAC/C,IAAIR,QAAQ,CAACU,GAAT,CAAaxB,EAAb,CAAJ,EAAsB,OAAOE,QAAP;MAEtB,OAAOmB,cAAc,CAACtB,MAAf,CAAsB;QAAEC,EAAF;QAAME,QAAN;QAAgBY,QAAhB;QAA0B,GAAGQ;MAA7B,CAAtB,CAAP;IACD,CAL8B;IAM/BV,EAAE,EAAES,cAAc,CAACT,EANY;IAO/BM,GAAG,EAAEG,cAAc,CAACH;EAPW,CAAjC;EAUA,OAAOpB,QAAP;AACD,CAdM;AAgBP,OAAO,MAAM+B,qBAAqB,GAAIhC,SAAD,IAAyC;EAC5E,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAE,SAAgD;MAAA,IAA/C;QAAEC,EAAF;QAAMC,KAAN;QAAaC,QAAb;QAAuBY,QAAvB;QAAiCC;MAAjC,CAA+C;MACtD,MAAMe,QAAQ,GAAG,IAAIb,GAAJ,CAAQf,QAAR,CAAjB;MAEA,MAAM6B,KAAK,GAAG,CAAC/B,EAAD,CAAd;;MAEA,OAAO+B,KAAK,CAACrB,MAAb,EAAqB;QACnB,MAAMsB,IAAI,GAAGD,KAAK,CAACE,KAAN,EAAb;QAEA/B,QAAQ,CAACS,GAAT,CAAaqB,IAAb,EAAmB/B,KAAK,GAAG,IAAH,GAAU,KAAlC;;QAEA,IAAIa,QAAQ,CAACU,GAAT,CAAaQ,IAAb,CAAJ,EAAwB;UACtBD,KAAK,CAACZ,IAAN,CAAW,GAAGL,QAAQ,CAACW,GAAT,CAAaO,IAAb,CAAd;QACD;MACF;;MAED,IAAIE,MAAM,GAAGnB,OAAO,CAACU,GAAR,CAAYzB,EAAZ,CAAb;;MAEA,OAAOkC,MAAP,EAAe;QACb,MAAMC,WAAW,GAAGrB,QAAQ,CAACW,GAAT,CAAaS,MAAb,CAApB;QACA,MAAME,aAAa,GAAGD,WAAW,CAACE,KAAZ,CAAkBC,GAAG,IAAIpC,QAAQ,CAACuB,GAAT,CAAaa,GAAb,MAAsB,IAA/C,CAAtB;QACA,MAAMC,YAAY,GAAGJ,WAAW,CAACE,KAAZ,CAAkBC,GAAG,IAAI,CAACpC,QAAQ,CAACsB,GAAT,CAAac,GAAb,CAAD,IAAsBpC,QAAQ,CAACuB,GAAT,CAAaa,GAAb,MAAsB,KAArE,CAArB;QAEApC,QAAQ,CAACS,GAAT,CAAauB,MAAb,EAAqBE,aAAa,GAAG,IAAH,GAAUG,YAAY,GAAG,KAAH,GAAW,eAAnE;QAEAL,MAAM,GAAGnB,OAAO,CAACU,GAAR,CAAYS,MAAZ,CAAT;MACD,CAzBqD,CA2BtD;MACA;;;MACA,IAAIrC,SAAS,IAAI,CAACI,KAAlB,EAAyB;QACvB,MAAME,EAAE,GAAGC,KAAK,CAACC,IAAN,CAAWH,QAAQ,CAACI,OAAT,EAAX,EAA+BC,MAA/B,CAAsC,CAACC,GAAD;UAAA,IAAM,CAACC,GAAD,EAAMR,KAAN,CAAN;UAAA,OAAuBA,KAAK,KAAK,IAAV,GAAiB,CAAC,GAAGO,GAAJ,EAASC,GAAT,CAAjB,GAAiCD,GAAxD;QAAA,CAAtC,EAAmG,EAAnG,CAAX;QACA,IAAIL,EAAE,CAACO,MAAH,KAAc,CAAlB,EAAqB,OAAOoB,QAAP;MACtB;;MAED,OAAO5B,QAAP;IACD,CApC8B;IAqC/BU,EAAE,EAAE,CAACC,CAAD,EAAIC,QAAJ,EAAcC,OAAd,KAA0B;MAC5B,IAAIC,GAAG,GAAG,IAAIC,GAAJ,EAAV;;MAEA,KAAK,MAAMjB,EAAX,IAAkBa,CAAC,IAAI,EAAvB,EAA4B;QAC1BG,GAAG,GAAGlB,QAAQ,CAACC,MAAT,CAAgB;UACpBC,EADoB;UAEpBC,KAAK,EAAE,IAFa;UAGpBC,QAAQ,EAAE,IAAIe,GAAJ,CAAQD,GAAR,CAHU;UAIpBF,QAJoB;UAKpBC;QALoB,CAAhB,CAAN;MAOD;;MAED,OAAOC,GAAP;IACD,CAnD8B;IAoD/BE,GAAG,EAAE,CAACL,CAAD,EAAIC,QAAJ,KAAiB;MACpB,MAAMN,GAAG,GAAG,EAAZ;;MAEA,KAAK,MAAM,CAACC,GAAD,EAAMR,KAAN,CAAX,IAA2BY,CAAC,CAACP,OAAF,EAA3B,EAAwC;QACtC,IAAIL,KAAK,KAAK,IAAV,IAAkB,CAACa,QAAQ,CAACU,GAAT,CAAaf,GAAb,CAAvB,EAA0CD,GAAG,CAACW,IAAJ,CAASV,GAAT;MAC3C;;MAED,OAAOD,GAAP;IACD;EA5D8B,CAAjC;EA+DA,OAAOV,QAAP;AACD,CAjEM"}
1
+ {"version":3,"file":"selectStrategies.mjs","names":["independentSelectStrategy","mandatory","strategy","select","id","value","selected","on","Array","from","entries","reduce","arr","key","length","set","in","v","children","parents","map","Map","out","push","independentSingleSelectStrategy","parentStrategy","rest","singleSelected","has","get","slice","leafSelectStrategy","leafSingleSelectStrategy","classicSelectStrategy","original","items","item","shift","parent","childrenIds","everySelected","every","cid","noneSelected"],"sources":["../../../src/composables/nested/selectStrategies.ts"],"sourcesContent":["/* eslint-disable sonarjs/no-identical-functions */\nexport type SelectStrategyFn = (data: {\n id: unknown\n value: boolean\n selected: Map<unknown, 'on' | 'off' | 'indeterminate'>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Map<unknown, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformInFn = (\n v: unknown[] | undefined,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => Map<unknown, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformOutFn = (\n v: Map<unknown, 'on' | 'off' | 'indeterminate'>,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => unknown[]\n\nexport type SelectStrategy = {\n select: SelectStrategyFn\n in: SelectStrategyTransformInFn\n out: SelectStrategyTransformOutFn\n}\n\nexport const independentSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected }) => {\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as unknown[])\n if (on.length === 1 && on[0] === id) return selected\n }\n\n selected.set(id, value ? 'on' : 'off')\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const independentSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ selected, id, ...rest }) => {\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)!]]) : new Map()\n return parentStrategy.select({ ...rest, id, selected: singleSelected })\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n if (v?.length) {\n map = parentStrategy.in(v.slice(0, 1), children, parents)\n }\n\n return map\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSingleSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const classicSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected, children, parents }) => {\n const original = new Map(selected)\n\n const items = [id]\n\n while (items.length) {\n const item = items.shift()!\n\n selected.set(item, value ? 'on' : 'off')\n\n if (children.has(item)) {\n items.push(...children.get(item)!)\n }\n }\n\n let parent = parents.get(id)\n\n while (parent) {\n const childrenIds = children.get(parent)!\n const everySelected = childrenIds.every(cid => selected.get(cid) === 'on')\n const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off')\n\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate')\n\n parent = parents.get(parent)\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as unknown[])\n if (on.length === 0) return original\n }\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: (v, children) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n"],"mappings":"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"}
@@ -1,15 +1,12 @@
1
1
  // Utilities
2
2
  import { computed } from 'vue';
3
3
  import { getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
4
-
5
4
  const positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'];
6
5
  // Composables
7
6
  export const makePositionProps = propsFactory({
8
7
  position: {
9
8
  type: String,
10
- validator:
11
- /* istanbul ignore next */
12
- v => positionValues.includes(v)
9
+ validator: /* istanbul ignore next */v => positionValues.includes(v)
13
10
  }
14
11
  }, 'position');
15
12
  export function usePosition(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"position.mjs","names":["computed","getCurrentInstanceName","propsFactory","positionValues","makePositionProps","position","type","String","validator","v","includes","usePosition","props","name","positionClasses","undefined"],"sources":["../../src/composables/position.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n position: Position | undefined\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String as PropType<Position>,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n}, 'position')\n\nexport function usePosition (\n props: PositionProps,\n name = getCurrentInstanceName(),\n) {\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined\n })\n\n return { positionClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAT,QAAyB,KAAzB;SACSC,sB,EAAwBC,Y,6BAEjC;;AAGA,MAAMC,cAAc,GAAG,CAAC,QAAD,EAAW,UAAX,EAAuB,OAAvB,EAAgC,UAAhC,EAA4C,QAA5C,CAAvB;AAQA;AACA,OAAO,MAAMC,iBAAiB,GAAGF,YAAY,CAAC;EAC5CG,QAAQ,EAAE;IACRC,IAAI,EAAEC,MADE;IAERC,SAAS;IAAE;IAA4BC,CAAD,IAAYN,cAAc,CAACO,QAAf,CAAwBD,CAAxB;EAF1C;AADkC,CAAD,EAK1C,UAL0C,CAAtC;AAOP,OAAO,SAASE,WAAT,CACLC,KADK,EAGL;EAAA,IADAC,IACA,uEADOZ,sBAAsB,EAC7B;EACA,MAAMa,eAAe,GAAGd,QAAQ,CAAC,MAAM;IACrC,OAAOY,KAAK,CAACP,QAAN,GAAkB,GAAEQ,IAAK,KAAID,KAAK,CAACP,QAAS,EAA5C,GAAgDU,SAAvD;EACD,CAF+B,CAAhC;EAIA,OAAO;IAAED;EAAF,CAAP;AACD"}
1
+ {"version":3,"file":"position.mjs","names":["computed","getCurrentInstanceName","propsFactory","positionValues","makePositionProps","position","type","String","validator","v","includes","usePosition","props","name","positionClasses","undefined"],"sources":["../../src/composables/position.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n position: Position | undefined\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String as PropType<Position>,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n}, 'position')\n\nexport function usePosition (\n props: PositionProps,\n name = getCurrentInstanceName(),\n) {\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined\n })\n\n return { positionClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,sBAAsB,EAAEC,YAAY,6BAE7C;AAGA,MAAMC,cAAc,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAU;AAQrF;AACA,OAAO,MAAMC,iBAAiB,GAAGF,YAAY,CAAC;EAC5CG,QAAQ,EAAE;IACRC,IAAI,EAAEC,MAA4B;IAClCC,SAAS,EAAE,0BAA4BC,CAAM,IAAKN,cAAc,CAACO,QAAQ,CAACD,CAAC;EAC7E;AACF,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,SAASE,WAAW,CACzBC,KAAoB,EAEpB;EAAA,IADAC,IAAI,uEAAGZ,sBAAsB,EAAE;EAE/B,MAAMa,eAAe,GAAGd,QAAQ,CAAC,MAAM;IACrC,OAAOY,KAAK,CAACP,QAAQ,GAAI,GAAEQ,IAAK,KAAID,KAAK,CAACP,QAAS,EAAC,GAAGU,SAAS;EAClE,CAAC,CAAC;EAEF,OAAO;IAAED;EAAgB,CAAC;AAC5B"}
@@ -1,33 +1,45 @@
1
1
  // Utilities
2
- import { computed, ref } from 'vue';
3
- import { getCurrentInstance, toKebabCase } from "../util/index.mjs"; // Types
4
-
2
+ import { computed, ref, watch } from 'vue';
3
+ import { getCurrentInstance, toKebabCase } from "../util/index.mjs";
4
+ import { useToggleScope } from "./toggleScope.mjs"; // Types
5
5
  // Composables
6
6
  export function useProxiedModel(props, prop, defaultValue) {
7
7
  let transformIn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : v => v;
8
8
  let transformOut = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : v => v;
9
9
  const vm = getCurrentInstance('useProxiedModel');
10
- const propIsDefined = computed(() => {
11
- var _vm$vnode$props, _vm$vnode$props2;
12
-
10
+ const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue);
11
+ const kebabProp = toKebabCase(prop);
12
+ const checkKebab = kebabProp !== prop;
13
+ const isControlled = checkKebab ? computed(() => {
14
+ var _vm$vnode$props, _vm$vnode$props2, _vm$vnode$props3, _vm$vnode$props4;
13
15
  void props[prop];
14
- return !!(vm != null && (_vm$vnode$props = vm.vnode.props) != null && _vm$vnode$props.hasOwnProperty(prop) || vm != null && (_vm$vnode$props2 = vm.vnode.props) != null && _vm$vnode$props2.hasOwnProperty(toKebabCase(prop)));
16
+ return !!(((_vm$vnode$props = vm.vnode.props) != null && _vm$vnode$props.hasOwnProperty(prop) || (_vm$vnode$props2 = vm.vnode.props) != null && _vm$vnode$props2.hasOwnProperty(kebabProp)) && ((_vm$vnode$props3 = vm.vnode.props) != null && _vm$vnode$props3.hasOwnProperty(`onUpdate:${prop}`) || (_vm$vnode$props4 = vm.vnode.props) != null && _vm$vnode$props4.hasOwnProperty(`onUpdate:${kebabProp}`)));
17
+ }) : computed(() => {
18
+ var _vm$vnode$props5, _vm$vnode$props6;
19
+ void props[prop];
20
+ return !!((_vm$vnode$props5 = vm.vnode.props) != null && _vm$vnode$props5.hasOwnProperty(prop) && (_vm$vnode$props6 = vm.vnode.props) != null && _vm$vnode$props6.hasOwnProperty(`onUpdate:${prop}`));
21
+ });
22
+ useToggleScope(() => !isControlled.value, () => {
23
+ watch(() => props[prop], val => {
24
+ internal.value = val;
25
+ });
15
26
  });
16
- const internal = ref(transformIn(props[prop]));
17
- return computed({
27
+ const model = computed({
18
28
  get() {
19
- if (propIsDefined.value) return transformIn(props[prop]);else return internal.value;
29
+ return transformIn(isControlled.value ? props[prop] : internal.value);
20
30
  },
21
-
22
- set(newValue) {
23
- if ((propIsDefined.value ? transformIn(props[prop]) : internal.value) === newValue) {
31
+ set(value) {
32
+ const newValue = transformOut(value);
33
+ if ((isControlled.value ? props[prop] : internal.value) === newValue || transformIn(isControlled.value ? props[prop] : internal.value) === value) {
24
34
  return;
25
35
  }
26
-
27
36
  internal.value = newValue;
28
- vm == null ? void 0 : vm.emit(`update:${prop}`, transformOut(newValue));
37
+ vm == null ? void 0 : vm.emit(`update:${prop}`, newValue);
29
38
  }
30
-
31
39
  });
40
+ Object.defineProperty(model, 'externalValue', {
41
+ get: () => isControlled.value ? props[prop] : internal.value
42
+ });
43
+ return model;
32
44
  }
33
45
  //# sourceMappingURL=proxiedModel.mjs.map