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-labs.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
|
|
@@ -233,14 +242,22 @@
|
|
|
233
242
|
include.forEach(prop => clone[prop] = obj[prop]);
|
|
234
243
|
return clone;
|
|
235
244
|
}
|
|
245
|
+
const onRE = /^on[^a-z]/;
|
|
246
|
+
const isOn = key => onRE.test(key);
|
|
247
|
+
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'];
|
|
236
248
|
|
|
237
249
|
/**
|
|
238
250
|
* Filter attributes that should be applied to
|
|
239
|
-
* the root element of
|
|
251
|
+
* the root element of an input component. Remaining
|
|
240
252
|
* attributes should be passed to the <input> element inside.
|
|
241
253
|
*/
|
|
242
254
|
function filterInputAttrs(attrs) {
|
|
243
|
-
|
|
255
|
+
const [events, props] = pick(attrs, [onRE]);
|
|
256
|
+
const inputEvents = omit(events, bubblingEvents);
|
|
257
|
+
const [rootAttrs, inputAttrs] = pick(props, ['class', 'style', 'id', /^data-/]);
|
|
258
|
+
Object.assign(rootAttrs, events);
|
|
259
|
+
Object.assign(inputAttrs, inputEvents);
|
|
260
|
+
return [rootAttrs, inputAttrs];
|
|
244
261
|
}
|
|
245
262
|
function wrapInArray(v) {
|
|
246
263
|
return v == null ? [] : Array.isArray(v) ? v : [v];
|
|
@@ -393,8 +410,6 @@
|
|
|
393
410
|
function includes(arr, val) {
|
|
394
411
|
return arr.includes(val);
|
|
395
412
|
}
|
|
396
|
-
const onRE = /^on[^a-z]/;
|
|
397
|
-
const isOn = key => onRE.test(key);
|
|
398
413
|
function eventName(propName) {
|
|
399
414
|
return propName[2].toLowerCase() + propName.slice(3);
|
|
400
415
|
}
|
|
@@ -554,6 +569,18 @@
|
|
|
554
569
|
}
|
|
555
570
|
};
|
|
556
571
|
}
|
|
572
|
+
function getTargetBox(target) {
|
|
573
|
+
if (Array.isArray(target)) {
|
|
574
|
+
return new Box({
|
|
575
|
+
x: target[0],
|
|
576
|
+
y: target[1],
|
|
577
|
+
width: 0,
|
|
578
|
+
height: 0
|
|
579
|
+
});
|
|
580
|
+
} else {
|
|
581
|
+
return target.getBoundingClientRect();
|
|
582
|
+
}
|
|
583
|
+
}
|
|
557
584
|
|
|
558
585
|
// Utilities
|
|
559
586
|
|
|
@@ -1025,34 +1052,6 @@
|
|
|
1025
1052
|
|
|
1026
1053
|
// Types
|
|
1027
1054
|
|
|
1028
|
-
function useToggleScope(source, fn) {
|
|
1029
|
-
let scope;
|
|
1030
|
-
function start() {
|
|
1031
|
-
scope = vue.effectScope();
|
|
1032
|
-
scope.run(() => fn.length ? fn(() => {
|
|
1033
|
-
scope?.stop();
|
|
1034
|
-
start();
|
|
1035
|
-
}) : fn());
|
|
1036
|
-
}
|
|
1037
|
-
vue.watch(source, active => {
|
|
1038
|
-
if (active && !scope) {
|
|
1039
|
-
start();
|
|
1040
|
-
} else if (!active) {
|
|
1041
|
-
scope?.stop();
|
|
1042
|
-
scope = undefined;
|
|
1043
|
-
}
|
|
1044
|
-
}, {
|
|
1045
|
-
immediate: true
|
|
1046
|
-
});
|
|
1047
|
-
vue.onScopeDispose(() => {
|
|
1048
|
-
scope?.stop();
|
|
1049
|
-
});
|
|
1050
|
-
}
|
|
1051
|
-
|
|
1052
|
-
// Composables
|
|
1053
|
-
|
|
1054
|
-
// Types
|
|
1055
|
-
|
|
1056
1055
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
|
1057
1056
|
function createDefaults(options) {
|
|
1058
1057
|
return vue.ref(options);
|
|
@@ -1071,6 +1070,7 @@
|
|
|
1071
1070
|
const scoped = vue.unref(options?.scoped);
|
|
1072
1071
|
const reset = vue.unref(options?.reset);
|
|
1073
1072
|
const root = vue.unref(options?.root);
|
|
1073
|
+
if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;
|
|
1074
1074
|
let properties = mergeDeep(providedDefaults.value, {
|
|
1075
1075
|
prev: injectedDefaults.value
|
|
1076
1076
|
});
|
|
@@ -1126,16 +1126,16 @@
|
|
|
1126
1126
|
let [key] = _ref;
|
|
1127
1127
|
return key.startsWith(key[0].toUpperCase());
|
|
1128
1128
|
});
|
|
1129
|
-
|
|
1129
|
+
_subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined;
|
|
1130
|
+
} else {
|
|
1131
|
+
_subcomponentDefaults.value = undefined;
|
|
1130
1132
|
}
|
|
1131
1133
|
});
|
|
1132
1134
|
function provideSubDefaults() {
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
provideDefaults(mergeDeep(injectSelf(DefaultsSymbol)?.value ?? {}, _subcomponentDefaults.value));
|
|
1138
|
-
});
|
|
1135
|
+
const injected = injectSelf(DefaultsSymbol, vm);
|
|
1136
|
+
vue.provide(DefaultsSymbol, vue.computed(() => {
|
|
1137
|
+
return _subcomponentDefaults.value ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value) : injected?.value;
|
|
1138
|
+
}));
|
|
1139
1139
|
}
|
|
1140
1140
|
return {
|
|
1141
1141
|
props: _props,
|
|
@@ -1317,9 +1317,10 @@
|
|
|
1317
1317
|
// Types
|
|
1318
1318
|
|
|
1319
1319
|
function injectSelf(key) {
|
|
1320
|
+
let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');
|
|
1320
1321
|
const {
|
|
1321
1322
|
provides
|
|
1322
|
-
} =
|
|
1323
|
+
} = vm;
|
|
1323
1324
|
if (provides && key in provides) {
|
|
1324
1325
|
// TS doesn't allow symbol as index type
|
|
1325
1326
|
return provides[key];
|
|
@@ -1657,6 +1658,7 @@
|
|
|
1657
1658
|
|
|
1658
1659
|
var en = {
|
|
1659
1660
|
badge: 'Badge',
|
|
1661
|
+
open: 'Open',
|
|
1660
1662
|
close: 'Close',
|
|
1661
1663
|
dataIterator: {
|
|
1662
1664
|
noResultsText: 'No matching records found',
|
|
@@ -1795,6 +1797,34 @@
|
|
|
1795
1797
|
zhHant: false
|
|
1796
1798
|
};
|
|
1797
1799
|
|
|
1800
|
+
// Utilities
|
|
1801
|
+
|
|
1802
|
+
// Types
|
|
1803
|
+
|
|
1804
|
+
function useToggleScope(source, fn) {
|
|
1805
|
+
let scope;
|
|
1806
|
+
function start() {
|
|
1807
|
+
scope = vue.effectScope();
|
|
1808
|
+
scope.run(() => fn.length ? fn(() => {
|
|
1809
|
+
scope?.stop();
|
|
1810
|
+
start();
|
|
1811
|
+
}) : fn());
|
|
1812
|
+
}
|
|
1813
|
+
vue.watch(source, active => {
|
|
1814
|
+
if (active && !scope) {
|
|
1815
|
+
start();
|
|
1816
|
+
} else if (!active) {
|
|
1817
|
+
scope?.stop();
|
|
1818
|
+
scope = undefined;
|
|
1819
|
+
}
|
|
1820
|
+
}, {
|
|
1821
|
+
immediate: true
|
|
1822
|
+
});
|
|
1823
|
+
vue.onScopeDispose(() => {
|
|
1824
|
+
scope?.stop();
|
|
1825
|
+
});
|
|
1826
|
+
}
|
|
1827
|
+
|
|
1798
1828
|
// Composables
|
|
1799
1829
|
|
|
1800
1830
|
// Types
|
|
@@ -2107,9 +2137,9 @@
|
|
|
2107
2137
|
surface: '#FFFFFF',
|
|
2108
2138
|
'surface-variant': '#424242',
|
|
2109
2139
|
'on-surface-variant': '#EEEEEE',
|
|
2110
|
-
primary: '#
|
|
2111
|
-
'primary-darken-1': '#
|
|
2112
|
-
secondary: '#
|
|
2140
|
+
primary: '#1867C0',
|
|
2141
|
+
'primary-darken-1': '#1F5592',
|
|
2142
|
+
secondary: '#48A9A6',
|
|
2113
2143
|
'secondary-darken-1': '#018786',
|
|
2114
2144
|
error: '#B00020',
|
|
2115
2145
|
info: '#2196F3',
|
|
@@ -2142,10 +2172,10 @@
|
|
|
2142
2172
|
surface: '#212121',
|
|
2143
2173
|
'surface-variant': '#BDBDBD',
|
|
2144
2174
|
'on-surface-variant': '#424242',
|
|
2145
|
-
primary: '#
|
|
2146
|
-
'primary-darken-1': '#
|
|
2147
|
-
secondary: '#
|
|
2148
|
-
'secondary-darken-1': '#
|
|
2175
|
+
primary: '#2196F3',
|
|
2176
|
+
'primary-darken-1': '#277CC1',
|
|
2177
|
+
secondary: '#54B6B2',
|
|
2178
|
+
'secondary-darken-1': '#48A9A6',
|
|
2149
2179
|
error: '#CF6679',
|
|
2150
2180
|
info: '#2196F3',
|
|
2151
2181
|
success: '#4CAF50',
|
|
@@ -2630,7 +2660,7 @@
|
|
|
2630
2660
|
// Types
|
|
2631
2661
|
|
|
2632
2662
|
const makeVDialogTransitionProps = propsFactory({
|
|
2633
|
-
target: Object
|
|
2663
|
+
target: [Object, Array]
|
|
2634
2664
|
}, 'v-dialog-transition');
|
|
2635
2665
|
const VDialogTransition = genericComponent()({
|
|
2636
2666
|
name: 'VDialogTransition',
|
|
@@ -2732,7 +2762,7 @@
|
|
|
2732
2762
|
return els && [...els];
|
|
2733
2763
|
}
|
|
2734
2764
|
function getDimensions(target, el) {
|
|
2735
|
-
const targetBox = target
|
|
2765
|
+
const targetBox = getTargetBox(target);
|
|
2736
2766
|
const elBox = nullifyTransforms(el);
|
|
2737
2767
|
const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));
|
|
2738
2768
|
const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');
|
|
@@ -2978,6 +3008,10 @@
|
|
|
2978
3008
|
const makeVImgProps = propsFactory({
|
|
2979
3009
|
alt: String,
|
|
2980
3010
|
cover: Boolean,
|
|
3011
|
+
draggable: {
|
|
3012
|
+
type: [Boolean, String],
|
|
3013
|
+
default: undefined
|
|
3014
|
+
},
|
|
2981
3015
|
eager: Boolean,
|
|
2982
3016
|
gradient: String,
|
|
2983
3017
|
lazySrc: String,
|
|
@@ -2996,6 +3030,8 @@
|
|
|
2996
3030
|
type: [String, Object],
|
|
2997
3031
|
default: ''
|
|
2998
3032
|
},
|
|
3033
|
+
crossorigin: String,
|
|
3034
|
+
referrerpolicy: String,
|
|
2999
3035
|
srcset: String,
|
|
3000
3036
|
...makeVResponsiveProps(),
|
|
3001
3037
|
...makeComponentProps(),
|
|
@@ -3120,6 +3156,9 @@
|
|
|
3120
3156
|
"src": normalisedSrc.value.src,
|
|
3121
3157
|
"srcset": normalisedSrc.value.srcset,
|
|
3122
3158
|
"alt": props.alt,
|
|
3159
|
+
"crossorigin": props.crossorigin,
|
|
3160
|
+
"referrerpolicy": props.referrerpolicy,
|
|
3161
|
+
"draggable": props.draggable,
|
|
3123
3162
|
"sizes": props.sizes,
|
|
3124
3163
|
"ref": image,
|
|
3125
3164
|
"onLoad": onLoad,
|
|
@@ -3141,7 +3180,10 @@
|
|
|
3141
3180
|
default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && vue.createVNode("img", {
|
|
3142
3181
|
"class": ['v-img__img', 'v-img__img--preload', containClasses.value],
|
|
3143
3182
|
"src": normalisedSrc.value.lazySrc,
|
|
3144
|
-
"alt": props.alt
|
|
3183
|
+
"alt": props.alt,
|
|
3184
|
+
"crossorigin": props.crossorigin,
|
|
3185
|
+
"referrerpolicy": props.referrerpolicy,
|
|
3186
|
+
"draggable": props.draggable
|
|
3145
3187
|
}, null)]
|
|
3146
3188
|
});
|
|
3147
3189
|
const __placeholder = () => {
|
|
@@ -4160,7 +4202,8 @@
|
|
|
4160
4202
|
file: 'mdi-paperclip',
|
|
4161
4203
|
plus: 'mdi-plus',
|
|
4162
4204
|
minus: 'mdi-minus',
|
|
4163
|
-
calendar: 'mdi-calendar'
|
|
4205
|
+
calendar: 'mdi-calendar',
|
|
4206
|
+
eyeDropper: 'mdi-eyedropper'
|
|
4164
4207
|
};
|
|
4165
4208
|
const mdi = {
|
|
4166
4209
|
// Not using mergeProps here, functional components merge props by default (?)
|
|
@@ -5750,6 +5793,7 @@
|
|
|
5750
5793
|
|
|
5751
5794
|
const makeVSelectionControlProps = propsFactory({
|
|
5752
5795
|
label: String,
|
|
5796
|
+
baseColor: String,
|
|
5753
5797
|
trueValue: null,
|
|
5754
5798
|
falseValue: null,
|
|
5755
5799
|
value: null,
|
|
@@ -5788,7 +5832,8 @@
|
|
|
5788
5832
|
textColorClasses,
|
|
5789
5833
|
textColorStyles
|
|
5790
5834
|
} = useTextColor(vue.computed(() => {
|
|
5791
|
-
|
|
5835
|
+
if (props.error || props.disabled) return undefined;
|
|
5836
|
+
return model.value ? props.color : props.baseColor;
|
|
5792
5837
|
}));
|
|
5793
5838
|
const icon = vue.computed(() => model.value ? props.trueIcon : props.falseIcon);
|
|
5794
5839
|
return {
|
|
@@ -5860,6 +5905,20 @@
|
|
|
5860
5905
|
}
|
|
5861
5906
|
}) : props.label;
|
|
5862
5907
|
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
|
5908
|
+
const inputNode = vue.createVNode("input", vue.mergeProps({
|
|
5909
|
+
"ref": input,
|
|
5910
|
+
"checked": model.value,
|
|
5911
|
+
"disabled": !!(props.readonly || props.disabled),
|
|
5912
|
+
"id": id.value,
|
|
5913
|
+
"onBlur": onBlur,
|
|
5914
|
+
"onFocus": onFocus,
|
|
5915
|
+
"onInput": onInput,
|
|
5916
|
+
"aria-disabled": !!(props.readonly || props.disabled),
|
|
5917
|
+
"type": props.type,
|
|
5918
|
+
"value": trueValue.value,
|
|
5919
|
+
"name": props.name,
|
|
5920
|
+
"aria-checked": props.type === 'checkbox' ? model.value : undefined
|
|
5921
|
+
}, inputAttrs), null);
|
|
5863
5922
|
return vue.createVNode("div", vue.mergeProps({
|
|
5864
5923
|
"class": ['v-selection-control', {
|
|
5865
5924
|
'v-selection-control--dirty': model.value,
|
|
@@ -5876,34 +5935,24 @@
|
|
|
5876
5935
|
"style": textColorStyles.value
|
|
5877
5936
|
}, [slots.default?.(), vue.withDirectives(vue.createVNode("div", {
|
|
5878
5937
|
"class": ['v-selection-control__input']
|
|
5879
|
-
}, [
|
|
5880
|
-
"key": "icon",
|
|
5881
|
-
"icon": icon.value
|
|
5882
|
-
}, null), vue.createVNode("input", vue.mergeProps({
|
|
5883
|
-
"ref": input,
|
|
5884
|
-
"checked": model.value,
|
|
5885
|
-
"disabled": !!(props.readonly || props.disabled),
|
|
5886
|
-
"id": id.value,
|
|
5887
|
-
"onBlur": onBlur,
|
|
5888
|
-
"onFocus": onFocus,
|
|
5889
|
-
"onInput": onInput,
|
|
5890
|
-
"aria-disabled": !!(props.readonly || props.disabled),
|
|
5891
|
-
"type": props.type,
|
|
5892
|
-
"value": trueValue.value,
|
|
5893
|
-
"name": props.name,
|
|
5894
|
-
"aria-checked": props.type === 'checkbox' ? model.value : undefined
|
|
5895
|
-
}, inputAttrs), null), slots.input?.({
|
|
5938
|
+
}, [slots.input?.({
|
|
5896
5939
|
model,
|
|
5897
5940
|
textColorClasses,
|
|
5898
5941
|
textColorStyles,
|
|
5942
|
+
inputNode,
|
|
5943
|
+
icon: icon.value,
|
|
5899
5944
|
props: {
|
|
5900
5945
|
onFocus,
|
|
5901
5946
|
onBlur,
|
|
5902
5947
|
id: id.value
|
|
5903
5948
|
}
|
|
5904
|
-
})
|
|
5949
|
+
}) ?? vue.createVNode(vue.Fragment, null, [icon.value && vue.createVNode(VIcon, {
|
|
5950
|
+
"key": "icon",
|
|
5951
|
+
"icon": icon.value
|
|
5952
|
+
}, null), inputNode])]), [[vue.resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && vue.createVNode(VLabel, {
|
|
5905
5953
|
"for": id.value,
|
|
5906
|
-
"clickable": true
|
|
5954
|
+
"clickable": true,
|
|
5955
|
+
"onClick": e => e.stopPropagation()
|
|
5907
5956
|
}, {
|
|
5908
5957
|
default: () => [label]
|
|
5909
5958
|
})]);
|
|
@@ -5952,16 +6001,19 @@
|
|
|
5952
6001
|
const trueIcon = vue.computed(() => {
|
|
5953
6002
|
return indeterminate.value ? props.indeterminateIcon : props.trueIcon;
|
|
5954
6003
|
});
|
|
5955
|
-
useRender(() =>
|
|
5956
|
-
|
|
5957
|
-
|
|
5958
|
-
|
|
5959
|
-
|
|
5960
|
-
|
|
5961
|
-
|
|
5962
|
-
|
|
5963
|
-
|
|
5964
|
-
|
|
6004
|
+
useRender(() => {
|
|
6005
|
+
const controlProps = omit(VSelectionControl.filterProps(props)[0], ['modelValue']);
|
|
6006
|
+
return vue.createVNode(VSelectionControl, vue.mergeProps(controlProps, {
|
|
6007
|
+
"modelValue": model.value,
|
|
6008
|
+
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
|
6009
|
+
"class": ['v-checkbox-btn', props.class],
|
|
6010
|
+
"style": props.style,
|
|
6011
|
+
"type": "checkbox",
|
|
6012
|
+
"falseIcon": falseIcon.value,
|
|
6013
|
+
"trueIcon": trueIcon.value,
|
|
6014
|
+
"aria-checked": indeterminate.value ? 'mixed' : undefined
|
|
6015
|
+
}), slots);
|
|
6016
|
+
});
|
|
5965
6017
|
return {};
|
|
5966
6018
|
}
|
|
5967
6019
|
});
|
|
@@ -6525,12 +6577,12 @@
|
|
|
6525
6577
|
const uid = getUid();
|
|
6526
6578
|
const id = vue.computed(() => props.id || `checkbox-${uid}`);
|
|
6527
6579
|
useRender(() => {
|
|
6528
|
-
const [
|
|
6580
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
6529
6581
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
6530
6582
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6531
6583
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
6532
6584
|
"class": ['v-checkbox', props.class]
|
|
6533
|
-
},
|
|
6585
|
+
}, rootAttrs, inputProps, {
|
|
6534
6586
|
"modelValue": model.value,
|
|
6535
6587
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
6536
6588
|
"id": id.value,
|
|
@@ -6568,6 +6620,7 @@
|
|
|
6568
6620
|
end: Boolean,
|
|
6569
6621
|
icon: IconValue,
|
|
6570
6622
|
image: String,
|
|
6623
|
+
text: String,
|
|
6571
6624
|
...makeComponentProps(),
|
|
6572
6625
|
...makeDensityProps(),
|
|
6573
6626
|
...makeRoundedProps(),
|
|
@@ -6618,7 +6671,7 @@
|
|
|
6618
6671
|
}, null) : props.icon ? vue.createVNode(VIcon, {
|
|
6619
6672
|
"key": "icon",
|
|
6620
6673
|
"icon": props.icon
|
|
6621
|
-
}, null) : slots.default?.(), genOverlays(false, 'v-avatar')]
|
|
6674
|
+
}, null) : slots.default?.() ?? props.text, genOverlays(false, 'v-avatar')]
|
|
6622
6675
|
}));
|
|
6623
6676
|
return {};
|
|
6624
6677
|
}
|
|
@@ -7670,7 +7723,6 @@
|
|
|
7670
7723
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
|
7671
7724
|
"href": link.href.value,
|
|
7672
7725
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
|
7673
|
-
"title": props.title,
|
|
7674
7726
|
"onClick": onClick,
|
|
7675
7727
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
7676
7728
|
}, {
|
|
@@ -7703,7 +7755,9 @@
|
|
|
7703
7755
|
}
|
|
7704
7756
|
}, {
|
|
7705
7757
|
default: () => [slots.prepend?.(slotProps.value)]
|
|
7706
|
-
})
|
|
7758
|
+
}), vue.createVNode("div", {
|
|
7759
|
+
"class": "v-list-item__spacer"
|
|
7760
|
+
}, null)]), vue.createVNode("div", {
|
|
7707
7761
|
"class": "v-list-item__content",
|
|
7708
7762
|
"data-no-activator": ""
|
|
7709
7763
|
}, [hasTitle && vue.createVNode(VListItemTitle, {
|
|
@@ -7747,7 +7801,9 @@
|
|
|
7747
7801
|
}
|
|
7748
7802
|
}, {
|
|
7749
7803
|
default: () => [slots.append?.(slotProps.value)]
|
|
7750
|
-
})
|
|
7804
|
+
}), vue.createVNode("div", {
|
|
7805
|
+
"class": "v-list-item__spacer"
|
|
7806
|
+
}, null)])]
|
|
7751
7807
|
}), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
7752
7808
|
});
|
|
7753
7809
|
return {};
|
|
@@ -8396,7 +8452,7 @@
|
|
|
8396
8452
|
return contentBox;
|
|
8397
8453
|
}
|
|
8398
8454
|
function connectedLocationStrategy(data, props, contentStyles) {
|
|
8399
|
-
const activatorFixed = isFixedPosition(data.
|
|
8455
|
+
const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value);
|
|
8400
8456
|
if (activatorFixed) {
|
|
8401
8457
|
Object.assign(contentStyles.value, {
|
|
8402
8458
|
position: 'fixed',
|
|
@@ -8445,11 +8501,11 @@
|
|
|
8445
8501
|
const observer = new ResizeObserver(() => {
|
|
8446
8502
|
if (observe) updateLocation();
|
|
8447
8503
|
});
|
|
8448
|
-
vue.watch([data.
|
|
8449
|
-
let [
|
|
8450
|
-
let [
|
|
8451
|
-
if (
|
|
8452
|
-
if (
|
|
8504
|
+
vue.watch([data.target, data.contentEl], (_ref, _ref2) => {
|
|
8505
|
+
let [newTarget, newContentEl] = _ref;
|
|
8506
|
+
let [oldTarget, oldContentEl] = _ref2;
|
|
8507
|
+
if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget);
|
|
8508
|
+
if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget);
|
|
8453
8509
|
if (oldContentEl) observer.unobserve(oldContentEl);
|
|
8454
8510
|
if (newContentEl) observer.observe(newContentEl);
|
|
8455
8511
|
}, {
|
|
@@ -8465,8 +8521,8 @@
|
|
|
8465
8521
|
requestAnimationFrame(() => {
|
|
8466
8522
|
requestAnimationFrame(() => observe = true);
|
|
8467
8523
|
});
|
|
8468
|
-
if (!data.
|
|
8469
|
-
const targetBox = data.
|
|
8524
|
+
if (!data.target.value || !data.contentEl.value) return;
|
|
8525
|
+
const targetBox = getTargetBox(data.target.value);
|
|
8470
8526
|
const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
|
|
8471
8527
|
const scrollParents = getScrollParents(data.contentEl.value);
|
|
8472
8528
|
const viewportMargin = 12;
|
|
@@ -8753,11 +8809,11 @@
|
|
|
8753
8809
|
function onScroll(e) {
|
|
8754
8810
|
data.isActive.value = false;
|
|
8755
8811
|
}
|
|
8756
|
-
bindScroll(data.
|
|
8812
|
+
bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll);
|
|
8757
8813
|
}
|
|
8758
8814
|
function blockScrollStrategy(data, props) {
|
|
8759
8815
|
const offsetParent = data.root.value?.offsetParent;
|
|
8760
|
-
const scrollElements = [...new Set([...getScrollParents(data.
|
|
8816
|
+
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'));
|
|
8761
8817
|
const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;
|
|
8762
8818
|
const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);
|
|
8763
8819
|
if (scrollableParent) {
|
|
@@ -8801,7 +8857,7 @@
|
|
|
8801
8857
|
}
|
|
8802
8858
|
ric = (typeof requestIdleCallback === 'undefined' ? cb => cb() : requestIdleCallback)(() => {
|
|
8803
8859
|
scope.run(() => {
|
|
8804
|
-
bindScroll(data.
|
|
8860
|
+
bindScroll(data.targetEl.value ?? data.contentEl.value, e => {
|
|
8805
8861
|
if (slow) {
|
|
8806
8862
|
// If the position calculation is slow,
|
|
8807
8863
|
// defer updates until scrolling is finished.
|
|
@@ -8882,6 +8938,7 @@
|
|
|
8882
8938
|
// Types
|
|
8883
8939
|
|
|
8884
8940
|
const makeActivatorProps = propsFactory({
|
|
8941
|
+
target: [String, Object],
|
|
8885
8942
|
activator: [String, Object],
|
|
8886
8943
|
activatorProps: {
|
|
8887
8944
|
type: Object,
|
|
@@ -8904,6 +8961,7 @@
|
|
|
8904
8961
|
isActive,
|
|
8905
8962
|
isTop
|
|
8906
8963
|
} = _ref;
|
|
8964
|
+
const vm = getCurrentInstance('useActivator');
|
|
8907
8965
|
const activatorEl = vue.ref();
|
|
8908
8966
|
let isHovered = false;
|
|
8909
8967
|
let isFocused = false;
|
|
@@ -8921,10 +8979,14 @@
|
|
|
8921
8979
|
isActive.value = value;
|
|
8922
8980
|
}
|
|
8923
8981
|
});
|
|
8982
|
+
const cursorTarget = vue.ref();
|
|
8924
8983
|
const availableEvents = {
|
|
8925
8984
|
onClick: e => {
|
|
8926
8985
|
e.stopPropagation();
|
|
8927
8986
|
activatorEl.value = e.currentTarget || e.target;
|
|
8987
|
+
if (!isActive.value) {
|
|
8988
|
+
cursorTarget.value = [e.clientX, e.clientY];
|
|
8989
|
+
}
|
|
8928
8990
|
isActive.value = !isActive.value;
|
|
8929
8991
|
},
|
|
8930
8992
|
onMouseenter: e => {
|
|
@@ -9018,6 +9080,15 @@
|
|
|
9018
9080
|
isActive.value = false;
|
|
9019
9081
|
}
|
|
9020
9082
|
});
|
|
9083
|
+
vue.watch(isActive, val => {
|
|
9084
|
+
if (!val) {
|
|
9085
|
+
setTimeout(() => {
|
|
9086
|
+
cursorTarget.value = undefined;
|
|
9087
|
+
});
|
|
9088
|
+
}
|
|
9089
|
+
}, {
|
|
9090
|
+
flush: 'post'
|
|
9091
|
+
});
|
|
9021
9092
|
const activatorRef = vue.ref();
|
|
9022
9093
|
vue.watchEffect(() => {
|
|
9023
9094
|
if (!activatorRef.value) return;
|
|
@@ -9025,7 +9096,15 @@
|
|
|
9025
9096
|
activatorEl.value = refElement(activatorRef.value);
|
|
9026
9097
|
});
|
|
9027
9098
|
});
|
|
9028
|
-
const
|
|
9099
|
+
const targetRef = vue.ref();
|
|
9100
|
+
const target = vue.computed(() => {
|
|
9101
|
+
if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;
|
|
9102
|
+
if (targetRef.value) return refElement(targetRef.value);
|
|
9103
|
+
return getTarget(props.target, vm) || activatorEl.value;
|
|
9104
|
+
});
|
|
9105
|
+
const targetEl = vue.computed(() => {
|
|
9106
|
+
return Array.isArray(target.value) ? undefined : target.value;
|
|
9107
|
+
});
|
|
9029
9108
|
let scope;
|
|
9030
9109
|
vue.watch(() => !!props.activator, val => {
|
|
9031
9110
|
if (val && IN_BROWSER) {
|
|
@@ -9049,6 +9128,9 @@
|
|
|
9049
9128
|
return {
|
|
9050
9129
|
activatorEl,
|
|
9051
9130
|
activatorRef,
|
|
9131
|
+
target,
|
|
9132
|
+
targetEl,
|
|
9133
|
+
targetRef,
|
|
9052
9134
|
activatorEvents,
|
|
9053
9135
|
contentEvents,
|
|
9054
9136
|
scrimEvents
|
|
@@ -9090,31 +9172,34 @@
|
|
|
9090
9172
|
}
|
|
9091
9173
|
function getActivator() {
|
|
9092
9174
|
let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;
|
|
9093
|
-
|
|
9094
|
-
if (selector) {
|
|
9095
|
-
if (selector === 'parent') {
|
|
9096
|
-
let el = vm?.proxy?.$el?.parentNode;
|
|
9097
|
-
while (el.hasAttribute('data-no-activator')) {
|
|
9098
|
-
el = el.parentNode;
|
|
9099
|
-
}
|
|
9100
|
-
activator = el;
|
|
9101
|
-
} else if (typeof selector === 'string') {
|
|
9102
|
-
// Selector
|
|
9103
|
-
activator = document.querySelector(selector);
|
|
9104
|
-
} else if ('$el' in selector) {
|
|
9105
|
-
// Component (ref)
|
|
9106
|
-
activator = selector.$el;
|
|
9107
|
-
} else {
|
|
9108
|
-
// HTMLElement | Element
|
|
9109
|
-
activator = selector;
|
|
9110
|
-
}
|
|
9111
|
-
}
|
|
9175
|
+
const activator = getTarget(selector, vm);
|
|
9112
9176
|
|
|
9113
9177
|
// The activator should only be a valid element (Ignore comments and text nodes)
|
|
9114
|
-
activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator :
|
|
9178
|
+
activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined;
|
|
9115
9179
|
return activatorEl.value;
|
|
9116
9180
|
}
|
|
9117
9181
|
}
|
|
9182
|
+
function getTarget(selector, vm) {
|
|
9183
|
+
if (!selector) return;
|
|
9184
|
+
let target;
|
|
9185
|
+
if (selector === 'parent') {
|
|
9186
|
+
let el = vm?.proxy?.$el?.parentNode;
|
|
9187
|
+
while (el.hasAttribute('data-no-activator')) {
|
|
9188
|
+
el = el.parentNode;
|
|
9189
|
+
}
|
|
9190
|
+
target = el;
|
|
9191
|
+
} else if (typeof selector === 'string') {
|
|
9192
|
+
// Selector
|
|
9193
|
+
target = document.querySelector(selector);
|
|
9194
|
+
} else if ('$el' in selector) {
|
|
9195
|
+
// Component (ref)
|
|
9196
|
+
target = selector.$el;
|
|
9197
|
+
} else {
|
|
9198
|
+
// HTMLElement | Element | [x, y]
|
|
9199
|
+
target = selector;
|
|
9200
|
+
}
|
|
9201
|
+
return target;
|
|
9202
|
+
}
|
|
9118
9203
|
|
|
9119
9204
|
// Utilities
|
|
9120
9205
|
|
|
@@ -9238,10 +9323,30 @@
|
|
|
9238
9323
|
ssr: !!ssr
|
|
9239
9324
|
};
|
|
9240
9325
|
}
|
|
9326
|
+
const makeDisplayProps = propsFactory({
|
|
9327
|
+
mobileBreakpoint: [Number, String]
|
|
9328
|
+
}, 'display');
|
|
9241
9329
|
function useDisplay() {
|
|
9330
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
9331
|
+
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
9242
9332
|
const display = vue.inject(DisplaySymbol);
|
|
9243
9333
|
if (!display) throw new Error('Could not find Vuetify display injection');
|
|
9244
|
-
|
|
9334
|
+
const mobile = vue.computed(() => {
|
|
9335
|
+
if (!props.mobileBreakpoint) return display.mobile.value;
|
|
9336
|
+
const breakpointValue = typeof props.mobileBreakpoint === 'number' ? props.mobileBreakpoint : display.thresholds.value[props.mobileBreakpoint];
|
|
9337
|
+
return display.width.value < breakpointValue;
|
|
9338
|
+
});
|
|
9339
|
+
const displayClasses = vue.computed(() => {
|
|
9340
|
+
if (!name) return {};
|
|
9341
|
+
return {
|
|
9342
|
+
[`${name}--mobile`]: mobile.value
|
|
9343
|
+
};
|
|
9344
|
+
});
|
|
9345
|
+
return {
|
|
9346
|
+
...display,
|
|
9347
|
+
displayClasses,
|
|
9348
|
+
mobile
|
|
9349
|
+
};
|
|
9245
9350
|
}
|
|
9246
9351
|
|
|
9247
9352
|
// Composables
|
|
@@ -9558,6 +9663,9 @@
|
|
|
9558
9663
|
const {
|
|
9559
9664
|
activatorEl,
|
|
9560
9665
|
activatorRef,
|
|
9666
|
+
target,
|
|
9667
|
+
targetEl,
|
|
9668
|
+
targetRef,
|
|
9561
9669
|
activatorEvents,
|
|
9562
9670
|
contentEvents,
|
|
9563
9671
|
scrimEvents
|
|
@@ -9583,13 +9691,13 @@
|
|
|
9583
9691
|
} = useLocationStrategies(props, {
|
|
9584
9692
|
isRtl,
|
|
9585
9693
|
contentEl,
|
|
9586
|
-
|
|
9694
|
+
target,
|
|
9587
9695
|
isActive
|
|
9588
9696
|
});
|
|
9589
9697
|
useScrollStrategies(props, {
|
|
9590
9698
|
root,
|
|
9591
9699
|
contentEl,
|
|
9592
|
-
|
|
9700
|
+
targetEl,
|
|
9593
9701
|
isActive,
|
|
9594
9702
|
updateLocation
|
|
9595
9703
|
});
|
|
@@ -9657,7 +9765,8 @@
|
|
|
9657
9765
|
useRender(() => vue.createVNode(vue.Fragment, null, [slots.activator?.({
|
|
9658
9766
|
isActive: isActive.value,
|
|
9659
9767
|
props: vue.mergeProps({
|
|
9660
|
-
ref: activatorRef
|
|
9768
|
+
ref: activatorRef,
|
|
9769
|
+
targetRef
|
|
9661
9770
|
}, activatorEvents.value, props.activatorProps)
|
|
9662
9771
|
}), isMounted.value && hasContent.value && vue.createVNode(vue.Teleport, {
|
|
9663
9772
|
"disabled": !teleportTarget.value,
|
|
@@ -9680,7 +9789,7 @@
|
|
|
9680
9789
|
"appear": true,
|
|
9681
9790
|
"persisted": true,
|
|
9682
9791
|
"transition": props.transition,
|
|
9683
|
-
"target":
|
|
9792
|
+
"target": target.value,
|
|
9684
9793
|
"onAfterLeave": () => {
|
|
9685
9794
|
onAfterLeave();
|
|
9686
9795
|
emit('afterLeave');
|
|
@@ -9701,6 +9810,7 @@
|
|
|
9701
9810
|
})]));
|
|
9702
9811
|
return {
|
|
9703
9812
|
activatorEl,
|
|
9813
|
+
target,
|
|
9704
9814
|
animateClick,
|
|
9705
9815
|
contentEl,
|
|
9706
9816
|
globalTop,
|
|
@@ -9858,10 +9968,11 @@
|
|
|
9858
9968
|
}, 40);
|
|
9859
9969
|
}
|
|
9860
9970
|
});
|
|
9861
|
-
function onFocusIn(e) {
|
|
9971
|
+
async function onFocusIn(e) {
|
|
9862
9972
|
const before = e.relatedTarget;
|
|
9863
9973
|
const after = e.target;
|
|
9864
|
-
|
|
9974
|
+
await vue.nextTick();
|
|
9975
|
+
if (isActive.value && before !== after && overlay.value?.contentEl &&
|
|
9865
9976
|
// We're the topmost menu
|
|
9866
9977
|
overlay.value?.globalTop &&
|
|
9867
9978
|
// It isn't the document or the menu body
|
|
@@ -10197,7 +10308,7 @@
|
|
|
10197
10308
|
'v-field--no-label': !label,
|
|
10198
10309
|
[`v-field--variant-${props.variant}`]: true
|
|
10199
10310
|
}, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
|
|
10200
|
-
"style": [backgroundColorStyles.value,
|
|
10311
|
+
"style": [backgroundColorStyles.value, props.style],
|
|
10201
10312
|
"onClick": onClick
|
|
10202
10313
|
}, attrs), [vue.createVNode("div", {
|
|
10203
10314
|
"class": "v-field__overlay"
|
|
@@ -10221,7 +10332,8 @@
|
|
|
10221
10332
|
"ref": floatingLabelRef,
|
|
10222
10333
|
"class": [textColorClasses.value],
|
|
10223
10334
|
"floating": true,
|
|
10224
|
-
"for": id.value
|
|
10335
|
+
"for": id.value,
|
|
10336
|
+
"style": textColorStyles.value
|
|
10225
10337
|
}, {
|
|
10226
10338
|
default: () => [label]
|
|
10227
10339
|
}), vue.createVNode(VFieldLabel, {
|
|
@@ -10257,7 +10369,8 @@
|
|
|
10257
10369
|
"key": "append-icon",
|
|
10258
10370
|
"name": "appendInner"
|
|
10259
10371
|
}, null)]), vue.createVNode("div", {
|
|
10260
|
-
"class": ['v-field__outline', textColorClasses.value]
|
|
10372
|
+
"class": ['v-field__outline', textColorClasses.value],
|
|
10373
|
+
"style": textColorStyles.value
|
|
10261
10374
|
}, [isOutlined && vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
|
|
10262
10375
|
"class": "v-field__outline__start"
|
|
10263
10376
|
}, null), hasLabel.value && vue.createVNode("div", {
|
|
@@ -10301,6 +10414,7 @@
|
|
|
10301
10414
|
persistentPlaceholder: Boolean,
|
|
10302
10415
|
persistentCounter: Boolean,
|
|
10303
10416
|
suffix: String,
|
|
10417
|
+
role: String,
|
|
10304
10418
|
type: {
|
|
10305
10419
|
type: String,
|
|
10306
10420
|
default: 'text'
|
|
@@ -10425,7 +10539,7 @@
|
|
|
10425
10539
|
"onClick:clear": onClear,
|
|
10426
10540
|
"onClick:prependInner": props['onClick:prependInner'],
|
|
10427
10541
|
"onClick:appendInner": props['onClick:appendInner'],
|
|
10428
|
-
"role":
|
|
10542
|
+
"role": props.role
|
|
10429
10543
|
}, fieldProps, {
|
|
10430
10544
|
"id": id.value,
|
|
10431
10545
|
"active": isActive.value || isDirty.value,
|
|
@@ -10464,10 +10578,12 @@
|
|
|
10464
10578
|
"class": "v-text-field__prefix"
|
|
10465
10579
|
}, [vue.createVNode("span", {
|
|
10466
10580
|
"class": "v-text-field__prefix__text"
|
|
10467
|
-
}, [props.prefix])]), vue.createVNode("div", {
|
|
10581
|
+
}, [props.prefix])]), slots.default ? vue.createVNode("div", {
|
|
10468
10582
|
"class": fieldClass,
|
|
10469
10583
|
"data-no-activator": ""
|
|
10470
|
-
}, [slots.default
|
|
10584
|
+
}, [slots.default(), inputNode]) : vue.cloneVNode(inputNode, {
|
|
10585
|
+
class: fieldClass
|
|
10586
|
+
}), props.suffix && vue.createVNode("span", {
|
|
10471
10587
|
"class": "v-text-field__suffix"
|
|
10472
10588
|
}, [vue.createVNode("span", {
|
|
10473
10589
|
"class": "v-text-field__suffix__text"
|
|
@@ -10786,6 +10902,14 @@
|
|
|
10786
10902
|
const makeSelectProps = propsFactory({
|
|
10787
10903
|
chips: Boolean,
|
|
10788
10904
|
closableChips: Boolean,
|
|
10905
|
+
closeText: {
|
|
10906
|
+
type: String,
|
|
10907
|
+
default: '$vuetify.close'
|
|
10908
|
+
},
|
|
10909
|
+
openText: {
|
|
10910
|
+
type: String,
|
|
10911
|
+
default: '$vuetify.open'
|
|
10912
|
+
},
|
|
10789
10913
|
eager: Boolean,
|
|
10790
10914
|
hideNoData: Boolean,
|
|
10791
10915
|
hideSelected: Boolean,
|
|
@@ -10815,7 +10939,8 @@
|
|
|
10815
10939
|
const makeVSelectProps = propsFactory({
|
|
10816
10940
|
...makeSelectProps(),
|
|
10817
10941
|
...omit(makeVTextFieldProps({
|
|
10818
|
-
modelValue: null
|
|
10942
|
+
modelValue: null,
|
|
10943
|
+
role: 'button'
|
|
10819
10944
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
10820
10945
|
...makeTransitionProps({
|
|
10821
10946
|
transition: {
|
|
@@ -10870,6 +10995,7 @@
|
|
|
10870
10995
|
});
|
|
10871
10996
|
const selected = vue.computed(() => selections.value.map(selection => selection.props.value));
|
|
10872
10997
|
const isFocused = vue.shallowRef(false);
|
|
10998
|
+
const label = vue.computed(() => menu.value ? props.closeText : props.openText);
|
|
10873
10999
|
let keyboardLookupPrefix = '';
|
|
10874
11000
|
let keyboardLookupLastTime;
|
|
10875
11001
|
const displayItems = vue.computed(() => {
|
|
@@ -10996,7 +11122,9 @@
|
|
|
10996
11122
|
"onClick:clear": onClear,
|
|
10997
11123
|
"onMousedown:control": onMousedownControl,
|
|
10998
11124
|
"onBlur": onBlur,
|
|
10999
|
-
"onKeydown": onKeydown
|
|
11125
|
+
"onKeydown": onKeydown,
|
|
11126
|
+
"aria-label": t(label.value),
|
|
11127
|
+
"title": t(label.value)
|
|
11000
11128
|
}), {
|
|
11001
11129
|
...slots,
|
|
11002
11130
|
default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
|
|
@@ -11259,7 +11387,8 @@
|
|
|
11259
11387
|
}),
|
|
11260
11388
|
...makeSelectProps(),
|
|
11261
11389
|
...omit(makeVTextFieldProps({
|
|
11262
|
-
modelValue: null
|
|
11390
|
+
modelValue: null,
|
|
11391
|
+
role: 'combobox'
|
|
11263
11392
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
11264
11393
|
...makeTransitionProps({
|
|
11265
11394
|
transition: false
|
|
@@ -11296,6 +11425,7 @@
|
|
|
11296
11425
|
});
|
|
11297
11426
|
const selectionIndex = vue.shallowRef(-1);
|
|
11298
11427
|
const color = vue.computed(() => vTextFieldRef.value?.color);
|
|
11428
|
+
const label = vue.computed(() => menu.value ? props.closeText : props.openText);
|
|
11299
11429
|
const {
|
|
11300
11430
|
items,
|
|
11301
11431
|
transformIn,
|
|
@@ -11643,7 +11773,9 @@
|
|
|
11643
11773
|
"class": "v-autocomplete__menu-icon",
|
|
11644
11774
|
"icon": props.menuIcon,
|
|
11645
11775
|
"onMousedown": onMousedownMenuIcon,
|
|
11646
|
-
"onClick": noop
|
|
11776
|
+
"onClick": noop,
|
|
11777
|
+
"aria-label": t(label.value),
|
|
11778
|
+
"title": t(label.value)
|
|
11647
11779
|
}, null) : undefined]);
|
|
11648
11780
|
}
|
|
11649
11781
|
});
|
|
@@ -11798,6 +11930,7 @@
|
|
|
11798
11930
|
...makeComponentProps(),
|
|
11799
11931
|
...makeDensityProps(),
|
|
11800
11932
|
...makeDimensionProps(),
|
|
11933
|
+
...makeDisplayProps(),
|
|
11801
11934
|
...makeElevationProps(),
|
|
11802
11935
|
...makeLocationProps(),
|
|
11803
11936
|
...makePositionProps(),
|
|
@@ -11819,8 +11952,9 @@
|
|
|
11819
11952
|
densityClasses
|
|
11820
11953
|
} = useDensity(props);
|
|
11821
11954
|
const {
|
|
11955
|
+
displayClasses,
|
|
11822
11956
|
mobile
|
|
11823
|
-
} = useDisplay();
|
|
11957
|
+
} = useDisplay(props);
|
|
11824
11958
|
const {
|
|
11825
11959
|
dimensionStyles
|
|
11826
11960
|
} = useDimension(props);
|
|
@@ -11856,7 +11990,7 @@
|
|
|
11856
11990
|
'v-banner--stacked': props.stacked || mobile.value,
|
|
11857
11991
|
'v-banner--sticky': props.sticky,
|
|
11858
11992
|
[`v-banner--${props.lines}-line`]: !!props.lines
|
|
11859
|
-
}, borderClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11993
|
+
}, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, themeClasses.value, props.class],
|
|
11860
11994
|
"style": [dimensionStyles.value, locationStyles.value, props.style],
|
|
11861
11995
|
"role": "banner"
|
|
11862
11996
|
}, {
|
|
@@ -12163,12 +12297,17 @@
|
|
|
12163
12297
|
item,
|
|
12164
12298
|
raw
|
|
12165
12299
|
} = _ref2;
|
|
12166
|
-
return vue.createVNode(vue.Fragment, null, [
|
|
12167
|
-
|
|
12300
|
+
return vue.createVNode(vue.Fragment, null, [slots.item?.({
|
|
12301
|
+
item,
|
|
12302
|
+
index
|
|
12303
|
+
}) ?? vue.createVNode(VBreadcrumbsItem, vue.mergeProps({
|
|
12304
|
+
"key": index,
|
|
12168
12305
|
"disabled": index >= array.length - 1
|
|
12169
|
-
}, item
|
|
12306
|
+
}, typeof item === 'string' ? {
|
|
12307
|
+
title: item
|
|
12308
|
+
} : item), {
|
|
12170
12309
|
default: slots.title ? () => slots.title?.({
|
|
12171
|
-
item
|
|
12310
|
+
item,
|
|
12172
12311
|
index
|
|
12173
12312
|
}) : undefined
|
|
12174
12313
|
}), index < array.length - 1 && vue.createVNode(VBreadcrumbsDivider, null, {
|
|
@@ -13506,7 +13645,11 @@
|
|
|
13506
13645
|
...makeRoundedProps(),
|
|
13507
13646
|
...makeElevationProps({
|
|
13508
13647
|
elevation: 2
|
|
13509
|
-
})
|
|
13648
|
+
}),
|
|
13649
|
+
ripple: {
|
|
13650
|
+
type: Boolean,
|
|
13651
|
+
default: true
|
|
13652
|
+
}
|
|
13510
13653
|
}, 'Slider');
|
|
13511
13654
|
const useSteps = props => {
|
|
13512
13655
|
const min = vue.computed(() => parseFloat(props.min));
|
|
@@ -14113,7 +14256,8 @@
|
|
|
14113
14256
|
"position": trackStop.value,
|
|
14114
14257
|
"elevation": props.elevation,
|
|
14115
14258
|
"onFocus": focus,
|
|
14116
|
-
"onBlur": blur
|
|
14259
|
+
"onBlur": blur,
|
|
14260
|
+
"ripple": props.ripple
|
|
14117
14261
|
}, {
|
|
14118
14262
|
'thumb-label': slots['thumb-label']
|
|
14119
14263
|
})]);
|
|
@@ -14144,12 +14288,36 @@
|
|
|
14144
14288
|
let {
|
|
14145
14289
|
emit
|
|
14146
14290
|
} = _ref;
|
|
14291
|
+
const abortController = new AbortController();
|
|
14292
|
+
vue.onUnmounted(() => abortController.abort());
|
|
14293
|
+
async function openEyeDropper() {
|
|
14294
|
+
if (!SUPPORTS_EYE_DROPPER) return;
|
|
14295
|
+
const eyeDropper = new window.EyeDropper();
|
|
14296
|
+
try {
|
|
14297
|
+
const result = await eyeDropper.open({
|
|
14298
|
+
signal: abortController.signal
|
|
14299
|
+
});
|
|
14300
|
+
const colorHexValue = HexToHSV(result.sRGBHex);
|
|
14301
|
+
emit('update:color', {
|
|
14302
|
+
...(props.color ?? nullColor),
|
|
14303
|
+
...colorHexValue
|
|
14304
|
+
});
|
|
14305
|
+
} catch (e) {}
|
|
14306
|
+
}
|
|
14147
14307
|
useRender(() => vue.createVNode("div", {
|
|
14148
14308
|
"class": ['v-color-picker-preview', {
|
|
14149
14309
|
'v-color-picker-preview--hide-alpha': props.hideAlpha
|
|
14150
14310
|
}, props.class],
|
|
14151
14311
|
"style": props.style
|
|
14152
|
-
}, [vue.createVNode("div", {
|
|
14312
|
+
}, [SUPPORTS_EYE_DROPPER && vue.createVNode("div", {
|
|
14313
|
+
"class": "v-color-picker-preview__eye-dropper",
|
|
14314
|
+
"key": "eyeDropper"
|
|
14315
|
+
}, [vue.createVNode(VBtn, {
|
|
14316
|
+
"onClick": openEyeDropper,
|
|
14317
|
+
"icon": "$eyeDropper",
|
|
14318
|
+
"variant": "plain",
|
|
14319
|
+
"density": "comfortable"
|
|
14320
|
+
}, null)]), vue.createVNode("div", {
|
|
14153
14321
|
"class": "v-color-picker-preview__dot"
|
|
14154
14322
|
}, [vue.createVNode("div", {
|
|
14155
14323
|
"style": {
|
|
@@ -14787,7 +14955,8 @@
|
|
|
14787
14955
|
returnObject: true
|
|
14788
14956
|
}),
|
|
14789
14957
|
...omit(makeVTextFieldProps({
|
|
14790
|
-
modelValue: null
|
|
14958
|
+
modelValue: null,
|
|
14959
|
+
role: 'combobox'
|
|
14791
14960
|
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
14792
14961
|
...makeTransitionProps({
|
|
14793
14962
|
transition: false
|
|
@@ -14826,6 +14995,7 @@
|
|
|
14826
14995
|
const selectionIndex = vue.shallowRef(-1);
|
|
14827
14996
|
let cleared = false;
|
|
14828
14997
|
const color = vue.computed(() => vTextFieldRef.value?.color);
|
|
14998
|
+
const label = vue.computed(() => menu.value ? props.closeText : props.openText);
|
|
14829
14999
|
const {
|
|
14830
15000
|
items,
|
|
14831
15001
|
transformIn,
|
|
@@ -15201,7 +15371,9 @@
|
|
|
15201
15371
|
"class": "v-combobox__menu-icon",
|
|
15202
15372
|
"icon": props.menuIcon,
|
|
15203
15373
|
"onMousedown": onMousedownMenuIcon,
|
|
15204
|
-
"onClick": noop
|
|
15374
|
+
"onClick": noop,
|
|
15375
|
+
"aria-label": t(label.value),
|
|
15376
|
+
"title": t(label.value)
|
|
15205
15377
|
}, null) : undefined]);
|
|
15206
15378
|
}
|
|
15207
15379
|
});
|
|
@@ -16816,6 +16988,7 @@
|
|
|
16816
16988
|
sticky: Boolean,
|
|
16817
16989
|
...makeBorderProps(),
|
|
16818
16990
|
...makeComponentProps(),
|
|
16991
|
+
...makeDisplayProps(),
|
|
16819
16992
|
...makeElevationProps(),
|
|
16820
16993
|
...makeLayoutItemProps(),
|
|
16821
16994
|
...makeRoundedProps(),
|
|
@@ -16854,8 +17027,9 @@
|
|
|
16854
17027
|
elevationClasses
|
|
16855
17028
|
} = useElevation(props);
|
|
16856
17029
|
const {
|
|
17030
|
+
displayClasses,
|
|
16857
17031
|
mobile
|
|
16858
|
-
} = useDisplay();
|
|
17032
|
+
} = useDisplay(props);
|
|
16859
17033
|
const {
|
|
16860
17034
|
roundedClasses
|
|
16861
17035
|
} = useRounded(props);
|
|
@@ -16966,7 +17140,7 @@
|
|
|
16966
17140
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
16967
17141
|
'v-navigation-drawer--active': isActive.value,
|
|
16968
17142
|
'v-navigation-drawer--sticky': isSticky.value
|
|
16969
|
-
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
17143
|
+
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
16970
17144
|
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
16971
17145
|
}, scopeId, attrs), {
|
|
16972
17146
|
default: () => [hasImage && vue.createVNode("div", {
|
|
@@ -17494,7 +17668,7 @@
|
|
|
17494
17668
|
const id = vue.computed(() => props.id || `radio-group-${uid}`);
|
|
17495
17669
|
const model = useProxiedModel(props, 'modelValue');
|
|
17496
17670
|
useRender(() => {
|
|
17497
|
-
const [
|
|
17671
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
17498
17672
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
17499
17673
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
17500
17674
|
const label = slots.label ? slots.label({
|
|
@@ -17506,7 +17680,7 @@
|
|
|
17506
17680
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
17507
17681
|
"class": ['v-radio-group', props.class],
|
|
17508
17682
|
"style": props.style
|
|
17509
|
-
},
|
|
17683
|
+
}, rootAttrs, inputProps, {
|
|
17510
17684
|
"modelValue": model.value,
|
|
17511
17685
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
17512
17686
|
"id": id.value
|
|
@@ -17714,7 +17888,8 @@
|
|
|
17714
17888
|
},
|
|
17715
17889
|
"min": min.value,
|
|
17716
17890
|
"max": model.value[1],
|
|
17717
|
-
"position": trackStart.value
|
|
17891
|
+
"position": trackStart.value,
|
|
17892
|
+
"ripple": props.ripple
|
|
17718
17893
|
}, {
|
|
17719
17894
|
'thumb-label': slots['thumb-label']
|
|
17720
17895
|
}), vue.createVNode(VSliderThumb, {
|
|
@@ -17742,7 +17917,8 @@
|
|
|
17742
17917
|
},
|
|
17743
17918
|
"min": model.value[0],
|
|
17744
17919
|
"max": max.value,
|
|
17745
|
-
"position": trackStop.value
|
|
17920
|
+
"position": trackStop.value,
|
|
17921
|
+
"ripple": props.ripple
|
|
17746
17922
|
}, {
|
|
17747
17923
|
'thumb-label': slots['thumb-label']
|
|
17748
17924
|
})]);
|
|
@@ -18016,6 +18192,7 @@
|
|
|
18016
18192
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
18017
18193
|
},
|
|
18018
18194
|
...makeComponentProps(),
|
|
18195
|
+
...makeDisplayProps(),
|
|
18019
18196
|
...makeTagProps(),
|
|
18020
18197
|
...makeGroupProps({
|
|
18021
18198
|
selectedClass: 'v-slide-group-item--active'
|
|
@@ -18035,8 +18212,9 @@
|
|
|
18035
18212
|
isRtl
|
|
18036
18213
|
} = useRtl();
|
|
18037
18214
|
const {
|
|
18215
|
+
displayClasses,
|
|
18038
18216
|
mobile
|
|
18039
|
-
} = useDisplay();
|
|
18217
|
+
} = useDisplay(props);
|
|
18040
18218
|
const group = useGroup(props, props.symbol);
|
|
18041
18219
|
const isOverflowing = vue.shallowRef(false);
|
|
18042
18220
|
const scrollOffset = vue.shallowRef(0);
|
|
@@ -18256,7 +18434,7 @@
|
|
|
18256
18434
|
'v-slide-group--vertical': !isHorizontal.value,
|
|
18257
18435
|
'v-slide-group--has-affixes': hasAffixes.value,
|
|
18258
18436
|
'v-slide-group--is-overflowing': isOverflowing.value
|
|
18259
|
-
}, props.class],
|
|
18437
|
+
}, displayClasses.value, props.class],
|
|
18260
18438
|
"style": props.style,
|
|
18261
18439
|
"tabindex": isFocused.value || group.selected.value.length ? -1 : 0,
|
|
18262
18440
|
"onFocus": onFocus
|
|
@@ -18483,6 +18661,7 @@
|
|
|
18483
18661
|
focus,
|
|
18484
18662
|
blur
|
|
18485
18663
|
} = useFocus(props);
|
|
18664
|
+
const control = vue.ref();
|
|
18486
18665
|
const loaderColor = vue.computed(() => {
|
|
18487
18666
|
return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
|
|
18488
18667
|
});
|
|
@@ -18493,16 +18672,15 @@
|
|
|
18493
18672
|
indeterminate.value = false;
|
|
18494
18673
|
}
|
|
18495
18674
|
}
|
|
18675
|
+
function onTrackClick(e) {
|
|
18676
|
+
e.stopPropagation();
|
|
18677
|
+
e.preventDefault();
|
|
18678
|
+
control.value?.input?.click();
|
|
18679
|
+
}
|
|
18496
18680
|
useRender(() => {
|
|
18497
|
-
const [
|
|
18681
|
+
const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
18498
18682
|
const [inputProps, _1] = VInput.filterProps(props);
|
|
18499
18683
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
18500
|
-
const control = vue.ref();
|
|
18501
|
-
function onClick(e) {
|
|
18502
|
-
e.stopPropagation();
|
|
18503
|
-
e.preventDefault();
|
|
18504
|
-
control.value?.input?.click();
|
|
18505
|
-
}
|
|
18506
18684
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
18507
18685
|
"class": ['v-switch', {
|
|
18508
18686
|
'v-switch--inset': props.inset
|
|
@@ -18510,7 +18688,7 @@
|
|
|
18510
18688
|
'v-switch--indeterminate': indeterminate.value
|
|
18511
18689
|
}, loaderClasses.value, props.class],
|
|
18512
18690
|
"style": props.style
|
|
18513
|
-
},
|
|
18691
|
+
}, rootAttrs, inputProps, {
|
|
18514
18692
|
"id": id.value,
|
|
18515
18693
|
"focused": isFocused.value
|
|
18516
18694
|
}), {
|
|
@@ -18540,29 +18718,36 @@
|
|
|
18540
18718
|
...slots,
|
|
18541
18719
|
default: () => vue.createVNode("div", {
|
|
18542
18720
|
"class": "v-switch__track",
|
|
18543
|
-
"onClick":
|
|
18721
|
+
"onClick": onTrackClick
|
|
18544
18722
|
}, null),
|
|
18545
18723
|
input: _ref3 => {
|
|
18546
18724
|
let {
|
|
18547
|
-
|
|
18548
|
-
|
|
18725
|
+
inputNode,
|
|
18726
|
+
icon
|
|
18549
18727
|
} = _ref3;
|
|
18550
|
-
return vue.createVNode("div", {
|
|
18551
|
-
"class": ['v-switch__thumb',
|
|
18552
|
-
|
|
18553
|
-
|
|
18554
|
-
|
|
18555
|
-
|
|
18556
|
-
|
|
18557
|
-
|
|
18558
|
-
|
|
18559
|
-
|
|
18560
|
-
"
|
|
18561
|
-
"
|
|
18562
|
-
"
|
|
18563
|
-
|
|
18564
|
-
|
|
18565
|
-
|
|
18728
|
+
return vue.createVNode(vue.Fragment, null, [inputNode, vue.createVNode("div", {
|
|
18729
|
+
"class": ['v-switch__thumb', {
|
|
18730
|
+
'v-switch__thumb--filled': icon || props.loading
|
|
18731
|
+
}]
|
|
18732
|
+
}, [vue.createVNode(VScaleTransition, null, {
|
|
18733
|
+
default: () => [!props.loading ? icon && vue.createVNode(VIcon, {
|
|
18734
|
+
"key": icon,
|
|
18735
|
+
"icon": icon,
|
|
18736
|
+
"size": "x-small"
|
|
18737
|
+
}, null) : vue.createVNode(LoaderSlot, {
|
|
18738
|
+
"name": "v-switch",
|
|
18739
|
+
"active": true,
|
|
18740
|
+
"color": isValid.value === false ? undefined : loaderColor.value
|
|
18741
|
+
}, {
|
|
18742
|
+
default: slotProps => slots.loader ? slots.loader(slotProps) : vue.createVNode(VProgressCircular, {
|
|
18743
|
+
"active": slotProps.isActive,
|
|
18744
|
+
"color": slotProps.color,
|
|
18745
|
+
"indeterminate": true,
|
|
18746
|
+
"size": "16",
|
|
18747
|
+
"width": "2"
|
|
18748
|
+
}, null)
|
|
18749
|
+
})]
|
|
18750
|
+
})])]);
|
|
18566
18751
|
}
|
|
18567
18752
|
});
|
|
18568
18753
|
}
|
|
@@ -19043,8 +19228,7 @@
|
|
|
19043
19228
|
"onMousedown": onControlMousedown,
|
|
19044
19229
|
"onClick:clear": onClear,
|
|
19045
19230
|
"onClick:prependInner": props['onClick:prependInner'],
|
|
19046
|
-
"onClick:appendInner": props['onClick:appendInner']
|
|
19047
|
-
"role": "textbox"
|
|
19231
|
+
"onClick:appendInner": props['onClick:appendInner']
|
|
19048
19232
|
}, fieldProps, {
|
|
19049
19233
|
"active": isActive.value || isDirty.value,
|
|
19050
19234
|
"centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
|
|
@@ -24396,7 +24580,7 @@
|
|
|
24396
24580
|
date
|
|
24397
24581
|
};
|
|
24398
24582
|
}
|
|
24399
|
-
const version$1 = "3.
|
|
24583
|
+
const version$1 = "3.4.0-alpha.0";
|
|
24400
24584
|
createVuetify$1.version = version$1;
|
|
24401
24585
|
|
|
24402
24586
|
// Vue's inject() can only be used in setup
|
|
@@ -24410,7 +24594,7 @@
|
|
|
24410
24594
|
|
|
24411
24595
|
/* eslint-disable local-rules/sort-imports */
|
|
24412
24596
|
|
|
24413
|
-
const version = "3.
|
|
24597
|
+
const version = "3.4.0-alpha.0";
|
|
24414
24598
|
|
|
24415
24599
|
/* eslint-disable local-rules/sort-imports */
|
|
24416
24600
|
|