@vuetify/nightly 3.7.12-master.2025-02-15 → 3.7.12-master.2025-02-18

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 (241) hide show
  1. package/CHANGELOG.md +17 -3
  2. package/dist/json/attributes.json +3373 -3361
  3. package/dist/json/importMap-labs.json +16 -16
  4. package/dist/json/importMap.json +184 -184
  5. package/dist/json/tags.json +3 -0
  6. package/dist/json/web-types.json +6346 -6318
  7. package/dist/vuetify-labs.css +3661 -3656
  8. package/dist/vuetify-labs.d.ts +190 -139
  9. package/dist/vuetify-labs.esm.js +135 -72
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +134 -71
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +3856 -3859
  14. package/dist/vuetify.d.ts +168 -156
  15. package/dist/vuetify.esm.js +36 -34
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +35 -33
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +16 -16
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.mts +1 -1
  23. package/lib/blueprints/md1.d.mts +1 -1
  24. package/lib/blueprints/md2.d.mts +1 -1
  25. package/lib/blueprints/md3.d.mts +1 -1
  26. package/lib/components/VAlert/VAlert.mjs +1 -1
  27. package/lib/components/VAlert/index.d.mts +1 -1
  28. package/lib/components/VAppBar/VAppBar.mjs +1 -1
  29. package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -1
  30. package/lib/components/VAppBar/VAppBarTitle.mjs +1 -1
  31. package/lib/components/VAppBar/index.d.mts +5 -5
  32. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  33. package/lib/components/VAutocomplete/index.d.mts +4 -4
  34. package/lib/components/VAvatar/index.d.mts +1 -1
  35. package/lib/components/VBadge/VBadge.mjs +1 -1
  36. package/lib/components/VBadge/index.d.mts +1 -1
  37. package/lib/components/VBanner/VBanner.mjs +1 -1
  38. package/lib/components/VBanner/index.d.mts +1 -1
  39. package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -0
  40. package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -0
  41. package/lib/components/VBottomNavigation/index.d.mts +1 -1
  42. package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -1
  43. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +1 -1
  44. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +1 -1
  45. package/lib/components/VBreadcrumbs/index.d.mts +5 -5
  46. package/lib/components/VBtn/VBtn.mjs +1 -1
  47. package/lib/components/VBtn/index.d.mts +5 -5
  48. package/lib/components/VBtnGroup/VBtnGroup.mjs +1 -1
  49. package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -1
  50. package/lib/components/VBtnToggle/index.d.mts +1 -1
  51. package/lib/components/VCard/VCard.mjs +1 -1
  52. package/lib/components/VCard/VCardItem.mjs +1 -1
  53. package/lib/components/VCard/VCardSubtitle.mjs +1 -1
  54. package/lib/components/VCard/VCardText.mjs +1 -1
  55. package/lib/components/VCard/index.d.mts +5 -5
  56. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  57. package/lib/components/VCarousel/VCarouselItem.mjs +1 -1
  58. package/lib/components/VCarousel/index.d.mts +1 -1
  59. package/lib/components/VCheckbox/VCheckbox.mjs +1 -1
  60. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -1
  61. package/lib/components/VCheckbox/index.d.mts +1 -1
  62. package/lib/components/VChip/VChip.mjs +1 -1
  63. package/lib/components/VChip/index.d.mts +5 -5
  64. package/lib/components/VChipGroup/VChipGroup.mjs +1 -1
  65. package/lib/components/VChipGroup/index.d.mts +1 -1
  66. package/lib/components/VColorPicker/VColorPicker.mjs +1 -1
  67. package/lib/components/VColorPicker/index.d.mts +10 -10
  68. package/lib/components/VCombobox/VCombobox.mjs +1 -1
  69. package/lib/components/VCombobox/index.d.mts +4 -4
  70. package/lib/components/VConfirmEdit/VConfirmEdit.mjs +1 -1
  71. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs +5 -5
  72. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs.map +1 -1
  73. package/lib/components/VConfirmEdit/index.d.mts +1 -1
  74. package/lib/components/VCounter/VCounter.mjs +1 -1
  75. package/lib/components/VDataIterator/index.d.mts +1 -1
  76. package/lib/components/VDataTable/VDataTable.mjs +1 -1
  77. package/lib/components/VDataTable/VDataTableFooter.mjs +1 -1
  78. package/lib/components/VDataTable/VDataTableGroupHeaderRow.mjs +1 -1
  79. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  80. package/lib/components/VDataTable/VDataTableRow.mjs +1 -1
  81. package/lib/components/VDataTable/VDataTableRows.mjs +1 -1
  82. package/lib/components/VDataTable/VDataTableServer.mjs +1 -1
  83. package/lib/components/VDataTable/VDataTableVirtual.mjs +1 -1
  84. package/lib/components/VDataTable/composables/sort.mjs +12 -8
  85. package/lib/components/VDataTable/composables/sort.mjs.map +1 -1
  86. package/lib/components/VDataTable/index.d.mts +1 -1
  87. package/lib/components/VDatePicker/VDatePicker.mjs +1 -1
  88. package/lib/components/VDatePicker/VDatePickerControls.mjs +1 -1
  89. package/lib/components/VDatePicker/VDatePickerControls.mjs.map +1 -1
  90. package/lib/components/VDatePicker/VDatePickerMonth.mjs +1 -1
  91. package/lib/components/VDatePicker/VDatePickerMonths.mjs +1 -1
  92. package/lib/components/VDatePicker/VDatePickerYears.mjs +1 -1
  93. package/lib/components/VDatePicker/index.d.mts +28 -16
  94. package/lib/components/VDialog/VDialog.mjs +1 -1
  95. package/lib/components/VDialog/__test__/VDialog.spec.cy.mjs +1 -1
  96. package/lib/components/VDialog/index.d.mts +3 -3
  97. package/lib/components/VEmptyState/VEmptyState.mjs +1 -1
  98. package/lib/components/VEmptyState/index.d.mts +1 -1
  99. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +1 -1
  100. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
  101. package/lib/components/VExpansionPanel/index.d.mts +1 -1
  102. package/lib/components/VFab/VFab.mjs +1 -1
  103. package/lib/components/VFab/index.d.mts +5 -5
  104. package/lib/components/VField/VField.mjs +1 -1
  105. package/lib/components/VField/VFieldLabel.mjs +1 -1
  106. package/lib/components/VField/index.d.mts +1 -1
  107. package/lib/components/VFileInput/VFileInput.mjs +2 -3
  108. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  109. package/lib/components/VFileInput/index.d.mts +4 -4
  110. package/lib/components/VFooter/VFooter.mjs +1 -1
  111. package/lib/components/VGrid/VContainer.mjs +1 -1
  112. package/lib/components/VIcon/index.d.mts +1 -1
  113. package/lib/components/VImg/VImg.mjs +1 -1
  114. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  115. package/lib/components/VInput/VInput.mjs +1 -1
  116. package/lib/components/VInput/index.d.mts +1 -1
  117. package/lib/components/VItemGroup/index.d.mts +1 -1
  118. package/lib/components/VLazy/VLazy.mjs +1 -1
  119. package/lib/components/VList/VList.mjs +1 -1
  120. package/lib/components/VList/VListChildren.mjs +1 -1
  121. package/lib/components/VList/VListGroup.mjs +1 -1
  122. package/lib/components/VList/VListItem.mjs +1 -1
  123. package/lib/components/VList/VListItemAction.mjs +1 -1
  124. package/lib/components/VList/VListItemMedia.mjs +1 -1
  125. package/lib/components/VList/VListItemSubtitle.mjs +1 -1
  126. package/lib/components/VList/index.d.mts +5 -5
  127. package/lib/components/VMenu/VMenu.mjs +1 -1
  128. package/lib/components/VMenu/index.d.mts +3 -3
  129. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +0 -4
  130. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +3 -6
  131. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  132. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -5
  133. package/lib/components/VOtpInput/VOtpInput.mjs +1 -1
  134. package/lib/components/VOverlay/VOverlay.mjs +1 -1
  135. package/lib/components/VPagination/VPagination.mjs +1 -1
  136. package/lib/components/VPagination/index.d.mts +1 -1
  137. package/lib/components/VParallax/VParallax.mjs +1 -1
  138. package/lib/components/VRadio/VRadio.mjs +1 -1
  139. package/lib/components/VRadio/index.d.mts +1 -1
  140. package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -1
  141. package/lib/components/VRadioGroup/index.d.mts +1 -1
  142. package/lib/components/VRangeSlider/VRangeSlider.mjs +1 -1
  143. package/lib/components/VRating/VRating.mjs +1 -1
  144. package/lib/components/VRating/index.d.mts +1 -1
  145. package/lib/components/VSelect/VSelect.mjs +1 -1
  146. package/lib/components/VSelect/index.d.mts +4 -4
  147. package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -1
  148. package/lib/components/VSelectionControl/index.d.mts +1 -1
  149. package/lib/components/VSelectionControlGroup/index.d.mts +1 -1
  150. package/lib/components/VSheet/VSheet.mjs +1 -1
  151. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +1 -1
  152. package/lib/components/VSlideGroup/index.d.mts +1 -1
  153. package/lib/components/VSlider/VSlider.mjs +1 -1
  154. package/lib/components/VSlider/VSliderThumb.mjs +1 -1
  155. package/lib/components/VSnackbar/VSnackbar.mjs +1 -1
  156. package/lib/components/VSnackbar/index.d.mts +3 -3
  157. package/lib/components/VSparkline/VBarline.mjs +1 -2
  158. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  159. package/lib/components/VSparkline/VSparkline.mjs +1 -1
  160. package/lib/components/VSparkline/VTrendline.mjs +1 -2
  161. package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
  162. package/lib/components/VSpeedDial/VSpeedDial.mjs +1 -1
  163. package/lib/components/VStepper/VStepper.mjs +1 -1
  164. package/lib/components/VStepper/VStepperItem.mjs +1 -1
  165. package/lib/components/VStepper/VStepperWindow.mjs +1 -1
  166. package/lib/components/VStepper/VStepperWindowItem.mjs +1 -1
  167. package/lib/components/VStepper/index.d.mts +1 -1
  168. package/lib/components/VSwitch/VSwitch.mjs +1 -1
  169. package/lib/components/VSwitch/index.d.mts +1 -1
  170. package/lib/components/VSystemBar/VSystemBar.mjs +1 -1
  171. package/lib/components/VTabs/VTab.mjs +1 -1
  172. package/lib/components/VTabs/VTabs.mjs +1 -1
  173. package/lib/components/VTabs/VTabsWindow.mjs +1 -1
  174. package/lib/components/VTabs/VTabsWindowItem.mjs +1 -1
  175. package/lib/components/VTabs/index.d.mts +20 -20
  176. package/lib/components/VTextField/VTextField.mjs +1 -1
  177. package/lib/components/VTextField/index.d.mts +7 -7
  178. package/lib/components/VTextarea/VTextarea.mjs +1 -1
  179. package/lib/components/VTextarea/index.d.mts +4 -4
  180. package/lib/components/VTimeline/VTimeline.mjs +1 -1
  181. package/lib/components/VTimeline/VTimelineDivider.mjs +1 -1
  182. package/lib/components/VTimeline/VTimelineItem.mjs +1 -1
  183. package/lib/components/VTimeline/index.d.mts +1 -1
  184. package/lib/components/VToolbar/VToolbar.mjs +1 -1
  185. package/lib/components/VTooltip/VTooltip.mjs +1 -1
  186. package/lib/components/VTooltip/index.d.mts +3 -3
  187. package/lib/components/VValidation/index.d.mts +1 -1
  188. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +1 -1
  189. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +1 -1
  190. package/lib/components/VVirtualScroll/index.d.mts +1 -1
  191. package/lib/components/VWindow/VWindow.mjs +1 -1
  192. package/lib/components/VWindow/VWindowItem.mjs +1 -1
  193. package/lib/components/VWindow/index.d.mts +1 -1
  194. package/lib/components/index.d.mts +109 -97
  195. package/lib/components/transitions/dialog-transition.mjs +1 -2
  196. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  197. package/lib/composables/calendar.mjs +4 -1
  198. package/lib/composables/calendar.mjs.map +1 -1
  199. package/lib/composables/icons.mjs +1 -1
  200. package/lib/composables/variant.mjs +1 -1
  201. package/lib/entry-bundler.mjs +1 -1
  202. package/lib/framework.mjs +1 -1
  203. package/lib/iconsets/fa-svg.d.mts +1 -1
  204. package/lib/iconsets/fa.d.mts +1 -1
  205. package/lib/iconsets/fa4.d.mts +1 -1
  206. package/lib/iconsets/md.d.mts +1 -1
  207. package/lib/iconsets/mdi-svg.d.mts +1 -1
  208. package/lib/iconsets/mdi.d.mts +1 -1
  209. package/lib/index.d.mts +60 -60
  210. package/lib/labs/VCalendar/VCalendar.mjs +1 -1
  211. package/lib/labs/VCalendar/VCalendarDay.mjs +1 -1
  212. package/lib/labs/VCalendar/index.d.mts +8 -2
  213. package/lib/labs/VDateInput/VDateInput.mjs +4 -3
  214. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  215. package/lib/labs/VDateInput/index.d.mts +8 -2
  216. package/lib/labs/VFileUpload/VFileUpload.mjs +1 -1
  217. package/lib/labs/VFileUpload/VFileUploadItem.mjs +1 -1
  218. package/lib/labs/VFileUpload/index.d.mts +5 -5
  219. package/lib/labs/VNumberInput/VNumberInput.css +10 -2
  220. package/lib/labs/VNumberInput/VNumberInput.mjs +94 -36
  221. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  222. package/lib/labs/VNumberInput/VNumberInput.sass +12 -2
  223. package/lib/labs/VNumberInput/index.d.mts +59 -32
  224. package/lib/labs/VPicker/VPicker.mjs +1 -1
  225. package/lib/labs/VSnackbarQueue/VSnackbarQueue.mjs +1 -1
  226. package/lib/labs/VSnackbarQueue/index.d.mts +3 -3
  227. package/lib/labs/VStepperVertical/VStepperVertical.mjs +1 -1
  228. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs +1 -1
  229. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +1 -1
  230. package/lib/labs/VStepperVertical/index.d.mts +1 -1
  231. package/lib/labs/VTimePicker/VTimePicker.mjs +1 -1
  232. package/lib/labs/VTimePicker/VTimePickerControls.mjs +1 -1
  233. package/lib/labs/VTreeview/VTreeview.mjs +1 -1
  234. package/lib/labs/VTreeview/VTreeviewChildren.mjs +1 -1
  235. package/lib/labs/VTreeview/VTreeviewGroup.mjs +1 -1
  236. package/lib/labs/VTreeview/VTreeviewItem.mjs +1 -1
  237. package/lib/labs/VTreeview/index.d.mts +5 -5
  238. package/lib/labs/components.d.mts +85 -46
  239. package/lib/locale/adapters/vue-i18n.mjs +0 -1
  240. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  241. package/package.json +16 -15
@@ -137,7 +137,7 @@ declare const VColorPicker: {
137
137
  };
138
138
  }>> & {
139
139
  "onUpdate:modelValue"?: ((color: any) => any) | undefined;
140
- "onUpdate:mode"?: ((mode: "rgb" | "hex" | "rgba" | "hsl" | "hsla" | "hexa") => any) | undefined;
140
+ "onUpdate:mode"?: ((mode: "rgb" | "hex" | "hsl" | "rgba" | "hsla" | "hexa") => any) | undefined;
141
141
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
142
142
  'update:modelValue': (color: any) => true;
143
143
  'update:mode': (mode: keyof typeof modes) => true;
@@ -204,17 +204,17 @@ declare const VColorPicker: {
204
204
  };
205
205
  }>> & {
206
206
  "onUpdate:modelValue"?: ((color: any) => any) | undefined;
207
- "onUpdate:mode"?: ((mode: "rgb" | "hex" | "rgba" | "hsl" | "hsla" | "hexa") => any) | undefined;
207
+ "onUpdate:mode"?: ((mode: "rgb" | "hex" | "hsl" | "rgba" | "hsla" | "hexa") => any) | undefined;
208
208
  }, {
209
209
  width: string | number;
210
210
  style: vue.StyleValue;
211
211
  disabled: boolean;
212
212
  tag: string;
213
- mode: "rgb" | "hex" | "rgba" | "hsl" | "hsla" | "hexa";
213
+ mode: "rgb" | "hex" | "hsl" | "rgba" | "hsla" | "hexa";
214
214
  rounded: string | number | boolean;
215
215
  tile: boolean;
216
216
  dotSize: string | number;
217
- modes: readonly ("rgb" | "hex" | "rgba" | "hsl" | "hsla" | "hexa")[];
217
+ modes: readonly ("rgb" | "hex" | "hsl" | "rgba" | "hsla" | "hexa")[];
218
218
  canvasHeight: string | number;
219
219
  hideCanvas: boolean;
220
220
  hideSliders: boolean;
@@ -291,17 +291,17 @@ declare const VColorPicker: {
291
291
  };
292
292
  }>> & {
293
293
  "onUpdate:modelValue"?: ((color: any) => any) | undefined;
294
- "onUpdate:mode"?: ((mode: "rgb" | "hex" | "rgba" | "hsl" | "hsla" | "hexa") => any) | undefined;
294
+ "onUpdate:mode"?: ((mode: "rgb" | "hex" | "hsl" | "rgba" | "hsla" | "hexa") => any) | undefined;
295
295
  }, {}, {}, {}, {}, {
296
296
  width: string | number;
297
297
  style: vue.StyleValue;
298
298
  disabled: boolean;
299
299
  tag: string;
300
- mode: "rgb" | "hex" | "rgba" | "hsl" | "hsla" | "hexa";
300
+ mode: "rgb" | "hex" | "hsl" | "rgba" | "hsla" | "hexa";
301
301
  rounded: string | number | boolean;
302
302
  tile: boolean;
303
303
  dotSize: string | number;
304
- modes: readonly ("rgb" | "hex" | "rgba" | "hsl" | "hsla" | "hexa")[];
304
+ modes: readonly ("rgb" | "hex" | "hsl" | "rgba" | "hsla" | "hexa")[];
305
305
  canvasHeight: string | number;
306
306
  hideCanvas: boolean;
307
307
  hideSliders: boolean;
@@ -375,7 +375,7 @@ declare const VColorPicker: {
375
375
  };
376
376
  }>> & {
377
377
  "onUpdate:modelValue"?: ((color: any) => any) | undefined;
378
- "onUpdate:mode"?: ((mode: "rgb" | "hex" | "rgba" | "hsl" | "hsla" | "hexa") => any) | undefined;
378
+ "onUpdate:mode"?: ((mode: "rgb" | "hex" | "hsl" | "rgba" | "hsla" | "hexa") => any) | undefined;
379
379
  }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
380
380
  'update:modelValue': (color: any) => true;
381
381
  'update:mode': (mode: keyof typeof modes) => true;
@@ -384,11 +384,11 @@ declare const VColorPicker: {
384
384
  style: vue.StyleValue;
385
385
  disabled: boolean;
386
386
  tag: string;
387
- mode: "rgb" | "hex" | "rgba" | "hsl" | "hsla" | "hexa";
387
+ mode: "rgb" | "hex" | "hsl" | "rgba" | "hsla" | "hexa";
388
388
  rounded: string | number | boolean;
389
389
  tile: boolean;
390
390
  dotSize: string | number;
391
- modes: readonly ("rgb" | "hex" | "rgba" | "hsl" | "hsla" | "hexa")[];
391
+ modes: readonly ("rgb" | "hex" | "hsl" | "rgba" | "hsla" | "hexa")[];
392
392
  canvasHeight: string | number;
393
393
  hideCanvas: boolean;
394
394
  hideSliders: boolean;
@@ -1,4 +1,4 @@
1
- import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
1
+ import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createTextVNode as _createTextVNode } from "vue";
2
2
  // Styles
3
3
  import "./VCombobox.css";
4
4
 
@@ -1,5 +1,5 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, ComponentPublicInstance, PropType, FunctionalComponent, ComputedRef, Ref, EffectScope, Component, nextTick } from 'vue';
2
+ import { VNodeChild, VNode, ComponentPropsOptions, ExtractPropTypes, ComponentPublicInstance, PropType, FunctionalComponent, ComputedRef, Ref, EffectScope, Component, nextTick } from 'vue';
3
3
 
4
4
  type ClassValue = any;
5
5
 
@@ -1387,7 +1387,7 @@ declare const VMenu: {
1387
1387
  };
1388
1388
  $forceUpdate: () => void;
1389
1389
  $nextTick: typeof nextTick;
1390
- $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R]) => any : (...args: any) => any, options?: vue.WatchOptions): vue.WatchStopHandle;
1390
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, (cleanupFn: () => void) => void]) => any : (...args: [any, any, (cleanupFn: () => void) => void]) => any, options?: vue.WatchOptions): vue.WatchStopHandle;
1391
1391
  } & Omit<{
1392
1392
  absolute: boolean;
1393
1393
  location: Anchor;
@@ -2068,7 +2068,7 @@ declare const VMenu: {
2068
2068
  };
2069
2069
  $forceUpdate: () => void;
2070
2070
  $nextTick: typeof nextTick;
2071
- $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R]) => any : (...args: any) => any, options?: vue.WatchOptions): vue.WatchStopHandle;
2071
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, (cleanupFn: () => void) => void]) => any : (...args: [any, any, (cleanupFn: () => void) => void]) => any, options?: vue.WatchOptions): vue.WatchStopHandle;
2072
2072
  } & Omit<{
2073
2073
  absolute: boolean;
2074
2074
  location: Anchor;
@@ -2654,7 +2654,7 @@ declare const VMenu: {
2654
2654
  };
2655
2655
  $forceUpdate: () => void;
2656
2656
  $nextTick: typeof nextTick;
2657
- $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R]) => any : (...args: any) => any, options?: vue.WatchOptions): vue.WatchStopHandle;
2657
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, (cleanupFn: () => void) => void]) => any : (...args: [any, any, (cleanupFn: () => void) => void]) => any, options?: vue.WatchOptions): vue.WatchStopHandle;
2658
2658
  } & Omit<{
2659
2659
  absolute: boolean;
2660
2660
  location: Anchor;
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from "vue";
1
+ import { Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
2
2
  // Components
3
3
  import { VBtn } from "../VBtn/index.mjs"; // Composables
4
4
  import { useLocale } from "../../composables/index.mjs";
@@ -1,4 +1,4 @@
1
- import { createTextVNode as _createTextVNode, Fragment as _Fragment, createVNode as _createVNode } from "vue";
1
+ import { createVNode as _createVNode, Fragment as _Fragment, createTextVNode as _createTextVNode } from "vue";
2
2
  // Components
3
3
  import { VConfirmEdit } from "../index.mjs"; // Utilities
4
4
  import { render, screen, userEvent } from '@test';
@@ -16,10 +16,10 @@ describe('VConfirmEdit', () => {
16
16
  return _createVNode("p", null, [model.value]);
17
17
  }
18
18
  }));
19
- expect(screen.getByText('foo')).toBeInTheDocument();
19
+ expect(screen.getByText('foo')).toBeVisible();
20
20
  externalModel.value = 'bar';
21
21
  await nextTick();
22
- expect(screen.getByText('bar')).toBeInTheDocument();
22
+ expect(screen.getByText('bar')).toBeVisible();
23
23
  });
24
24
  it("doesn't mutate the original value", async () => {
25
25
  const externalModel = shallowRef(['foo']);
@@ -37,9 +37,9 @@ describe('VConfirmEdit', () => {
37
37
  }, [_createTextVNode("Push")])]);
38
38
  }
39
39
  }));
40
- expect(screen.getByText('foo')).toBeInTheDocument();
40
+ expect(screen.getByText('foo')).toBeVisible();
41
41
  await userEvent.click(screen.getByTestId('push'));
42
- expect(screen.getByText('foo,bar')).toBeInTheDocument();
42
+ expect(screen.getByText('foo,bar')).toBeVisible();
43
43
  expect(externalModel.value).toEqual(['foo']);
44
44
  await userEvent.click(screen.getByText('OK'));
45
45
  expect(externalModel.value).toEqual(['foo', 'bar']);
@@ -1 +1 @@
1
- {"version":3,"file":"VConfirmEdit.spec.browser.mjs","names":["VConfirmEdit","render","screen","userEvent","nextTick","shallowRef","describe","it","externalModel","_createVNode","value","default","_ref","model","expect","getByText","toBeInTheDocument","$event","_ref2","_Fragment","join","onClick","push","_createTextVNode","click","getByTestId","toEqual","getAllByCSS","toHaveLength","_ref3","_ref4","actions","queryAllByCSS","_ref5"],"sources":["../../../../src/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.tsx"],"sourcesContent":["// Components\nimport { VConfirmEdit } from '../'\n\n// Utilities\nimport { render, screen, userEvent } from '@test'\nimport { nextTick, shallowRef } from 'vue'\n\ndescribe('VConfirmEdit', () => {\n it('mirrors external updates', async () => {\n const externalModel = shallowRef('foo')\n\n render(() => (\n <VConfirmEdit modelValue={ externalModel.value }>\n { ({ model }) => (\n <p>{ model.value }</p>\n )}\n </VConfirmEdit>\n ))\n\n expect(screen.getByText('foo')).toBeInTheDocument()\n\n externalModel.value = 'bar'\n await nextTick()\n expect(screen.getByText('bar')).toBeInTheDocument()\n })\n\n it(\"doesn't mutate the original value\", async () => {\n const externalModel = shallowRef(['foo'])\n\n render(() => (\n <VConfirmEdit v-model={ externalModel.value } modelValue={ externalModel.value }>\n { ({ model }) => (\n <>\n <p>{ model.value.join(',') }</p>\n <button data-testid=\"push\" onClick={ () => model.value.push('bar') }>Push</button>\n </>\n )}\n </VConfirmEdit>\n ))\n\n expect(screen.getByText('foo')).toBeInTheDocument()\n\n await userEvent.click(screen.getByTestId('push'))\n expect(screen.getByText('foo,bar')).toBeInTheDocument()\n expect(externalModel.value).toEqual(['foo'])\n\n await userEvent.click(screen.getByText('OK'))\n expect(externalModel.value).toEqual(['foo', 'bar'])\n })\n\n describe('hides actions if used from the slot', () => {\n it('nothing', () => {\n render(() => <VConfirmEdit />)\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n\n it('consume model', () => {\n render(() => (\n <VConfirmEdit>\n { ({ model }) => {\n void model\n }}\n </VConfirmEdit>\n ))\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n\n it('consume actions', () => {\n render(() => (\n <VConfirmEdit>\n { ({ actions }) => {\n void actions\n }}\n </VConfirmEdit>\n ))\n expect(screen.queryAllByCSS('button')).toHaveLength(0)\n })\n\n it('render actions', () => {\n render(() => (\n <VConfirmEdit>\n { ({ actions }) => actions() }\n </VConfirmEdit>\n ))\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VConfirmEdit.spec.browser.mjs","names":["VConfirmEdit","render","screen","userEvent","nextTick","shallowRef","describe","it","externalModel","_createVNode","value","default","_ref","model","expect","getByText","toBeVisible","$event","_ref2","_Fragment","join","onClick","push","_createTextVNode","click","getByTestId","toEqual","getAllByCSS","toHaveLength","_ref3","_ref4","actions","queryAllByCSS","_ref5"],"sources":["../../../../src/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.tsx"],"sourcesContent":["// Components\nimport { VConfirmEdit } from '../'\n\n// Utilities\nimport { render, screen, userEvent } from '@test'\nimport { nextTick, shallowRef } from 'vue'\n\ndescribe('VConfirmEdit', () => {\n it('mirrors external updates', async () => {\n const externalModel = shallowRef('foo')\n\n render(() => (\n <VConfirmEdit modelValue={ externalModel.value }>\n { ({ model }) => (\n <p>{ model.value }</p>\n )}\n </VConfirmEdit>\n ))\n\n expect(screen.getByText('foo')).toBeVisible()\n\n externalModel.value = 'bar'\n await nextTick()\n expect(screen.getByText('bar')).toBeVisible()\n })\n\n it(\"doesn't mutate the original value\", async () => {\n const externalModel = shallowRef(['foo'])\n\n render(() => (\n <VConfirmEdit v-model={ externalModel.value } modelValue={ externalModel.value }>\n { ({ model }) => (\n <>\n <p>{ model.value.join(',') }</p>\n <button data-testid=\"push\" onClick={ () => model.value.push('bar') }>Push</button>\n </>\n )}\n </VConfirmEdit>\n ))\n\n expect(screen.getByText('foo')).toBeVisible()\n\n await userEvent.click(screen.getByTestId('push'))\n expect(screen.getByText('foo,bar')).toBeVisible()\n expect(externalModel.value).toEqual(['foo'])\n\n await userEvent.click(screen.getByText('OK'))\n expect(externalModel.value).toEqual(['foo', 'bar'])\n })\n\n describe('hides actions if used from the slot', () => {\n it('nothing', () => {\n render(() => <VConfirmEdit />)\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n\n it('consume model', () => {\n render(() => (\n <VConfirmEdit>\n { ({ model }) => {\n void model\n }}\n </VConfirmEdit>\n ))\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n\n it('consume actions', () => {\n render(() => (\n <VConfirmEdit>\n { ({ actions }) => {\n void actions\n }}\n </VConfirmEdit>\n ))\n expect(screen.queryAllByCSS('button')).toHaveLength(0)\n })\n\n it('render actions', () => {\n render(() => (\n <VConfirmEdit>\n { ({ actions }) => actions() }\n </VConfirmEdit>\n ))\n expect(screen.getAllByCSS('button')).toHaveLength(2)\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, Ref } from 'vue';
2
+ import { VNodeChild, VNode, ComponentPropsOptions, ExtractPropTypes, Ref } from 'vue';
3
3
 
4
4
  type SlotsToProps<U extends RawSlots, T = MakeInternalSlots<U>> = {
5
5
  $children?: (VNodeChild | (T extends {
@@ -1,4 +1,4 @@
1
- import { withDirectives as _withDirectives, createVNode as _createVNode, vShow as _vShow } from "vue";
1
+ import { vShow as _vShow, createVNode as _createVNode, withDirectives as _withDirectives } from "vue";
2
2
  // Styles
3
3
  import "./VCounter.css";
4
4
 
@@ -1,5 +1,5 @@
1
1
  import * as vue from 'vue';
2
- import { Ref, ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, PropType, Component } from 'vue';
2
+ import { Ref, VNodeChild, VNode, ComponentPropsOptions, ExtractPropTypes, PropType, Component } from 'vue';
3
3
 
4
4
  type ClassValue = any;
5
5
 
@@ -1,4 +1,4 @@
1
- import { mergeProps as _mergeProps, createVNode as _createVNode, resolveDirective as _resolveDirective, Fragment as _Fragment } from "vue";
1
+ import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
2
2
  // Styles
3
3
  import "./VDataTable.css";
4
4
 
@@ -1,4 +1,4 @@
1
- import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
2
2
  // Styles
3
3
  import "./VDataTableFooter.css";
4
4
 
@@ -1,4 +1,4 @@
1
- import { createTextVNode as _createTextVNode, createVNode as _createVNode } from "vue";
1
+ import { createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
2
2
  // Components
3
3
  import { VDataTableColumn } from "./VDataTableColumn.mjs";
4
4
  import { VBtn } from "../VBtn/index.mjs";
@@ -1,4 +1,4 @@
1
- import { resolveDirective as _resolveDirective, Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from "vue";
2
2
  // Components
3
3
  import { VDataTableColumn } from "./VDataTableColumn.mjs";
4
4
  import { VCheckboxBtn } from "../VCheckbox/index.mjs";
@@ -1,4 +1,4 @@
1
- import { mergeProps as _mergeProps, Fragment as _Fragment, createVNode as _createVNode } from "vue";
1
+ import { createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps } from "vue";
2
2
  // Components
3
3
  import { VDataTableColumn } from "./VDataTableColumn.mjs";
4
4
  import { VBtn } from "../VBtn/index.mjs";
@@ -1,4 +1,4 @@
1
- import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode } from "vue";
1
+ import { createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps } from "vue";
2
2
  // Components
3
3
  import { VDataTableGroupHeaderRow } from "./VDataTableGroupHeaderRow.mjs";
4
4
  import { VDataTableRow } from "./VDataTableRow.mjs"; // Composables
@@ -1,4 +1,4 @@
1
- import { mergeProps as _mergeProps, createVNode as _createVNode, resolveDirective as _resolveDirective, Fragment as _Fragment } from "vue";
1
+ import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
2
2
  // Components
3
3
  import { makeDataTableProps } from "./VDataTable.mjs";
4
4
  import { makeVDataTableFooterProps, VDataTableFooter } from "./VDataTableFooter.mjs";
@@ -1,4 +1,4 @@
1
- import { mergeProps as _mergeProps, createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
2
2
  // Components
3
3
  import { makeDataTableProps } from "./VDataTable.mjs";
4
4
  import { VDataTableHeaders } from "./VDataTableHeaders.mjs";
@@ -37,15 +37,19 @@ export function provideSort(options) {
37
37
  })) ?? [];
38
38
  const item = newSortBy.find(x => x.key === column.key);
39
39
  if (!item) {
40
- if (multiSort.value) newSortBy = [...newSortBy, {
41
- key: column.key,
42
- order: 'asc'
43
- }];else newSortBy = [{
44
- key: column.key,
45
- order: 'asc'
46
- }];
40
+ if (multiSort.value) {
41
+ newSortBy.push({
42
+ key: column.key,
43
+ order: 'asc'
44
+ });
45
+ } else {
46
+ newSortBy = [{
47
+ key: column.key,
48
+ order: 'asc'
49
+ }];
50
+ }
47
51
  } else if (item.order === 'desc') {
48
- if (mustSort.value) {
52
+ if (mustSort.value && newSortBy.length === 1) {
49
53
  item.order = 'asc';
50
54
  } else {
51
55
  newSortBy = newSortBy.filter(x => x.key !== column.key);
@@ -1 +1 @@
1
- {"version":3,"file":"sort.mjs","names":["useLocale","useProxiedModel","computed","inject","provide","toRef","getObjectValueByPath","isEmpty","propsFactory","makeDataTableSortProps","sortBy","type","Array","default","customKeySort","Object","multiSort","Boolean","mustSort","VDataTableSortSymbol","Symbol","for","createSort","props","provideSort","options","page","toggleSort","column","key","newSortBy","value","map","x","item","find","order","filter","isSorted","data","useSort","Error","useSortedItems","items","locale","sortedItems","length","sortItems","current","transform","sortFunctions","sortRawFunctions","sortByItems","stringCollator","Intl","Collator","sensitivity","usage","transformedItems","sort","a","b","i","hasCustomResult","sortKey","sortOrder","sortA","sortB","sortARaw","raw","sortBRaw","customResult","Date","getTime","s","toString","toLocaleLowerCase","isNaN","Number","compare","_ref"],"sources":["../../../../src/components/VDataTable/composables/sort.ts"],"sourcesContent":["// Composables\nimport { useLocale } from '@/composables'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, toRef } from 'vue'\nimport { getObjectValueByPath, isEmpty, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableCompareFunction, InternalDataTableHeader } from '../types'\nimport type { InternalItem } from '@/composables/filter'\n\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array as PropType<readonly SortItem[]>,\n default: () => ([]),\n },\n customKeySort: Object as PropType<Record<string, DataTableCompareFunction>>,\n multiSort: Boolean,\n mustSort: Boolean,\n}, 'DataTable-sort')\n\nconst VDataTableSortSymbol: InjectionKey<{\n sortBy: Ref<readonly SortItem[]>\n toggleSort: (column: InternalDataTableHeader) => void\n isSorted: (column: InternalDataTableHeader) => boolean\n}> = Symbol.for('vuetify:data-table-sort')\n\nexport type SortItem = { key: string, order?: boolean | 'asc' | 'desc' }\n\ntype SortProps = {\n sortBy: readonly SortItem[]\n 'onUpdate:sortBy': ((value: any) => void) | undefined\n mustSort: boolean\n multiSort: boolean\n}\n\nexport function createSort (props: SortProps) {\n const sortBy = useProxiedModel(props, 'sortBy')\n const mustSort = toRef(props, 'mustSort')\n const multiSort = toRef(props, 'multiSort')\n\n return { sortBy, mustSort, multiSort }\n}\n\nexport function provideSort (options: {\n sortBy: Ref<readonly SortItem[]>\n mustSort: Ref<boolean>\n multiSort: Ref<boolean>\n page?: Ref<number>\n}) {\n const { sortBy, mustSort, multiSort, page } = options\n\n const toggleSort = (column: InternalDataTableHeader) => {\n if (column.key == null) return\n\n let newSortBy = sortBy.value.map(x => ({ ...x })) ?? []\n const item = newSortBy.find(x => x.key === column.key)\n\n if (!item) {\n if (multiSort.value) newSortBy = [...newSortBy, { key: column.key, order: 'asc' }]\n else newSortBy = [{ key: column.key, order: 'asc' }]\n } else if (item.order === 'desc') {\n if (mustSort.value) {\n item.order = 'asc'\n } else {\n newSortBy = newSortBy.filter(x => x.key !== column.key)\n }\n } else {\n item.order = 'desc'\n }\n\n sortBy.value = newSortBy\n if (page) page.value = 1\n }\n\n function isSorted (column: InternalDataTableHeader) {\n return !!sortBy.value.find(item => item.key === column.key)\n }\n\n const data = { sortBy, toggleSort, isSorted }\n\n provide(VDataTableSortSymbol, data)\n\n return data\n}\n\nexport function useSort () {\n const data = inject(VDataTableSortSymbol)\n\n if (!data) throw new Error('Missing sort!')\n\n return data\n}\n\n// TODO: abstract into project composable\nexport function useSortedItems<T extends InternalItem> (\n props: {\n customKeySort: Record<string, DataTableCompareFunction> | undefined\n },\n items: Ref<T[]>,\n sortBy: Ref<readonly SortItem[]>,\n options?: {\n transform?: (item: T) => {}\n sortFunctions?: Ref<Record<string, DataTableCompareFunction> | undefined>\n sortRawFunctions?: Ref<Record<string, DataTableCompareFunction> | undefined>\n },\n) {\n const locale = useLocale()\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value\n\n return sortItems(items.value, sortBy.value, locale.current.value, {\n transform: options?.transform,\n sortFunctions: {\n ...props.customKeySort,\n ...options?.sortFunctions?.value,\n },\n sortRawFunctions: options?.sortRawFunctions?.value,\n })\n })\n\n return { sortedItems }\n}\n\nexport function sortItems<T extends InternalItem> (\n items: T[],\n sortByItems: readonly SortItem[],\n locale: string,\n options?: {\n transform?: (item: T) => Record<string, any>\n sortFunctions?: Record<string, DataTableCompareFunction>\n sortRawFunctions?: Record<string, DataTableCompareFunction>\n },\n): T[] {\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n const transformedItems = items.map(item => (\n [item, options?.transform ? options.transform(item) : item as never] as const)\n )\n\n return transformedItems.sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n let hasCustomResult = false\n const sortKey = sortByItems[i].key\n const sortOrder = sortByItems[i].order ?? 'asc'\n\n if (sortOrder === false) continue\n\n let sortA = getObjectValueByPath(a[1], sortKey)\n let sortB = getObjectValueByPath(b[1], sortKey)\n let sortARaw = a[0].raw\n let sortBRaw = b[0].raw\n\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA]\n ;[sortARaw, sortBRaw] = [sortBRaw, sortARaw]\n }\n\n if (options?.sortRawFunctions?.[sortKey]) {\n const customResult = options.sortRawFunctions[sortKey](sortARaw, sortBRaw)\n\n if (customResult == null) continue\n hasCustomResult = true\n if (customResult) return customResult\n }\n\n if (options?.sortFunctions?.[sortKey]) {\n const customResult = options.sortFunctions[sortKey](sortA, sortB)\n\n if (customResult == null) continue\n hasCustomResult = true\n if (customResult) return customResult\n }\n\n if (hasCustomResult) continue\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s)\n\n if (sortA !== sortB) {\n if (isEmpty(sortA) && isEmpty(sortB)) return 0\n if (isEmpty(sortA)) return -1\n if (isEmpty(sortB)) return 1\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n }).map(([item]) => item)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sort.mjs","names":["useLocale","useProxiedModel","computed","inject","provide","toRef","getObjectValueByPath","isEmpty","propsFactory","makeDataTableSortProps","sortBy","type","Array","default","customKeySort","Object","multiSort","Boolean","mustSort","VDataTableSortSymbol","Symbol","for","createSort","props","provideSort","options","page","toggleSort","column","key","newSortBy","value","map","x","item","find","push","order","length","filter","isSorted","data","useSort","Error","useSortedItems","items","locale","sortedItems","sortItems","current","transform","sortFunctions","sortRawFunctions","sortByItems","stringCollator","Intl","Collator","sensitivity","usage","transformedItems","sort","a","b","i","hasCustomResult","sortKey","sortOrder","sortA","sortB","sortARaw","raw","sortBRaw","customResult","Date","getTime","s","toString","toLocaleLowerCase","isNaN","Number","compare","_ref"],"sources":["../../../../src/components/VDataTable/composables/sort.ts"],"sourcesContent":["// Composables\nimport { useLocale } from '@/composables'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, toRef } from 'vue'\nimport { getObjectValueByPath, isEmpty, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableCompareFunction, InternalDataTableHeader } from '../types'\nimport type { InternalItem } from '@/composables/filter'\n\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array as PropType<readonly SortItem[]>,\n default: () => ([]),\n },\n customKeySort: Object as PropType<Record<string, DataTableCompareFunction>>,\n multiSort: Boolean,\n mustSort: Boolean,\n}, 'DataTable-sort')\n\nconst VDataTableSortSymbol: InjectionKey<{\n sortBy: Ref<readonly SortItem[]>\n toggleSort: (column: InternalDataTableHeader) => void\n isSorted: (column: InternalDataTableHeader) => boolean\n}> = Symbol.for('vuetify:data-table-sort')\n\nexport type SortItem = { key: string, order?: boolean | 'asc' | 'desc' }\n\ntype SortProps = {\n sortBy: readonly SortItem[]\n 'onUpdate:sortBy': ((value: any) => void) | undefined\n mustSort: boolean\n multiSort: boolean\n}\n\nexport function createSort (props: SortProps) {\n const sortBy = useProxiedModel(props, 'sortBy')\n const mustSort = toRef(props, 'mustSort')\n const multiSort = toRef(props, 'multiSort')\n\n return { sortBy, mustSort, multiSort }\n}\n\nexport function provideSort (options: {\n sortBy: Ref<readonly SortItem[]>\n mustSort: Ref<boolean>\n multiSort: Ref<boolean>\n page?: Ref<number>\n}) {\n const { sortBy, mustSort, multiSort, page } = options\n\n const toggleSort = (column: InternalDataTableHeader) => {\n if (column.key == null) return\n\n let newSortBy = sortBy.value.map(x => ({ ...x })) ?? []\n const item = newSortBy.find(x => x.key === column.key)\n\n if (!item) {\n if (multiSort.value) {\n newSortBy.push({ key: column.key, order: 'asc' })\n } else {\n newSortBy = [{ key: column.key, order: 'asc' }]\n }\n } else if (item.order === 'desc') {\n if (mustSort.value && newSortBy.length === 1) {\n item.order = 'asc'\n } else {\n newSortBy = newSortBy.filter(x => x.key !== column.key)\n }\n } else {\n item.order = 'desc'\n }\n\n sortBy.value = newSortBy\n if (page) page.value = 1\n }\n\n function isSorted (column: InternalDataTableHeader) {\n return !!sortBy.value.find(item => item.key === column.key)\n }\n\n const data = { sortBy, toggleSort, isSorted }\n\n provide(VDataTableSortSymbol, data)\n\n return data\n}\n\nexport function useSort () {\n const data = inject(VDataTableSortSymbol)\n\n if (!data) throw new Error('Missing sort!')\n\n return data\n}\n\n// TODO: abstract into project composable\nexport function useSortedItems<T extends InternalItem> (\n props: {\n customKeySort: Record<string, DataTableCompareFunction> | undefined\n },\n items: Ref<T[]>,\n sortBy: Ref<readonly SortItem[]>,\n options?: {\n transform?: (item: T) => {}\n sortFunctions?: Ref<Record<string, DataTableCompareFunction> | undefined>\n sortRawFunctions?: Ref<Record<string, DataTableCompareFunction> | undefined>\n },\n) {\n const locale = useLocale()\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value\n\n return sortItems(items.value, sortBy.value, locale.current.value, {\n transform: options?.transform,\n sortFunctions: {\n ...props.customKeySort,\n ...options?.sortFunctions?.value,\n },\n sortRawFunctions: options?.sortRawFunctions?.value,\n })\n })\n\n return { sortedItems }\n}\n\nexport function sortItems<T extends InternalItem> (\n items: T[],\n sortByItems: readonly SortItem[],\n locale: string,\n options?: {\n transform?: (item: T) => Record<string, any>\n sortFunctions?: Record<string, DataTableCompareFunction>\n sortRawFunctions?: Record<string, DataTableCompareFunction>\n },\n): T[] {\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n const transformedItems = items.map(item => (\n [item, options?.transform ? options.transform(item) : item as never] as const)\n )\n\n return transformedItems.sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n let hasCustomResult = false\n const sortKey = sortByItems[i].key\n const sortOrder = sortByItems[i].order ?? 'asc'\n\n if (sortOrder === false) continue\n\n let sortA = getObjectValueByPath(a[1], sortKey)\n let sortB = getObjectValueByPath(b[1], sortKey)\n let sortARaw = a[0].raw\n let sortBRaw = b[0].raw\n\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA]\n ;[sortARaw, sortBRaw] = [sortBRaw, sortARaw]\n }\n\n if (options?.sortRawFunctions?.[sortKey]) {\n const customResult = options.sortRawFunctions[sortKey](sortARaw, sortBRaw)\n\n if (customResult == null) continue\n hasCustomResult = true\n if (customResult) return customResult\n }\n\n if (options?.sortFunctions?.[sortKey]) {\n const customResult = options.sortFunctions[sortKey](sortA, sortB)\n\n if (customResult == null) continue\n hasCustomResult = true\n if (customResult) return customResult\n }\n\n if (hasCustomResult) continue\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s)\n\n if (sortA !== sortB) {\n if (isEmpty(sortA) && isEmpty(sortB)) return 0\n if (isEmpty(sortA)) return -1\n if (isEmpty(sortB)) return 1\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n }).map(([item]) => item)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, ComponentPublicInstance, PropType, FunctionalComponent, Ref, UnwrapRef, DeepReadonly } from 'vue';
2
+ import { VNodeChild, VNode, ComponentPropsOptions, ExtractPropTypes, PropType, ComponentPublicInstance, FunctionalComponent, Ref, UnwrapRef, DeepReadonly } from 'vue';
3
3
 
4
4
  type ClassValue = any;
5
5
 
@@ -1,4 +1,4 @@
1
- import { Fragment as _Fragment, mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from "vue";
2
2
  // Styles
3
3
  import "./VDatePicker.css";
4
4
 
@@ -15,7 +15,7 @@ export const makeVDatePickerControlsProps = propsFactory({
15
15
  },
16
16
  disabled: {
17
17
  type: [Boolean, String, Array],
18
- default: false
18
+ default: null
19
19
  },
20
20
  nextIcon: {
21
21
  type: IconValue,
@@ -1 +1 @@
1
- {"version":3,"file":"VDatePickerControls.mjs","names":["VBtn","VSpacer","IconValue","computed","genericComponent","propsFactory","useRender","makeVDatePickerControlsProps","active","type","String","Array","default","undefined","disabled","Boolean","nextIcon","prevIcon","modeIcon","text","viewMode","VDatePickerControls","name","props","emits","click:year","click:month","click:prev","click:next","click:text","setup","_ref","emit","disableMonth","isArray","includes","disableYear","disablePrev","disableNext","onClickPrev","onClickNext","onClickYear","onClickMonth","_createVNode","value"],"sources":["../../../src/components/VDatePicker/VDatePickerControls.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerControls.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSpacer } from '@/components/VGrid'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDatePickerControlsProps = propsFactory({\n active: {\n type: [String, Array] as PropType<string | string[]>,\n default: undefined,\n },\n disabled: {\n type: [Boolean, String, Array] as PropType<boolean | string | string[]>,\n default: false,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n modeIcon: {\n type: IconValue,\n default: '$subgroup',\n },\n text: String,\n viewMode: {\n type: String as PropType<'month' | 'months' | 'year'>,\n default: 'month',\n },\n}, 'VDatePickerControls')\n\nexport const VDatePickerControls = genericComponent()({\n name: 'VDatePickerControls',\n\n props: makeVDatePickerControlsProps(),\n\n emits: {\n 'click:year': () => true,\n 'click:month': () => true,\n 'click:prev': () => true,\n 'click:next': () => true,\n 'click:text': () => true,\n },\n\n setup (props, { emit }) {\n const disableMonth = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('text')\n : !!props.disabled\n })\n const disableYear = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('mode')\n : !!props.disabled\n })\n const disablePrev = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('prev')\n : !!props.disabled\n })\n const disableNext = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('next')\n : !!props.disabled\n })\n\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n function onClickYear () {\n emit('click:year')\n }\n\n function onClickMonth () {\n emit('click:month')\n }\n\n useRender(() => {\n // TODO: add slot support and scope defaults\n return (\n <div\n class={[\n 'v-date-picker-controls',\n ]}\n >\n <VBtn\n class=\"v-date-picker-controls__month-btn\"\n disabled={ disableMonth.value }\n text={ props.text }\n variant=\"text\"\n rounded\n onClick={ onClickMonth }\n ></VBtn>\n\n <VBtn\n key=\"mode-btn\"\n class=\"v-date-picker-controls__mode-btn\"\n disabled={ disableYear.value }\n density=\"comfortable\"\n icon={ props.modeIcon }\n variant=\"text\"\n onClick={ onClickYear }\n />\n\n <VSpacer key=\"mode-spacer\" />\n\n <div\n key=\"month-buttons\"\n class=\"v-date-picker-controls__month\"\n >\n <VBtn\n disabled={ disablePrev.value }\n icon={ props.prevIcon }\n variant=\"text\"\n onClick={ onClickPrev }\n />\n\n <VBtn\n disabled={ disableNext.value }\n icon={ props.nextIcon }\n variant=\"text\"\n onClick={ onClickNext }\n />\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerControls = InstanceType<typeof VDatePickerControls>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDatePickerControls.mjs","names":["VBtn","VSpacer","IconValue","computed","genericComponent","propsFactory","useRender","makeVDatePickerControlsProps","active","type","String","Array","default","undefined","disabled","Boolean","nextIcon","prevIcon","modeIcon","text","viewMode","VDatePickerControls","name","props","emits","click:year","click:month","click:prev","click:next","click:text","setup","_ref","emit","disableMonth","isArray","includes","disableYear","disablePrev","disableNext","onClickPrev","onClickNext","onClickYear","onClickMonth","_createVNode","value"],"sources":["../../../src/components/VDatePicker/VDatePickerControls.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerControls.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSpacer } from '@/components/VGrid'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDatePickerControlsProps = propsFactory({\n active: {\n type: [String, Array] as PropType<string | string[]>,\n default: undefined,\n },\n disabled: {\n type: [Boolean, String, Array] as PropType<boolean | string | string[] | null>,\n default: null,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n modeIcon: {\n type: IconValue,\n default: '$subgroup',\n },\n text: String,\n viewMode: {\n type: String as PropType<'month' | 'months' | 'year'>,\n default: 'month',\n },\n}, 'VDatePickerControls')\n\nexport const VDatePickerControls = genericComponent()({\n name: 'VDatePickerControls',\n\n props: makeVDatePickerControlsProps(),\n\n emits: {\n 'click:year': () => true,\n 'click:month': () => true,\n 'click:prev': () => true,\n 'click:next': () => true,\n 'click:text': () => true,\n },\n\n setup (props, { emit }) {\n const disableMonth = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('text')\n : !!props.disabled\n })\n const disableYear = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('mode')\n : !!props.disabled\n })\n const disablePrev = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('prev')\n : !!props.disabled\n })\n const disableNext = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('next')\n : !!props.disabled\n })\n\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n function onClickYear () {\n emit('click:year')\n }\n\n function onClickMonth () {\n emit('click:month')\n }\n\n useRender(() => {\n // TODO: add slot support and scope defaults\n return (\n <div\n class={[\n 'v-date-picker-controls',\n ]}\n >\n <VBtn\n class=\"v-date-picker-controls__month-btn\"\n disabled={ disableMonth.value }\n text={ props.text }\n variant=\"text\"\n rounded\n onClick={ onClickMonth }\n ></VBtn>\n\n <VBtn\n key=\"mode-btn\"\n class=\"v-date-picker-controls__mode-btn\"\n disabled={ disableYear.value }\n density=\"comfortable\"\n icon={ props.modeIcon }\n variant=\"text\"\n onClick={ onClickYear }\n />\n\n <VSpacer key=\"mode-spacer\" />\n\n <div\n key=\"month-buttons\"\n class=\"v-date-picker-controls__month\"\n >\n <VBtn\n disabled={ disablePrev.value }\n icon={ props.prevIcon }\n variant=\"text\"\n onClick={ onClickPrev }\n />\n\n <VBtn\n disabled={ disableNext.value }\n icon={ props.nextIcon }\n variant=\"text\"\n onClick={ onClickNext }\n />\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerControls = InstanceType<typeof VDatePickerControls>\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
1
+ import { createTextVNode as _createTextVNode, createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VDatePickerMonth.css";
4
4
 
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
1
+ import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VDatePickerMonths.css";
4
4
 
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
1
+ import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VDatePickerYears.css";
4
4
 
@@ -1,5 +1,5 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, PropType, ComponentPublicInstance, FunctionalComponent } from 'vue';
2
+ import { VNodeChild, VNode, ComponentPropsOptions, ExtractPropTypes, ComponentPublicInstance, FunctionalComponent, PropType } from 'vue';
3
3
 
4
4
  type ClassValue = any;
5
5
 
@@ -401,7 +401,10 @@ declare const VDatePicker: {
401
401
  max: vue.PropType<unknown>;
402
402
  min: vue.PropType<unknown>;
403
403
  year: NumberConstructor;
404
- disabled: BooleanConstructor;
404
+ disabled: {
405
+ type: BooleanConstructor;
406
+ default: null;
407
+ };
405
408
  month: (StringConstructor | NumberConstructor)[];
406
409
  showAdjacentMonths: BooleanConstructor;
407
410
  weekdays: {
@@ -512,7 +515,10 @@ declare const VDatePicker: {
512
515
  max: vue.PropType<unknown>;
513
516
  min: vue.PropType<unknown>;
514
517
  year: NumberConstructor;
515
- disabled: BooleanConstructor;
518
+ disabled: {
519
+ type: BooleanConstructor;
520
+ default: null;
521
+ };
516
522
  month: (StringConstructor | NumberConstructor)[];
517
523
  showAdjacentMonths: BooleanConstructor;
518
524
  weekdays: {
@@ -584,7 +590,7 @@ type VDatePicker = InstanceType<typeof VDatePicker>;
584
590
 
585
591
  declare const VDatePickerControls: {
586
592
  new (...args: any[]): vue.CreateComponentPublicInstance<{
587
- disabled: string | boolean | string[];
593
+ disabled: string | boolean | string[] | null;
588
594
  nextIcon: IconValue;
589
595
  prevIcon: IconValue;
590
596
  modeIcon: IconValue;
@@ -614,7 +620,7 @@ declare const VDatePickerControls: {
614
620
  'click:next': () => true;
615
621
  'click:text': () => true;
616
622
  }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
617
- disabled: string | boolean | string[];
623
+ disabled: string | boolean | string[] | null;
618
624
  nextIcon: IconValue;
619
625
  prevIcon: IconValue;
620
626
  modeIcon: IconValue;
@@ -639,7 +645,7 @@ declare const VDatePickerControls: {
639
645
  "onClick:text"?: (() => any) | undefined;
640
646
  }, {
641
647
  active: string | string[];
642
- disabled: string | boolean | string[];
648
+ disabled: string | boolean | string[] | null;
643
649
  nextIcon: IconValue;
644
650
  prevIcon: IconValue;
645
651
  modeIcon: IconValue;
@@ -654,7 +660,7 @@ declare const VDatePickerControls: {
654
660
  M: {};
655
661
  Defaults: {};
656
662
  }, {
657
- disabled: string | boolean | string[];
663
+ disabled: string | boolean | string[] | null;
658
664
  nextIcon: IconValue;
659
665
  prevIcon: IconValue;
660
666
  modeIcon: IconValue;
@@ -679,7 +685,7 @@ declare const VDatePickerControls: {
679
685
  "onClick:text"?: (() => any) | undefined;
680
686
  }, {}, {}, {}, {}, {
681
687
  active: string | string[];
682
- disabled: string | boolean | string[];
688
+ disabled: string | boolean | string[] | null;
683
689
  nextIcon: IconValue;
684
690
  prevIcon: IconValue;
685
691
  modeIcon: IconValue;
@@ -689,7 +695,7 @@ declare const VDatePickerControls: {
689
695
  __isTeleport?: never;
690
696
  __isSuspense?: never;
691
697
  } & vue.ComponentOptionsBase<{
692
- disabled: string | boolean | string[];
698
+ disabled: string | boolean | string[] | null;
693
699
  nextIcon: IconValue;
694
700
  prevIcon: IconValue;
695
701
  modeIcon: IconValue;
@@ -720,7 +726,7 @@ declare const VDatePickerControls: {
720
726
  'click:text': () => true;
721
727
  }, string, {
722
728
  active: string | string[];
723
- disabled: string | boolean | string[];
729
+ disabled: string | boolean | string[] | null;
724
730
  nextIcon: IconValue;
725
731
  prevIcon: IconValue;
726
732
  modeIcon: IconValue;
@@ -733,8 +739,8 @@ declare const VDatePickerControls: {
733
739
  default: undefined;
734
740
  };
735
741
  disabled: {
736
- type: PropType<boolean | string | string[]>;
737
- default: boolean;
742
+ type: PropType<boolean | string | string[] | null>;
743
+ default: null;
738
744
  };
739
745
  nextIcon: {
740
746
  type: PropType<IconValue>;
@@ -759,8 +765,8 @@ declare const VDatePickerControls: {
759
765
  default: undefined;
760
766
  };
761
767
  disabled: {
762
- type: PropType<boolean | string | string[]>;
763
- default: boolean;
768
+ type: PropType<boolean | string | string[] | null>;
769
+ default: null;
764
770
  };
765
771
  nextIcon: {
766
772
  type: PropType<IconValue>;
@@ -1185,7 +1191,10 @@ declare const VDatePickerMonth: {
1185
1191
  }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
1186
1192
  max: PropType<unknown>;
1187
1193
  min: PropType<unknown>;
1188
- disabled: BooleanConstructor;
1194
+ disabled: {
1195
+ type: BooleanConstructor;
1196
+ default: null;
1197
+ };
1189
1198
  month: (StringConstructor | NumberConstructor)[];
1190
1199
  year: (StringConstructor | NumberConstructor)[];
1191
1200
  modelValue: PropType<unknown[]>;
@@ -1230,7 +1239,10 @@ declare const VDatePickerMonth: {
1230
1239
  }, vue.ExtractPropTypes<{
1231
1240
  max: PropType<unknown>;
1232
1241
  min: PropType<unknown>;
1233
- disabled: BooleanConstructor;
1242
+ disabled: {
1243
+ type: BooleanConstructor;
1244
+ default: null;
1245
+ };
1234
1246
  month: (StringConstructor | NumberConstructor)[];
1235
1247
  year: (StringConstructor | NumberConstructor)[];
1236
1248
  modelValue: PropType<unknown[]>;
@@ -1,4 +1,4 @@
1
- import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
2
2
  // Styles
3
3
  import "./VDialog.css";
4
4
 
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, createTextVNode as _createTextVNode } from "vue";
1
+ import { createTextVNode as _createTextVNode, createVNode as _createVNode } from "vue";
2
2
  /// <reference types="../../../../types/cypress" />
3
3
  // Components
4
4
  import { VDialog } from "../index.mjs"; // Utilities