@vuetify/nightly 3.7.6-master.2024-12-26 → 3.7.6-master.2025-01-16
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/json/attributes.json +1540 -1540
- package/dist/json/importMap-labs.json +18 -18
- package/dist/json/importMap.json +168 -168
- package/dist/json/web-types.json +2725 -2705
- package/dist/vuetify-labs.css +3281 -3277
- package/dist/vuetify-labs.d.ts +129 -104
- package/dist/vuetify-labs.esm.js +61 -27
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +61 -27
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +3686 -3682
- package/dist/vuetify.d.ts +65 -68
- package/dist/vuetify.esm.js +41 -22
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +41 -22
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +930 -924
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +7 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +7 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +5 -2
- package/lib/components/VDialog/VDialog.sass +6 -2
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VInput/VInput.css +1 -1
- package/lib/components/VInput/VInput.sass +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.mjs +12 -2
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSparkline/VBarline.mjs +3 -2
- package/lib/components/VSparkline/VBarline.mjs.map +1 -1
- package/lib/components/VSparkline/VTrendline.mjs +2 -1
- package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
- package/lib/components/VSparkline/index.d.mts +7 -10
- package/lib/components/VSparkline/util/line.mjs +1 -1
- package/lib/components/VSparkline/util/line.mjs.map +1 -1
- package/lib/components/VStepper/VStepperItem.mjs +1 -0
- package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +1 -0
- package/lib/components/VTextarea/VTextarea.sass +1 -0
- package/lib/components/index.d.mts +7 -10
- package/lib/composables/filter.mjs +3 -3
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +58 -58
- package/lib/labs/VDateInput/VDateInput.mjs +19 -5
- package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
- package/lib/labs/VDateInput/index.d.mts +176 -97
- package/lib/labs/components.d.mts +227 -199
- package/lib/locale/az.mjs +28 -28
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/nl.mjs +5 -5
- package/lib/locale/nl.mjs.map +1 -1
- package/package.json +1 -1
@@ -50841,7 +50841,7 @@ declare const VSnackbar: {
|
|
50841
50841
|
}>>;
|
50842
50842
|
type VSnackbar = InstanceType<typeof VSnackbar>;
|
50843
50843
|
|
50844
|
-
type SparklineItem = number | {
|
50844
|
+
type SparklineItem = string | number | {
|
50845
50845
|
value: number;
|
50846
50846
|
};
|
50847
50847
|
|
@@ -50851,7 +50851,6 @@ declare const VSparkline: {
|
|
50851
50851
|
type: "bar" | "trend";
|
50852
50852
|
height: string | number;
|
50853
50853
|
width: string | number;
|
50854
|
-
smooth: boolean;
|
50855
50854
|
padding: string | number;
|
50856
50855
|
labels: SparklineItem[];
|
50857
50856
|
modelValue: SparklineItem[];
|
@@ -50867,6 +50866,7 @@ declare const VSparkline: {
|
|
50867
50866
|
} & {
|
50868
50867
|
max?: string | number | undefined;
|
50869
50868
|
id?: string | undefined;
|
50869
|
+
smooth?: string | number | boolean | undefined;
|
50870
50870
|
min?: string | number | undefined;
|
50871
50871
|
color?: string | undefined;
|
50872
50872
|
autoDrawDuration?: string | number | undefined;
|
@@ -50896,7 +50896,6 @@ declare const VSparkline: {
|
|
50896
50896
|
type: "bar" | "trend";
|
50897
50897
|
height: string | number;
|
50898
50898
|
width: string | number;
|
50899
|
-
smooth: boolean;
|
50900
50899
|
padding: string | number;
|
50901
50900
|
labels: SparklineItem[];
|
50902
50901
|
modelValue: SparklineItem[];
|
@@ -50912,6 +50911,7 @@ declare const VSparkline: {
|
|
50912
50911
|
} & {
|
50913
50912
|
max?: string | number | undefined;
|
50914
50913
|
id?: string | undefined;
|
50914
|
+
smooth?: string | number | boolean | undefined;
|
50915
50915
|
min?: string | number | undefined;
|
50916
50916
|
color?: string | undefined;
|
50917
50917
|
autoDrawDuration?: string | number | undefined;
|
@@ -50941,7 +50941,6 @@ declare const VSparkline: {
|
|
50941
50941
|
type: "bar" | "trend";
|
50942
50942
|
height: string | number;
|
50943
50943
|
width: string | number;
|
50944
|
-
smooth: boolean;
|
50945
50944
|
padding: string | number;
|
50946
50945
|
labels: SparklineItem[];
|
50947
50946
|
modelValue: SparklineItem[];
|
@@ -50972,7 +50971,6 @@ declare const VSparkline: {
|
|
50972
50971
|
type: "bar" | "trend";
|
50973
50972
|
height: string | number;
|
50974
50973
|
width: string | number;
|
50975
|
-
smooth: boolean;
|
50976
50974
|
padding: string | number;
|
50977
50975
|
labels: SparklineItem[];
|
50978
50976
|
modelValue: SparklineItem[];
|
@@ -50988,6 +50986,7 @@ declare const VSparkline: {
|
|
50988
50986
|
} & {
|
50989
50987
|
max?: string | number | undefined;
|
50990
50988
|
id?: string | undefined;
|
50989
|
+
smooth?: string | number | boolean | undefined;
|
50991
50990
|
min?: string | number | undefined;
|
50992
50991
|
color?: string | undefined;
|
50993
50992
|
autoDrawDuration?: string | number | undefined;
|
@@ -51017,7 +51016,6 @@ declare const VSparkline: {
|
|
51017
51016
|
type: "bar" | "trend";
|
51018
51017
|
height: string | number;
|
51019
51018
|
width: string | number;
|
51020
|
-
smooth: boolean;
|
51021
51019
|
padding: string | number;
|
51022
51020
|
labels: SparklineItem[];
|
51023
51021
|
modelValue: SparklineItem[];
|
@@ -51039,7 +51037,6 @@ declare const VSparkline: {
|
|
51039
51037
|
type: "bar" | "trend";
|
51040
51038
|
height: string | number;
|
51041
51039
|
width: string | number;
|
51042
|
-
smooth: boolean;
|
51043
51040
|
padding: string | number;
|
51044
51041
|
labels: SparklineItem[];
|
51045
51042
|
modelValue: SparklineItem[];
|
@@ -51055,6 +51052,7 @@ declare const VSparkline: {
|
|
51055
51052
|
} & {
|
51056
51053
|
max?: string | number | undefined;
|
51057
51054
|
id?: string | undefined;
|
51055
|
+
smooth?: string | number | boolean | undefined;
|
51058
51056
|
min?: string | number | undefined;
|
51059
51057
|
color?: string | undefined;
|
51060
51058
|
autoDrawDuration?: string | number | undefined;
|
@@ -51084,7 +51082,6 @@ declare const VSparkline: {
|
|
51084
51082
|
type: "bar" | "trend";
|
51085
51083
|
height: string | number;
|
51086
51084
|
width: string | number;
|
51087
|
-
smooth: boolean;
|
51088
51085
|
padding: string | number;
|
51089
51086
|
labels: SparklineItem[];
|
51090
51087
|
modelValue: SparklineItem[];
|
@@ -51152,7 +51149,7 @@ declare const VSparkline: {
|
|
51152
51149
|
default: number;
|
51153
51150
|
};
|
51154
51151
|
showLabels: BooleanConstructor;
|
51155
|
-
smooth: BooleanConstructor;
|
51152
|
+
smooth: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
51156
51153
|
width: {
|
51157
51154
|
type: (StringConstructor | NumberConstructor)[];
|
51158
51155
|
default: number;
|
@@ -51212,7 +51209,7 @@ declare const VSparkline: {
|
|
51212
51209
|
default: number;
|
51213
51210
|
};
|
51214
51211
|
showLabels: BooleanConstructor;
|
51215
|
-
smooth: BooleanConstructor;
|
51212
|
+
smooth: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
51216
51213
|
width: {
|
51217
51214
|
type: (StringConstructor | NumberConstructor)[];
|
51218
51215
|
default: number;
|
@@ -2,7 +2,7 @@
|
|
2
2
|
/* eslint-disable no-labels */
|
3
3
|
|
4
4
|
// Utilities
|
5
|
-
import { computed,
|
5
|
+
import { computed, shallowRef, unref, watchEffect } from 'vue';
|
6
6
|
import { getPropertyFromItem, propsFactory, wrapInArray } from "../util/index.mjs"; // Types
|
7
7
|
/**
|
8
8
|
* - match without highlight
|
@@ -73,8 +73,8 @@ export function filterItems(items, query, options) {
|
|
73
73
|
return array;
|
74
74
|
}
|
75
75
|
export function useFilter(props, items, query, options) {
|
76
|
-
const filteredItems =
|
77
|
-
const filteredMatches =
|
76
|
+
const filteredItems = shallowRef([]);
|
77
|
+
const filteredMatches = shallowRef(new Map());
|
78
78
|
const transformedItems = computed(() => options?.transform ? unref(items).map(item => [item, options.transform(item)]) : unref(items));
|
79
79
|
watchEffect(() => {
|
80
80
|
const _query = typeof query === 'function' ? query() : unref(query);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filter.mjs","names":["computed","ref","unref","watchEffect","getPropertyFromItem","propsFactory","wrapInArray","defaultFilter","value","query","item","toString","toLocaleLowerCase","indexOf","makeFilterProps","customFilter","Function","customKeyFilter","Object","filterKeys","Array","String","filterMode","type","default","noFilter","Boolean","filterItems","items","options","array","filter","keys","customFiltersLength","length","loop","i","transformed","customMatches","defaultMatches","match","key","keyFilter","title","defaultMatchesLength","customMatchesLength","push","index","matches","useFilter","props","filteredItems","filteredMatches","Map","transformedItems","transform","map","_query","strQuery","results","originalItems","_filteredItems","_filteredMatches","forEach","_ref","set","getMatches","get"],"sources":["../../src/composables/filter.ts"],"sourcesContent":["/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, ref, unref, watchEffect } from 'vue'\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\nexport type FilterMatch = boolean | number | [number, number] | [number, number][]\nexport type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\nexport interface InternalItem<T = any> {\n value: any\n raw: T\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase())\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType<FilterFunction>,\n customKeyFilter: Object as PropType<FilterKeyFunctions>,\n filterKeys: [Array, String] as PropType<FilterKeys>,\n filterMode: {\n type: String as PropType<FilterMode>,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: readonly (readonly [item: InternalItem, transformed: {}])[] | readonly InternalItem[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { index: number, matches: Record<string, FilterMatch> }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]) as readonly [InternalItem, {}]\n const customMatches: Record<string, FilterMatch> = {}\n const defaultMatches: Record<string, FilterMatch> = {}\n let match: FilterMatch = -1\n\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(transformed)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match\n else defaultMatches[key] = match\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = match\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter <T extends InternalItem> (\n props: FilterProps,\n items: MaybeRef<T[]>,\n query: Ref<string | undefined> | (() => string | undefined),\n options?: {\n transform?: (item: T) => {}\n customKeyFilter?: MaybeRef<FilterKeyFunctions | undefined>\n }\n) {\n const filteredItems: Ref<T[]> = ref([])\n const filteredMatches: Ref<Map<unknown, Record<string, FilterMatch>>> = ref(new Map())\n const transformedItems = computed(() => (\n options?.transform\n ? unref(items).map(item => ([item, options.transform!(item)] as const))\n : unref(items)\n ))\n\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query)\n const strQuery = (\n typeof _query !== 'string' &&\n typeof _query !== 'number'\n ) ? '' : String(_query)\n\n const results = filterItems(\n transformedItems.value,\n strQuery,\n {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter),\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n const originalItems = unref(items)\n\n const _filteredItems: typeof filteredItems['value'] = []\n const _filteredMatches: typeof filteredMatches['value'] = new Map()\n results.forEach(({ index, matches }) => {\n const item = originalItems[index]\n _filteredItems.push(item)\n _filteredMatches.set(item.value, matches)\n })\n filteredItems.value = _filteredItems\n filteredMatches.value = _filteredMatches\n })\n\n function getMatches (item: T) {\n return filteredMatches.value.get(item.value)\n }\n\n return { filteredItems, filteredMatches, getMatches }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"filter.mjs","names":["computed","shallowRef","unref","watchEffect","getPropertyFromItem","propsFactory","wrapInArray","defaultFilter","value","query","item","toString","toLocaleLowerCase","indexOf","makeFilterProps","customFilter","Function","customKeyFilter","Object","filterKeys","Array","String","filterMode","type","default","noFilter","Boolean","filterItems","items","options","array","filter","keys","customFiltersLength","length","loop","i","transformed","customMatches","defaultMatches","match","key","keyFilter","title","defaultMatchesLength","customMatchesLength","push","index","matches","useFilter","props","filteredItems","filteredMatches","Map","transformedItems","transform","map","_query","strQuery","results","originalItems","_filteredItems","_filteredMatches","forEach","_ref","set","getMatches","get"],"sources":["../../src/composables/filter.ts"],"sourcesContent":["/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, shallowRef, unref, watchEffect } from 'vue'\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\nexport type FilterMatch = boolean | number | [number, number] | [number, number][]\nexport type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\nexport interface InternalItem<T = any> {\n value: any\n raw: T\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase())\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType<FilterFunction>,\n customKeyFilter: Object as PropType<FilterKeyFunctions>,\n filterKeys: [Array, String] as PropType<FilterKeys>,\n filterMode: {\n type: String as PropType<FilterMode>,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: readonly (readonly [item: InternalItem, transformed: {}])[] | readonly InternalItem[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { index: number, matches: Record<string, FilterMatch> }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]) as readonly [InternalItem, {}]\n const customMatches: Record<string, FilterMatch> = {}\n const defaultMatches: Record<string, FilterMatch> = {}\n let match: FilterMatch = -1\n\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n const filterKeys = keys || Object.keys(transformed)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match\n else defaultMatches[key] = match\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = match\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter <T extends InternalItem> (\n props: FilterProps,\n items: MaybeRef<T[]>,\n query: Ref<string | undefined> | (() => string | undefined),\n options?: {\n transform?: (item: T) => {}\n customKeyFilter?: MaybeRef<FilterKeyFunctions | undefined>\n }\n) {\n const filteredItems: Ref<T[]> = shallowRef([])\n const filteredMatches: Ref<Map<unknown, Record<string, FilterMatch>>> = shallowRef(new Map())\n const transformedItems = computed(() => (\n options?.transform\n ? unref(items).map(item => ([item, options.transform!(item)] as const))\n : unref(items)\n ))\n\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query)\n const strQuery = (\n typeof _query !== 'string' &&\n typeof _query !== 'number'\n ) ? '' : String(_query)\n\n const results = filterItems(\n transformedItems.value,\n strQuery,\n {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter),\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n const originalItems = unref(items)\n\n const _filteredItems: typeof filteredItems['value'] = []\n const _filteredMatches: typeof filteredMatches['value'] = new Map()\n results.forEach(({ index, matches }) => {\n const item = originalItems[index]\n _filteredItems.push(item)\n _filteredMatches.set(item.value, matches)\n })\n filteredItems.value = _filteredItems\n filteredMatches.value = _filteredMatches\n })\n\n function getMatches (item: T) {\n return filteredMatches.value.get(item.value)\n }\n\n return { filteredItems, filteredMatches, getMatches }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/entry-bundler.mjs
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.7.6-master.
|
19
|
+
export const version = "3.7.6-master.2025-01-16";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.mjs";
|
package/lib/framework.mjs
CHANGED
package/lib/index.d.mts
CHANGED
@@ -486,41 +486,42 @@ declare module 'vue' {
|
|
486
486
|
$children?: VNodeChild
|
487
487
|
}
|
488
488
|
export interface GlobalComponents {
|
489
|
-
VAlert: typeof import('vuetify/components')['VAlert']
|
490
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
491
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
492
|
-
VApp: typeof import('vuetify/components')['VApp']
|
493
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
494
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
495
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
496
489
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
497
490
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
498
491
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
499
|
-
|
492
|
+
VApp: typeof import('vuetify/components')['VApp']
|
493
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
500
494
|
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
495
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
496
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
501
497
|
VBanner: typeof import('vuetify/components')['VBanner']
|
502
498
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
503
499
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
500
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
501
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
504
502
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
505
503
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
506
504
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
507
|
-
|
508
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
509
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
505
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
510
506
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
507
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
511
508
|
VCard: typeof import('vuetify/components')['VCard']
|
512
509
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
513
510
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
514
511
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
515
512
|
VCardText: typeof import('vuetify/components')['VCardText']
|
516
513
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
514
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
515
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
516
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
517
517
|
VChip: typeof import('vuetify/components')['VChip']
|
518
|
-
VCode: typeof import('vuetify/components')['VCode']
|
519
518
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
520
|
-
|
519
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
520
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
521
521
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
522
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
523
|
+
VCode: typeof import('vuetify/components')['VCode']
|
522
524
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
523
|
-
VDivider: typeof import('vuetify/components')['VDivider']
|
524
525
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
525
526
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
526
527
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -528,36 +529,35 @@ declare module 'vue' {
|
|
528
529
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
529
530
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
530
531
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
532
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
533
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
534
|
+
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
535
|
+
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
536
|
+
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
537
|
+
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
538
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
531
539
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
532
540
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
533
541
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
534
542
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
535
543
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
536
544
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
537
|
-
|
538
|
-
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
539
|
-
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
540
|
-
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
541
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
545
|
+
VFab: typeof import('vuetify/components')['VFab']
|
542
546
|
VField: typeof import('vuetify/components')['VField']
|
543
547
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
544
|
-
|
545
|
-
VFooter: typeof import('vuetify/components')['VFooter']
|
546
|
-
VFab: typeof import('vuetify/components')['VFab']
|
548
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
547
549
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
550
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
551
|
+
VImg: typeof import('vuetify/components')['VImg']
|
552
|
+
VInput: typeof import('vuetify/components')['VInput']
|
548
553
|
VIcon: typeof import('vuetify/components')['VIcon']
|
549
554
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
550
555
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
551
556
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
552
557
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
553
|
-
VImg: typeof import('vuetify/components')['VImg']
|
554
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
555
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
556
|
-
VInput: typeof import('vuetify/components')['VInput']
|
557
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
558
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
559
558
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
560
559
|
VItem: typeof import('vuetify/components')['VItem']
|
560
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
561
561
|
VLabel: typeof import('vuetify/components')['VLabel']
|
562
562
|
VList: typeof import('vuetify/components')['VList']
|
563
563
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
@@ -568,69 +568,70 @@ declare module 'vue' {
|
|
568
568
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
569
569
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
570
570
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
571
|
-
VMain: typeof import('vuetify/components')['VMain']
|
572
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
573
|
-
VMessages: typeof import('vuetify/components')['VMessages']
|
574
571
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
572
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
573
|
+
VPagination: typeof import('vuetify/components')['VPagination']
|
575
574
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
575
|
+
VMain: typeof import('vuetify/components')['VMain']
|
576
576
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
577
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
577
578
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
578
|
-
VPagination: typeof import('vuetify/components')['VPagination']
|
579
579
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
580
|
-
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
581
580
|
VRating: typeof import('vuetify/components')['VRating']
|
582
|
-
|
581
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
583
582
|
VSelect: typeof import('vuetify/components')['VSelect']
|
583
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
584
584
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
585
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
585
586
|
VSheet: typeof import('vuetify/components')['VSheet']
|
586
|
-
|
587
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
588
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
589
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
587
590
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
588
591
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
589
|
-
|
590
|
-
|
592
|
+
VTable: typeof import('vuetify/components')['VTable']
|
593
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
594
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
595
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
596
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
591
597
|
VStepper: typeof import('vuetify/components')['VStepper']
|
592
598
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
593
599
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
594
600
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
595
601
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
596
602
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
597
|
-
|
598
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
603
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
599
604
|
VTab: typeof import('vuetify/components')['VTab']
|
600
605
|
VTabs: typeof import('vuetify/components')['VTabs']
|
601
606
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
602
607
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
603
|
-
VTable: typeof import('vuetify/components')['VTable']
|
604
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
605
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
606
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
607
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
608
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
609
|
-
VWindow: typeof import('vuetify/components')['VWindow']
|
610
|
-
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
611
608
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
612
609
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
613
610
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
614
|
-
|
611
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
612
|
+
VWindow: typeof import('vuetify/components')['VWindow']
|
613
|
+
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
615
614
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
616
615
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
616
|
+
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
617
|
+
VForm: typeof import('vuetify/components')['VForm']
|
617
618
|
VHover: typeof import('vuetify/components')['VHover']
|
618
619
|
VContainer: typeof import('vuetify/components')['VContainer']
|
619
620
|
VCol: typeof import('vuetify/components')['VCol']
|
620
621
|
VRow: typeof import('vuetify/components')['VRow']
|
621
622
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
622
|
-
VForm: typeof import('vuetify/components')['VForm']
|
623
623
|
VLayout: typeof import('vuetify/components')['VLayout']
|
624
624
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
625
|
-
VLazy: typeof import('vuetify/components')['VLazy']
|
626
625
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
627
|
-
|
626
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
628
627
|
VParallax: typeof import('vuetify/components')['VParallax']
|
629
|
-
|
628
|
+
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
630
629
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
630
|
+
VRadio: typeof import('vuetify/components')['VRadio']
|
631
631
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
632
632
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
633
633
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
634
|
+
VValidation: typeof import('vuetify/components')['VValidation']
|
634
635
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
635
636
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
636
637
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
@@ -649,27 +650,26 @@ declare module 'vue' {
|
|
649
650
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
650
651
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
651
652
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
652
|
-
|
653
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
654
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
653
655
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
654
656
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
655
657
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
656
658
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
657
659
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
658
660
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
659
|
-
|
660
|
-
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
661
|
+
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
661
662
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
662
663
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
663
664
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
664
|
-
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
665
|
-
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
666
|
-
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
667
665
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
668
666
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
669
667
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
670
668
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
671
669
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
672
670
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
671
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
672
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
673
673
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
674
674
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
675
675
|
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
@@ -10,8 +10,13 @@ import { useLocale } from "../../composables/locale.mjs";
|
|
10
10
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
11
11
|
import { computed, shallowRef } from 'vue';
|
12
12
|
import { genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.mjs"; // Types
|
13
|
+
// Types
|
13
14
|
export const makeVDateInputProps = propsFactory({
|
14
15
|
hideActions: Boolean,
|
16
|
+
location: {
|
17
|
+
type: String,
|
18
|
+
default: 'bottom start'
|
19
|
+
},
|
15
20
|
...makeFocusProps(),
|
16
21
|
...makeVConfirmEditProps(),
|
17
22
|
...makeVTextFieldProps({
|
@@ -21,7 +26,7 @@ export const makeVDateInputProps = propsFactory({
|
|
21
26
|
...omit(makeVDatePickerProps({
|
22
27
|
weeksInMonth: 'dynamic',
|
23
28
|
hideHeader: true
|
24
|
-
}), ['active'])
|
29
|
+
}), ['active', 'location'])
|
25
30
|
}, 'VDateInput');
|
26
31
|
export const VDateInput = genericComponent()({
|
27
32
|
name: 'VDateInput',
|
@@ -77,7 +82,7 @@ export const VDateInput = genericComponent()({
|
|
77
82
|
}
|
78
83
|
useRender(() => {
|
79
84
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
80
|
-
const datePickerProps = VDatePicker.filterProps(omit(props, ['active']));
|
85
|
+
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location']));
|
81
86
|
const textFieldProps = VTextField.filterProps(props);
|
82
87
|
return _createVNode(VTextField, _mergeProps(textFieldProps, {
|
83
88
|
"class": props.class,
|
@@ -95,18 +100,23 @@ export const VDateInput = genericComponent()({
|
|
95
100
|
"onUpdate:modelValue": $event => menu.value = $event,
|
96
101
|
"activator": "parent",
|
97
102
|
"min-width": "0",
|
103
|
+
"location": props.location,
|
98
104
|
"closeOnContentClick": false,
|
99
105
|
"openOnClick": false
|
100
106
|
}, {
|
101
107
|
default: () => [_createVNode(VConfirmEdit, _mergeProps(confirmEditProps, {
|
102
108
|
"modelValue": model.value,
|
103
109
|
"onUpdate:modelValue": $event => model.value = $event,
|
104
|
-
"onSave": onSave
|
110
|
+
"onSave": onSave,
|
111
|
+
"onCancel": () => menu.value = false
|
105
112
|
}), {
|
106
113
|
default: _ref2 => {
|
107
114
|
let {
|
108
115
|
actions,
|
109
|
-
model: proxyModel
|
116
|
+
model: proxyModel,
|
117
|
+
save,
|
118
|
+
cancel,
|
119
|
+
isPristine
|
110
120
|
} = _ref2;
|
111
121
|
return _createVNode(VDatePicker, _mergeProps(datePickerProps, {
|
112
122
|
"modelValue": props.hideActions ? model.value : proxyModel.value,
|
@@ -120,7 +130,11 @@ export const VDateInput = genericComponent()({
|
|
120
130
|
},
|
121
131
|
"onMousedown": e => e.preventDefault()
|
122
132
|
}), {
|
123
|
-
actions: !props.hideActions ?
|
133
|
+
actions: !props.hideActions ? () => slots.actions?.({
|
134
|
+
save,
|
135
|
+
cancel,
|
136
|
+
isPristine
|
137
|
+
}) ?? actions() : undefined
|
124
138
|
});
|
125
139
|
}
|
126
140
|
})]
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDateInput.mjs","names":["makeVConfirmEditProps","VConfirmEdit","makeVDatePickerProps","VDatePicker","VMenu","makeVTextFieldProps","VTextField","useDate","makeFocusProps","useFocus","useLocale","useProxiedModel","computed","shallowRef","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDateInputProps","hideActions","Boolean","placeholder","prependIcon","weeksInMonth","hideHeader","VDateInput","name","props","emits","val","setup","_ref","slots","t","adapter","isFocused","focus","blur","model","multiple","menu","display","value","length","start","end","isValid","format","isInteractive","disabled","readonly","onKeydown","e","key","target","date","onClick","preventDefault","stopPropagation","onSave","confirmEditProps","filterProps","datePickerProps","textFieldProps","_createVNode","_mergeProps","class","style","undefined","default","$event","_ref2","actions","proxyModel"],"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 { useDate } from '@/composables/date'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, shallowRef } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nexport interface VDateInputSlots {\n default: never\n}\n\nexport const makeVDateInputProps = propsFactory({\n hideActions: Boolean,\n\n ...makeFocusProps(),\n ...makeVConfirmEditProps(),\n ...makeVTextFieldProps({\n placeholder: 'mm/dd/yyyy',\n prependIcon: '$calendar',\n }),\n ...omit(makeVDatePickerProps({\n weeksInMonth: 'dynamic' as const,\n hideHeader: true,\n }), ['active']),\n}, 'VDateInput')\n\nexport const VDateInput = genericComponent()({\n name: 'VDateInput',\n\n props: makeVDateInputProps(),\n\n emits: {\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const adapter = useDate()\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(props, 'modelValue', props.multiple ? [] : null)\n const menu = shallowRef(false)\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 return adapter.isValid(start) && adapter.isValid(end)\n ? `${adapter.format(start, 'keyboardDate')} - ${adapter.format(end, 'keyboardDate')}`\n : ''\n }\n\n return adapter.isValid(model.value) ? adapter.format(model.value, 'keyboardDate') : ''\n })\n\n const isInteractive = computed(() => !props.disabled && !props.readonly)\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 return\n }\n\n const target = e.target as HTMLInputElement\n\n model.value = adapter.date(target.value)\n }\n\n function onClick (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n menu.value = true\n }\n\n function onSave () {\n menu.value = false\n }\n\n useRender(() => {\n const confirmEditProps = VConfirmEdit.filterProps(props)\n const datePickerProps = VDatePicker.filterProps(omit(props, ['active']))\n const textFieldProps = VTextField.filterProps(props)\n\n return (\n <VTextField\n { ...textFieldProps }\n class={ props.class }\n style={ props.style }\n modelValue={ display.value }\n onKeydown={ isInteractive.value ? onKeydown : undefined }\n focused={ menu.value || isFocused.value }\n onFocus={ focus }\n onBlur={ blur }\n onClick:control={ isInteractive.value ? onClick : undefined }\n onClick:prepend={ isInteractive.value ? onClick : undefined }\n >\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n min-width=\"0\"\n closeOnContentClick={ false }\n openOnClick={ false }\n >\n <VConfirmEdit\n { ...confirmEditProps }\n v-model={ model.value }\n onSave={ onSave }\n >\n {{\n default: ({ actions, model: proxyModel }) => {\n return (\n <VDatePicker\n { ...datePickerProps }\n modelValue={ props.hideActions ? model.value : proxyModel.value }\n onUpdate:modelValue={ val => {\n if (!props.hideActions) {\n proxyModel.value = val\n } else {\n model.value = val\n\n if (!props.multiple) menu.value = false\n }\n }}\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n {{\n actions: !props.hideActions ? actions : undefined,\n }}\n </VDatePicker>\n )\n },\n }}\n </VConfirmEdit>\n </VMenu>\n\n { slots.default?.() }\n </VTextField>\n )\n })\n },\n})\n\nexport type VDateInput = InstanceType<typeof VDateInput>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VDateInput.mjs","names":["makeVConfirmEditProps","VConfirmEdit","makeVDatePickerProps","VDatePicker","VMenu","makeVTextFieldProps","VTextField","useDate","makeFocusProps","useFocus","useLocale","useProxiedModel","computed","shallowRef","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDateInputProps","hideActions","Boolean","location","type","String","default","placeholder","prependIcon","weeksInMonth","hideHeader","VDateInput","name","props","emits","val","setup","_ref","slots","t","adapter","isFocused","focus","blur","model","multiple","menu","display","value","length","start","end","isValid","format","isInteractive","disabled","readonly","onKeydown","e","key","target","date","onClick","preventDefault","stopPropagation","onSave","confirmEditProps","filterProps","datePickerProps","textFieldProps","_createVNode","_mergeProps","class","style","undefined","$event","onCancel","_ref2","actions","proxyModel","save","cancel","isPristine"],"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 { useDate } from '@/composables/date'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, shallowRef } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\n\n// Types\nexport type VDateInputActionsSlot = {\n save: () => void\n cancel: () => void\n isPristine: boolean\n}\n\nexport type VDateInputSlots = {\n actions: VDateInputActionsSlot\n default: never\n}\n\nexport const makeVDateInputProps = propsFactory({\n hideActions: Boolean,\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom start',\n },\n ...makeFocusProps(),\n ...makeVConfirmEditProps(),\n ...makeVTextFieldProps({\n placeholder: 'mm/dd/yyyy',\n prependIcon: '$calendar',\n }),\n ...omit(makeVDatePickerProps({\n weeksInMonth: 'dynamic' as const,\n hideHeader: true,\n }), ['active', 'location']),\n}, 'VDateInput')\n\nexport const VDateInput = genericComponent<VDateInputSlots>()({\n name: 'VDateInput',\n\n props: makeVDateInputProps(),\n\n emits: {\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const adapter = useDate()\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(props, 'modelValue', props.multiple ? [] : null)\n const menu = shallowRef(false)\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 return adapter.isValid(start) && adapter.isValid(end)\n ? `${adapter.format(start, 'keyboardDate')} - ${adapter.format(end, 'keyboardDate')}`\n : ''\n }\n\n return adapter.isValid(model.value) ? adapter.format(model.value, 'keyboardDate') : ''\n })\n\n const isInteractive = computed(() => !props.disabled && !props.readonly)\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 return\n }\n\n const target = e.target as HTMLInputElement\n\n model.value = adapter.date(target.value)\n }\n\n function onClick (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n menu.value = true\n }\n\n function onSave () {\n menu.value = false\n }\n\n useRender(() => {\n const confirmEditProps = VConfirmEdit.filterProps(props)\n const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location']))\n const textFieldProps = VTextField.filterProps(props)\n\n return (\n <VTextField\n { ...textFieldProps }\n class={ props.class }\n style={ props.style }\n modelValue={ display.value }\n onKeydown={ isInteractive.value ? onKeydown : undefined }\n focused={ menu.value || isFocused.value }\n onFocus={ focus }\n onBlur={ blur }\n onClick:control={ isInteractive.value ? onClick : undefined }\n onClick:prepend={ isInteractive.value ? onClick : undefined }\n >\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n min-width=\"0\"\n location={ props.location }\n closeOnContentClick={ false }\n openOnClick={ false }\n >\n <VConfirmEdit\n { ...confirmEditProps }\n v-model={ model.value }\n onSave={ onSave }\n onCancel={ () => menu.value = false }\n >\n {{\n default: ({ actions, model: proxyModel, save, cancel, isPristine }) => {\n return (\n <VDatePicker\n { ...datePickerProps }\n modelValue={ props.hideActions ? model.value : proxyModel.value }\n onUpdate:modelValue={ val => {\n if (!props.hideActions) {\n proxyModel.value = val\n } else {\n model.value = val\n\n if (!props.multiple) menu.value = false\n }\n }}\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n {{\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 </VTextField>\n )\n })\n },\n})\n\nexport type VDateInput = InstanceType<typeof VDateInput>\n"],"mappings":"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","ignoreList":[]}
|