@vuetify/nightly 3.2.0-next-20230118.0 → 4.0.0-dev-20230211.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 +207 -15
- package/dist/json/attributes.json +7202 -0
- package/dist/json/importMap-labs.json +4 -0
- package/dist/json/importMap.json +102 -102
- package/dist/json/tags.json +2492 -0
- package/dist/json/web-types.json +24081 -0
- package/dist/vuetify-labs.css +163 -147
- package/dist/vuetify-labs.d.ts +441 -176
- package/dist/vuetify-labs.esm.js +328 -225
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +327 -224
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +53 -46
- package/dist/vuetify.d.ts +342 -203
- package/dist/vuetify.esm.js +249 -185
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +248 -184
- 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/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 +29 -29
- package/lib/labs/VDataTable/VDataTable.mjs +6 -6
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.css +9 -0
- package/lib/labs/VDataTable/VDataTableFooter.mjs +51 -13
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.sass +7 -0
- 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 +125 -1
- package/lib/labs/VDataTable/index.mjs +1 -0
- package/lib/labs/VDataTable/index.mjs.map +1 -1
- package/lib/labs/components.d.ts +125 -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-dev-20230211.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));
|
@@ -7710,7 +7735,7 @@
|
|
7710
7735
|
}
|
7711
7736
|
}
|
7712
7737
|
useRender(() => {
|
7713
|
-
var _slots$
|
7738
|
+
var _slots$title, _slots$subtitle, _slots$default;
|
7714
7739
|
const Tag = isLink.value ? 'a' : props.tag;
|
7715
7740
|
const hasColor = !list || isSelected.value || isActive.value;
|
7716
7741
|
const hasTitle = slots.title || props.title;
|
@@ -7733,7 +7758,18 @@
|
|
7733
7758
|
"onClick": onClick,
|
7734
7759
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
7735
7760
|
}, {
|
7736
|
-
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode(
|
7761
|
+
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode("div", {
|
7762
|
+
"key": "prepend",
|
7763
|
+
"class": "v-list-item__prepend"
|
7764
|
+
}, [props.prependAvatar && vue.createVNode(VAvatar, {
|
7765
|
+
"key": "prepend-avatar",
|
7766
|
+
"density": props.density,
|
7767
|
+
"image": props.prependAvatar
|
7768
|
+
}, null), props.prependIcon && vue.createVNode(VIcon, {
|
7769
|
+
"key": "prepend-icon",
|
7770
|
+
"density": props.density,
|
7771
|
+
"icon": props.prependIcon
|
7772
|
+
}, null), slots.prepend && vue.createVNode(VDefaultsProvider, {
|
7737
7773
|
"key": "prepend",
|
7738
7774
|
"defaults": {
|
7739
7775
|
VAvatar: {
|
@@ -7749,14 +7785,8 @@
|
|
7749
7785
|
}
|
7750
7786
|
}
|
7751
7787
|
}, {
|
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", {
|
7788
|
+
default: () => [slots.prepend(slotProps.value)]
|
7789
|
+
})]), vue.createVNode("div", {
|
7760
7790
|
"class": "v-list-item__content",
|
7761
7791
|
"data-no-activator": ""
|
7762
7792
|
}, [hasTitle && vue.createVNode(VListItemTitle, {
|
@@ -7771,7 +7801,10 @@
|
|
7771
7801
|
default: () => [((_slots$subtitle = slots.subtitle) == null ? void 0 : _slots$subtitle.call(slots, {
|
7772
7802
|
subtitle: props.subtitle
|
7773
7803
|
})) ?? props.subtitle]
|
7774
|
-
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && vue.createVNode(
|
7804
|
+
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && vue.createVNode("div", {
|
7805
|
+
"key": "append",
|
7806
|
+
"class": "v-list-item__append"
|
7807
|
+
}, [slots.append && vue.createVNode(VDefaultsProvider, {
|
7775
7808
|
"key": "append",
|
7776
7809
|
"defaults": {
|
7777
7810
|
VAvatar: {
|
@@ -7787,14 +7820,16 @@
|
|
7787
7820
|
}
|
7788
7821
|
}
|
7789
7822
|
}, {
|
7790
|
-
default: () => [
|
7791
|
-
|
7792
|
-
|
7793
|
-
|
7794
|
-
|
7795
|
-
|
7796
|
-
|
7797
|
-
|
7823
|
+
default: () => [slots.append(slotProps.value)]
|
7824
|
+
}), props.appendIcon && vue.createVNode(VIcon, {
|
7825
|
+
"key": "append-icon",
|
7826
|
+
"density": props.density,
|
7827
|
+
"icon": props.appendIcon
|
7828
|
+
}, null), props.appendAvatar && vue.createVNode(VAvatar, {
|
7829
|
+
"key": "append-avatar",
|
7830
|
+
"density": props.density,
|
7831
|
+
"image": props.appendAvatar
|
7832
|
+
}, null)])]
|
7798
7833
|
}), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
7799
7834
|
});
|
7800
7835
|
return {};
|
@@ -8008,9 +8043,12 @@
|
|
8008
8043
|
|
8009
8044
|
// Types
|
8010
8045
|
|
8046
|
+
function isPrimitive(value) {
|
8047
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
8048
|
+
}
|
8011
8049
|
function transformItem(props, item) {
|
8012
8050
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
8013
|
-
const title =
|
8051
|
+
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
8014
8052
|
const value = getPropertyFromItem(item, props.itemValue, undefined);
|
8015
8053
|
const children = getPropertyFromItem(item, props.itemChildren);
|
8016
8054
|
const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps);
|
@@ -8636,17 +8674,12 @@
|
|
8636
8674
|
function useLocationStrategies(props, data) {
|
8637
8675
|
const contentStyles = vue.ref({});
|
8638
8676
|
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(() => {
|
8677
|
+
if (IN_BROWSER) {
|
8678
|
+
useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {
|
8679
|
+
vue.watch(() => props.locationStrategy, reset);
|
8680
|
+
vue.onScopeDispose(() => {
|
8681
|
+
updateLocation.value = undefined;
|
8682
|
+
});
|
8650
8683
|
if (typeof props.locationStrategy === 'function') {
|
8651
8684
|
var _props$locationStrate;
|
8652
8685
|
updateLocation.value = (_props$locationStrate = props.locationStrategy(data, props, contentStyles)) == null ? void 0 : _props$locationStrate.updateLocation;
|
@@ -8655,16 +8688,14 @@
|
|
8655
8688
|
updateLocation.value = (_locationStrategies$p = locationStrategies[props.locationStrategy](data, props, contentStyles)) == null ? void 0 : _locationStrategies$p.updateLocation;
|
8656
8689
|
}
|
8657
8690
|
});
|
8658
|
-
|
8659
|
-
|
8660
|
-
|
8661
|
-
|
8662
|
-
|
8663
|
-
|
8664
|
-
|
8665
|
-
|
8666
|
-
(_scope2 = scope) == null ? void 0 : _scope2.stop();
|
8667
|
-
});
|
8691
|
+
window.addEventListener('resize', onResize, {
|
8692
|
+
passive: true
|
8693
|
+
});
|
8694
|
+
vue.onScopeDispose(() => {
|
8695
|
+
window.removeEventListener('resize', onResize);
|
8696
|
+
updateLocation.value = undefined;
|
8697
|
+
});
|
8698
|
+
}
|
8668
8699
|
function onResize(e) {
|
8669
8700
|
var _updateLocation$value;
|
8670
8701
|
(_updateLocation$value = updateLocation.value) == null ? void 0 : _updateLocation$value.call(updateLocation, e);
|
@@ -8958,13 +8989,30 @@
|
|
8958
8989
|
maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),
|
8959
8990
|
maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))
|
8960
8991
|
});
|
8992
|
+
return {
|
8993
|
+
available,
|
8994
|
+
contentBox
|
8995
|
+
};
|
8961
8996
|
}
|
8962
|
-
vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation()
|
8963
|
-
|
8964
|
-
|
8965
|
-
|
8966
|
-
|
8967
|
-
|
8997
|
+
vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());
|
8998
|
+
vue.nextTick(() => {
|
8999
|
+
const result = updateLocation();
|
9000
|
+
|
9001
|
+
// TODO: overflowing content should only require a single updateLocation call
|
9002
|
+
// Icky hack to make sure the content is positioned consistently
|
9003
|
+
if (!result) return;
|
9004
|
+
const {
|
9005
|
+
available,
|
9006
|
+
contentBox
|
9007
|
+
} = result;
|
9008
|
+
if (contentBox.height > available.y) {
|
9009
|
+
requestAnimationFrame(() => {
|
9010
|
+
updateLocation();
|
9011
|
+
requestAnimationFrame(() => {
|
9012
|
+
updateLocation();
|
9013
|
+
});
|
9014
|
+
});
|
9015
|
+
}
|
8968
9016
|
});
|
8969
9017
|
return {
|
8970
9018
|
updateLocation
|
@@ -9032,10 +9080,10 @@
|
|
9032
9080
|
await vue.nextTick();
|
9033
9081
|
scope.run(() => {
|
9034
9082
|
if (typeof props.scrollStrategy === 'function') {
|
9035
|
-
props.scrollStrategy(data, props);
|
9083
|
+
props.scrollStrategy(data, props, scope);
|
9036
9084
|
} else {
|
9037
9085
|
var _scrollStrategies$pro;
|
9038
|
-
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props);
|
9086
|
+
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props, scope);
|
9039
9087
|
}
|
9040
9088
|
});
|
9041
9089
|
});
|
@@ -9081,9 +9129,10 @@
|
|
9081
9129
|
}
|
9082
9130
|
});
|
9083
9131
|
}
|
9084
|
-
function repositionScrollStrategy(data) {
|
9132
|
+
function repositionScrollStrategy(data, props, scope) {
|
9085
9133
|
let slow = false;
|
9086
9134
|
let raf = -1;
|
9135
|
+
let ric = -1;
|
9087
9136
|
function update(e) {
|
9088
9137
|
requestNewFrame(() => {
|
9089
9138
|
var _data$updateLocation$, _data$updateLocation;
|
@@ -9093,21 +9142,29 @@
|
|
9093
9142
|
slow = time / (1000 / 60) > 2;
|
9094
9143
|
});
|
9095
9144
|
}
|
9096
|
-
|
9097
|
-
|
9098
|
-
|
9099
|
-
|
9100
|
-
|
9101
|
-
|
9102
|
-
|
9103
|
-
|
9104
|
-
|
9145
|
+
ric = requestIdleCallback(() => {
|
9146
|
+
scope.run(() => {
|
9147
|
+
bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {
|
9148
|
+
if (slow) {
|
9149
|
+
// If the position calculation is slow,
|
9150
|
+
// defer updates until scrolling is finished.
|
9151
|
+
// Browsers usually fire one scroll event per frame so
|
9152
|
+
// we just wait until we've got two frames without an event
|
9153
|
+
cancelAnimationFrame(raf);
|
9154
|
+
raf = requestAnimationFrame(() => {
|
9155
|
+
raf = requestAnimationFrame(() => {
|
9156
|
+
update(e);
|
9157
|
+
});
|
9158
|
+
});
|
9159
|
+
} else {
|
9105
9160
|
update(e);
|
9106
|
-
}
|
9161
|
+
}
|
9107
9162
|
});
|
9108
|
-
}
|
9109
|
-
|
9110
|
-
|
9163
|
+
});
|
9164
|
+
});
|
9165
|
+
vue.onScopeDispose(() => {
|
9166
|
+
cancelIdleCallback(ric);
|
9167
|
+
cancelAnimationFrame(raf);
|
9111
9168
|
});
|
9112
9169
|
}
|
9113
9170
|
|
@@ -9750,6 +9807,11 @@
|
|
9750
9807
|
function onClickOutside() {
|
9751
9808
|
parent == null ? void 0 : parent.closeParents();
|
9752
9809
|
}
|
9810
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
9811
|
+
'aria-haspopup': 'menu',
|
9812
|
+
'aria-expanded': String(isActive.value),
|
9813
|
+
'aria-owns': id.value
|
9814
|
+
}, props.activatorProps));
|
9753
9815
|
useRender(() => {
|
9754
9816
|
const [overlayProps] = filterVOverlayProps(props);
|
9755
9817
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -9759,11 +9821,7 @@
|
|
9759
9821
|
"modelValue": isActive.value,
|
9760
9822
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
9761
9823
|
"absolute": true,
|
9762
|
-
"activatorProps":
|
9763
|
-
'aria-haspopup': 'menu',
|
9764
|
-
'aria-expanded': String(isActive.value),
|
9765
|
-
'aria-owns': id.value
|
9766
|
-
}, props.activatorProps),
|
9824
|
+
"activatorProps": activatorProps.value,
|
9767
9825
|
"onClick:outside": onClickOutside
|
9768
9826
|
}, scopeId), {
|
9769
9827
|
activator: slots.activator,
|
@@ -9877,8 +9935,10 @@
|
|
9877
9935
|
}
|
9878
9936
|
function onKeydown(e) {
|
9879
9937
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
9880
|
-
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
9938
|
+
if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
|
9881
9939
|
e.preventDefault();
|
9940
|
+
}
|
9941
|
+
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
9882
9942
|
menu.value = true;
|
9883
9943
|
}
|
9884
9944
|
if (['Escape', 'Tab'].includes(e.key)) {
|
@@ -9889,15 +9949,12 @@
|
|
9889
9949
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
9890
9950
|
} else if (e.key === 'ArrowUp') {
|
9891
9951
|
var _listRef$value2;
|
9892
|
-
e.preventDefault();
|
9893
9952
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
9894
9953
|
} else if (e.key === 'Home') {
|
9895
9954
|
var _listRef$value3;
|
9896
|
-
e.preventDefault();
|
9897
9955
|
(_listRef$value3 = listRef.value) == null ? void 0 : _listRef$value3.focus('first');
|
9898
9956
|
} else if (e.key === 'End') {
|
9899
9957
|
var _listRef$value4;
|
9900
|
-
e.preventDefault();
|
9901
9958
|
(_listRef$value4 = listRef.value) == null ? void 0 : _listRef$value4.focus('last');
|
9902
9959
|
}
|
9903
9960
|
}
|
@@ -10079,7 +10136,7 @@
|
|
10079
10136
|
const customFiltersLength = Object.keys((options == null ? void 0 : options.customKeyFilter) ?? {}).length;
|
10080
10137
|
if (!(items != null && items.length)) return array;
|
10081
10138
|
loop: for (let i = 0; i < items.length; i++) {
|
10082
|
-
const item = items[i]
|
10139
|
+
const item = items[i];
|
10083
10140
|
const customMatches = {};
|
10084
10141
|
const defaultMatches = {};
|
10085
10142
|
let match = -1;
|
@@ -10119,7 +10176,7 @@
|
|
10119
10176
|
}
|
10120
10177
|
return array;
|
10121
10178
|
}
|
10122
|
-
function useFilter(props, items, query) {
|
10179
|
+
function useFilter(props, items, query, options) {
|
10123
10180
|
const strQuery = vue.computed(() => typeof (query == null ? void 0 : query.value) !== 'string' && typeof (query == null ? void 0 : query.value) !== 'number' ? '' : String(query.value));
|
10124
10181
|
const filteredItems = vue.ref([]);
|
10125
10182
|
const filteredMatches = vue.ref(new Map());
|
@@ -10130,7 +10187,7 @@
|
|
10130
10187
|
const results = filterItems(transformedItems, strQuery.value, {
|
10131
10188
|
customKeyFilter: props.customKeyFilter,
|
10132
10189
|
default: props.customFilter,
|
10133
|
-
filterKeys: props.filterKeys,
|
10190
|
+
filterKeys: vue.unref(options == null ? void 0 : options.filterKeys) ?? props.filterKeys,
|
10134
10191
|
filterMode: props.filterMode,
|
10135
10192
|
noFilter: props.noFilter
|
10136
10193
|
});
|
@@ -10241,6 +10298,9 @@
|
|
10241
10298
|
}
|
10242
10299
|
function onKeydown(e) {
|
10243
10300
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
10301
|
+
if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
10302
|
+
e.preventDefault();
|
10303
|
+
}
|
10244
10304
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
10245
10305
|
menu.value = true;
|
10246
10306
|
}
|
@@ -10252,11 +10312,9 @@
|
|
10252
10312
|
}
|
10253
10313
|
if (e.key === 'ArrowDown') {
|
10254
10314
|
var _listRef$value;
|
10255
|
-
e.preventDefault();
|
10256
10315
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
10257
10316
|
} else if (e.key === 'ArrowUp') {
|
10258
10317
|
var _listRef$value2;
|
10259
|
-
e.preventDefault();
|
10260
10318
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
10261
10319
|
}
|
10262
10320
|
}
|
@@ -13585,7 +13643,9 @@
|
|
13585
13643
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
13586
13644
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
13587
13645
|
const length = selected.value.length;
|
13588
|
-
if (selectionIndex.value > -1
|
13646
|
+
if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
13647
|
+
e.preventDefault();
|
13648
|
+
}
|
13589
13649
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
13590
13650
|
menu.value = true;
|
13591
13651
|
}
|
@@ -13597,11 +13657,9 @@
|
|
13597
13657
|
}
|
13598
13658
|
if (e.key === 'ArrowDown') {
|
13599
13659
|
var _listRef$value;
|
13600
|
-
e.preventDefault();
|
13601
13660
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
13602
13661
|
} else if (e.key === 'ArrowUp') {
|
13603
13662
|
var _listRef$value2;
|
13604
|
-
e.preventDefault();
|
13605
13663
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
13606
13664
|
}
|
13607
13665
|
if (!props.multiple) return;
|
@@ -13896,6 +13954,10 @@
|
|
13896
13954
|
});
|
13897
13955
|
}
|
13898
13956
|
});
|
13957
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
13958
|
+
'aria-haspopup': 'dialog',
|
13959
|
+
'aria-expanded': String(isActive.value)
|
13960
|
+
}, props.activatorProps));
|
13899
13961
|
useRender(() => {
|
13900
13962
|
const [overlayProps] = filterVOverlayProps(props);
|
13901
13963
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -13909,10 +13971,7 @@
|
|
13909
13971
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
13910
13972
|
"aria-role": "dialog",
|
13911
13973
|
"aria-modal": "true",
|
13912
|
-
"activatorProps":
|
13913
|
-
'aria-haspopup': 'dialog',
|
13914
|
-
'aria-expanded': String(isActive.value)
|
13915
|
-
}, props.activatorProps)
|
13974
|
+
"activatorProps": activatorProps.value
|
13916
13975
|
}, scopeId), {
|
13917
13976
|
activator: slots.activator,
|
13918
13977
|
default: function () {
|
@@ -14261,12 +14320,15 @@
|
|
14261
14320
|
onFocus();
|
14262
14321
|
vue.nextTick(() => {
|
14263
14322
|
model.value = [];
|
14264
|
-
if (inputRef != null && inputRef.value) {
|
14265
|
-
inputRef.value.value = '';
|
14266
|
-
}
|
14267
14323
|
callEvent(props['onClick:clear'], e);
|
14268
14324
|
});
|
14269
14325
|
}
|
14326
|
+
vue.watch(model, newValue => {
|
14327
|
+
const hasModelReset = !Array.isArray(newValue) || !newValue.length;
|
14328
|
+
if (hasModelReset && inputRef.value) {
|
14329
|
+
inputRef.value.value = '';
|
14330
|
+
}
|
14331
|
+
});
|
14270
14332
|
useRender(() => {
|
14271
14333
|
const hasCounter = !!(slots.counter || props.counter);
|
14272
14334
|
const hasDetails = !!(hasCounter || slots.details);
|
@@ -15257,7 +15319,7 @@
|
|
15257
15319
|
window.removeEventListener('touchmove', onTouchmove);
|
15258
15320
|
window.removeEventListener('touchend', onTouchend);
|
15259
15321
|
});
|
15260
|
-
const isHorizontal = vue.computed(() => position.value
|
15322
|
+
const isHorizontal = vue.computed(() => ['left', 'right'].includes(position.value));
|
15261
15323
|
const {
|
15262
15324
|
addMovement,
|
15263
15325
|
endTouch,
|
@@ -15269,11 +15331,11 @@
|
|
15269
15331
|
const offset = vue.ref(0);
|
15270
15332
|
let start;
|
15271
15333
|
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);
|
15334
|
+
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
15335
|
}
|
15274
15336
|
function getProgress(pos) {
|
15275
15337
|
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();
|
15338
|
+
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
15339
|
return limit ? Math.max(0, Math.min(1, progress)) : progress;
|
15278
15340
|
}
|
15279
15341
|
function onTouchstart(e) {
|
@@ -15281,8 +15343,8 @@
|
|
15281
15343
|
const touchX = e.changedTouches[0].clientX;
|
15282
15344
|
const touchY = e.changedTouches[0].clientY;
|
15283
15345
|
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());
|
15346
|
+
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();
|
15347
|
+
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
15348
|
if (inTouchZone || inElement || isActive.value && isTemporary.value) {
|
15287
15349
|
maybeDragging = true;
|
15288
15350
|
start = [touchX, touchY];
|
@@ -15334,6 +15396,7 @@
|
|
15334
15396
|
isActive.value = velocity.direction === ({
|
15335
15397
|
left: 'right',
|
15336
15398
|
right: 'left',
|
15399
|
+
top: 'down',
|
15337
15400
|
bottom: 'up'
|
15338
15401
|
}[position.value] || oops());
|
15339
15402
|
} else {
|
@@ -15342,7 +15405,7 @@
|
|
15342
15405
|
}
|
15343
15406
|
const dragStyles = vue.computed(() => {
|
15344
15407
|
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(),
|
15408
|
+
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
15409
|
transition: 'none'
|
15347
15410
|
} : undefined;
|
15348
15411
|
});
|
@@ -15358,7 +15421,7 @@
|
|
15358
15421
|
|
15359
15422
|
// Types
|
15360
15423
|
|
15361
|
-
const locations = ['start', 'end', 'left', 'right', 'bottom'];
|
15424
|
+
const locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];
|
15362
15425
|
const VNavigationDrawer = defineComponent({
|
15363
15426
|
name: 'VNavigationDrawer',
|
15364
15427
|
props: {
|
@@ -15815,7 +15878,7 @@
|
|
15815
15878
|
disabled: !!props.disabled || props.length < 2,
|
15816
15879
|
color: isActive ? props.activeColor : props.color,
|
15817
15880
|
ariaCurrent: isActive,
|
15818
|
-
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel,
|
15881
|
+
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
|
15819
15882
|
onClick: e => setValue(e, item)
|
15820
15883
|
}
|
15821
15884
|
};
|
@@ -17994,6 +18057,9 @@
|
|
17994
18057
|
if (props.transition) return props.transition;
|
17995
18058
|
return isActive.value ? 'scale-transition' : 'fade-transition';
|
17996
18059
|
});
|
18060
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
18061
|
+
'aria-describedby': id.value
|
18062
|
+
}, props.activatorProps));
|
17997
18063
|
useRender(() => {
|
17998
18064
|
const [overlayProps] = filterVOverlayProps(props);
|
17999
18065
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -18010,9 +18076,7 @@
|
|
18010
18076
|
"persistent": true,
|
18011
18077
|
"role": "tooltip",
|
18012
18078
|
"eager": true,
|
18013
|
-
"activatorProps":
|
18014
|
-
'aria-describedby': id.value
|
18015
|
-
}, props.activatorProps),
|
18079
|
+
"activatorProps": activatorProps.value,
|
18016
18080
|
"_disableGlobalStack": true
|
18017
18081
|
}, scopeId), {
|
18018
18082
|
activator: slots.activator,
|
@@ -18961,7 +19025,7 @@
|
|
18961
19025
|
});
|
18962
19026
|
},
|
18963
19027
|
"item": item
|
18964
|
-
}, slots), isExpanded(item
|
19028
|
+
}, slots), isExpanded(item) && ((_slots$expandedRow = slots['expanded-row']) == null ? void 0 : _slots$expandedRow.call(slots, {
|
18965
19029
|
item,
|
18966
19030
|
columns: columns.value
|
18967
19031
|
}))]);
|
@@ -18999,7 +19063,7 @@
|
|
18999
19063
|
return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value);
|
19000
19064
|
});
|
19001
19065
|
const pageCount = vue.computed(() => {
|
19002
|
-
if (itemsPerPage.value === -1) return 1;
|
19066
|
+
if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
|
19003
19067
|
return Math.ceil(itemsLength.value / itemsPerPage.value);
|
19004
19068
|
});
|
19005
19069
|
vue.watchEffect(() => {
|
@@ -19054,6 +19118,30 @@
|
|
19054
19118
|
type: String,
|
19055
19119
|
default: '$last'
|
19056
19120
|
},
|
19121
|
+
itemsPerPageText: {
|
19122
|
+
type: String,
|
19123
|
+
default: '$vuetify.dataFooter.itemsPerPageText'
|
19124
|
+
},
|
19125
|
+
pageText: {
|
19126
|
+
type: String,
|
19127
|
+
default: '$vuetify.dataFooter.pageText'
|
19128
|
+
},
|
19129
|
+
firstPageLabel: {
|
19130
|
+
type: String,
|
19131
|
+
default: '$vuetify.dataFooter.firstPage'
|
19132
|
+
},
|
19133
|
+
prevPageLabel: {
|
19134
|
+
type: String,
|
19135
|
+
default: '$vuetify.dataFooter.prevPage'
|
19136
|
+
},
|
19137
|
+
nextPageLabel: {
|
19138
|
+
type: String,
|
19139
|
+
default: '$vuetify.dataFooter.nextPage'
|
19140
|
+
},
|
19141
|
+
lastPageLabel: {
|
19142
|
+
type: String,
|
19143
|
+
default: '$vuetify.dataFooter.lastPage'
|
19144
|
+
},
|
19057
19145
|
itemsPerPageOptions: {
|
19058
19146
|
type: Array,
|
19059
19147
|
default: () => [{
|
@@ -19070,7 +19158,7 @@
|
|
19070
19158
|
title: '100'
|
19071
19159
|
}, {
|
19072
19160
|
value: -1,
|
19073
|
-
title: '
|
19161
|
+
title: '$vuetify.dataFooter.itemsPerPageAll'
|
19074
19162
|
}]
|
19075
19163
|
},
|
19076
19164
|
showCurrentPage: Boolean
|
@@ -19079,6 +19167,9 @@
|
|
19079
19167
|
let {
|
19080
19168
|
slots
|
19081
19169
|
} = _ref;
|
19170
|
+
const {
|
19171
|
+
t
|
19172
|
+
} = useLocale();
|
19082
19173
|
const {
|
19083
19174
|
page,
|
19084
19175
|
pageCount,
|
@@ -19087,14 +19178,18 @@
|
|
19087
19178
|
itemsLength,
|
19088
19179
|
itemsPerPage
|
19089
19180
|
} = usePagination();
|
19181
|
+
const itemsPerPageOptions = vue.computed(() => props.itemsPerPageOptions.map(option => ({
|
19182
|
+
...option,
|
19183
|
+
title: t(option.title)
|
19184
|
+
})));
|
19090
19185
|
return () => {
|
19091
19186
|
var _slots$prepend;
|
19092
19187
|
return vue.createVNode("div", {
|
19093
19188
|
"class": "v-data-table-footer"
|
19094
19189
|
}, [(_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots), vue.createVNode("div", {
|
19095
19190
|
"class": "v-data-table-footer__items-per-page"
|
19096
|
-
}, [vue.createVNode("span", null, [
|
19097
|
-
"items":
|
19191
|
+
}, [vue.createVNode("span", null, [t(props.itemsPerPageText)]), vue.createVNode(VSelect, {
|
19192
|
+
"items": itemsPerPageOptions.value,
|
19098
19193
|
"modelValue": itemsPerPage.value,
|
19099
19194
|
"onUpdate:modelValue": v => itemsPerPage.value = Number(v),
|
19100
19195
|
"density": "compact",
|
@@ -19102,30 +19197,35 @@
|
|
19102
19197
|
"hide-details": true
|
19103
19198
|
}, null)]), vue.createVNode("div", {
|
19104
19199
|
"class": "v-data-table-footer__info"
|
19105
|
-
}, [vue.createVNode("div", null, [(
|
19200
|
+
}, [vue.createVNode("div", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), vue.createVNode("div", {
|
19106
19201
|
"class": "v-data-table-footer__pagination"
|
19107
19202
|
}, [vue.createVNode(VBtn, {
|
19108
19203
|
"icon": props.firstIcon,
|
19109
19204
|
"variant": "plain",
|
19110
19205
|
"onClick": () => page.value = 1,
|
19111
|
-
"disabled": page.value === 1
|
19206
|
+
"disabled": page.value === 1,
|
19207
|
+
"aria-label": t(props.firstPageLabel)
|
19112
19208
|
}, null), vue.createVNode(VBtn, {
|
19113
19209
|
"icon": props.prevIcon,
|
19114
19210
|
"variant": "plain",
|
19115
19211
|
"onClick": () => page.value = Math.max(1, page.value - 1),
|
19116
|
-
"disabled": page.value === 1
|
19117
|
-
|
19118
|
-
|
19119
|
-
|
19212
|
+
"disabled": page.value === 1,
|
19213
|
+
"aria-label": t(props.prevPageLabel)
|
19214
|
+
}, null), props.showCurrentPage && vue.createVNode("span", {
|
19215
|
+
"key": "page",
|
19216
|
+
"class": "v-data-table-footer__page"
|
19217
|
+
}, [page.value]), vue.createVNode(VBtn, {
|
19120
19218
|
"icon": props.nextIcon,
|
19121
19219
|
"variant": "plain",
|
19122
19220
|
"onClick": () => page.value = Math.min(pageCount.value, page.value + 1),
|
19123
|
-
"disabled": page.value === pageCount.value
|
19221
|
+
"disabled": page.value === pageCount.value,
|
19222
|
+
"aria-label": t(props.nextPageLabel)
|
19124
19223
|
}, null), vue.createVNode(VBtn, {
|
19125
19224
|
"icon": props.lastIcon,
|
19126
19225
|
"variant": "plain",
|
19127
19226
|
"onClick": () => page.value = pageCount.value,
|
19128
|
-
"disabled": page.value === pageCount.value
|
19227
|
+
"disabled": page.value === pageCount.value,
|
19228
|
+
"aria-label": t(props.lastPageLabel)
|
19129
19229
|
}, null)])]);
|
19130
19230
|
};
|
19131
19231
|
}
|
@@ -19170,18 +19270,14 @@
|
|
19170
19270
|
page,
|
19171
19271
|
itemsPerPage,
|
19172
19272
|
sortBy,
|
19173
|
-
|
19174
|
-
stopIndex,
|
19175
|
-
pageCount
|
19273
|
+
groupBy
|
19176
19274
|
} = _ref;
|
19177
19275
|
const vm = getCurrentInstance('VDataTable');
|
19178
19276
|
const options = vue.computed(() => ({
|
19179
19277
|
page: page.value,
|
19180
19278
|
itemsPerPage: itemsPerPage.value,
|
19181
|
-
|
19182
|
-
|
19183
|
-
pageCount: pageCount.value,
|
19184
|
-
sortBy: sortBy.value
|
19279
|
+
sortBy: sortBy.value,
|
19280
|
+
groupBy: groupBy.value
|
19185
19281
|
}));
|
19186
19282
|
|
19187
19283
|
// Reset page when sorting changes
|
@@ -19259,9 +19355,12 @@
|
|
19259
19355
|
const {
|
19260
19356
|
items
|
19261
19357
|
} = useDataTableItems(props, columns);
|
19358
|
+
const filterKeys = vue.computed(() => columns.value.map(c => 'columns.' + c.key));
|
19262
19359
|
const {
|
19263
19360
|
filteredItems
|
19264
|
-
} = useFilter(props, items, vue.toRef(props, 'search')
|
19361
|
+
} = useFilter(props, items, vue.toRef(props, 'search'), {
|
19362
|
+
filterKeys
|
19363
|
+
});
|
19265
19364
|
const {
|
19266
19365
|
sortBy
|
19267
19366
|
} = createSort(props);
|
@@ -19280,8 +19379,7 @@
|
|
19280
19379
|
page,
|
19281
19380
|
itemsPerPage,
|
19282
19381
|
startIndex,
|
19283
|
-
stopIndex
|
19284
|
-
pageCount
|
19382
|
+
stopIndex
|
19285
19383
|
} = createPagination(props, flatItems);
|
19286
19384
|
const {
|
19287
19385
|
paginatedItems
|
@@ -19293,9 +19391,7 @@
|
|
19293
19391
|
page,
|
19294
19392
|
itemsPerPage,
|
19295
19393
|
sortBy,
|
19296
|
-
|
19297
|
-
startIndex,
|
19298
|
-
stopIndex
|
19394
|
+
groupBy
|
19299
19395
|
});
|
19300
19396
|
provideDefaults({
|
19301
19397
|
VDataTableRows: {
|
@@ -19451,9 +19547,12 @@
|
|
19451
19547
|
const {
|
19452
19548
|
items
|
19453
19549
|
} = useDataTableItems(props, columns);
|
19550
|
+
const filterKeys = vue.computed(() => columns.value.map(c => 'columns.' + c.key));
|
19454
19551
|
const {
|
19455
19552
|
filteredItems
|
19456
|
-
} = useFilter(props, items, vue.toRef(props, 'search')
|
19553
|
+
} = useFilter(props, items, vue.toRef(props, 'search'), {
|
19554
|
+
filterKeys
|
19555
|
+
});
|
19457
19556
|
const {
|
19458
19557
|
sortBy
|
19459
19558
|
} = createSort(props);
|
@@ -19486,10 +19585,8 @@
|
|
19486
19585
|
useOptions({
|
19487
19586
|
sortBy,
|
19488
19587
|
page: vue.ref(1),
|
19489
|
-
|
19490
|
-
|
19491
|
-
pageCount: vue.ref(1),
|
19492
|
-
itemsPerPage: vue.ref(-1)
|
19588
|
+
itemsPerPage: vue.ref(-1),
|
19589
|
+
groupBy
|
19493
19590
|
});
|
19494
19591
|
provideDefaults({
|
19495
19592
|
VDataTableRows: {
|
@@ -19565,7 +19662,8 @@
|
|
19565
19662
|
...makeDataTableItemProps(),
|
19566
19663
|
...makeDataTableSelectProps(),
|
19567
19664
|
...makeDataTableSortProps(),
|
19568
|
-
...makeDataTablePaginateProps()
|
19665
|
+
...makeDataTablePaginateProps(),
|
19666
|
+
...makeDataTableGroupProps()
|
19569
19667
|
},
|
19570
19668
|
emits: {
|
19571
19669
|
'update:modelValue': value => true,
|
@@ -19574,6 +19672,7 @@
|
|
19574
19672
|
'update:sortBy': sortBy => true,
|
19575
19673
|
'update:options': options => true,
|
19576
19674
|
'update:expanded': options => true,
|
19675
|
+
'update:groupBy': value => true,
|
19577
19676
|
'click:row': (event, value) => true
|
19578
19677
|
},
|
19579
19678
|
setup(props, _ref) {
|
@@ -19581,10 +19680,12 @@
|
|
19581
19680
|
emit,
|
19582
19681
|
slots
|
19583
19682
|
} = _ref;
|
19683
|
+
const groupBy = useProxiedModel(props, 'groupBy');
|
19584
19684
|
createExpanded(props);
|
19585
19685
|
const {
|
19586
19686
|
columns
|
19587
19687
|
} = createHeaders(props, {
|
19688
|
+
groupBy,
|
19588
19689
|
showSelect: vue.toRef(props, 'showSelect'),
|
19589
19690
|
showExpand: vue.toRef(props, 'showExpand')
|
19590
19691
|
});
|
@@ -19595,21 +19696,22 @@
|
|
19595
19696
|
sortBy,
|
19596
19697
|
toggleSort
|
19597
19698
|
} = createSort(props);
|
19699
|
+
const {
|
19700
|
+
opened
|
19701
|
+
} = createGroupBy(props, groupBy, sortBy);
|
19598
19702
|
const {
|
19599
19703
|
page,
|
19600
|
-
itemsPerPage
|
19601
|
-
startIndex,
|
19602
|
-
stopIndex,
|
19603
|
-
pageCount
|
19704
|
+
itemsPerPage
|
19604
19705
|
} = createPagination(props, items);
|
19706
|
+
const {
|
19707
|
+
flatItems
|
19708
|
+
} = useGroupedItems(items, groupBy, opened);
|
19605
19709
|
createSelection(props, items);
|
19606
19710
|
useOptions({
|
19607
19711
|
page,
|
19608
19712
|
itemsPerPage,
|
19609
19713
|
sortBy,
|
19610
|
-
|
19611
|
-
stopIndex,
|
19612
|
-
pageCount
|
19714
|
+
groupBy
|
19613
19715
|
});
|
19614
19716
|
vue.provide('v-data-table', {
|
19615
19717
|
toggleSort,
|
@@ -19645,7 +19747,7 @@
|
|
19645
19747
|
"class": "v-data-table__tbody",
|
19646
19748
|
"role": "rowgroup"
|
19647
19749
|
}, [slots.body ? slots.body() : vue.createVNode(VDataTableRows, {
|
19648
|
-
"items":
|
19750
|
+
"items": flatItems.value,
|
19649
19751
|
"onClick:row": (event, value) => emit('click:row', event, value)
|
19650
19752
|
}, slots)]), (_slots$tbody = slots.tbody) == null ? void 0 : _slots$tbody.call(slots), (_slots$tfoot = slots.tfoot) == null ? void 0 : _slots$tfoot.call(slots)]);
|
19651
19753
|
}),
|
@@ -19936,6 +20038,7 @@
|
|
19936
20038
|
VDataTableRow: VDataTableRow,
|
19937
20039
|
VDataTableVirtual: VDataTableVirtual,
|
19938
20040
|
VDataTableServer: VDataTableServer,
|
20041
|
+
VDataTableFooter: VDataTableFooter,
|
19939
20042
|
VVirtualScroll: VVirtualScroll
|
19940
20043
|
});
|
19941
20044
|
|
@@ -20151,7 +20254,7 @@
|
|
20151
20254
|
locale
|
20152
20255
|
};
|
20153
20256
|
}
|
20154
|
-
const version$1 = "
|
20257
|
+
const version$1 = "4.0.0-dev-20230211.0";
|
20155
20258
|
createVuetify$1.version = version$1;
|
20156
20259
|
|
20157
20260
|
// Vue's inject() can only be used in setup
|
@@ -20164,7 +20267,7 @@
|
|
20164
20267
|
}
|
20165
20268
|
}
|
20166
20269
|
|
20167
|
-
const version = "
|
20270
|
+
const version = "4.0.0-dev-20230211.0";
|
20168
20271
|
|
20169
20272
|
const createVuetify = function () {
|
20170
20273
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|