vuetify 3.8.3 → 3.8.5

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 (117) hide show
  1. package/dist/_component-variables-labs.sass +1 -0
  2. package/dist/json/attributes.json +4267 -3919
  3. package/dist/json/importMap-labs.json +28 -24
  4. package/dist/json/importMap.json +164 -164
  5. package/dist/json/tags.json +92 -0
  6. package/dist/json/web-types.json +8380 -7153
  7. package/dist/vuetify-labs.cjs +374 -79
  8. package/dist/vuetify-labs.css +3864 -3836
  9. package/dist/vuetify-labs.d.ts +5818 -1810
  10. package/dist/vuetify-labs.esm.js +374 -79
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +374 -79
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +53 -30
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +3556 -3531
  17. package/dist/vuetify.d.ts +4121 -1210
  18. package/dist/vuetify.esm.js +53 -30
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +53 -30
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +30 -27
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAutocomplete/VAutocomplete.d.ts +795 -77
  26. package/lib/components/VBadge/VBadge.d.ts +22 -46
  27. package/lib/components/VBottomNavigation/VBottomNavigation.d.ts +6 -6
  28. package/lib/components/VBottomSheet/VBottomSheet.css +1 -1
  29. package/lib/components/VBottomSheet/VBottomSheet.d.ts +1434 -80
  30. package/lib/components/VBottomSheet/VBottomSheet.sass +1 -1
  31. package/lib/components/VBtn/VBtn.css +25 -0
  32. package/lib/components/VBtn/VBtn.sass +9 -0
  33. package/lib/components/VBtn/_variables.scss +1 -0
  34. package/lib/components/VCombobox/VCombobox.d.ts +795 -77
  35. package/lib/components/VCounter/VCounter.d.ts +22 -46
  36. package/lib/components/VDataIterator/VDataIterator.d.ts +22 -46
  37. package/lib/components/VDataTable/VDataTable.d.ts +110 -110
  38. package/lib/components/VDataTable/VDataTableHeaders.js +1 -2
  39. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  40. package/lib/components/VDataTable/VDataTableServer.d.ts +62 -189
  41. package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
  42. package/lib/components/VDataTable/VDataTableVirtual.d.ts +62 -189
  43. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  44. package/lib/components/VDataTable/composables/headers.d.ts +75 -75
  45. package/lib/components/VDataTable/composables/select.js +1 -1
  46. package/lib/components/VDataTable/composables/select.js.map +1 -1
  47. package/lib/components/VDatePicker/VDatePicker.d.ts +3 -3
  48. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +6 -6
  49. package/lib/components/VDialog/VDialog.d.ts +1048 -146
  50. package/lib/components/VDialog/VDialog.js +1 -1
  51. package/lib/components/VDialog/VDialog.js.map +1 -1
  52. package/lib/components/VFab/VFab.d.ts +22 -46
  53. package/lib/components/VFileInput/VFileInput.css +4 -0
  54. package/lib/components/VFileInput/VFileInput.js +21 -3
  55. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  56. package/lib/components/VFileInput/VFileInput.sass +4 -0
  57. package/lib/components/VImg/VImg.d.ts +22 -49
  58. package/lib/components/VLazy/VLazy.d.ts +22 -46
  59. package/lib/components/VMenu/VMenu.d.ts +1048 -146
  60. package/lib/components/VMenu/VMenu.js.map +1 -1
  61. package/lib/components/VMessages/VMessages.d.ts +22 -46
  62. package/lib/components/VNumberInput/VNumberInput.d.ts +3 -3
  63. package/lib/components/VOverlay/VOverlay.d.ts +22 -49
  64. package/lib/components/VOverlay/locationStrategies.js +1 -1
  65. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  66. package/lib/components/VSelect/VSelect.d.ts +1235 -93
  67. package/lib/components/VSnackbar/VSnackbar.d.ts +58 -109
  68. package/lib/components/VSnackbarQueue/VSnackbarQueue.d.ts +25 -47
  69. package/lib/components/VSnackbarQueue/VSnackbarQueue.js.map +1 -1
  70. package/lib/components/VSpeedDial/VSpeedDial.d.ts +1434 -80
  71. package/lib/components/VTable/VTable.css +2 -6
  72. package/lib/components/VTable/VTable.sass +4 -22
  73. package/lib/components/VTabs/VTabs.d.ts +6 -6
  74. package/lib/components/VTextField/VTextField.js +5 -3
  75. package/lib/components/VTextField/VTextField.js.map +1 -1
  76. package/lib/components/VTooltip/VTooltip.d.ts +58 -109
  77. package/lib/components/VTooltip/VTooltip.js +2 -2
  78. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  79. package/lib/components/transitions/dialog-transition.js +3 -3
  80. package/lib/components/transitions/dialog-transition.js.map +1 -1
  81. package/lib/composables/dateFormat.d.ts +24 -0
  82. package/lib/composables/dateFormat.js +112 -0
  83. package/lib/composables/dateFormat.js.map +1 -0
  84. package/lib/composables/transition.d.ts +10 -20
  85. package/lib/composables/transition.js +15 -12
  86. package/lib/composables/transition.js.map +1 -1
  87. package/lib/entry-bundler.d.ts +6 -6
  88. package/lib/entry-bundler.js +1 -1
  89. package/lib/framework.d.ts +113 -149
  90. package/lib/framework.js +1 -1
  91. package/lib/iconsets/mdi.js +2 -1
  92. package/lib/iconsets/mdi.js.map +1 -1
  93. package/lib/labs/VCalendar/VCalendar.d.ts +3 -3
  94. package/lib/labs/VCalendar/VCalendarDay.d.ts +3 -3
  95. package/lib/labs/VCalendar/VCalendarInterval.d.ts +3 -3
  96. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +3 -3
  97. package/lib/labs/VColorInput/VColorInput.css +4 -0
  98. package/lib/labs/VColorInput/VColorInput.d.ts +1767 -0
  99. package/lib/labs/VColorInput/VColorInput.js +129 -0
  100. package/lib/labs/VColorInput/VColorInput.js.map +1 -0
  101. package/lib/labs/VColorInput/VColorInput.sass +7 -0
  102. package/lib/labs/VColorInput/_variables.scss +2 -0
  103. package/lib/labs/VColorInput/index.d.ts +1 -0
  104. package/lib/labs/VColorInput/index.js +2 -0
  105. package/lib/labs/VColorInput/index.js.map +1 -0
  106. package/lib/labs/VDateInput/VDateInput.d.ts +96 -34
  107. package/lib/labs/VDateInput/VDateInput.js +71 -17
  108. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  109. package/lib/labs/VFileUpload/VFileUpload.js +19 -31
  110. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  111. package/lib/labs/VTimePicker/VTimePickerClock.js +2 -2
  112. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  113. package/lib/labs/components.d.ts +1 -0
  114. package/lib/labs/components.js +1 -0
  115. package/lib/labs/components.js.map +1 -1
  116. package/lib/util/helpers.js.map +1 -1
  117. package/package.json +7 -8
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-transition.js","names":["Transition","mergeProps","_mergeProps","createVNode","_createVNode","acceleratedEasing","animate","deceleratedEasing","genericComponent","nullifyTransforms","propsFactory","standardEasing","getTargetBox","makeVDialogTransitionProps","target","Object","Array","saved","WeakMap","VDialogTransition","name","props","setup","_ref","slots","functions","onBeforeEnter","el","style","pointerEvents","visibility","onEnter","done","Promise","resolve","requestAnimationFrame","dimensions","getDimensions","x","y","sx","sy","speed","set","animation","transform","opacity","duration","easing","getChildren","forEach","offset","finished","then","onAfterEnter","removeProperty","onBeforeLeave","onLeave","isArray","offsetParent","has","get","onAfterLeave","els","querySelector","children","targetBox","elBox","originX","originY","getComputedStyle","transformOrigin","split","map","v","parseFloat","anchorSide","anchorOffset","getPropertyValue","offsetX","left","width","offsetY","top","height","tsx","tsy","maxs","Math","max","asa","window","innerWidth","innerHeight","min"],"sources":["../../../src/components/transitions/dialog-transition.tsx"],"sourcesContent":["// Utilities\nimport { Transition } from 'vue'\nimport {\n acceleratedEasing,\n animate,\n deceleratedEasing,\n genericComponent,\n nullifyTransforms,\n propsFactory,\n standardEasing,\n} from '@/util'\nimport { getTargetBox } from '@/util/box'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDialogTransitionProps = propsFactory({\n target: [Object, Array] as PropType<HTMLElement | [x: number, y: number]>,\n}, 'v-dialog-transition')\n\nconst saved = new WeakMap<Element, Dimensions>()\n\nexport const VDialogTransition = genericComponent()({\n name: 'VDialogTransition',\n\n props: makeVDialogTransitionProps(),\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n ;(el as HTMLElement).style.visibility = 'hidden'\n },\n async onEnter (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => requestAnimationFrame(resolve))\n ;(el as HTMLElement).style.visibility = ''\n\n const dimensions = getDimensions(props.target!, el as HTMLElement)\n const { x, y, sx, sy, speed } = dimensions\n saved.set(el, dimensions)\n\n const animation = animate(el, [\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n {},\n ], {\n duration: 225 * speed,\n easing: deceleratedEasing,\n })\n getChildren(el)?.forEach(el => {\n animate(el, [\n { opacity: 0 },\n { opacity: 0, offset: 0.33 },\n {},\n ], {\n duration: 225 * 2 * speed,\n easing: standardEasing,\n })\n })\n animation.finished.then(() => done())\n },\n onAfterEnter (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n onBeforeLeave (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n },\n async onLeave (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n\n let dimensions\n if (!Array.isArray(props.target) && !props.target!.offsetParent && saved.has(el)) {\n dimensions = saved.get(el)!\n } else {\n dimensions = getDimensions(props.target!, el as HTMLElement)\n }\n const { x, y, sx, sy, speed } = dimensions\n\n const animation = animate(el, [\n {},\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n ], {\n duration: 125 * speed,\n easing: acceleratedEasing,\n })\n animation.finished.then(() => done())\n getChildren(el)?.forEach(el => {\n animate(el, [\n {},\n { opacity: 0, offset: 0.2 },\n { opacity: 0 },\n ], {\n duration: 125 * 2 * speed,\n easing: standardEasing,\n })\n })\n },\n onAfterLeave (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n }\n\n return () => {\n return props.target\n ? (\n <Transition\n name=\"dialog-transition\"\n { ...functions }\n css={ false }\n v-slots={ slots }\n />\n )\n : <Transition name=\"dialog-transition\" v-slots={ slots } />\n }\n },\n})\n\n/** Animatable children (card, sheet, list) */\nfunction getChildren (el: Element) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children\n return els && [...els]\n}\n\ntype Dimensions = {\n x: number\n y: number\n sx: number\n sy: number\n speed: number\n}\n\nfunction getDimensions (target: HTMLElement | [x: number, y: number], el: HTMLElement): Dimensions {\n const targetBox = getTargetBox(target)\n const elBox = nullifyTransforms(el)\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v))\n\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ')\n\n let offsetX = targetBox.left + targetBox.width / 2\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2\n }\n\n let offsetY = targetBox.top + targetBox.height / 2\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2\n }\n\n const tsx = targetBox.width / elBox.width\n const tsy = targetBox.height / elBox.height\n const maxs = Math.max(1, tsx, tsy)\n const sx = tsx / maxs || 0\n const sy = tsy / maxs || 0\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = (elBox.width * elBox.height) / (window.innerWidth * window.innerHeight)\n const speed = asa > 0.12\n ? Math.min(1.5, (asa - 0.12) * 10 + 1)\n : 1\n\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed,\n }\n}\n\nexport type VDialogTransition = InstanceType<typeof VDialogTransition>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"dialog-transition.js","names":["Transition","mergeProps","_mergeProps","createVNode","_createVNode","acceleratedEasing","animate","deceleratedEasing","genericComponent","nullifyTransforms","propsFactory","standardEasing","getTargetBox","makeVDialogTransitionProps","target","Object","Array","saved","WeakMap","VDialogTransition","name","props","setup","_ref","slots","functions","onBeforeEnter","el","style","pointerEvents","visibility","onEnter","done","Promise","resolve","requestAnimationFrame","dimensions","getDimensions","x","y","sx","sy","speed","set","animation","transform","opacity","duration","easing","getChildren","forEach","offset","finished","then","onAfterEnter","removeProperty","onBeforeLeave","onLeave","has","isArray","offsetParent","getClientRects","length","get","onAfterLeave","els","querySelector","children","targetBox","elBox","originX","originY","getComputedStyle","transformOrigin","split","map","v","parseFloat","anchorSide","anchorOffset","getPropertyValue","offsetX","left","width","offsetY","top","height","tsx","tsy","maxs","Math","max","asa","window","innerWidth","innerHeight","min"],"sources":["../../../src/components/transitions/dialog-transition.tsx"],"sourcesContent":["// Utilities\nimport { Transition } from 'vue'\nimport {\n acceleratedEasing,\n animate,\n deceleratedEasing,\n genericComponent,\n nullifyTransforms,\n propsFactory,\n standardEasing,\n} from '@/util'\nimport { getTargetBox } from '@/util/box'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDialogTransitionProps = propsFactory({\n target: [Object, Array] as PropType<HTMLElement | [x: number, y: number]>,\n}, 'v-dialog-transition')\n\nconst saved = new WeakMap<Element, Dimensions>()\n\nexport const VDialogTransition = genericComponent()({\n name: 'VDialogTransition',\n\n props: makeVDialogTransitionProps(),\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n ;(el as HTMLElement).style.visibility = 'hidden'\n },\n async onEnter (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => requestAnimationFrame(resolve))\n ;(el as HTMLElement).style.visibility = ''\n\n const dimensions = getDimensions(props.target!, el as HTMLElement)\n const { x, y, sx, sy, speed } = dimensions\n saved.set(el, dimensions)\n\n const animation = animate(el, [\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n {},\n ], {\n duration: 225 * speed,\n easing: deceleratedEasing,\n })\n getChildren(el)?.forEach(el => {\n animate(el, [\n { opacity: 0 },\n { opacity: 0, offset: 0.33 },\n {},\n ], {\n duration: 225 * 2 * speed,\n easing: standardEasing,\n })\n })\n animation.finished.then(() => done())\n },\n onAfterEnter (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n onBeforeLeave (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n },\n async onLeave (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n\n let dimensions\n if (\n !saved.has(el) ||\n Array.isArray(props.target) ||\n props.target!.offsetParent ||\n props.target!.getClientRects().length\n ) {\n dimensions = getDimensions(props.target!, el as HTMLElement)\n } else {\n dimensions = saved.get(el)!\n }\n const { x, y, sx, sy, speed } = dimensions\n\n const animation = animate(el, [\n {},\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n ], {\n duration: 125 * speed,\n easing: acceleratedEasing,\n })\n animation.finished.then(() => done())\n getChildren(el)?.forEach(el => {\n animate(el, [\n {},\n { opacity: 0, offset: 0.2 },\n { opacity: 0 },\n ], {\n duration: 125 * 2 * speed,\n easing: standardEasing,\n })\n })\n },\n onAfterLeave (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n }\n\n return () => {\n return props.target\n ? (\n <Transition\n name=\"dialog-transition\"\n { ...functions }\n css={ false }\n v-slots={ slots }\n />\n )\n : <Transition name=\"dialog-transition\" v-slots={ slots } />\n }\n },\n})\n\n/** Animatable children (card, sheet, list) */\nfunction getChildren (el: Element) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children\n return els && [...els]\n}\n\ntype Dimensions = {\n x: number\n y: number\n sx: number\n sy: number\n speed: number\n}\n\nfunction getDimensions (target: HTMLElement | [x: number, y: number], el: HTMLElement): Dimensions {\n const targetBox = getTargetBox(target)\n const elBox = nullifyTransforms(el)\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v))\n\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ')\n\n let offsetX = targetBox.left + targetBox.width / 2\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2\n }\n\n let offsetY = targetBox.top + targetBox.height / 2\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2\n }\n\n const tsx = targetBox.width / elBox.width\n const tsy = targetBox.height / elBox.height\n const maxs = Math.max(1, tsx, tsy)\n const sx = tsx / maxs || 0\n const sy = tsy / maxs || 0\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = (elBox.width * elBox.height) / (window.innerWidth * window.innerHeight)\n const speed = asa > 0.12\n ? Math.min(1.5, (asa - 0.12) * 10 + 1)\n : 1\n\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed,\n }\n}\n\nexport type VDialogTransition = InstanceType<typeof VDialogTransition>\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import type { Ref } from 'vue';
2
+ export interface DateFormatProps {
3
+ inputFormat?: string;
4
+ }
5
+ export declare const makeDateFormatProps: <Defaults extends {
6
+ inputFormat?: unknown;
7
+ } = {}>(defaults?: Defaults | undefined) => {
8
+ inputFormat: unknown extends Defaults["inputFormat"] ? {
9
+ type: StringConstructor;
10
+ validator: (v: string) => boolean;
11
+ } : Omit<{
12
+ type: StringConstructor;
13
+ validator: (v: string) => boolean;
14
+ }, "type" | "default"> & {
15
+ type: import("vue").PropType<unknown extends Defaults["inputFormat"] ? string : string | Defaults["inputFormat"]>;
16
+ default: unknown extends Defaults["inputFormat"] ? string : string | Defaults["inputFormat"];
17
+ };
18
+ };
19
+ export declare function useDateFormat(props: DateFormatProps, locale: Ref<string>): {
20
+ isValid: (text: string) => boolean;
21
+ parseDate: (dateString: string) => unknown;
22
+ formatDate: (value: unknown) => string;
23
+ parserFormat: Readonly<Ref<string, string>>;
24
+ };
@@ -0,0 +1,112 @@
1
+ // Composables
2
+ import { useDate } from "./date/date.js"; // Utilities
3
+ import { toRef } from 'vue';
4
+ import { consoleWarn, propsFactory } from "../util/index.js"; // Types
5
+ // Types
6
+ class DateFormatSpec {
7
+ constructor(order,
8
+ // mdy | dmy | ymd
9
+ separator // / | - | .
10
+ ) {
11
+ this.order = order;
12
+ this.separator = separator;
13
+ }
14
+ get format() {
15
+ return this.order.split('').map(sign => `${sign}${sign}`).join(this.separator).replace('yy', 'yyyy');
16
+ }
17
+ static canBeParsed(v) {
18
+ if (typeof v !== 'string') return false;
19
+ const lowercase = v.toLowerCase();
20
+ return ['y', 'm', 'd'].every(sign => lowercase.includes(sign)) && ['/', '-', '.'].some(sign => v.includes(sign));
21
+ }
22
+ static parse(v) {
23
+ if (!DateFormatSpec.canBeParsed(v)) {
24
+ throw new Error(`[${v}] cannot be parsed into date format specification`);
25
+ }
26
+ const order = v.toLowerCase().split('').filter((c, i, all) => 'dmy'.includes(c) && all.indexOf(c) === i).join('');
27
+ const separator = ['/', '-', '.'].find(sign => v.includes(sign));
28
+ return new DateFormatSpec(order, separator);
29
+ }
30
+ }
31
+ export const makeDateFormatProps = propsFactory({
32
+ inputFormat: {
33
+ type: String,
34
+ validator: v => !v || DateFormatSpec.canBeParsed(v)
35
+ }
36
+ }, 'date-format');
37
+ export function useDateFormat(props, locale) {
38
+ const adapter = useDate();
39
+ function inferFromLocale() {
40
+ const localeForDateFormat = locale.value ?? 'en-US';
41
+ const formatFromLocale = Intl.DateTimeFormat(localeForDateFormat, {
42
+ year: 'numeric',
43
+ month: '2-digit',
44
+ day: '2-digit'
45
+ }).format(adapter.toJsDate(adapter.parseISO('1999-12-07'))).replace(/(07)|(٠٧)|(٢٩)|(۱۶)|(০৭)/, 'dd').replace(/(12)|(١٢)|(٠٨)|(۰۹)|(১২)/, 'mm').replace(/(1999)|(2542)|(١٩٩٩)|(١٤٢٠)|(۱۳۷۸)|(১৯৯৯)/, 'yyyy').replace(/[^ymd\-/.]/g, '').replace(/\.$/, '');
46
+ if (!DateFormatSpec.canBeParsed(formatFromLocale)) {
47
+ consoleWarn(`Date format inferred from locale [${localeForDateFormat}] is invalid: [${formatFromLocale}]`);
48
+ return 'mm/dd/yyyy';
49
+ }
50
+ return formatFromLocale;
51
+ }
52
+ const currentFormat = toRef(() => {
53
+ return DateFormatSpec.canBeParsed(props.inputFormat) ? DateFormatSpec.parse(props.inputFormat) : DateFormatSpec.parse(inferFromLocale());
54
+ });
55
+ function parseDate(dateString) {
56
+ function parseDateParts(text) {
57
+ const parts = text.trim().split(currentFormat.value.separator);
58
+ return {
59
+ y: Number(parts[currentFormat.value.order.indexOf('y')]),
60
+ m: Number(parts[currentFormat.value.order.indexOf('m')]),
61
+ d: Number(parts[currentFormat.value.order.indexOf('d')])
62
+ };
63
+ }
64
+ function validateDateParts(dateParts) {
65
+ const {
66
+ y: year,
67
+ m: month,
68
+ d: day
69
+ } = dateParts;
70
+ if (!year || !month || !day) return null;
71
+ if (month < 1 || month > 12) return null;
72
+ if (day < 1 || day > 31) return null;
73
+ return {
74
+ year: autoFixYear(year),
75
+ month,
76
+ day
77
+ };
78
+ }
79
+ function autoFixYear(year) {
80
+ const currentYear = adapter.getYear(adapter.date());
81
+ if (year > 100 || currentYear % 100 >= 50) {
82
+ return year;
83
+ }
84
+ const currentCentury = ~~(currentYear / 100) * 100;
85
+ return year < 50 ? currentCentury + year : currentCentury - 100 + year;
86
+ }
87
+ const dateParts = parseDateParts(dateString);
88
+ const validatedParts = validateDateParts(dateParts);
89
+ if (!validatedParts) return null;
90
+ const {
91
+ year,
92
+ month,
93
+ day
94
+ } = validatedParts;
95
+ const pad = v => String(v).padStart(2, '0');
96
+ return adapter.parseISO(`${year}-${pad(month)}-${pad(day)}`);
97
+ }
98
+ function isValid(text) {
99
+ return !!parseDate(text);
100
+ }
101
+ function formatDate(value) {
102
+ const parts = adapter.toISO(value).split('-');
103
+ return currentFormat.value.order.split('').map(sign => parts['ymd'.indexOf(sign)]).join(currentFormat.value.separator);
104
+ }
105
+ return {
106
+ isValid,
107
+ parseDate,
108
+ formatDate,
109
+ parserFormat: toRef(() => currentFormat.value.format)
110
+ };
111
+ }
112
+ //# sourceMappingURL=dateFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateFormat.js","names":["useDate","toRef","consoleWarn","propsFactory","DateFormatSpec","constructor","order","separator","format","split","map","sign","join","replace","canBeParsed","v","lowercase","toLowerCase","every","includes","some","parse","Error","filter","c","i","all","indexOf","find","makeDateFormatProps","inputFormat","type","String","validator","useDateFormat","props","locale","adapter","inferFromLocale","localeForDateFormat","value","formatFromLocale","Intl","DateTimeFormat","year","month","day","toJsDate","parseISO","currentFormat","parseDate","dateString","parseDateParts","text","parts","trim","y","Number","m","d","validateDateParts","dateParts","autoFixYear","currentYear","getYear","date","currentCentury","validatedParts","pad","padStart","isValid","formatDate","toISO","parserFormat"],"sources":["../../src/composables/dateFormat.ts"],"sourcesContent":["// Composables\nimport { useDate } from '@/composables/date/date'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\n// Types\nexport interface DateFormatProps {\n inputFormat?: string\n}\n\nclass DateFormatSpec {\n constructor (\n public readonly order: string, // mdy | dmy | ymd\n public readonly separator: string // / | - | .\n ) { }\n\n get format () {\n return this.order.split('')\n .map(sign => `${sign}${sign}`)\n .join(this.separator)\n .replace('yy', 'yyyy')\n }\n\n static canBeParsed (v: any) {\n if (typeof v !== 'string') return false\n const lowercase = v.toLowerCase()\n return ['y', 'm', 'd'].every(sign => lowercase.includes(sign)) &&\n ['/', '-', '.'].some(sign => v.includes(sign))\n }\n\n static parse (v: string) {\n if (!DateFormatSpec.canBeParsed(v)) {\n throw new Error(`[${v}] cannot be parsed into date format specification`)\n }\n const order = v.toLowerCase().split('')\n .filter((c, i, all) => 'dmy'.includes(c) && all.indexOf(c) === i)\n .join('')\n const separator = ['/', '-', '.'].find(sign => v.includes(sign))!\n return new DateFormatSpec(order, separator)\n }\n}\n\nexport const makeDateFormatProps = propsFactory({\n inputFormat: {\n type: String,\n validator: (v: string) => !v || DateFormatSpec.canBeParsed(v),\n },\n}, 'date-format')\n\nexport function useDateFormat (props: DateFormatProps, locale: Ref<string>) {\n const adapter = useDate()\n\n function inferFromLocale () {\n const localeForDateFormat = locale.value ?? 'en-US'\n const formatFromLocale = Intl.DateTimeFormat(localeForDateFormat, { year: 'numeric', month: '2-digit', day: '2-digit' })\n .format(adapter.toJsDate(adapter.parseISO('1999-12-07')))\n .replace(/(07)|(٠٧)|(٢٩)|(۱۶)|(০৭)/, 'dd')\n .replace(/(12)|(١٢)|(٠٨)|(۰۹)|(১২)/, 'mm')\n .replace(/(1999)|(2542)|(١٩٩٩)|(١٤٢٠)|(۱۳۷۸)|(১৯৯৯)/, 'yyyy')\n .replace(/[^ymd\\-/.]/g, '')\n .replace(/\\.$/, '')\n\n if (!DateFormatSpec.canBeParsed(formatFromLocale)) {\n consoleWarn(`Date format inferred from locale [${localeForDateFormat}] is invalid: [${formatFromLocale}]`)\n return 'mm/dd/yyyy'\n }\n\n return formatFromLocale\n }\n\n const currentFormat = toRef(() => {\n return DateFormatSpec.canBeParsed(props.inputFormat)\n ? DateFormatSpec.parse(props.inputFormat!)\n : DateFormatSpec.parse(inferFromLocale())\n })\n\n function parseDate (dateString: string) {\n function parseDateParts (text: string): Record<'y' |'m' | 'd', number> {\n const parts = text.trim().split(currentFormat.value.separator)\n\n return {\n y: Number(parts[currentFormat.value.order.indexOf('y')]),\n m: Number(parts[currentFormat.value.order.indexOf('m')]),\n d: Number(parts[currentFormat.value.order.indexOf('d')]),\n }\n }\n\n function validateDateParts (dateParts: Record<string, number>) {\n const { y: year, m: month, d: day } = dateParts\n if (!year || !month || !day) return null\n if (month < 1 || month > 12) return null\n if (day < 1 || day > 31) return null\n\n return { year: autoFixYear(year), month, day }\n }\n\n function autoFixYear (year: number) {\n const currentYear = adapter.getYear(adapter.date())\n if (year > 100 || currentYear % 100 >= 50) {\n return year\n }\n\n const currentCentury = ~~(currentYear / 100) * 100\n\n return year < 50\n ? currentCentury + year\n : (currentCentury - 100) + year\n }\n\n const dateParts = parseDateParts(dateString)\n const validatedParts = validateDateParts(dateParts)\n\n if (!validatedParts) return null\n\n const { year, month, day } = validatedParts\n\n const pad = (v: number) => String(v).padStart(2, '0')\n\n return adapter.parseISO(`${year}-${pad(month)}-${pad(day)}`)\n }\n\n function isValid (text: string) {\n return !!parseDate(text)\n }\n\n function formatDate (value: unknown) {\n const parts = adapter.toISO(value).split('-')\n\n return currentFormat.value.order.split('')\n .map(sign => parts['ymd'.indexOf(sign)])\n .join(currentFormat.value.separator)\n }\n\n return {\n isValid,\n parseDate,\n formatDate,\n parserFormat: toRef(() => currentFormat.value.format),\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,34 +1,24 @@
1
- import type { Component, FunctionalComponent, PropType, TransitionProps } from 'vue';
1
+ import type { Component, FunctionalComponent, Prop, TransitionProps } from 'vue';
2
2
  export declare const makeTransitionProps: <Defaults extends {
3
3
  transition?: unknown;
4
4
  } = {}>(defaults?: Defaults | undefined) => {
5
- transition: unknown extends Defaults["transition"] ? {
6
- type: PropType<string | boolean | (TransitionProps & {
5
+ transition: unknown extends Defaults["transition"] ? Prop<string | boolean | (TransitionProps & {
6
+ component?: Component;
7
+ }) | null> : {
8
+ type: import("vue").PropType<unknown extends Defaults["transition"] ? string | boolean | (TransitionProps & {
7
9
  component?: Component;
8
- })>;
9
- default: string;
10
- validator: (val: unknown) => boolean;
11
- } : Omit<{
12
- type: PropType<string | boolean | (TransitionProps & {
10
+ }) | null : string | boolean | (TransitionProps & {
13
11
  component?: Component;
14
- })>;
15
- default: string;
16
- validator: (val: unknown) => boolean;
17
- }, "type" | "default"> & {
18
- type: PropType<unknown extends Defaults["transition"] ? string | boolean | (TransitionProps & {
19
- component?: Component;
20
- }) : string | boolean | (TransitionProps & {
21
- component?: Component;
22
- }) | Defaults["transition"]>;
12
+ }) | Defaults["transition"] | null>;
23
13
  default: unknown extends Defaults["transition"] ? string | boolean | (TransitionProps & {
24
14
  component?: Component;
25
- }) : NonNullable<string | boolean | (TransitionProps & {
15
+ }) | null : NonNullable<string | boolean | (TransitionProps & {
26
16
  component?: Component;
27
- })> | Defaults["transition"];
17
+ }) | null> | Defaults["transition"];
28
18
  };
29
19
  };
30
20
  interface MaybeTransitionProps extends TransitionProps {
31
- transition?: string | boolean | TransitionProps & {
21
+ transition?: null | string | boolean | TransitionProps & {
32
22
  component?: any;
33
23
  };
34
24
  disabled?: boolean;
@@ -1,9 +1,9 @@
1
1
  // Utilities
2
2
  import { h, mergeProps, Transition, TransitionGroup } from 'vue';
3
- import { propsFactory } from "../util/index.js"; // Types
3
+ import { isObject, propsFactory } from "../util/index.js"; // Types
4
4
  export const makeTransitionProps = propsFactory({
5
5
  transition: {
6
- type: [Boolean, String, Object],
6
+ type: null,
7
7
  default: 'fade-transition',
8
8
  validator: val => val !== true
9
9
  }
@@ -21,15 +21,18 @@ export const MaybeTransition = (props, _ref) => {
21
21
  const {
22
22
  component = group ? TransitionGroup : Transition,
23
23
  ...customProps
24
- } = typeof transition === 'object' ? transition : {};
25
- return h(component, mergeProps(typeof transition === 'string' ? {
26
- name: disabled ? '' : transition
27
- } : customProps, typeof transition === 'string' ? {} : Object.fromEntries(Object.entries({
28
- disabled,
29
- group
30
- }).filter(_ref2 => {
31
- let [_, v] = _ref2;
32
- return v !== undefined;
33
- })), rest), slots);
24
+ } = isObject(transition) ? transition : {};
25
+ let transitionProps;
26
+ if (isObject(transition)) {
27
+ transitionProps = mergeProps(customProps, JSON.parse(JSON.stringify({
28
+ disabled,
29
+ group
30
+ })), rest);
31
+ } else {
32
+ transitionProps = mergeProps({
33
+ name: disabled || !transition ? '' : transition
34
+ }, rest);
35
+ }
36
+ return h(component, transitionProps, slots);
34
37
  };
35
38
  //# sourceMappingURL=transition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transition.js","names":["h","mergeProps","Transition","TransitionGroup","propsFactory","makeTransitionProps","transition","type","Boolean","String","Object","default","validator","val","MaybeTransition","props","_ref","slots","disabled","group","rest","component","customProps","name","fromEntries","entries","filter","_ref2","_","v","undefined"],"sources":["../../src/composables/transition.ts"],"sourcesContent":["// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, PropType, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object] as PropType<string | boolean | TransitionProps & { component?: Component }>,\n default: 'fade-transition',\n validator: val => val !== true,\n },\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: string | boolean | TransitionProps & { component?: any }\n disabled?: boolean\n group?: boolean\n}\n\nexport const MaybeTransition: FunctionalComponent<MaybeTransitionProps> = (props, { slots }) => {\n const { transition, disabled, group, ...rest } = props\n\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = typeof transition === 'object' ? transition : {}\n\n return h(\n component,\n mergeProps(\n typeof transition === 'string'\n ? { name: disabled ? '' : transition }\n : customProps as any,\n typeof transition === 'string'\n ? {}\n : Object.fromEntries(Object.entries({ disabled, group }).filter(([_, v]) => v !== undefined)),\n rest as any,\n ),\n slots\n )\n}\n"],"mappings":"AAAA;AACA,SAASA,CAAC,EAAEC,UAAU,EAAEC,UAAU,EAAEC,eAAe,QAAQ,KAAK;AAAA,SACvDC,YAAY,4BAErB;AAGA,OAAO,MAAMC,mBAAmB,GAAGD,YAAY,CAAC;EAC9CE,UAAU,EAAE;IACVC,IAAI,EAAE,CAACC,OAAO,EAAEC,MAAM,EAAEC,MAAM,CAA6E;IAC3GC,OAAO,EAAE,iBAAiB;IAC1BC,SAAS,EAAEC,GAAG,IAAIA,GAAG,KAAK;EAC5B;AACF,CAAC,EAAE,YAAY,CAAC;AAQhB,OAAO,MAAMC,eAA0D,GAAGA,CAACC,KAAK,EAAAC,IAAA,KAAgB;EAAA,IAAd;IAAEC;EAAM,CAAC,GAAAD,IAAA;EACzF,MAAM;IAAEV,UAAU;IAAEY,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAEtD,MAAM;IACJM,SAAS,GAAGF,KAAK,GAAGhB,eAAe,GAAGD,UAAU;IAChD,GAAGoB;EACL,CAAC,GAAG,OAAOhB,UAAU,KAAK,QAAQ,GAAGA,UAAU,GAAG,CAAC,CAAC;EAEpD,OAAON,CAAC,CACNqB,SAAS,EACTpB,UAAU,CACR,OAAOK,UAAU,KAAK,QAAQ,GAC1B;IAAEiB,IAAI,EAAEL,QAAQ,GAAG,EAAE,GAAGZ;EAAW,CAAC,GACpCgB,WAAkB,EACtB,OAAOhB,UAAU,KAAK,QAAQ,GAC1B,CAAC,CAAC,GACFI,MAAM,CAACc,WAAW,CAACd,MAAM,CAACe,OAAO,CAAC;IAAEP,QAAQ;IAAEC;EAAM,CAAC,CAAC,CAACO,MAAM,CAACC,KAAA;IAAA,IAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAAF,KAAA;IAAA,OAAKE,CAAC,KAAKC,SAAS;EAAA,EAAC,CAAC,EAC/FV,IACF,CAAC,EACDH,KACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"transition.js","names":["h","mergeProps","Transition","TransitionGroup","isObject","propsFactory","makeTransitionProps","transition","type","default","validator","val","MaybeTransition","props","_ref","slots","disabled","group","rest","component","customProps","transitionProps","JSON","parse","stringify","name"],"sources":["../../src/composables/transition.ts"],"sourcesContent":["// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue'\nimport { isObject, propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, Prop, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: null,\n default: 'fade-transition',\n validator: val => val !== true,\n } as Prop<null | string | boolean | TransitionProps & { component?: Component }>,\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: null | string | boolean | TransitionProps & { component?: any }\n disabled?: boolean\n group?: boolean\n}\n\nexport const MaybeTransition: FunctionalComponent<MaybeTransitionProps> = (props, { slots }) => {\n const { transition, disabled, group, ...rest } = props\n\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = isObject(transition) ? transition : {}\n\n let transitionProps\n if (isObject(transition)) {\n transitionProps = mergeProps(\n customProps,\n JSON.parse(JSON.stringify({ disabled, group })),\n rest,\n )\n } else {\n transitionProps = mergeProps(\n { name: disabled || !transition ? '' : transition },\n rest,\n )\n }\n\n return h(\n component,\n transitionProps,\n slots\n )\n}\n"],"mappings":"AAAA;AACA,SAASA,CAAC,EAAEC,UAAU,EAAEC,UAAU,EAAEC,eAAe,QAAQ,KAAK;AAAA,SACvDC,QAAQ,EAAEC,YAAY,4BAE/B;AAGA,OAAO,MAAMC,mBAAmB,GAAGD,YAAY,CAAC;EAC9CE,UAAU,EAAE;IACVC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAE,iBAAiB;IAC1BC,SAAS,EAAEC,GAAG,IAAIA,GAAG,KAAK;EAC5B;AACF,CAAC,EAAE,YAAY,CAAC;AAQhB,OAAO,MAAMC,eAA0D,GAAGA,CAACC,KAAK,EAAAC,IAAA,KAAgB;EAAA,IAAd;IAAEC;EAAM,CAAC,GAAAD,IAAA;EACzF,MAAM;IAAEP,UAAU;IAAES,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAEtD,MAAM;IACJM,SAAS,GAAGF,KAAK,GAAGd,eAAe,GAAGD,UAAU;IAChD,GAAGkB;EACL,CAAC,GAAGhB,QAAQ,CAACG,UAAU,CAAC,GAAGA,UAAU,GAAG,CAAC,CAAC;EAE1C,IAAIc,eAAe;EACnB,IAAIjB,QAAQ,CAACG,UAAU,CAAC,EAAE;IACxBc,eAAe,GAAGpB,UAAU,CAC1BmB,WAAW,EACXE,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAAC;MAAER,QAAQ;MAAEC;IAAM,CAAC,CAAC,CAAC,EAC/CC,IACF,CAAC;EACH,CAAC,MAAM;IACLG,eAAe,GAAGpB,UAAU,CAC1B;MAAEwB,IAAI,EAAET,QAAQ,IAAI,CAACT,UAAU,GAAG,EAAE,GAAGA;IAAW,CAAC,EACnDW,IACF,CAAC;EACH;EAEA,OAAOlB,CAAC,CACNmB,SAAS,EACTE,eAAe,EACfN,KACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -6,9 +6,9 @@ export declare const createVuetify: {
6
6
  (options?: VuetifyOptions): {
7
7
  install: (app: import("vue").App) => void;
8
8
  unmount: () => void;
9
- defaults: import("vue").Ref<import("./framework.js").DefaultsInstance, import("./framework.js").DefaultsInstance>;
10
- display: import("./framework.js").DisplayInstance;
11
- theme: import("./framework.js").ThemeInstance & {
9
+ defaults: import("vue").Ref<import("./types.js").DefaultsInstance, import("./types.js").DefaultsInstance>;
10
+ display: import("./types.js").DisplayInstance;
11
+ theme: import("./types.js").ThemeInstance & {
12
12
  install: (app: import("vue").App) => void;
13
13
  };
14
14
  icons: import("./composables/icons.js").InternalIconOptions;
@@ -17,12 +17,12 @@ export declare const createVuetify: {
17
17
  rtl: import("vue").Ref<Record<string, boolean>>;
18
18
  rtlClasses: import("vue").Ref<string>;
19
19
  name: string;
20
- messages: import("vue").Ref<import("./framework.js").LocaleMessages>;
20
+ messages: import("vue").Ref<import("./types.js").LocaleMessages>;
21
21
  current: import("vue").Ref<string>;
22
22
  fallback: import("vue").Ref<string>;
23
23
  t: (key: string, ...params: unknown[]) => string;
24
24
  n: (value: number) => string;
25
- provide: (props: import("./framework.js").LocaleOptions) => import("./framework.js").LocaleInstance;
25
+ provide: (props: import("./types.js").LocaleOptions) => import("./types.js").LocaleInstance;
26
26
  };
27
27
  date: {
28
28
  options: import("./composables/date/date.js").InternalDateOptions;
@@ -73,7 +73,7 @@ export declare const createVuetify: {
73
73
  setMinutes: (date: unknown, minutes: number) => unknown;
74
74
  };
75
75
  };
76
- goTo: import("./framework.js").GoToInstance;
76
+ goTo: import("./types.js").GoToInstance;
77
77
  };
78
78
  version: string;
79
79
  };
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.8.3";
19
+ export const version = "3.8.5";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";