@vuetify/nightly 3.2.0-next-20230118.0 → 4.0.0-master-20230206.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/CHANGELOG.md +204 -16
- package/dist/json/attributes.json +7202 -0
- package/dist/json/importMap-labs.json +4 -0
- package/dist/json/importMap.json +50 -50
- package/dist/json/tags.json +2492 -0
- package/dist/json/web-types.json +24081 -0
- package/dist/vuetify-labs.css +183 -176
- package/dist/vuetify-labs.d.ts +387 -176
- package/dist/vuetify-labs.esm.js +284 -216
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +283 -215
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +51 -44
- package/dist/vuetify.d.ts +329 -190
- package/dist/vuetify.esm.js +251 -186
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +250 -185
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +696 -685
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +2 -2
- package/lib/blueprints/md1.d.ts +2 -2
- package/lib/blueprints/md2.d.ts +2 -2
- package/lib/blueprints/md3.d.ts +2 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +43 -20
- package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -4
- package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +7 -7
- package/lib/components/VBtn/VBtn.mjs +8 -3
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.mjs +15 -11
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/index.d.ts +2 -1
- package/lib/components/VBtnToggle/VBtnToggle.mjs +9 -5
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.ts +122 -1
- package/lib/components/VCalendar/VCalendar.mjs +3 -0
- package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarCategory.sass +9 -3
- package/lib/components/VCalendar/VCalendarDaily.mjs +20 -8
- package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs +25 -5
- package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs +20 -16
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/mouse.mjs +16 -30
- package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
- package/lib/components/VCard/VCard.css +7 -7
- package/lib/components/VChip/VChip.css +7 -7
- package/lib/components/VCombobox/VCombobox.mjs +3 -3
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +43 -20
- package/lib/components/VData/VData.mjs +2 -4
- package/lib/components/VData/VData.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +7 -5
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/index.d.ts +5 -4
- package/lib/components/VDialog/VDialog.mjs +6 -5
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.ts +57 -34
- package/lib/components/VDivider/VDivider.mjs +6 -6
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +7 -7
- package/lib/components/VField/VField.css +2 -2
- package/lib/components/VField/VField.mjs +28 -26
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +2 -2
- package/lib/components/VFileInput/VFileInput.mjs +7 -4
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VForm/index.d.ts +0 -3
- package/lib/components/VList/VList.mjs +4 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +7 -7
- package/lib/components/VList/VListItem.mjs +29 -19
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.mjs +6 -5
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +57 -34
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +4 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +4 -0
- package/lib/components/VNavigationDrawer/index.d.ts +3 -3
- package/lib/components/VNavigationDrawer/touch.mjs +7 -6
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.mjs +22 -46
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs +3 -0
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +34 -11
- package/lib/components/VOverlay/locationStrategies.mjs +40 -29
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +25 -16
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +1 -1
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +3 -4
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +43 -20
- package/lib/components/VSelectionControl/VSelectionControl.css +2 -2
- package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +1 -1
- package/lib/components/VSnackbar/index.d.ts +42 -19
- package/lib/components/VStepper/VStepper.sass +6 -6
- package/lib/components/VStepper/VStepperStep.mjs +12 -2
- package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
- package/lib/components/VTable/VTable.css +4 -4
- package/lib/components/VTable/VTable.sass +2 -2
- package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/components/VTimeline/_mixins.sass +1 -1
- package/lib/components/VTooltip/VTooltip.mjs +4 -3
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/index.d.ts +57 -34
- package/lib/components/VTreeview/VTreeview.mjs +1 -1
- package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/components/index.d.ts +316 -176
- package/lib/composables/defaults.mjs +1 -1
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/filter.mjs +3 -3
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/form.mjs +0 -1
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +2 -1
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +14 -7
- package/lib/composables/toggleScope.mjs.map +1 -1
- package/lib/directives/ripple/VRipple.css +3 -0
- package/lib/directives/ripple/VRipple.sass +3 -0
- package/lib/directives/ripple/_variables.scss +1 -1
- package/lib/directives/ripple/index.mjs +2 -7
- package/lib/directives/ripple/index.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/index.d.ts +16 -16
- package/lib/labs/VDataTable/VDataTable.mjs +6 -6
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +19 -12
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -5
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +3 -7
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +71 -1
- package/lib/labs/VDataTable/index.mjs +1 -0
- package/lib/labs/VDataTable/index.mjs.map +1 -1
- package/lib/labs/components.d.ts +71 -1
- package/lib/locale/adapters/vue-i18n.mjs +12 -2
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/ar.mjs +20 -20
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/en.mjs +2 -2
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +3 -3
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/fi.mjs +5 -5
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/it.mjs +6 -6
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/sv.mjs +13 -13
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/styles/settings/_variables.scss +6 -6
- package/lib/styles/tools/_states.sass +3 -3
- package/lib/util/defineComponent.mjs +21 -18
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +5 -19
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +1 -1
package/dist/vuetify.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify
|
2
|
+
* Vuetify v4.0.0-master-20230206.0
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -262,8 +262,12 @@
|
|
262
262
|
}
|
263
263
|
function toKebabCase() {
|
264
264
|
let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
265
|
-
|
265
|
+
if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);
|
266
|
+
const kebab = str.replace(/[^a-z]/gi, '-').replace(/\B([A-Z])/g, '-$1').toLowerCase();
|
267
|
+
toKebabCase.cache.set(str, kebab);
|
268
|
+
return kebab;
|
266
269
|
}
|
270
|
+
toKebabCase.cache = new Map();
|
267
271
|
function findChildrenWithProvide(key, vnode) {
|
268
272
|
if (!vnode || typeof vnode !== 'object') return [];
|
269
273
|
if (Array.isArray(vnode)) {
|
@@ -890,7 +894,7 @@
|
|
890
894
|
|
891
895
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
892
896
|
function createDefaults(options) {
|
893
|
-
return vue.ref(options
|
897
|
+
return vue.ref(options);
|
894
898
|
}
|
895
899
|
function useDefaults() {
|
896
900
|
const defaults = vue.inject(DefaultsSymbol);
|
@@ -922,23 +926,30 @@
|
|
922
926
|
return newDefaults;
|
923
927
|
}
|
924
928
|
|
925
|
-
function useToggleScope(source,
|
929
|
+
function useToggleScope(source, fn) {
|
926
930
|
let scope;
|
931
|
+
function start() {
|
932
|
+
scope = vue.effectScope();
|
933
|
+
scope.run(() => fn.length ? fn(() => {
|
934
|
+
var _scope;
|
935
|
+
(_scope = scope) == null ? void 0 : _scope.stop();
|
936
|
+
start();
|
937
|
+
}) : fn());
|
938
|
+
}
|
927
939
|
vue.watch(source, active => {
|
928
940
|
if (active && !scope) {
|
929
|
-
|
930
|
-
scope.run(cb);
|
941
|
+
start();
|
931
942
|
} else if (!active) {
|
932
|
-
var
|
933
|
-
(
|
943
|
+
var _scope2;
|
944
|
+
(_scope2 = scope) == null ? void 0 : _scope2.stop();
|
934
945
|
scope = undefined;
|
935
946
|
}
|
936
947
|
}, {
|
937
948
|
immediate: true
|
938
949
|
});
|
939
950
|
vue.onScopeDispose(() => {
|
940
|
-
var
|
941
|
-
(
|
951
|
+
var _scope3;
|
952
|
+
(_scope3 = scope) == null ? void 0 : _scope3.stop();
|
942
953
|
});
|
943
954
|
}
|
944
955
|
|
@@ -1007,33 +1018,36 @@
|
|
1007
1018
|
options.props = propsFactory(options.props, toKebabCase(options.name))();
|
1008
1019
|
options.props._as = String;
|
1009
1020
|
options.setup = function setup(props, ctx) {
|
1010
|
-
const vm = vue.getCurrentInstance();
|
1011
1021
|
const defaults = useDefaults();
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1022
|
+
|
1023
|
+
// Skip props proxy if defaults are not provided
|
1024
|
+
if (!defaults.value) return options._setup(props, ctx);
|
1025
|
+
const vm = vue.getCurrentInstance();
|
1026
|
+
const componentDefaults = vue.computed(() => defaults.value[props._as ?? options.name]);
|
1027
|
+
const _props = new Proxy(props, {
|
1028
|
+
get(target, prop) {
|
1029
|
+
if (!propIsDefined(vm.vnode, prop)) {
|
1030
|
+
var _componentDefaults$va, _global;
|
1031
|
+
return ((_componentDefaults$va = componentDefaults.value) == null ? void 0 : _componentDefaults$va[prop]) ?? ((_global = defaults.value.global) == null ? void 0 : _global[prop]) ?? target[prop];
|
1032
|
+
}
|
1033
|
+
return Reflect.get(target, prop);
|
1034
|
+
}
|
1015
1035
|
});
|
1036
|
+
const _subcomponentDefaults = vue.shallowRef();
|
1016
1037
|
vue.watchEffect(() => {
|
1017
|
-
|
1018
|
-
|
1019
|
-
if (componentDefaults) {
|
1020
|
-
const subComponents = Object.entries(componentDefaults).filter(_ref => {
|
1038
|
+
if (componentDefaults.value) {
|
1039
|
+
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
1021
1040
|
let [key] = _ref;
|
1022
1041
|
return key.startsWith(key[0].toUpperCase());
|
1023
1042
|
});
|
1024
1043
|
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
1025
1044
|
}
|
1026
|
-
for (const prop of Object.keys(props)) {
|
1027
|
-
let newVal = props[prop];
|
1028
|
-
if (!propIsDefined(vm.vnode, prop)) {
|
1029
|
-
newVal = (componentDefaults == null ? void 0 : componentDefaults[prop]) ?? (globalDefaults == null ? void 0 : globalDefaults[prop]) ?? props[prop];
|
1030
|
-
}
|
1031
|
-
if (_props[prop] !== newVal) {
|
1032
|
-
_props[prop] = newVal;
|
1033
|
-
}
|
1034
|
-
}
|
1035
1045
|
});
|
1036
1046
|
const setupBindings = options._setup(_props, ctx);
|
1047
|
+
|
1048
|
+
// If subcomponent defaults are provided, override any
|
1049
|
+
// subcomponents provided by the component's setup function.
|
1050
|
+
// This uses injectSelf so must be done after the original setup to work.
|
1037
1051
|
useToggleScope(_subcomponentDefaults, () => {
|
1038
1052
|
var _injectSelf;
|
1039
1053
|
provideDefaults(mergeDeep(((_injectSelf = injectSelf(DefaultsSymbol)) == null ? void 0 : _injectSelf.value) ?? {}, _subcomponentDefaults.value));
|
@@ -1892,8 +1906,8 @@
|
|
1892
1906
|
root: 'Pagination Navigation',
|
1893
1907
|
next: 'Next page',
|
1894
1908
|
previous: 'Previous page',
|
1895
|
-
page: '
|
1896
|
-
currentPage: 'Page {0}, Current
|
1909
|
+
page: 'Go to page {0}',
|
1910
|
+
currentPage: 'Page {0}, Current page',
|
1897
1911
|
first: 'First page',
|
1898
1912
|
last: 'Last page'
|
1899
1913
|
}
|
@@ -3368,18 +3382,21 @@
|
|
3368
3382
|
};
|
3369
3383
|
}
|
3370
3384
|
|
3385
|
+
// Types
|
3386
|
+
|
3387
|
+
const makeVBtnGroupProps = propsFactory({
|
3388
|
+
divided: Boolean,
|
3389
|
+
...makeBorderProps(),
|
3390
|
+
...makeDensityProps(),
|
3391
|
+
...makeElevationProps(),
|
3392
|
+
...makeRoundedProps(),
|
3393
|
+
...makeTagProps(),
|
3394
|
+
...makeThemeProps(),
|
3395
|
+
...makeVariantProps()
|
3396
|
+
}, 'v-btn-group');
|
3371
3397
|
const VBtnGroup = defineComponent({
|
3372
3398
|
name: 'VBtnGroup',
|
3373
|
-
props:
|
3374
|
-
divided: Boolean,
|
3375
|
-
...makeBorderProps(),
|
3376
|
-
...makeDensityProps(),
|
3377
|
-
...makeElevationProps(),
|
3378
|
-
...makeRoundedProps(),
|
3379
|
-
...makeTagProps(),
|
3380
|
-
...makeThemeProps(),
|
3381
|
-
...makeVariantProps()
|
3382
|
-
},
|
3399
|
+
props: makeVBtnGroupProps(),
|
3383
3400
|
setup(props, _ref) {
|
3384
3401
|
let {
|
3385
3402
|
slots
|
@@ -3417,6 +3434,9 @@
|
|
3417
3434
|
});
|
3418
3435
|
}
|
3419
3436
|
});
|
3437
|
+
function filterVBtnGroupProps(props) {
|
3438
|
+
return pick(props, Object.keys(VBtnGroup.props));
|
3439
|
+
}
|
3420
3440
|
|
3421
3441
|
// Composables
|
3422
3442
|
|
@@ -3624,7 +3644,10 @@
|
|
3624
3644
|
const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');
|
3625
3645
|
const VBtnToggle = genericComponent()({
|
3626
3646
|
name: 'VBtnToggle',
|
3627
|
-
props:
|
3647
|
+
props: {
|
3648
|
+
...makeVBtnGroupProps(),
|
3649
|
+
...makeGroupProps()
|
3650
|
+
},
|
3628
3651
|
emits: {
|
3629
3652
|
'update:modelValue': value => true
|
3630
3653
|
},
|
@@ -3641,9 +3664,10 @@
|
|
3641
3664
|
} = useGroup(props, VBtnToggleSymbol);
|
3642
3665
|
useRender(() => {
|
3643
3666
|
var _slots$default;
|
3644
|
-
|
3667
|
+
const [btnGroupProps] = filterVBtnGroupProps(props);
|
3668
|
+
return vue.createVNode(VBtnGroup, vue.mergeProps({
|
3645
3669
|
"class": "v-btn-toggle"
|
3646
|
-
}, {
|
3670
|
+
}, btnGroupProps), {
|
3647
3671
|
default: () => [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
|
3648
3672
|
isSelected,
|
3649
3673
|
next,
|
@@ -4098,9 +4122,6 @@
|
|
4098
4122
|
el.style.transform = value;
|
4099
4123
|
el.style.webkitTransform = value;
|
4100
4124
|
}
|
4101
|
-
function opacity(el, value) {
|
4102
|
-
el.style.opacity = `calc(${value} * var(--v-theme-overlay-multiplier))`;
|
4103
|
-
}
|
4104
4125
|
function isTouchEvent(e) {
|
4105
4126
|
return e.constructor.name === 'TouchEvent';
|
4106
4127
|
}
|
@@ -4176,13 +4197,11 @@
|
|
4176
4197
|
animation.classList.add('v-ripple__animation--enter');
|
4177
4198
|
animation.classList.add('v-ripple__animation--visible');
|
4178
4199
|
transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
4179
|
-
opacity(animation, 0);
|
4180
4200
|
animation.dataset.activated = String(performance.now());
|
4181
4201
|
setTimeout(() => {
|
4182
4202
|
animation.classList.remove('v-ripple__animation--enter');
|
4183
4203
|
animation.classList.add('v-ripple__animation--in');
|
4184
4204
|
transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
4185
|
-
opacity(animation, 0.08);
|
4186
4205
|
}, 0);
|
4187
4206
|
},
|
4188
4207
|
hide(el) {
|
@@ -4197,14 +4216,14 @@
|
|
4197
4216
|
setTimeout(() => {
|
4198
4217
|
animation.classList.remove('v-ripple__animation--in');
|
4199
4218
|
animation.classList.add('v-ripple__animation--out');
|
4200
|
-
opacity(animation, 0);
|
4201
4219
|
setTimeout(() => {
|
4220
|
+
var _animation$parentNode;
|
4202
4221
|
const ripples = el.getElementsByClassName('v-ripple__animation');
|
4203
4222
|
if (ripples.length === 1 && el.dataset.previousPosition) {
|
4204
4223
|
el.style.position = el.dataset.previousPosition;
|
4205
4224
|
delete el.dataset.previousPosition;
|
4206
4225
|
}
|
4207
|
-
animation.parentNode
|
4226
|
+
if (((_animation$parentNode = animation.parentNode) == null ? void 0 : _animation$parentNode.parentNode) === el) el.removeChild(animation.parentNode);
|
4208
4227
|
}, 300);
|
4209
4228
|
}, delay);
|
4210
4229
|
}
|
@@ -4857,14 +4876,18 @@
|
|
4857
4876
|
const isElevated = vue.computed(() => {
|
4858
4877
|
return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
|
4859
4878
|
});
|
4879
|
+
const valueAttr = vue.computed(() => {
|
4880
|
+
if (props.value === undefined) return undefined;
|
4881
|
+
return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
|
4882
|
+
});
|
4860
4883
|
useSelectLink(link, group == null ? void 0 : group.select);
|
4861
4884
|
useRender(() => {
|
4862
|
-
var _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
4885
|
+
var _link$isActive2, _link$isActive3, _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
4863
4886
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
4864
|
-
const hasColor = !group || isActive.value;
|
4865
4887
|
const hasPrepend = !!(props.prependIcon || slots.prepend);
|
4866
4888
|
const hasAppend = !!(props.appendIcon || slots.append);
|
4867
4889
|
const hasIcon = !!(props.icon && props.icon !== true);
|
4890
|
+
const hasColor = (group == null ? void 0 : group.isSelected.value) && (!link.isLink.value || ((_link$isActive2 = link.isActive) == null ? void 0 : _link$isActive2.value)) || !group || ((_link$isActive3 = link.isActive) == null ? void 0 : _link$isActive3.value);
|
4868
4891
|
return vue.withDirectives(vue.createVNode(Tag, {
|
4869
4892
|
"type": Tag === 'a' ? undefined : 'button',
|
4870
4893
|
"class": ['v-btn', group == null ? void 0 : group.selectedClass.value, {
|
@@ -4885,7 +4908,8 @@
|
|
4885
4908
|
if (isDisabled.value) return;
|
4886
4909
|
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
4887
4910
|
group == null ? void 0 : group.toggle();
|
4888
|
-
}
|
4911
|
+
},
|
4912
|
+
"value": valueAttr.value
|
4889
4913
|
}, {
|
4890
4914
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode(VDefaultsProvider, {
|
4891
4915
|
"key": "prepend",
|
@@ -5359,32 +5383,34 @@
|
|
5359
5383
|
if (hasLabel.value) {
|
5360
5384
|
const el = labelRef.value.$el;
|
5361
5385
|
const targetEl = floatingLabelRef.value.$el;
|
5362
|
-
|
5363
|
-
|
5364
|
-
|
5365
|
-
|
5366
|
-
|
5367
|
-
|
5368
|
-
|
5369
|
-
|
5370
|
-
|
5371
|
-
|
5372
|
-
|
5373
|
-
|
5374
|
-
|
5375
|
-
|
5376
|
-
|
5377
|
-
|
5378
|
-
|
5379
|
-
|
5380
|
-
|
5381
|
-
|
5382
|
-
|
5383
|
-
|
5384
|
-
|
5385
|
-
|
5386
|
-
|
5387
|
-
|
5386
|
+
requestAnimationFrame(() => {
|
5387
|
+
const rect = nullifyTransforms(el);
|
5388
|
+
const targetRect = targetEl.getBoundingClientRect();
|
5389
|
+
const x = targetRect.x - rect.x;
|
5390
|
+
const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2);
|
5391
|
+
const targetWidth = targetRect.width / 0.75;
|
5392
|
+
const width = Math.abs(targetWidth - rect.width) > 1 ? {
|
5393
|
+
maxWidth: convertToUnit(targetWidth)
|
5394
|
+
} : undefined;
|
5395
|
+
const style = getComputedStyle(el);
|
5396
|
+
const targetStyle = getComputedStyle(targetEl);
|
5397
|
+
const duration = parseFloat(style.transitionDuration) * 1000 || 150;
|
5398
|
+
const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'));
|
5399
|
+
const color = targetStyle.getPropertyValue('color');
|
5400
|
+
el.style.visibility = 'visible';
|
5401
|
+
targetEl.style.visibility = 'hidden';
|
5402
|
+
animate(el, {
|
5403
|
+
transform: `translate(${x}px, ${y}px) scale(${scale})`,
|
5404
|
+
color,
|
5405
|
+
...width
|
5406
|
+
}, {
|
5407
|
+
duration,
|
5408
|
+
easing: standardEasing,
|
5409
|
+
direction: val ? 'normal' : 'reverse'
|
5410
|
+
}).finished.then(() => {
|
5411
|
+
el.style.removeProperty('visibility');
|
5412
|
+
targetEl.style.removeProperty('visibility');
|
5413
|
+
});
|
5388
5414
|
});
|
5389
5415
|
}
|
5390
5416
|
}, {
|
@@ -5573,7 +5599,6 @@
|
|
5573
5599
|
const makeFormProps = propsFactory({
|
5574
5600
|
disabled: Boolean,
|
5575
5601
|
fastFail: Boolean,
|
5576
|
-
lazyValidation: Boolean,
|
5577
5602
|
readonly: Boolean,
|
5578
5603
|
modelValue: {
|
5579
5604
|
type: Boolean,
|
@@ -6977,9 +7002,9 @@
|
|
6977
7002
|
themeClasses
|
6978
7003
|
} = provideTheme(props);
|
6979
7004
|
const {
|
6980
|
-
|
6981
|
-
|
6982
|
-
} =
|
7005
|
+
textColorClasses,
|
7006
|
+
textColorStyles
|
7007
|
+
} = useTextColor(vue.toRef(props, 'color'));
|
6983
7008
|
const dividerStyles = vue.computed(() => {
|
6984
7009
|
const styles = {};
|
6985
7010
|
if (props.length) {
|
@@ -6995,8 +7020,8 @@
|
|
6995
7020
|
'v-divider': true,
|
6996
7021
|
'v-divider--inset': props.inset,
|
6997
7022
|
'v-divider--vertical': props.vertical
|
6998
|
-
}, themeClasses.value,
|
6999
|
-
"style": [dividerStyles.value,
|
7023
|
+
}, themeClasses.value, textColorClasses.value],
|
7024
|
+
"style": [dividerStyles.value, textColorStyles.value],
|
7000
7025
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
7001
7026
|
"role": `${attrs.role || 'separator'}`
|
7002
7027
|
}, null));
|
@@ -7434,7 +7459,8 @@
|
|
7434
7459
|
};
|
7435
7460
|
const useNestedItem = (id, isGroup) => {
|
7436
7461
|
const parent = vue.inject(VNestedSymbol, emptyNested);
|
7437
|
-
const
|
7462
|
+
const uidSymbol = Symbol(getUid());
|
7463
|
+
const computedId = vue.computed(() => id.value ?? uidSymbol);
|
7438
7464
|
const item = {
|
7439
7465
|
...parent,
|
7440
7466
|
id: computedId,
|
@@ -7706,7 +7732,7 @@
|
|
7706
7732
|
}
|
7707
7733
|
}
|
7708
7734
|
useRender(() => {
|
7709
|
-
var _slots$
|
7735
|
+
var _slots$title, _slots$subtitle, _slots$default;
|
7710
7736
|
const Tag = isLink.value ? 'a' : props.tag;
|
7711
7737
|
const hasColor = !list || isSelected.value || isActive.value;
|
7712
7738
|
const hasTitle = slots.title || props.title;
|
@@ -7729,7 +7755,18 @@
|
|
7729
7755
|
"onClick": onClick,
|
7730
7756
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
7731
7757
|
}, {
|
7732
|
-
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode(
|
7758
|
+
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode("div", {
|
7759
|
+
"key": "prepend",
|
7760
|
+
"class": "v-list-item__prepend"
|
7761
|
+
}, [props.prependAvatar && vue.createVNode(VAvatar, {
|
7762
|
+
"key": "prepend-avatar",
|
7763
|
+
"density": props.density,
|
7764
|
+
"image": props.prependAvatar
|
7765
|
+
}, null), props.prependIcon && vue.createVNode(VIcon, {
|
7766
|
+
"key": "prepend-icon",
|
7767
|
+
"density": props.density,
|
7768
|
+
"icon": props.prependIcon
|
7769
|
+
}, null), slots.prepend && vue.createVNode(VDefaultsProvider, {
|
7733
7770
|
"key": "prepend",
|
7734
7771
|
"defaults": {
|
7735
7772
|
VAvatar: {
|
@@ -7745,14 +7782,8 @@
|
|
7745
7782
|
}
|
7746
7783
|
}
|
7747
7784
|
}, {
|
7748
|
-
default: () => [
|
7749
|
-
|
7750
|
-
}, [props.prependAvatar && vue.createVNode(VAvatar, {
|
7751
|
-
"key": "prepend-avatar"
|
7752
|
-
}, null), props.prependIcon && vue.createVNode(VIcon, {
|
7753
|
-
"key": "prepend-icon"
|
7754
|
-
}, null), (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value)])]
|
7755
|
-
}), vue.createVNode("div", {
|
7785
|
+
default: () => [slots.prepend(slotProps.value)]
|
7786
|
+
})]), vue.createVNode("div", {
|
7756
7787
|
"class": "v-list-item__content",
|
7757
7788
|
"data-no-activator": ""
|
7758
7789
|
}, [hasTitle && vue.createVNode(VListItemTitle, {
|
@@ -7767,7 +7798,10 @@
|
|
7767
7798
|
default: () => [((_slots$subtitle = slots.subtitle) == null ? void 0 : _slots$subtitle.call(slots, {
|
7768
7799
|
subtitle: props.subtitle
|
7769
7800
|
})) ?? props.subtitle]
|
7770
|
-
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && vue.createVNode(
|
7801
|
+
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && vue.createVNode("div", {
|
7802
|
+
"key": "append",
|
7803
|
+
"class": "v-list-item__append"
|
7804
|
+
}, [slots.append && vue.createVNode(VDefaultsProvider, {
|
7771
7805
|
"key": "append",
|
7772
7806
|
"defaults": {
|
7773
7807
|
VAvatar: {
|
@@ -7783,14 +7817,16 @@
|
|
7783
7817
|
}
|
7784
7818
|
}
|
7785
7819
|
}, {
|
7786
|
-
default: () => [
|
7787
|
-
|
7788
|
-
|
7789
|
-
|
7790
|
-
|
7791
|
-
|
7792
|
-
|
7793
|
-
|
7820
|
+
default: () => [slots.append(slotProps.value)]
|
7821
|
+
}), props.appendIcon && vue.createVNode(VIcon, {
|
7822
|
+
"key": "append-icon",
|
7823
|
+
"density": props.density,
|
7824
|
+
"icon": props.appendIcon
|
7825
|
+
}, null), props.appendAvatar && vue.createVNode(VAvatar, {
|
7826
|
+
"key": "append-avatar",
|
7827
|
+
"density": props.density,
|
7828
|
+
"image": props.appendAvatar
|
7829
|
+
}, null)])]
|
7794
7830
|
}), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
7795
7831
|
});
|
7796
7832
|
return {};
|
@@ -8004,9 +8040,12 @@
|
|
8004
8040
|
|
8005
8041
|
// Types
|
8006
8042
|
|
8043
|
+
function isPrimitive(value) {
|
8044
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
8045
|
+
}
|
8007
8046
|
function transformItem(props, item) {
|
8008
8047
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
8009
|
-
const title =
|
8048
|
+
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
8010
8049
|
const value = getPropertyFromItem(item, props.itemValue, undefined);
|
8011
8050
|
const children = getPropertyFromItem(item, props.itemChildren);
|
8012
8051
|
const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps);
|
@@ -8632,17 +8671,12 @@
|
|
8632
8671
|
function useLocationStrategies(props, data) {
|
8633
8672
|
const contentStyles = vue.ref({});
|
8634
8673
|
const updateLocation = vue.ref();
|
8635
|
-
|
8636
|
-
|
8637
|
-
|
8638
|
-
|
8639
|
-
|
8640
|
-
|
8641
|
-
scope = vue.effectScope();
|
8642
|
-
if (!(props.locationStrategy === 'connected')) {
|
8643
|
-
await vue.nextTick();
|
8644
|
-
}
|
8645
|
-
scope.run(() => {
|
8674
|
+
if (IN_BROWSER) {
|
8675
|
+
useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {
|
8676
|
+
vue.watch(() => props.locationStrategy, reset);
|
8677
|
+
vue.onScopeDispose(() => {
|
8678
|
+
updateLocation.value = undefined;
|
8679
|
+
});
|
8646
8680
|
if (typeof props.locationStrategy === 'function') {
|
8647
8681
|
var _props$locationStrate;
|
8648
8682
|
updateLocation.value = (_props$locationStrate = props.locationStrategy(data, props, contentStyles)) == null ? void 0 : _props$locationStrate.updateLocation;
|
@@ -8651,16 +8685,14 @@
|
|
8651
8685
|
updateLocation.value = (_locationStrategies$p = locationStrategies[props.locationStrategy](data, props, contentStyles)) == null ? void 0 : _locationStrategies$p.updateLocation;
|
8652
8686
|
}
|
8653
8687
|
});
|
8654
|
-
|
8655
|
-
|
8656
|
-
|
8657
|
-
|
8658
|
-
|
8659
|
-
|
8660
|
-
|
8661
|
-
|
8662
|
-
(_scope2 = scope) == null ? void 0 : _scope2.stop();
|
8663
|
-
});
|
8688
|
+
window.addEventListener('resize', onResize, {
|
8689
|
+
passive: true
|
8690
|
+
});
|
8691
|
+
vue.onScopeDispose(() => {
|
8692
|
+
window.removeEventListener('resize', onResize);
|
8693
|
+
updateLocation.value = undefined;
|
8694
|
+
});
|
8695
|
+
}
|
8664
8696
|
function onResize(e) {
|
8665
8697
|
var _updateLocation$value;
|
8666
8698
|
(_updateLocation$value = updateLocation.value) == null ? void 0 : _updateLocation$value.call(updateLocation, e);
|
@@ -8954,13 +8986,30 @@
|
|
8954
8986
|
maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),
|
8955
8987
|
maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))
|
8956
8988
|
});
|
8989
|
+
return {
|
8990
|
+
available,
|
8991
|
+
contentBox
|
8992
|
+
};
|
8957
8993
|
}
|
8958
|
-
vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation()
|
8959
|
-
|
8960
|
-
|
8961
|
-
|
8962
|
-
|
8963
|
-
|
8994
|
+
vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());
|
8995
|
+
vue.nextTick(() => {
|
8996
|
+
const result = updateLocation();
|
8997
|
+
|
8998
|
+
// TODO: overflowing content should only require a single updateLocation call
|
8999
|
+
// Icky hack to make sure the content is positioned consistently
|
9000
|
+
if (!result) return;
|
9001
|
+
const {
|
9002
|
+
available,
|
9003
|
+
contentBox
|
9004
|
+
} = result;
|
9005
|
+
if (contentBox.height > available.y) {
|
9006
|
+
requestAnimationFrame(() => {
|
9007
|
+
updateLocation();
|
9008
|
+
requestAnimationFrame(() => {
|
9009
|
+
updateLocation();
|
9010
|
+
});
|
9011
|
+
});
|
9012
|
+
}
|
8964
9013
|
});
|
8965
9014
|
return {
|
8966
9015
|
updateLocation
|
@@ -9028,10 +9077,10 @@
|
|
9028
9077
|
await vue.nextTick();
|
9029
9078
|
scope.run(() => {
|
9030
9079
|
if (typeof props.scrollStrategy === 'function') {
|
9031
|
-
props.scrollStrategy(data, props);
|
9080
|
+
props.scrollStrategy(data, props, scope);
|
9032
9081
|
} else {
|
9033
9082
|
var _scrollStrategies$pro;
|
9034
|
-
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props);
|
9083
|
+
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props, scope);
|
9035
9084
|
}
|
9036
9085
|
});
|
9037
9086
|
});
|
@@ -9077,9 +9126,10 @@
|
|
9077
9126
|
}
|
9078
9127
|
});
|
9079
9128
|
}
|
9080
|
-
function repositionScrollStrategy(data) {
|
9129
|
+
function repositionScrollStrategy(data, props, scope) {
|
9081
9130
|
let slow = false;
|
9082
9131
|
let raf = -1;
|
9132
|
+
let ric = -1;
|
9083
9133
|
function update(e) {
|
9084
9134
|
requestNewFrame(() => {
|
9085
9135
|
var _data$updateLocation$, _data$updateLocation;
|
@@ -9089,21 +9139,29 @@
|
|
9089
9139
|
slow = time / (1000 / 60) > 2;
|
9090
9140
|
});
|
9091
9141
|
}
|
9092
|
-
|
9093
|
-
|
9094
|
-
|
9095
|
-
|
9096
|
-
|
9097
|
-
|
9098
|
-
|
9099
|
-
|
9100
|
-
|
9142
|
+
ric = requestIdleCallback(() => {
|
9143
|
+
scope.run(() => {
|
9144
|
+
bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {
|
9145
|
+
if (slow) {
|
9146
|
+
// If the position calculation is slow,
|
9147
|
+
// defer updates until scrolling is finished.
|
9148
|
+
// Browsers usually fire one scroll event per frame so
|
9149
|
+
// we just wait until we've got two frames without an event
|
9150
|
+
cancelAnimationFrame(raf);
|
9151
|
+
raf = requestAnimationFrame(() => {
|
9152
|
+
raf = requestAnimationFrame(() => {
|
9153
|
+
update(e);
|
9154
|
+
});
|
9155
|
+
});
|
9156
|
+
} else {
|
9101
9157
|
update(e);
|
9102
|
-
}
|
9158
|
+
}
|
9103
9159
|
});
|
9104
|
-
}
|
9105
|
-
|
9106
|
-
|
9160
|
+
});
|
9161
|
+
});
|
9162
|
+
vue.onScopeDispose(() => {
|
9163
|
+
cancelIdleCallback(ric);
|
9164
|
+
cancelAnimationFrame(raf);
|
9107
9165
|
});
|
9108
9166
|
}
|
9109
9167
|
|
@@ -9746,6 +9804,11 @@
|
|
9746
9804
|
function onClickOutside() {
|
9747
9805
|
parent == null ? void 0 : parent.closeParents();
|
9748
9806
|
}
|
9807
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
9808
|
+
'aria-haspopup': 'menu',
|
9809
|
+
'aria-expanded': String(isActive.value),
|
9810
|
+
'aria-owns': id.value
|
9811
|
+
}, props.activatorProps));
|
9749
9812
|
useRender(() => {
|
9750
9813
|
const [overlayProps] = filterVOverlayProps(props);
|
9751
9814
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -9755,11 +9818,7 @@
|
|
9755
9818
|
"modelValue": isActive.value,
|
9756
9819
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
9757
9820
|
"absolute": true,
|
9758
|
-
"activatorProps":
|
9759
|
-
'aria-haspopup': 'menu',
|
9760
|
-
'aria-expanded': String(isActive.value),
|
9761
|
-
'aria-owns': id.value
|
9762
|
-
}, props.activatorProps),
|
9821
|
+
"activatorProps": activatorProps.value,
|
9763
9822
|
"onClick:outside": onClickOutside
|
9764
9823
|
}, scopeId), {
|
9765
9824
|
activator: slots.activator,
|
@@ -9873,8 +9932,10 @@
|
|
9873
9932
|
}
|
9874
9933
|
function onKeydown(e) {
|
9875
9934
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
9876
|
-
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
9935
|
+
if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
|
9877
9936
|
e.preventDefault();
|
9937
|
+
}
|
9938
|
+
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
9878
9939
|
menu.value = true;
|
9879
9940
|
}
|
9880
9941
|
if (['Escape', 'Tab'].includes(e.key)) {
|
@@ -9885,15 +9946,12 @@
|
|
9885
9946
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
9886
9947
|
} else if (e.key === 'ArrowUp') {
|
9887
9948
|
var _listRef$value2;
|
9888
|
-
e.preventDefault();
|
9889
9949
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
9890
9950
|
} else if (e.key === 'Home') {
|
9891
9951
|
var _listRef$value3;
|
9892
|
-
e.preventDefault();
|
9893
9952
|
(_listRef$value3 = listRef.value) == null ? void 0 : _listRef$value3.focus('first');
|
9894
9953
|
} else if (e.key === 'End') {
|
9895
9954
|
var _listRef$value4;
|
9896
|
-
e.preventDefault();
|
9897
9955
|
(_listRef$value4 = listRef.value) == null ? void 0 : _listRef$value4.focus('last');
|
9898
9956
|
}
|
9899
9957
|
}
|
@@ -10075,7 +10133,7 @@
|
|
10075
10133
|
const customFiltersLength = Object.keys((options == null ? void 0 : options.customKeyFilter) ?? {}).length;
|
10076
10134
|
if (!(items != null && items.length)) return array;
|
10077
10135
|
loop: for (let i = 0; i < items.length; i++) {
|
10078
|
-
const item = items[i]
|
10136
|
+
const item = items[i];
|
10079
10137
|
const customMatches = {};
|
10080
10138
|
const defaultMatches = {};
|
10081
10139
|
let match = -1;
|
@@ -10115,7 +10173,7 @@
|
|
10115
10173
|
}
|
10116
10174
|
return array;
|
10117
10175
|
}
|
10118
|
-
function useFilter(props, items, query) {
|
10176
|
+
function useFilter(props, items, query, options) {
|
10119
10177
|
const strQuery = vue.computed(() => typeof (query == null ? void 0 : query.value) !== 'string' && typeof (query == null ? void 0 : query.value) !== 'number' ? '' : String(query.value));
|
10120
10178
|
const filteredItems = vue.ref([]);
|
10121
10179
|
const filteredMatches = vue.ref(new Map());
|
@@ -10126,7 +10184,7 @@
|
|
10126
10184
|
const results = filterItems(transformedItems, strQuery.value, {
|
10127
10185
|
customKeyFilter: props.customKeyFilter,
|
10128
10186
|
default: props.customFilter,
|
10129
|
-
filterKeys: props.filterKeys,
|
10187
|
+
filterKeys: vue.unref(options == null ? void 0 : options.filterKeys) ?? props.filterKeys,
|
10130
10188
|
filterMode: props.filterMode,
|
10131
10189
|
noFilter: props.noFilter
|
10132
10190
|
});
|
@@ -10237,6 +10295,9 @@
|
|
10237
10295
|
}
|
10238
10296
|
function onKeydown(e) {
|
10239
10297
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
10298
|
+
if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
10299
|
+
e.preventDefault();
|
10300
|
+
}
|
10240
10301
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
10241
10302
|
menu.value = true;
|
10242
10303
|
}
|
@@ -10248,11 +10309,9 @@
|
|
10248
10309
|
}
|
10249
10310
|
if (e.key === 'ArrowDown') {
|
10250
10311
|
var _listRef$value;
|
10251
|
-
e.preventDefault();
|
10252
10312
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
10253
10313
|
} else if (e.key === 'ArrowUp') {
|
10254
10314
|
var _listRef$value2;
|
10255
|
-
e.preventDefault();
|
10256
10315
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
10257
10316
|
}
|
10258
10317
|
}
|
@@ -13581,7 +13640,9 @@
|
|
13581
13640
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
13582
13641
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
13583
13642
|
const length = selected.value.length;
|
13584
|
-
if (selectionIndex.value > -1
|
13643
|
+
if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
13644
|
+
e.preventDefault();
|
13645
|
+
}
|
13585
13646
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
13586
13647
|
menu.value = true;
|
13587
13648
|
}
|
@@ -13593,11 +13654,9 @@
|
|
13593
13654
|
}
|
13594
13655
|
if (e.key === 'ArrowDown') {
|
13595
13656
|
var _listRef$value;
|
13596
|
-
e.preventDefault();
|
13597
13657
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
13598
13658
|
} else if (e.key === 'ArrowUp') {
|
13599
13659
|
var _listRef$value2;
|
13600
|
-
e.preventDefault();
|
13601
13660
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
13602
13661
|
}
|
13603
13662
|
if (!props.multiple) return;
|
@@ -13892,6 +13951,10 @@
|
|
13892
13951
|
});
|
13893
13952
|
}
|
13894
13953
|
});
|
13954
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
13955
|
+
'aria-haspopup': 'dialog',
|
13956
|
+
'aria-expanded': String(isActive.value)
|
13957
|
+
}, props.activatorProps));
|
13895
13958
|
useRender(() => {
|
13896
13959
|
const [overlayProps] = filterVOverlayProps(props);
|
13897
13960
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -13905,10 +13968,7 @@
|
|
13905
13968
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
13906
13969
|
"aria-role": "dialog",
|
13907
13970
|
"aria-modal": "true",
|
13908
|
-
"activatorProps":
|
13909
|
-
'aria-haspopup': 'dialog',
|
13910
|
-
'aria-expanded': String(isActive.value)
|
13911
|
-
}, props.activatorProps)
|
13971
|
+
"activatorProps": activatorProps.value
|
13912
13972
|
}, scopeId), {
|
13913
13973
|
activator: slots.activator,
|
13914
13974
|
default: function () {
|
@@ -14257,12 +14317,15 @@
|
|
14257
14317
|
onFocus();
|
14258
14318
|
vue.nextTick(() => {
|
14259
14319
|
model.value = [];
|
14260
|
-
if (inputRef != null && inputRef.value) {
|
14261
|
-
inputRef.value.value = '';
|
14262
|
-
}
|
14263
14320
|
callEvent(props['onClick:clear'], e);
|
14264
14321
|
});
|
14265
14322
|
}
|
14323
|
+
vue.watch(model, newValue => {
|
14324
|
+
const hasModelReset = !Array.isArray(newValue) || !newValue.length;
|
14325
|
+
if (hasModelReset && inputRef.value) {
|
14326
|
+
inputRef.value.value = '';
|
14327
|
+
}
|
14328
|
+
});
|
14266
14329
|
useRender(() => {
|
14267
14330
|
const hasCounter = !!(slots.counter || props.counter);
|
14268
14331
|
const hasDetails = !!(hasCounter || slots.details);
|
@@ -15253,7 +15316,7 @@
|
|
15253
15316
|
window.removeEventListener('touchmove', onTouchmove);
|
15254
15317
|
window.removeEventListener('touchend', onTouchend);
|
15255
15318
|
});
|
15256
|
-
const isHorizontal = vue.computed(() => position.value
|
15319
|
+
const isHorizontal = vue.computed(() => ['left', 'right'].includes(position.value));
|
15257
15320
|
const {
|
15258
15321
|
addMovement,
|
15259
15322
|
endTouch,
|
@@ -15265,11 +15328,11 @@
|
|
15265
15328
|
const offset = vue.ref(0);
|
15266
15329
|
let start;
|
15267
15330
|
function getOffset(pos, active) {
|
15268
|
-
return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
|
15331
|
+
return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'top' ? pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
|
15269
15332
|
}
|
15270
15333
|
function getProgress(pos) {
|
15271
15334
|
let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
15272
|
-
const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();
|
15335
|
+
const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'top' ? (pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();
|
15273
15336
|
return limit ? Math.max(0, Math.min(1, progress)) : progress;
|
15274
15337
|
}
|
15275
15338
|
function onTouchstart(e) {
|
@@ -15277,8 +15340,8 @@
|
|
15277
15340
|
const touchX = e.changedTouches[0].clientX;
|
15278
15341
|
const touchY = e.changedTouches[0].clientY;
|
15279
15342
|
const touchZone = 25;
|
15280
|
-
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
15281
|
-
const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());
|
15343
|
+
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'top' ? touchY < touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
15344
|
+
const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'top' ? touchY < width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());
|
15282
15345
|
if (inTouchZone || inElement || isActive.value && isTemporary.value) {
|
15283
15346
|
maybeDragging = true;
|
15284
15347
|
start = [touchX, touchY];
|
@@ -15330,6 +15393,7 @@
|
|
15330
15393
|
isActive.value = velocity.direction === ({
|
15331
15394
|
left: 'right',
|
15332
15395
|
right: 'left',
|
15396
|
+
top: 'down',
|
15333
15397
|
bottom: 'up'
|
15334
15398
|
}[position.value] || oops());
|
15335
15399
|
} else {
|
@@ -15338,7 +15402,7 @@
|
|
15338
15402
|
}
|
15339
15403
|
const dragStyles = vue.computed(() => {
|
15340
15404
|
return isDragging.value ? {
|
15341
|
-
transform: position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))` : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))` : oops(),
|
15405
|
+
transform: position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))` : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))` : oops(),
|
15342
15406
|
transition: 'none'
|
15343
15407
|
} : undefined;
|
15344
15408
|
});
|
@@ -15354,7 +15418,7 @@
|
|
15354
15418
|
|
15355
15419
|
// Types
|
15356
15420
|
|
15357
|
-
const locations = ['start', 'end', 'left', 'right', 'bottom'];
|
15421
|
+
const locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];
|
15358
15422
|
const VNavigationDrawer = defineComponent({
|
15359
15423
|
name: 'VNavigationDrawer',
|
15360
15424
|
props: {
|
@@ -15811,7 +15875,7 @@
|
|
15811
15875
|
disabled: !!props.disabled || props.length < 2,
|
15812
15876
|
color: isActive ? props.activeColor : props.color,
|
15813
15877
|
ariaCurrent: isActive,
|
15814
|
-
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel,
|
15878
|
+
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
|
15815
15879
|
onClick: e => setValue(e, item)
|
15816
15880
|
}
|
15817
15881
|
};
|
@@ -17990,6 +18054,9 @@
|
|
17990
18054
|
if (props.transition) return props.transition;
|
17991
18055
|
return isActive.value ? 'scale-transition' : 'fade-transition';
|
17992
18056
|
});
|
18057
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
18058
|
+
'aria-describedby': id.value
|
18059
|
+
}, props.activatorProps));
|
17993
18060
|
useRender(() => {
|
17994
18061
|
const [overlayProps] = filterVOverlayProps(props);
|
17995
18062
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -18006,9 +18073,7 @@
|
|
18006
18073
|
"persistent": true,
|
18007
18074
|
"role": "tooltip",
|
18008
18075
|
"eager": true,
|
18009
|
-
"activatorProps":
|
18010
|
-
'aria-describedby': id.value
|
18011
|
-
}, props.activatorProps),
|
18076
|
+
"activatorProps": activatorProps.value,
|
18012
18077
|
"_disableGlobalStack": true
|
18013
18078
|
}, scopeId), {
|
18014
18079
|
activator: slots.activator,
|
@@ -18394,7 +18459,7 @@
|
|
18394
18459
|
locale
|
18395
18460
|
};
|
18396
18461
|
}
|
18397
|
-
const version$1 = "
|
18462
|
+
const version$1 = "4.0.0-master-20230206.0";
|
18398
18463
|
createVuetify$1.version = version$1;
|
18399
18464
|
|
18400
18465
|
// Vue's inject() can only be used in setup
|
@@ -18415,7 +18480,7 @@
|
|
18415
18480
|
...options
|
18416
18481
|
});
|
18417
18482
|
};
|
18418
|
-
const version = "
|
18483
|
+
const version = "4.0.0-master-20230206.0";
|
18419
18484
|
createVuetify.version = version;
|
18420
18485
|
|
18421
18486
|
exports.components = components;
|