vuetify 3.1.1 → 3.1.3
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 +495 -483
- package/dist/json/importMap.json +58 -58
- package/dist/json/tags.json +4 -1
- package/dist/json/web-types.json +892 -839
- package/dist/vuetify-labs.css +356 -346
- package/dist/vuetify-labs.d.ts +257 -179
- package/dist/vuetify-labs.esm.js +432 -278
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +431 -277
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +94 -84
- package/dist/vuetify.d.ts +261 -194
- package/dist/vuetify.esm.js +346 -242
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +345 -241
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +731 -721
- 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 +4 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +43 -20
- package/lib/components/VBtn/VBtn.mjs +16 -5
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VCard/VCard.mjs +5 -2
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +8 -2
- package/lib/components/VChip/VChip.mjs +18 -4
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.ts +15 -2
- package/lib/components/VChipGroup/VChipGroup.mjs +1 -0
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +5 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +43 -20
- 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/VField/VField.mjs +28 -26
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.css +1 -0
- package/lib/components/VFileInput/VFileInput.mjs +7 -4
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +1 -0
- package/lib/components/VForm/index.d.ts +0 -3
- package/lib/components/VGrid/VGrid.css +5 -0
- package/lib/components/VGrid/VGrid.sass +5 -0
- package/lib/components/VList/VList.mjs +4 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +1 -1
- package/lib/components/VList/VListItem.mjs +34 -20
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +1 -1
- package/lib/components/VList/index.d.ts +20 -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/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/VProgressLinear/VProgressLinear.mjs +13 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +18 -0
- package/lib/components/VSelect/VSelect.mjs +4 -4
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +43 -20
- package/lib/components/VSlider/VSliderThumb.mjs +5 -1
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.ts +42 -19
- package/lib/components/VTable/VTable.css +4 -4
- package/lib/components/VTable/VTable.sass +2 -2
- 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/index.d.ts +247 -179
- 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/teleport.mjs +6 -7
- package/lib/composables/teleport.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +14 -7
- package/lib/composables/toggleScope.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +17 -17
- package/lib/labs/VDataTable/VDataTable.mjs +10 -6
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +3 -3
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +36 -8
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +23 -10
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -2
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/group.mjs +9 -4
- package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +4 -2
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/sort.mjs +3 -5
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +11 -0
- package/lib/labs/components.d.ts +11 -0
- package/lib/locale/adapters/vue-i18n.mjs +12 -2
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/en.mjs +2 -2
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/sv.mjs +7 -7
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +21 -18
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +5 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.1.
|
|
2
|
+
* Vuetify v3.1.3
|
|
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
|
}
|
|
@@ -4384,9 +4398,69 @@
|
|
|
4384
4398
|
updated: updated$1
|
|
4385
4399
|
};
|
|
4386
4400
|
|
|
4401
|
+
// Composables
|
|
4402
|
+
|
|
4403
|
+
// Types
|
|
4404
|
+
|
|
4405
|
+
const oppositeMap = {
|
|
4406
|
+
center: 'center',
|
|
4407
|
+
top: 'bottom',
|
|
4408
|
+
bottom: 'top',
|
|
4409
|
+
left: 'right',
|
|
4410
|
+
right: 'left'
|
|
4411
|
+
};
|
|
4412
|
+
const makeLocationProps = propsFactory({
|
|
4413
|
+
location: String
|
|
4414
|
+
}, 'location');
|
|
4415
|
+
function useLocation(props) {
|
|
4416
|
+
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
4417
|
+
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
4418
|
+
const {
|
|
4419
|
+
isRtl
|
|
4420
|
+
} = useRtl();
|
|
4421
|
+
const locationStyles = vue.computed(() => {
|
|
4422
|
+
if (!props.location) return {};
|
|
4423
|
+
const {
|
|
4424
|
+
side,
|
|
4425
|
+
align
|
|
4426
|
+
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
|
4427
|
+
function getOffset(side) {
|
|
4428
|
+
return offset ? offset(side) : 0;
|
|
4429
|
+
}
|
|
4430
|
+
const styles = {};
|
|
4431
|
+
if (side !== 'center') {
|
|
4432
|
+
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
|
4433
|
+
}
|
|
4434
|
+
if (align !== 'center') {
|
|
4435
|
+
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
|
4436
|
+
} else {
|
|
4437
|
+
if (side === 'center') styles.top = styles.left = '50%';else {
|
|
4438
|
+
styles[{
|
|
4439
|
+
top: 'left',
|
|
4440
|
+
bottom: 'left',
|
|
4441
|
+
left: 'top',
|
|
4442
|
+
right: 'top'
|
|
4443
|
+
}[side]] = '50%';
|
|
4444
|
+
}
|
|
4445
|
+
styles.transform = {
|
|
4446
|
+
top: 'translateX(-50%)',
|
|
4447
|
+
bottom: 'translateX(-50%)',
|
|
4448
|
+
left: 'translateY(-50%)',
|
|
4449
|
+
right: 'translateY(-50%)',
|
|
4450
|
+
center: 'translate(-50%, -50%)'
|
|
4451
|
+
}[side];
|
|
4452
|
+
}
|
|
4453
|
+
return styles;
|
|
4454
|
+
});
|
|
4455
|
+
return {
|
|
4456
|
+
locationStyles
|
|
4457
|
+
};
|
|
4458
|
+
}
|
|
4459
|
+
|
|
4387
4460
|
const VProgressLinear = defineComponent({
|
|
4388
4461
|
name: 'VProgressLinear',
|
|
4389
4462
|
props: {
|
|
4463
|
+
absolute: Boolean,
|
|
4390
4464
|
active: {
|
|
4391
4465
|
type: Boolean,
|
|
4392
4466
|
default: true
|
|
@@ -4416,6 +4490,9 @@
|
|
|
4416
4490
|
stream: Boolean,
|
|
4417
4491
|
striped: Boolean,
|
|
4418
4492
|
roundedBar: Boolean,
|
|
4493
|
+
...makeLocationProps({
|
|
4494
|
+
location: 'top'
|
|
4495
|
+
}),
|
|
4419
4496
|
...makeRoundedProps(),
|
|
4420
4497
|
...makeTagProps(),
|
|
4421
4498
|
...makeThemeProps()
|
|
@@ -4434,6 +4511,9 @@
|
|
|
4434
4511
|
const {
|
|
4435
4512
|
themeClasses
|
|
4436
4513
|
} = provideTheme(props);
|
|
4514
|
+
const {
|
|
4515
|
+
locationStyles
|
|
4516
|
+
} = useLocation(props);
|
|
4437
4517
|
const {
|
|
4438
4518
|
textColorClasses,
|
|
4439
4519
|
textColorStyles
|
|
@@ -4475,6 +4555,7 @@
|
|
|
4475
4555
|
useRender(() => vue.createVNode(props.tag, {
|
|
4476
4556
|
"ref": intersectionRef,
|
|
4477
4557
|
"class": ['v-progress-linear', {
|
|
4558
|
+
'v-progress-linear--absolute': props.absolute,
|
|
4478
4559
|
'v-progress-linear--active': props.active && isIntersecting.value,
|
|
4479
4560
|
'v-progress-linear--reverse': isReversed.value,
|
|
4480
4561
|
'v-progress-linear--rounded': props.rounded,
|
|
@@ -4482,8 +4563,11 @@
|
|
|
4482
4563
|
'v-progress-linear--striped': props.striped
|
|
4483
4564
|
}, roundedClasses.value, themeClasses.value],
|
|
4484
4565
|
"style": {
|
|
4566
|
+
bottom: props.location === 'bottom' ? 0 : undefined,
|
|
4567
|
+
top: props.location === 'top' ? 0 : undefined,
|
|
4485
4568
|
height: props.active ? convertToUnit(height.value) : 0,
|
|
4486
|
-
'--v-progress-linear-height': convertToUnit(height.value)
|
|
4569
|
+
'--v-progress-linear-height': convertToUnit(height.value),
|
|
4570
|
+
...locationStyles.value
|
|
4487
4571
|
},
|
|
4488
4572
|
"role": "progressbar",
|
|
4489
4573
|
"aria-hidden": props.active ? 'false' : 'true',
|
|
@@ -4569,65 +4653,6 @@
|
|
|
4569
4653
|
}, null)]);
|
|
4570
4654
|
}
|
|
4571
4655
|
|
|
4572
|
-
// Composables
|
|
4573
|
-
|
|
4574
|
-
// Types
|
|
4575
|
-
|
|
4576
|
-
const oppositeMap = {
|
|
4577
|
-
center: 'center',
|
|
4578
|
-
top: 'bottom',
|
|
4579
|
-
bottom: 'top',
|
|
4580
|
-
left: 'right',
|
|
4581
|
-
right: 'left'
|
|
4582
|
-
};
|
|
4583
|
-
const makeLocationProps = propsFactory({
|
|
4584
|
-
location: String
|
|
4585
|
-
}, 'location');
|
|
4586
|
-
function useLocation(props) {
|
|
4587
|
-
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
4588
|
-
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
4589
|
-
const {
|
|
4590
|
-
isRtl
|
|
4591
|
-
} = useRtl();
|
|
4592
|
-
const locationStyles = vue.computed(() => {
|
|
4593
|
-
if (!props.location) return {};
|
|
4594
|
-
const {
|
|
4595
|
-
side,
|
|
4596
|
-
align
|
|
4597
|
-
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
|
4598
|
-
function getOffset(side) {
|
|
4599
|
-
return offset ? offset(side) : 0;
|
|
4600
|
-
}
|
|
4601
|
-
const styles = {};
|
|
4602
|
-
if (side !== 'center') {
|
|
4603
|
-
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
|
4604
|
-
}
|
|
4605
|
-
if (align !== 'center') {
|
|
4606
|
-
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
|
4607
|
-
} else {
|
|
4608
|
-
if (side === 'center') styles.top = styles.left = '50%';else {
|
|
4609
|
-
styles[{
|
|
4610
|
-
top: 'left',
|
|
4611
|
-
bottom: 'left',
|
|
4612
|
-
left: 'top',
|
|
4613
|
-
right: 'top'
|
|
4614
|
-
}[side]] = '50%';
|
|
4615
|
-
}
|
|
4616
|
-
styles.transform = {
|
|
4617
|
-
top: 'translateX(-50%)',
|
|
4618
|
-
bottom: 'translateX(-50%)',
|
|
4619
|
-
left: 'translateY(-50%)',
|
|
4620
|
-
right: 'translateY(-50%)',
|
|
4621
|
-
center: 'translate(-50%, -50%)'
|
|
4622
|
-
}[side];
|
|
4623
|
-
}
|
|
4624
|
-
return styles;
|
|
4625
|
-
});
|
|
4626
|
-
return {
|
|
4627
|
-
locationStyles
|
|
4628
|
-
};
|
|
4629
|
-
}
|
|
4630
|
-
|
|
4631
4656
|
// Utilities
|
|
4632
4657
|
|
|
4633
4658
|
// Types
|
|
@@ -4833,21 +4858,31 @@
|
|
|
4833
4858
|
const group = useGroupItem(props, props.symbol, false);
|
|
4834
4859
|
const link = useLink(props, attrs);
|
|
4835
4860
|
const isActive = vue.computed(() => {
|
|
4836
|
-
|
|
4837
|
-
|
|
4861
|
+
if (props.active !== undefined) {
|
|
4862
|
+
return props.active;
|
|
4863
|
+
}
|
|
4864
|
+
if (link.isLink.value) {
|
|
4865
|
+
var _link$isActive;
|
|
4866
|
+
return (_link$isActive = link.isActive) == null ? void 0 : _link$isActive.value;
|
|
4867
|
+
}
|
|
4868
|
+
return group == null ? void 0 : group.isSelected.value;
|
|
4838
4869
|
});
|
|
4839
4870
|
const isDisabled = vue.computed(() => (group == null ? void 0 : group.disabled.value) || props.disabled);
|
|
4840
4871
|
const isElevated = vue.computed(() => {
|
|
4841
4872
|
return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
|
|
4842
4873
|
});
|
|
4874
|
+
const valueAttr = vue.computed(() => {
|
|
4875
|
+
if (props.value === undefined) return undefined;
|
|
4876
|
+
return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
|
|
4877
|
+
});
|
|
4843
4878
|
useSelectLink(link, group == null ? void 0 : group.select);
|
|
4844
4879
|
useRender(() => {
|
|
4845
|
-
var _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
|
4880
|
+
var _link$isActive2, _link$isActive3, _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
|
4846
4881
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
4847
|
-
const hasColor = !group || group.isSelected.value;
|
|
4848
4882
|
const hasPrepend = !!(props.prependIcon || slots.prepend);
|
|
4849
4883
|
const hasAppend = !!(props.appendIcon || slots.append);
|
|
4850
4884
|
const hasIcon = !!(props.icon && props.icon !== true);
|
|
4885
|
+
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);
|
|
4851
4886
|
return vue.withDirectives(vue.createVNode(Tag, {
|
|
4852
4887
|
"type": Tag === 'a' ? undefined : 'button',
|
|
4853
4888
|
"class": ['v-btn', group == null ? void 0 : group.selectedClass.value, {
|
|
@@ -4868,7 +4903,8 @@
|
|
|
4868
4903
|
if (isDisabled.value) return;
|
|
4869
4904
|
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
|
4870
4905
|
group == null ? void 0 : group.toggle();
|
|
4871
|
-
}
|
|
4906
|
+
},
|
|
4907
|
+
"value": valueAttr.value
|
|
4872
4908
|
}, {
|
|
4873
4909
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode(VDefaultsProvider, {
|
|
4874
4910
|
"key": "prepend",
|
|
@@ -5342,32 +5378,34 @@
|
|
|
5342
5378
|
if (hasLabel.value) {
|
|
5343
5379
|
const el = labelRef.value.$el;
|
|
5344
5380
|
const targetEl = floatingLabelRef.value.$el;
|
|
5345
|
-
|
|
5346
|
-
|
|
5347
|
-
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5351
|
-
|
|
5352
|
-
|
|
5353
|
-
|
|
5354
|
-
|
|
5355
|
-
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
|
|
5359
|
-
|
|
5360
|
-
|
|
5361
|
-
|
|
5362
|
-
|
|
5363
|
-
|
|
5364
|
-
|
|
5365
|
-
|
|
5366
|
-
|
|
5367
|
-
|
|
5368
|
-
|
|
5369
|
-
|
|
5370
|
-
|
|
5381
|
+
requestAnimationFrame(() => {
|
|
5382
|
+
const rect = nullifyTransforms(el);
|
|
5383
|
+
const targetRect = targetEl.getBoundingClientRect();
|
|
5384
|
+
const x = targetRect.x - rect.x;
|
|
5385
|
+
const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2);
|
|
5386
|
+
const targetWidth = targetRect.width / 0.75;
|
|
5387
|
+
const width = Math.abs(targetWidth - rect.width) > 1 ? {
|
|
5388
|
+
maxWidth: convertToUnit(targetWidth)
|
|
5389
|
+
} : undefined;
|
|
5390
|
+
const style = getComputedStyle(el);
|
|
5391
|
+
const targetStyle = getComputedStyle(targetEl);
|
|
5392
|
+
const duration = parseFloat(style.transitionDuration) * 1000 || 150;
|
|
5393
|
+
const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'));
|
|
5394
|
+
const color = targetStyle.getPropertyValue('color');
|
|
5395
|
+
el.style.visibility = 'visible';
|
|
5396
|
+
targetEl.style.visibility = 'hidden';
|
|
5397
|
+
animate(el, {
|
|
5398
|
+
transform: `translate(${x}px, ${y}px) scale(${scale})`,
|
|
5399
|
+
color,
|
|
5400
|
+
...width
|
|
5401
|
+
}, {
|
|
5402
|
+
duration,
|
|
5403
|
+
easing: standardEasing,
|
|
5404
|
+
direction: val ? 'normal' : 'reverse'
|
|
5405
|
+
}).finished.then(() => {
|
|
5406
|
+
el.style.removeProperty('visibility');
|
|
5407
|
+
targetEl.style.removeProperty('visibility');
|
|
5408
|
+
});
|
|
5371
5409
|
});
|
|
5372
5410
|
}
|
|
5373
5411
|
}, {
|
|
@@ -5556,7 +5594,6 @@
|
|
|
5556
5594
|
const makeFormProps = propsFactory({
|
|
5557
5595
|
disabled: Boolean,
|
|
5558
5596
|
fastFail: Boolean,
|
|
5559
|
-
lazyValidation: Boolean,
|
|
5560
5597
|
readonly: Boolean,
|
|
5561
5598
|
modelValue: {
|
|
5562
5599
|
type: Boolean,
|
|
@@ -6701,6 +6738,7 @@
|
|
|
6701
6738
|
provideDefaults({
|
|
6702
6739
|
VChip: {
|
|
6703
6740
|
color: vue.toRef(props, 'color'),
|
|
6741
|
+
disabled: vue.toRef(props, 'disabled'),
|
|
6704
6742
|
filter: vue.toRef(props, 'filter'),
|
|
6705
6743
|
variant: vue.toRef(props, 'variant')
|
|
6706
6744
|
}
|
|
@@ -6750,7 +6788,10 @@
|
|
|
6750
6788
|
default: '$complete'
|
|
6751
6789
|
},
|
|
6752
6790
|
label: Boolean,
|
|
6753
|
-
link:
|
|
6791
|
+
link: {
|
|
6792
|
+
type: Boolean,
|
|
6793
|
+
default: undefined
|
|
6794
|
+
},
|
|
6754
6795
|
pill: Boolean,
|
|
6755
6796
|
prependAvatar: String,
|
|
6756
6797
|
prependIcon: IconValue,
|
|
@@ -6763,6 +6804,8 @@
|
|
|
6763
6804
|
type: Boolean,
|
|
6764
6805
|
default: true
|
|
6765
6806
|
},
|
|
6807
|
+
onClick: EventProp,
|
|
6808
|
+
onClickOnce: EventProp,
|
|
6766
6809
|
...makeBorderProps(),
|
|
6767
6810
|
...makeDensityProps(),
|
|
6768
6811
|
...makeElevationProps(),
|
|
@@ -6816,7 +6859,8 @@
|
|
|
6816
6859
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
6817
6860
|
const group = useGroupItem(props, VChipGroupSymbol, false);
|
|
6818
6861
|
const link = useLink(props, attrs);
|
|
6819
|
-
const
|
|
6862
|
+
const isLink = vue.computed(() => props.link !== false && link.isLink.value);
|
|
6863
|
+
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
|
|
6820
6864
|
function onCloseClick(e) {
|
|
6821
6865
|
isActive.value = false;
|
|
6822
6866
|
emit('click:close', e);
|
|
@@ -6828,6 +6872,12 @@
|
|
|
6828
6872
|
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
|
6829
6873
|
group == null ? void 0 : group.toggle();
|
|
6830
6874
|
}
|
|
6875
|
+
function onKeyDown(e) {
|
|
6876
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
6877
|
+
e.preventDefault();
|
|
6878
|
+
onClick(e);
|
|
6879
|
+
}
|
|
6880
|
+
}
|
|
6831
6881
|
return () => {
|
|
6832
6882
|
var _slots$default;
|
|
6833
6883
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
@@ -6848,7 +6898,9 @@
|
|
|
6848
6898
|
"disabled": props.disabled || undefined,
|
|
6849
6899
|
"draggable": props.draggable,
|
|
6850
6900
|
"href": link.href.value,
|
|
6851
|
-
"
|
|
6901
|
+
"tabindex": isClickable.value ? 0 : undefined,
|
|
6902
|
+
"onClick": onClick,
|
|
6903
|
+
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
6852
6904
|
}, {
|
|
6853
6905
|
default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && vue.createVNode(VDefaultsProvider, {
|
|
6854
6906
|
"key": "filter",
|
|
@@ -6945,9 +6997,9 @@
|
|
|
6945
6997
|
themeClasses
|
|
6946
6998
|
} = provideTheme(props);
|
|
6947
6999
|
const {
|
|
6948
|
-
|
|
6949
|
-
|
|
6950
|
-
} =
|
|
7000
|
+
textColorClasses,
|
|
7001
|
+
textColorStyles
|
|
7002
|
+
} = useTextColor(vue.toRef(props, 'color'));
|
|
6951
7003
|
const dividerStyles = vue.computed(() => {
|
|
6952
7004
|
const styles = {};
|
|
6953
7005
|
if (props.length) {
|
|
@@ -6963,8 +7015,8 @@
|
|
|
6963
7015
|
'v-divider': true,
|
|
6964
7016
|
'v-divider--inset': props.inset,
|
|
6965
7017
|
'v-divider--vertical': props.vertical
|
|
6966
|
-
}, themeClasses.value,
|
|
6967
|
-
"style": [dividerStyles.value,
|
|
7018
|
+
}, themeClasses.value, textColorClasses.value],
|
|
7019
|
+
"style": [dividerStyles.value, textColorStyles.value],
|
|
6968
7020
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
|
6969
7021
|
"role": `${attrs.role || 'separator'}`
|
|
6970
7022
|
}, null));
|
|
@@ -7564,6 +7616,10 @@
|
|
|
7564
7616
|
nav: Boolean,
|
|
7565
7617
|
prependAvatar: String,
|
|
7566
7618
|
prependIcon: IconValue,
|
|
7619
|
+
ripple: {
|
|
7620
|
+
type: Boolean,
|
|
7621
|
+
default: true
|
|
7622
|
+
},
|
|
7567
7623
|
subtitle: [String, Number, Boolean],
|
|
7568
7624
|
title: [String, Number, Boolean],
|
|
7569
7625
|
value: null,
|
|
@@ -7670,7 +7726,7 @@
|
|
|
7670
7726
|
}
|
|
7671
7727
|
}
|
|
7672
7728
|
useRender(() => {
|
|
7673
|
-
var _slots$
|
|
7729
|
+
var _slots$title, _slots$subtitle, _slots$default;
|
|
7674
7730
|
const Tag = isLink.value ? 'a' : props.tag;
|
|
7675
7731
|
const hasColor = !list || isSelected.value || isActive.value;
|
|
7676
7732
|
const hasTitle = slots.title || props.title;
|
|
@@ -7693,7 +7749,18 @@
|
|
|
7693
7749
|
"onClick": onClick,
|
|
7694
7750
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
7695
7751
|
}, {
|
|
7696
|
-
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode(
|
|
7752
|
+
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode("div", {
|
|
7753
|
+
"key": "prepend",
|
|
7754
|
+
"class": "v-list-item__prepend"
|
|
7755
|
+
}, [props.prependAvatar && vue.createVNode(VAvatar, {
|
|
7756
|
+
"key": "prepend-avatar",
|
|
7757
|
+
"density": props.density,
|
|
7758
|
+
"image": props.prependAvatar
|
|
7759
|
+
}, null), props.prependIcon && vue.createVNode(VIcon, {
|
|
7760
|
+
"key": "prepend-icon",
|
|
7761
|
+
"density": props.density,
|
|
7762
|
+
"icon": props.prependIcon
|
|
7763
|
+
}, null), slots.prepend && vue.createVNode(VDefaultsProvider, {
|
|
7697
7764
|
"key": "prepend",
|
|
7698
7765
|
"defaults": {
|
|
7699
7766
|
VAvatar: {
|
|
@@ -7709,14 +7776,8 @@
|
|
|
7709
7776
|
}
|
|
7710
7777
|
}
|
|
7711
7778
|
}, {
|
|
7712
|
-
default: () => [
|
|
7713
|
-
|
|
7714
|
-
}, [props.prependAvatar && vue.createVNode(VAvatar, {
|
|
7715
|
-
"key": "prepend-avatar"
|
|
7716
|
-
}, null), props.prependIcon && vue.createVNode(VIcon, {
|
|
7717
|
-
"key": "prepend-icon"
|
|
7718
|
-
}, null), (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value)])]
|
|
7719
|
-
}), vue.createVNode("div", {
|
|
7779
|
+
default: () => [slots.prepend(slotProps.value)]
|
|
7780
|
+
})]), vue.createVNode("div", {
|
|
7720
7781
|
"class": "v-list-item__content",
|
|
7721
7782
|
"data-no-activator": ""
|
|
7722
7783
|
}, [hasTitle && vue.createVNode(VListItemTitle, {
|
|
@@ -7731,7 +7792,10 @@
|
|
|
7731
7792
|
default: () => [((_slots$subtitle = slots.subtitle) == null ? void 0 : _slots$subtitle.call(slots, {
|
|
7732
7793
|
subtitle: props.subtitle
|
|
7733
7794
|
})) ?? props.subtitle]
|
|
7734
|
-
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && vue.createVNode(
|
|
7795
|
+
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && vue.createVNode("div", {
|
|
7796
|
+
"key": "append",
|
|
7797
|
+
"class": "v-list-item__append"
|
|
7798
|
+
}, [slots.append && vue.createVNode(VDefaultsProvider, {
|
|
7735
7799
|
"key": "append",
|
|
7736
7800
|
"defaults": {
|
|
7737
7801
|
VAvatar: {
|
|
@@ -7747,15 +7811,17 @@
|
|
|
7747
7811
|
}
|
|
7748
7812
|
}
|
|
7749
7813
|
}, {
|
|
7750
|
-
default: () => [
|
|
7751
|
-
|
|
7752
|
-
|
|
7753
|
-
|
|
7754
|
-
|
|
7755
|
-
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
|
|
7814
|
+
default: () => [slots.append(slotProps.value)]
|
|
7815
|
+
}), props.appendIcon && vue.createVNode(VIcon, {
|
|
7816
|
+
"key": "append-icon",
|
|
7817
|
+
"density": props.density,
|
|
7818
|
+
"icon": props.appendIcon
|
|
7819
|
+
}, null), props.appendAvatar && vue.createVNode(VAvatar, {
|
|
7820
|
+
"key": "append-avatar",
|
|
7821
|
+
"density": props.density,
|
|
7822
|
+
"image": props.appendAvatar
|
|
7823
|
+
}, null)])]
|
|
7824
|
+
}), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
7759
7825
|
});
|
|
7760
7826
|
return {};
|
|
7761
7827
|
}
|
|
@@ -7968,9 +8034,12 @@
|
|
|
7968
8034
|
|
|
7969
8035
|
// Types
|
|
7970
8036
|
|
|
8037
|
+
function isPrimitive(value) {
|
|
8038
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
|
8039
|
+
}
|
|
7971
8040
|
function transformItem(props, item) {
|
|
7972
8041
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
|
7973
|
-
const title =
|
|
8042
|
+
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
|
7974
8043
|
const value = getPropertyFromItem(item, props.itemValue, undefined);
|
|
7975
8044
|
const children = getPropertyFromItem(item, props.itemChildren);
|
|
7976
8045
|
const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps);
|
|
@@ -8596,17 +8665,12 @@
|
|
|
8596
8665
|
function useLocationStrategies(props, data) {
|
|
8597
8666
|
const contentStyles = vue.ref({});
|
|
8598
8667
|
const updateLocation = vue.ref();
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
scope = vue.effectScope();
|
|
8606
|
-
if (!(props.locationStrategy === 'connected')) {
|
|
8607
|
-
await vue.nextTick();
|
|
8608
|
-
}
|
|
8609
|
-
scope.run(() => {
|
|
8668
|
+
if (IN_BROWSER) {
|
|
8669
|
+
useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {
|
|
8670
|
+
vue.watch(() => props.locationStrategy, reset);
|
|
8671
|
+
vue.onScopeDispose(() => {
|
|
8672
|
+
updateLocation.value = undefined;
|
|
8673
|
+
});
|
|
8610
8674
|
if (typeof props.locationStrategy === 'function') {
|
|
8611
8675
|
var _props$locationStrate;
|
|
8612
8676
|
updateLocation.value = (_props$locationStrate = props.locationStrategy(data, props, contentStyles)) == null ? void 0 : _props$locationStrate.updateLocation;
|
|
@@ -8615,16 +8679,14 @@
|
|
|
8615
8679
|
updateLocation.value = (_locationStrategies$p = locationStrategies[props.locationStrategy](data, props, contentStyles)) == null ? void 0 : _locationStrategies$p.updateLocation;
|
|
8616
8680
|
}
|
|
8617
8681
|
});
|
|
8618
|
-
|
|
8619
|
-
|
|
8620
|
-
|
|
8621
|
-
|
|
8622
|
-
|
|
8623
|
-
|
|
8624
|
-
|
|
8625
|
-
|
|
8626
|
-
(_scope2 = scope) == null ? void 0 : _scope2.stop();
|
|
8627
|
-
});
|
|
8682
|
+
window.addEventListener('resize', onResize, {
|
|
8683
|
+
passive: true
|
|
8684
|
+
});
|
|
8685
|
+
vue.onScopeDispose(() => {
|
|
8686
|
+
window.removeEventListener('resize', onResize);
|
|
8687
|
+
updateLocation.value = undefined;
|
|
8688
|
+
});
|
|
8689
|
+
}
|
|
8628
8690
|
function onResize(e) {
|
|
8629
8691
|
var _updateLocation$value;
|
|
8630
8692
|
(_updateLocation$value = updateLocation.value) == null ? void 0 : _updateLocation$value.call(updateLocation, e);
|
|
@@ -8918,13 +8980,30 @@
|
|
|
8918
8980
|
maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),
|
|
8919
8981
|
maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))
|
|
8920
8982
|
});
|
|
8983
|
+
return {
|
|
8984
|
+
available,
|
|
8985
|
+
contentBox
|
|
8986
|
+
};
|
|
8921
8987
|
}
|
|
8922
|
-
vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation()
|
|
8923
|
-
|
|
8924
|
-
|
|
8925
|
-
|
|
8926
|
-
|
|
8927
|
-
|
|
8988
|
+
vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());
|
|
8989
|
+
vue.nextTick(() => {
|
|
8990
|
+
const result = updateLocation();
|
|
8991
|
+
|
|
8992
|
+
// TODO: overflowing content should only require a single updateLocation call
|
|
8993
|
+
// Icky hack to make sure the content is positioned consistently
|
|
8994
|
+
if (!result) return;
|
|
8995
|
+
const {
|
|
8996
|
+
available,
|
|
8997
|
+
contentBox
|
|
8998
|
+
} = result;
|
|
8999
|
+
if (contentBox.height > available.y) {
|
|
9000
|
+
requestAnimationFrame(() => {
|
|
9001
|
+
updateLocation();
|
|
9002
|
+
requestAnimationFrame(() => {
|
|
9003
|
+
updateLocation();
|
|
9004
|
+
});
|
|
9005
|
+
});
|
|
9006
|
+
}
|
|
8928
9007
|
});
|
|
8929
9008
|
return {
|
|
8930
9009
|
updateLocation
|
|
@@ -8992,10 +9071,10 @@
|
|
|
8992
9071
|
await vue.nextTick();
|
|
8993
9072
|
scope.run(() => {
|
|
8994
9073
|
if (typeof props.scrollStrategy === 'function') {
|
|
8995
|
-
props.scrollStrategy(data, props);
|
|
9074
|
+
props.scrollStrategy(data, props, scope);
|
|
8996
9075
|
} else {
|
|
8997
9076
|
var _scrollStrategies$pro;
|
|
8998
|
-
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props);
|
|
9077
|
+
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props, scope);
|
|
8999
9078
|
}
|
|
9000
9079
|
});
|
|
9001
9080
|
});
|
|
@@ -9041,9 +9120,10 @@
|
|
|
9041
9120
|
}
|
|
9042
9121
|
});
|
|
9043
9122
|
}
|
|
9044
|
-
function repositionScrollStrategy(data) {
|
|
9123
|
+
function repositionScrollStrategy(data, props, scope) {
|
|
9045
9124
|
let slow = false;
|
|
9046
9125
|
let raf = -1;
|
|
9126
|
+
let ric = -1;
|
|
9047
9127
|
function update(e) {
|
|
9048
9128
|
requestNewFrame(() => {
|
|
9049
9129
|
var _data$updateLocation$, _data$updateLocation;
|
|
@@ -9053,21 +9133,29 @@
|
|
|
9053
9133
|
slow = time / (1000 / 60) > 2;
|
|
9054
9134
|
});
|
|
9055
9135
|
}
|
|
9056
|
-
|
|
9057
|
-
|
|
9058
|
-
|
|
9059
|
-
|
|
9060
|
-
|
|
9061
|
-
|
|
9062
|
-
|
|
9063
|
-
|
|
9064
|
-
|
|
9136
|
+
ric = requestIdleCallback(() => {
|
|
9137
|
+
scope.run(() => {
|
|
9138
|
+
bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {
|
|
9139
|
+
if (slow) {
|
|
9140
|
+
// If the position calculation is slow,
|
|
9141
|
+
// defer updates until scrolling is finished.
|
|
9142
|
+
// Browsers usually fire one scroll event per frame so
|
|
9143
|
+
// we just wait until we've got two frames without an event
|
|
9144
|
+
cancelAnimationFrame(raf);
|
|
9145
|
+
raf = requestAnimationFrame(() => {
|
|
9146
|
+
raf = requestAnimationFrame(() => {
|
|
9147
|
+
update(e);
|
|
9148
|
+
});
|
|
9149
|
+
});
|
|
9150
|
+
} else {
|
|
9065
9151
|
update(e);
|
|
9066
|
-
}
|
|
9152
|
+
}
|
|
9067
9153
|
});
|
|
9068
|
-
}
|
|
9069
|
-
|
|
9070
|
-
|
|
9154
|
+
});
|
|
9155
|
+
});
|
|
9156
|
+
vue.onScopeDispose(() => {
|
|
9157
|
+
cancelIdleCallback(ric);
|
|
9158
|
+
cancelAnimationFrame(raf);
|
|
9071
9159
|
});
|
|
9072
9160
|
}
|
|
9073
9161
|
|
|
@@ -9296,19 +9384,18 @@
|
|
|
9296
9384
|
vue.warn(`Unable to locate target ${_target}`);
|
|
9297
9385
|
return undefined;
|
|
9298
9386
|
}
|
|
9299
|
-
|
|
9300
|
-
|
|
9301
|
-
|
|
9302
|
-
|
|
9303
|
-
|
|
9387
|
+
let container = targetElement.querySelector('.v-overlay-container');
|
|
9388
|
+
if (!container) {
|
|
9389
|
+
container = document.createElement('div');
|
|
9390
|
+
container.className = 'v-overlay-container';
|
|
9391
|
+
targetElement.appendChild(container);
|
|
9304
9392
|
}
|
|
9305
|
-
return
|
|
9393
|
+
return container;
|
|
9306
9394
|
});
|
|
9307
9395
|
return {
|
|
9308
9396
|
teleportTarget
|
|
9309
9397
|
};
|
|
9310
9398
|
}
|
|
9311
|
-
useTeleport.cache = new WeakMap();
|
|
9312
9399
|
|
|
9313
9400
|
function defaultConditional() {
|
|
9314
9401
|
return true;
|
|
@@ -9711,6 +9798,11 @@
|
|
|
9711
9798
|
function onClickOutside() {
|
|
9712
9799
|
parent == null ? void 0 : parent.closeParents();
|
|
9713
9800
|
}
|
|
9801
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
|
9802
|
+
'aria-haspopup': 'menu',
|
|
9803
|
+
'aria-expanded': String(isActive.value),
|
|
9804
|
+
'aria-owns': id.value
|
|
9805
|
+
}, props.activatorProps));
|
|
9714
9806
|
useRender(() => {
|
|
9715
9807
|
const [overlayProps] = filterVOverlayProps(props);
|
|
9716
9808
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
@@ -9720,11 +9812,7 @@
|
|
|
9720
9812
|
"modelValue": isActive.value,
|
|
9721
9813
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
9722
9814
|
"absolute": true,
|
|
9723
|
-
"activatorProps":
|
|
9724
|
-
'aria-haspopup': 'menu',
|
|
9725
|
-
'aria-expanded': String(isActive.value),
|
|
9726
|
-
'aria-owns': id.value
|
|
9727
|
-
}, props.activatorProps),
|
|
9815
|
+
"activatorProps": activatorProps.value,
|
|
9728
9816
|
"onClick:outside": onClickOutside
|
|
9729
9817
|
}, scopeId), {
|
|
9730
9818
|
activator: slots.activator,
|
|
@@ -9838,8 +9926,10 @@
|
|
|
9838
9926
|
}
|
|
9839
9927
|
function onKeydown(e) {
|
|
9840
9928
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
|
9841
|
-
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
|
9929
|
+
if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
|
|
9842
9930
|
e.preventDefault();
|
|
9931
|
+
}
|
|
9932
|
+
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
|
9843
9933
|
menu.value = true;
|
|
9844
9934
|
}
|
|
9845
9935
|
if (['Escape', 'Tab'].includes(e.key)) {
|
|
@@ -9850,15 +9940,12 @@
|
|
|
9850
9940
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
|
9851
9941
|
} else if (e.key === 'ArrowUp') {
|
|
9852
9942
|
var _listRef$value2;
|
|
9853
|
-
e.preventDefault();
|
|
9854
9943
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
|
9855
9944
|
} else if (e.key === 'Home') {
|
|
9856
9945
|
var _listRef$value3;
|
|
9857
|
-
e.preventDefault();
|
|
9858
9946
|
(_listRef$value3 = listRef.value) == null ? void 0 : _listRef$value3.focus('first');
|
|
9859
9947
|
} else if (e.key === 'End') {
|
|
9860
9948
|
var _listRef$value4;
|
|
9861
|
-
e.preventDefault();
|
|
9862
9949
|
(_listRef$value4 = listRef.value) == null ? void 0 : _listRef$value4.focus('last');
|
|
9863
9950
|
}
|
|
9864
9951
|
}
|
|
@@ -9924,6 +10011,7 @@
|
|
|
9924
10011
|
"activator": "parent",
|
|
9925
10012
|
"contentClass": "v-select__content",
|
|
9926
10013
|
"eager": props.eager,
|
|
10014
|
+
"maxHeight": 310,
|
|
9927
10015
|
"openOnClick": false,
|
|
9928
10016
|
"closeOnContentClick": false,
|
|
9929
10017
|
"transition": props.transition
|
|
@@ -10039,7 +10127,7 @@
|
|
|
10039
10127
|
const customFiltersLength = Object.keys((options == null ? void 0 : options.customKeyFilter) ?? {}).length;
|
|
10040
10128
|
if (!(items != null && items.length)) return array;
|
|
10041
10129
|
loop: for (let i = 0; i < items.length; i++) {
|
|
10042
|
-
const item = items[i]
|
|
10130
|
+
const item = items[i];
|
|
10043
10131
|
const customMatches = {};
|
|
10044
10132
|
const defaultMatches = {};
|
|
10045
10133
|
let match = -1;
|
|
@@ -10079,7 +10167,7 @@
|
|
|
10079
10167
|
}
|
|
10080
10168
|
return array;
|
|
10081
10169
|
}
|
|
10082
|
-
function useFilter(props, items, query) {
|
|
10170
|
+
function useFilter(props, items, query, options) {
|
|
10083
10171
|
const strQuery = vue.computed(() => typeof (query == null ? void 0 : query.value) !== 'string' && typeof (query == null ? void 0 : query.value) !== 'number' ? '' : String(query.value));
|
|
10084
10172
|
const filteredItems = vue.ref([]);
|
|
10085
10173
|
const filteredMatches = vue.ref(new Map());
|
|
@@ -10090,7 +10178,7 @@
|
|
|
10090
10178
|
const results = filterItems(transformedItems, strQuery.value, {
|
|
10091
10179
|
customKeyFilter: props.customKeyFilter,
|
|
10092
10180
|
default: props.customFilter,
|
|
10093
|
-
filterKeys: props.filterKeys,
|
|
10181
|
+
filterKeys: vue.unref(options == null ? void 0 : options.filterKeys) ?? props.filterKeys,
|
|
10094
10182
|
filterMode: props.filterMode,
|
|
10095
10183
|
noFilter: props.noFilter
|
|
10096
10184
|
});
|
|
@@ -10201,6 +10289,9 @@
|
|
|
10201
10289
|
}
|
|
10202
10290
|
function onKeydown(e) {
|
|
10203
10291
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
|
10292
|
+
if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
|
10293
|
+
e.preventDefault();
|
|
10294
|
+
}
|
|
10204
10295
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
|
10205
10296
|
menu.value = true;
|
|
10206
10297
|
}
|
|
@@ -10212,11 +10303,9 @@
|
|
|
10212
10303
|
}
|
|
10213
10304
|
if (e.key === 'ArrowDown') {
|
|
10214
10305
|
var _listRef$value;
|
|
10215
|
-
e.preventDefault();
|
|
10216
10306
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
|
10217
10307
|
} else if (e.key === 'ArrowUp') {
|
|
10218
10308
|
var _listRef$value2;
|
|
10219
|
-
e.preventDefault();
|
|
10220
10309
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
|
10221
10310
|
}
|
|
10222
10311
|
}
|
|
@@ -10313,6 +10402,7 @@
|
|
|
10313
10402
|
"activator": "parent",
|
|
10314
10403
|
"contentClass": "v-autocomplete__content",
|
|
10315
10404
|
"eager": props.eager,
|
|
10405
|
+
"maxHeight": 310,
|
|
10316
10406
|
"openOnClick": false,
|
|
10317
10407
|
"closeOnContentClick": false,
|
|
10318
10408
|
"transition": props.transition,
|
|
@@ -11021,7 +11111,10 @@
|
|
|
11021
11111
|
},
|
|
11022
11112
|
prependAvatar: String,
|
|
11023
11113
|
prependIcon: IconValue,
|
|
11024
|
-
ripple:
|
|
11114
|
+
ripple: {
|
|
11115
|
+
type: Boolean,
|
|
11116
|
+
default: true
|
|
11117
|
+
},
|
|
11025
11118
|
subtitle: String,
|
|
11026
11119
|
text: String,
|
|
11027
11120
|
title: String,
|
|
@@ -11142,7 +11235,7 @@
|
|
|
11142
11235
|
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), slots.actions && vue.createVNode(VCardActions, null, {
|
|
11143
11236
|
default: slots.actions
|
|
11144
11237
|
}), genOverlays(isClickable.value, 'v-card')]
|
|
11145
|
-
}), [[vue.resolveDirective("ripple"), isClickable.value]]);
|
|
11238
|
+
}), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
11146
11239
|
});
|
|
11147
11240
|
return {};
|
|
11148
11241
|
}
|
|
@@ -12435,6 +12528,10 @@
|
|
|
12435
12528
|
position: {
|
|
12436
12529
|
type: Number,
|
|
12437
12530
|
required: true
|
|
12531
|
+
},
|
|
12532
|
+
ripple: {
|
|
12533
|
+
type: Boolean,
|
|
12534
|
+
default: true
|
|
12438
12535
|
}
|
|
12439
12536
|
},
|
|
12440
12537
|
emits: {
|
|
@@ -12535,7 +12632,7 @@
|
|
|
12535
12632
|
}, null), vue.withDirectives(vue.createVNode("div", {
|
|
12536
12633
|
"class": ['v-slider-thumb__ripple', textColorClasses.value],
|
|
12537
12634
|
"style": textColorStyles.value
|
|
12538
|
-
}, null), [[vue.resolveDirective("ripple"),
|
|
12635
|
+
}, null), [[vue.resolveDirective("ripple"), props.ripple, null, {
|
|
12539
12636
|
circle: true,
|
|
12540
12637
|
center: true
|
|
12541
12638
|
}]]), vue.createVNode(VScaleTransition, {
|
|
@@ -13537,7 +13634,9 @@
|
|
|
13537
13634
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
|
13538
13635
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
13539
13636
|
const length = selected.value.length;
|
|
13540
|
-
if (selectionIndex.value > -1
|
|
13637
|
+
if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
|
13638
|
+
e.preventDefault();
|
|
13639
|
+
}
|
|
13541
13640
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
|
13542
13641
|
menu.value = true;
|
|
13543
13642
|
}
|
|
@@ -13549,11 +13648,9 @@
|
|
|
13549
13648
|
}
|
|
13550
13649
|
if (e.key === 'ArrowDown') {
|
|
13551
13650
|
var _listRef$value;
|
|
13552
|
-
e.preventDefault();
|
|
13553
13651
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
|
13554
13652
|
} else if (e.key === 'ArrowUp') {
|
|
13555
13653
|
var _listRef$value2;
|
|
13556
|
-
e.preventDefault();
|
|
13557
13654
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
|
13558
13655
|
}
|
|
13559
13656
|
if (!props.multiple) return;
|
|
@@ -13587,7 +13684,7 @@
|
|
|
13587
13684
|
vTextFieldRef.value.setSelectionRange(0, 0);
|
|
13588
13685
|
}
|
|
13589
13686
|
}
|
|
13590
|
-
if (e.key === 'Enter') {
|
|
13687
|
+
if (e.key === 'Enter' && search.value) {
|
|
13591
13688
|
select(transformItem$1(props, search.value));
|
|
13592
13689
|
search.value = '';
|
|
13593
13690
|
}
|
|
@@ -13676,6 +13773,7 @@
|
|
|
13676
13773
|
"activator": "parent",
|
|
13677
13774
|
"contentClass": "v-combobox__content",
|
|
13678
13775
|
"eager": props.eager,
|
|
13776
|
+
"maxHeight": 310,
|
|
13679
13777
|
"openOnClick": false,
|
|
13680
13778
|
"closeOnContentClick": false,
|
|
13681
13779
|
"transition": props.transition,
|
|
@@ -13847,6 +13945,10 @@
|
|
|
13847
13945
|
});
|
|
13848
13946
|
}
|
|
13849
13947
|
});
|
|
13948
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
|
13949
|
+
'aria-haspopup': 'dialog',
|
|
13950
|
+
'aria-expanded': String(isActive.value)
|
|
13951
|
+
}, props.activatorProps));
|
|
13850
13952
|
useRender(() => {
|
|
13851
13953
|
const [overlayProps] = filterVOverlayProps(props);
|
|
13852
13954
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
@@ -13860,10 +13962,7 @@
|
|
|
13860
13962
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
13861
13963
|
"aria-role": "dialog",
|
|
13862
13964
|
"aria-modal": "true",
|
|
13863
|
-
"activatorProps":
|
|
13864
|
-
'aria-haspopup': 'dialog',
|
|
13865
|
-
'aria-expanded': String(isActive.value)
|
|
13866
|
-
}, props.activatorProps)
|
|
13965
|
+
"activatorProps": activatorProps.value
|
|
13867
13966
|
}, scopeId), {
|
|
13868
13967
|
activator: slots.activator,
|
|
13869
13968
|
default: function () {
|
|
@@ -14212,12 +14311,15 @@
|
|
|
14212
14311
|
onFocus();
|
|
14213
14312
|
vue.nextTick(() => {
|
|
14214
14313
|
model.value = [];
|
|
14215
|
-
if (inputRef != null && inputRef.value) {
|
|
14216
|
-
inputRef.value.value = '';
|
|
14217
|
-
}
|
|
14218
14314
|
callEvent(props['onClick:clear'], e);
|
|
14219
14315
|
});
|
|
14220
14316
|
}
|
|
14317
|
+
vue.watch(model, newValue => {
|
|
14318
|
+
const hasModelReset = !Array.isArray(newValue) || !newValue.length;
|
|
14319
|
+
if (hasModelReset && inputRef.value) {
|
|
14320
|
+
inputRef.value.value = '';
|
|
14321
|
+
}
|
|
14322
|
+
});
|
|
14221
14323
|
useRender(() => {
|
|
14222
14324
|
const hasCounter = !!(slots.counter || props.counter);
|
|
14223
14325
|
const hasDetails = !!(hasCounter || slots.details);
|
|
@@ -15208,7 +15310,7 @@
|
|
|
15208
15310
|
window.removeEventListener('touchmove', onTouchmove);
|
|
15209
15311
|
window.removeEventListener('touchend', onTouchend);
|
|
15210
15312
|
});
|
|
15211
|
-
const isHorizontal = vue.computed(() => position.value
|
|
15313
|
+
const isHorizontal = vue.computed(() => ['left', 'right'].includes(position.value));
|
|
15212
15314
|
const {
|
|
15213
15315
|
addMovement,
|
|
15214
15316
|
endTouch,
|
|
@@ -15220,11 +15322,11 @@
|
|
|
15220
15322
|
const offset = vue.ref(0);
|
|
15221
15323
|
let start;
|
|
15222
15324
|
function getOffset(pos, active) {
|
|
15223
|
-
return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
|
|
15325
|
+
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);
|
|
15224
15326
|
}
|
|
15225
15327
|
function getProgress(pos) {
|
|
15226
15328
|
let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
15227
|
-
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();
|
|
15329
|
+
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();
|
|
15228
15330
|
return limit ? Math.max(0, Math.min(1, progress)) : progress;
|
|
15229
15331
|
}
|
|
15230
15332
|
function onTouchstart(e) {
|
|
@@ -15232,8 +15334,8 @@
|
|
|
15232
15334
|
const touchX = e.changedTouches[0].clientX;
|
|
15233
15335
|
const touchY = e.changedTouches[0].clientY;
|
|
15234
15336
|
const touchZone = 25;
|
|
15235
|
-
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
|
15236
|
-
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());
|
|
15337
|
+
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();
|
|
15338
|
+
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());
|
|
15237
15339
|
if (inTouchZone || inElement || isActive.value && isTemporary.value) {
|
|
15238
15340
|
maybeDragging = true;
|
|
15239
15341
|
start = [touchX, touchY];
|
|
@@ -15285,6 +15387,7 @@
|
|
|
15285
15387
|
isActive.value = velocity.direction === ({
|
|
15286
15388
|
left: 'right',
|
|
15287
15389
|
right: 'left',
|
|
15390
|
+
top: 'down',
|
|
15288
15391
|
bottom: 'up'
|
|
15289
15392
|
}[position.value] || oops());
|
|
15290
15393
|
} else {
|
|
@@ -15293,7 +15396,7 @@
|
|
|
15293
15396
|
}
|
|
15294
15397
|
const dragStyles = vue.computed(() => {
|
|
15295
15398
|
return isDragging.value ? {
|
|
15296
|
-
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(),
|
|
15399
|
+
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(),
|
|
15297
15400
|
transition: 'none'
|
|
15298
15401
|
} : undefined;
|
|
15299
15402
|
});
|
|
@@ -15309,7 +15412,7 @@
|
|
|
15309
15412
|
|
|
15310
15413
|
// Types
|
|
15311
15414
|
|
|
15312
|
-
const locations = ['start', 'end', 'left', 'right', 'bottom'];
|
|
15415
|
+
const locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];
|
|
15313
15416
|
const VNavigationDrawer = defineComponent({
|
|
15314
15417
|
name: 'VNavigationDrawer',
|
|
15315
15418
|
props: {
|
|
@@ -15766,7 +15869,7 @@
|
|
|
15766
15869
|
disabled: !!props.disabled || props.length < 2,
|
|
15767
15870
|
color: isActive ? props.activeColor : props.color,
|
|
15768
15871
|
ariaCurrent: isActive,
|
|
15769
|
-
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel,
|
|
15872
|
+
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
|
|
15770
15873
|
onClick: e => setValue(e, item)
|
|
15771
15874
|
}
|
|
15772
15875
|
};
|
|
@@ -17945,6 +18048,9 @@
|
|
|
17945
18048
|
if (props.transition) return props.transition;
|
|
17946
18049
|
return isActive.value ? 'scale-transition' : 'fade-transition';
|
|
17947
18050
|
});
|
|
18051
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
|
18052
|
+
'aria-describedby': id.value
|
|
18053
|
+
}, props.activatorProps));
|
|
17948
18054
|
useRender(() => {
|
|
17949
18055
|
const [overlayProps] = filterVOverlayProps(props);
|
|
17950
18056
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
@@ -17961,9 +18067,7 @@
|
|
|
17961
18067
|
"persistent": true,
|
|
17962
18068
|
"role": "tooltip",
|
|
17963
18069
|
"eager": true,
|
|
17964
|
-
"activatorProps":
|
|
17965
|
-
'aria-describedby': id.value
|
|
17966
|
-
}, props.activatorProps),
|
|
18070
|
+
"activatorProps": activatorProps.value,
|
|
17967
18071
|
"_disableGlobalStack": true
|
|
17968
18072
|
}, scopeId), {
|
|
17969
18073
|
activator: slots.activator,
|
|
@@ -18349,7 +18453,7 @@
|
|
|
18349
18453
|
locale
|
|
18350
18454
|
};
|
|
18351
18455
|
}
|
|
18352
|
-
const version$1 = "3.1.
|
|
18456
|
+
const version$1 = "3.1.3";
|
|
18353
18457
|
createVuetify$1.version = version$1;
|
|
18354
18458
|
|
|
18355
18459
|
// Vue's inject() can only be used in setup
|
|
@@ -18370,7 +18474,7 @@
|
|
|
18370
18474
|
...options
|
|
18371
18475
|
});
|
|
18372
18476
|
};
|
|
18373
|
-
const version = "3.1.
|
|
18477
|
+
const version = "3.1.3";
|
|
18374
18478
|
createVuetify.version = version;
|
|
18375
18479
|
|
|
18376
18480
|
exports.components = components;
|