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.
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +4267 -3919
- package/dist/json/importMap-labs.json +28 -24
- package/dist/json/importMap.json +164 -164
- package/dist/json/tags.json +92 -0
- package/dist/json/web-types.json +8380 -7153
- package/dist/vuetify-labs.cjs +374 -79
- package/dist/vuetify-labs.css +3864 -3836
- package/dist/vuetify-labs.d.ts +5818 -1810
- package/dist/vuetify-labs.esm.js +374 -79
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +374 -79
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +53 -30
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3556 -3531
- package/dist/vuetify.d.ts +4121 -1210
- package/dist/vuetify.esm.js +53 -30
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +53 -30
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +30 -27
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +795 -77
- package/lib/components/VBadge/VBadge.d.ts +22 -46
- package/lib/components/VBottomNavigation/VBottomNavigation.d.ts +6 -6
- package/lib/components/VBottomSheet/VBottomSheet.css +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.d.ts +1434 -80
- package/lib/components/VBottomSheet/VBottomSheet.sass +1 -1
- package/lib/components/VBtn/VBtn.css +25 -0
- package/lib/components/VBtn/VBtn.sass +9 -0
- package/lib/components/VBtn/_variables.scss +1 -0
- package/lib/components/VCombobox/VCombobox.d.ts +795 -77
- package/lib/components/VCounter/VCounter.d.ts +22 -46
- package/lib/components/VDataIterator/VDataIterator.d.ts +22 -46
- package/lib/components/VDataTable/VDataTable.d.ts +110 -110
- package/lib/components/VDataTable/VDataTableHeaders.js +1 -2
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +62 -189
- package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +62 -189
- package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
- package/lib/components/VDataTable/composables/headers.d.ts +75 -75
- package/lib/components/VDataTable/composables/select.js +1 -1
- package/lib/components/VDataTable/composables/select.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.d.ts +3 -3
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +6 -6
- package/lib/components/VDialog/VDialog.d.ts +1048 -146
- package/lib/components/VDialog/VDialog.js +1 -1
- package/lib/components/VDialog/VDialog.js.map +1 -1
- package/lib/components/VFab/VFab.d.ts +22 -46
- package/lib/components/VFileInput/VFileInput.css +4 -0
- package/lib/components/VFileInput/VFileInput.js +21 -3
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +4 -0
- package/lib/components/VImg/VImg.d.ts +22 -49
- package/lib/components/VLazy/VLazy.d.ts +22 -46
- package/lib/components/VMenu/VMenu.d.ts +1048 -146
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VMessages/VMessages.d.ts +22 -46
- package/lib/components/VNumberInput/VNumberInput.d.ts +3 -3
- package/lib/components/VOverlay/VOverlay.d.ts +22 -49
- package/lib/components/VOverlay/locationStrategies.js +1 -1
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/components/VSelect/VSelect.d.ts +1235 -93
- package/lib/components/VSnackbar/VSnackbar.d.ts +58 -109
- package/lib/components/VSnackbarQueue/VSnackbarQueue.d.ts +25 -47
- package/lib/components/VSnackbarQueue/VSnackbarQueue.js.map +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.d.ts +1434 -80
- package/lib/components/VTable/VTable.css +2 -6
- package/lib/components/VTable/VTable.sass +4 -22
- package/lib/components/VTabs/VTabs.d.ts +6 -6
- package/lib/components/VTextField/VTextField.js +5 -3
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.d.ts +58 -109
- package/lib/components/VTooltip/VTooltip.js +2 -2
- package/lib/components/VTooltip/VTooltip.js.map +1 -1
- package/lib/components/transitions/dialog-transition.js +3 -3
- package/lib/components/transitions/dialog-transition.js.map +1 -1
- package/lib/composables/dateFormat.d.ts +24 -0
- package/lib/composables/dateFormat.js +112 -0
- package/lib/composables/dateFormat.js.map +1 -0
- package/lib/composables/transition.d.ts +10 -20
- package/lib/composables/transition.js +15 -12
- package/lib/composables/transition.js.map +1 -1
- package/lib/entry-bundler.d.ts +6 -6
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +113 -149
- package/lib/framework.js +1 -1
- package/lib/iconsets/mdi.js +2 -1
- package/lib/iconsets/mdi.js.map +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +3 -3
- package/lib/labs/VCalendar/VCalendarDay.d.ts +3 -3
- package/lib/labs/VCalendar/VCalendarInterval.d.ts +3 -3
- package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +3 -3
- package/lib/labs/VColorInput/VColorInput.css +4 -0
- package/lib/labs/VColorInput/VColorInput.d.ts +1767 -0
- package/lib/labs/VColorInput/VColorInput.js +129 -0
- package/lib/labs/VColorInput/VColorInput.js.map +1 -0
- package/lib/labs/VColorInput/VColorInput.sass +7 -0
- package/lib/labs/VColorInput/_variables.scss +2 -0
- package/lib/labs/VColorInput/index.d.ts +1 -0
- package/lib/labs/VColorInput/index.js +2 -0
- package/lib/labs/VColorInput/index.js.map +1 -0
- package/lib/labs/VDateInput/VDateInput.d.ts +96 -34
- package/lib/labs/VDateInput/VDateInput.js +71 -17
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.js +19 -31
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js +2 -2
- package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
- package/lib/labs/components.d.ts +1 -0
- package/lib/labs/components.js +1 -0
- package/lib/labs/components.js.map +1 -1
- package/lib/util/helpers.js.map +1 -1
- 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":"AAAA;AAAA,SACSA,OAAO,0BAEhB;AACA,SAASC,KAAK,QAAQ,KAAK;AAAA,SAClBC,WAAW,EAAEC,YAAY,4BAElC;AAGA;AAKA,MAAMC,cAAc,CAAC;EACnBC,WAAWA,CACOC,KAAa;EAAE;EACfC,SAAiB,CAAC;EAAA,EAClC;IAAA,KAFgBD,KAAa,GAAbA,KAAa;IAAA,KACbC,SAAiB,GAAjBA,SAAiB;EAC/B;EAEJ,IAAIC,MAAMA,CAAA,EAAI;IACZ,OAAO,IAAI,CAACF,KAAK,CAACG,KAAK,CAAC,EAAE,CAAC,CACxBC,GAAG,CAACC,IAAI,IAAI,GAAGA,IAAI,GAAGA,IAAI,EAAE,CAAC,CAC7BC,IAAI,CAAC,IAAI,CAACL,SAAS,CAAC,CACpBM,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;EAC1B;EAEA,OAAOC,WAAWA,CAAEC,CAAM,EAAE;IAC1B,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE,OAAO,KAAK;IACvC,MAAMC,SAAS,GAAGD,CAAC,CAACE,WAAW,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAACC,KAAK,CAACP,IAAI,IAAIK,SAAS,CAACG,QAAQ,CAACR,IAAI,CAAC,CAAC,IAC5D,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAACS,IAAI,CAACT,IAAI,IAAII,CAAC,CAACI,QAAQ,CAACR,IAAI,CAAC,CAAC;EAClD;EAEA,OAAOU,KAAKA,CAAEN,CAAS,EAAE;IACvB,IAAI,CAACX,cAAc,CAACU,WAAW,CAACC,CAAC,CAAC,EAAE;MAClC,MAAM,IAAIO,KAAK,CAAC,IAAIP,CAAC,mDAAmD,CAAC;IAC3E;IACA,MAAMT,KAAK,GAAGS,CAAC,CAACE,WAAW,CAAC,CAAC,CAACR,KAAK,CAAC,EAAE,CAAC,CACpCc,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,EAAEC,GAAG,KAAK,KAAK,CAACP,QAAQ,CAACK,CAAC,CAAC,IAAIE,GAAG,CAACC,OAAO,CAACH,CAAC,CAAC,KAAKC,CAAC,CAAC,CAChEb,IAAI,CAAC,EAAE,CAAC;IACX,MAAML,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAACqB,IAAI,CAACjB,IAAI,IAAII,CAAC,CAACI,QAAQ,CAACR,IAAI,CAAC,CAAE;IACjE,OAAO,IAAIP,cAAc,CAACE,KAAK,EAAEC,SAAS,CAAC;EAC7C;AACF;AAEA,OAAO,MAAMsB,mBAAmB,GAAG1B,YAAY,CAAC;EAC9C2B,WAAW,EAAE;IACXC,IAAI,EAAEC,MAAM;IACZC,SAAS,EAAGlB,CAAS,IAAK,CAACA,CAAC,IAAIX,cAAc,CAACU,WAAW,CAACC,CAAC;EAC9D;AACF,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,SAASmB,aAAaA,CAAEC,KAAsB,EAAEC,MAAmB,EAAE;EAC1E,MAAMC,OAAO,GAAGrC,OAAO,CAAC,CAAC;EAEzB,SAASsC,eAAeA,CAAA,EAAI;IAC1B,MAAMC,mBAAmB,GAAGH,MAAM,CAACI,KAAK,IAAI,OAAO;IACnD,MAAMC,gBAAgB,GAAGC,IAAI,CAACC,cAAc,CAACJ,mBAAmB,EAAE;MAAEK,IAAI,EAAE,SAAS;MAAEC,KAAK,EAAE,SAAS;MAAEC,GAAG,EAAE;IAAU,CAAC,CAAC,CACrHtC,MAAM,CAAC6B,OAAO,CAACU,QAAQ,CAACV,OAAO,CAACW,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CACxDnC,OAAO,CAAC,0BAA0B,EAAE,IAAI,CAAC,CACzCA,OAAO,CAAC,0BAA0B,EAAE,IAAI,CAAC,CACzCA,OAAO,CAAC,2CAA2C,EAAE,MAAM,CAAC,CAC5DA,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAC1BA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAErB,IAAI,CAACT,cAAc,CAACU,WAAW,CAAC2B,gBAAgB,CAAC,EAAE;MACjDvC,WAAW,CAAC,qCAAqCqC,mBAAmB,kBAAkBE,gBAAgB,GAAG,CAAC;MAC1G,OAAO,YAAY;IACrB;IAEA,OAAOA,gBAAgB;EACzB;EAEA,MAAMQ,aAAa,GAAGhD,KAAK,CAAC,MAAM;IAChC,OAAOG,cAAc,CAACU,WAAW,CAACqB,KAAK,CAACL,WAAW,CAAC,GAChD1B,cAAc,CAACiB,KAAK,CAACc,KAAK,CAACL,WAAY,CAAC,GACxC1B,cAAc,CAACiB,KAAK,CAACiB,eAAe,CAAC,CAAC,CAAC;EAC7C,CAAC,CAAC;EAEF,SAASY,SAASA,CAAEC,UAAkB,EAAE;IACtC,SAASC,cAAcA,CAAEC,IAAY,EAAkC;MACrE,MAAMC,KAAK,GAAGD,IAAI,CAACE,IAAI,CAAC,CAAC,CAAC9C,KAAK,CAACwC,aAAa,CAACT,KAAK,CAACjC,SAAS,CAAC;MAE9D,OAAO;QACLiD,CAAC,EAAEC,MAAM,CAACH,KAAK,CAACL,aAAa,CAACT,KAAK,CAAClC,KAAK,CAACqB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD+B,CAAC,EAAED,MAAM,CAACH,KAAK,CAACL,aAAa,CAACT,KAAK,CAAClC,KAAK,CAACqB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACxDgC,CAAC,EAAEF,MAAM,CAACH,KAAK,CAACL,aAAa,CAACT,KAAK,CAAClC,KAAK,CAACqB,OAAO,CAAC,GAAG,CAAC,CAAC;MACzD,CAAC;IACH;IAEA,SAASiC,iBAAiBA,CAAEC,SAAiC,EAAE;MAC7D,MAAM;QAAEL,CAAC,EAAEZ,IAAI;QAAEc,CAAC,EAAEb,KAAK;QAAEc,CAAC,EAAEb;MAAI,CAAC,GAAGe,SAAS;MAC/C,IAAI,CAACjB,IAAI,IAAI,CAACC,KAAK,IAAI,CAACC,GAAG,EAAE,OAAO,IAAI;MACxC,IAAID,KAAK,GAAG,CAAC,IAAIA,KAAK,GAAG,EAAE,EAAE,OAAO,IAAI;MACxC,IAAIC,GAAG,GAAG,CAAC,IAAIA,GAAG,GAAG,EAAE,EAAE,OAAO,IAAI;MAEpC,OAAO;QAAEF,IAAI,EAAEkB,WAAW,CAAClB,IAAI,CAAC;QAAEC,KAAK;QAAEC;MAAI,CAAC;IAChD;IAEA,SAASgB,WAAWA,CAAElB,IAAY,EAAE;MAClC,MAAMmB,WAAW,GAAG1B,OAAO,CAAC2B,OAAO,CAAC3B,OAAO,CAAC4B,IAAI,CAAC,CAAC,CAAC;MACnD,IAAIrB,IAAI,GAAG,GAAG,IAAImB,WAAW,GAAG,GAAG,IAAI,EAAE,EAAE;QACzC,OAAOnB,IAAI;MACb;MAEA,MAAMsB,cAAc,GAAG,CAAC,EAAEH,WAAW,GAAG,GAAG,CAAC,GAAG,GAAG;MAElD,OAAOnB,IAAI,GAAG,EAAE,GACZsB,cAAc,GAAGtB,IAAI,GACpBsB,cAAc,GAAG,GAAG,GAAItB,IAAI;IACnC;IAEA,MAAMiB,SAAS,GAAGT,cAAc,CAACD,UAAU,CAAC;IAC5C,MAAMgB,cAAc,GAAGP,iBAAiB,CAACC,SAAS,CAAC;IAEnD,IAAI,CAACM,cAAc,EAAE,OAAO,IAAI;IAEhC,MAAM;MAAEvB,IAAI;MAAEC,KAAK;MAAEC;IAAI,CAAC,GAAGqB,cAAc;IAE3C,MAAMC,GAAG,GAAIrD,CAAS,IAAKiB,MAAM,CAACjB,CAAC,CAAC,CAACsD,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAErD,OAAOhC,OAAO,CAACW,QAAQ,CAAC,GAAGJ,IAAI,IAAIwB,GAAG,CAACvB,KAAK,CAAC,IAAIuB,GAAG,CAACtB,GAAG,CAAC,EAAE,CAAC;EAC9D;EAEA,SAASwB,OAAOA,CAAEjB,IAAY,EAAE;IAC9B,OAAO,CAAC,CAACH,SAAS,CAACG,IAAI,CAAC;EAC1B;EAEA,SAASkB,UAAUA,CAAE/B,KAAc,EAAE;IACnC,MAAMc,KAAK,GAAGjB,OAAO,CAACmC,KAAK,CAAChC,KAAK,CAAC,CAAC/B,KAAK,CAAC,GAAG,CAAC;IAE7C,OAAOwC,aAAa,CAACT,KAAK,CAAClC,KAAK,CAACG,KAAK,CAAC,EAAE,CAAC,CACvCC,GAAG,CAACC,IAAI,IAAI2C,KAAK,CAAC,KAAK,CAAC3B,OAAO,CAAChB,IAAI,CAAC,CAAC,CAAC,CACvCC,IAAI,CAACqC,aAAa,CAACT,KAAK,CAACjC,SAAS,CAAC;EACxC;EAEA,OAAO;IACL+D,OAAO;IACPpB,SAAS;IACTqB,UAAU;IACVE,YAAY,EAAExE,KAAK,CAAC,MAAMgD,aAAa,CAACT,KAAK,CAAChC,MAAM;EACtD,CAAC;AACH","ignoreList":[]}
|
|
@@ -1,34 +1,24 @@
|
|
|
1
|
-
import type { Component, FunctionalComponent,
|
|
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
|
-
|
|
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:
|
|
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
|
-
} =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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","
|
|
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":[]}
|
package/lib/entry-bundler.d.ts
CHANGED
|
@@ -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("./
|
|
10
|
-
display: import("./
|
|
11
|
-
theme: import("./
|
|
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("./
|
|
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("./
|
|
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("./
|
|
76
|
+
goTo: import("./types.js").GoToInstance;
|
|
77
77
|
};
|
|
78
78
|
version: string;
|
|
79
79
|
};
|
package/lib/entry-bundler.js
CHANGED
|
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
|
16
16
|
...options
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
|
-
export const version = "3.8.
|
|
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";
|