vuetify 3.7.12 → 3.7.14

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 (272) hide show
  1. package/dist/json/attributes.json +2442 -2430
  2. package/dist/json/importMap-labs.json +8 -8
  3. package/dist/json/importMap.json +146 -146
  4. package/dist/json/tags.json +4 -1
  5. package/dist/json/web-types.json +4796 -4506
  6. package/dist/vuetify-labs.css +2781 -2771
  7. package/dist/vuetify-labs.d.ts +427 -163
  8. package/dist/vuetify-labs.esm.js +224 -143
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +223 -142
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +4465 -4469
  13. package/dist/vuetify.d.ts +173 -152
  14. package/dist/vuetify.esm.js +103 -85
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +102 -84
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +1082 -1077
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/blueprints/index.d.mts +1 -1
  22. package/lib/blueprints/md1.d.mts +1 -1
  23. package/lib/blueprints/md2.d.mts +1 -1
  24. package/lib/blueprints/md3.d.mts +1 -1
  25. package/lib/components/VAlert/VAlert.mjs +1 -1
  26. package/lib/components/VAlert/index.d.mts +1 -1
  27. package/lib/components/VAppBar/VAppBar.mjs +1 -1
  28. package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -1
  29. package/lib/components/VAppBar/VAppBarTitle.mjs +1 -1
  30. package/lib/components/VAppBar/index.d.mts +5 -5
  31. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  32. package/lib/components/VAutocomplete/index.d.mts +4 -4
  33. package/lib/components/VAvatar/index.d.mts +1 -1
  34. package/lib/components/VBadge/VBadge.mjs +1 -1
  35. package/lib/components/VBadge/index.d.mts +1 -1
  36. package/lib/components/VBanner/VBanner.mjs +1 -1
  37. package/lib/components/VBanner/index.d.mts +1 -1
  38. package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -0
  39. package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -0
  40. package/lib/components/VBottomNavigation/index.d.mts +1 -1
  41. package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -1
  42. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +1 -1
  43. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +1 -1
  44. package/lib/components/VBreadcrumbs/index.d.mts +5 -5
  45. package/lib/components/VBtn/VBtn.mjs +1 -1
  46. package/lib/components/VBtn/index.d.mts +5 -5
  47. package/lib/components/VBtnGroup/VBtnGroup.mjs +1 -1
  48. package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -1
  49. package/lib/components/VBtnToggle/index.d.mts +1 -1
  50. package/lib/components/VCard/VCard.mjs +1 -1
  51. package/lib/components/VCard/VCardItem.mjs +1 -1
  52. package/lib/components/VCard/VCardSubtitle.mjs +1 -1
  53. package/lib/components/VCard/VCardText.mjs +1 -1
  54. package/lib/components/VCard/index.d.mts +5 -5
  55. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  56. package/lib/components/VCarousel/VCarouselItem.mjs +1 -1
  57. package/lib/components/VCarousel/index.d.mts +1 -1
  58. package/lib/components/VCheckbox/VCheckbox.mjs +1 -1
  59. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -1
  60. package/lib/components/VCheckbox/index.d.mts +1 -1
  61. package/lib/components/VChip/VChip.mjs +1 -1
  62. package/lib/components/VChip/index.d.mts +5 -5
  63. package/lib/components/VChipGroup/VChipGroup.mjs +1 -1
  64. package/lib/components/VChipGroup/index.d.mts +1 -1
  65. package/lib/components/VColorPicker/VColorPicker.mjs +1 -1
  66. package/lib/components/VColorPicker/index.d.mts +10 -10
  67. package/lib/components/VCombobox/VCombobox.mjs +1 -1
  68. package/lib/components/VCombobox/index.d.mts +4 -4
  69. package/lib/components/VConfirmEdit/VConfirmEdit.mjs +1 -1
  70. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs +5 -5
  71. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs.map +1 -1
  72. package/lib/components/VConfirmEdit/index.d.mts +1 -1
  73. package/lib/components/VCounter/VCounter.mjs +1 -1
  74. package/lib/components/VDataIterator/index.d.mts +1 -1
  75. package/lib/components/VDataTable/VDataTable.mjs +1 -1
  76. package/lib/components/VDataTable/VDataTableFooter.mjs +1 -1
  77. package/lib/components/VDataTable/VDataTableGroupHeaderRow.mjs +1 -1
  78. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  79. package/lib/components/VDataTable/VDataTableRow.mjs +1 -1
  80. package/lib/components/VDataTable/VDataTableRows.mjs +1 -1
  81. package/lib/components/VDataTable/VDataTableServer.mjs +1 -1
  82. package/lib/components/VDataTable/VDataTableVirtual.mjs +1 -1
  83. package/lib/components/VDataTable/composables/sort.mjs +12 -8
  84. package/lib/components/VDataTable/composables/sort.mjs.map +1 -1
  85. package/lib/components/VDataTable/index.d.mts +1 -1
  86. package/lib/components/VDatePicker/VDatePicker.mjs +20 -11
  87. package/lib/components/VDatePicker/VDatePicker.mjs.map +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.css +0 -1
  108. package/lib/components/VFileInput/VFileInput.mjs +13 -4
  109. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  110. package/lib/components/VFileInput/VFileInput.sass +0 -1
  111. package/lib/components/VFileInput/index.d.mts +4 -4
  112. package/lib/components/VFooter/VFooter.mjs +1 -1
  113. package/lib/components/VGrid/VContainer.mjs +1 -1
  114. package/lib/components/VIcon/index.d.mts +1 -1
  115. package/lib/components/VImg/VImg.mjs +1 -1
  116. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  117. package/lib/components/VInput/VInput.mjs +3 -3
  118. package/lib/components/VInput/VInput.mjs.map +1 -1
  119. package/lib/components/VInput/index.d.mts +1 -1
  120. package/lib/components/VItemGroup/index.d.mts +1 -1
  121. package/lib/components/VLazy/VLazy.mjs +1 -1
  122. package/lib/components/VList/VList.mjs +2 -2
  123. package/lib/components/VList/VList.mjs.map +1 -1
  124. package/lib/components/VList/VListChildren.mjs +1 -1
  125. package/lib/components/VList/VListGroup.mjs +1 -1
  126. package/lib/components/VList/VListItem.mjs +3 -2
  127. package/lib/components/VList/VListItem.mjs.map +1 -1
  128. package/lib/components/VList/VListItemAction.mjs +1 -1
  129. package/lib/components/VList/VListItemMedia.mjs +1 -1
  130. package/lib/components/VList/VListItemSubtitle.mjs +1 -1
  131. package/lib/components/VList/index.d.mts +17 -5
  132. package/lib/components/VMenu/VMenu.mjs +1 -1
  133. package/lib/components/VMenu/index.d.mts +3 -3
  134. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +0 -4
  135. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +3 -6
  136. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  137. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -5
  138. package/lib/components/VOtpInput/VOtpInput.mjs +3 -3
  139. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  140. package/lib/components/VOverlay/VOverlay.mjs +1 -1
  141. package/lib/components/VPagination/VPagination.mjs +1 -1
  142. package/lib/components/VPagination/index.d.mts +1 -1
  143. package/lib/components/VParallax/VParallax.mjs +1 -1
  144. package/lib/components/VRadio/VRadio.mjs +1 -1
  145. package/lib/components/VRadio/index.d.mts +1 -1
  146. package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -1
  147. package/lib/components/VRadioGroup/index.d.mts +1 -1
  148. package/lib/components/VRangeSlider/VRangeSlider.mjs +1 -1
  149. package/lib/components/VRating/VRating.mjs +1 -1
  150. package/lib/components/VRating/index.d.mts +1 -1
  151. package/lib/components/VSelect/VSelect.mjs +1 -1
  152. package/lib/components/VSelect/index.d.mts +4 -4
  153. package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -1
  154. package/lib/components/VSelectionControl/index.d.mts +1 -1
  155. package/lib/components/VSelectionControlGroup/index.d.mts +1 -1
  156. package/lib/components/VSheet/VSheet.mjs +1 -1
  157. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +1 -1
  158. package/lib/components/VSlideGroup/index.d.mts +1 -1
  159. package/lib/components/VSlider/VSlider.mjs +1 -1
  160. package/lib/components/VSlider/VSliderThumb.mjs +1 -1
  161. package/lib/components/VSnackbar/VSnackbar.mjs +1 -1
  162. package/lib/components/VSnackbar/index.d.mts +3 -3
  163. package/lib/components/VSparkline/VBarline.mjs +1 -2
  164. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  165. package/lib/components/VSparkline/VSparkline.mjs +1 -1
  166. package/lib/components/VSparkline/VTrendline.mjs +1 -2
  167. package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
  168. package/lib/components/VSpeedDial/VSpeedDial.mjs +1 -1
  169. package/lib/components/VStepper/VStepper.mjs +3 -3
  170. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  171. package/lib/components/VStepper/VStepperItem.mjs +1 -1
  172. package/lib/components/VStepper/VStepperWindow.mjs +1 -1
  173. package/lib/components/VStepper/VStepperWindowItem.mjs +1 -1
  174. package/lib/components/VStepper/index.d.mts +1 -1
  175. package/lib/components/VSwitch/VSwitch.mjs +1 -1
  176. package/lib/components/VSwitch/index.d.mts +1 -1
  177. package/lib/components/VSystemBar/VSystemBar.mjs +1 -1
  178. package/lib/components/VTabs/VTab.mjs +1 -1
  179. package/lib/components/VTabs/VTabs.mjs +1 -1
  180. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  181. package/lib/components/VTabs/VTabsWindow.mjs +1 -1
  182. package/lib/components/VTabs/VTabsWindowItem.mjs +1 -1
  183. package/lib/components/VTabs/index.d.mts +21 -21
  184. package/lib/components/VTextField/VTextField.mjs +1 -1
  185. package/lib/components/VTextField/index.d.mts +7 -7
  186. package/lib/components/VTextarea/VTextarea.mjs +1 -1
  187. package/lib/components/VTextarea/index.d.mts +4 -4
  188. package/lib/components/VTimeline/VTimeline.mjs +3 -3
  189. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  190. package/lib/components/VTimeline/VTimelineDivider.mjs +1 -1
  191. package/lib/components/VTimeline/VTimelineItem.mjs +1 -1
  192. package/lib/components/VTimeline/index.d.mts +1 -1
  193. package/lib/components/VToolbar/VToolbar.mjs +1 -1
  194. package/lib/components/VTooltip/VTooltip.mjs +1 -1
  195. package/lib/components/VTooltip/index.d.mts +3 -3
  196. package/lib/components/VValidation/index.d.mts +1 -1
  197. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +1 -1
  198. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +1 -1
  199. package/lib/components/VVirtualScroll/index.d.mts +1 -1
  200. package/lib/components/VWindow/VWindow.mjs +1 -1
  201. package/lib/components/VWindow/VWindowItem.mjs +1 -1
  202. package/lib/components/VWindow/index.d.mts +1 -1
  203. package/lib/components/index.d.mts +127 -106
  204. package/lib/components/transitions/dialog-transition.mjs +1 -2
  205. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  206. package/lib/composables/calendar.mjs +4 -1
  207. package/lib/composables/calendar.mjs.map +1 -1
  208. package/lib/composables/date/adapters/vuetify.mjs +9 -21
  209. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  210. package/lib/composables/density.mjs +1 -1
  211. package/lib/composables/density.mjs.map +1 -1
  212. package/lib/composables/icons.mjs +1 -1
  213. package/lib/composables/list-items.mjs +2 -3
  214. package/lib/composables/list-items.mjs.map +1 -1
  215. package/lib/composables/nested/nested.mjs +16 -1
  216. package/lib/composables/nested/nested.mjs.map +1 -1
  217. package/lib/composables/variant.mjs +1 -1
  218. package/lib/entry-bundler.mjs +1 -1
  219. package/lib/framework.mjs +1 -1
  220. package/lib/iconsets/fa-svg.d.mts +1 -1
  221. package/lib/iconsets/fa.d.mts +1 -1
  222. package/lib/iconsets/fa4.d.mts +1 -1
  223. package/lib/iconsets/md.d.mts +1 -1
  224. package/lib/iconsets/mdi-svg.d.mts +1 -1
  225. package/lib/iconsets/mdi.d.mts +1 -1
  226. package/lib/index.d.mts +47 -47
  227. package/lib/labs/VCalendar/VCalendar.mjs +1 -1
  228. package/lib/labs/VCalendar/VCalendarDay.mjs +1 -1
  229. package/lib/labs/VCalendar/index.d.mts +8 -2
  230. package/lib/labs/VDateInput/VDateInput.mjs +4 -3
  231. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  232. package/lib/labs/VDateInput/index.d.mts +256 -3
  233. package/lib/labs/VFileUpload/VFileUpload.mjs +3 -3
  234. package/lib/labs/VFileUpload/VFileUpload.mjs.map +1 -1
  235. package/lib/labs/VFileUpload/VFileUploadItem.mjs +1 -1
  236. package/lib/labs/VFileUpload/index.d.mts +5 -5
  237. package/lib/labs/VNumberInput/VNumberInput.css +10 -2
  238. package/lib/labs/VNumberInput/VNumberInput.mjs +94 -36
  239. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  240. package/lib/labs/VNumberInput/VNumberInput.sass +12 -2
  241. package/lib/labs/VNumberInput/index.d.mts +59 -32
  242. package/lib/labs/VPicker/VPicker.mjs +1 -1
  243. package/lib/labs/VSnackbarQueue/VSnackbarQueue.mjs +1 -1
  244. package/lib/labs/VSnackbarQueue/index.d.mts +3 -3
  245. package/lib/labs/VStepperVertical/VStepperVertical.mjs +1 -1
  246. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs +1 -1
  247. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +1 -1
  248. package/lib/labs/VStepperVertical/index.d.mts +1 -1
  249. package/lib/labs/VTimePicker/VTimePicker.mjs +1 -1
  250. package/lib/labs/VTimePicker/VTimePickerControls.mjs +1 -1
  251. package/lib/labs/VTimePicker/VTimePickerControls.sass +16 -16
  252. package/lib/labs/VTimePicker/_variables.scss +12 -12
  253. package/lib/labs/VTreeview/VTreeview.mjs +7 -3
  254. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  255. package/lib/labs/VTreeview/VTreeviewChildren.mjs +6 -9
  256. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  257. package/lib/labs/VTreeview/VTreeviewGroup.mjs +1 -1
  258. package/lib/labs/VTreeview/VTreeviewItem.css +15 -9
  259. package/lib/labs/VTreeview/VTreeviewItem.mjs +14 -14
  260. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  261. package/lib/labs/VTreeview/VTreeviewItem.sass +16 -10
  262. package/lib/labs/VTreeview/_variables.scss +2 -5
  263. package/lib/labs/VTreeview/index.d.mts +14 -20
  264. package/lib/labs/components.d.mts +365 -122
  265. package/lib/locale/adapters/vue-i18n.mjs +0 -1
  266. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  267. package/lib/locale/ja.mjs +19 -19
  268. package/lib/locale/ja.mjs.map +1 -1
  269. package/lib/styles/tools/_functions.sass +1 -1
  270. package/lib/util/helpers.mjs +3 -9
  271. package/lib/util/helpers.mjs.map +1 -1
  272. package/package.json +17 -16
@@ -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
 
@@ -76,9 +76,26 @@ export const VDatePicker = genericComponent()({
76
76
  const model = useProxiedModel(props, 'modelValue', undefined, v => wrapInArray(v), v => props.multiple ? v : v[0]);
77
77
  const viewMode = useProxiedModel(props, 'viewMode');
78
78
  // const inputMode = useProxiedModel(props, 'inputMode')
79
+
80
+ const minDate = computed(() => {
81
+ const date = adapter.date(props.min);
82
+ return props.min && adapter.isValid(date) ? date : null;
83
+ });
84
+ const maxDate = computed(() => {
85
+ const date = adapter.date(props.max);
86
+ return props.max && adapter.isValid(date) ? date : null;
87
+ });
79
88
  const internal = computed(() => {
80
- const value = adapter.date(model.value?.[0]);
81
- return value && adapter.isValid(value) ? value : adapter.date();
89
+ const today = adapter.date();
90
+ let value = today;
91
+ if (model.value?.[0]) {
92
+ value = adapter.date(model.value[0]);
93
+ } else if (minDate.value && adapter.isBefore(today, minDate.value)) {
94
+ value = minDate.value;
95
+ } else if (maxDate.value && adapter.isAfter(today, maxDate.value)) {
96
+ value = maxDate.value;
97
+ }
98
+ return value && adapter.isValid(value) ? value : today;
82
99
  });
83
100
  const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));
84
101
  const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
@@ -98,14 +115,6 @@ export const VDatePicker = genericComponent()({
98
115
  });
99
116
  // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
100
117
  const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
101
- const minDate = computed(() => {
102
- const date = adapter.date(props.min);
103
- return props.min && adapter.isValid(date) ? date : null;
104
- });
105
- const maxDate = computed(() => {
106
- const date = adapter.date(props.max);
107
- return props.max && adapter.isValid(date) ? date : null;
108
- });
109
118
  const disabled = computed(() => {
110
119
  if (props.disabled) return true;
111
120
  const targets = [];
@@ -1 +1 @@
1
- {"version":3,"file":"VDatePicker.mjs","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerMonthsProps","VDatePickerMonths","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VDefaultsProvider","makeVPickerProps","VPicker","useDate","useLocale","useProxiedModel","computed","ref","shallowRef","watch","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDatePickerProps","header","type","String","default","weeksInMonth","title","modelValue","VDatePicker","name","props","emits","date","setup","_ref","emit","slots","adapter","t","model","undefined","v","multiple","viewMode","internal","value","isValid","month","Number","getMonth","startOfMonth","year","getYear","startOfYear","setMonth","isReversing","length","format","text","setDate","setYear","headerTransition","minDate","min","maxDate","max","disabled","targets","push","_date","addDays","isAfter","endOfMonth","onClickNext","onUpdateYear","onUpdateMonth","onClickPrev","onClickDate","onClickMonth","onClickYear","val","oldVal","arrBefore","arrAfter","before","after","newMonth","newYear","isBefore","pickerProps","filterProps","datePickerControlsProps","datePickerHeaderProps","datePickerMonthProps","datePickerMonthsProps","datePickerYearsProps","headerProps","transition","_createVNode","_mergeProps","showWeek","class","style","_Fragment","$event","actions"],"sources":["../../../src/components/VDatePicker/VDatePicker.tsx"],"sourcesContent":["// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerMonthsProps, VDatePickerMonths } from './VDatePickerMonths'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDatePickerSlots = Omit<VPickerSlots, 'header'> & {\n header: {\n header: string\n transition: string\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n // TODO: implement in v3.5\n // calendarIcon: {\n // type: String,\n // default: '$calendar',\n // },\n // keyboardIcon: {\n // type: String,\n // default: '$edit',\n // },\n // inputMode: {\n // type: String as PropType<'calendar' | 'keyboard'>,\n // default: 'calendar',\n // },\n // inputText: {\n // type: String,\n // default: '$vuetify.datePicker.input.placeholder',\n // },\n // inputPlaceholder: {\n // type: String,\n // default: 'dd/mm/yyyy',\n // },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps({\n weeksInMonth: 'static' as const,\n }),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n\n modelValue: null,\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<new <\n T,\n Multiple extends boolean | 'range' | number | (string & {}) = false,\n TModel = Multiple extends true | number | string\n ? T[]\n : T,\n> (\n props: {\n modelValue?: TModel\n 'onUpdate:modelValue'?: (value: TModel) => void\n multiple?: Multiple\n },\n slots: VDatePickerSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n // 'update:inputMode': (date: any) => true,\n 'update:viewMode': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => wrapInArray(v),\n v => props.multiple ? v : v[0],\n )\n\n const viewMode = useProxiedModel(props, 'viewMode')\n // const inputMode = useProxiedModel(props, 'inputMode')\n const internal = computed(() => {\n const value = adapter.date(model.value?.[0])\n\n return value && adapter.isValid(value) ? value : adapter.date()\n })\n\n const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))))\n const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))))\n\n const isReversing = shallowRef(false)\n const header = computed(() => {\n if (props.multiple && model.value.length > 1) {\n return t('$vuetify.datePicker.itemsSelected', model.value.length)\n }\n\n return (model.value[0] && adapter.isValid(model.value[0]))\n ? adapter.format(adapter.date(model.value[0]), 'normalDateWithWeekday')\n : t(props.header)\n })\n const text = computed(() => {\n let date = adapter.date()\n\n date = adapter.setDate(date, 1)\n date = adapter.setMonth(date, month.value)\n date = adapter.setYear(date, year.value)\n\n return adapter.format(date, 'monthAndYear')\n })\n // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n const minDate = computed(() => {\n const date = adapter.date(props.min)\n\n return props.min && adapter.isValid(date) ? date : null\n })\n const maxDate = computed(() => {\n const date = adapter.date(props.max)\n\n return props.max && adapter.isValid(date) ? date : null\n })\n const disabled = computed(() => {\n if (props.disabled) return true\n\n const targets = []\n\n if (viewMode.value !== 'month') {\n targets.push(...['prev', 'next'])\n } else {\n let _date = adapter.date()\n\n _date = adapter.startOfMonth(_date)\n _date = adapter.setMonth(_date, month.value)\n _date = adapter.setYear(_date, year.value)\n\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(_date), -1)\n\n adapter.isAfter(minDate.value, date) && targets.push('prev')\n }\n\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(_date), 1)\n\n adapter.isAfter(date, maxDate.value) && targets.push('next')\n }\n }\n\n return targets\n })\n\n // function onClickAppend () {\n // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n // }\n\n function onClickNext () {\n if (month.value < 11) {\n month.value++\n } else {\n year.value++\n month.value = 0\n onUpdateYear(year.value)\n }\n onUpdateMonth(month.value)\n }\n\n function onClickPrev () {\n if (month.value > 0) {\n month.value--\n } else {\n year.value--\n month.value = 11\n onUpdateYear(year.value)\n }\n onUpdateMonth(month.value)\n }\n\n function onClickDate () {\n viewMode.value = 'month'\n }\n\n function onClickMonth () {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months'\n }\n\n function onClickYear () {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year'\n }\n\n function onUpdateMonth (value: number) {\n if (viewMode.value === 'months') onClickMonth()\n\n emit('update:month', value)\n }\n\n function onUpdateYear (value: number) {\n if (viewMode.value === 'year') onClickYear()\n\n emit('update:year', value)\n }\n\n watch(model, (val, oldVal) => {\n const arrBefore = wrapInArray(oldVal)\n const arrAfter = wrapInArray(val)\n\n if (!arrAfter.length) return\n\n const before = adapter.date(arrBefore[arrBefore.length - 1])\n const after = adapter.date(arrAfter[arrAfter.length - 1])\n const newMonth = adapter.getMonth(after)\n const newYear = adapter.getYear(after)\n\n if (newMonth !== month.value) {\n month.value = newMonth\n onUpdateMonth(month.value)\n }\n\n if (newYear !== year.value) {\n year.value = newYear\n onUpdateYear(year.value)\n }\n\n isReversing.value = adapter.isBefore(before, after)\n })\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const datePickerControlsProps = VDatePickerControls.filterProps(props)\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props)\n const datePickerMonthProps = VDatePickerMonth.filterProps(props)\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue'])\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue'])\n\n const headerProps = {\n header: header.value,\n transition: headerTransition.value,\n }\n\n return (\n <VPicker\n { ...pickerProps }\n class={[\n 'v-date-picker',\n `v-date-picker--${viewMode.value}`,\n {\n 'v-date-picker--show-week': props.showWeek,\n },\n props.class,\n ]}\n style={ props.style }\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-date-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => slots.header ? (\n <VDefaultsProvider\n defaults={{\n VDatePickerHeader: { ...headerProps },\n }}\n >\n { slots.header?.(headerProps) }\n </VDefaultsProvider>\n ) : (\n <VDatePickerHeader\n key=\"header\"\n { ...datePickerHeaderProps }\n { ...headerProps }\n onClick={ viewMode.value !== 'month' ? onClickDate : undefined }\n v-slots={{\n ...slots,\n default: undefined,\n }}\n />\n ),\n default: () => (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n disabled={ disabled.value }\n text={ text.value }\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n onClick:month={ onClickMonth }\n onClick:year={ onClickYear }\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'months' ? (\n <VDatePickerMonths\n key=\"date-picker-months\"\n { ...datePickerMonthsProps }\n v-model={ month.value }\n onUpdate:modelValue={ onUpdateMonth }\n min={ minDate.value }\n max={ maxDate.value }\n year={ year.value }\n />\n ) : viewMode.value === 'year' ? (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model={ year.value }\n onUpdate:modelValue={ onUpdateYear }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ model.value }\n v-model:month={ month.value }\n v-model:year={ year.value }\n onUpdate:month={ onUpdateMonth }\n onUpdate:year={ onUpdateYear }\n min={ minDate.value }\n max={ maxDate.value }\n />\n )}\n </VFadeTransition>\n </>\n ),\n actions: slots.actions,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDatePicker.mjs","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerMonthsProps","VDatePickerMonths","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VDefaultsProvider","makeVPickerProps","VPicker","useDate","useLocale","useProxiedModel","computed","ref","shallowRef","watch","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDatePickerProps","header","type","String","default","weeksInMonth","title","modelValue","VDatePicker","name","props","emits","date","setup","_ref","emit","slots","adapter","t","model","undefined","v","multiple","viewMode","minDate","min","isValid","maxDate","max","internal","today","value","isBefore","isAfter","month","Number","getMonth","startOfMonth","year","getYear","startOfYear","setMonth","isReversing","length","format","text","setDate","setYear","headerTransition","disabled","targets","push","_date","addDays","endOfMonth","onClickNext","onUpdateYear","onUpdateMonth","onClickPrev","onClickDate","onClickMonth","onClickYear","val","oldVal","arrBefore","arrAfter","before","after","newMonth","newYear","pickerProps","filterProps","datePickerControlsProps","datePickerHeaderProps","datePickerMonthProps","datePickerMonthsProps","datePickerYearsProps","headerProps","transition","_createVNode","_mergeProps","showWeek","class","style","_Fragment","$event","actions"],"sources":["../../../src/components/VDatePicker/VDatePicker.tsx"],"sourcesContent":["// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerMonthsProps, VDatePickerMonths } from './VDatePickerMonths'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDatePickerSlots = Omit<VPickerSlots, 'header'> & {\n header: {\n header: string\n transition: string\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n // TODO: implement in v3.5\n // calendarIcon: {\n // type: String,\n // default: '$calendar',\n // },\n // keyboardIcon: {\n // type: String,\n // default: '$edit',\n // },\n // inputMode: {\n // type: String as PropType<'calendar' | 'keyboard'>,\n // default: 'calendar',\n // },\n // inputText: {\n // type: String,\n // default: '$vuetify.datePicker.input.placeholder',\n // },\n // inputPlaceholder: {\n // type: String,\n // default: 'dd/mm/yyyy',\n // },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps({\n weeksInMonth: 'static' as const,\n }),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n\n modelValue: null,\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<new <\n T,\n Multiple extends boolean | 'range' | number | (string & {}) = false,\n TModel = Multiple extends true | number | string\n ? T[]\n : T,\n> (\n props: {\n modelValue?: TModel\n 'onUpdate:modelValue'?: (value: TModel) => void\n multiple?: Multiple\n },\n slots: VDatePickerSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n // 'update:inputMode': (date: any) => true,\n 'update:viewMode': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => wrapInArray(v),\n v => props.multiple ? v : v[0],\n )\n\n const viewMode = useProxiedModel(props, 'viewMode')\n // const inputMode = useProxiedModel(props, 'inputMode')\n\n const minDate = computed(() => {\n const date = adapter.date(props.min)\n\n return props.min && adapter.isValid(date) ? date : null\n })\n const maxDate = computed(() => {\n const date = adapter.date(props.max)\n\n return props.max && adapter.isValid(date) ? date : null\n })\n\n const internal = computed(() => {\n const today = adapter.date()\n let value = today\n if (model.value?.[0]) {\n value = adapter.date(model.value[0])\n } else if (minDate.value && adapter.isBefore(today, minDate.value)) {\n value = minDate.value\n } else if (maxDate.value && adapter.isAfter(today, maxDate.value)) {\n value = maxDate.value\n }\n\n return value && adapter.isValid(value) ? value : today\n })\n\n const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))))\n const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))))\n\n const isReversing = shallowRef(false)\n const header = computed(() => {\n if (props.multiple && model.value.length > 1) {\n return t('$vuetify.datePicker.itemsSelected', model.value.length)\n }\n\n return (model.value[0] && adapter.isValid(model.value[0]))\n ? adapter.format(adapter.date(model.value[0]), 'normalDateWithWeekday')\n : t(props.header)\n })\n const text = computed(() => {\n let date = adapter.date()\n\n date = adapter.setDate(date, 1)\n date = adapter.setMonth(date, month.value)\n date = adapter.setYear(date, year.value)\n\n return adapter.format(date, 'monthAndYear')\n })\n // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n\n const disabled = computed(() => {\n if (props.disabled) return true\n\n const targets = []\n\n if (viewMode.value !== 'month') {\n targets.push(...['prev', 'next'])\n } else {\n let _date = adapter.date()\n\n _date = adapter.startOfMonth(_date)\n _date = adapter.setMonth(_date, month.value)\n _date = adapter.setYear(_date, year.value)\n\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(_date), -1)\n\n adapter.isAfter(minDate.value, date) && targets.push('prev')\n }\n\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(_date), 1)\n\n adapter.isAfter(date, maxDate.value) && targets.push('next')\n }\n }\n\n return targets\n })\n\n // function onClickAppend () {\n // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n // }\n\n function onClickNext () {\n if (month.value < 11) {\n month.value++\n } else {\n year.value++\n month.value = 0\n onUpdateYear(year.value)\n }\n onUpdateMonth(month.value)\n }\n\n function onClickPrev () {\n if (month.value > 0) {\n month.value--\n } else {\n year.value--\n month.value = 11\n onUpdateYear(year.value)\n }\n onUpdateMonth(month.value)\n }\n\n function onClickDate () {\n viewMode.value = 'month'\n }\n\n function onClickMonth () {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months'\n }\n\n function onClickYear () {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year'\n }\n\n function onUpdateMonth (value: number) {\n if (viewMode.value === 'months') onClickMonth()\n\n emit('update:month', value)\n }\n\n function onUpdateYear (value: number) {\n if (viewMode.value === 'year') onClickYear()\n\n emit('update:year', value)\n }\n\n watch(model, (val, oldVal) => {\n const arrBefore = wrapInArray(oldVal)\n const arrAfter = wrapInArray(val)\n\n if (!arrAfter.length) return\n\n const before = adapter.date(arrBefore[arrBefore.length - 1])\n const after = adapter.date(arrAfter[arrAfter.length - 1])\n const newMonth = adapter.getMonth(after)\n const newYear = adapter.getYear(after)\n\n if (newMonth !== month.value) {\n month.value = newMonth\n onUpdateMonth(month.value)\n }\n\n if (newYear !== year.value) {\n year.value = newYear\n onUpdateYear(year.value)\n }\n\n isReversing.value = adapter.isBefore(before, after)\n })\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const datePickerControlsProps = VDatePickerControls.filterProps(props)\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props)\n const datePickerMonthProps = VDatePickerMonth.filterProps(props)\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue'])\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue'])\n\n const headerProps = {\n header: header.value,\n transition: headerTransition.value,\n }\n\n return (\n <VPicker\n { ...pickerProps }\n class={[\n 'v-date-picker',\n `v-date-picker--${viewMode.value}`,\n {\n 'v-date-picker--show-week': props.showWeek,\n },\n props.class,\n ]}\n style={ props.style }\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-date-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => slots.header ? (\n <VDefaultsProvider\n defaults={{\n VDatePickerHeader: { ...headerProps },\n }}\n >\n { slots.header?.(headerProps) }\n </VDefaultsProvider>\n ) : (\n <VDatePickerHeader\n key=\"header\"\n { ...datePickerHeaderProps }\n { ...headerProps }\n onClick={ viewMode.value !== 'month' ? onClickDate : undefined }\n v-slots={{\n ...slots,\n default: undefined,\n }}\n />\n ),\n default: () => (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n disabled={ disabled.value }\n text={ text.value }\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n onClick:month={ onClickMonth }\n onClick:year={ onClickYear }\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'months' ? (\n <VDatePickerMonths\n key=\"date-picker-months\"\n { ...datePickerMonthsProps }\n v-model={ month.value }\n onUpdate:modelValue={ onUpdateMonth }\n min={ minDate.value }\n max={ maxDate.value }\n year={ year.value }\n />\n ) : viewMode.value === 'year' ? (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model={ year.value }\n onUpdate:modelValue={ onUpdateYear }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ model.value }\n v-model:month={ month.value }\n v-model:year={ year.value }\n onUpdate:month={ onUpdateMonth }\n onUpdate:year={ onUpdateYear }\n min={ minDate.value }\n max={ maxDate.value }\n />\n )}\n </VFadeTransition>\n </>\n ),\n actions: slots.actions,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":"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","ignoreList":[]}
@@ -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