vuetify 3.3.12 → 3.4.0-alpha.0
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 +152 -16
- package/dist/json/importMap.json +4 -4
- package/dist/json/tags.json +34 -0
- package/dist/json/web-types.json +462 -48
- package/dist/vuetify-labs.css +1718 -606
- package/dist/vuetify-labs.d.ts +880 -276
- package/dist/vuetify-labs.esm.js +373 -189
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +372 -188
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1591 -479
- package/dist/vuetify.d.ts +865 -267
- package/dist/vuetify.esm.js +373 -189
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +372 -188
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +920 -905
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.mts +6 -6
- package/lib/components/VAutocomplete/VAutocomplete.mjs +6 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +62 -14
- package/lib/components/VAvatar/VAvatar.mjs +2 -1
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/index.d.mts +6 -0
- package/lib/components/VBanner/VBanner.mjs +5 -3
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/index.d.mts +10 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +9 -4
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.mts +28 -2
- package/lib/components/VBtn/VBtn.css +3 -0
- package/lib/components/VBtn/VBtn.sass +3 -0
- package/lib/components/VCarousel/index.d.mts +26 -0
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +14 -11
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +15 -1
- package/lib/components/VColorPicker/VColorPickerEdit.css +4 -2
- package/lib/components/VColorPicker/VColorPickerPreview.css +16 -6
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +28 -2
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -0
- package/lib/components/VColorPicker/_variables.scss +1 -0
- package/lib/components/VCombobox/VCombobox.mjs +6 -2
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +62 -14
- package/lib/components/VDialog/index.d.mts +41 -20
- package/lib/components/VField/VField.css +11 -6
- package/lib/components/VField/VField.mjs +5 -3
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +1 -0
- package/lib/components/VField/index.d.mts +4 -4
- package/lib/components/VFileInput/VFileInput.css +4 -0
- package/lib/components/VFileInput/VFileInput.sass +5 -1
- package/lib/components/VFileInput/_variables.scss +2 -1
- package/lib/components/VFileInput/index.d.mts +4 -4
- package/lib/components/VGrid/VGrid.css +153 -142
- package/lib/components/VImg/VImg.mjs +13 -1
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.mts +26 -0
- package/lib/components/VList/VList.css +1 -1
- package/lib/components/VList/VList.sass +1 -1
- package/lib/components/VList/VListItem.css +15 -10
- package/lib/components/VList/VListItem.mjs +6 -3
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +17 -10
- package/lib/components/VList/index.d.mts +12 -12
- package/lib/components/VMenu/VMenu.mjs +4 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +46 -25
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +0 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +5 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
- package/lib/components/VNavigationDrawer/_variables.scss +0 -1
- package/lib/components/VNavigationDrawer/index.d.mts +10 -0
- package/lib/components/VOverlay/VOverlay.mjs +9 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.mts +17 -8
- package/lib/components/VOverlay/locationStrategies.mjs +9 -9
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +3 -3
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +50 -21
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +3 -2
- package/lib/components/VRadio/index.d.mts +9 -1
- package/lib/components/VRadioGroup/VRadioGroup.css +6 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +5 -0
- package/lib/components/VRadioGroup/_variables.scss +3 -1
- package/lib/components/VRadioGroup/index.d.mts +3 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.mts +128 -33
- package/lib/components/VSelect/VSelect.mjs +14 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +62 -14
- package/lib/components/VSelectionControl/VSelectionControl.mjs +27 -21
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +33 -25
- package/lib/components/VSlideGroup/VSlideGroup.mjs +5 -3
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +10 -0
- package/lib/components/VSlider/VSlider.mjs +2 -1
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.css +8 -4
- package/lib/components/VSlider/VSliderTrack.css +22 -12
- package/lib/components/VSlider/index.d.mts +128 -33
- package/lib/components/VSlider/slider.mjs +5 -1
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.mts +41 -20
- package/lib/components/VSwitch/VSwitch.css +24 -17
- package/lib/components/VSwitch/VSwitch.mjs +37 -28
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +20 -11
- package/lib/components/VSwitch/_variables.scss +18 -6
- package/lib/components/VSwitch/index.d.mts +9 -1
- package/lib/components/VTabs/index.d.mts +10 -0
- package/lib/components/VTextField/VTextField.css +9 -2
- package/lib/components/VTextField/VTextField.mjs +6 -3
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +10 -3
- package/lib/components/VTextField/index.d.mts +22 -16
- package/lib/components/VTextarea/VTextarea.mjs +1 -2
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.mts +4 -4
- package/lib/components/VTimeline/VTimeline.css +21 -11
- package/lib/components/VTimeline/VTimeline.sass +6 -1
- package/lib/components/VToolbar/VToolbar.css +4 -2
- package/lib/components/VTooltip/index.d.mts +41 -20
- package/lib/components/index.d.mts +836 -265
- package/lib/components/transitions/dialog-transition.mjs +4 -3
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.d.mts +6 -6
- package/lib/composables/defaults.mjs +9 -9
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/directiveComponent.mjs +69 -0
- package/lib/composables/directiveComponent.mjs.map +1 -0
- package/lib/composables/display.mjs +23 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/theme.mjs +7 -7
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa.mjs +2 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.mjs +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.mjs +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.mjs +2 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.mjs +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.mts +33 -2
- package/lib/labs/VBottomSheet/index.d.mts +14 -8
- package/lib/labs/VDateInput/index.d.mts +10 -4
- package/lib/labs/VDatePicker/VDatePickerControls.css +1 -1
- package/lib/labs/VOtpInput/index.d.mts +4 -4
- package/lib/labs/components.d.mts +18 -12
- package/lib/locale/af.mjs +1 -0
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +1 -0
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +1 -0
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +1 -0
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +1 -0
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +1 -0
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +1 -0
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +1 -0
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +1 -0
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +1 -0
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +1 -0
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +1 -0
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +1 -0
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +1 -0
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +1 -0
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +1 -0
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +1 -0
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +1 -0
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +1 -0
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +1 -0
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +42 -0
- package/lib/locale/it.mjs +1 -0
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +1 -0
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +1 -0
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +1 -0
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +1 -0
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +1 -0
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +1 -0
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +1 -0
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +1 -0
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +1 -0
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +1 -0
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +1 -0
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +1 -0
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +1 -0
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +1 -0
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +1 -0
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +1 -0
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +1 -0
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +1 -0
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +1 -0
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +1 -0
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +1 -0
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/styles/main.css +1026 -0
- package/lib/styles/settings/_utilities.scss +20 -0
- package/lib/styles/tools/_rtl.sass +4 -2
- package/lib/util/box.mjs +12 -0
- package/lib/util/box.mjs.map +1 -1
- package/lib/util/globals.mjs +1 -0
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +19 -5
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +2 -1
- package/lib/util/injectSelf.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.
|
|
2
|
+
* Vuetify v3.4.0-alpha.0
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -78,6 +78,7 @@
|
|
|
78
78
|
const IN_BROWSER = typeof window !== 'undefined';
|
|
79
79
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
80
80
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
|
81
|
+
const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
|
|
81
82
|
|
|
82
83
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
83
84
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
@@ -161,7 +162,15 @@
|
|
|
161
162
|
return obj !== null && typeof obj === 'object' && !Array.isArray(obj);
|
|
162
163
|
}
|
|
163
164
|
function refElement(obj) {
|
|
164
|
-
|
|
165
|
+
if (obj && '$el' in obj) {
|
|
166
|
+
const el = obj.$el;
|
|
167
|
+
if (el?.nodeType === Node.TEXT_NODE) {
|
|
168
|
+
// Multi-root component, use the first element
|
|
169
|
+
return el.nextElementSibling;
|
|
170
|
+
}
|
|
171
|
+
return el;
|
|
172
|
+
}
|
|
173
|
+
return obj;
|
|
165
174
|
}
|
|
166
175
|
|
|
167
176
|
// KeyboardEvent.keyCode aliases
|
|
@@ -228,14 +237,22 @@
|
|
|
228
237
|
exclude.forEach(prop => delete clone[prop]);
|
|
229
238
|
return clone;
|
|
230
239
|
}
|
|
240
|
+
const onRE = /^on[^a-z]/;
|
|
241
|
+
const isOn = key => onRE.test(key);
|
|
242
|
+
const bubblingEvents = ['onAfterscriptexecute', 'onAnimationcancel', 'onAnimationend', 'onAnimationiteration', 'onAnimationstart', 'onAuxclick', 'onBeforeinput', 'onBeforescriptexecute', 'onChange', 'onClick', 'onCompositionend', 'onCompositionstart', 'onCompositionupdate', 'onContextmenu', 'onCopy', 'onCut', 'onDblclick', 'onFocusin', 'onFocusout', 'onFullscreenchange', 'onFullscreenerror', 'onGesturechange', 'onGestureend', 'onGesturestart', 'onGotpointercapture', 'onInput', 'onKeydown', 'onKeypress', 'onKeyup', 'onLostpointercapture', 'onMousedown', 'onMousemove', 'onMouseout', 'onMouseover', 'onMouseup', 'onMousewheel', 'onPaste', 'onPointercancel', 'onPointerdown', 'onPointerenter', 'onPointerleave', 'onPointermove', 'onPointerout', 'onPointerover', 'onPointerup', 'onReset', 'onSelect', 'onSubmit', 'onTouchcancel', 'onTouchend', 'onTouchmove', 'onTouchstart', 'onTransitioncancel', 'onTransitionend', 'onTransitionrun', 'onTransitionstart', 'onWheel'];
|
|
231
243
|
|
|
232
244
|
/**
|
|
233
245
|
* Filter attributes that should be applied to
|
|
234
|
-
* the root element of
|
|
246
|
+
* the root element of an input component. Remaining
|
|
235
247
|
* attributes should be passed to the <input> element inside.
|
|
236
248
|
*/
|
|
237
249
|
function filterInputAttrs(attrs) {
|
|
238
|
-
|
|
250
|
+
const [events, props] = pick(attrs, [onRE]);
|
|
251
|
+
const inputEvents = omit(events, bubblingEvents);
|
|
252
|
+
const [rootAttrs, inputAttrs] = pick(props, ['class', 'style', 'id', /^data-/]);
|
|
253
|
+
Object.assign(rootAttrs, events);
|
|
254
|
+
Object.assign(inputAttrs, inputEvents);
|
|
255
|
+
return [rootAttrs, inputAttrs];
|
|
239
256
|
}
|
|
240
257
|
function wrapInArray(v) {
|
|
241
258
|
return v == null ? [] : Array.isArray(v) ? v : [v];
|
|
@@ -388,8 +405,6 @@
|
|
|
388
405
|
function includes(arr, val) {
|
|
389
406
|
return arr.includes(val);
|
|
390
407
|
}
|
|
391
|
-
const onRE = /^on[^a-z]/;
|
|
392
|
-
const isOn = key => onRE.test(key);
|
|
393
408
|
function eventName(propName) {
|
|
394
409
|
return propName[2].toLowerCase() + propName.slice(3);
|
|
395
410
|
}
|
|
@@ -546,6 +561,18 @@
|
|
|
546
561
|
}
|
|
547
562
|
};
|
|
548
563
|
}
|
|
564
|
+
function getTargetBox(target) {
|
|
565
|
+
if (Array.isArray(target)) {
|
|
566
|
+
return new Box({
|
|
567
|
+
x: target[0],
|
|
568
|
+
y: target[1],
|
|
569
|
+
width: 0,
|
|
570
|
+
height: 0
|
|
571
|
+
});
|
|
572
|
+
} else {
|
|
573
|
+
return target.getBoundingClientRect();
|
|
574
|
+
}
|
|
575
|
+
}
|
|
549
576
|
|
|
550
577
|
// Utilities
|
|
551
578
|
|
|
@@ -1017,34 +1044,6 @@
|
|
|
1017
1044
|
|
|
1018
1045
|
// Types
|
|
1019
1046
|
|
|
1020
|
-
function useToggleScope(source, fn) {
|
|
1021
|
-
let scope;
|
|
1022
|
-
function start() {
|
|
1023
|
-
scope = vue.effectScope();
|
|
1024
|
-
scope.run(() => fn.length ? fn(() => {
|
|
1025
|
-
scope?.stop();
|
|
1026
|
-
start();
|
|
1027
|
-
}) : fn());
|
|
1028
|
-
}
|
|
1029
|
-
vue.watch(source, active => {
|
|
1030
|
-
if (active && !scope) {
|
|
1031
|
-
start();
|
|
1032
|
-
} else if (!active) {
|
|
1033
|
-
scope?.stop();
|
|
1034
|
-
scope = undefined;
|
|
1035
|
-
}
|
|
1036
|
-
}, {
|
|
1037
|
-
immediate: true
|
|
1038
|
-
});
|
|
1039
|
-
vue.onScopeDispose(() => {
|
|
1040
|
-
scope?.stop();
|
|
1041
|
-
});
|
|
1042
|
-
}
|
|
1043
|
-
|
|
1044
|
-
// Composables
|
|
1045
|
-
|
|
1046
|
-
// Types
|
|
1047
|
-
|
|
1048
1047
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
|
1049
1048
|
function createDefaults(options) {
|
|
1050
1049
|
return vue.ref(options);
|
|
@@ -1063,6 +1062,7 @@
|
|
|
1063
1062
|
const scoped = vue.unref(options?.scoped);
|
|
1064
1063
|
const reset = vue.unref(options?.reset);
|
|
1065
1064
|
const root = vue.unref(options?.root);
|
|
1065
|
+
if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;
|
|
1066
1066
|
let properties = mergeDeep(providedDefaults.value, {
|
|
1067
1067
|
prev: injectedDefaults.value
|
|
1068
1068
|
});
|
|
@@ -1118,16 +1118,16 @@
|
|
|
1118
1118
|
let [key] = _ref;
|
|
1119
1119
|
return key.startsWith(key[0].toUpperCase());
|
|
1120
1120
|
});
|
|
1121
|
-
|
|
1121
|
+
_subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined;
|
|
1122
|
+
} else {
|
|
1123
|
+
_subcomponentDefaults.value = undefined;
|
|
1122
1124
|
}
|
|
1123
1125
|
});
|
|
1124
1126
|
function provideSubDefaults() {
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
|
1130
|
-
});
|
|
1127
|
+
const injected = injectSelf(DefaultsSymbol, vm);
|
|
1128
|
+
vue.provide(DefaultsSymbol, vue.computed(() => {
|
|
1129
|
+
return _subcomponentDefaults.value ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value) : injected?.value;
|
|
1130
|
+
}));
|
|
1131
1131
|
}
|
|
1132
1132
|
return {
|
|
1133
1133
|
props: _props,
|
|
@@ -1305,9 +1305,10 @@
|
|
|
1305
1305
|
// Types
|
|
1306
1306
|
|
|
1307
1307
|
function injectSelf(key) {
|
|
1308
|
+
let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');
|
|
1308
1309
|
const {
|
|
1309
1310
|
provides
|
|
1310
|
-
} =
|
|
1311
|
+
} = vm;
|
|
1311
1312
|
if (provides && key in provides) {
|
|
1312
1313
|
// TS doesn't allow symbol as index type
|
|
1313
1314
|
return provides[key];
|
|
@@ -1645,6 +1646,7 @@
|
|
|
1645
1646
|
|
|
1646
1647
|
var en = {
|
|
1647
1648
|
badge: 'Badge',
|
|
1649
|
+
open: 'Open',
|
|
1648
1650
|
close: 'Close',
|
|
1649
1651
|
dataIterator: {
|
|
1650
1652
|
noResultsText: 'No matching records found',
|
|
@@ -1783,6 +1785,34 @@
|
|
|
1783
1785
|
zhHant: false
|
|
1784
1786
|
};
|
|
1785
1787
|
|
|
1788
|
+
// Utilities
|
|
1789
|
+
|
|
1790
|
+
// Types
|
|
1791
|
+
|
|
1792
|
+
function useToggleScope(source, fn) {
|
|
1793
|
+
let scope;
|
|
1794
|
+
function start() {
|
|
1795
|
+
scope = vue.effectScope();
|
|
1796
|
+
scope.run(() => fn.length ? fn(() => {
|
|
1797
|
+
scope?.stop();
|
|
1798
|
+
start();
|
|
1799
|
+
}) : fn());
|
|
1800
|
+
}
|
|
1801
|
+
vue.watch(source, active => {
|
|
1802
|
+
if (active && !scope) {
|
|
1803
|
+
start();
|
|
1804
|
+
} else if (!active) {
|
|
1805
|
+
scope?.stop();
|
|
1806
|
+
scope = undefined;
|
|
1807
|
+
}
|
|
1808
|
+
}, {
|
|
1809
|
+
immediate: true
|
|
1810
|
+
});
|
|
1811
|
+
vue.onScopeDispose(() => {
|
|
1812
|
+
scope?.stop();
|
|
1813
|
+
});
|
|
1814
|
+
}
|
|
1815
|
+
|
|
1786
1816
|
// Composables
|
|
1787
1817
|
|
|
1788
1818
|
// Types
|
|
@@ -2095,9 +2125,9 @@
|
|
|
2095
2125
|
surface: '#FFFFFF',
|
|
2096
2126
|
'surface-variant': '#424242',
|
|
2097
2127
|
'on-surface-variant': '#EEEEEE',
|
|
2098
|
-
primary: '#
|
|
2099
|
-
'primary-darken-1': '#
|
|
2100
|
-
secondary: '#
|
|
2128
|
+
primary: '#1867C0',
|
|
2129
|
+
'primary-darken-1': '#1F5592',
|
|
2130
|
+
secondary: '#48A9A6',
|
|
2101
2131
|
'secondary-darken-1': '#018786',
|
|
2102
2132
|
error: '#B00020',
|
|
2103
2133
|
info: '#2196F3',
|
|
@@ -2130,10 +2160,10 @@
|
|
|
2130
2160
|
surface: '#212121',
|
|
2131
2161
|
'surface-variant': '#BDBDBD',
|
|
2132
2162
|
'on-surface-variant': '#424242',
|
|
2133
|
-
primary: '#
|
|
2134
|
-
'primary-darken-1': '#
|
|
2135
|
-
secondary: '#
|
|
2136
|
-
'secondary-darken-1': '#
|
|
2163
|
+
primary: '#2196F3',
|
|
2164
|
+
'primary-darken-1': '#277CC1',
|
|
2165
|
+
secondary: '#54B6B2',
|
|
2166
|
+
'secondary-darken-1': '#48A9A6',
|
|
2137
2167
|
error: '#CF6679',
|
|
2138
2168
|
info: '#2196F3',
|
|
2139
2169
|
success: '#4CAF50',
|
|
@@ -2618,7 +2648,7 @@
|
|
|
2618
2648
|
// Types
|
|
2619
2649
|
|
|
2620
2650
|
const makeVDialogTransitionProps = propsFactory({
|
|
2621
|
-
target: Object
|
|
2651
|
+
target: [Object, Array]
|
|
2622
2652
|
}, 'v-dialog-transition');
|
|
2623
2653
|
const VDialogTransition = genericComponent()({
|
|
2624
2654
|
name: 'VDialogTransition',
|
|
@@ -2720,7 +2750,7 @@
|
|
|
2720
2750
|
return els && [...els];
|
|
2721
2751
|
}
|
|
2722
2752
|
function getDimensions(target, el) {
|
|
2723
|
-
const targetBox = target
|
|
2753
|
+
const targetBox = getTargetBox(target);
|
|
2724
2754
|
const elBox = nullifyTransforms(el);
|
|
2725
2755
|
const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));
|
|
2726
2756
|
const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');
|
|
@@ -2966,6 +2996,10 @@
|
|
|
2966
2996
|
const makeVImgProps = propsFactory({
|
|
2967
2997
|
alt: String,
|
|
2968
2998
|
cover: Boolean,
|
|
2999
|
+
draggable: {
|
|
3000
|
+
type: [Boolean, String],
|
|
3001
|
+
default: undefined
|
|
3002
|
+
},
|
|
2969
3003
|
eager: Boolean,
|
|
2970
3004
|
gradient: String,
|
|
2971
3005
|
lazySrc: String,
|
|
@@ -2984,6 +3018,8 @@
|
|
|
2984
3018
|
type: [String, Object],
|
|
2985
3019
|
default: ''
|
|
2986
3020
|
},
|
|
3021
|
+
crossorigin: String,
|
|
3022
|
+
referrerpolicy: String,
|
|
2987
3023
|
srcset: String,
|
|
2988
3024
|
...makeVResponsiveProps(),
|
|
2989
3025
|
...makeComponentProps(),
|
|
@@ -3108,6 +3144,9 @@
|
|
|
3108
3144
|
"src": normalisedSrc.value.src,
|
|
3109
3145
|
"srcset": normalisedSrc.value.srcset,
|
|
3110
3146
|
"alt": props.alt,
|
|
3147
|
+
"crossorigin": props.crossorigin,
|
|
3148
|
+
"referrerpolicy": props.referrerpolicy,
|
|
3149
|
+
"draggable": props.draggable,
|
|
3111
3150
|
"sizes": props.sizes,
|
|
3112
3151
|
"ref": image,
|
|
3113
3152
|
"onLoad": onLoad,
|
|
@@ -3129,7 +3168,10 @@
|
|
|
3129
3168
|
default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && vue.createVNode("img", {
|
|
3130
3169
|
"class": ['v-img__img', 'v-img__img--preload', containClasses.value],
|
|
3131
3170
|
"src": normalisedSrc.value.lazySrc,
|
|
3132
|
-
"alt": props.alt
|
|
3171
|
+
"alt": props.alt,
|
|
3172
|
+
"crossorigin": props.crossorigin,
|
|
3173
|
+
"referrerpolicy": props.referrerpolicy,
|
|
3174
|
+
"draggable": props.draggable
|
|
3133
3175
|
}, null)]
|
|
3134
3176
|
});
|
|
3135
3177
|
const __placeholder = () => {
|
|
@@ -4148,7 +4190,8 @@
|
|
|
4148
4190
|
file: 'mdi-paperclip',
|
|
4149
4191
|
plus: 'mdi-plus',
|
|
4150
4192
|
minus: 'mdi-minus',
|
|
4151
|
-
calendar: 'mdi-calendar'
|
|
4193
|
+
calendar: 'mdi-calendar',
|
|
4194
|
+
eyeDropper: 'mdi-eyedropper'
|
|
4152
4195
|
};
|
|
4153
4196
|
const mdi = {
|
|
4154
4197
|
// Not using mergeProps here, functional components merge props by default (?)
|
|
@@ -5738,6 +5781,7 @@
|
|
|
5738
5781
|
|
|
5739
5782
|
const makeVSelectionControlProps = propsFactory({
|
|
5740
5783
|
label: String,
|
|
5784
|
+
baseColor: String,
|
|
5741
5785
|
trueValue: null,
|
|
5742
5786
|
falseValue: null,
|
|
5743
5787
|
value: null,
|
|
@@ -5776,7 +5820,8 @@
|
|
|
5776
5820
|
textColorClasses,
|
|
5777
5821
|
textColorStyles
|
|
5778
5822
|
} = useTextColor(vue.computed(() => {
|
|
5779
|
-
|
|
5823
|
+
if (props.error || props.disabled) return undefined;
|
|
5824
|
+
return model.value ? props.color : props.baseColor;
|
|
5780
5825
|
}));
|
|
5781
5826
|
const icon = vue.computed(() => model.value ? props.trueIcon : props.falseIcon);
|
|
5782
5827
|
return {
|
|
@@ -5848,6 +5893,20 @@
|
|
|
5848
5893
|
}
|
|
5849
5894
|
}) : props.label;
|
|
5850
5895
|
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
|
5896
|
+
const inputNode = vue.createVNode("input", vue.mergeProps({
|
|
5897
|
+
"ref": input,
|
|
5898
|
+
"checked": model.value,
|
|
5899
|
+
"disabled": !!(props.readonly || props.disabled),
|
|
5900
|
+
"id": id.value,
|
|
5901
|
+
"onBlur": onBlur,
|
|
5902
|
+
"onFocus": onFocus,
|
|
5903
|
+
"onInput": onInput,
|
|
5904
|
+
"aria-disabled": !!(props.readonly || props.disabled),
|
|
5905
|
+
"type": props.type,
|
|
5906
|
+
"value": trueValue.value,
|
|
5907
|
+
"name": props.name,
|
|
5908
|
+
"aria-checked": props.type === 'checkbox' ? model.value : undefined
|
|
5909
|
+
}, inputAttrs), null);
|
|
5851
5910
|
return vue.createVNode("div", vue.mergeProps({
|
|
5852
5911
|
"class": ['v-selection-control', {
|
|
5853
5912
|
'v-selection-control--dirty': model.value,
|
|
@@ -5864,34 +5923,24 @@
|
|
|
5864
5923
|
"style": textColorStyles.value
|
|
5865
5924
|
}, [slots.default?.(), vue.withDirectives(vue.createVNode("div", {
|
|
5866
5925
|
"class": ['v-selection-control__input']
|
|
5867
|
-
}, [
|
|
5868
|
-
"key": "icon",
|
|
5869
|
-
"icon": icon.value
|
|
5870
|
-
}, null), vue.createVNode("input", vue.mergeProps({
|
|
5871
|
-
"ref": input,
|
|
5872
|
-
"checked": model.value,
|
|
5873
|
-
"disabled": !!(props.readonly || props.disabled),
|
|
5874
|
-
"id": id.value,
|
|
5875
|
-
"onBlur": onBlur,
|
|
5876
|
-
"onFocus": onFocus,
|
|
5877
|
-
"onInput": onInput,
|
|
5878
|
-
"aria-disabled": !!(props.readonly || props.disabled),
|
|
5879
|
-
"type": props.type,
|
|
5880
|
-
"value": trueValue.value,
|
|
5881
|
-
"name": props.name,
|
|
5882
|
-
"aria-checked": props.type === 'checkbox' ? model.value : undefined
|
|
5883
|
-
}, inputAttrs), null), slots.input?.({
|
|
5926
|
+
}, [slots.input?.({
|
|
5884
5927
|
model,
|
|
5885
5928
|
textColorClasses,
|
|
5886
5929
|
textColorStyles,
|
|
5930
|
+
inputNode,
|
|
5931
|
+
icon: icon.value,
|
|
5887
5932
|
props: {
|
|
5888
5933
|
onFocus,
|
|
5889
5934
|
onBlur,
|
|
5890
5935
|
id: id.value
|
|
5891
5936
|
}
|
|
5892
|
-
})
|
|
5937
|
+
}) ?? vue.createVNode(vue.Fragment, null, [icon.value && vue.createVNode(VIcon, {
|
|
5938
|
+
"key": "icon",
|
|
5939
|
+
"icon": icon.value
|
|
5940
|
+
}, null), inputNode])]), [[vue.resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && vue.createVNode(VLabel, {
|
|
5893
5941
|
"for": id.value,
|
|
5894
|
-
"clickable": true
|
|
5942
|
+
"clickable": true,
|
|
5943
|
+
"onClick": e => e.stopPropagation()
|
|
5895
5944
|
}, {
|
|
5896
5945
|
default: () => [label]
|
|
5897
5946
|
})]);
|
|
@@ -5940,16 +5989,19 @@
|
|
|
5940
5989
|
const trueIcon = vue.computed(() => {
|
|
5941
5990
|
return indeterminate.value ? props.indeterminateIcon : props.trueIcon;
|
|
5942
5991
|
});
|
|
5943
|
-
useRender(() =>
|
|
5944
|
-
|
|
5945
|
-
|
|
5946
|
-
|
|
5947
|
-
|
|
5948
|
-
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5992
|
+
useRender(() => {
|
|
5993
|
+
const controlProps = omit(VSelectionControl.filterProps(props)[0], ['modelValue']);
|
|
5994
|
+
return vue.createVNode(VSelectionControl, vue.mergeProps(controlProps, {
|
|
5995
|
+
"modelValue": model.value,
|
|
5996
|
+
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
|
5997
|
+
"class": ['v-checkbox-btn', props.class],
|
|
5998
|
+
"style": props.style,
|
|
5999
|
+
"type": "checkbox",
|
|
6000
|
+
"falseIcon": falseIcon.value,
|
|
6001
|
+
"trueIcon": trueIcon.value,
|
|
6002
|
+
"aria-checked": indeterminate.value ? 'mixed' : undefined
|
|
6003
|
+
}), slots);
|
|
6004
|
+
});
|
|
5953
6005
|
return {};
|
|
5954
6006
|
}
|
|
5955
6007
|
});
|
|
@@ -6513,12 +6565,12 @@
|
|
|
6513
6565
|
const uid = getUid();
|
|
6514
6566
|
const id = vue.computed(() => props.id || `checkbox-${uid}`);
|
|
6515
6567
|
useRender(() => {
|
|
6516
|
-
const [
|
|
6568
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
6517
6569
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
6518
6570
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6519
6571
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
6520
6572
|
"class": ['v-checkbox', props.class]
|
|
6521
|
-
},
|
|
6573
|
+
}, rootAttrs, inputProps, {
|
|
6522
6574
|
"modelValue": model.value,
|
|
6523
6575
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
6524
6576
|
"id": id.value,
|
|
@@ -6556,6 +6608,7 @@
|
|
|
6556
6608
|
end: Boolean,
|
|
6557
6609
|
icon: IconValue,
|
|
6558
6610
|
image: String,
|
|
6611
|
+
text: String,
|
|
6559
6612
|
...makeComponentProps(),
|
|
6560
6613
|
...makeDensityProps(),
|
|
6561
6614
|
...makeRoundedProps(),
|
|
@@ -6606,7 +6659,7 @@
|
|
|
6606
6659
|
}, null) : props.icon ? vue.createVNode(VIcon, {
|
|
6607
6660
|
"key": "icon",
|
|
6608
6661
|
"icon": props.icon
|
|
6609
|
-
}, null) : slots.default?.(), genOverlays(false, 'v-avatar')]
|
|
6662
|
+
}, null) : slots.default?.() ?? props.text, genOverlays(false, 'v-avatar')]
|
|
6610
6663
|
}));
|
|
6611
6664
|
return {};
|
|
6612
6665
|
}
|
|
@@ -7658,7 +7711,6 @@
|
|
|
7658
7711
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
|
7659
7712
|
"href": link.href.value,
|
|
7660
7713
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
|
7661
|
-
"title": props.title,
|
|
7662
7714
|
"onClick": onClick,
|
|
7663
7715
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
7664
7716
|
}, {
|
|
@@ -7691,7 +7743,9 @@
|
|
|
7691
7743
|
}
|
|
7692
7744
|
}, {
|
|
7693
7745
|
default: () => [slots.prepend?.(slotProps.value)]
|
|
7694
|
-
})
|
|
7746
|
+
}), vue.createVNode("div", {
|
|
7747
|
+
"class": "v-list-item__spacer"
|
|
7748
|
+
}, null)]), vue.createVNode("div", {
|
|
7695
7749
|
"class": "v-list-item__content",
|
|
7696
7750
|
"data-no-activator": ""
|
|
7697
7751
|
}, [hasTitle && vue.createVNode(VListItemTitle, {
|
|
@@ -7735,7 +7789,9 @@
|
|
|
7735
7789
|
}
|
|
7736
7790
|
}, {
|
|
7737
7791
|
default: () => [slots.append?.(slotProps.value)]
|
|
7738
|
-
})
|
|
7792
|
+
}), vue.createVNode("div", {
|
|
7793
|
+
"class": "v-list-item__spacer"
|
|
7794
|
+
}, null)])]
|
|
7739
7795
|
}), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
7740
7796
|
});
|
|
7741
7797
|
return {};
|
|
@@ -8384,7 +8440,7 @@
|
|
|
8384
8440
|
return contentBox;
|
|
8385
8441
|
}
|
|
8386
8442
|
function connectedLocationStrategy(data, props, contentStyles) {
|
|
8387
|
-
const activatorFixed = isFixedPosition(data.
|
|
8443
|
+
const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value);
|
|
8388
8444
|
if (activatorFixed) {
|
|
8389
8445
|
Object.assign(contentStyles.value, {
|
|
8390
8446
|
position: 'fixed',
|
|
@@ -8433,11 +8489,11 @@
|
|
|
8433
8489
|
const observer = new ResizeObserver(() => {
|
|
8434
8490
|
if (observe) updateLocation();
|
|
8435
8491
|
});
|
|
8436
|
-
vue.watch([data.
|
|
8437
|
-
let [
|
|
8438
|
-
let [
|
|
8439
|
-
if (
|
|
8440
|
-
if (
|
|
8492
|
+
vue.watch([data.target, data.contentEl], (_ref, _ref2) => {
|
|
8493
|
+
let [newTarget, newContentEl] = _ref;
|
|
8494
|
+
let [oldTarget, oldContentEl] = _ref2;
|
|
8495
|
+
if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget);
|
|
8496
|
+
if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget);
|
|
8441
8497
|
if (oldContentEl) observer.unobserve(oldContentEl);
|
|
8442
8498
|
if (newContentEl) observer.observe(newContentEl);
|
|
8443
8499
|
}, {
|
|
@@ -8453,8 +8509,8 @@
|
|
|
8453
8509
|
requestAnimationFrame(() => {
|
|
8454
8510
|
requestAnimationFrame(() => observe = true);
|
|
8455
8511
|
});
|
|
8456
|
-
if (!data.
|
|
8457
|
-
const targetBox = data.
|
|
8512
|
+
if (!data.target.value || !data.contentEl.value) return;
|
|
8513
|
+
const targetBox = getTargetBox(data.target.value);
|
|
8458
8514
|
const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
|
|
8459
8515
|
const scrollParents = getScrollParents(data.contentEl.value);
|
|
8460
8516
|
const viewportMargin = 12;
|
|
@@ -8741,11 +8797,11 @@
|
|
|
8741
8797
|
function onScroll(e) {
|
|
8742
8798
|
data.isActive.value = false;
|
|
8743
8799
|
}
|
|
8744
|
-
bindScroll(data.
|
|
8800
|
+
bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll);
|
|
8745
8801
|
}
|
|
8746
8802
|
function blockScrollStrategy(data, props) {
|
|
8747
8803
|
const offsetParent = data.root.value?.offsetParent;
|
|
8748
|
-
const scrollElements = [...new Set([...getScrollParents(data.
|
|
8804
|
+
const scrollElements = [...new Set([...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined), ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined)])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'));
|
|
8749
8805
|
const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;
|
|
8750
8806
|
const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);
|
|
8751
8807
|
if (scrollableParent) {
|
|
@@ -8789,7 +8845,7 @@
|
|
|
8789
8845
|
}
|
|
8790
8846
|
ric = (typeof requestIdleCallback === 'undefined' ? cb => cb() : requestIdleCallback)(() => {
|
|
8791
8847
|
scope.run(() => {
|
|
8792
|
-
bindScroll(data.
|
|
8848
|
+
bindScroll(data.targetEl.value ?? data.contentEl.value, e => {
|
|
8793
8849
|
if (slow) {
|
|
8794
8850
|
// If the position calculation is slow,
|
|
8795
8851
|
// defer updates until scrolling is finished.
|
|
@@ -8870,6 +8926,7 @@
|
|
|
8870
8926
|
// Types
|
|
8871
8927
|
|
|
8872
8928
|
const makeActivatorProps = propsFactory({
|
|
8929
|
+
target: [String, Object],
|
|
8873
8930
|
activator: [String, Object],
|
|
8874
8931
|
activatorProps: {
|
|
8875
8932
|
type: Object,
|
|
@@ -8892,6 +8949,7 @@
|
|
|
8892
8949
|
isActive,
|
|
8893
8950
|
isTop
|
|
8894
8951
|
} = _ref;
|
|
8952
|
+
const vm = getCurrentInstance('useActivator');
|
|
8895
8953
|
const activatorEl = vue.ref();
|
|
8896
8954
|
let isHovered = false;
|
|
8897
8955
|
let isFocused = false;
|
|
@@ -8909,10 +8967,14 @@
|
|
|
8909
8967
|
isActive.value = value;
|
|
8910
8968
|
}
|
|
8911
8969
|
});
|
|
8970
|
+
const cursorTarget = vue.ref();
|
|
8912
8971
|
const availableEvents = {
|
|
8913
8972
|
onClick: e => {
|
|
8914
8973
|
e.stopPropagation();
|
|
8915
8974
|
activatorEl.value = e.currentTarget || e.target;
|
|
8975
|
+
if (!isActive.value) {
|
|
8976
|
+
cursorTarget.value = [e.clientX, e.clientY];
|
|
8977
|
+
}
|
|
8916
8978
|
isActive.value = !isActive.value;
|
|
8917
8979
|
},
|
|
8918
8980
|
onMouseenter: e => {
|
|
@@ -9006,6 +9068,15 @@
|
|
|
9006
9068
|
isActive.value = false;
|
|
9007
9069
|
}
|
|
9008
9070
|
});
|
|
9071
|
+
vue.watch(isActive, val => {
|
|
9072
|
+
if (!val) {
|
|
9073
|
+
setTimeout(() => {
|
|
9074
|
+
cursorTarget.value = undefined;
|
|
9075
|
+
});
|
|
9076
|
+
}
|
|
9077
|
+
}, {
|
|
9078
|
+
flush: 'post'
|
|
9079
|
+
});
|
|
9009
9080
|
const activatorRef = vue.ref();
|
|
9010
9081
|
vue.watchEffect(() => {
|
|
9011
9082
|
if (!activatorRef.value) return;
|
|
@@ -9013,7 +9084,15 @@
|
|
|
9013
9084
|
activatorEl.value = refElement(activatorRef.value);
|
|
9014
9085
|
});
|
|
9015
9086
|
});
|
|
9016
|
-
const
|
|
9087
|
+
const targetRef = vue.ref();
|
|
9088
|
+
const target = vue.computed(() => {
|
|
9089
|
+
if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;
|
|
9090
|
+
if (targetRef.value) return refElement(targetRef.value);
|
|
9091
|
+
return getTarget(props.target, vm) || activatorEl.value;
|
|
9092
|
+
});
|
|
9093
|
+
const targetEl = vue.computed(() => {
|
|
9094
|
+
return Array.isArray(target.value) ? undefined : target.value;
|
|
9095
|
+
});
|
|
9017
9096
|
let scope;
|
|
9018
9097
|
vue.watch(() => !!props.activator, val => {
|
|
9019
9098
|
if (val && IN_BROWSER) {
|
|
@@ -9037,6 +9116,9 @@
|
|
|
9037
9116
|
return {
|
|
9038
9117
|
activatorEl,
|
|
9039
9118
|
activatorRef,
|
|
9119
|
+
target,
|
|
9120
|
+
targetEl,
|
|
9121
|
+
targetRef,
|
|
9040
9122
|
activatorEvents,
|
|
9041
9123
|
contentEvents,
|
|
9042
9124
|
scrimEvents
|
|
@@ -9078,31 +9160,34 @@
|
|
|
9078
9160
|
}
|
|
9079
9161
|
function getActivator() {
|
|
9080
9162
|
let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;
|
|
9081
|
-
|
|
9082
|
-
if (selector) {
|
|
9083
|
-
if (selector === 'parent') {
|
|
9084
|
-
let el = vm?.proxy?.$el?.parentNode;
|
|
9085
|
-
while (el.hasAttribute('data-no-activator')) {
|
|
9086
|
-
el = el.parentNode;
|
|
9087
|
-
}
|
|
9088
|
-
activator = el;
|
|
9089
|
-
} else if (typeof selector === 'string') {
|
|
9090
|
-
// Selector
|
|
9091
|
-
activator = document.querySelector(selector);
|
|
9092
|
-
} else if ('$el' in selector) {
|
|
9093
|
-
// Component (ref)
|
|
9094
|
-
activator = selector.$el;
|
|
9095
|
-
} else {
|
|
9096
|
-
// HTMLElement | Element
|
|
9097
|
-
activator = selector;
|
|
9098
|
-
}
|
|
9099
|
-
}
|
|
9163
|
+
const activator = getTarget(selector, vm);
|
|
9100
9164
|
|
|
9101
9165
|
// The activator should only be a valid element (Ignore comments and text nodes)
|
|
9102
|
-
activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator :
|
|
9166
|
+
activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined;
|
|
9103
9167
|
return activatorEl.value;
|
|
9104
9168
|
}
|
|
9105
9169
|
}
|
|
9170
|
+
function getTarget(selector, vm) {
|
|
9171
|
+
if (!selector) return;
|
|
9172
|
+
let target;
|
|
9173
|
+
if (selector === 'parent') {
|
|
9174
|
+
let el = vm?.proxy?.$el?.parentNode;
|
|
9175
|
+
while (el.hasAttribute('data-no-activator')) {
|
|
9176
|
+
el = el.parentNode;
|
|
9177
|
+
}
|
|
9178
|
+
target = el;
|
|
9179
|
+
} else if (typeof selector === 'string') {
|
|
9180
|
+
// Selector
|
|
9181
|
+
target = document.querySelector(selector);
|
|
9182
|
+
} else if ('$el' in selector) {
|
|
9183
|
+
// Component (ref)
|
|
9184
|
+
target = selector.$el;
|
|
9185
|
+
} else {
|
|
9186
|
+
// HTMLElement | Element | [x, y]
|
|
9187
|
+
target = selector;
|
|
9188
|
+
}
|
|
9189
|
+
return target;
|
|
9190
|
+
}
|
|
9106
9191
|
|
|
9107
9192
|
// Utilities
|
|
9108
9193
|
|
|
@@ -9226,10 +9311,30 @@
|
|
|
9226
9311
|
ssr: !!ssr
|
|
9227
9312
|
};
|
|
9228
9313
|
}
|
|
9314
|
+
const makeDisplayProps = propsFactory({
|
|
9315
|
+
mobileBreakpoint: [Number, String]
|
|
9316
|
+
}, 'display');
|
|
9229
9317
|
function useDisplay() {
|
|
9318
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
9319
|
+
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
9230
9320
|
const display = vue.inject(DisplaySymbol);
|
|
9231
9321
|
if (!display) throw new Error('Could not find Vuetify display injection');
|
|
9232
|
-
|
|
9322
|
+
const mobile = vue.computed(() => {
|
|
9323
|
+
if (!props.mobileBreakpoint) return display.mobile.value;
|
|
9324
|
+
const breakpointValue = typeof props.mobileBreakpoint === 'number' ? props.mobileBreakpoint : display.thresholds.value[props.mobileBreakpoint];
|
|
9325
|
+
return display.width.value < breakpointValue;
|
|
9326
|
+
});
|
|
9327
|
+
const displayClasses = vue.computed(() => {
|
|
9328
|
+
if (!name) return {};
|
|
9329
|
+
return {
|
|
9330
|
+
[`${name}--mobile`]: mobile.value
|
|
9331
|
+
};
|
|
9332
|
+
});
|
|
9333
|
+
return {
|
|
9334
|
+
...display,
|
|
9335
|
+
displayClasses,
|
|
9336
|
+
mobile
|
|
9337
|
+
};
|
|
9233
9338
|
}
|
|
9234
9339
|
|
|
9235
9340
|
// Composables
|
|
@@ -9546,6 +9651,9 @@
|
|
|
9546
9651
|
const {
|
|
9547
9652
|
activatorEl,
|
|
9548
9653
|
activatorRef,
|
|
9654
|
+
target,
|
|
9655
|
+
targetEl,
|
|
9656
|
+
targetRef,
|
|
9549
9657
|
activatorEvents,
|
|
9550
9658
|
contentEvents,
|
|
9551
9659
|
scrimEvents
|
|
@@ -9571,13 +9679,13 @@
|
|
|
9571
9679
|
} = useLocationStrategies(props, {
|
|
9572
9680
|
isRtl,
|
|
9573
9681
|
contentEl,
|
|
9574
|
-
|
|
9682
|
+
target,
|
|
9575
9683
|
isActive
|
|
9576
9684
|
});
|
|
9577
9685
|
useScrollStrategies(props, {
|
|
9578
9686
|
root,
|
|
9579
9687
|
contentEl,
|
|
9580
|
-
|
|
9688
|
+
targetEl,
|
|
9581
9689
|
isActive,
|
|
9582
9690
|
updateLocation
|
|
9583
9691
|
});
|
|
@@ -9645,7 +9753,8 @@
|
|
|
9645
9753
|
useRender(() => vue.createVNode(vue.Fragment, null, [slots.activator?.({
|
|
9646
9754
|
isActive: isActive.value,
|
|
9647
9755
|
props: vue.mergeProps({
|
|
9648
|
-
ref: activatorRef
|
|
9756
|
+
ref: activatorRef,
|
|
9757
|
+
targetRef
|
|
9649
9758
|
}, activatorEvents.value, props.activatorProps)
|
|
9650
9759
|
}), isMounted.value && hasContent.value && vue.createVNode(vue.Teleport, {
|
|
9651
9760
|
"disabled": !teleportTarget.value,
|
|
@@ -9668,7 +9777,7 @@
|
|
|
9668
9777
|
"appear": true,
|
|
9669
9778
|
"persisted": true,
|
|
9670
9779
|
"transition": props.transition,
|
|
9671
|
-
"target":
|
|
9780
|
+
"target": target.value,
|
|
9672
9781
|
"onAfterLeave": () => {
|
|
9673
9782
|
onAfterLeave();
|
|
9674
9783
|
emit('afterLeave');
|
|
@@ -9689,6 +9798,7 @@
|
|
|
9689
9798
|
})]));
|
|
9690
9799
|
return {
|
|
9691
9800
|
activatorEl,
|
|
9801
|
+
target,
|
|
9692
9802
|
animateClick,
|
|
9693
9803
|
contentEl,
|
|
9694
9804
|
globalTop,
|
|
@@ -9846,10 +9956,11 @@
|
|
|
9846
9956
|
}, 40);
|
|
9847
9957
|
}
|
|
9848
9958
|
});
|
|
9849
|
-
function onFocusIn(e) {
|
|
9959
|
+
async function onFocusIn(e) {
|
|
9850
9960
|
const before = e.relatedTarget;
|
|
9851
9961
|
const after = e.target;
|
|
9852
|
-
|
|
9962
|
+
await vue.nextTick();
|
|
9963
|
+
if (isActive.value && before !== after && overlay.value?.contentEl &&
|
|
9853
9964
|
// We're the topmost menu
|
|
9854
9965
|
overlay.value?.globalTop &&
|
|
9855
9966
|
// It isn't the document or the menu body
|
|
@@ -10185,7 +10296,7 @@
|
|
|
10185
10296
|
'v-field--no-label': !label,
|
|
10186
10297
|
[`v-field--variant-${props.variant}`]: true
|
|
10187
10298
|
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
|
|
10188
|
-
"style": [backgroundColorStyles.value,
|
|
10299
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
10189
10300
|
"onClick": onClick
|
|
10190
10301
|
}, attrs), [vue.createVNode("div", {
|
|
10191
10302
|
"class": "v-field__overlay"
|
|
@@ -10209,7 +10320,8 @@
|
|
|
10209
10320
|
"ref": floatingLabelRef,
|
|
10210
10321
|
"class": [textColorClasses.value],
|
|
10211
10322
|
"floating": true,
|
|
10212
|
-
"for": id.value
|
|
10323
|
+
"for": id.value,
|
|
10324
|
+
"style": textColorStyles.value
|
|
10213
10325
|
}, {
|
|
10214
10326
|
default: () => [label]
|
|
10215
10327
|
}), vue.createVNode(VFieldLabel, {
|
|
@@ -10245,7 +10357,8 @@
|
|
|
10245
10357
|
"key": "append-icon",
|
|
10246
10358
|
"name": "appendInner"
|
|
10247
10359
|
}, null)]), vue.createVNode("div", {
|
|
10248
|
-
"class": ['v-field__outline', textColorClasses.value]
|
|
10360
|
+
"class": ['v-field__outline', textColorClasses.value],
|
|
10361
|
+
"style": textColorStyles.value
|
|
10249
10362
|
}, [isOutlined && vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
|
|
10250
10363
|
"class": "v-field__outline__start"
|
|
10251
10364
|
}, null), hasLabel.value && vue.createVNode("div", {
|
|
@@ -10289,6 +10402,7 @@
|
|
|
10289
10402
|
persistentPlaceholder: Boolean,
|
|
10290
10403
|
persistentCounter: Boolean,
|
|
10291
10404
|
suffix: String,
|
|
10405
|
+
role: String,
|
|
10292
10406
|
type: {
|
|
10293
10407
|
type: String,
|
|
10294
10408
|
default: 'text'
|
|
@@ -10413,7 +10527,7 @@
|
|
|
10413
10527
|
"onClick:clear": onClear,
|
|
10414
10528
|
"onClick:prependInner": props['onClick:prependInner'],
|
|
10415
10529
|
"onClick:appendInner": props['onClick:appendInner'],
|
|
10416
|
-
"role":
|
|
10530
|
+
"role": props.role
|
|
10417
10531
|
}, fieldProps, {
|
|
10418
10532
|
"id": id.value,
|
|
10419
10533
|
"active": isActive.value || isDirty.value,
|
|
@@ -10452,10 +10566,12 @@
|
|
|
10452
10566
|
"class": "v-text-field__prefix"
|
|
10453
10567
|
}, [vue.createVNode("span", {
|
|
10454
10568
|
"class": "v-text-field__prefix__text"
|
|
10455
|
-
}, [props.prefix])]), vue.createVNode("div", {
|
|
10569
|
+
}, [props.prefix])]), slots.default ? vue.createVNode("div", {
|
|
10456
10570
|
"class": fieldClass,
|
|
10457
10571
|
"data-no-activator": ""
|
|
10458
|
-
}, [slots.default
|
|
10572
|
+
}, [slots.default(), inputNode]) : vue.cloneVNode(inputNode, {
|
|
10573
|
+
class: fieldClass
|
|
10574
|
+
}), props.suffix && vue.createVNode("span", {
|
|
10459
10575
|
"class": "v-text-field__suffix"
|
|
10460
10576
|
}, [vue.createVNode("span", {
|
|
10461
10577
|
"class": "v-text-field__suffix__text"
|
|
@@ -10774,6 +10890,14 @@
|
|
|
10774
10890
|
const makeSelectProps = propsFactory({
|
|
10775
10891
|
chips: Boolean,
|
|
10776
10892
|
closableChips: Boolean,
|
|
10893
|
+
closeText: {
|
|
10894
|
+
type: String,
|
|
10895
|
+
default: '$vuetify.close'
|
|
10896
|
+
},
|
|
10897
|
+
openText: {
|
|
10898
|
+
type: String,
|
|
10899
|
+
default: '$vuetify.open'
|
|
10900
|
+
},
|
|
10777
10901
|
eager: Boolean,
|
|
10778
10902
|
hideNoData: Boolean,
|
|
10779
10903
|
hideSelected: Boolean,
|
|
@@ -10803,7 +10927,8 @@
|
|
|
10803
10927
|
const makeVSelectProps = propsFactory({
|
|
10804
10928
|
...makeSelectProps(),
|
|
10805
10929
|
...omit(makeVTextFieldProps({
|
|
10806
|
-
modelValue: null
|
|
10930
|
+
modelValue: null,
|
|
10931
|
+
role: 'button'
|
|
10807
10932
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
10808
10933
|
...makeTransitionProps({
|
|
10809
10934
|
transition: {
|
|
@@ -10858,6 +10983,7 @@
|
|
|
10858
10983
|
});
|
|
10859
10984
|
const selected = vue.computed(() => selections.value.map(selection => selection.props.value));
|
|
10860
10985
|
const isFocused = vue.shallowRef(false);
|
|
10986
|
+
const label = vue.computed(() => menu.value ? props.closeText : props.openText);
|
|
10861
10987
|
let keyboardLookupPrefix = '';
|
|
10862
10988
|
let keyboardLookupLastTime;
|
|
10863
10989
|
const displayItems = vue.computed(() => {
|
|
@@ -10984,7 +11110,9 @@
|
|
|
10984
11110
|
"onClick:clear": onClear,
|
|
10985
11111
|
"onMousedown:control": onMousedownControl,
|
|
10986
11112
|
"onBlur": onBlur,
|
|
10987
|
-
"onKeydown": onKeydown
|
|
11113
|
+
"onKeydown": onKeydown,
|
|
11114
|
+
"aria-label": t(label.value),
|
|
11115
|
+
"title": t(label.value)
|
|
10988
11116
|
}), {
|
|
10989
11117
|
...slots,
|
|
10990
11118
|
default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
|
|
@@ -11247,7 +11375,8 @@
|
|
|
11247
11375
|
}),
|
|
11248
11376
|
...makeSelectProps(),
|
|
11249
11377
|
...omit(makeVTextFieldProps({
|
|
11250
|
-
modelValue: null
|
|
11378
|
+
modelValue: null,
|
|
11379
|
+
role: 'combobox'
|
|
11251
11380
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
11252
11381
|
...makeTransitionProps({
|
|
11253
11382
|
transition: false
|
|
@@ -11284,6 +11413,7 @@
|
|
|
11284
11413
|
});
|
|
11285
11414
|
const selectionIndex = vue.shallowRef(-1);
|
|
11286
11415
|
const color = vue.computed(() => vTextFieldRef.value?.color);
|
|
11416
|
+
const label = vue.computed(() => menu.value ? props.closeText : props.openText);
|
|
11287
11417
|
const {
|
|
11288
11418
|
items,
|
|
11289
11419
|
transformIn,
|
|
@@ -11631,7 +11761,9 @@
|
|
|
11631
11761
|
"class": "v-autocomplete__menu-icon",
|
|
11632
11762
|
"icon": props.menuIcon,
|
|
11633
11763
|
"onMousedown": onMousedownMenuIcon,
|
|
11634
|
-
"onClick": noop
|
|
11764
|
+
"onClick": noop,
|
|
11765
|
+
"aria-label": t(label.value),
|
|
11766
|
+
"title": t(label.value)
|
|
11635
11767
|
}, null) : undefined]);
|
|
11636
11768
|
}
|
|
11637
11769
|
});
|
|
@@ -11786,6 +11918,7 @@
|
|
|
11786
11918
|
...makeComponentProps(),
|
|
11787
11919
|
...makeDensityProps(),
|
|
11788
11920
|
...makeDimensionProps(),
|
|
11921
|
+
...makeDisplayProps(),
|
|
11789
11922
|
...makeElevationProps(),
|
|
11790
11923
|
...makeLocationProps(),
|
|
11791
11924
|
...makePositionProps(),
|
|
@@ -11807,8 +11940,9 @@
|
|
|
11807
11940
|
densityClasses
|
|
11808
11941
|
} = useDensity(props);
|
|
11809
11942
|
const {
|
|
11943
|
+
displayClasses,
|
|
11810
11944
|
mobile
|
|
11811
|
-
} = useDisplay();
|
|
11945
|
+
} = useDisplay(props);
|
|
11812
11946
|
const {
|
|
11813
11947
|
dimensionStyles
|
|
11814
11948
|
} = useDimension(props);
|
|
@@ -11844,7 +11978,7 @@
|
|
|
11844
11978
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
11845
11979
|
'v-banner--sticky': props.sticky,
|
|
11846
11980
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
|
11847
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11981
|
+
}, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11848
11982
|
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
|
11849
11983
|
"role": "banner"
|
|
11850
11984
|
}, {
|
|
@@ -12151,12 +12285,17 @@
|
|
|
12151
12285
|
item,
|
|
12152
12286
|
raw
|
|
12153
12287
|
} = _ref2;
|
|
12154
|
-
return vue.createVNode(vue.Fragment, null, [
|
|
12155
|
-
|
|
12288
|
+
return vue.createVNode(vue.Fragment, null, [slots.item?.({
|
|
12289
|
+
item,
|
|
12290
|
+
index
|
|
12291
|
+
}) ?? vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
|
|
12292
|
+
"key": index,
|
|
12156
12293
|
"disabled": index >= array.length - 1
|
|
12157
|
-
}, item
|
|
12294
|
+
}, typeof item === 'string' ? {
|
|
12295
|
+
title: item
|
|
12296
|
+
} : item), {
|
|
12158
12297
|
default: slots.title ? () => slots.title?.({
|
|
12159
|
-
item
|
|
12298
|
+
item,
|
|
12160
12299
|
index
|
|
12161
12300
|
}) : undefined
|
|
12162
12301
|
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
|
@@ -13494,7 +13633,11 @@
|
|
|
13494
13633
|
...makeRoundedProps(),
|
|
13495
13634
|
...makeElevationProps({
|
|
13496
13635
|
elevation: 2
|
|
13497
|
-
})
|
|
13636
|
+
}),
|
|
13637
|
+
ripple: {
|
|
13638
|
+
type: Boolean,
|
|
13639
|
+
default: true
|
|
13640
|
+
}
|
|
13498
13641
|
}, 'Slider');
|
|
13499
13642
|
const useSteps = props => {
|
|
13500
13643
|
const min = vue.computed(() => parseFloat(props.min));
|
|
@@ -14101,7 +14244,8 @@
|
|
|
14101
14244
|
"position": trackStop.value,
|
|
14102
14245
|
"elevation": props.elevation,
|
|
14103
14246
|
"onFocus": focus,
|
|
14104
|
-
"onBlur": blur
|
|
14247
|
+
"onBlur": blur,
|
|
14248
|
+
"ripple": props.ripple
|
|
14105
14249
|
}, {
|
|
14106
14250
|
'thumb-label': slots['thumb-label']
|
|
14107
14251
|
})]);
|
|
@@ -14132,12 +14276,36 @@
|
|
|
14132
14276
|
let {
|
|
14133
14277
|
emit
|
|
14134
14278
|
} = _ref;
|
|
14279
|
+
const abortController = new AbortController();
|
|
14280
|
+
vue.onUnmounted(() => abortController.abort());
|
|
14281
|
+
async function openEyeDropper() {
|
|
14282
|
+
if (!SUPPORTS_EYE_DROPPER) return;
|
|
14283
|
+
const eyeDropper = new window.EyeDropper();
|
|
14284
|
+
try {
|
|
14285
|
+
const result = await eyeDropper.open({
|
|
14286
|
+
signal: abortController.signal
|
|
14287
|
+
});
|
|
14288
|
+
const colorHexValue = HexToHSV(result.sRGBHex);
|
|
14289
|
+
emit('update:color', {
|
|
14290
|
+
...(props.color ?? nullColor),
|
|
14291
|
+
...colorHexValue
|
|
14292
|
+
});
|
|
14293
|
+
} catch (e) {}
|
|
14294
|
+
}
|
|
14135
14295
|
useRender(() => vue.createVNode("div", {
|
|
14136
14296
|
"class": ['v-color-picker-preview', {
|
|
14137
14297
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
|
14138
14298
|
}, props.class],
|
|
14139
14299
|
"style": props.style
|
|
14140
|
-
}, [vue.createVNode("div", {
|
|
14300
|
+
}, [SUPPORTS_EYE_DROPPER && vue.createVNode("div", {
|
|
14301
|
+
"class": "v-color-picker-preview__eye-dropper",
|
|
14302
|
+
"key": "eyeDropper"
|
|
14303
|
+
}, [vue.createVNode(VBtn, {
|
|
14304
|
+
"onClick": openEyeDropper,
|
|
14305
|
+
"icon": "$eyeDropper",
|
|
14306
|
+
"variant": "plain",
|
|
14307
|
+
"density": "comfortable"
|
|
14308
|
+
}, null)]), vue.createVNode("div", {
|
|
14141
14309
|
"class": "v-color-picker-preview__dot"
|
|
14142
14310
|
}, [vue.createVNode("div", {
|
|
14143
14311
|
"style": {
|
|
@@ -14775,7 +14943,8 @@
|
|
|
14775
14943
|
returnObject: true
|
|
14776
14944
|
}),
|
|
14777
14945
|
...omit(makeVTextFieldProps({
|
|
14778
|
-
modelValue: null
|
|
14946
|
+
modelValue: null,
|
|
14947
|
+
role: 'combobox'
|
|
14779
14948
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
14780
14949
|
...makeTransitionProps({
|
|
14781
14950
|
transition: false
|
|
@@ -14814,6 +14983,7 @@
|
|
|
14814
14983
|
const selectionIndex = vue.shallowRef(-1);
|
|
14815
14984
|
let cleared = false;
|
|
14816
14985
|
const color = vue.computed(() => vTextFieldRef.value?.color);
|
|
14986
|
+
const label = vue.computed(() => menu.value ? props.closeText : props.openText);
|
|
14817
14987
|
const {
|
|
14818
14988
|
items,
|
|
14819
14989
|
transformIn,
|
|
@@ -15189,7 +15359,9 @@
|
|
|
15189
15359
|
"class": "v-combobox__menu-icon",
|
|
15190
15360
|
"icon": props.menuIcon,
|
|
15191
15361
|
"onMousedown": onMousedownMenuIcon,
|
|
15192
|
-
"onClick": noop
|
|
15362
|
+
"onClick": noop,
|
|
15363
|
+
"aria-label": t(label.value),
|
|
15364
|
+
"title": t(label.value)
|
|
15193
15365
|
}, null) : undefined]);
|
|
15194
15366
|
}
|
|
15195
15367
|
});
|
|
@@ -16804,6 +16976,7 @@
|
|
|
16804
16976
|
sticky: Boolean,
|
|
16805
16977
|
...makeBorderProps(),
|
|
16806
16978
|
...makeComponentProps(),
|
|
16979
|
+
...makeDisplayProps(),
|
|
16807
16980
|
...makeElevationProps(),
|
|
16808
16981
|
...makeLayoutItemProps(),
|
|
16809
16982
|
...makeRoundedProps(),
|
|
@@ -16842,8 +17015,9 @@
|
|
|
16842
17015
|
elevationClasses
|
|
16843
17016
|
} = useElevation(props);
|
|
16844
17017
|
const {
|
|
17018
|
+
displayClasses,
|
|
16845
17019
|
mobile
|
|
16846
|
-
} = useDisplay();
|
|
17020
|
+
} = useDisplay(props);
|
|
16847
17021
|
const {
|
|
16848
17022
|
roundedClasses
|
|
16849
17023
|
} = useRounded(props);
|
|
@@ -16954,7 +17128,7 @@
|
|
|
16954
17128
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
16955
17129
|
'v-navigation-drawer--active': isActive.value,
|
|
16956
17130
|
'v-navigation-drawer--sticky': isSticky.value
|
|
16957
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
17131
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
16958
17132
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
16959
17133
|
}, scopeId, attrs), {
|
|
16960
17134
|
default: () => [hasImage && vue.createVNode("div", {
|
|
@@ -17482,7 +17656,7 @@
|
|
|
17482
17656
|
const id = vue.computed(() => props.id || `radio-group-${uid}`);
|
|
17483
17657
|
const model = useProxiedModel(props, 'modelValue');
|
|
17484
17658
|
useRender(() => {
|
|
17485
|
-
const [
|
|
17659
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
17486
17660
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
17487
17661
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
17488
17662
|
const label = slots.label ? slots.label({
|
|
@@ -17494,7 +17668,7 @@
|
|
|
17494
17668
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
17495
17669
|
"class": ['v-radio-group', props.class],
|
|
17496
17670
|
"style": props.style
|
|
17497
|
-
},
|
|
17671
|
+
}, rootAttrs, inputProps, {
|
|
17498
17672
|
"modelValue": model.value,
|
|
17499
17673
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
17500
17674
|
"id": id.value
|
|
@@ -17702,7 +17876,8 @@
|
|
|
17702
17876
|
},
|
|
17703
17877
|
"min": min.value,
|
|
17704
17878
|
"max": model.value[1],
|
|
17705
|
-
"position": trackStart.value
|
|
17879
|
+
"position": trackStart.value,
|
|
17880
|
+
"ripple": props.ripple
|
|
17706
17881
|
}, {
|
|
17707
17882
|
'thumb-label': slots['thumb-label']
|
|
17708
17883
|
}), vue.createVNode(VSliderThumb, {
|
|
@@ -17730,7 +17905,8 @@
|
|
|
17730
17905
|
},
|
|
17731
17906
|
"min": model.value[0],
|
|
17732
17907
|
"max": max.value,
|
|
17733
|
-
"position": trackStop.value
|
|
17908
|
+
"position": trackStop.value,
|
|
17909
|
+
"ripple": props.ripple
|
|
17734
17910
|
}, {
|
|
17735
17911
|
'thumb-label': slots['thumb-label']
|
|
17736
17912
|
})]);
|
|
@@ -18004,6 +18180,7 @@
|
|
|
18004
18180
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
18005
18181
|
},
|
|
18006
18182
|
...makeComponentProps(),
|
|
18183
|
+
...makeDisplayProps(),
|
|
18007
18184
|
...makeTagProps(),
|
|
18008
18185
|
...makeGroupProps({
|
|
18009
18186
|
selectedClass: 'v-slide-group-item--active'
|
|
@@ -18023,8 +18200,9 @@
|
|
|
18023
18200
|
isRtl
|
|
18024
18201
|
} = useRtl();
|
|
18025
18202
|
const {
|
|
18203
|
+
displayClasses,
|
|
18026
18204
|
mobile
|
|
18027
|
-
} = useDisplay();
|
|
18205
|
+
} = useDisplay(props);
|
|
18028
18206
|
const group = useGroup(props, props.symbol);
|
|
18029
18207
|
const isOverflowing = vue.shallowRef(false);
|
|
18030
18208
|
const scrollOffset = vue.shallowRef(0);
|
|
@@ -18244,7 +18422,7 @@
|
|
|
18244
18422
|
'v-slide-group--vertical': !isHorizontal.value,
|
|
18245
18423
|
'v-slide-group--has-affixes': hasAffixes.value,
|
|
18246
18424
|
'v-slide-group--is-overflowing': isOverflowing.value
|
|
18247
|
-
}, props.class],
|
|
18425
|
+
}, displayClasses.value, props.class],
|
|
18248
18426
|
"style": props.style,
|
|
18249
18427
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
|
18250
18428
|
"onFocus": onFocus
|
|
@@ -18471,6 +18649,7 @@
|
|
|
18471
18649
|
focus,
|
|
18472
18650
|
blur
|
|
18473
18651
|
} = useFocus(props);
|
|
18652
|
+
const control = vue.ref();
|
|
18474
18653
|
const loaderColor = vue.computed(() => {
|
|
18475
18654
|
return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
|
|
18476
18655
|
});
|
|
@@ -18481,16 +18660,15 @@
|
|
|
18481
18660
|
indeterminate.value = false;
|
|
18482
18661
|
}
|
|
18483
18662
|
}
|
|
18663
|
+
function onTrackClick(e) {
|
|
18664
|
+
e.stopPropagation();
|
|
18665
|
+
e.preventDefault();
|
|
18666
|
+
control.value?.input?.click();
|
|
18667
|
+
}
|
|
18484
18668
|
useRender(() => {
|
|
18485
|
-
const [
|
|
18669
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
18486
18670
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
18487
18671
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
18488
|
-
const control = vue.ref();
|
|
18489
|
-
function onClick(e) {
|
|
18490
|
-
e.stopPropagation();
|
|
18491
|
-
e.preventDefault();
|
|
18492
|
-
control.value?.input?.click();
|
|
18493
|
-
}
|
|
18494
18672
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
18495
18673
|
"class": ['v-switch', {
|
|
18496
18674
|
'v-switch--inset': props.inset
|
|
@@ -18498,7 +18676,7 @@
|
|
|
18498
18676
|
'v-switch--indeterminate': indeterminate.value
|
|
18499
18677
|
}, loaderClasses.value, props.class],
|
|
18500
18678
|
"style": props.style
|
|
18501
|
-
},
|
|
18679
|
+
}, rootAttrs, inputProps, {
|
|
18502
18680
|
"id": id.value,
|
|
18503
18681
|
"focused": isFocused.value
|
|
18504
18682
|
}), {
|
|
@@ -18528,29 +18706,36 @@
|
|
|
18528
18706
|
...slots,
|
|
18529
18707
|
default: () => vue.createVNode("div", {
|
|
18530
18708
|
"class": "v-switch__track",
|
|
18531
|
-
"onClick":
|
|
18709
|
+
"onClick": onTrackClick
|
|
18532
18710
|
}, null),
|
|
18533
18711
|
input: _ref3 => {
|
|
18534
18712
|
let {
|
|
18535
|
-
|
|
18536
|
-
|
|
18713
|
+
inputNode,
|
|
18714
|
+
icon
|
|
18537
18715
|
} = _ref3;
|
|
18538
|
-
return vue.createVNode("div", {
|
|
18539
|
-
"class": ['v-switch__thumb',
|
|
18540
|
-
|
|
18541
|
-
|
|
18542
|
-
|
|
18543
|
-
|
|
18544
|
-
|
|
18545
|
-
|
|
18546
|
-
|
|
18547
|
-
|
|
18548
|
-
"
|
|
18549
|
-
"
|
|
18550
|
-
"
|
|
18551
|
-
|
|
18552
|
-
|
|
18553
|
-
|
|
18716
|
+
return vue.createVNode(vue.Fragment, null, [inputNode, vue.createVNode("div", {
|
|
18717
|
+
"class": ['v-switch__thumb', {
|
|
18718
|
+
'v-switch__thumb--filled': icon || props.loading
|
|
18719
|
+
}]
|
|
18720
|
+
}, [vue.createVNode(VScaleTransition, null, {
|
|
18721
|
+
default: () => [!props.loading ? icon && vue.createVNode(VIcon, {
|
|
18722
|
+
"key": icon,
|
|
18723
|
+
"icon": icon,
|
|
18724
|
+
"size": "x-small"
|
|
18725
|
+
}, null) : vue.createVNode(LoaderSlot, {
|
|
18726
|
+
"name": "v-switch",
|
|
18727
|
+
"active": true,
|
|
18728
|
+
"color": isValid.value === false ? undefined : loaderColor.value
|
|
18729
|
+
}, {
|
|
18730
|
+
default: slotProps => slots.loader ? slots.loader(slotProps) : vue.createVNode(VProgressCircular, {
|
|
18731
|
+
"active": slotProps.isActive,
|
|
18732
|
+
"color": slotProps.color,
|
|
18733
|
+
"indeterminate": true,
|
|
18734
|
+
"size": "16",
|
|
18735
|
+
"width": "2"
|
|
18736
|
+
}, null)
|
|
18737
|
+
})]
|
|
18738
|
+
})])]);
|
|
18554
18739
|
}
|
|
18555
18740
|
});
|
|
18556
18741
|
}
|
|
@@ -19031,8 +19216,7 @@
|
|
|
19031
19216
|
"onMousedown": onControlMousedown,
|
|
19032
19217
|
"onClick:clear": onClear,
|
|
19033
19218
|
"onClick:prependInner": props['onClick:prependInner'],
|
|
19034
|
-
"onClick:appendInner": props['onClick:appendInner']
|
|
19035
|
-
"role": "textbox"
|
|
19219
|
+
"onClick:appendInner": props['onClick:appendInner']
|
|
19036
19220
|
}, fieldProps, {
|
|
19037
19221
|
"active": isActive.value || isDirty.value,
|
|
19038
19222
|
"centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
|
|
@@ -20293,7 +20477,7 @@
|
|
|
20293
20477
|
date
|
|
20294
20478
|
};
|
|
20295
20479
|
}
|
|
20296
|
-
const version$1 = "3.
|
|
20480
|
+
const version$1 = "3.4.0-alpha.0";
|
|
20297
20481
|
createVuetify$1.version = version$1;
|
|
20298
20482
|
|
|
20299
20483
|
// Vue's inject() can only be used in setup
|
|
@@ -20318,7 +20502,7 @@
|
|
|
20318
20502
|
...options
|
|
20319
20503
|
});
|
|
20320
20504
|
};
|
|
20321
|
-
const version = "3.
|
|
20505
|
+
const version = "3.4.0-alpha.0";
|
|
20322
20506
|
createVuetify.version = version;
|
|
20323
20507
|
|
|
20324
20508
|
exports.components = components;
|