@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.esm.js
CHANGED
@@ -1,10 +1,10 @@
|
|
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
|
*/
|
6
6
|
|
7
|
-
import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize, getCurrentInstance as getCurrentInstance$1, unref, provide, inject as inject$1,
|
7
|
+
import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize, getCurrentInstance as getCurrentInstance$1, unref, provide, inject as inject$1, onScopeDispose, effectScope, shallowRef, defineComponent as defineComponent$1, camelize, h, onDeactivated, onActivated, onMounted, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, Fragment, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, cloneVNode, warn, toHandlers, Teleport, createTextVNode, onBeforeUpdate, vModelText } from 'vue';
|
8
8
|
|
9
9
|
const IN_BROWSER = typeof window !== 'undefined';
|
10
10
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
@@ -258,8 +258,12 @@ function mergeDeep() {
|
|
258
258
|
}
|
259
259
|
function toKebabCase() {
|
260
260
|
let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
261
|
-
|
261
|
+
if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);
|
262
|
+
const kebab = str.replace(/[^a-z]/gi, '-').replace(/\B([A-Z])/g, '-$1').toLowerCase();
|
263
|
+
toKebabCase.cache.set(str, kebab);
|
264
|
+
return kebab;
|
262
265
|
}
|
266
|
+
toKebabCase.cache = new Map();
|
263
267
|
function findChildrenWithProvide(key, vnode) {
|
264
268
|
if (!vnode || typeof vnode !== 'object') return [];
|
265
269
|
if (Array.isArray(vnode)) {
|
@@ -886,7 +890,7 @@ function injectSelf(key) {
|
|
886
890
|
|
887
891
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
888
892
|
function createDefaults(options) {
|
889
|
-
return ref(options
|
893
|
+
return ref(options);
|
890
894
|
}
|
891
895
|
function useDefaults() {
|
892
896
|
const defaults = inject$1(DefaultsSymbol);
|
@@ -918,23 +922,30 @@ function provideDefaults(defaults, options) {
|
|
918
922
|
return newDefaults;
|
919
923
|
}
|
920
924
|
|
921
|
-
function useToggleScope(source,
|
925
|
+
function useToggleScope(source, fn) {
|
922
926
|
let scope;
|
927
|
+
function start() {
|
928
|
+
scope = effectScope();
|
929
|
+
scope.run(() => fn.length ? fn(() => {
|
930
|
+
var _scope;
|
931
|
+
(_scope = scope) == null ? void 0 : _scope.stop();
|
932
|
+
start();
|
933
|
+
}) : fn());
|
934
|
+
}
|
923
935
|
watch(source, active => {
|
924
936
|
if (active && !scope) {
|
925
|
-
|
926
|
-
scope.run(cb);
|
937
|
+
start();
|
927
938
|
} else if (!active) {
|
928
|
-
var
|
929
|
-
(
|
939
|
+
var _scope2;
|
940
|
+
(_scope2 = scope) == null ? void 0 : _scope2.stop();
|
930
941
|
scope = undefined;
|
931
942
|
}
|
932
943
|
}, {
|
933
944
|
immediate: true
|
934
945
|
});
|
935
946
|
onScopeDispose(() => {
|
936
|
-
var
|
937
|
-
(
|
947
|
+
var _scope3;
|
948
|
+
(_scope3 = scope) == null ? void 0 : _scope3.stop();
|
938
949
|
});
|
939
950
|
}
|
940
951
|
|
@@ -1003,33 +1014,36 @@ const defineComponent = function defineComponent(options) {
|
|
1003
1014
|
options.props = propsFactory(options.props, toKebabCase(options.name))();
|
1004
1015
|
options.props._as = String;
|
1005
1016
|
options.setup = function setup(props, ctx) {
|
1006
|
-
const vm = getCurrentInstance$1();
|
1007
1017
|
const defaults = useDefaults();
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1018
|
+
|
1019
|
+
// Skip props proxy if defaults are not provided
|
1020
|
+
if (!defaults.value) return options._setup(props, ctx);
|
1021
|
+
const vm = getCurrentInstance$1();
|
1022
|
+
const componentDefaults = computed(() => defaults.value[props._as ?? options.name]);
|
1023
|
+
const _props = new Proxy(props, {
|
1024
|
+
get(target, prop) {
|
1025
|
+
if (!propIsDefined(vm.vnode, prop)) {
|
1026
|
+
var _componentDefaults$va, _global;
|
1027
|
+
return ((_componentDefaults$va = componentDefaults.value) == null ? void 0 : _componentDefaults$va[prop]) ?? ((_global = defaults.value.global) == null ? void 0 : _global[prop]) ?? target[prop];
|
1028
|
+
}
|
1029
|
+
return Reflect.get(target, prop);
|
1030
|
+
}
|
1011
1031
|
});
|
1032
|
+
const _subcomponentDefaults = shallowRef();
|
1012
1033
|
watchEffect(() => {
|
1013
|
-
|
1014
|
-
|
1015
|
-
if (componentDefaults) {
|
1016
|
-
const subComponents = Object.entries(componentDefaults).filter(_ref => {
|
1034
|
+
if (componentDefaults.value) {
|
1035
|
+
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
1017
1036
|
let [key] = _ref;
|
1018
1037
|
return key.startsWith(key[0].toUpperCase());
|
1019
1038
|
});
|
1020
1039
|
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
1021
1040
|
}
|
1022
|
-
for (const prop of Object.keys(props)) {
|
1023
|
-
let newVal = props[prop];
|
1024
|
-
if (!propIsDefined(vm.vnode, prop)) {
|
1025
|
-
newVal = (componentDefaults == null ? void 0 : componentDefaults[prop]) ?? (globalDefaults == null ? void 0 : globalDefaults[prop]) ?? props[prop];
|
1026
|
-
}
|
1027
|
-
if (_props[prop] !== newVal) {
|
1028
|
-
_props[prop] = newVal;
|
1029
|
-
}
|
1030
|
-
}
|
1031
1041
|
});
|
1032
1042
|
const setupBindings = options._setup(_props, ctx);
|
1043
|
+
|
1044
|
+
// If subcomponent defaults are provided, override any
|
1045
|
+
// subcomponents provided by the component's setup function.
|
1046
|
+
// This uses injectSelf so must be done after the original setup to work.
|
1033
1047
|
useToggleScope(_subcomponentDefaults, () => {
|
1034
1048
|
var _injectSelf;
|
1035
1049
|
provideDefaults(mergeDeep(((_injectSelf = injectSelf(DefaultsSymbol)) == null ? void 0 : _injectSelf.value) ?? {}, _subcomponentDefaults.value));
|
@@ -1892,8 +1906,8 @@ var en = {
|
|
1892
1906
|
root: 'Pagination Navigation',
|
1893
1907
|
next: 'Next page',
|
1894
1908
|
previous: 'Previous page',
|
1895
|
-
page: '
|
1896
|
-
currentPage: 'Page {0}, Current
|
1909
|
+
page: 'Go to page {0}',
|
1910
|
+
currentPage: 'Page {0}, Current page',
|
1897
1911
|
first: 'First page',
|
1898
1912
|
last: 'Last page'
|
1899
1913
|
}
|
@@ -3368,18 +3382,21 @@ function useVariant(props) {
|
|
3368
3382
|
};
|
3369
3383
|
}
|
3370
3384
|
|
3385
|
+
// Types
|
3386
|
+
|
3387
|
+
const makeVBtnGroupProps = propsFactory({
|
3388
|
+
divided: Boolean,
|
3389
|
+
...makeBorderProps(),
|
3390
|
+
...makeDensityProps(),
|
3391
|
+
...makeElevationProps(),
|
3392
|
+
...makeRoundedProps(),
|
3393
|
+
...makeTagProps(),
|
3394
|
+
...makeThemeProps(),
|
3395
|
+
...makeVariantProps()
|
3396
|
+
}, 'v-btn-group');
|
3371
3397
|
const VBtnGroup = defineComponent({
|
3372
3398
|
name: 'VBtnGroup',
|
3373
|
-
props:
|
3374
|
-
divided: Boolean,
|
3375
|
-
...makeBorderProps(),
|
3376
|
-
...makeDensityProps(),
|
3377
|
-
...makeElevationProps(),
|
3378
|
-
...makeRoundedProps(),
|
3379
|
-
...makeTagProps(),
|
3380
|
-
...makeThemeProps(),
|
3381
|
-
...makeVariantProps()
|
3382
|
-
},
|
3399
|
+
props: makeVBtnGroupProps(),
|
3383
3400
|
setup(props, _ref) {
|
3384
3401
|
let {
|
3385
3402
|
slots
|
@@ -3417,6 +3434,9 @@ const VBtnGroup = defineComponent({
|
|
3417
3434
|
});
|
3418
3435
|
}
|
3419
3436
|
});
|
3437
|
+
function filterVBtnGroupProps(props) {
|
3438
|
+
return pick(props, Object.keys(VBtnGroup.props));
|
3439
|
+
}
|
3420
3440
|
|
3421
3441
|
// Composables
|
3422
3442
|
|
@@ -3624,7 +3644,10 @@ function getValues(items, ids) {
|
|
3624
3644
|
const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');
|
3625
3645
|
const VBtnToggle = genericComponent()({
|
3626
3646
|
name: 'VBtnToggle',
|
3627
|
-
props:
|
3647
|
+
props: {
|
3648
|
+
...makeVBtnGroupProps(),
|
3649
|
+
...makeGroupProps()
|
3650
|
+
},
|
3628
3651
|
emits: {
|
3629
3652
|
'update:modelValue': value => true
|
3630
3653
|
},
|
@@ -3641,9 +3664,10 @@ const VBtnToggle = genericComponent()({
|
|
3641
3664
|
} = useGroup(props, VBtnToggleSymbol);
|
3642
3665
|
useRender(() => {
|
3643
3666
|
var _slots$default;
|
3644
|
-
|
3667
|
+
const [btnGroupProps] = filterVBtnGroupProps(props);
|
3668
|
+
return createVNode(VBtnGroup, mergeProps({
|
3645
3669
|
"class": "v-btn-toggle"
|
3646
|
-
}, {
|
3670
|
+
}, btnGroupProps), {
|
3647
3671
|
default: () => [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
|
3648
3672
|
isSelected,
|
3649
3673
|
next,
|
@@ -4098,9 +4122,6 @@ function transform(el, value) {
|
|
4098
4122
|
el.style.transform = value;
|
4099
4123
|
el.style.webkitTransform = value;
|
4100
4124
|
}
|
4101
|
-
function opacity(el, value) {
|
4102
|
-
el.style.opacity = `calc(${value} * var(--v-theme-overlay-multiplier))`;
|
4103
|
-
}
|
4104
4125
|
function isTouchEvent(e) {
|
4105
4126
|
return e.constructor.name === 'TouchEvent';
|
4106
4127
|
}
|
@@ -4176,13 +4197,11 @@ const ripples = {
|
|
4176
4197
|
animation.classList.add('v-ripple__animation--enter');
|
4177
4198
|
animation.classList.add('v-ripple__animation--visible');
|
4178
4199
|
transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
4179
|
-
opacity(animation, 0);
|
4180
4200
|
animation.dataset.activated = String(performance.now());
|
4181
4201
|
setTimeout(() => {
|
4182
4202
|
animation.classList.remove('v-ripple__animation--enter');
|
4183
4203
|
animation.classList.add('v-ripple__animation--in');
|
4184
4204
|
transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
4185
|
-
opacity(animation, 0.08);
|
4186
4205
|
}, 0);
|
4187
4206
|
},
|
4188
4207
|
hide(el) {
|
@@ -4197,14 +4216,14 @@ const ripples = {
|
|
4197
4216
|
setTimeout(() => {
|
4198
4217
|
animation.classList.remove('v-ripple__animation--in');
|
4199
4218
|
animation.classList.add('v-ripple__animation--out');
|
4200
|
-
opacity(animation, 0);
|
4201
4219
|
setTimeout(() => {
|
4220
|
+
var _animation$parentNode;
|
4202
4221
|
const ripples = el.getElementsByClassName('v-ripple__animation');
|
4203
4222
|
if (ripples.length === 1 && el.dataset.previousPosition) {
|
4204
4223
|
el.style.position = el.dataset.previousPosition;
|
4205
4224
|
delete el.dataset.previousPosition;
|
4206
4225
|
}
|
4207
|
-
animation.parentNode
|
4226
|
+
if (((_animation$parentNode = animation.parentNode) == null ? void 0 : _animation$parentNode.parentNode) === el) el.removeChild(animation.parentNode);
|
4208
4227
|
}, 300);
|
4209
4228
|
}, delay);
|
4210
4229
|
}
|
@@ -4857,14 +4876,18 @@ const VBtn = defineComponent({
|
|
4857
4876
|
const isElevated = computed(() => {
|
4858
4877
|
return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
|
4859
4878
|
});
|
4879
|
+
const valueAttr = computed(() => {
|
4880
|
+
if (props.value === undefined) return undefined;
|
4881
|
+
return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
|
4882
|
+
});
|
4860
4883
|
useSelectLink(link, group == null ? void 0 : group.select);
|
4861
4884
|
useRender(() => {
|
4862
|
-
var _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
4885
|
+
var _link$isActive2, _link$isActive3, _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
4863
4886
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
4864
|
-
const hasColor = !group || isActive.value;
|
4865
4887
|
const hasPrepend = !!(props.prependIcon || slots.prepend);
|
4866
4888
|
const hasAppend = !!(props.appendIcon || slots.append);
|
4867
4889
|
const hasIcon = !!(props.icon && props.icon !== true);
|
4890
|
+
const hasColor = (group == null ? void 0 : group.isSelected.value) && (!link.isLink.value || ((_link$isActive2 = link.isActive) == null ? void 0 : _link$isActive2.value)) || !group || ((_link$isActive3 = link.isActive) == null ? void 0 : _link$isActive3.value);
|
4868
4891
|
return withDirectives(createVNode(Tag, {
|
4869
4892
|
"type": Tag === 'a' ? undefined : 'button',
|
4870
4893
|
"class": ['v-btn', group == null ? void 0 : group.selectedClass.value, {
|
@@ -4885,7 +4908,8 @@ const VBtn = defineComponent({
|
|
4885
4908
|
if (isDisabled.value) return;
|
4886
4909
|
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
4887
4910
|
group == null ? void 0 : group.toggle();
|
4888
|
-
}
|
4911
|
+
},
|
4912
|
+
"value": valueAttr.value
|
4889
4913
|
}, {
|
4890
4914
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createVNode(VDefaultsProvider, {
|
4891
4915
|
"key": "prepend",
|
@@ -5359,32 +5383,34 @@ const VField = genericComponent()({
|
|
5359
5383
|
if (hasLabel.value) {
|
5360
5384
|
const el = labelRef.value.$el;
|
5361
5385
|
const targetEl = floatingLabelRef.value.$el;
|
5362
|
-
|
5363
|
-
|
5364
|
-
|
5365
|
-
|
5366
|
-
|
5367
|
-
|
5368
|
-
|
5369
|
-
|
5370
|
-
|
5371
|
-
|
5372
|
-
|
5373
|
-
|
5374
|
-
|
5375
|
-
|
5376
|
-
|
5377
|
-
|
5378
|
-
|
5379
|
-
|
5380
|
-
|
5381
|
-
|
5382
|
-
|
5383
|
-
|
5384
|
-
|
5385
|
-
|
5386
|
-
|
5387
|
-
|
5386
|
+
requestAnimationFrame(() => {
|
5387
|
+
const rect = nullifyTransforms(el);
|
5388
|
+
const targetRect = targetEl.getBoundingClientRect();
|
5389
|
+
const x = targetRect.x - rect.x;
|
5390
|
+
const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2);
|
5391
|
+
const targetWidth = targetRect.width / 0.75;
|
5392
|
+
const width = Math.abs(targetWidth - rect.width) > 1 ? {
|
5393
|
+
maxWidth: convertToUnit(targetWidth)
|
5394
|
+
} : undefined;
|
5395
|
+
const style = getComputedStyle(el);
|
5396
|
+
const targetStyle = getComputedStyle(targetEl);
|
5397
|
+
const duration = parseFloat(style.transitionDuration) * 1000 || 150;
|
5398
|
+
const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'));
|
5399
|
+
const color = targetStyle.getPropertyValue('color');
|
5400
|
+
el.style.visibility = 'visible';
|
5401
|
+
targetEl.style.visibility = 'hidden';
|
5402
|
+
animate(el, {
|
5403
|
+
transform: `translate(${x}px, ${y}px) scale(${scale})`,
|
5404
|
+
color,
|
5405
|
+
...width
|
5406
|
+
}, {
|
5407
|
+
duration,
|
5408
|
+
easing: standardEasing,
|
5409
|
+
direction: val ? 'normal' : 'reverse'
|
5410
|
+
}).finished.then(() => {
|
5411
|
+
el.style.removeProperty('visibility');
|
5412
|
+
targetEl.style.removeProperty('visibility');
|
5413
|
+
});
|
5388
5414
|
});
|
5389
5415
|
}
|
5390
5416
|
}, {
|
@@ -5573,7 +5599,6 @@ const FormKey = Symbol.for('vuetify:form');
|
|
5573
5599
|
const makeFormProps = propsFactory({
|
5574
5600
|
disabled: Boolean,
|
5575
5601
|
fastFail: Boolean,
|
5576
|
-
lazyValidation: Boolean,
|
5577
5602
|
readonly: Boolean,
|
5578
5603
|
modelValue: {
|
5579
5604
|
type: Boolean,
|
@@ -6977,9 +7002,9 @@ const VDivider = defineComponent({
|
|
6977
7002
|
themeClasses
|
6978
7003
|
} = provideTheme(props);
|
6979
7004
|
const {
|
6980
|
-
|
6981
|
-
|
6982
|
-
} =
|
7005
|
+
textColorClasses,
|
7006
|
+
textColorStyles
|
7007
|
+
} = useTextColor(toRef(props, 'color'));
|
6983
7008
|
const dividerStyles = computed(() => {
|
6984
7009
|
const styles = {};
|
6985
7010
|
if (props.length) {
|
@@ -6995,8 +7020,8 @@ const VDivider = defineComponent({
|
|
6995
7020
|
'v-divider': true,
|
6996
7021
|
'v-divider--inset': props.inset,
|
6997
7022
|
'v-divider--vertical': props.vertical
|
6998
|
-
}, themeClasses.value,
|
6999
|
-
"style": [dividerStyles.value,
|
7023
|
+
}, themeClasses.value, textColorClasses.value],
|
7024
|
+
"style": [dividerStyles.value, textColorStyles.value],
|
7000
7025
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
7001
7026
|
"role": `${attrs.role || 'separator'}`
|
7002
7027
|
}, null));
|
@@ -7706,7 +7731,7 @@ const VListItem = genericComponent()({
|
|
7706
7731
|
}
|
7707
7732
|
}
|
7708
7733
|
useRender(() => {
|
7709
|
-
var _slots$
|
7734
|
+
var _slots$title, _slots$subtitle, _slots$default;
|
7710
7735
|
const Tag = isLink.value ? 'a' : props.tag;
|
7711
7736
|
const hasColor = !list || isSelected.value || isActive.value;
|
7712
7737
|
const hasTitle = slots.title || props.title;
|
@@ -7729,7 +7754,18 @@ const VListItem = genericComponent()({
|
|
7729
7754
|
"onClick": onClick,
|
7730
7755
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
7731
7756
|
}, {
|
7732
|
-
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createVNode(
|
7757
|
+
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createVNode("div", {
|
7758
|
+
"key": "prepend",
|
7759
|
+
"class": "v-list-item__prepend"
|
7760
|
+
}, [props.prependAvatar && createVNode(VAvatar, {
|
7761
|
+
"key": "prepend-avatar",
|
7762
|
+
"density": props.density,
|
7763
|
+
"image": props.prependAvatar
|
7764
|
+
}, null), props.prependIcon && createVNode(VIcon, {
|
7765
|
+
"key": "prepend-icon",
|
7766
|
+
"density": props.density,
|
7767
|
+
"icon": props.prependIcon
|
7768
|
+
}, null), slots.prepend && createVNode(VDefaultsProvider, {
|
7733
7769
|
"key": "prepend",
|
7734
7770
|
"defaults": {
|
7735
7771
|
VAvatar: {
|
@@ -7745,14 +7781,8 @@ const VListItem = genericComponent()({
|
|
7745
7781
|
}
|
7746
7782
|
}
|
7747
7783
|
}, {
|
7748
|
-
default: () => [
|
7749
|
-
|
7750
|
-
}, [props.prependAvatar && createVNode(VAvatar, {
|
7751
|
-
"key": "prepend-avatar"
|
7752
|
-
}, null), props.prependIcon && createVNode(VIcon, {
|
7753
|
-
"key": "prepend-icon"
|
7754
|
-
}, null), (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value)])]
|
7755
|
-
}), createVNode("div", {
|
7784
|
+
default: () => [slots.prepend(slotProps.value)]
|
7785
|
+
})]), createVNode("div", {
|
7756
7786
|
"class": "v-list-item__content",
|
7757
7787
|
"data-no-activator": ""
|
7758
7788
|
}, [hasTitle && createVNode(VListItemTitle, {
|
@@ -7767,7 +7797,10 @@ const VListItem = genericComponent()({
|
|
7767
7797
|
default: () => [((_slots$subtitle = slots.subtitle) == null ? void 0 : _slots$subtitle.call(slots, {
|
7768
7798
|
subtitle: props.subtitle
|
7769
7799
|
})) ?? props.subtitle]
|
7770
|
-
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && createVNode(
|
7800
|
+
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && createVNode("div", {
|
7801
|
+
"key": "append",
|
7802
|
+
"class": "v-list-item__append"
|
7803
|
+
}, [slots.append && createVNode(VDefaultsProvider, {
|
7771
7804
|
"key": "append",
|
7772
7805
|
"defaults": {
|
7773
7806
|
VAvatar: {
|
@@ -7783,14 +7816,16 @@ const VListItem = genericComponent()({
|
|
7783
7816
|
}
|
7784
7817
|
}
|
7785
7818
|
}, {
|
7786
|
-
default: () => [
|
7787
|
-
|
7788
|
-
|
7789
|
-
|
7790
|
-
|
7791
|
-
|
7792
|
-
|
7793
|
-
|
7819
|
+
default: () => [slots.append(slotProps.value)]
|
7820
|
+
}), props.appendIcon && createVNode(VIcon, {
|
7821
|
+
"key": "append-icon",
|
7822
|
+
"density": props.density,
|
7823
|
+
"icon": props.appendIcon
|
7824
|
+
}, null), props.appendAvatar && createVNode(VAvatar, {
|
7825
|
+
"key": "append-avatar",
|
7826
|
+
"density": props.density,
|
7827
|
+
"image": props.appendAvatar
|
7828
|
+
}, null)])]
|
7794
7829
|
}), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
7795
7830
|
});
|
7796
7831
|
return {};
|
@@ -8004,9 +8039,12 @@ function useItems(props) {
|
|
8004
8039
|
|
8005
8040
|
// Types
|
8006
8041
|
|
8042
|
+
function isPrimitive(value) {
|
8043
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
8044
|
+
}
|
8007
8045
|
function transformItem(props, item) {
|
8008
8046
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
8009
|
-
const title =
|
8047
|
+
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
8010
8048
|
const value = getPropertyFromItem(item, props.itemValue, undefined);
|
8011
8049
|
const children = getPropertyFromItem(item, props.itemChildren);
|
8012
8050
|
const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps);
|
@@ -8632,17 +8670,12 @@ const makeLocationStrategyProps = propsFactory({
|
|
8632
8670
|
function useLocationStrategies(props, data) {
|
8633
8671
|
const contentStyles = ref({});
|
8634
8672
|
const updateLocation = ref();
|
8635
|
-
|
8636
|
-
|
8637
|
-
|
8638
|
-
|
8639
|
-
|
8640
|
-
|
8641
|
-
scope = effectScope();
|
8642
|
-
if (!(props.locationStrategy === 'connected')) {
|
8643
|
-
await nextTick();
|
8644
|
-
}
|
8645
|
-
scope.run(() => {
|
8673
|
+
if (IN_BROWSER) {
|
8674
|
+
useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {
|
8675
|
+
watch(() => props.locationStrategy, reset);
|
8676
|
+
onScopeDispose(() => {
|
8677
|
+
updateLocation.value = undefined;
|
8678
|
+
});
|
8646
8679
|
if (typeof props.locationStrategy === 'function') {
|
8647
8680
|
var _props$locationStrate;
|
8648
8681
|
updateLocation.value = (_props$locationStrate = props.locationStrategy(data, props, contentStyles)) == null ? void 0 : _props$locationStrate.updateLocation;
|
@@ -8651,16 +8684,14 @@ function useLocationStrategies(props, data) {
|
|
8651
8684
|
updateLocation.value = (_locationStrategies$p = locationStrategies[props.locationStrategy](data, props, contentStyles)) == null ? void 0 : _locationStrategies$p.updateLocation;
|
8652
8685
|
}
|
8653
8686
|
});
|
8654
|
-
|
8655
|
-
|
8656
|
-
|
8657
|
-
|
8658
|
-
|
8659
|
-
|
8660
|
-
|
8661
|
-
|
8662
|
-
(_scope2 = scope) == null ? void 0 : _scope2.stop();
|
8663
|
-
});
|
8687
|
+
window.addEventListener('resize', onResize, {
|
8688
|
+
passive: true
|
8689
|
+
});
|
8690
|
+
onScopeDispose(() => {
|
8691
|
+
window.removeEventListener('resize', onResize);
|
8692
|
+
updateLocation.value = undefined;
|
8693
|
+
});
|
8694
|
+
}
|
8664
8695
|
function onResize(e) {
|
8665
8696
|
var _updateLocation$value;
|
8666
8697
|
(_updateLocation$value = updateLocation.value) == null ? void 0 : _updateLocation$value.call(updateLocation, e);
|
@@ -8954,13 +8985,30 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
8954
8985
|
maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),
|
8955
8986
|
maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))
|
8956
8987
|
});
|
8988
|
+
return {
|
8989
|
+
available,
|
8990
|
+
contentBox
|
8991
|
+
};
|
8957
8992
|
}
|
8958
|
-
watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation()
|
8959
|
-
|
8960
|
-
|
8961
|
-
|
8962
|
-
|
8963
|
-
|
8993
|
+
watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());
|
8994
|
+
nextTick(() => {
|
8995
|
+
const result = updateLocation();
|
8996
|
+
|
8997
|
+
// TODO: overflowing content should only require a single updateLocation call
|
8998
|
+
// Icky hack to make sure the content is positioned consistently
|
8999
|
+
if (!result) return;
|
9000
|
+
const {
|
9001
|
+
available,
|
9002
|
+
contentBox
|
9003
|
+
} = result;
|
9004
|
+
if (contentBox.height > available.y) {
|
9005
|
+
requestAnimationFrame(() => {
|
9006
|
+
updateLocation();
|
9007
|
+
requestAnimationFrame(() => {
|
9008
|
+
updateLocation();
|
9009
|
+
});
|
9010
|
+
});
|
9011
|
+
}
|
8964
9012
|
});
|
8965
9013
|
return {
|
8966
9014
|
updateLocation
|
@@ -9028,10 +9076,10 @@ function useScrollStrategies(props, data) {
|
|
9028
9076
|
await nextTick();
|
9029
9077
|
scope.run(() => {
|
9030
9078
|
if (typeof props.scrollStrategy === 'function') {
|
9031
|
-
props.scrollStrategy(data, props);
|
9079
|
+
props.scrollStrategy(data, props, scope);
|
9032
9080
|
} else {
|
9033
9081
|
var _scrollStrategies$pro;
|
9034
|
-
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props);
|
9082
|
+
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props, scope);
|
9035
9083
|
}
|
9036
9084
|
});
|
9037
9085
|
});
|
@@ -9077,9 +9125,10 @@ function blockScrollStrategy(data, props) {
|
|
9077
9125
|
}
|
9078
9126
|
});
|
9079
9127
|
}
|
9080
|
-
function repositionScrollStrategy(data) {
|
9128
|
+
function repositionScrollStrategy(data, props, scope) {
|
9081
9129
|
let slow = false;
|
9082
9130
|
let raf = -1;
|
9131
|
+
let ric = -1;
|
9083
9132
|
function update(e) {
|
9084
9133
|
requestNewFrame(() => {
|
9085
9134
|
var _data$updateLocation$, _data$updateLocation;
|
@@ -9089,21 +9138,29 @@ function repositionScrollStrategy(data) {
|
|
9089
9138
|
slow = time / (1000 / 60) > 2;
|
9090
9139
|
});
|
9091
9140
|
}
|
9092
|
-
|
9093
|
-
|
9094
|
-
|
9095
|
-
|
9096
|
-
|
9097
|
-
|
9098
|
-
|
9099
|
-
|
9100
|
-
|
9141
|
+
ric = requestIdleCallback(() => {
|
9142
|
+
scope.run(() => {
|
9143
|
+
bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {
|
9144
|
+
if (slow) {
|
9145
|
+
// If the position calculation is slow,
|
9146
|
+
// defer updates until scrolling is finished.
|
9147
|
+
// Browsers usually fire one scroll event per frame so
|
9148
|
+
// we just wait until we've got two frames without an event
|
9149
|
+
cancelAnimationFrame(raf);
|
9150
|
+
raf = requestAnimationFrame(() => {
|
9151
|
+
raf = requestAnimationFrame(() => {
|
9152
|
+
update(e);
|
9153
|
+
});
|
9154
|
+
});
|
9155
|
+
} else {
|
9101
9156
|
update(e);
|
9102
|
-
}
|
9157
|
+
}
|
9103
9158
|
});
|
9104
|
-
}
|
9105
|
-
|
9106
|
-
|
9159
|
+
});
|
9160
|
+
});
|
9161
|
+
onScopeDispose(() => {
|
9162
|
+
cancelIdleCallback(ric);
|
9163
|
+
cancelAnimationFrame(raf);
|
9107
9164
|
});
|
9108
9165
|
}
|
9109
9166
|
|
@@ -9746,6 +9803,11 @@ const VMenu = genericComponent()({
|
|
9746
9803
|
function onClickOutside() {
|
9747
9804
|
parent == null ? void 0 : parent.closeParents();
|
9748
9805
|
}
|
9806
|
+
const activatorProps = computed(() => mergeProps({
|
9807
|
+
'aria-haspopup': 'menu',
|
9808
|
+
'aria-expanded': String(isActive.value),
|
9809
|
+
'aria-owns': id.value
|
9810
|
+
}, props.activatorProps));
|
9749
9811
|
useRender(() => {
|
9750
9812
|
const [overlayProps] = filterVOverlayProps(props);
|
9751
9813
|
return createVNode(VOverlay, mergeProps({
|
@@ -9755,11 +9817,7 @@ const VMenu = genericComponent()({
|
|
9755
9817
|
"modelValue": isActive.value,
|
9756
9818
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
9757
9819
|
"absolute": true,
|
9758
|
-
"activatorProps":
|
9759
|
-
'aria-haspopup': 'menu',
|
9760
|
-
'aria-expanded': String(isActive.value),
|
9761
|
-
'aria-owns': id.value
|
9762
|
-
}, props.activatorProps),
|
9820
|
+
"activatorProps": activatorProps.value,
|
9763
9821
|
"onClick:outside": onClickOutside
|
9764
9822
|
}, scopeId), {
|
9765
9823
|
activator: slots.activator,
|
@@ -9873,8 +9931,10 @@ const VSelect = genericComponent()({
|
|
9873
9931
|
}
|
9874
9932
|
function onKeydown(e) {
|
9875
9933
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
9876
|
-
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
9934
|
+
if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
|
9877
9935
|
e.preventDefault();
|
9936
|
+
}
|
9937
|
+
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
9878
9938
|
menu.value = true;
|
9879
9939
|
}
|
9880
9940
|
if (['Escape', 'Tab'].includes(e.key)) {
|
@@ -9885,15 +9945,12 @@ const VSelect = genericComponent()({
|
|
9885
9945
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
9886
9946
|
} else if (e.key === 'ArrowUp') {
|
9887
9947
|
var _listRef$value2;
|
9888
|
-
e.preventDefault();
|
9889
9948
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
9890
9949
|
} else if (e.key === 'Home') {
|
9891
9950
|
var _listRef$value3;
|
9892
|
-
e.preventDefault();
|
9893
9951
|
(_listRef$value3 = listRef.value) == null ? void 0 : _listRef$value3.focus('first');
|
9894
9952
|
} else if (e.key === 'End') {
|
9895
9953
|
var _listRef$value4;
|
9896
|
-
e.preventDefault();
|
9897
9954
|
(_listRef$value4 = listRef.value) == null ? void 0 : _listRef$value4.focus('last');
|
9898
9955
|
}
|
9899
9956
|
}
|
@@ -10075,7 +10132,7 @@ function filterItems(items, query, options) {
|
|
10075
10132
|
const customFiltersLength = Object.keys((options == null ? void 0 : options.customKeyFilter) ?? {}).length;
|
10076
10133
|
if (!(items != null && items.length)) return array;
|
10077
10134
|
loop: for (let i = 0; i < items.length; i++) {
|
10078
|
-
const item = items[i]
|
10135
|
+
const item = items[i];
|
10079
10136
|
const customMatches = {};
|
10080
10137
|
const defaultMatches = {};
|
10081
10138
|
let match = -1;
|
@@ -10115,7 +10172,7 @@ function filterItems(items, query, options) {
|
|
10115
10172
|
}
|
10116
10173
|
return array;
|
10117
10174
|
}
|
10118
|
-
function useFilter(props, items, query) {
|
10175
|
+
function useFilter(props, items, query, options) {
|
10119
10176
|
const strQuery = computed(() => typeof (query == null ? void 0 : query.value) !== 'string' && typeof (query == null ? void 0 : query.value) !== 'number' ? '' : String(query.value));
|
10120
10177
|
const filteredItems = ref([]);
|
10121
10178
|
const filteredMatches = ref(new Map());
|
@@ -10126,7 +10183,7 @@ function useFilter(props, items, query) {
|
|
10126
10183
|
const results = filterItems(transformedItems, strQuery.value, {
|
10127
10184
|
customKeyFilter: props.customKeyFilter,
|
10128
10185
|
default: props.customFilter,
|
10129
|
-
filterKeys: props.filterKeys,
|
10186
|
+
filterKeys: unref(options == null ? void 0 : options.filterKeys) ?? props.filterKeys,
|
10130
10187
|
filterMode: props.filterMode,
|
10131
10188
|
noFilter: props.noFilter
|
10132
10189
|
});
|
@@ -10237,6 +10294,9 @@ const VAutocomplete = genericComponent()({
|
|
10237
10294
|
}
|
10238
10295
|
function onKeydown(e) {
|
10239
10296
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
10297
|
+
if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
10298
|
+
e.preventDefault();
|
10299
|
+
}
|
10240
10300
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
10241
10301
|
menu.value = true;
|
10242
10302
|
}
|
@@ -10248,11 +10308,9 @@ const VAutocomplete = genericComponent()({
|
|
10248
10308
|
}
|
10249
10309
|
if (e.key === 'ArrowDown') {
|
10250
10310
|
var _listRef$value;
|
10251
|
-
e.preventDefault();
|
10252
10311
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
10253
10312
|
} else if (e.key === 'ArrowUp') {
|
10254
10313
|
var _listRef$value2;
|
10255
|
-
e.preventDefault();
|
10256
10314
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
10257
10315
|
}
|
10258
10316
|
}
|
@@ -13581,7 +13639,9 @@ const VCombobox = genericComponent()({
|
|
13581
13639
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
13582
13640
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
13583
13641
|
const length = selected.value.length;
|
13584
|
-
if (selectionIndex.value > -1
|
13642
|
+
if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
13643
|
+
e.preventDefault();
|
13644
|
+
}
|
13585
13645
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
13586
13646
|
menu.value = true;
|
13587
13647
|
}
|
@@ -13593,11 +13653,9 @@ const VCombobox = genericComponent()({
|
|
13593
13653
|
}
|
13594
13654
|
if (e.key === 'ArrowDown') {
|
13595
13655
|
var _listRef$value;
|
13596
|
-
e.preventDefault();
|
13597
13656
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
13598
13657
|
} else if (e.key === 'ArrowUp') {
|
13599
13658
|
var _listRef$value2;
|
13600
|
-
e.preventDefault();
|
13601
13659
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
13602
13660
|
}
|
13603
13661
|
if (!props.multiple) return;
|
@@ -13892,6 +13950,10 @@ const VDialog = genericComponent()({
|
|
13892
13950
|
});
|
13893
13951
|
}
|
13894
13952
|
});
|
13953
|
+
const activatorProps = computed(() => mergeProps({
|
13954
|
+
'aria-haspopup': 'dialog',
|
13955
|
+
'aria-expanded': String(isActive.value)
|
13956
|
+
}, props.activatorProps));
|
13895
13957
|
useRender(() => {
|
13896
13958
|
const [overlayProps] = filterVOverlayProps(props);
|
13897
13959
|
return createVNode(VOverlay, mergeProps({
|
@@ -13905,10 +13967,7 @@ const VDialog = genericComponent()({
|
|
13905
13967
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
13906
13968
|
"aria-role": "dialog",
|
13907
13969
|
"aria-modal": "true",
|
13908
|
-
"activatorProps":
|
13909
|
-
'aria-haspopup': 'dialog',
|
13910
|
-
'aria-expanded': String(isActive.value)
|
13911
|
-
}, props.activatorProps)
|
13970
|
+
"activatorProps": activatorProps.value
|
13912
13971
|
}, scopeId), {
|
13913
13972
|
activator: slots.activator,
|
13914
13973
|
default: function () {
|
@@ -14257,12 +14316,15 @@ const VFileInput = defineComponent({
|
|
14257
14316
|
onFocus();
|
14258
14317
|
nextTick(() => {
|
14259
14318
|
model.value = [];
|
14260
|
-
if (inputRef != null && inputRef.value) {
|
14261
|
-
inputRef.value.value = '';
|
14262
|
-
}
|
14263
14319
|
callEvent(props['onClick:clear'], e);
|
14264
14320
|
});
|
14265
14321
|
}
|
14322
|
+
watch(model, newValue => {
|
14323
|
+
const hasModelReset = !Array.isArray(newValue) || !newValue.length;
|
14324
|
+
if (hasModelReset && inputRef.value) {
|
14325
|
+
inputRef.value.value = '';
|
14326
|
+
}
|
14327
|
+
});
|
14266
14328
|
useRender(() => {
|
14267
14329
|
const hasCounter = !!(slots.counter || props.counter);
|
14268
14330
|
const hasDetails = !!(hasCounter || slots.details);
|
@@ -15253,7 +15315,7 @@ function useTouch(_ref) {
|
|
15253
15315
|
window.removeEventListener('touchmove', onTouchmove);
|
15254
15316
|
window.removeEventListener('touchend', onTouchend);
|
15255
15317
|
});
|
15256
|
-
const isHorizontal = computed(() => position.value
|
15318
|
+
const isHorizontal = computed(() => ['left', 'right'].includes(position.value));
|
15257
15319
|
const {
|
15258
15320
|
addMovement,
|
15259
15321
|
endTouch,
|
@@ -15265,11 +15327,11 @@ function useTouch(_ref) {
|
|
15265
15327
|
const offset = ref(0);
|
15266
15328
|
let start;
|
15267
15329
|
function getOffset(pos, active) {
|
15268
|
-
return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
|
15330
|
+
return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'top' ? pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
|
15269
15331
|
}
|
15270
15332
|
function getProgress(pos) {
|
15271
15333
|
let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
15272
|
-
const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();
|
15334
|
+
const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'top' ? (pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();
|
15273
15335
|
return limit ? Math.max(0, Math.min(1, progress)) : progress;
|
15274
15336
|
}
|
15275
15337
|
function onTouchstart(e) {
|
@@ -15277,8 +15339,8 @@ function useTouch(_ref) {
|
|
15277
15339
|
const touchX = e.changedTouches[0].clientX;
|
15278
15340
|
const touchY = e.changedTouches[0].clientY;
|
15279
15341
|
const touchZone = 25;
|
15280
|
-
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
15281
|
-
const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());
|
15342
|
+
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();
|
15343
|
+
const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'top' ? touchY < width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());
|
15282
15344
|
if (inTouchZone || inElement || isActive.value && isTemporary.value) {
|
15283
15345
|
maybeDragging = true;
|
15284
15346
|
start = [touchX, touchY];
|
@@ -15330,6 +15392,7 @@ function useTouch(_ref) {
|
|
15330
15392
|
isActive.value = velocity.direction === ({
|
15331
15393
|
left: 'right',
|
15332
15394
|
right: 'left',
|
15395
|
+
top: 'down',
|
15333
15396
|
bottom: 'up'
|
15334
15397
|
}[position.value] || oops());
|
15335
15398
|
} else {
|
@@ -15338,7 +15401,7 @@ function useTouch(_ref) {
|
|
15338
15401
|
}
|
15339
15402
|
const dragStyles = computed(() => {
|
15340
15403
|
return isDragging.value ? {
|
15341
|
-
transform: position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))` : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))` : oops(),
|
15404
|
+
transform: position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))` : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))` : oops(),
|
15342
15405
|
transition: 'none'
|
15343
15406
|
} : undefined;
|
15344
15407
|
});
|
@@ -15354,7 +15417,7 @@ function oops() {
|
|
15354
15417
|
|
15355
15418
|
// Types
|
15356
15419
|
|
15357
|
-
const locations = ['start', 'end', 'left', 'right', 'bottom'];
|
15420
|
+
const locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];
|
15358
15421
|
const VNavigationDrawer = defineComponent({
|
15359
15422
|
name: 'VNavigationDrawer',
|
15360
15423
|
props: {
|
@@ -15811,7 +15874,7 @@ const VPagination = defineComponent({
|
|
15811
15874
|
disabled: !!props.disabled || props.length < 2,
|
15812
15875
|
color: isActive ? props.activeColor : props.color,
|
15813
15876
|
ariaCurrent: isActive,
|
15814
|
-
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel,
|
15877
|
+
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
|
15815
15878
|
onClick: e => setValue(e, item)
|
15816
15879
|
}
|
15817
15880
|
};
|
@@ -17990,6 +18053,9 @@ const VTooltip = genericComponent()({
|
|
17990
18053
|
if (props.transition) return props.transition;
|
17991
18054
|
return isActive.value ? 'scale-transition' : 'fade-transition';
|
17992
18055
|
});
|
18056
|
+
const activatorProps = computed(() => mergeProps({
|
18057
|
+
'aria-describedby': id.value
|
18058
|
+
}, props.activatorProps));
|
17993
18059
|
useRender(() => {
|
17994
18060
|
const [overlayProps] = filterVOverlayProps(props);
|
17995
18061
|
return createVNode(VOverlay, mergeProps({
|
@@ -18006,9 +18072,7 @@ const VTooltip = genericComponent()({
|
|
18006
18072
|
"persistent": true,
|
18007
18073
|
"role": "tooltip",
|
18008
18074
|
"eager": true,
|
18009
|
-
"activatorProps":
|
18010
|
-
'aria-describedby': id.value
|
18011
|
-
}, props.activatorProps),
|
18075
|
+
"activatorProps": activatorProps.value,
|
18012
18076
|
"_disableGlobalStack": true
|
18013
18077
|
}, scopeId), {
|
18014
18078
|
activator: slots.activator,
|
@@ -18957,7 +19021,7 @@ const VDataTableRows = defineComponent({
|
|
18957
19021
|
});
|
18958
19022
|
},
|
18959
19023
|
"item": item
|
18960
|
-
}, slots), isExpanded(item
|
19024
|
+
}, slots), isExpanded(item) && ((_slots$expandedRow = slots['expanded-row']) == null ? void 0 : _slots$expandedRow.call(slots, {
|
18961
19025
|
item,
|
18962
19026
|
columns: columns.value
|
18963
19027
|
}))]);
|
@@ -18995,7 +19059,7 @@ function createPagination(props, items) {
|
|
18995
19059
|
return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value);
|
18996
19060
|
});
|
18997
19061
|
const pageCount = computed(() => {
|
18998
|
-
if (itemsPerPage.value === -1) return 1;
|
19062
|
+
if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
|
18999
19063
|
return Math.ceil(itemsLength.value / itemsPerPage.value);
|
19000
19064
|
});
|
19001
19065
|
watchEffect(() => {
|
@@ -19050,6 +19114,30 @@ const VDataTableFooter = defineComponent({
|
|
19050
19114
|
type: String,
|
19051
19115
|
default: '$last'
|
19052
19116
|
},
|
19117
|
+
itemsPerPageText: {
|
19118
|
+
type: String,
|
19119
|
+
default: '$vuetify.dataFooter.itemsPerPageText'
|
19120
|
+
},
|
19121
|
+
pageText: {
|
19122
|
+
type: String,
|
19123
|
+
default: '$vuetify.dataFooter.pageText'
|
19124
|
+
},
|
19125
|
+
firstPageLabel: {
|
19126
|
+
type: String,
|
19127
|
+
default: '$vuetify.dataFooter.firstPage'
|
19128
|
+
},
|
19129
|
+
prevPageLabel: {
|
19130
|
+
type: String,
|
19131
|
+
default: '$vuetify.dataFooter.prevPage'
|
19132
|
+
},
|
19133
|
+
nextPageLabel: {
|
19134
|
+
type: String,
|
19135
|
+
default: '$vuetify.dataFooter.nextPage'
|
19136
|
+
},
|
19137
|
+
lastPageLabel: {
|
19138
|
+
type: String,
|
19139
|
+
default: '$vuetify.dataFooter.lastPage'
|
19140
|
+
},
|
19053
19141
|
itemsPerPageOptions: {
|
19054
19142
|
type: Array,
|
19055
19143
|
default: () => [{
|
@@ -19066,7 +19154,7 @@ const VDataTableFooter = defineComponent({
|
|
19066
19154
|
title: '100'
|
19067
19155
|
}, {
|
19068
19156
|
value: -1,
|
19069
|
-
title: '
|
19157
|
+
title: '$vuetify.dataFooter.itemsPerPageAll'
|
19070
19158
|
}]
|
19071
19159
|
},
|
19072
19160
|
showCurrentPage: Boolean
|
@@ -19075,6 +19163,9 @@ const VDataTableFooter = defineComponent({
|
|
19075
19163
|
let {
|
19076
19164
|
slots
|
19077
19165
|
} = _ref;
|
19166
|
+
const {
|
19167
|
+
t
|
19168
|
+
} = useLocale();
|
19078
19169
|
const {
|
19079
19170
|
page,
|
19080
19171
|
pageCount,
|
@@ -19083,14 +19174,18 @@ const VDataTableFooter = defineComponent({
|
|
19083
19174
|
itemsLength,
|
19084
19175
|
itemsPerPage
|
19085
19176
|
} = usePagination();
|
19177
|
+
const itemsPerPageOptions = computed(() => props.itemsPerPageOptions.map(option => ({
|
19178
|
+
...option,
|
19179
|
+
title: t(option.title)
|
19180
|
+
})));
|
19086
19181
|
return () => {
|
19087
19182
|
var _slots$prepend;
|
19088
19183
|
return createVNode("div", {
|
19089
19184
|
"class": "v-data-table-footer"
|
19090
19185
|
}, [(_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots), createVNode("div", {
|
19091
19186
|
"class": "v-data-table-footer__items-per-page"
|
19092
|
-
}, [createVNode("span", null, [
|
19093
|
-
"items":
|
19187
|
+
}, [createVNode("span", null, [t(props.itemsPerPageText)]), createVNode(VSelect, {
|
19188
|
+
"items": itemsPerPageOptions.value,
|
19094
19189
|
"modelValue": itemsPerPage.value,
|
19095
19190
|
"onUpdate:modelValue": v => itemsPerPage.value = Number(v),
|
19096
19191
|
"density": "compact",
|
@@ -19098,30 +19193,35 @@ const VDataTableFooter = defineComponent({
|
|
19098
19193
|
"hide-details": true
|
19099
19194
|
}, null)]), createVNode("div", {
|
19100
19195
|
"class": "v-data-table-footer__info"
|
19101
|
-
}, [createVNode("div", null, [(
|
19196
|
+
}, [createVNode("div", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), createVNode("div", {
|
19102
19197
|
"class": "v-data-table-footer__pagination"
|
19103
19198
|
}, [createVNode(VBtn, {
|
19104
19199
|
"icon": props.firstIcon,
|
19105
19200
|
"variant": "plain",
|
19106
19201
|
"onClick": () => page.value = 1,
|
19107
|
-
"disabled": page.value === 1
|
19202
|
+
"disabled": page.value === 1,
|
19203
|
+
"aria-label": t(props.firstPageLabel)
|
19108
19204
|
}, null), createVNode(VBtn, {
|
19109
19205
|
"icon": props.prevIcon,
|
19110
19206
|
"variant": "plain",
|
19111
19207
|
"onClick": () => page.value = Math.max(1, page.value - 1),
|
19112
|
-
"disabled": page.value === 1
|
19113
|
-
|
19114
|
-
|
19115
|
-
|
19208
|
+
"disabled": page.value === 1,
|
19209
|
+
"aria-label": t(props.prevPageLabel)
|
19210
|
+
}, null), props.showCurrentPage && createVNode("span", {
|
19211
|
+
"key": "page",
|
19212
|
+
"class": "v-data-table-footer__page"
|
19213
|
+
}, [page.value]), createVNode(VBtn, {
|
19116
19214
|
"icon": props.nextIcon,
|
19117
19215
|
"variant": "plain",
|
19118
19216
|
"onClick": () => page.value = Math.min(pageCount.value, page.value + 1),
|
19119
|
-
"disabled": page.value === pageCount.value
|
19217
|
+
"disabled": page.value === pageCount.value,
|
19218
|
+
"aria-label": t(props.nextPageLabel)
|
19120
19219
|
}, null), createVNode(VBtn, {
|
19121
19220
|
"icon": props.lastIcon,
|
19122
19221
|
"variant": "plain",
|
19123
19222
|
"onClick": () => page.value = pageCount.value,
|
19124
|
-
"disabled": page.value === pageCount.value
|
19223
|
+
"disabled": page.value === pageCount.value,
|
19224
|
+
"aria-label": t(props.lastPageLabel)
|
19125
19225
|
}, null)])]);
|
19126
19226
|
};
|
19127
19227
|
}
|
@@ -19166,18 +19266,14 @@ function useOptions(_ref) {
|
|
19166
19266
|
page,
|
19167
19267
|
itemsPerPage,
|
19168
19268
|
sortBy,
|
19169
|
-
|
19170
|
-
stopIndex,
|
19171
|
-
pageCount
|
19269
|
+
groupBy
|
19172
19270
|
} = _ref;
|
19173
19271
|
const vm = getCurrentInstance('VDataTable');
|
19174
19272
|
const options = computed(() => ({
|
19175
19273
|
page: page.value,
|
19176
19274
|
itemsPerPage: itemsPerPage.value,
|
19177
|
-
|
19178
|
-
|
19179
|
-
pageCount: pageCount.value,
|
19180
|
-
sortBy: sortBy.value
|
19275
|
+
sortBy: sortBy.value,
|
19276
|
+
groupBy: groupBy.value
|
19181
19277
|
}));
|
19182
19278
|
|
19183
19279
|
// Reset page when sorting changes
|
@@ -19255,9 +19351,12 @@ const VDataTable = defineComponent({
|
|
19255
19351
|
const {
|
19256
19352
|
items
|
19257
19353
|
} = useDataTableItems(props, columns);
|
19354
|
+
const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key));
|
19258
19355
|
const {
|
19259
19356
|
filteredItems
|
19260
|
-
} = useFilter(props, items, toRef(props, 'search')
|
19357
|
+
} = useFilter(props, items, toRef(props, 'search'), {
|
19358
|
+
filterKeys
|
19359
|
+
});
|
19261
19360
|
const {
|
19262
19361
|
sortBy
|
19263
19362
|
} = createSort(props);
|
@@ -19276,8 +19375,7 @@ const VDataTable = defineComponent({
|
|
19276
19375
|
page,
|
19277
19376
|
itemsPerPage,
|
19278
19377
|
startIndex,
|
19279
|
-
stopIndex
|
19280
|
-
pageCount
|
19378
|
+
stopIndex
|
19281
19379
|
} = createPagination(props, flatItems);
|
19282
19380
|
const {
|
19283
19381
|
paginatedItems
|
@@ -19289,9 +19387,7 @@ const VDataTable = defineComponent({
|
|
19289
19387
|
page,
|
19290
19388
|
itemsPerPage,
|
19291
19389
|
sortBy,
|
19292
|
-
|
19293
|
-
startIndex,
|
19294
|
-
stopIndex
|
19390
|
+
groupBy
|
19295
19391
|
});
|
19296
19392
|
provideDefaults({
|
19297
19393
|
VDataTableRows: {
|
@@ -19447,9 +19543,12 @@ const VDataTableVirtual = defineComponent({
|
|
19447
19543
|
const {
|
19448
19544
|
items
|
19449
19545
|
} = useDataTableItems(props, columns);
|
19546
|
+
const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key));
|
19450
19547
|
const {
|
19451
19548
|
filteredItems
|
19452
|
-
} = useFilter(props, items, toRef(props, 'search')
|
19549
|
+
} = useFilter(props, items, toRef(props, 'search'), {
|
19550
|
+
filterKeys
|
19551
|
+
});
|
19453
19552
|
const {
|
19454
19553
|
sortBy
|
19455
19554
|
} = createSort(props);
|
@@ -19482,10 +19581,8 @@ const VDataTableVirtual = defineComponent({
|
|
19482
19581
|
useOptions({
|
19483
19582
|
sortBy,
|
19484
19583
|
page: ref(1),
|
19485
|
-
|
19486
|
-
|
19487
|
-
pageCount: ref(1),
|
19488
|
-
itemsPerPage: ref(-1)
|
19584
|
+
itemsPerPage: ref(-1),
|
19585
|
+
groupBy
|
19489
19586
|
});
|
19490
19587
|
provideDefaults({
|
19491
19588
|
VDataTableRows: {
|
@@ -19561,7 +19658,8 @@ const VDataTableServer = defineComponent({
|
|
19561
19658
|
...makeDataTableItemProps(),
|
19562
19659
|
...makeDataTableSelectProps(),
|
19563
19660
|
...makeDataTableSortProps(),
|
19564
|
-
...makeDataTablePaginateProps()
|
19661
|
+
...makeDataTablePaginateProps(),
|
19662
|
+
...makeDataTableGroupProps()
|
19565
19663
|
},
|
19566
19664
|
emits: {
|
19567
19665
|
'update:modelValue': value => true,
|
@@ -19570,6 +19668,7 @@ const VDataTableServer = defineComponent({
|
|
19570
19668
|
'update:sortBy': sortBy => true,
|
19571
19669
|
'update:options': options => true,
|
19572
19670
|
'update:expanded': options => true,
|
19671
|
+
'update:groupBy': value => true,
|
19573
19672
|
'click:row': (event, value) => true
|
19574
19673
|
},
|
19575
19674
|
setup(props, _ref) {
|
@@ -19577,10 +19676,12 @@ const VDataTableServer = defineComponent({
|
|
19577
19676
|
emit,
|
19578
19677
|
slots
|
19579
19678
|
} = _ref;
|
19679
|
+
const groupBy = useProxiedModel(props, 'groupBy');
|
19580
19680
|
createExpanded(props);
|
19581
19681
|
const {
|
19582
19682
|
columns
|
19583
19683
|
} = createHeaders(props, {
|
19684
|
+
groupBy,
|
19584
19685
|
showSelect: toRef(props, 'showSelect'),
|
19585
19686
|
showExpand: toRef(props, 'showExpand')
|
19586
19687
|
});
|
@@ -19591,21 +19692,22 @@ const VDataTableServer = defineComponent({
|
|
19591
19692
|
sortBy,
|
19592
19693
|
toggleSort
|
19593
19694
|
} = createSort(props);
|
19695
|
+
const {
|
19696
|
+
opened
|
19697
|
+
} = createGroupBy(props, groupBy, sortBy);
|
19594
19698
|
const {
|
19595
19699
|
page,
|
19596
|
-
itemsPerPage
|
19597
|
-
startIndex,
|
19598
|
-
stopIndex,
|
19599
|
-
pageCount
|
19700
|
+
itemsPerPage
|
19600
19701
|
} = createPagination(props, items);
|
19702
|
+
const {
|
19703
|
+
flatItems
|
19704
|
+
} = useGroupedItems(items, groupBy, opened);
|
19601
19705
|
createSelection(props, items);
|
19602
19706
|
useOptions({
|
19603
19707
|
page,
|
19604
19708
|
itemsPerPage,
|
19605
19709
|
sortBy,
|
19606
|
-
|
19607
|
-
stopIndex,
|
19608
|
-
pageCount
|
19710
|
+
groupBy
|
19609
19711
|
});
|
19610
19712
|
provide('v-data-table', {
|
19611
19713
|
toggleSort,
|
@@ -19641,7 +19743,7 @@ const VDataTableServer = defineComponent({
|
|
19641
19743
|
"class": "v-data-table__tbody",
|
19642
19744
|
"role": "rowgroup"
|
19643
19745
|
}, [slots.body ? slots.body() : createVNode(VDataTableRows, {
|
19644
|
-
"items":
|
19746
|
+
"items": flatItems.value,
|
19645
19747
|
"onClick:row": (event, value) => emit('click:row', event, value)
|
19646
19748
|
}, slots)]), (_slots$tbody = slots.tbody) == null ? void 0 : _slots$tbody.call(slots), (_slots$tfoot = slots.tfoot) == null ? void 0 : _slots$tfoot.call(slots)]);
|
19647
19749
|
}),
|
@@ -19932,6 +20034,7 @@ var components = /*#__PURE__*/Object.freeze({
|
|
19932
20034
|
VDataTableRow: VDataTableRow,
|
19933
20035
|
VDataTableVirtual: VDataTableVirtual,
|
19934
20036
|
VDataTableServer: VDataTableServer,
|
20037
|
+
VDataTableFooter: VDataTableFooter,
|
19935
20038
|
VVirtualScroll: VVirtualScroll
|
19936
20039
|
});
|
19937
20040
|
|
@@ -20147,7 +20250,7 @@ function createVuetify$1() {
|
|
20147
20250
|
locale
|
20148
20251
|
};
|
20149
20252
|
}
|
20150
|
-
const version$1 = "
|
20253
|
+
const version$1 = "4.0.0-dev-20230211.0";
|
20151
20254
|
createVuetify$1.version = version$1;
|
20152
20255
|
|
20153
20256
|
// Vue's inject() can only be used in setup
|
@@ -20160,7 +20263,7 @@ function inject(key) {
|
|
20160
20263
|
}
|
20161
20264
|
}
|
20162
20265
|
|
20163
|
-
const version = "
|
20266
|
+
const version = "4.0.0-dev-20230211.0";
|
20164
20267
|
|
20165
20268
|
const createVuetify = function () {
|
20166
20269
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|