@vuetify/nightly 3.11.3-dev.2025-12-10 → 3.11.3-dev.2025-12-13
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/CHANGELOG.md +9 -3
- package/dist/json/attributes.json +3462 -3454
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +140 -140
- package/dist/json/tags.json +2 -0
- package/dist/json/web-types.json +6585 -6565
- package/dist/vuetify-labs.cjs +9 -6
- package/dist/vuetify-labs.css +5178 -5178
- package/dist/vuetify-labs.d.ts +77 -67
- package/dist/vuetify-labs.esm.js +9 -6
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +9 -6
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +5 -3
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4307 -4307
- package/dist/vuetify.d.ts +69 -53
- package/dist/vuetify.esm.js +5 -3
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +5 -3
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +5 -5
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.d.ts +13 -0
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +13 -0
- package/lib/components/VDatePicker/VDatePickerMonth.js +2 -0
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +53 -53
- package/lib/framework.js +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +13 -25
- package/lib/labs/VDateInput/VDateInput.js +4 -3
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/package.json +1 -1
|
@@ -24,7 +24,6 @@ export declare const makeVDateInputProps: <Defaults extends {
|
|
|
24
24
|
errorMessages?: unknown;
|
|
25
25
|
maxErrors?: unknown;
|
|
26
26
|
name?: unknown;
|
|
27
|
-
readonly?: unknown;
|
|
28
27
|
rules?: unknown;
|
|
29
28
|
validateOn?: unknown;
|
|
30
29
|
validationValue?: unknown;
|
|
@@ -112,6 +111,7 @@ export declare const makeVDateInputProps: <Defaults extends {
|
|
|
112
111
|
hideWeekdays?: unknown;
|
|
113
112
|
multiple?: unknown;
|
|
114
113
|
showWeek?: unknown;
|
|
114
|
+
readonly?: unknown;
|
|
115
115
|
transition?: unknown;
|
|
116
116
|
reverseTransition?: unknown;
|
|
117
117
|
events?: unknown;
|
|
@@ -202,16 +202,6 @@ export declare const makeVDateInputProps: <Defaults extends {
|
|
|
202
202
|
type: PropType<unknown extends Defaults["name"] ? string : string | Defaults["name"]>;
|
|
203
203
|
default: unknown extends Defaults["name"] ? string : string | Defaults["name"];
|
|
204
204
|
};
|
|
205
|
-
readonly: unknown extends Defaults["readonly"] ? {
|
|
206
|
-
type: PropType<boolean | null>;
|
|
207
|
-
default: null;
|
|
208
|
-
} : Omit<{
|
|
209
|
-
type: PropType<boolean | null>;
|
|
210
|
-
default: null;
|
|
211
|
-
}, "default" | "type"> & {
|
|
212
|
-
type: PropType<unknown extends Defaults["readonly"] ? boolean | null : boolean | Defaults["readonly"] | null>;
|
|
213
|
-
default: unknown extends Defaults["readonly"] ? boolean | null : Defaults["readonly"] | NonNullable<boolean | null>;
|
|
214
|
-
};
|
|
215
205
|
rules: unknown extends Defaults["rules"] ? {
|
|
216
206
|
type: PropType<readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[]>;
|
|
217
207
|
default: () => never[];
|
|
@@ -746,6 +736,10 @@ export declare const makeVDateInputProps: <Defaults extends {
|
|
|
746
736
|
type: PropType<unknown extends Defaults["showWeek"] ? boolean : boolean | Defaults["showWeek"]>;
|
|
747
737
|
default: unknown extends Defaults["showWeek"] ? boolean : boolean | Defaults["showWeek"];
|
|
748
738
|
};
|
|
739
|
+
readonly: unknown extends Defaults["readonly"] ? BooleanConstructor : {
|
|
740
|
+
type: PropType<unknown extends Defaults["readonly"] ? boolean : boolean | Defaults["readonly"]>;
|
|
741
|
+
default: unknown extends Defaults["readonly"] ? boolean : boolean | Defaults["readonly"];
|
|
742
|
+
};
|
|
749
743
|
transition: unknown extends Defaults["transition"] ? {
|
|
750
744
|
type: StringConstructor;
|
|
751
745
|
default: string;
|
|
@@ -890,7 +884,6 @@ export declare const VDateInput: {
|
|
|
890
884
|
focused: boolean;
|
|
891
885
|
errorMessages: string | readonly string[] | null;
|
|
892
886
|
maxErrors: string | number;
|
|
893
|
-
readonly: boolean | null;
|
|
894
887
|
rules: readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[];
|
|
895
888
|
density: import("../../composables/density.js").Density;
|
|
896
889
|
tile: boolean;
|
|
@@ -935,6 +928,7 @@ export declare const VDateInput: {
|
|
|
935
928
|
weeksInMonth: "dynamic" | "static";
|
|
936
929
|
hideWeekdays: boolean;
|
|
937
930
|
showWeek: boolean;
|
|
931
|
+
readonly: boolean;
|
|
938
932
|
transition: string;
|
|
939
933
|
reverseTransition: string;
|
|
940
934
|
events: import("../../components/VDatePicker/VDatePickerMonth.js").DatePickerEvents | null;
|
|
@@ -3195,7 +3189,6 @@ export declare const VDateInput: {
|
|
|
3195
3189
|
focused: boolean;
|
|
3196
3190
|
errorMessages: string | readonly string[] | null;
|
|
3197
3191
|
maxErrors: string | number;
|
|
3198
|
-
readonly: boolean | null;
|
|
3199
3192
|
rules: readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[];
|
|
3200
3193
|
density: import("../../composables/density.js").Density;
|
|
3201
3194
|
rounded: string | number | boolean;
|
|
@@ -3244,6 +3237,7 @@ export declare const VDateInput: {
|
|
|
3244
3237
|
firstDayOfYear: string | number;
|
|
3245
3238
|
hideWeekdays: boolean;
|
|
3246
3239
|
showWeek: boolean;
|
|
3240
|
+
readonly: boolean;
|
|
3247
3241
|
transition: string;
|
|
3248
3242
|
reverseTransition: string;
|
|
3249
3243
|
events: import("../../components/VDatePicker/VDatePickerMonth.js").DatePickerEvents | null;
|
|
@@ -3356,7 +3350,6 @@ export declare const VDateInput: {
|
|
|
3356
3350
|
focused: boolean;
|
|
3357
3351
|
errorMessages: string | readonly string[] | null;
|
|
3358
3352
|
maxErrors: string | number;
|
|
3359
|
-
readonly: boolean | null;
|
|
3360
3353
|
rules: readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[];
|
|
3361
3354
|
density: import("../../composables/density.js").Density;
|
|
3362
3355
|
tile: boolean;
|
|
@@ -3401,6 +3394,7 @@ export declare const VDateInput: {
|
|
|
3401
3394
|
weeksInMonth: "dynamic" | "static";
|
|
3402
3395
|
hideWeekdays: boolean;
|
|
3403
3396
|
showWeek: boolean;
|
|
3397
|
+
readonly: boolean;
|
|
3404
3398
|
transition: string;
|
|
3405
3399
|
reverseTransition: string;
|
|
3406
3400
|
events: import("../../components/VDatePicker/VDatePickerMonth.js").DatePickerEvents | null;
|
|
@@ -5655,7 +5649,6 @@ export declare const VDateInput: {
|
|
|
5655
5649
|
focused: boolean;
|
|
5656
5650
|
errorMessages: string | readonly string[] | null;
|
|
5657
5651
|
maxErrors: string | number;
|
|
5658
|
-
readonly: boolean | null;
|
|
5659
5652
|
rules: readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[];
|
|
5660
5653
|
density: import("../../composables/density.js").Density;
|
|
5661
5654
|
rounded: string | number | boolean;
|
|
@@ -5704,6 +5697,7 @@ export declare const VDateInput: {
|
|
|
5704
5697
|
firstDayOfYear: string | number;
|
|
5705
5698
|
hideWeekdays: boolean;
|
|
5706
5699
|
showWeek: boolean;
|
|
5700
|
+
readonly: boolean;
|
|
5707
5701
|
transition: string;
|
|
5708
5702
|
reverseTransition: string;
|
|
5709
5703
|
events: import("../../components/VDatePicker/VDatePickerMonth.js").DatePickerEvents | null;
|
|
@@ -5724,7 +5718,6 @@ export declare const VDateInput: {
|
|
|
5724
5718
|
focused: boolean;
|
|
5725
5719
|
errorMessages: string | readonly string[] | null;
|
|
5726
5720
|
maxErrors: string | number;
|
|
5727
|
-
readonly: boolean | null;
|
|
5728
5721
|
rules: readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[];
|
|
5729
5722
|
density: import("../../composables/density.js").Density;
|
|
5730
5723
|
tile: boolean;
|
|
@@ -5769,6 +5762,7 @@ export declare const VDateInput: {
|
|
|
5769
5762
|
weeksInMonth: "dynamic" | "static";
|
|
5770
5763
|
hideWeekdays: boolean;
|
|
5771
5764
|
showWeek: boolean;
|
|
5765
|
+
readonly: boolean;
|
|
5772
5766
|
transition: string;
|
|
5773
5767
|
reverseTransition: string;
|
|
5774
5768
|
events: import("../../components/VDatePicker/VDatePickerMonth.js").DatePickerEvents | null;
|
|
@@ -8029,7 +8023,6 @@ export declare const VDateInput: {
|
|
|
8029
8023
|
focused: boolean;
|
|
8030
8024
|
errorMessages: string | readonly string[] | null;
|
|
8031
8025
|
maxErrors: string | number;
|
|
8032
|
-
readonly: boolean | null;
|
|
8033
8026
|
rules: readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[];
|
|
8034
8027
|
density: import("../../composables/density.js").Density;
|
|
8035
8028
|
rounded: string | number | boolean;
|
|
@@ -8078,6 +8071,7 @@ export declare const VDateInput: {
|
|
|
8078
8071
|
firstDayOfYear: string | number;
|
|
8079
8072
|
hideWeekdays: boolean;
|
|
8080
8073
|
showWeek: boolean;
|
|
8074
|
+
readonly: boolean;
|
|
8081
8075
|
transition: string;
|
|
8082
8076
|
reverseTransition: string;
|
|
8083
8077
|
events: import("../../components/VDatePicker/VDatePickerMonth.js").DatePickerEvents | null;
|
|
@@ -8213,10 +8207,6 @@ export declare const VDateInput: {
|
|
|
8213
8207
|
default: number;
|
|
8214
8208
|
};
|
|
8215
8209
|
name: StringConstructor;
|
|
8216
|
-
readonly: {
|
|
8217
|
-
type: PropType<boolean | null>;
|
|
8218
|
-
default: null;
|
|
8219
|
-
};
|
|
8220
8210
|
rules: {
|
|
8221
8211
|
type: PropType<readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[]>;
|
|
8222
8212
|
default: () => never[];
|
|
@@ -8397,6 +8387,7 @@ export declare const VDateInput: {
|
|
|
8397
8387
|
hideWeekdays: BooleanConstructor;
|
|
8398
8388
|
multiple: PropType<number | "range" | boolean | (string & {})>;
|
|
8399
8389
|
showWeek: BooleanConstructor;
|
|
8390
|
+
readonly: BooleanConstructor;
|
|
8400
8391
|
transition: {
|
|
8401
8392
|
type: StringConstructor;
|
|
8402
8393
|
default: string;
|
|
@@ -8472,10 +8463,6 @@ export declare const VDateInput: {
|
|
|
8472
8463
|
default: number;
|
|
8473
8464
|
};
|
|
8474
8465
|
name: StringConstructor;
|
|
8475
|
-
readonly: {
|
|
8476
|
-
type: PropType<boolean | null>;
|
|
8477
|
-
default: null;
|
|
8478
|
-
};
|
|
8479
8466
|
rules: {
|
|
8480
8467
|
type: PropType<readonly (string | boolean | PromiseLike<import("../../composables/validation.js").ValidationResult> | ((value: any) => import("../../composables/validation.js").ValidationResult) | ((value: any) => PromiseLike<import("../../composables/validation.js").ValidationResult>) | [string, any, (string | undefined)?])[]>;
|
|
8481
8468
|
default: () => never[];
|
|
@@ -8656,6 +8643,7 @@ export declare const VDateInput: {
|
|
|
8656
8643
|
hideWeekdays: BooleanConstructor;
|
|
8657
8644
|
multiple: PropType<number | "range" | boolean | (string & {})>;
|
|
8658
8645
|
showWeek: BooleanConstructor;
|
|
8646
|
+
readonly: BooleanConstructor;
|
|
8659
8647
|
transition: {
|
|
8660
8648
|
type: StringConstructor;
|
|
8661
8649
|
default: string;
|
|
@@ -134,10 +134,11 @@ export const VDateInput = genericComponent()({
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
function onClick(e) {
|
|
137
|
+
if (props.disabled) return;
|
|
137
138
|
e.preventDefault();
|
|
138
139
|
e.stopPropagation();
|
|
139
140
|
if (menu.value && mobile.value) {
|
|
140
|
-
isEditingInput.value =
|
|
141
|
+
isEditingInput.value = !props.readonly;
|
|
141
142
|
} else {
|
|
142
143
|
menu.value = true;
|
|
143
144
|
}
|
|
@@ -206,8 +207,8 @@ export const VDateInput = genericComponent()({
|
|
|
206
207
|
"focused": menu.value || isFocused.value,
|
|
207
208
|
"onBlur": onBlur,
|
|
208
209
|
"validationValue": model.value,
|
|
209
|
-
"onClick:control":
|
|
210
|
-
"onClick:prepend":
|
|
210
|
+
"onClick:control": onClick,
|
|
211
|
+
"onClick:prepend": onClick,
|
|
211
212
|
"onUpdate:modelValue": onUpdateDisplayModel,
|
|
212
213
|
"onUpdate:focused": event => isFocused.value = event
|
|
213
214
|
}), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDateInput.js","names":["makeVConfirmEditProps","VConfirmEdit","makeVDatePickerProps","VDatePicker","VMenu","makeVTextFieldProps","VTextField","useCalendarRange","useDate","createDateRange","makeDateFormatProps","useDateFormat","makeDisplayProps","useDisplay","makeFocusProps","forwardRefs","useLocale","useProxiedModel","computed","ref","shallowRef","watch","genericComponent","omit","pick","propsFactory","useRender","wrapInArray","makeVDateInputProps","displayFormat","type","Function","String","default","undefined","location","menu","Boolean","updateOn","Array","mobile","hideActions","prependIcon","hideHeader","showAdjacentMonths","VDateInput","name","props","emits","save","value","cancel","val","setup","_ref","emit","slots","t","current","currentLocale","adapter","isValid","parseDate","formatDate","parserFormat","clampDate","isInAllowedRange","emptyModelValue","multiple","model","isArray","map","item","toJsDate","date","isEditingInput","isFocused","focused","vTextFieldRef","disabledActions","format","display","length","start","end","inputmode","isInteractive","disabled","readonly","isReadonly","onKeydown","e","key","includes","onUserInput","target","onClick","preventDefault","stopPropagation","onCancel","onSave","onUpdateDisplayModel","onBlur","_ref2","trim","parts","split","every","stop","toSorted","a","b","isAfter","filter","confirmEditProps","filterProps","datePickerProps","datePickerSlots","textFieldProps","_createVNode","_mergeProps","class","style","placeholder","event","_createElementVNode","_Fragment","$event","_ref3","actions","proxyModel","isPristine","onUpdateModel"],"sources":["../../../src/labs/VDateInput/VDateInput.tsx"],"sourcesContent":["// Components\nimport { makeVConfirmEditProps, VConfirmEdit } from '@/components/VConfirmEdit/VConfirmEdit'\nimport { makeVDatePickerProps, VDatePicker } from '@/components/VDatePicker/VDatePicker'\nimport { VMenu } from '@/components/VMenu/VMenu'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useCalendarRange } from '@/composables/calendar'\nimport { useDate } from '@/composables/date'\nimport { createDateRange } from '@/composables/date/date'\nimport { makeDateFormatProps, useDateFormat } from '@/composables/dateFormat'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeFocusProps } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, pick, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VDatePickerSlots } from '@/components/VDatePicker/VDatePicker'\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDateInputActionsSlot = {\n save: () => void\n cancel: () => void\n isPristine: boolean\n}\n\nexport type VDateInputSlots = Omit<VTextFieldSlots, 'default'> &\n Pick<VDatePickerSlots, 'title' | 'header' | 'day' | 'month' | 'year'> & {\n actions: VDateInputActionsSlot\n default: never\n }\n\nexport const makeVDateInputProps = propsFactory({\n displayFormat: {\n type: [Function, String] as PropType<string | ((date: unknown) => any)>,\n default: undefined,\n },\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom start',\n },\n menu: Boolean,\n updateOn: {\n type: Array as PropType<('blur' | 'enter')[]>,\n default: () => ['blur', 'enter'],\n },\n\n ...makeDateFormatProps(),\n ...makeDisplayProps({\n mobile: null,\n }),\n ...makeFocusProps(),\n ...makeVConfirmEditProps({\n hideActions: true,\n }),\n ...makeVTextFieldProps({\n prependIcon: '$calendar',\n }),\n ...omit(makeVDatePickerProps({\n hideHeader: true,\n showAdjacentMonths: true,\n }), [\n 'location',\n 'rounded',\n 'height',\n 'minHeight',\n 'maxHeight',\n ]),\n}, 'VDateInput')\n\nexport const VDateInput = 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 onSave?: (value: TModel) => void\n 'onUpdate:modelValue'?: (value: TModel) => void\n multiple?: Multiple\n },\n slots: VDateInputSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDateInput',\n\n props: makeVDateInputProps(),\n\n emits: {\n save: (value: unknown) => true,\n cancel: () => true,\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: unknown) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t, current: currentLocale } = useLocale()\n const adapter = useDate()\n const { isValid, parseDate, formatDate, parserFormat } = useDateFormat(props, currentLocale)\n const { mobile } = useDisplay(props)\n\n const { clampDate, isInAllowedRange } = useCalendarRange(props)\n\n const emptyModelValue = () => props.multiple ? [] : null\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n emptyModelValue(),\n val => Array.isArray(val) ? val.map(item => adapter.toJsDate(item)) : val ? adapter.toJsDate(val) : val,\n val => Array.isArray(val) ? val.map(item => adapter.date(item)) : val ? adapter.date(val) : val\n )\n\n const menu = useProxiedModel(props, 'menu')\n const isEditingInput = shallowRef(false)\n const isFocused = shallowRef(props.focused)\n const vTextFieldRef = ref<VTextField>()\n const disabledActions = ref<typeof VConfirmEdit['props']['disabled']>(['save'])\n\n function format (date: unknown) {\n if (typeof props.displayFormat === 'function') {\n return props.displayFormat(date)\n }\n if (props.displayFormat) {\n return adapter.format(date, props.displayFormat ?? 'keyboardDate')\n }\n return formatDate(date)\n }\n\n const display = computed(() => {\n const value = wrapInArray(model.value)\n\n if (!value.length) return null\n\n if (props.multiple === true) {\n return t('$vuetify.datePicker.itemsSelected', value.length)\n }\n\n if (props.multiple === 'range') {\n const start = value[0]\n const end = value[value.length - 1]\n\n if (!adapter.isValid(start) || !adapter.isValid(end)) return ''\n\n return `${format(adapter.date(start))} - ${format(adapter.date(end))}`\n }\n\n return adapter.isValid(model.value) ? format(adapter.date(model.value)) : ''\n })\n\n const inputmode = computed(() => {\n if (!mobile.value) return undefined\n if (isEditingInput.value) return 'text'\n\n return 'none'\n })\n\n const isInteractive = computed(() => !props.disabled && !props.readonly)\n\n const isReadonly = computed(() => {\n if (!props.updateOn.length) return true\n\n return !(mobile.value && isEditingInput.value) && props.readonly\n })\n\n watch(menu, val => {\n if (val) return\n\n isEditingInput.value = false\n disabledActions.value = ['save']\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter') return\n\n if (!menu.value || !isFocused.value) {\n menu.value = true\n }\n\n if (props.updateOn.includes('enter') && !props.readonly) {\n onUserInput(e.target as HTMLInputElement)\n }\n }\n\n function onClick (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n if (menu.value && mobile.value) {\n isEditingInput.value = true\n } else {\n menu.value = true\n }\n }\n\n function onCancel () {\n emit('cancel')\n menu.value = false\n isEditingInput.value = false\n }\n\n function onSave (value: string) {\n emit('save', value)\n menu.value = false\n }\n\n function onUpdateDisplayModel (value: unknown) {\n if (value != null) return\n\n model.value = emptyModelValue()\n }\n\n function onBlur (e: FocusEvent) {\n if (props.updateOn.includes('blur') && !props.readonly) {\n onUserInput(e.target as HTMLInputElement)\n }\n\n // When in mobile mode and editing is done (due to keyboard dismissal), close the menu\n if (mobile.value && isEditingInput.value && !isFocused.value) {\n menu.value = false\n isEditingInput.value = false\n }\n }\n\n function onUserInput ({ value }: HTMLInputElement) {\n if (!value.trim()) {\n model.value = emptyModelValue()\n } else if (!props.multiple) {\n if (isValid(value)) {\n model.value = clampDate(parseDate(value))\n }\n } else {\n const parts = value.trim().split(/\\D+-\\D+|[^\\d\\-/.]+/)\n if (parts.every(isValid)) {\n if (props.multiple === 'range') {\n const [start, stop] = parts\n .map(parseDate)\n .map(clampDate)\n .toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1)\n model.value = createDateRange(adapter, start, stop)\n } else {\n model.value = parts\n .map(parseDate)\n .filter(isInAllowedRange)\n }\n }\n }\n }\n\n useRender(() => {\n const confirmEditProps = VConfirmEdit.filterProps(props)\n const datePickerProps = VDatePicker.filterProps(omit(props, [\n 'active',\n 'bgColor',\n 'color',\n 'location',\n 'rounded',\n 'maxWidth',\n 'minWidth',\n 'width',\n ]))\n const datePickerSlots = pick(slots, ['title', 'header', 'day', 'month', 'year'])\n const textFieldProps = VTextField.filterProps(omit(props, ['placeholder']))\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n class={ props.class }\n style={ props.style }\n modelValue={ display.value }\n inputmode={ inputmode.value }\n placeholder={ props.placeholder ?? parserFormat.value }\n readonly={ isReadonly.value }\n onKeydown={ isInteractive.value ? onKeydown : undefined }\n focused={ menu.value || isFocused.value }\n onBlur={ onBlur }\n validationValue={ model.value }\n onClick:control={ isInteractive.value ? onClick : undefined }\n onClick:prepend={ isInteractive.value ? onClick : undefined }\n onUpdate:modelValue={ onUpdateDisplayModel }\n onUpdate:focused={ event => isFocused.value = event }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n minWidth=\"0\"\n eager={ isFocused.value }\n location={ props.location }\n closeOnContentClick={ false }\n openOnClick={ false }\n >\n <VConfirmEdit\n { ...confirmEditProps }\n v-model={ model.value }\n disabled={ disabledActions.value }\n onSave={ onSave }\n onCancel={ onCancel }\n >\n {{\n default: ({ actions, model: proxyModel, save, cancel, isPristine }) => {\n function onUpdateModel (value: string) {\n if (!props.hideActions) {\n proxyModel.value = value\n } else {\n model.value = value\n\n if (!props.multiple) {\n menu.value = false\n }\n }\n\n emit('save', value)\n\n disabledActions.value = []\n }\n\n return (\n <VDatePicker\n { ...datePickerProps }\n modelValue={ props.hideActions ? model.value : proxyModel.value }\n onUpdate:modelValue={ value => onUpdateModel(value) }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n {{\n ...datePickerSlots,\n actions: !props.hideActions ? () => slots.actions?.({ save, cancel, isPristine }) ?? actions() : undefined,\n }}\n </VDatePicker>\n )\n },\n }}\n </VConfirmEdit>\n </VMenu>\n\n { slots.default?.() }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({}, vTextFieldRef)\n },\n})\n\nexport type VDateInput = InstanceType<typeof VDateInput>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VDateInput.js","names":["makeVConfirmEditProps","VConfirmEdit","makeVDatePickerProps","VDatePicker","VMenu","makeVTextFieldProps","VTextField","useCalendarRange","useDate","createDateRange","makeDateFormatProps","useDateFormat","makeDisplayProps","useDisplay","makeFocusProps","forwardRefs","useLocale","useProxiedModel","computed","ref","shallowRef","watch","genericComponent","omit","pick","propsFactory","useRender","wrapInArray","makeVDateInputProps","displayFormat","type","Function","String","default","undefined","location","menu","Boolean","updateOn","Array","mobile","hideActions","prependIcon","hideHeader","showAdjacentMonths","VDateInput","name","props","emits","save","value","cancel","val","setup","_ref","emit","slots","t","current","currentLocale","adapter","isValid","parseDate","formatDate","parserFormat","clampDate","isInAllowedRange","emptyModelValue","multiple","model","isArray","map","item","toJsDate","date","isEditingInput","isFocused","focused","vTextFieldRef","disabledActions","format","display","length","start","end","inputmode","isInteractive","disabled","readonly","isReadonly","onKeydown","e","key","includes","onUserInput","target","onClick","preventDefault","stopPropagation","onCancel","onSave","onUpdateDisplayModel","onBlur","_ref2","trim","parts","split","every","stop","toSorted","a","b","isAfter","filter","confirmEditProps","filterProps","datePickerProps","datePickerSlots","textFieldProps","_createVNode","_mergeProps","class","style","placeholder","event","_createElementVNode","_Fragment","$event","_ref3","actions","proxyModel","isPristine","onUpdateModel"],"sources":["../../../src/labs/VDateInput/VDateInput.tsx"],"sourcesContent":["// Components\nimport { makeVConfirmEditProps, VConfirmEdit } from '@/components/VConfirmEdit/VConfirmEdit'\nimport { makeVDatePickerProps, VDatePicker } from '@/components/VDatePicker/VDatePicker'\nimport { VMenu } from '@/components/VMenu/VMenu'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useCalendarRange } from '@/composables/calendar'\nimport { useDate } from '@/composables/date'\nimport { createDateRange } from '@/composables/date/date'\nimport { makeDateFormatProps, useDateFormat } from '@/composables/dateFormat'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeFocusProps } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, pick, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VDatePickerSlots } from '@/components/VDatePicker/VDatePicker'\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDateInputActionsSlot = {\n save: () => void\n cancel: () => void\n isPristine: boolean\n}\n\nexport type VDateInputSlots = Omit<VTextFieldSlots, 'default'> &\n Pick<VDatePickerSlots, 'title' | 'header' | 'day' | 'month' | 'year'> & {\n actions: VDateInputActionsSlot\n default: never\n }\n\nexport const makeVDateInputProps = propsFactory({\n displayFormat: {\n type: [Function, String] as PropType<string | ((date: unknown) => any)>,\n default: undefined,\n },\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom start',\n },\n menu: Boolean,\n updateOn: {\n type: Array as PropType<('blur' | 'enter')[]>,\n default: () => ['blur', 'enter'],\n },\n\n ...makeDateFormatProps(),\n ...makeDisplayProps({\n mobile: null,\n }),\n ...makeFocusProps(),\n ...makeVConfirmEditProps({\n hideActions: true,\n }),\n ...makeVTextFieldProps({\n prependIcon: '$calendar',\n }),\n ...omit(makeVDatePickerProps({\n hideHeader: true,\n showAdjacentMonths: true,\n }), [\n 'location',\n 'rounded',\n 'height',\n 'minHeight',\n 'maxHeight',\n ]),\n}, 'VDateInput')\n\nexport const VDateInput = 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 onSave?: (value: TModel) => void\n 'onUpdate:modelValue'?: (value: TModel) => void\n multiple?: Multiple\n },\n slots: VDateInputSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDateInput',\n\n props: makeVDateInputProps(),\n\n emits: {\n save: (value: unknown) => true,\n cancel: () => true,\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: unknown) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t, current: currentLocale } = useLocale()\n const adapter = useDate()\n const { isValid, parseDate, formatDate, parserFormat } = useDateFormat(props, currentLocale)\n const { mobile } = useDisplay(props)\n\n const { clampDate, isInAllowedRange } = useCalendarRange(props)\n\n const emptyModelValue = () => props.multiple ? [] : null\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n emptyModelValue(),\n val => Array.isArray(val) ? val.map(item => adapter.toJsDate(item)) : val ? adapter.toJsDate(val) : val,\n val => Array.isArray(val) ? val.map(item => adapter.date(item)) : val ? adapter.date(val) : val\n )\n\n const menu = useProxiedModel(props, 'menu')\n const isEditingInput = shallowRef(false)\n const isFocused = shallowRef(props.focused)\n const vTextFieldRef = ref<VTextField>()\n const disabledActions = ref<typeof VConfirmEdit['props']['disabled']>(['save'])\n\n function format (date: unknown) {\n if (typeof props.displayFormat === 'function') {\n return props.displayFormat(date)\n }\n if (props.displayFormat) {\n return adapter.format(date, props.displayFormat ?? 'keyboardDate')\n }\n return formatDate(date)\n }\n\n const display = computed(() => {\n const value = wrapInArray(model.value)\n\n if (!value.length) return null\n\n if (props.multiple === true) {\n return t('$vuetify.datePicker.itemsSelected', value.length)\n }\n\n if (props.multiple === 'range') {\n const start = value[0]\n const end = value[value.length - 1]\n\n if (!adapter.isValid(start) || !adapter.isValid(end)) return ''\n\n return `${format(adapter.date(start))} - ${format(adapter.date(end))}`\n }\n\n return adapter.isValid(model.value) ? format(adapter.date(model.value)) : ''\n })\n\n const inputmode = computed(() => {\n if (!mobile.value) return undefined\n if (isEditingInput.value) return 'text'\n\n return 'none'\n })\n\n const isInteractive = computed(() => !props.disabled && !props.readonly)\n\n const isReadonly = computed(() => {\n if (!props.updateOn.length) return true\n\n return !(mobile.value && isEditingInput.value) && props.readonly\n })\n\n watch(menu, val => {\n if (val) return\n\n isEditingInput.value = false\n disabledActions.value = ['save']\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter') return\n\n if (!menu.value || !isFocused.value) {\n menu.value = true\n }\n\n if (props.updateOn.includes('enter') && !props.readonly) {\n onUserInput(e.target as HTMLInputElement)\n }\n }\n\n function onClick (e: MouseEvent) {\n if (props.disabled) return\n\n e.preventDefault()\n e.stopPropagation()\n\n if (menu.value && mobile.value) {\n isEditingInput.value = !props.readonly\n } else {\n menu.value = true\n }\n }\n\n function onCancel () {\n emit('cancel')\n menu.value = false\n isEditingInput.value = false\n }\n\n function onSave (value: string) {\n emit('save', value)\n menu.value = false\n }\n\n function onUpdateDisplayModel (value: unknown) {\n if (value != null) return\n\n model.value = emptyModelValue()\n }\n\n function onBlur (e: FocusEvent) {\n if (props.updateOn.includes('blur') && !props.readonly) {\n onUserInput(e.target as HTMLInputElement)\n }\n\n // When in mobile mode and editing is done (due to keyboard dismissal), close the menu\n if (mobile.value && isEditingInput.value && !isFocused.value) {\n menu.value = false\n isEditingInput.value = false\n }\n }\n\n function onUserInput ({ value }: HTMLInputElement) {\n if (!value.trim()) {\n model.value = emptyModelValue()\n } else if (!props.multiple) {\n if (isValid(value)) {\n model.value = clampDate(parseDate(value))\n }\n } else {\n const parts = value.trim().split(/\\D+-\\D+|[^\\d\\-/.]+/)\n if (parts.every(isValid)) {\n if (props.multiple === 'range') {\n const [start, stop] = parts\n .map(parseDate)\n .map(clampDate)\n .toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1)\n model.value = createDateRange(adapter, start, stop)\n } else {\n model.value = parts\n .map(parseDate)\n .filter(isInAllowedRange)\n }\n }\n }\n }\n\n useRender(() => {\n const confirmEditProps = VConfirmEdit.filterProps(props)\n const datePickerProps = VDatePicker.filterProps(omit(props, [\n 'active',\n 'bgColor',\n 'color',\n 'location',\n 'rounded',\n 'maxWidth',\n 'minWidth',\n 'width',\n ]))\n const datePickerSlots = pick(slots, ['title', 'header', 'day', 'month', 'year'])\n const textFieldProps = VTextField.filterProps(omit(props, ['placeholder']))\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n class={ props.class }\n style={ props.style }\n modelValue={ display.value }\n inputmode={ inputmode.value }\n placeholder={ props.placeholder ?? parserFormat.value }\n readonly={ isReadonly.value }\n onKeydown={ isInteractive.value ? onKeydown : undefined }\n focused={ menu.value || isFocused.value }\n onBlur={ onBlur }\n validationValue={ model.value }\n onClick:control={ onClick }\n onClick:prepend={ onClick }\n onUpdate:modelValue={ onUpdateDisplayModel }\n onUpdate:focused={ event => isFocused.value = event }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n minWidth=\"0\"\n eager={ isFocused.value }\n location={ props.location }\n closeOnContentClick={ false }\n openOnClick={ false }\n >\n <VConfirmEdit\n { ...confirmEditProps }\n v-model={ model.value }\n disabled={ disabledActions.value }\n onSave={ onSave }\n onCancel={ onCancel }\n >\n {{\n default: ({ actions, model: proxyModel, save, cancel, isPristine }) => {\n function onUpdateModel (value: string) {\n if (!props.hideActions) {\n proxyModel.value = value\n } else {\n model.value = value\n\n if (!props.multiple) {\n menu.value = false\n }\n }\n\n emit('save', value)\n\n disabledActions.value = []\n }\n\n return (\n <VDatePicker\n { ...datePickerProps }\n modelValue={ props.hideActions ? model.value : proxyModel.value }\n onUpdate:modelValue={ value => onUpdateModel(value) }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n {{\n ...datePickerSlots,\n actions: !props.hideActions ? () => slots.actions?.({ save, cancel, isPristine }) ?? actions() : undefined,\n }}\n </VDatePicker>\n )\n },\n }}\n </VConfirmEdit>\n </VMenu>\n\n { slots.default?.() }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({}, vTextFieldRef)\n },\n})\n\nexport type VDateInput = InstanceType<typeof VDateInput>\n"],"mappings":"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","ignoreList":[]}
|