@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-labs.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));
|
@@ -1896,8 +1910,8 @@
|
|
1896
1910
|
root: 'Pagination Navigation',
|
1897
1911
|
next: 'Next page',
|
1898
1912
|
previous: 'Previous page',
|
1899
|
-
page: '
|
1900
|
-
currentPage: 'Page {0}, Current
|
1913
|
+
page: 'Go to page {0}',
|
1914
|
+
currentPage: 'Page {0}, Current page',
|
1901
1915
|
first: 'First page',
|
1902
1916
|
last: 'Last page'
|
1903
1917
|
}
|
@@ -3372,18 +3386,21 @@
|
|
3372
3386
|
};
|
3373
3387
|
}
|
3374
3388
|
|
3389
|
+
// Types
|
3390
|
+
|
3391
|
+
const makeVBtnGroupProps = propsFactory({
|
3392
|
+
divided: Boolean,
|
3393
|
+
...makeBorderProps(),
|
3394
|
+
...makeDensityProps(),
|
3395
|
+
...makeElevationProps(),
|
3396
|
+
...makeRoundedProps(),
|
3397
|
+
...makeTagProps(),
|
3398
|
+
...makeThemeProps(),
|
3399
|
+
...makeVariantProps()
|
3400
|
+
}, 'v-btn-group');
|
3375
3401
|
const VBtnGroup = defineComponent({
|
3376
3402
|
name: 'VBtnGroup',
|
3377
|
-
props:
|
3378
|
-
divided: Boolean,
|
3379
|
-
...makeBorderProps(),
|
3380
|
-
...makeDensityProps(),
|
3381
|
-
...makeElevationProps(),
|
3382
|
-
...makeRoundedProps(),
|
3383
|
-
...makeTagProps(),
|
3384
|
-
...makeThemeProps(),
|
3385
|
-
...makeVariantProps()
|
3386
|
-
},
|
3403
|
+
props: makeVBtnGroupProps(),
|
3387
3404
|
setup(props, _ref) {
|
3388
3405
|
let {
|
3389
3406
|
slots
|
@@ -3421,6 +3438,9 @@
|
|
3421
3438
|
});
|
3422
3439
|
}
|
3423
3440
|
});
|
3441
|
+
function filterVBtnGroupProps(props) {
|
3442
|
+
return pick(props, Object.keys(VBtnGroup.props));
|
3443
|
+
}
|
3424
3444
|
|
3425
3445
|
// Composables
|
3426
3446
|
|
@@ -3628,7 +3648,10 @@
|
|
3628
3648
|
const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');
|
3629
3649
|
const VBtnToggle = genericComponent()({
|
3630
3650
|
name: 'VBtnToggle',
|
3631
|
-
props:
|
3651
|
+
props: {
|
3652
|
+
...makeVBtnGroupProps(),
|
3653
|
+
...makeGroupProps()
|
3654
|
+
},
|
3632
3655
|
emits: {
|
3633
3656
|
'update:modelValue': value => true
|
3634
3657
|
},
|
@@ -3645,9 +3668,10 @@
|
|
3645
3668
|
} = useGroup(props, VBtnToggleSymbol);
|
3646
3669
|
useRender(() => {
|
3647
3670
|
var _slots$default;
|
3648
|
-
|
3671
|
+
const [btnGroupProps] = filterVBtnGroupProps(props);
|
3672
|
+
return vue.createVNode(VBtnGroup, vue.mergeProps({
|
3649
3673
|
"class": "v-btn-toggle"
|
3650
|
-
}, {
|
3674
|
+
}, btnGroupProps), {
|
3651
3675
|
default: () => [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
|
3652
3676
|
isSelected,
|
3653
3677
|
next,
|
@@ -4102,9 +4126,6 @@
|
|
4102
4126
|
el.style.transform = value;
|
4103
4127
|
el.style.webkitTransform = value;
|
4104
4128
|
}
|
4105
|
-
function opacity(el, value) {
|
4106
|
-
el.style.opacity = `calc(${value} * var(--v-theme-overlay-multiplier))`;
|
4107
|
-
}
|
4108
4129
|
function isTouchEvent(e) {
|
4109
4130
|
return e.constructor.name === 'TouchEvent';
|
4110
4131
|
}
|
@@ -4180,13 +4201,11 @@
|
|
4180
4201
|
animation.classList.add('v-ripple__animation--enter');
|
4181
4202
|
animation.classList.add('v-ripple__animation--visible');
|
4182
4203
|
transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
4183
|
-
opacity(animation, 0);
|
4184
4204
|
animation.dataset.activated = String(performance.now());
|
4185
4205
|
setTimeout(() => {
|
4186
4206
|
animation.classList.remove('v-ripple__animation--enter');
|
4187
4207
|
animation.classList.add('v-ripple__animation--in');
|
4188
4208
|
transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
4189
|
-
opacity(animation, 0.08);
|
4190
4209
|
}, 0);
|
4191
4210
|
},
|
4192
4211
|
hide(el) {
|
@@ -4201,14 +4220,14 @@
|
|
4201
4220
|
setTimeout(() => {
|
4202
4221
|
animation.classList.remove('v-ripple__animation--in');
|
4203
4222
|
animation.classList.add('v-ripple__animation--out');
|
4204
|
-
opacity(animation, 0);
|
4205
4223
|
setTimeout(() => {
|
4224
|
+
var _animation$parentNode;
|
4206
4225
|
const ripples = el.getElementsByClassName('v-ripple__animation');
|
4207
4226
|
if (ripples.length === 1 && el.dataset.previousPosition) {
|
4208
4227
|
el.style.position = el.dataset.previousPosition;
|
4209
4228
|
delete el.dataset.previousPosition;
|
4210
4229
|
}
|
4211
|
-
animation.parentNode
|
4230
|
+
if (((_animation$parentNode = animation.parentNode) == null ? void 0 : _animation$parentNode.parentNode) === el) el.removeChild(animation.parentNode);
|
4212
4231
|
}, 300);
|
4213
4232
|
}, delay);
|
4214
4233
|
}
|
@@ -4861,14 +4880,18 @@
|
|
4861
4880
|
const isElevated = vue.computed(() => {
|
4862
4881
|
return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
|
4863
4882
|
});
|
4883
|
+
const valueAttr = vue.computed(() => {
|
4884
|
+
if (props.value === undefined) return undefined;
|
4885
|
+
return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
|
4886
|
+
});
|
4864
4887
|
useSelectLink(link, group == null ? void 0 : group.select);
|
4865
4888
|
useRender(() => {
|
4866
|
-
var _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
4889
|
+
var _link$isActive2, _link$isActive3, _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
4867
4890
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
4868
|
-
const hasColor = !group || isActive.value;
|
4869
4891
|
const hasPrepend = !!(props.prependIcon || slots.prepend);
|
4870
4892
|
const hasAppend = !!(props.appendIcon || slots.append);
|
4871
4893
|
const hasIcon = !!(props.icon && props.icon !== true);
|
4894
|
+
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);
|
4872
4895
|
return vue.withDirectives(vue.createVNode(Tag, {
|
4873
4896
|
"type": Tag === 'a' ? undefined : 'button',
|
4874
4897
|
"class": ['v-btn', group == null ? void 0 : group.selectedClass.value, {
|
@@ -4889,7 +4912,8 @@
|
|
4889
4912
|
if (isDisabled.value) return;
|
4890
4913
|
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
4891
4914
|
group == null ? void 0 : group.toggle();
|
4892
|
-
}
|
4915
|
+
},
|
4916
|
+
"value": valueAttr.value
|
4893
4917
|
}, {
|
4894
4918
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode(VDefaultsProvider, {
|
4895
4919
|
"key": "prepend",
|
@@ -5363,32 +5387,34 @@
|
|
5363
5387
|
if (hasLabel.value) {
|
5364
5388
|
const el = labelRef.value.$el;
|
5365
5389
|
const targetEl = floatingLabelRef.value.$el;
|
5366
|
-
|
5367
|
-
|
5368
|
-
|
5369
|
-
|
5370
|
-
|
5371
|
-
|
5372
|
-
|
5373
|
-
|
5374
|
-
|
5375
|
-
|
5376
|
-
|
5377
|
-
|
5378
|
-
|
5379
|
-
|
5380
|
-
|
5381
|
-
|
5382
|
-
|
5383
|
-
|
5384
|
-
|
5385
|
-
|
5386
|
-
|
5387
|
-
|
5388
|
-
|
5389
|
-
|
5390
|
-
|
5391
|
-
|
5390
|
+
requestAnimationFrame(() => {
|
5391
|
+
const rect = nullifyTransforms(el);
|
5392
|
+
const targetRect = targetEl.getBoundingClientRect();
|
5393
|
+
const x = targetRect.x - rect.x;
|
5394
|
+
const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2);
|
5395
|
+
const targetWidth = targetRect.width / 0.75;
|
5396
|
+
const width = Math.abs(targetWidth - rect.width) > 1 ? {
|
5397
|
+
maxWidth: convertToUnit(targetWidth)
|
5398
|
+
} : undefined;
|
5399
|
+
const style = getComputedStyle(el);
|
5400
|
+
const targetStyle = getComputedStyle(targetEl);
|
5401
|
+
const duration = parseFloat(style.transitionDuration) * 1000 || 150;
|
5402
|
+
const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'));
|
5403
|
+
const color = targetStyle.getPropertyValue('color');
|
5404
|
+
el.style.visibility = 'visible';
|
5405
|
+
targetEl.style.visibility = 'hidden';
|
5406
|
+
animate(el, {
|
5407
|
+
transform: `translate(${x}px, ${y}px) scale(${scale})`,
|
5408
|
+
color,
|
5409
|
+
...width
|
5410
|
+
}, {
|
5411
|
+
duration,
|
5412
|
+
easing: standardEasing,
|
5413
|
+
direction: val ? 'normal' : 'reverse'
|
5414
|
+
}).finished.then(() => {
|
5415
|
+
el.style.removeProperty('visibility');
|
5416
|
+
targetEl.style.removeProperty('visibility');
|
5417
|
+
});
|
5392
5418
|
});
|
5393
5419
|
}
|
5394
5420
|
}, {
|
@@ -5577,7 +5603,6 @@
|
|
5577
5603
|
const makeFormProps = propsFactory({
|
5578
5604
|
disabled: Boolean,
|
5579
5605
|
fastFail: Boolean,
|
5580
|
-
lazyValidation: Boolean,
|
5581
5606
|
readonly: Boolean,
|
5582
5607
|
modelValue: {
|
5583
5608
|
type: Boolean,
|
@@ -6981,9 +7006,9 @@
|
|
6981
7006
|
themeClasses
|
6982
7007
|
} = provideTheme(props);
|
6983
7008
|
const {
|
6984
|
-
|
6985
|
-
|
6986
|
-
} =
|
7009
|
+
textColorClasses,
|
7010
|
+
textColorStyles
|
7011
|
+
} = useTextColor(vue.toRef(props, 'color'));
|
6987
7012
|
const dividerStyles = vue.computed(() => {
|
6988
7013
|
const styles = {};
|
6989
7014
|
if (props.length) {
|
@@ -6999,8 +7024,8 @@
|
|
6999
7024
|
'v-divider': true,
|
7000
7025
|
'v-divider--inset': props.inset,
|
7001
7026
|
'v-divider--vertical': props.vertical
|
7002
|
-
}, themeClasses.value,
|
7003
|
-
"style": [dividerStyles.value,
|
7027
|
+
}, themeClasses.value, textColorClasses.value],
|
7028
|
+
"style": [dividerStyles.value, textColorStyles.value],
|
7004
7029
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
7005
7030
|
"role": `${attrs.role || 'separator'}`
|
7006
7031
|
}, null));
|
@@ -7438,7 +7463,8 @@
|
|
7438
7463
|
};
|
7439
7464
|
const useNestedItem = (id, isGroup) => {
|
7440
7465
|
const parent = vue.inject(VNestedSymbol, emptyNested);
|
7441
|
-
const
|
7466
|
+
const uidSymbol = Symbol(getUid());
|
7467
|
+
const computedId = vue.computed(() => id.value ?? uidSymbol);
|
7442
7468
|
const item = {
|
7443
7469
|
...parent,
|
7444
7470
|
id: computedId,
|
@@ -7710,7 +7736,7 @@
|
|
7710
7736
|
}
|
7711
7737
|
}
|
7712
7738
|
useRender(() => {
|
7713
|
-
var _slots$
|
7739
|
+
var _slots$title, _slots$subtitle, _slots$default;
|
7714
7740
|
const Tag = isLink.value ? 'a' : props.tag;
|
7715
7741
|
const hasColor = !list || isSelected.value || isActive.value;
|
7716
7742
|
const hasTitle = slots.title || props.title;
|
@@ -7733,7 +7759,18 @@
|
|
7733
7759
|
"onClick": onClick,
|
7734
7760
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
7735
7761
|
}, {
|
7736
|
-
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode(
|
7762
|
+
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode("div", {
|
7763
|
+
"key": "prepend",
|
7764
|
+
"class": "v-list-item__prepend"
|
7765
|
+
}, [props.prependAvatar && vue.createVNode(VAvatar, {
|
7766
|
+
"key": "prepend-avatar",
|
7767
|
+
"density": props.density,
|
7768
|
+
"image": props.prependAvatar
|
7769
|
+
}, null), props.prependIcon && vue.createVNode(VIcon, {
|
7770
|
+
"key": "prepend-icon",
|
7771
|
+
"density": props.density,
|
7772
|
+
"icon": props.prependIcon
|
7773
|
+
}, null), slots.prepend && vue.createVNode(VDefaultsProvider, {
|
7737
7774
|
"key": "prepend",
|
7738
7775
|
"defaults": {
|
7739
7776
|
VAvatar: {
|
@@ -7749,14 +7786,8 @@
|
|
7749
7786
|
}
|
7750
7787
|
}
|
7751
7788
|
}, {
|
7752
|
-
default: () => [
|
7753
|
-
|
7754
|
-
}, [props.prependAvatar && vue.createVNode(VAvatar, {
|
7755
|
-
"key": "prepend-avatar"
|
7756
|
-
}, null), props.prependIcon && vue.createVNode(VIcon, {
|
7757
|
-
"key": "prepend-icon"
|
7758
|
-
}, null), (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value)])]
|
7759
|
-
}), vue.createVNode("div", {
|
7789
|
+
default: () => [slots.prepend(slotProps.value)]
|
7790
|
+
})]), vue.createVNode("div", {
|
7760
7791
|
"class": "v-list-item__content",
|
7761
7792
|
"data-no-activator": ""
|
7762
7793
|
}, [hasTitle && vue.createVNode(VListItemTitle, {
|
@@ -7771,7 +7802,10 @@
|
|
7771
7802
|
default: () => [((_slots$subtitle = slots.subtitle) == null ? void 0 : _slots$subtitle.call(slots, {
|
7772
7803
|
subtitle: props.subtitle
|
7773
7804
|
})) ?? props.subtitle]
|
7774
|
-
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && vue.createVNode(
|
7805
|
+
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && vue.createVNode("div", {
|
7806
|
+
"key": "append",
|
7807
|
+
"class": "v-list-item__append"
|
7808
|
+
}, [slots.append && vue.createVNode(VDefaultsProvider, {
|
7775
7809
|
"key": "append",
|
7776
7810
|
"defaults": {
|
7777
7811
|
VAvatar: {
|
@@ -7787,14 +7821,16 @@
|
|
7787
7821
|
}
|
7788
7822
|
}
|
7789
7823
|
}, {
|
7790
|
-
default: () => [
|
7791
|
-
|
7792
|
-
|
7793
|
-
|
7794
|
-
|
7795
|
-
|
7796
|
-
|
7797
|
-
|
7824
|
+
default: () => [slots.append(slotProps.value)]
|
7825
|
+
}), props.appendIcon && vue.createVNode(VIcon, {
|
7826
|
+
"key": "append-icon",
|
7827
|
+
"density": props.density,
|
7828
|
+
"icon": props.appendIcon
|
7829
|
+
}, null), props.appendAvatar && vue.createVNode(VAvatar, {
|
7830
|
+
"key": "append-avatar",
|
7831
|
+
"density": props.density,
|
7832
|
+
"image": props.appendAvatar
|
7833
|
+
}, null)])]
|
7798
7834
|
}), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
7799
7835
|
});
|
7800
7836
|
return {};
|
@@ -8008,9 +8044,12 @@
|
|
8008
8044
|
|
8009
8045
|
// Types
|
8010
8046
|
|
8047
|
+
function isPrimitive(value) {
|
8048
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
8049
|
+
}
|
8011
8050
|
function transformItem(props, item) {
|
8012
8051
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
8013
|
-
const title =
|
8052
|
+
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
8014
8053
|
const value = getPropertyFromItem(item, props.itemValue, undefined);
|
8015
8054
|
const children = getPropertyFromItem(item, props.itemChildren);
|
8016
8055
|
const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps);
|
@@ -8636,17 +8675,12 @@
|
|
8636
8675
|
function useLocationStrategies(props, data) {
|
8637
8676
|
const contentStyles = vue.ref({});
|
8638
8677
|
const updateLocation = vue.ref();
|
8639
|
-
|
8640
|
-
|
8641
|
-
|
8642
|
-
|
8643
|
-
|
8644
|
-
|
8645
|
-
scope = vue.effectScope();
|
8646
|
-
if (!(props.locationStrategy === 'connected')) {
|
8647
|
-
await vue.nextTick();
|
8648
|
-
}
|
8649
|
-
scope.run(() => {
|
8678
|
+
if (IN_BROWSER) {
|
8679
|
+
useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {
|
8680
|
+
vue.watch(() => props.locationStrategy, reset);
|
8681
|
+
vue.onScopeDispose(() => {
|
8682
|
+
updateLocation.value = undefined;
|
8683
|
+
});
|
8650
8684
|
if (typeof props.locationStrategy === 'function') {
|
8651
8685
|
var _props$locationStrate;
|
8652
8686
|
updateLocation.value = (_props$locationStrate = props.locationStrategy(data, props, contentStyles)) == null ? void 0 : _props$locationStrate.updateLocation;
|
@@ -8655,16 +8689,14 @@
|
|
8655
8689
|
updateLocation.value = (_locationStrategies$p = locationStrategies[props.locationStrategy](data, props, contentStyles)) == null ? void 0 : _locationStrategies$p.updateLocation;
|
8656
8690
|
}
|
8657
8691
|
});
|
8658
|
-
|
8659
|
-
|
8660
|
-
|
8661
|
-
|
8662
|
-
|
8663
|
-
|
8664
|
-
|
8665
|
-
|
8666
|
-
(_scope2 = scope) == null ? void 0 : _scope2.stop();
|
8667
|
-
});
|
8692
|
+
window.addEventListener('resize', onResize, {
|
8693
|
+
passive: true
|
8694
|
+
});
|
8695
|
+
vue.onScopeDispose(() => {
|
8696
|
+
window.removeEventListener('resize', onResize);
|
8697
|
+
updateLocation.value = undefined;
|
8698
|
+
});
|
8699
|
+
}
|
8668
8700
|
function onResize(e) {
|
8669
8701
|
var _updateLocation$value;
|
8670
8702
|
(_updateLocation$value = updateLocation.value) == null ? void 0 : _updateLocation$value.call(updateLocation, e);
|
@@ -8958,13 +8990,30 @@
|
|
8958
8990
|
maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),
|
8959
8991
|
maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))
|
8960
8992
|
});
|
8993
|
+
return {
|
8994
|
+
available,
|
8995
|
+
contentBox
|
8996
|
+
};
|
8961
8997
|
}
|
8962
|
-
vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation()
|
8963
|
-
|
8964
|
-
|
8965
|
-
|
8966
|
-
|
8967
|
-
|
8998
|
+
vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());
|
8999
|
+
vue.nextTick(() => {
|
9000
|
+
const result = updateLocation();
|
9001
|
+
|
9002
|
+
// TODO: overflowing content should only require a single updateLocation call
|
9003
|
+
// Icky hack to make sure the content is positioned consistently
|
9004
|
+
if (!result) return;
|
9005
|
+
const {
|
9006
|
+
available,
|
9007
|
+
contentBox
|
9008
|
+
} = result;
|
9009
|
+
if (contentBox.height > available.y) {
|
9010
|
+
requestAnimationFrame(() => {
|
9011
|
+
updateLocation();
|
9012
|
+
requestAnimationFrame(() => {
|
9013
|
+
updateLocation();
|
9014
|
+
});
|
9015
|
+
});
|
9016
|
+
}
|
8968
9017
|
});
|
8969
9018
|
return {
|
8970
9019
|
updateLocation
|
@@ -9032,10 +9081,10 @@
|
|
9032
9081
|
await vue.nextTick();
|
9033
9082
|
scope.run(() => {
|
9034
9083
|
if (typeof props.scrollStrategy === 'function') {
|
9035
|
-
props.scrollStrategy(data, props);
|
9084
|
+
props.scrollStrategy(data, props, scope);
|
9036
9085
|
} else {
|
9037
9086
|
var _scrollStrategies$pro;
|
9038
|
-
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props);
|
9087
|
+
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props, scope);
|
9039
9088
|
}
|
9040
9089
|
});
|
9041
9090
|
});
|
@@ -9081,9 +9130,10 @@
|
|
9081
9130
|
}
|
9082
9131
|
});
|
9083
9132
|
}
|
9084
|
-
function repositionScrollStrategy(data) {
|
9133
|
+
function repositionScrollStrategy(data, props, scope) {
|
9085
9134
|
let slow = false;
|
9086
9135
|
let raf = -1;
|
9136
|
+
let ric = -1;
|
9087
9137
|
function update(e) {
|
9088
9138
|
requestNewFrame(() => {
|
9089
9139
|
var _data$updateLocation$, _data$updateLocation;
|
@@ -9093,21 +9143,29 @@
|
|
9093
9143
|
slow = time / (1000 / 60) > 2;
|
9094
9144
|
});
|
9095
9145
|
}
|
9096
|
-
|
9097
|
-
|
9098
|
-
|
9099
|
-
|
9100
|
-
|
9101
|
-
|
9102
|
-
|
9103
|
-
|
9104
|
-
|
9146
|
+
ric = requestIdleCallback(() => {
|
9147
|
+
scope.run(() => {
|
9148
|
+
bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {
|
9149
|
+
if (slow) {
|
9150
|
+
// If the position calculation is slow,
|
9151
|
+
// defer updates until scrolling is finished.
|
9152
|
+
// Browsers usually fire one scroll event per frame so
|
9153
|
+
// we just wait until we've got two frames without an event
|
9154
|
+
cancelAnimationFrame(raf);
|
9155
|
+
raf = requestAnimationFrame(() => {
|
9156
|
+
raf = requestAnimationFrame(() => {
|
9157
|
+
update(e);
|
9158
|
+
});
|
9159
|
+
});
|
9160
|
+
} else {
|
9105
9161
|
update(e);
|
9106
|
-
}
|
9162
|
+
}
|
9107
9163
|
});
|
9108
|
-
}
|
9109
|
-
|
9110
|
-
|
9164
|
+
});
|
9165
|
+
});
|
9166
|
+
vue.onScopeDispose(() => {
|
9167
|
+
cancelIdleCallback(ric);
|
9168
|
+
cancelAnimationFrame(raf);
|
9111
9169
|
});
|
9112
9170
|
}
|
9113
9171
|
|
@@ -9750,6 +9808,11 @@
|
|
9750
9808
|
function onClickOutside() {
|
9751
9809
|
parent == null ? void 0 : parent.closeParents();
|
9752
9810
|
}
|
9811
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
9812
|
+
'aria-haspopup': 'menu',
|
9813
|
+
'aria-expanded': String(isActive.value),
|
9814
|
+
'aria-owns': id.value
|
9815
|
+
}, props.activatorProps));
|
9753
9816
|
useRender(() => {
|
9754
9817
|
const [overlayProps] = filterVOverlayProps(props);
|
9755
9818
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -9759,11 +9822,7 @@
|
|
9759
9822
|
"modelValue": isActive.value,
|
9760
9823
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
9761
9824
|
"absolute": true,
|
9762
|
-
"activatorProps":
|
9763
|
-
'aria-haspopup': 'menu',
|
9764
|
-
'aria-expanded': String(isActive.value),
|
9765
|
-
'aria-owns': id.value
|
9766
|
-
}, props.activatorProps),
|
9825
|
+
"activatorProps": activatorProps.value,
|
9767
9826
|
"onClick:outside": onClickOutside
|
9768
9827
|
}, scopeId), {
|
9769
9828
|
activator: slots.activator,
|
@@ -9877,8 +9936,10 @@
|
|
9877
9936
|
}
|
9878
9937
|
function onKeydown(e) {
|
9879
9938
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
9880
|
-
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
9939
|
+
if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
|
9881
9940
|
e.preventDefault();
|
9941
|
+
}
|
9942
|
+
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
9882
9943
|
menu.value = true;
|
9883
9944
|
}
|
9884
9945
|
if (['Escape', 'Tab'].includes(e.key)) {
|
@@ -9889,15 +9950,12 @@
|
|
9889
9950
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
9890
9951
|
} else if (e.key === 'ArrowUp') {
|
9891
9952
|
var _listRef$value2;
|
9892
|
-
e.preventDefault();
|
9893
9953
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
9894
9954
|
} else if (e.key === 'Home') {
|
9895
9955
|
var _listRef$value3;
|
9896
|
-
e.preventDefault();
|
9897
9956
|
(_listRef$value3 = listRef.value) == null ? void 0 : _listRef$value3.focus('first');
|
9898
9957
|
} else if (e.key === 'End') {
|
9899
9958
|
var _listRef$value4;
|
9900
|
-
e.preventDefault();
|
9901
9959
|
(_listRef$value4 = listRef.value) == null ? void 0 : _listRef$value4.focus('last');
|
9902
9960
|
}
|
9903
9961
|
}
|
@@ -10079,7 +10137,7 @@
|
|
10079
10137
|
const customFiltersLength = Object.keys((options == null ? void 0 : options.customKeyFilter) ?? {}).length;
|
10080
10138
|
if (!(items != null && items.length)) return array;
|
10081
10139
|
loop: for (let i = 0; i < items.length; i++) {
|
10082
|
-
const item = items[i]
|
10140
|
+
const item = items[i];
|
10083
10141
|
const customMatches = {};
|
10084
10142
|
const defaultMatches = {};
|
10085
10143
|
let match = -1;
|
@@ -10119,7 +10177,7 @@
|
|
10119
10177
|
}
|
10120
10178
|
return array;
|
10121
10179
|
}
|
10122
|
-
function useFilter(props, items, query) {
|
10180
|
+
function useFilter(props, items, query, options) {
|
10123
10181
|
const strQuery = vue.computed(() => typeof (query == null ? void 0 : query.value) !== 'string' && typeof (query == null ? void 0 : query.value) !== 'number' ? '' : String(query.value));
|
10124
10182
|
const filteredItems = vue.ref([]);
|
10125
10183
|
const filteredMatches = vue.ref(new Map());
|
@@ -10130,7 +10188,7 @@
|
|
10130
10188
|
const results = filterItems(transformedItems, strQuery.value, {
|
10131
10189
|
customKeyFilter: props.customKeyFilter,
|
10132
10190
|
default: props.customFilter,
|
10133
|
-
filterKeys: props.filterKeys,
|
10191
|
+
filterKeys: vue.unref(options == null ? void 0 : options.filterKeys) ?? props.filterKeys,
|
10134
10192
|
filterMode: props.filterMode,
|
10135
10193
|
noFilter: props.noFilter
|
10136
10194
|
});
|
@@ -10241,6 +10299,9 @@
|
|
10241
10299
|
}
|
10242
10300
|
function onKeydown(e) {
|
10243
10301
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
10302
|
+
if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
10303
|
+
e.preventDefault();
|
10304
|
+
}
|
10244
10305
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
10245
10306
|
menu.value = true;
|
10246
10307
|
}
|
@@ -10252,11 +10313,9 @@
|
|
10252
10313
|
}
|
10253
10314
|
if (e.key === 'ArrowDown') {
|
10254
10315
|
var _listRef$value;
|
10255
|
-
e.preventDefault();
|
10256
10316
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
10257
10317
|
} else if (e.key === 'ArrowUp') {
|
10258
10318
|
var _listRef$value2;
|
10259
|
-
e.preventDefault();
|
10260
10319
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
10261
10320
|
}
|
10262
10321
|
}
|
@@ -13585,7 +13644,9 @@
|
|
13585
13644
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
13586
13645
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
13587
13646
|
const length = selected.value.length;
|
13588
|
-
if (selectionIndex.value > -1
|
13647
|
+
if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
13648
|
+
e.preventDefault();
|
13649
|
+
}
|
13589
13650
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
13590
13651
|
menu.value = true;
|
13591
13652
|
}
|
@@ -13597,11 +13658,9 @@
|
|
13597
13658
|
}
|
13598
13659
|
if (e.key === 'ArrowDown') {
|
13599
13660
|
var _listRef$value;
|
13600
|
-
e.preventDefault();
|
13601
13661
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
13602
13662
|
} else if (e.key === 'ArrowUp') {
|
13603
13663
|
var _listRef$value2;
|
13604
|
-
e.preventDefault();
|
13605
13664
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
13606
13665
|
}
|
13607
13666
|
if (!props.multiple) return;
|
@@ -13896,6 +13955,10 @@
|
|
13896
13955
|
});
|
13897
13956
|
}
|
13898
13957
|
});
|
13958
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
13959
|
+
'aria-haspopup': 'dialog',
|
13960
|
+
'aria-expanded': String(isActive.value)
|
13961
|
+
}, props.activatorProps));
|
13899
13962
|
useRender(() => {
|
13900
13963
|
const [overlayProps] = filterVOverlayProps(props);
|
13901
13964
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -13909,10 +13972,7 @@
|
|
13909
13972
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
13910
13973
|
"aria-role": "dialog",
|
13911
13974
|
"aria-modal": "true",
|
13912
|
-
"activatorProps":
|
13913
|
-
'aria-haspopup': 'dialog',
|
13914
|
-
'aria-expanded': String(isActive.value)
|
13915
|
-
}, props.activatorProps)
|
13975
|
+
"activatorProps": activatorProps.value
|
13916
13976
|
}, scopeId), {
|
13917
13977
|
activator: slots.activator,
|
13918
13978
|
default: function () {
|
@@ -14261,12 +14321,15 @@
|
|
14261
14321
|
onFocus();
|
14262
14322
|
vue.nextTick(() => {
|
14263
14323
|
model.value = [];
|
14264
|
-
if (inputRef != null && inputRef.value) {
|
14265
|
-
inputRef.value.value = '';
|
14266
|
-
}
|
14267
14324
|
callEvent(props['onClick:clear'], e);
|
14268
14325
|
});
|
14269
14326
|
}
|
14327
|
+
vue.watch(model, newValue => {
|
14328
|
+
const hasModelReset = !Array.isArray(newValue) || !newValue.length;
|
14329
|
+
if (hasModelReset && inputRef.value) {
|
14330
|
+
inputRef.value.value = '';
|
14331
|
+
}
|
14332
|
+
});
|
14270
14333
|
useRender(() => {
|
14271
14334
|
const hasCounter = !!(slots.counter || props.counter);
|
14272
14335
|
const hasDetails = !!(hasCounter || slots.details);
|
@@ -15257,7 +15320,7 @@
|
|
15257
15320
|
window.removeEventListener('touchmove', onTouchmove);
|
15258
15321
|
window.removeEventListener('touchend', onTouchend);
|
15259
15322
|
});
|
15260
|
-
const isHorizontal = vue.computed(() => position.value
|
15323
|
+
const isHorizontal = vue.computed(() => ['left', 'right'].includes(position.value));
|
15261
15324
|
const {
|
15262
15325
|
addMovement,
|
15263
15326
|
endTouch,
|
@@ -15269,11 +15332,11 @@
|
|
15269
15332
|
const offset = vue.ref(0);
|
15270
15333
|
let start;
|
15271
15334
|
function getOffset(pos, active) {
|
15272
|
-
return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
|
15335
|
+
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);
|
15273
15336
|
}
|
15274
15337
|
function getProgress(pos) {
|
15275
15338
|
let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
15276
|
-
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();
|
15339
|
+
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();
|
15277
15340
|
return limit ? Math.max(0, Math.min(1, progress)) : progress;
|
15278
15341
|
}
|
15279
15342
|
function onTouchstart(e) {
|
@@ -15281,8 +15344,8 @@
|
|
15281
15344
|
const touchX = e.changedTouches[0].clientX;
|
15282
15345
|
const touchY = e.changedTouches[0].clientY;
|
15283
15346
|
const touchZone = 25;
|
15284
|
-
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
15285
|
-
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());
|
15347
|
+
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();
|
15348
|
+
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());
|
15286
15349
|
if (inTouchZone || inElement || isActive.value && isTemporary.value) {
|
15287
15350
|
maybeDragging = true;
|
15288
15351
|
start = [touchX, touchY];
|
@@ -15334,6 +15397,7 @@
|
|
15334
15397
|
isActive.value = velocity.direction === ({
|
15335
15398
|
left: 'right',
|
15336
15399
|
right: 'left',
|
15400
|
+
top: 'down',
|
15337
15401
|
bottom: 'up'
|
15338
15402
|
}[position.value] || oops());
|
15339
15403
|
} else {
|
@@ -15342,7 +15406,7 @@
|
|
15342
15406
|
}
|
15343
15407
|
const dragStyles = vue.computed(() => {
|
15344
15408
|
return isDragging.value ? {
|
15345
|
-
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(),
|
15409
|
+
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(),
|
15346
15410
|
transition: 'none'
|
15347
15411
|
} : undefined;
|
15348
15412
|
});
|
@@ -15358,7 +15422,7 @@
|
|
15358
15422
|
|
15359
15423
|
// Types
|
15360
15424
|
|
15361
|
-
const locations = ['start', 'end', 'left', 'right', 'bottom'];
|
15425
|
+
const locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];
|
15362
15426
|
const VNavigationDrawer = defineComponent({
|
15363
15427
|
name: 'VNavigationDrawer',
|
15364
15428
|
props: {
|
@@ -15815,7 +15879,7 @@
|
|
15815
15879
|
disabled: !!props.disabled || props.length < 2,
|
15816
15880
|
color: isActive ? props.activeColor : props.color,
|
15817
15881
|
ariaCurrent: isActive,
|
15818
|
-
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel,
|
15882
|
+
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
|
15819
15883
|
onClick: e => setValue(e, item)
|
15820
15884
|
}
|
15821
15885
|
};
|
@@ -17994,6 +18058,9 @@
|
|
17994
18058
|
if (props.transition) return props.transition;
|
17995
18059
|
return isActive.value ? 'scale-transition' : 'fade-transition';
|
17996
18060
|
});
|
18061
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
18062
|
+
'aria-describedby': id.value
|
18063
|
+
}, props.activatorProps));
|
17997
18064
|
useRender(() => {
|
17998
18065
|
const [overlayProps] = filterVOverlayProps(props);
|
17999
18066
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -18010,9 +18077,7 @@
|
|
18010
18077
|
"persistent": true,
|
18011
18078
|
"role": "tooltip",
|
18012
18079
|
"eager": true,
|
18013
|
-
"activatorProps":
|
18014
|
-
'aria-describedby': id.value
|
18015
|
-
}, props.activatorProps),
|
18080
|
+
"activatorProps": activatorProps.value,
|
18016
18081
|
"_disableGlobalStack": true
|
18017
18082
|
}, scopeId), {
|
18018
18083
|
activator: slots.activator,
|
@@ -18961,7 +19026,7 @@
|
|
18961
19026
|
});
|
18962
19027
|
},
|
18963
19028
|
"item": item
|
18964
|
-
}, slots), isExpanded(item
|
19029
|
+
}, slots), isExpanded(item) && ((_slots$expandedRow = slots['expanded-row']) == null ? void 0 : _slots$expandedRow.call(slots, {
|
18965
19030
|
item,
|
18966
19031
|
columns: columns.value
|
18967
19032
|
}))]);
|
@@ -18999,7 +19064,7 @@
|
|
18999
19064
|
return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value);
|
19000
19065
|
});
|
19001
19066
|
const pageCount = vue.computed(() => {
|
19002
|
-
if (itemsPerPage.value === -1) return 1;
|
19067
|
+
if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
|
19003
19068
|
return Math.ceil(itemsLength.value / itemsPerPage.value);
|
19004
19069
|
});
|
19005
19070
|
vue.watchEffect(() => {
|
@@ -19102,7 +19167,7 @@
|
|
19102
19167
|
"hide-details": true
|
19103
19168
|
}, null)]), vue.createVNode("div", {
|
19104
19169
|
"class": "v-data-table-footer__info"
|
19105
|
-
}, [vue.createVNode("div", null, [
|
19170
|
+
}, [vue.createVNode("div", null, [!itemsLength.value ? 0 : startIndex.value + 1, vue.createTextVNode(" - "), stopIndex.value, vue.createTextVNode(" of "), itemsLength.value])]), vue.createVNode("div", {
|
19106
19171
|
"class": "v-data-table-footer__pagination"
|
19107
19172
|
}, [vue.createVNode(VBtn, {
|
19108
19173
|
"icon": props.firstIcon,
|
@@ -19170,18 +19235,14 @@
|
|
19170
19235
|
page,
|
19171
19236
|
itemsPerPage,
|
19172
19237
|
sortBy,
|
19173
|
-
|
19174
|
-
stopIndex,
|
19175
|
-
pageCount
|
19238
|
+
groupBy
|
19176
19239
|
} = _ref;
|
19177
19240
|
const vm = getCurrentInstance('VDataTable');
|
19178
19241
|
const options = vue.computed(() => ({
|
19179
19242
|
page: page.value,
|
19180
19243
|
itemsPerPage: itemsPerPage.value,
|
19181
|
-
|
19182
|
-
|
19183
|
-
pageCount: pageCount.value,
|
19184
|
-
sortBy: sortBy.value
|
19244
|
+
sortBy: sortBy.value,
|
19245
|
+
groupBy: groupBy.value
|
19185
19246
|
}));
|
19186
19247
|
|
19187
19248
|
// Reset page when sorting changes
|
@@ -19259,9 +19320,12 @@
|
|
19259
19320
|
const {
|
19260
19321
|
items
|
19261
19322
|
} = useDataTableItems(props, columns);
|
19323
|
+
const filterKeys = vue.computed(() => columns.value.map(c => 'columns.' + c.key));
|
19262
19324
|
const {
|
19263
19325
|
filteredItems
|
19264
|
-
} = useFilter(props, items, vue.toRef(props, 'search')
|
19326
|
+
} = useFilter(props, items, vue.toRef(props, 'search'), {
|
19327
|
+
filterKeys
|
19328
|
+
});
|
19265
19329
|
const {
|
19266
19330
|
sortBy
|
19267
19331
|
} = createSort(props);
|
@@ -19280,8 +19344,7 @@
|
|
19280
19344
|
page,
|
19281
19345
|
itemsPerPage,
|
19282
19346
|
startIndex,
|
19283
|
-
stopIndex
|
19284
|
-
pageCount
|
19347
|
+
stopIndex
|
19285
19348
|
} = createPagination(props, flatItems);
|
19286
19349
|
const {
|
19287
19350
|
paginatedItems
|
@@ -19293,9 +19356,7 @@
|
|
19293
19356
|
page,
|
19294
19357
|
itemsPerPage,
|
19295
19358
|
sortBy,
|
19296
|
-
|
19297
|
-
startIndex,
|
19298
|
-
stopIndex
|
19359
|
+
groupBy
|
19299
19360
|
});
|
19300
19361
|
provideDefaults({
|
19301
19362
|
VDataTableRows: {
|
@@ -19451,9 +19512,12 @@
|
|
19451
19512
|
const {
|
19452
19513
|
items
|
19453
19514
|
} = useDataTableItems(props, columns);
|
19515
|
+
const filterKeys = vue.computed(() => columns.value.map(c => 'columns.' + c.key));
|
19454
19516
|
const {
|
19455
19517
|
filteredItems
|
19456
|
-
} = useFilter(props, items, vue.toRef(props, 'search')
|
19518
|
+
} = useFilter(props, items, vue.toRef(props, 'search'), {
|
19519
|
+
filterKeys
|
19520
|
+
});
|
19457
19521
|
const {
|
19458
19522
|
sortBy
|
19459
19523
|
} = createSort(props);
|
@@ -19486,10 +19550,8 @@
|
|
19486
19550
|
useOptions({
|
19487
19551
|
sortBy,
|
19488
19552
|
page: vue.ref(1),
|
19489
|
-
|
19490
|
-
|
19491
|
-
pageCount: vue.ref(1),
|
19492
|
-
itemsPerPage: vue.ref(-1)
|
19553
|
+
itemsPerPage: vue.ref(-1),
|
19554
|
+
groupBy
|
19493
19555
|
});
|
19494
19556
|
provideDefaults({
|
19495
19557
|
VDataTableRows: {
|
@@ -19565,7 +19627,8 @@
|
|
19565
19627
|
...makeDataTableItemProps(),
|
19566
19628
|
...makeDataTableSelectProps(),
|
19567
19629
|
...makeDataTableSortProps(),
|
19568
|
-
...makeDataTablePaginateProps()
|
19630
|
+
...makeDataTablePaginateProps(),
|
19631
|
+
...makeDataTableGroupProps()
|
19569
19632
|
},
|
19570
19633
|
emits: {
|
19571
19634
|
'update:modelValue': value => true,
|
@@ -19574,6 +19637,7 @@
|
|
19574
19637
|
'update:sortBy': sortBy => true,
|
19575
19638
|
'update:options': options => true,
|
19576
19639
|
'update:expanded': options => true,
|
19640
|
+
'update:groupBy': value => true,
|
19577
19641
|
'click:row': (event, value) => true
|
19578
19642
|
},
|
19579
19643
|
setup(props, _ref) {
|
@@ -19581,10 +19645,12 @@
|
|
19581
19645
|
emit,
|
19582
19646
|
slots
|
19583
19647
|
} = _ref;
|
19648
|
+
const groupBy = useProxiedModel(props, 'groupBy');
|
19584
19649
|
createExpanded(props);
|
19585
19650
|
const {
|
19586
19651
|
columns
|
19587
19652
|
} = createHeaders(props, {
|
19653
|
+
groupBy,
|
19588
19654
|
showSelect: vue.toRef(props, 'showSelect'),
|
19589
19655
|
showExpand: vue.toRef(props, 'showExpand')
|
19590
19656
|
});
|
@@ -19595,21 +19661,22 @@
|
|
19595
19661
|
sortBy,
|
19596
19662
|
toggleSort
|
19597
19663
|
} = createSort(props);
|
19664
|
+
const {
|
19665
|
+
opened
|
19666
|
+
} = createGroupBy(props, groupBy, sortBy);
|
19598
19667
|
const {
|
19599
19668
|
page,
|
19600
|
-
itemsPerPage
|
19601
|
-
startIndex,
|
19602
|
-
stopIndex,
|
19603
|
-
pageCount
|
19669
|
+
itemsPerPage
|
19604
19670
|
} = createPagination(props, items);
|
19671
|
+
const {
|
19672
|
+
flatItems
|
19673
|
+
} = useGroupedItems(items, groupBy, opened);
|
19605
19674
|
createSelection(props, items);
|
19606
19675
|
useOptions({
|
19607
19676
|
page,
|
19608
19677
|
itemsPerPage,
|
19609
19678
|
sortBy,
|
19610
|
-
|
19611
|
-
stopIndex,
|
19612
|
-
pageCount
|
19679
|
+
groupBy
|
19613
19680
|
});
|
19614
19681
|
vue.provide('v-data-table', {
|
19615
19682
|
toggleSort,
|
@@ -19645,7 +19712,7 @@
|
|
19645
19712
|
"class": "v-data-table__tbody",
|
19646
19713
|
"role": "rowgroup"
|
19647
19714
|
}, [slots.body ? slots.body() : vue.createVNode(VDataTableRows, {
|
19648
|
-
"items":
|
19715
|
+
"items": flatItems.value,
|
19649
19716
|
"onClick:row": (event, value) => emit('click:row', event, value)
|
19650
19717
|
}, slots)]), (_slots$tbody = slots.tbody) == null ? void 0 : _slots$tbody.call(slots), (_slots$tfoot = slots.tfoot) == null ? void 0 : _slots$tfoot.call(slots)]);
|
19651
19718
|
}),
|
@@ -19936,6 +20003,7 @@
|
|
19936
20003
|
VDataTableRow: VDataTableRow,
|
19937
20004
|
VDataTableVirtual: VDataTableVirtual,
|
19938
20005
|
VDataTableServer: VDataTableServer,
|
20006
|
+
VDataTableFooter: VDataTableFooter,
|
19939
20007
|
VVirtualScroll: VVirtualScroll
|
19940
20008
|
});
|
19941
20009
|
|
@@ -20151,7 +20219,7 @@
|
|
20151
20219
|
locale
|
20152
20220
|
};
|
20153
20221
|
}
|
20154
|
-
const version$1 = "
|
20222
|
+
const version$1 = "4.0.0-master-20230206.0";
|
20155
20223
|
createVuetify$1.version = version$1;
|
20156
20224
|
|
20157
20225
|
// Vue's inject() can only be used in setup
|
@@ -20164,7 +20232,7 @@
|
|
20164
20232
|
}
|
20165
20233
|
}
|
20166
20234
|
|
20167
|
-
const version = "
|
20235
|
+
const version = "4.0.0-master-20230206.0";
|
20168
20236
|
|
20169
20237
|
const createVuetify = function () {
|
20170
20238
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|