vuetify 3.11.0 → 3.11.2
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 +2912 -2904
- package/dist/json/importMap-labs.json +30 -30
- package/dist/json/importMap.json +198 -198
- package/dist/json/tags.json +2 -0
- package/dist/json/web-types.json +4995 -4976
- package/dist/vuetify-labs.cjs +41 -31
- package/dist/vuetify-labs.css +5310 -5314
- package/dist/vuetify-labs.d.ts +85 -72
- package/dist/vuetify-labs.esm.js +41 -31
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +41 -31
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +37 -27
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4184 -4185
- package/dist/vuetify.d.ts +85 -72
- package/dist/vuetify.esm.js +37 -27
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +37 -27
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +25 -21
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.js +1 -1
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +10 -0
- package/lib/components/VDataTable/VDataTableHeaders.js +7 -7
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +8 -3
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js +5 -9
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
- package/lib/components/VHotkey/_variables.scss +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +1 -1
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.js +4 -1
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VTabs/VTab.d.ts +13 -0
- package/lib/components/VTabs/VTab.js +3 -2
- package/lib/components/VTabs/VTab.js.map +1 -1
- package/lib/components/VTabs/VTabs.css +6 -7
- package/lib/components/VTabs/VTabs.js +1 -0
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/components/VTabs/VTabs.sass +6 -7
- package/lib/components/VTextField/VTextField.js +8 -10
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/composables/autofocus.js +3 -1
- package/lib/composables/autofocus.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +72 -72
- package/lib/framework.js +1 -1
- package/lib/labs/VMaskInput/VMaskInput.js +4 -4
- package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
- package/lib/labs/VStepperVertical/VStepperVerticalItem.css +0 -3
- package/lib/labs/VStepperVertical/VStepperVerticalItem.sass +0 -3
- package/package.json +26 -26
|
@@ -62,7 +62,6 @@
|
|
|
62
62
|
--v-tabs-inset-padding: 4px;
|
|
63
63
|
background: rgba(var(--v-theme-on-surface), 0.06);
|
|
64
64
|
box-shadow: inset 0 0 0 2px rgba(var(--v-border-color), var(--v-border-opacity));
|
|
65
|
-
max-width: max-content;
|
|
66
65
|
border-radius: calc(var(--v-tabs-inset-radius) + var(--v-tabs-inset-padding));
|
|
67
66
|
}
|
|
68
67
|
.v-tabs--inset .v-tab {
|
|
@@ -79,6 +78,12 @@
|
|
|
79
78
|
.v-tabs--inset .v-tab:focus-visible:after {
|
|
80
79
|
opacity: 0;
|
|
81
80
|
}
|
|
81
|
+
.v-tabs--inset:not(.v-tabs--fixed-tabs, .v-tabs--grow) {
|
|
82
|
+
max-width: max-content;
|
|
83
|
+
}
|
|
84
|
+
.v-tabs--inset.v-tabs--fixed-tabs .v-slide-group__content {
|
|
85
|
+
padding-inline: var(--v-tabs-inset-padding);
|
|
86
|
+
}
|
|
82
87
|
.v-tabs--inset .v-tab__slider {
|
|
83
88
|
inset: 0;
|
|
84
89
|
border-radius: var(--v-tabs-inset-radius);
|
|
@@ -92,12 +97,6 @@
|
|
|
92
97
|
.v-tabs--inset.v-tabs--horizontal .v-tab__slider {
|
|
93
98
|
height: auto;
|
|
94
99
|
}
|
|
95
|
-
.v-tabs--inset.v-tabs--vertical .v-tab__slider {
|
|
96
|
-
height: calc(100% - 2 * var(--v-slider-padding));
|
|
97
|
-
}
|
|
98
|
-
.v-tabs--inset .v-slide-group__content {
|
|
99
|
-
padding-inline: var(--v-slider-padding);
|
|
100
|
-
}
|
|
101
100
|
.v-tabs--inset .v-btn__overlay {
|
|
102
101
|
display: none;
|
|
103
102
|
}
|
|
@@ -86,6 +86,7 @@ export const VTabs = genericComponent()({
|
|
|
86
86
|
direction: toRef(props, 'direction'),
|
|
87
87
|
stacked: toRef(props, 'stacked'),
|
|
88
88
|
fixed: toRef(props, 'fixedTabs'),
|
|
89
|
+
inset: toRef(props, 'inset'),
|
|
89
90
|
sliderColor: toRef(props, 'sliderColor'),
|
|
90
91
|
sliderTransition: toRef(props, 'sliderTransition'),
|
|
91
92
|
sliderTransitionDuration: toRef(props, 'sliderTransitionDuration'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTabs.js","names":["makeVTabProps","VTab","VTabsWindow","VTabsWindowItem","makeVSlideGroupProps","VSlideGroup","useBackgroundColor","provideDefaults","makeDensityProps","useDensity","useProxiedModel","useScopeId","makeTagProps","computed","toRef","VTabsSymbol","convertToUnit","genericComponent","isObject","pick","propsFactory","useRender","parseItems","items","map","item","text","value","makeVTabsProps","alignTabs","type","String","default","color","fixedTabs","Boolean","Array","stacked","bgColor","grow","height","Number","undefined","hideSlider","inset","insetPadding","insetRadius","sliderColor","mandatory","selectedClass","VTabs","name","props","emits","v","setup","_ref","attrs","slots","model","densityClasses","backgroundColorClasses","backgroundColorStyles","scopeId","direction","fixed","sliderTransition","sliderTransitionDuration","slideGroupProps","filterProps","hasWindow","window","length","_createElementVNode","_Fragment","_createVNode","_mergeProps","$event","class","style","tab","spaced","prev","next"],"sources":["../../../src/components/VTabs/VTabs.tsx"],"sourcesContent":["// Styles\nimport './VTabs.sass'\n\n// Components\nimport { makeVTabProps, VTab } from './VTab'\nimport { VTabsWindow } from './VTabsWindow'\nimport { VTabsWindowItem } from './VTabsWindowItem'\nimport { makeVSlideGroupProps, VSlideGroup } from '@/components/VSlideGroup/VSlideGroup'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { VTabsSymbol } from './shared'\nimport { convertToUnit, genericComponent, isObject, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport type TabItem = string | number | Record<string, any>\n\nexport type VTabsSlot<T> = {\n item: T\n}\n\nexport type VTabsSlots<T> = {\n default: never\n tab: VTabsSlot<T>\n item: VTabsSlot<T>\n window: never\n prev: never\n next: never\n} & {\n [key: `tab.${string}`]: VTabsSlot<T>\n [key: `item.${string}`]: VTabsSlot<T>\n}\n\nfunction parseItems (items: readonly TabItem[] | undefined) {\n if (!items) return []\n\n return items.map(item => {\n if (!isObject(item)) return { text: item, value: item }\n\n return item\n })\n}\n\nexport const makeVTabsProps = propsFactory({\n alignTabs: {\n type: String as PropType<'start' | 'title' | 'center' | 'end'>,\n default: 'start',\n },\n color: String,\n fixedTabs: Boolean,\n items: {\n type: Array as PropType<readonly TabItem[]>,\n default: () => ([]),\n },\n stacked: Boolean,\n bgColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n inset: Boolean,\n insetPadding: [String, Number],\n insetRadius: [String, Number],\n sliderColor: String,\n\n ...pick(makeVTabProps(), ['spaced', 'sliderTransition', 'sliderTransitionDuration']),\n ...makeVSlideGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-tab-item--selected',\n }),\n ...makeDensityProps(),\n ...makeTagProps(),\n}, 'VTabs')\n\nexport const VTabs = genericComponent<new <T = TabItem>(\n props: {\n items?: T[]\n },\n slots: VTabsSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTabs',\n\n props: makeVTabsProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { attrs, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const items = computed(() => parseItems(props.items))\n const { densityClasses } = useDensity(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.bgColor)\n const { scopeId } = useScopeId()\n\n provideDefaults({\n VTab: {\n color: toRef(props, 'color'),\n direction: toRef(props, 'direction'),\n stacked: toRef(props, 'stacked'),\n fixed: toRef(props, 'fixedTabs'),\n sliderColor: toRef(props, 'sliderColor'),\n sliderTransition: toRef(props, 'sliderTransition'),\n sliderTransitionDuration: toRef(props, 'sliderTransitionDuration'),\n hideSlider: toRef(props, 'hideSlider'),\n },\n })\n\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props)\n const hasWindow = !!(slots.window || props.items.length > 0)\n\n return (\n <>\n <VSlideGroup\n { ...slideGroupProps }\n v-model={ model.value }\n class={[\n 'v-tabs',\n `v-tabs--${props.direction}`,\n `v-tabs--align-tabs-${props.alignTabs}`,\n {\n 'v-tabs--fixed-tabs': props.fixedTabs,\n 'v-tabs--grow': props.grow,\n 'v-tabs--inset': props.inset,\n 'v-tabs--stacked': props.stacked,\n },\n densityClasses.value,\n backgroundColorClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-tabs-height': convertToUnit(props.height),\n '--v-tabs-inset-padding': props.inset ? convertToUnit(props.insetPadding) : undefined,\n '--v-tabs-inset-radius': props.inset ? convertToUnit(props.insetRadius) : undefined,\n },\n backgroundColorStyles.value,\n props.style,\n ]}\n role=\"tablist\"\n symbol={ VTabsSymbol }\n { ...scopeId }\n { ...attrs }\n >\n {{\n default: slots.default ?? (() => items.value.map(item => (\n slots.tab?.({ item }) ?? (\n <VTab\n { ...item }\n key={ item.text }\n value={ item.value }\n spaced={ props.spaced }\n v-slots={{\n default: slots[`tab.${item.value}`] ? () => slots[`tab.${item.value}`]?.({ item }) : undefined,\n }}\n />\n )\n ))),\n prev: slots.prev,\n next: slots.next,\n }}\n </VSlideGroup>\n\n { hasWindow && (\n <VTabsWindow\n v-model={ model.value }\n key=\"tabs-window\"\n { ...scopeId }\n >\n { items.value.map(item => slots.item?.({ item }) ?? (\n <VTabsWindowItem\n value={ item.value }\n v-slots={{\n default: () => slots[`item.${item.value}`]?.({ item }),\n }}\n />\n ))}\n\n { slots.window?.() }\n </VTabsWindow>\n )}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VTabs = InstanceType<typeof VTabs>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VTabs.js","names":["makeVTabProps","VTab","VTabsWindow","VTabsWindowItem","makeVSlideGroupProps","VSlideGroup","useBackgroundColor","provideDefaults","makeDensityProps","useDensity","useProxiedModel","useScopeId","makeTagProps","computed","toRef","VTabsSymbol","convertToUnit","genericComponent","isObject","pick","propsFactory","useRender","parseItems","items","map","item","text","value","makeVTabsProps","alignTabs","type","String","default","color","fixedTabs","Boolean","Array","stacked","bgColor","grow","height","Number","undefined","hideSlider","inset","insetPadding","insetRadius","sliderColor","mandatory","selectedClass","VTabs","name","props","emits","v","setup","_ref","attrs","slots","model","densityClasses","backgroundColorClasses","backgroundColorStyles","scopeId","direction","fixed","sliderTransition","sliderTransitionDuration","slideGroupProps","filterProps","hasWindow","window","length","_createElementVNode","_Fragment","_createVNode","_mergeProps","$event","class","style","tab","spaced","prev","next"],"sources":["../../../src/components/VTabs/VTabs.tsx"],"sourcesContent":["// Styles\nimport './VTabs.sass'\n\n// Components\nimport { makeVTabProps, VTab } from './VTab'\nimport { VTabsWindow } from './VTabsWindow'\nimport { VTabsWindowItem } from './VTabsWindowItem'\nimport { makeVSlideGroupProps, VSlideGroup } from '@/components/VSlideGroup/VSlideGroup'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { VTabsSymbol } from './shared'\nimport { convertToUnit, genericComponent, isObject, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport type TabItem = string | number | Record<string, any>\n\nexport type VTabsSlot<T> = {\n item: T\n}\n\nexport type VTabsSlots<T> = {\n default: never\n tab: VTabsSlot<T>\n item: VTabsSlot<T>\n window: never\n prev: never\n next: never\n} & {\n [key: `tab.${string}`]: VTabsSlot<T>\n [key: `item.${string}`]: VTabsSlot<T>\n}\n\nfunction parseItems (items: readonly TabItem[] | undefined) {\n if (!items) return []\n\n return items.map(item => {\n if (!isObject(item)) return { text: item, value: item }\n\n return item\n })\n}\n\nexport const makeVTabsProps = propsFactory({\n alignTabs: {\n type: String as PropType<'start' | 'title' | 'center' | 'end'>,\n default: 'start',\n },\n color: String,\n fixedTabs: Boolean,\n items: {\n type: Array as PropType<readonly TabItem[]>,\n default: () => ([]),\n },\n stacked: Boolean,\n bgColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n inset: Boolean,\n insetPadding: [String, Number],\n insetRadius: [String, Number],\n sliderColor: String,\n\n ...pick(makeVTabProps(), ['spaced', 'sliderTransition', 'sliderTransitionDuration']),\n ...makeVSlideGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-tab-item--selected',\n }),\n ...makeDensityProps(),\n ...makeTagProps(),\n}, 'VTabs')\n\nexport const VTabs = genericComponent<new <T = TabItem>(\n props: {\n items?: T[]\n },\n slots: VTabsSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTabs',\n\n props: makeVTabsProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { attrs, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const items = computed(() => parseItems(props.items))\n const { densityClasses } = useDensity(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.bgColor)\n const { scopeId } = useScopeId()\n\n provideDefaults({\n VTab: {\n color: toRef(props, 'color'),\n direction: toRef(props, 'direction'),\n stacked: toRef(props, 'stacked'),\n fixed: toRef(props, 'fixedTabs'),\n inset: toRef(props, 'inset'),\n sliderColor: toRef(props, 'sliderColor'),\n sliderTransition: toRef(props, 'sliderTransition'),\n sliderTransitionDuration: toRef(props, 'sliderTransitionDuration'),\n hideSlider: toRef(props, 'hideSlider'),\n },\n })\n\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props)\n const hasWindow = !!(slots.window || props.items.length > 0)\n\n return (\n <>\n <VSlideGroup\n { ...slideGroupProps }\n v-model={ model.value }\n class={[\n 'v-tabs',\n `v-tabs--${props.direction}`,\n `v-tabs--align-tabs-${props.alignTabs}`,\n {\n 'v-tabs--fixed-tabs': props.fixedTabs,\n 'v-tabs--grow': props.grow,\n 'v-tabs--inset': props.inset,\n 'v-tabs--stacked': props.stacked,\n },\n densityClasses.value,\n backgroundColorClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-tabs-height': convertToUnit(props.height),\n '--v-tabs-inset-padding': props.inset ? convertToUnit(props.insetPadding) : undefined,\n '--v-tabs-inset-radius': props.inset ? convertToUnit(props.insetRadius) : undefined,\n },\n backgroundColorStyles.value,\n props.style,\n ]}\n role=\"tablist\"\n symbol={ VTabsSymbol }\n { ...scopeId }\n { ...attrs }\n >\n {{\n default: slots.default ?? (() => items.value.map(item => (\n slots.tab?.({ item }) ?? (\n <VTab\n { ...item }\n key={ item.text }\n value={ item.value }\n spaced={ props.spaced }\n v-slots={{\n default: slots[`tab.${item.value}`] ? () => slots[`tab.${item.value}`]?.({ item }) : undefined,\n }}\n />\n )\n ))),\n prev: slots.prev,\n next: slots.next,\n }}\n </VSlideGroup>\n\n { hasWindow && (\n <VTabsWindow\n v-model={ model.value }\n key=\"tabs-window\"\n { ...scopeId }\n >\n { items.value.map(item => slots.item?.({ item }) ?? (\n <VTabsWindowItem\n value={ item.value }\n v-slots={{\n default: () => slots[`item.${item.value}`]?.({ item }),\n }}\n />\n ))}\n\n { slots.window?.() }\n </VTabsWindow>\n )}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VTabs = InstanceType<typeof VTabs>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -53,7 +53,6 @@
|
|
|
53
53
|
|
|
54
54
|
background: rgba(var(--v-theme-on-surface), 0.06)
|
|
55
55
|
box-shadow: inset 0 0 0 2px rgba(var(--v-border-color), var(--v-border-opacity))
|
|
56
|
-
max-width: max-content
|
|
57
56
|
border-radius: calc(var(--v-tabs-inset-radius) + var(--v-tabs-inset-padding))
|
|
58
57
|
|
|
59
58
|
.v-tab
|
|
@@ -70,6 +69,12 @@
|
|
|
70
69
|
&:after
|
|
71
70
|
opacity: 0
|
|
72
71
|
|
|
72
|
+
&:not(.v-tabs--fixed-tabs, .v-tabs--grow)
|
|
73
|
+
max-width: max-content
|
|
74
|
+
|
|
75
|
+
&.v-tabs--fixed-tabs .v-slide-group__content
|
|
76
|
+
padding-inline: var(--v-tabs-inset-padding)
|
|
77
|
+
|
|
73
78
|
.v-tab__slider
|
|
74
79
|
inset: 0
|
|
75
80
|
border-radius: var(--v-tabs-inset-radius)
|
|
@@ -83,12 +88,6 @@
|
|
|
83
88
|
&.v-tabs--horizontal .v-tab__slider
|
|
84
89
|
height: auto
|
|
85
90
|
|
|
86
|
-
&.v-tabs--vertical .v-tab__slider
|
|
87
|
-
height: calc(100% - 2 * var(--v-slider-padding))
|
|
88
|
-
|
|
89
|
-
.v-slide-group__content
|
|
90
|
-
padding-inline: var(--v-slider-padding)
|
|
91
|
-
|
|
92
91
|
.v-btn__overlay
|
|
93
92
|
display: none
|
|
94
93
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mergeProps as _mergeProps, createElementVNode as _createElementVNode,
|
|
1
|
+
import { mergeProps as _mergeProps, createElementVNode as _createElementVNode, Fragment as _Fragment, normalizeClass as _normalizeClass, createVNode as _createVNode } from "vue";
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VTextField.css";
|
|
4
4
|
|
|
@@ -12,7 +12,7 @@ import { useFocus } from "../../composables/focus.js";
|
|
|
12
12
|
import { forwardRefs } from "../../composables/forwardRefs.js";
|
|
13
13
|
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Directives
|
|
14
14
|
import vIntersect from "../../directives/intersect/index.js"; // Utilities
|
|
15
|
-
import { cloneVNode, computed, nextTick, ref } from 'vue';
|
|
15
|
+
import { cloneVNode, computed, nextTick, ref, withDirectives } from 'vue';
|
|
16
16
|
import { callEvent, filterInputAttrs, genericComponent, omit, propsFactory, useRender } from "../../util/index.js"; // Types
|
|
17
17
|
const activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];
|
|
18
18
|
export const makeVTextFieldProps = propsFactory({
|
|
@@ -183,7 +183,7 @@ export const VTextField = genericComponent()({
|
|
|
183
183
|
},
|
|
184
184
|
controlRef
|
|
185
185
|
} = _ref3;
|
|
186
|
-
const inputNode =
|
|
186
|
+
const inputNode = _createElementVNode("input", _mergeProps({
|
|
187
187
|
"ref": val => inputRef.value = controlRef.value = val,
|
|
188
188
|
"value": model.value,
|
|
189
189
|
"onInput": onInput,
|
|
@@ -198,21 +198,19 @@ export const VTextField = genericComponent()({
|
|
|
198
198
|
"type": props.type,
|
|
199
199
|
"onFocus": focus,
|
|
200
200
|
"onBlur": blur
|
|
201
|
-
}, slotProps, inputAttrs), null)
|
|
202
|
-
handler: onIntersect
|
|
203
|
-
}, null, {
|
|
204
|
-
once: true
|
|
205
|
-
}]]);
|
|
201
|
+
}, slotProps, inputAttrs), null);
|
|
206
202
|
return _createElementVNode(_Fragment, null, [props.prefix && _createElementVNode("span", {
|
|
207
203
|
"class": "v-text-field__prefix"
|
|
208
204
|
}, [_createElementVNode("span", {
|
|
209
205
|
"class": "v-text-field__prefix__text"
|
|
210
|
-
}, [props.prefix])]), slots.default ? _createElementVNode("div", {
|
|
206
|
+
}, [props.prefix])]), withDirectives(slots.default ? _createElementVNode("div", {
|
|
211
207
|
"class": _normalizeClass(fieldClass),
|
|
212
208
|
"data-no-activator": ""
|
|
213
209
|
}, [slots.default(), inputNode]) : cloneVNode(inputNode, {
|
|
214
210
|
class: fieldClass
|
|
215
|
-
}),
|
|
211
|
+
}), [[vIntersect, onIntersect, null, {
|
|
212
|
+
once: true
|
|
213
|
+
}]]), props.suffix && _createElementVNode("span", {
|
|
216
214
|
"class": "v-text-field__suffix"
|
|
217
215
|
}, [_createElementVNode("span", {
|
|
218
216
|
"class": "v-text-field__suffix__text"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTextField.js","names":["VCounter","makeVFieldProps","VField","makeVInputProps","VInput","makeAutocompleteProps","useAutocomplete","useAutofocus","useFocus","forwardRefs","useProxiedModel","vIntersect","cloneVNode","computed","nextTick","ref","callEvent","filterInputAttrs","genericComponent","omit","propsFactory","useRender","activeTypes","makeVTextFieldProps","autofocus","Boolean","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","role","type","default","modelModifiers","Object","VTextField","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","onIntersect","value","toString","length","max","maxlength","undefined","isPlainOrUnderlined","includes","variant","vInputRef","vFieldRef","inputRef","autocomplete","isActive","active","onFocus","isSuppressing","update","document","activeElement","onControlMousedown","target","preventDefault","onControlClick","onClear","reset","stopPropagation","onInput","el","trim","start","selectionStart","end","selectionEnd","offset","trimStart","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","controlRef","inputNode","_withDirectives","_createElementVNode","fieldName","fieldAutocomplete","handler","once","_Fragment","_normalizeClass","disabled"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { makeAutocompleteProps, useAutocomplete } from '@/composables/autocomplete'\nimport { useAutofocus } from '@/composables/autofocus'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport vIntersect from '@/directives/intersect'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function] as PropType<number | ((value: any) => number)>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text',\n },\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeAutocompleteProps(),\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextField')\n\nexport type VTextFieldSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n default: never\n counter: VCounterSlot\n}\n\nexport const VTextField = genericComponent<VTextFieldSlots>()({\n name: 'VTextField',\n\n directives: { vIntersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const { onIntersect } = useAutofocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as unknown as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VField>()\n const inputRef = ref<HTMLInputElement>()\n const autocomplete = useAutocomplete(props)\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n function onFocus () {\n if (autocomplete.isSuppressing.value) {\n autocomplete.update()\n }\n\n if (!isFocused.value) focus()\n\n nextTick(() => {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n })\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\n }\n function onControlClick (e: MouseEvent) {\n emit('click:control', e)\n }\n function onClear (e: MouseEvent, reset: () => void) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n reset()\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n\n if (!(\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n )) {\n model.value = el.value\n return\n }\n\n const value = el.value\n const start = el.selectionStart\n const end = el.selectionEnd\n\n model.value = value\n\n nextTick(() => {\n let offset = 0\n if (value.trimStart().length === el.value.length) {\n // #22307 - Whitespace has been removed from the\n // start, offset the caret position to compensate\n offset = value.length - el.value.length\n }\n if (start != null) el.selectionStart = start - offset\n if (end != null) el.selectionEnd = end - offset\n })\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || (props.counter !== false && props.counter != null))\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n reset,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ (e: MouseEvent) => onClear(e, reset) }\n role={ props.role }\n { ...omit(fieldProps, ['onClick:clear']) }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n details={ hasDetails.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n controlRef,\n }) => {\n const inputNode = (\n <input\n ref={ val => inputRef.value = controlRef.value = val as HTMLInputElement }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n name={ autocomplete.fieldName.value }\n autocomplete={ autocomplete.fieldAutocomplete.value }\n placeholder={ props.placeholder }\n size={ 1 }\n role={ props.role }\n type={ props.type }\n onFocus={ focus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n <span class=\"v-text-field__prefix__text\">\n { props.prefix }\n </span>\n </span>\n )}\n\n { slots.default ? (\n <div\n class={ fieldClass }\n data-no-activator=\"\"\n >\n { slots.default() }\n { inputNode }\n </div>\n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n <span class=\"v-text-field__suffix__text\">\n { props.suffix }\n </span>\n </span>\n )}\n </>\n )\n },\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VTextField.js","names":["VCounter","makeVFieldProps","VField","makeVInputProps","VInput","makeAutocompleteProps","useAutocomplete","useAutofocus","useFocus","forwardRefs","useProxiedModel","vIntersect","cloneVNode","computed","nextTick","ref","withDirectives","callEvent","filterInputAttrs","genericComponent","omit","propsFactory","useRender","activeTypes","makeVTextFieldProps","autofocus","Boolean","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","suffix","role","type","default","modelModifiers","Object","VTextField","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","onIntersect","value","toString","length","max","maxlength","undefined","isPlainOrUnderlined","includes","variant","vInputRef","vFieldRef","inputRef","autocomplete","isActive","active","onFocus","isSuppressing","update","document","activeElement","onControlMousedown","target","preventDefault","onControlClick","onClear","reset","stopPropagation","onInput","el","trim","start","selectionStart","end","selectionEnd","offset","trimStart","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","style","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","controlRef","inputNode","_createElementVNode","fieldName","fieldAutocomplete","_Fragment","_normalizeClass","once","disabled"],"sources":["../../../src/components/VTextField/VTextField.tsx"],"sourcesContent":["// Styles\nimport './VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { makeAutocompleteProps, useAutocomplete } from '@/composables/autocomplete'\nimport { useAutofocus } from '@/composables/autofocus'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport vIntersect from '@/directives/intersect'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref, withDirectives } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function] as PropType<number | ((value: any) => number)>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text',\n },\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeAutocompleteProps(),\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextField')\n\nexport type VTextFieldSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n default: never\n counter: VCounterSlot\n}\n\nexport const VTextField = genericComponent<VTextFieldSlots>()({\n name: 'VTextField',\n\n directives: { vIntersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const { onIntersect } = useAutofocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as unknown as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VField>()\n const inputRef = ref<HTMLInputElement>()\n const autocomplete = useAutocomplete(props)\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n function onFocus () {\n if (autocomplete.isSuppressing.value) {\n autocomplete.update()\n }\n\n if (!isFocused.value) focus()\n\n nextTick(() => {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n })\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\n }\n function onControlClick (e: MouseEvent) {\n emit('click:control', e)\n }\n function onClear (e: MouseEvent, reset: () => void) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n reset()\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n\n if (!(\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n )) {\n model.value = el.value\n return\n }\n\n const value = el.value\n const start = el.selectionStart\n const end = el.selectionEnd\n\n model.value = value\n\n nextTick(() => {\n let offset = 0\n if (value.trimStart().length === el.value.length) {\n // #22307 - Whitespace has been removed from the\n // start, offset the caret position to compensate\n offset = value.length - el.value.length\n }\n if (start != null) el.selectionStart = start - offset\n if (end != null) el.selectionEnd = end - offset\n })\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || (props.counter !== false && props.counter != null))\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n reset,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ (e: MouseEvent) => onClear(e, reset) }\n role={ props.role }\n { ...omit(fieldProps, ['onClick:clear']) }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n details={ hasDetails.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n controlRef,\n }) => {\n const inputNode = (\n <input\n ref={ val => inputRef.value = controlRef.value = val as HTMLInputElement }\n value={ model.value }\n onInput={ onInput }\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n name={ autocomplete.fieldName.value }\n autocomplete={ autocomplete.fieldAutocomplete.value }\n placeholder={ props.placeholder }\n size={ 1 }\n role={ props.role }\n type={ props.type }\n onFocus={ focus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n <span class=\"v-text-field__prefix__text\">\n { props.prefix }\n </span>\n </span>\n )}\n\n { withDirectives(\n slots.default ? (\n <div\n class={ fieldClass }\n data-no-activator=\"\"\n >\n { slots.default() }\n { inputNode }\n </div>\n ) : cloneVNode(inputNode, { class: fieldClass }),\n [[vIntersect, onIntersect, null, { once: true }]],\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n <span class=\"v-text-field__suffix__text\">\n { props.suffix }\n </span>\n </span>\n )}\n </>\n )\n },\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export function useAutofocus(props) {
|
|
2
2
|
function onIntersect(isIntersecting, entries) {
|
|
3
3
|
if (!props.autofocus || !isIntersecting) return;
|
|
4
|
-
entries[0].target
|
|
4
|
+
const el = entries[0].target;
|
|
5
|
+
const target = el.matches('input,textarea') ? el : el.querySelector('input,textarea');
|
|
6
|
+
target?.focus();
|
|
5
7
|
}
|
|
6
8
|
return {
|
|
7
9
|
onIntersect
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autofocus.js","names":["useAutofocus","props","onIntersect","isIntersecting","entries","autofocus","target","focus"],"sources":["../../src/composables/autofocus.ts"],"sourcesContent":["interface AutofocusProps {\n autofocus: boolean\n}\n\nexport function useAutofocus (props: AutofocusProps) {\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n
|
|
1
|
+
{"version":3,"file":"autofocus.js","names":["useAutofocus","props","onIntersect","isIntersecting","entries","autofocus","el","target","matches","querySelector","focus"],"sources":["../../src/composables/autofocus.ts"],"sourcesContent":["interface AutofocusProps {\n autofocus: boolean\n}\n\nexport function useAutofocus (props: AutofocusProps) {\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n const el = entries[0].target\n const target = (el.matches('input,textarea') ? el : el.querySelector('input,textarea')) as HTMLElement | null\n target?.focus()\n }\n\n return {\n onIntersect,\n }\n}\n"],"mappings":"AAIA,OAAO,SAASA,YAAYA,CAAEC,KAAqB,EAAE;EACnD,SAASC,WAAWA,CAClBC,cAAuB,EACvBC,OAAoC,EACpC;IACA,IAAI,CAACH,KAAK,CAACI,SAAS,IAAI,CAACF,cAAc,EAAE;IAEzC,MAAMG,EAAE,GAAGF,OAAO,CAAC,CAAC,CAAC,CAACG,MAAM;IAC5B,MAAMA,MAAM,GAAID,EAAE,CAACE,OAAO,CAAC,gBAAgB,CAAC,GAAGF,EAAE,GAAGA,EAAE,CAACG,aAAa,CAAC,gBAAgB,CAAwB;IAC7GF,MAAM,EAAEG,KAAK,CAAC,CAAC;EACjB;EAEA,OAAO;IACLR;EACF,CAAC;AACH","ignoreList":[]}
|
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.11.
|
|
19
|
+
export const version = "3.11.2";
|
|
20
20
|
createVuetify.version = version;
|
|
21
21
|
export { blueprints, components, directives };
|
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
|
@@ -2778,42 +2778,42 @@ declare module 'vue' {
|
|
|
2778
2778
|
$children?: VNodeChild
|
|
2779
2779
|
}
|
|
2780
2780
|
export interface GlobalComponents {
|
|
2781
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
2782
|
+
VApp: typeof import('vuetify/components')['VApp']
|
|
2783
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
|
2784
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
2781
2785
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
2782
2786
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
2783
2787
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
2784
2788
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
2785
|
-
VApp: typeof import('vuetify/components')['VApp']
|
|
2786
|
-
VAlert: typeof import('vuetify/components')['VAlert']
|
|
2787
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
2788
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
|
2789
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
2790
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
2791
2789
|
VBanner: typeof import('vuetify/components')['VBanner']
|
|
2792
2790
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
2793
2791
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
2794
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
2795
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
2796
2792
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
2793
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
|
2794
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
2795
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
|
2796
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
2797
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
2797
2798
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
2798
2799
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
2799
2800
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
2800
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
|
2801
2801
|
VCalendar: typeof import('vuetify/components')['VCalendar']
|
|
2802
|
-
|
|
2803
|
-
|
|
2802
|
+
VCode: typeof import('vuetify/components')['VCode']
|
|
2803
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
2804
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
2804
2805
|
VCard: typeof import('vuetify/components')['VCard']
|
|
2805
2806
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
|
2806
2807
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
|
2807
2808
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
|
2808
2809
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
2809
2810
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
2810
|
-
|
|
2811
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
2812
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
2813
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
2811
2814
|
VChip: typeof import('vuetify/components')['VChip']
|
|
2812
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
2813
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
2814
|
-
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
2815
2815
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
2816
|
-
|
|
2816
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
2817
2817
|
VCounter: typeof import('vuetify/components')['VCounter']
|
|
2818
2818
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
2819
2819
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
@@ -2821,6 +2821,13 @@ declare module 'vue' {
|
|
|
2821
2821
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
2822
2822
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
2823
2823
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
2824
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
|
2825
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
|
2826
|
+
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
2827
|
+
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
2828
|
+
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
2829
|
+
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
2830
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
2824
2831
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
|
2825
2832
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
|
2826
2833
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
|
@@ -2828,31 +2835,21 @@ declare module 'vue' {
|
|
|
2828
2835
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
2829
2836
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
2830
2837
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
2831
|
-
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
2832
|
-
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
2833
|
-
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
2834
|
-
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
2835
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
|
2836
2838
|
VFab: typeof import('vuetify/components')['VFab']
|
|
2837
|
-
|
|
2839
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
|
2840
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
2838
2841
|
VField: typeof import('vuetify/components')['VField']
|
|
2839
2842
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
2840
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
2841
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
2842
|
-
VFooter: typeof import('vuetify/components')['VFooter']
|
|
2843
|
-
VHotkey: typeof import('vuetify/components')['VHotkey']
|
|
2844
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
2845
2843
|
VIcon: typeof import('vuetify/components')['VIcon']
|
|
2846
2844
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
|
2847
2845
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
|
2848
2846
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
|
2849
2847
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
|
2850
|
-
|
|
2848
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
2849
|
+
VImg: typeof import('vuetify/components')['VImg']
|
|
2850
|
+
VHotkey: typeof import('vuetify/components')['VHotkey']
|
|
2851
2851
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
2852
2852
|
VItem: typeof import('vuetify/components')['VItem']
|
|
2853
|
-
VImg: typeof import('vuetify/components')['VImg']
|
|
2854
|
-
VLabel: typeof import('vuetify/components')['VLabel']
|
|
2855
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
|
2856
2853
|
VList: typeof import('vuetify/components')['VList']
|
|
2857
2854
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
|
2858
2855
|
VListImg: typeof import('vuetify/components')['VListImg']
|
|
@@ -2862,56 +2859,59 @@ declare module 'vue' {
|
|
|
2862
2859
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
|
2863
2860
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
|
2864
2861
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
|
2865
|
-
|
|
2862
|
+
VInput: typeof import('vuetify/components')['VInput']
|
|
2863
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
|
2864
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
|
2866
2865
|
VMenu: typeof import('vuetify/components')['VMenu']
|
|
2866
|
+
VMain: typeof import('vuetify/components')['VMain']
|
|
2867
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
|
2867
2868
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
2868
2869
|
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
|
2869
|
-
VPagination: typeof import('vuetify/components')['VPagination']
|
|
2870
|
-
VMessages: typeof import('vuetify/components')['VMessages']
|
|
2871
2870
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
2872
|
-
|
|
2873
|
-
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
2871
|
+
VPagination: typeof import('vuetify/components')['VPagination']
|
|
2874
2872
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
2875
|
-
|
|
2873
|
+
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
2874
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
2876
2875
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
2877
|
-
|
|
2876
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
2877
|
+
VRating: typeof import('vuetify/components')['VRating']
|
|
2878
2878
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
2879
2879
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
2880
|
-
VSheet: typeof import('vuetify/components')['VSheet']
|
|
2881
|
-
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
2882
|
-
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
2883
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
2884
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
|
2885
2880
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
2881
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
|
2882
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
|
2883
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
|
2884
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
2891
2885
|
VStepper: typeof import('vuetify/components')['VStepper']
|
|
2892
2886
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
|
2893
2887
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
|
2894
2888
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
|
2895
2889
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
|
2896
2890
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
|
2891
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
2892
|
+
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
2893
|
+
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
2894
|
+
VTab: typeof import('vuetify/components')['VTab']
|
|
2895
|
+
VTabs: typeof import('vuetify/components')['VTabs']
|
|
2896
|
+
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
2897
|
+
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
2897
2898
|
VTable: typeof import('vuetify/components')['VTable']
|
|
2898
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
2899
|
-
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
|
2900
|
-
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
|
2901
|
-
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
|
2902
|
-
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
2903
|
-
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
2904
|
-
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
2905
2899
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
2906
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
|
2907
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
2908
2900
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
2909
2901
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
2910
|
-
|
|
2911
|
-
|
|
2902
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
2903
|
+
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
2904
|
+
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
2905
|
+
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
2912
2906
|
VTreeview: typeof import('vuetify/components')['VTreeview']
|
|
2913
2907
|
VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
|
|
2914
2908
|
VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
|
|
2909
|
+
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
|
2910
|
+
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
|
2911
|
+
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
|
2912
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
|
2913
|
+
VWindow: typeof import('vuetify/components')['VWindow']
|
|
2914
|
+
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
2915
2915
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
|
2916
2916
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
|
2917
2917
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
@@ -2921,21 +2921,20 @@ declare module 'vue' {
|
|
|
2921
2921
|
VRow: typeof import('vuetify/components')['VRow']
|
|
2922
2922
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
|
2923
2923
|
VHover: typeof import('vuetify/components')['VHover']
|
|
2924
|
-
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
2925
2924
|
VLayout: typeof import('vuetify/components')['VLayout']
|
|
2926
2925
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
2927
2926
|
VLazy: typeof import('vuetify/components')['VLazy']
|
|
2927
|
+
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
2928
2928
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
|
2929
2929
|
VParallax: typeof import('vuetify/components')['VParallax']
|
|
2930
2930
|
VRadio: typeof import('vuetify/components')['VRadio']
|
|
2931
|
-
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
|
2932
2931
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
|
2933
|
-
|
|
2932
|
+
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
|
2934
2933
|
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
|
2934
|
+
VSparkline: typeof import('vuetify/components')['VSparkline']
|
|
2935
2935
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
|
2936
2936
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
|
2937
2937
|
VValidation: typeof import('vuetify/components')['VValidation']
|
|
2938
|
-
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
|
2939
2938
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
|
2940
2939
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
|
2941
2940
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
|
@@ -2952,24 +2951,25 @@ declare module 'vue' {
|
|
|
2952
2951
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
|
2953
2952
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
|
2954
2953
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
|
2954
|
+
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
|
2955
2955
|
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
|
2956
|
-
|
|
2957
|
-
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
2958
|
-
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
2959
|
-
VPie: typeof import('vuetify/labs/components')['VPie']
|
|
2960
|
-
VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
|
|
2961
|
-
VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
|
|
2956
|
+
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
|
2962
2957
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
2963
2958
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
2964
|
-
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
|
2965
2959
|
VVideo: typeof import('vuetify/labs/components')['VVideo']
|
|
2966
2960
|
VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
|
|
2967
2961
|
VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
|
|
2962
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
|
2963
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
2964
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
2968
2965
|
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
|
2969
2966
|
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
|
2970
|
-
|
|
2971
|
-
|
|
2967
|
+
VPie: typeof import('vuetify/labs/components')['VPie']
|
|
2968
|
+
VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
|
|
2969
|
+
VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
|
|
2972
2970
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
|
2971
|
+
VMaskInput: typeof import('vuetify/labs/components')['VMaskInput']
|
|
2972
|
+
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
|
2973
2973
|
}
|
|
2974
2974
|
export interface GlobalDirectives {
|
|
2975
2975
|
vClickOutside: typeof import('vuetify/directives')['ClickOutside']
|