vuetify 3.3.10 → 3.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_component-variables-labs.sass +3 -1
- package/dist/json/attributes.json +221 -33
- package/dist/json/importMap-labs.json +28 -0
- package/dist/json/tags.json +79 -0
- package/dist/json/web-types.json +693 -34
- package/dist/vuetify-labs.css +1050 -885
- package/dist/vuetify-labs.d.ts +2802 -304
- package/dist/vuetify-labs.esm.js +719 -68
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +719 -68
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +187 -182
- package/dist/vuetify.d.ts +64 -29
- package/dist/vuetify.esm.js +137 -61
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +137 -61
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +954 -947
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/md1.mjs +5 -0
- package/lib/blueprints/md1.mjs.map +1 -1
- package/lib/blueprints/md2.mjs +5 -0
- package/lib/blueprints/md2.mjs.map +1 -1
- package/lib/blueprints/md3.mjs +5 -0
- package/lib/blueprints/md3.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +13 -10
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +6 -0
- package/lib/components/VCarousel/index.d.mts +12 -10
- package/lib/components/VChip/VChip.mjs +3 -3
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +10 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +6 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +8 -3
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.mjs +29 -4
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +2 -2
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.mts +8 -8
- package/lib/components/VRating/VRating.mjs +4 -2
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +11 -4
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +6 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.mjs +2 -3
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs +1 -0
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.css +3 -0
- package/lib/components/VSwitch/VSwitch.sass +3 -0
- package/lib/components/VSwitch/_variables.scss +1 -0
- package/lib/components/VTable/VTable.css +2 -0
- package/lib/components/VTable/VTable.sass +2 -0
- package/lib/components/VTimeline/VTimeline.css +2 -2
- package/lib/components/VTimeline/VTimeline.sass +2 -2
- package/lib/components/VWindow/VWindow.mjs +1 -0
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +3 -1
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.mts +29 -11
- package/lib/components/index.d.mts +57 -29
- package/lib/composables/group.mjs +1 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/theme.mjs +12 -6
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +7 -0
- package/lib/labs/VDatePicker/VDatePicker.css +6 -5
- package/lib/labs/VDatePicker/VDatePicker.mjs +3 -3
- package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePicker.sass +8 -9
- package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs +2 -2
- package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +4 -5
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VOtpInput/VOtpInput.css +53 -0
- package/lib/labs/VOtpInput/VOtpInput.mjs +213 -0
- package/lib/labs/VOtpInput/VOtpInput.mjs.map +1 -0
- package/lib/labs/VOtpInput/VOtpInput.sass +55 -0
- package/lib/labs/VOtpInput/_variables.scss +2 -0
- package/lib/labs/VOtpInput/index.d.mts +459 -0
- package/lib/labs/VOtpInput/index.mjs +2 -0
- package/lib/labs/VOtpInput/index.mjs.map +1 -0
- package/lib/labs/VPicker/VPicker.mjs +1 -1
- package/lib/labs/VPicker/VPicker.mjs.map +1 -1
- package/lib/labs/VStepper/VStepper.css +42 -0
- package/lib/labs/VStepper/VStepper.mjs +147 -0
- package/lib/labs/VStepper/VStepper.mjs.map +1 -0
- package/lib/labs/VStepper/VStepper.sass +44 -0
- package/lib/labs/VStepper/VStepperActions.mjs +61 -0
- package/lib/labs/VStepper/VStepperActions.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperHeader.mjs +4 -0
- package/lib/labs/VStepper/VStepperHeader.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperItem.css +67 -0
- package/lib/labs/VStepper/VStepperItem.mjs +114 -0
- package/lib/labs/VStepper/VStepperItem.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperItem.sass +71 -0
- package/lib/labs/VStepper/VStepperWindow.mjs +50 -0
- package/lib/labs/VStepper/VStepperWindow.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperWindowItem.mjs +24 -0
- package/lib/labs/VStepper/VStepperWindowItem.mjs.map +1 -0
- package/lib/labs/VStepper/_variables.scss +4 -0
- package/lib/labs/VStepper/index.d.mts +2051 -0
- package/lib/labs/VStepper/index.mjs +7 -0
- package/lib/labs/VStepper/index.mjs.map +1 -0
- package/lib/labs/components.d.mts +2751 -267
- package/lib/labs/components.mjs +2 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/labs/date/adapters/vuetify.mjs +6 -7
- package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
- package/lib/locale/af.mjs +6 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +6 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +6 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +6 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +6 -1
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +6 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +6 -1
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +6 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +6 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +6 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +6 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +6 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +6 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +6 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +6 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +6 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +6 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +6 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +6 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +6 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +210 -0
- package/lib/locale/it.mjs +6 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +6 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +6 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +6 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +6 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +6 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +6 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +6 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +6 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +23 -18
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +6 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +6 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +6 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +6 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +6 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +6 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +6 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +6 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +6 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +6 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +6 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +6 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/util/globals.mjs +0 -1
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +32 -12
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +3 -2
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.3.
|
|
2
|
+
* Vuetify v3.3.11
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -75,6 +75,10 @@
|
|
|
75
75
|
}
|
|
76
76
|
}, 'component');
|
|
77
77
|
|
|
78
|
+
const IN_BROWSER = typeof window !== 'undefined';
|
|
79
|
+
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
80
|
+
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
|
81
|
+
|
|
78
82
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
79
83
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
80
84
|
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
|
@@ -407,12 +411,22 @@
|
|
|
407
411
|
}
|
|
408
412
|
}
|
|
409
413
|
function focusableChildren(el) {
|
|
410
|
-
|
|
414
|
+
let filterByTabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
415
|
+
const targets = ['button', '[href]', 'input:not([type="hidden"])', 'select', 'textarea', '[tabindex]'].map(s => `${s}${filterByTabIndex ? ':not([tabindex="-1"])' : ''}:not([disabled])`).join(', ');
|
|
411
416
|
return [...el.querySelectorAll(targets)];
|
|
412
417
|
}
|
|
418
|
+
function getNextElement(elements, location, condition) {
|
|
419
|
+
let _el;
|
|
420
|
+
let idx = elements.indexOf(document.activeElement);
|
|
421
|
+
const inc = location === 'next' ? 1 : -1;
|
|
422
|
+
do {
|
|
423
|
+
idx += inc;
|
|
424
|
+
_el = elements[idx];
|
|
425
|
+
} while ((!_el || _el.offsetParent == null || !(condition?.(_el) ?? true)) && idx < elements.length && idx >= 0);
|
|
426
|
+
return _el;
|
|
427
|
+
}
|
|
413
428
|
function focusChild(el, location) {
|
|
414
429
|
const focusable = focusableChildren(el);
|
|
415
|
-
const idx = focusable.indexOf(document.activeElement);
|
|
416
430
|
if (!location) {
|
|
417
431
|
if (el === document.activeElement || !el.contains(document.activeElement)) {
|
|
418
432
|
focusable[0]?.focus();
|
|
@@ -421,19 +435,26 @@
|
|
|
421
435
|
focusable[0]?.focus();
|
|
422
436
|
} else if (location === 'last') {
|
|
423
437
|
focusable.at(-1)?.focus();
|
|
438
|
+
} else if (typeof location === 'number') {
|
|
439
|
+
focusable[location]?.focus();
|
|
424
440
|
} else {
|
|
425
|
-
|
|
426
|
-
let idxx = idx;
|
|
427
|
-
const inc = location === 'next' ? 1 : -1;
|
|
428
|
-
do {
|
|
429
|
-
idxx += inc;
|
|
430
|
-
_el = focusable[idxx];
|
|
431
|
-
} while ((!_el || _el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
|
441
|
+
const _el = getNextElement(focusable, location);
|
|
432
442
|
if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');
|
|
433
443
|
}
|
|
434
444
|
}
|
|
435
445
|
function noop() {}
|
|
436
446
|
|
|
447
|
+
/** Returns null if the selector is not supported or we can't check */
|
|
448
|
+
function matchesSelector(el, selector) {
|
|
449
|
+
const supportsSelector = IN_BROWSER && typeof CSS !== 'undefined' && typeof CSS.supports !== 'undefined' && CSS.supports(`selector(${selector})`);
|
|
450
|
+
if (!supportsSelector) return null;
|
|
451
|
+
try {
|
|
452
|
+
return !!el && el.matches(selector);
|
|
453
|
+
} catch (err) {
|
|
454
|
+
return null;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
|
|
437
458
|
// Utilities
|
|
438
459
|
const block = ['top', 'bottom'];
|
|
439
460
|
const inline = ['start', 'end', 'left', 'right'];
|
|
@@ -1279,11 +1300,6 @@
|
|
|
1279
1300
|
return ['scroll', 'auto'].includes(style.overflowY);
|
|
1280
1301
|
}
|
|
1281
1302
|
|
|
1282
|
-
const IN_BROWSER = typeof window !== 'undefined';
|
|
1283
|
-
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
1284
|
-
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
|
1285
|
-
const SUPPORTS_FOCUS_VISIBLE = IN_BROWSER && typeof CSS !== 'undefined' && typeof CSS.supports !== 'undefined' && CSS.supports('selector(:focus-visible)');
|
|
1286
|
-
|
|
1287
1303
|
// Utilities
|
|
1288
1304
|
|
|
1289
1305
|
// Types
|
|
@@ -1685,7 +1701,8 @@
|
|
|
1685
1701
|
input: {
|
|
1686
1702
|
clear: 'Clear {0}',
|
|
1687
1703
|
prependAction: '{0} prepended action',
|
|
1688
|
-
appendAction: '{0} appended action'
|
|
1704
|
+
appendAction: '{0} appended action',
|
|
1705
|
+
otp: 'Please enter OTP character {0}'
|
|
1689
1706
|
},
|
|
1690
1707
|
fileInput: {
|
|
1691
1708
|
counter: '{0} files',
|
|
@@ -1706,6 +1723,10 @@
|
|
|
1706
1723
|
last: 'Last page'
|
|
1707
1724
|
}
|
|
1708
1725
|
},
|
|
1726
|
+
stepper: {
|
|
1727
|
+
next: 'Next',
|
|
1728
|
+
prev: 'Previous'
|
|
1729
|
+
},
|
|
1709
1730
|
rating: {
|
|
1710
1731
|
ariaLabel: {
|
|
1711
1732
|
item: 'Rating {0} of {1}'
|
|
@@ -2244,9 +2265,11 @@
|
|
|
2244
2265
|
if (head) {
|
|
2245
2266
|
if (head.push) {
|
|
2246
2267
|
const entry = head.push(getHead);
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2268
|
+
if (IN_BROWSER) {
|
|
2269
|
+
vue.watch(styles, () => {
|
|
2270
|
+
entry.patch(getHead);
|
|
2271
|
+
});
|
|
2272
|
+
}
|
|
2250
2273
|
} else {
|
|
2251
2274
|
if (IN_BROWSER) {
|
|
2252
2275
|
head.addHeadObjs(vue.computed(getHead));
|
|
@@ -2257,9 +2280,13 @@
|
|
|
2257
2280
|
}
|
|
2258
2281
|
} else {
|
|
2259
2282
|
let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2283
|
+
if (IN_BROWSER) {
|
|
2284
|
+
vue.watch(styles, updateStyles, {
|
|
2285
|
+
immediate: true
|
|
2286
|
+
});
|
|
2287
|
+
} else {
|
|
2288
|
+
updateStyles();
|
|
2289
|
+
}
|
|
2263
2290
|
function updateStyles() {
|
|
2264
2291
|
if (typeof document !== 'undefined' && !styleEl) {
|
|
2265
2292
|
const el = document.createElement('style');
|
|
@@ -3864,7 +3891,7 @@
|
|
|
3864
3891
|
throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);
|
|
3865
3892
|
}
|
|
3866
3893
|
const value = vue.toRef(props, 'value');
|
|
3867
|
-
const disabled = vue.computed(() => group.disabled.value || props.disabled);
|
|
3894
|
+
const disabled = vue.computed(() => !!(group.disabled.value || props.disabled));
|
|
3868
3895
|
group.register({
|
|
3869
3896
|
id,
|
|
3870
3897
|
value,
|
|
@@ -5799,7 +5826,7 @@
|
|
|
5799
5826
|
});
|
|
5800
5827
|
function onFocus(e) {
|
|
5801
5828
|
isFocused.value = true;
|
|
5802
|
-
if (
|
|
5829
|
+
if (matchesSelector(e.target, ':focus-visible') !== false) {
|
|
5803
5830
|
isFocusVisible.value = true;
|
|
5804
5831
|
}
|
|
5805
5832
|
}
|
|
@@ -6808,7 +6835,7 @@
|
|
|
6808
6835
|
}, [!slots.filter ? vue.createVNode(VIcon, {
|
|
6809
6836
|
"key": "filter-icon",
|
|
6810
6837
|
"icon": props.filterIcon
|
|
6811
|
-
}, null) : vue.
|
|
6838
|
+
}, null) : vue.createVNode(VDefaultsProvider, {
|
|
6812
6839
|
"key": "filter-defaults",
|
|
6813
6840
|
"disabled": !props.filterIcon,
|
|
6814
6841
|
"defaults": {
|
|
@@ -6816,7 +6843,7 @@
|
|
|
6816
6843
|
icon: props.filterIcon
|
|
6817
6844
|
}
|
|
6818
6845
|
}
|
|
6819
|
-
},
|
|
6846
|
+
}, slots.filter)]), [[vue.vShow, group.isSelected.value]])]
|
|
6820
6847
|
}), hasPrepend && vue.createVNode("div", {
|
|
6821
6848
|
"key": "prepend",
|
|
6822
6849
|
"class": "v-chip__prepend"
|
|
@@ -8897,7 +8924,7 @@
|
|
|
8897
8924
|
runCloseDelay();
|
|
8898
8925
|
},
|
|
8899
8926
|
onFocus: e => {
|
|
8900
|
-
if (
|
|
8927
|
+
if (matchesSelector(e.target, ':focus-visible') === false) return;
|
|
8901
8928
|
isFocused = true;
|
|
8902
8929
|
e.stopPropagation();
|
|
8903
8930
|
activatorEl.value = e.currentTarget || e.target;
|
|
@@ -9817,8 +9844,30 @@
|
|
|
9817
9844
|
}, 40);
|
|
9818
9845
|
}
|
|
9819
9846
|
});
|
|
9847
|
+
function onFocusIn(e) {
|
|
9848
|
+
const before = e.relatedTarget;
|
|
9849
|
+
const after = e.target;
|
|
9850
|
+
if (before !== after && overlay.value?.contentEl &&
|
|
9851
|
+
// We're the topmost menu
|
|
9852
|
+
overlay.value?.globalTop &&
|
|
9853
|
+
// It isn't the document or the menu body
|
|
9854
|
+
![document, overlay.value.contentEl].includes(after) &&
|
|
9855
|
+
// It isn't inside the menu body
|
|
9856
|
+
!overlay.value.contentEl.contains(after)) {
|
|
9857
|
+
const focusable = focusableChildren(overlay.value.contentEl);
|
|
9858
|
+
focusable[0]?.focus();
|
|
9859
|
+
}
|
|
9860
|
+
}
|
|
9820
9861
|
vue.watch(isActive, val => {
|
|
9821
|
-
|
|
9862
|
+
if (val) {
|
|
9863
|
+
parent?.register();
|
|
9864
|
+
document.addEventListener('focusin', onFocusIn, {
|
|
9865
|
+
once: true
|
|
9866
|
+
});
|
|
9867
|
+
} else {
|
|
9868
|
+
parent?.unregister();
|
|
9869
|
+
document.removeEventListener('focusin', onFocusIn);
|
|
9870
|
+
}
|
|
9822
9871
|
});
|
|
9823
9872
|
function onClickOutside() {
|
|
9824
9873
|
parent?.closeParents();
|
|
@@ -9826,8 +9875,11 @@
|
|
|
9826
9875
|
function onKeydown(e) {
|
|
9827
9876
|
if (props.disabled) return;
|
|
9828
9877
|
if (e.key === 'Tab') {
|
|
9829
|
-
|
|
9830
|
-
|
|
9878
|
+
const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);
|
|
9879
|
+
if (!nextElement) {
|
|
9880
|
+
isActive.value = false;
|
|
9881
|
+
overlay.value?.activatorEl?.focus();
|
|
9882
|
+
}
|
|
9831
9883
|
}
|
|
9832
9884
|
}
|
|
9833
9885
|
function onActivatorKeydown(e) {
|
|
@@ -10741,6 +10793,7 @@
|
|
|
10741
10793
|
type: Function,
|
|
10742
10794
|
default: deepEqual
|
|
10743
10795
|
},
|
|
10796
|
+
itemColor: String,
|
|
10744
10797
|
...makeItemsProps({
|
|
10745
10798
|
itemChildren: false
|
|
10746
10799
|
})
|
|
@@ -10793,7 +10846,12 @@
|
|
|
10793
10846
|
const form = useForm();
|
|
10794
10847
|
const selections = vue.computed(() => {
|
|
10795
10848
|
return model.value.map(v => {
|
|
10796
|
-
return items.value.find(item =>
|
|
10849
|
+
return items.value.find(item => {
|
|
10850
|
+
const itemRawValue = getPropertyFromItem(item.raw, props.itemValue);
|
|
10851
|
+
const modelRawValue = getPropertyFromItem(v.raw, props.itemValue);
|
|
10852
|
+
if (itemRawValue === undefined || modelRawValue === undefined) return false;
|
|
10853
|
+
return props.returnObject ? props.valueComparator(itemRawValue, modelRawValue) : props.valueComparator(item.value, v.value);
|
|
10854
|
+
}) || v;
|
|
10797
10855
|
});
|
|
10798
10856
|
});
|
|
10799
10857
|
const selected = vue.computed(() => selections.value.map(selection => selection.props.value));
|
|
@@ -10887,7 +10945,7 @@
|
|
|
10887
10945
|
isFocused.value = true;
|
|
10888
10946
|
}
|
|
10889
10947
|
function onModelUpdate(v) {
|
|
10890
|
-
if (v == null) model.value = [];else if (vTextFieldRef.value
|
|
10948
|
+
if (v == null) model.value = [];else if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {
|
|
10891
10949
|
const item = items.value.find(item => item.title === v);
|
|
10892
10950
|
if (item) {
|
|
10893
10951
|
select(item);
|
|
@@ -10949,7 +11007,8 @@
|
|
|
10949
11007
|
"onKeydown": onListKeydown,
|
|
10950
11008
|
"onFocusin": onFocusin,
|
|
10951
11009
|
"onScrollPassive": onListScroll,
|
|
10952
|
-
"tabindex": "-1"
|
|
11010
|
+
"tabindex": "-1",
|
|
11011
|
+
"color": props.itemColor ?? props.color
|
|
10953
11012
|
}, {
|
|
10954
11013
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
10955
11014
|
"title": t(props.noDataText)
|
|
@@ -11211,7 +11270,7 @@
|
|
|
11211
11270
|
const vTextFieldRef = vue.ref();
|
|
11212
11271
|
const isFocused = vue.shallowRef(false);
|
|
11213
11272
|
const isPristine = vue.shallowRef(true);
|
|
11214
|
-
const listHasFocus = vue.
|
|
11273
|
+
const listHasFocus = vue.shallowRef(false);
|
|
11215
11274
|
const vMenuRef = vue.ref();
|
|
11216
11275
|
const _menu = useProxiedModel(props, 'menu');
|
|
11217
11276
|
const menu = vue.computed({
|
|
@@ -11244,7 +11303,12 @@
|
|
|
11244
11303
|
} = useFilter(props, items, () => isPristine.value ? '' : search.value);
|
|
11245
11304
|
const selections = vue.computed(() => {
|
|
11246
11305
|
return model.value.map(v => {
|
|
11247
|
-
return items.value.find(item =>
|
|
11306
|
+
return items.value.find(item => {
|
|
11307
|
+
const itemRawValue = getPropertyFromItem(item.raw, props.itemValue);
|
|
11308
|
+
const modelRawValue = getPropertyFromItem(v.raw, props.itemValue);
|
|
11309
|
+
if (itemRawValue === undefined || modelRawValue === undefined) return false;
|
|
11310
|
+
return props.returnObject ? props.valueComparator(itemRawValue, modelRawValue) : props.valueComparator(item.value, v.value);
|
|
11311
|
+
}) || v;
|
|
11248
11312
|
});
|
|
11249
11313
|
});
|
|
11250
11314
|
const displayItems = vue.computed(() => {
|
|
@@ -11296,11 +11360,8 @@
|
|
|
11296
11360
|
if (['Escape'].includes(e.key)) {
|
|
11297
11361
|
menu.value = false;
|
|
11298
11362
|
}
|
|
11299
|
-
if (['Enter', '
|
|
11300
|
-
|
|
11301
|
-
select(filteredItems.value[0]);
|
|
11302
|
-
}
|
|
11303
|
-
isPristine.value = true;
|
|
11363
|
+
if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
|
|
11364
|
+
select(filteredItems.value[0]);
|
|
11304
11365
|
}
|
|
11305
11366
|
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
11306
11367
|
listRef.value?.focus('next');
|
|
@@ -11342,7 +11403,7 @@
|
|
|
11342
11403
|
search.value = e.target.value;
|
|
11343
11404
|
}
|
|
11344
11405
|
function onChange(e) {
|
|
11345
|
-
if (vTextFieldRef.value
|
|
11406
|
+
if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {
|
|
11346
11407
|
const item = items.value.find(item => item.title === e.target.value);
|
|
11347
11408
|
if (item) {
|
|
11348
11409
|
select(item);
|
|
@@ -11466,7 +11527,8 @@
|
|
|
11466
11527
|
"onFocusin": onFocusin,
|
|
11467
11528
|
"onFocusout": onFocusout,
|
|
11468
11529
|
"onScrollPassive": onListScroll,
|
|
11469
|
-
"tabindex": "-1"
|
|
11530
|
+
"tabindex": "-1",
|
|
11531
|
+
"color": props.itemColor ?? props.color
|
|
11470
11532
|
}, {
|
|
11471
11533
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
11472
11534
|
"title": t(props.noDataText)
|
|
@@ -12514,6 +12576,7 @@
|
|
|
12514
12576
|
},
|
|
12515
12577
|
// TODO: mandatory should probably not be exposed but do this for now
|
|
12516
12578
|
mandatory: {
|
|
12579
|
+
type: [Boolean, String],
|
|
12517
12580
|
default: 'force'
|
|
12518
12581
|
},
|
|
12519
12582
|
...makeComponentProps(),
|
|
@@ -12881,7 +12944,9 @@
|
|
|
12881
12944
|
"style": props.style
|
|
12882
12945
|
}, [hasContent.value && slots.default?.()]), [[vue.vShow, groupItem.isSelected.value]])]
|
|
12883
12946
|
}));
|
|
12884
|
-
return {
|
|
12947
|
+
return {
|
|
12948
|
+
groupItem
|
|
12949
|
+
};
|
|
12885
12950
|
}
|
|
12886
12951
|
});
|
|
12887
12952
|
|
|
@@ -13435,6 +13500,7 @@
|
|
|
13435
13500
|
const step = vue.computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
|
|
13436
13501
|
const decimals = vue.computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
|
|
13437
13502
|
function roundValue(value) {
|
|
13503
|
+
value = parseFloat(value);
|
|
13438
13504
|
if (step.value <= 0) return value;
|
|
13439
13505
|
const clamped = clamp(value, min.value, max.value);
|
|
13440
13506
|
const offset = min.value % step.value;
|
|
@@ -13938,9 +14004,8 @@
|
|
|
13938
14004
|
rtlClasses
|
|
13939
14005
|
} = useRtl();
|
|
13940
14006
|
const steps = useSteps(props);
|
|
13941
|
-
const model = useProxiedModel(props, 'modelValue', undefined,
|
|
13942
|
-
|
|
13943
|
-
return steps.roundValue(value);
|
|
14007
|
+
const model = useProxiedModel(props, 'modelValue', undefined, value => {
|
|
14008
|
+
return steps.roundValue(value == null ? steps.min.value : value);
|
|
13944
14009
|
});
|
|
13945
14010
|
const {
|
|
13946
14011
|
min,
|
|
@@ -14734,7 +14799,7 @@
|
|
|
14734
14799
|
const vTextFieldRef = vue.ref();
|
|
14735
14800
|
const isFocused = vue.shallowRef(false);
|
|
14736
14801
|
const isPristine = vue.shallowRef(true);
|
|
14737
|
-
const listHasFocus = vue.
|
|
14802
|
+
const listHasFocus = vue.shallowRef(false);
|
|
14738
14803
|
const vMenuRef = vue.ref();
|
|
14739
14804
|
const _menu = useProxiedModel(props, 'menu');
|
|
14740
14805
|
const menu = vue.computed({
|
|
@@ -14806,7 +14871,12 @@
|
|
|
14806
14871
|
} = useFilter(props, items, () => isPristine.value ? '' : search.value);
|
|
14807
14872
|
const selections = vue.computed(() => {
|
|
14808
14873
|
return model.value.map(v => {
|
|
14809
|
-
return items.value.find(item =>
|
|
14874
|
+
return items.value.find(item => {
|
|
14875
|
+
const itemRawValue = getPropertyFromItem(item.raw, props.itemValue);
|
|
14876
|
+
const modelRawValue = getPropertyFromItem(v.raw, props.itemValue);
|
|
14877
|
+
if (itemRawValue === undefined || modelRawValue === undefined) return false;
|
|
14878
|
+
return props.returnObject ? props.valueComparator(itemRawValue, modelRawValue) : props.valueComparator(item.value, v.value);
|
|
14879
|
+
}) || v;
|
|
14810
14880
|
});
|
|
14811
14881
|
});
|
|
14812
14882
|
const displayItems = vue.computed(() => {
|
|
@@ -15015,7 +15085,8 @@
|
|
|
15015
15085
|
"onFocusin": onFocusin,
|
|
15016
15086
|
"onFocusout": onFocusout,
|
|
15017
15087
|
"onScrollPassive": onListScroll,
|
|
15018
|
-
"tabindex": "-1"
|
|
15088
|
+
"tabindex": "-1",
|
|
15089
|
+
"color": props.itemColor ?? props.color
|
|
15019
15090
|
}, {
|
|
15020
15091
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
15021
15092
|
"title": t(props.noDataText)
|
|
@@ -15433,6 +15504,11 @@
|
|
|
15433
15504
|
return !groupItem.isSelected.value && selectedIndices.value.some(selectedIndex => selectedIndex - index === -1);
|
|
15434
15505
|
});
|
|
15435
15506
|
vue.provide(VExpansionPanelSymbol, groupItem);
|
|
15507
|
+
provideDefaults({
|
|
15508
|
+
VExpansionPanelText: {
|
|
15509
|
+
eager: vue.toRef(props, 'eager')
|
|
15510
|
+
}
|
|
15511
|
+
});
|
|
15436
15512
|
useRender(() => {
|
|
15437
15513
|
const hasText = !!(slots.text || props.text);
|
|
15438
15514
|
const hasTitle = !!(slots.title || props.title);
|
|
@@ -15457,8 +15533,7 @@
|
|
|
15457
15533
|
}, {
|
|
15458
15534
|
default: () => [slots.title ? slots.title() : props.title]
|
|
15459
15535
|
}), hasText && vue.createVNode(VExpansionPanelText, {
|
|
15460
|
-
"key": "text"
|
|
15461
|
-
"eager": props.eager
|
|
15536
|
+
"key": "text"
|
|
15462
15537
|
}, {
|
|
15463
15538
|
default: () => [slots.text ? slots.text() : props.text]
|
|
15464
15539
|
}), slots.default?.()]
|
|
@@ -17800,7 +17875,9 @@
|
|
|
17800
17875
|
value,
|
|
17801
17876
|
index,
|
|
17802
17877
|
rating: normalizedValue.value
|
|
17803
|
-
}) : vue.createVNode(VBtn,
|
|
17878
|
+
}) : vue.createVNode(VBtn, vue.mergeProps({
|
|
17879
|
+
"aria-label": t(props.itemAriaLabel, value, props.length)
|
|
17880
|
+
}, btnProps), null)]), vue.createVNode("input", {
|
|
17804
17881
|
"class": "v-rating__hidden",
|
|
17805
17882
|
"name": name.value,
|
|
17806
17883
|
"id": id,
|
|
@@ -19867,12 +19944,11 @@
|
|
|
19867
19944
|
function endOfMonth(date) {
|
|
19868
19945
|
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
|
19869
19946
|
}
|
|
19870
|
-
function
|
|
19871
|
-
const
|
|
19872
|
-
|
|
19873
|
-
|
|
19874
|
-
|
|
19875
|
-
return `${formattedValue}T00:00:00.000${offsetSign}${offsetValue}:00`;
|
|
19947
|
+
function parseLocalDate(value) {
|
|
19948
|
+
const parts = value.split('-').map(Number);
|
|
19949
|
+
|
|
19950
|
+
// new Date() uses local time zone when passing individual date component values
|
|
19951
|
+
return new Date(parts[0], parts[1] - 1, parts[2]);
|
|
19876
19952
|
}
|
|
19877
19953
|
const _YYYMMDD = /([12]\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\d|3[01]))/;
|
|
19878
19954
|
function date(value) {
|
|
@@ -19881,7 +19957,7 @@
|
|
|
19881
19957
|
if (typeof value === 'string') {
|
|
19882
19958
|
let parsed;
|
|
19883
19959
|
if (_YYYMMDD.test(value)) {
|
|
19884
|
-
|
|
19960
|
+
return parseLocalDate(value);
|
|
19885
19961
|
} else {
|
|
19886
19962
|
parsed = Date.parse(value);
|
|
19887
19963
|
}
|
|
@@ -20215,7 +20291,7 @@
|
|
|
20215
20291
|
date
|
|
20216
20292
|
};
|
|
20217
20293
|
}
|
|
20218
|
-
const version$1 = "3.3.
|
|
20294
|
+
const version$1 = "3.3.11";
|
|
20219
20295
|
createVuetify$1.version = version$1;
|
|
20220
20296
|
|
|
20221
20297
|
// Vue's inject() can only be used in setup
|
|
@@ -20240,7 +20316,7 @@
|
|
|
20240
20316
|
...options
|
|
20241
20317
|
});
|
|
20242
20318
|
};
|
|
20243
|
-
const version = "3.3.
|
|
20319
|
+
const version = "3.3.11";
|
|
20244
20320
|
createVuetify.version = version;
|
|
20245
20321
|
|
|
20246
20322
|
exports.components = components;
|