@vuetify/nightly 3.2.0-next-20230114.0 → 4.0.0-dev-20230206.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +203 -11
- package/dist/json/attributes.json +7202 -0
- package/dist/json/importMap-labs.json +4 -0
- package/dist/json/importMap.json +8 -8
- package/dist/json/tags.json +2492 -0
- package/dist/json/web-types.json +24081 -0
- package/dist/vuetify-labs.css +270 -262
- package/dist/vuetify-labs.d.ts +399 -176
- package/dist/vuetify-labs.esm.js +362 -278
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +361 -277
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +206 -198
- package/dist/vuetify.d.ts +329 -178
- package/dist/vuetify.esm.js +329 -248
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +328 -247
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +700 -689
- 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 +16 -5
- 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 +4 -4
- 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.css +1 -0
- package/lib/components/VFileInput/VFileInput.mjs +7 -4
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +1 -0
- package/lib/components/VForm/index.d.ts +0 -3
- package/lib/components/VList/VList.mjs +4 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +8 -8
- package/lib/components/VList/VListItem.mjs +29 -19
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +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/VProgressLinear/VProgressLinear.mjs +13 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +18 -0
- package/lib/components/VSelect/VSelect.mjs +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 +328 -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 +4 -4
- package/lib/labs/VDataTable/VDataTable.mjs +6 -6
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +19 -12
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -5
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +3 -7
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs +1 -1
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +71 -1
- package/lib/labs/VDataTable/index.mjs +1 -0
- package/lib/labs/VDataTable/index.mjs.map +1 -1
- package/lib/labs/components.d.ts +71 -1
- package/lib/locale/adapters/vue-i18n.mjs +12 -2
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/ar.mjs +20 -20
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/en.mjs +2 -2
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +3 -3
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/fi.mjs +5 -5
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/it.mjs +6 -6
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/sv.mjs +13 -13
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/styles/settings/_variables.scss +6 -6
- package/lib/styles/tools/_states.sass +3 -3
- package/lib/util/defineComponent.mjs +21 -18
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +5 -19
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +1 -1
package/dist/vuetify-labs.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify
|
2
|
+
* Vuetify v4.0.0-dev-20230206.0
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -262,8 +262,12 @@
|
|
262
262
|
}
|
263
263
|
function toKebabCase() {
|
264
264
|
let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
265
|
-
|
265
|
+
if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);
|
266
|
+
const kebab = str.replace(/[^a-z]/gi, '-').replace(/\B([A-Z])/g, '-$1').toLowerCase();
|
267
|
+
toKebabCase.cache.set(str, kebab);
|
268
|
+
return kebab;
|
266
269
|
}
|
270
|
+
toKebabCase.cache = new Map();
|
267
271
|
function findChildrenWithProvide(key, vnode) {
|
268
272
|
if (!vnode || typeof vnode !== 'object') return [];
|
269
273
|
if (Array.isArray(vnode)) {
|
@@ -890,7 +894,7 @@
|
|
890
894
|
|
891
895
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
892
896
|
function createDefaults(options) {
|
893
|
-
return vue.ref(options
|
897
|
+
return vue.ref(options);
|
894
898
|
}
|
895
899
|
function useDefaults() {
|
896
900
|
const defaults = vue.inject(DefaultsSymbol);
|
@@ -922,23 +926,30 @@
|
|
922
926
|
return newDefaults;
|
923
927
|
}
|
924
928
|
|
925
|
-
function useToggleScope(source,
|
929
|
+
function useToggleScope(source, fn) {
|
926
930
|
let scope;
|
931
|
+
function start() {
|
932
|
+
scope = vue.effectScope();
|
933
|
+
scope.run(() => fn.length ? fn(() => {
|
934
|
+
var _scope;
|
935
|
+
(_scope = scope) == null ? void 0 : _scope.stop();
|
936
|
+
start();
|
937
|
+
}) : fn());
|
938
|
+
}
|
927
939
|
vue.watch(source, active => {
|
928
940
|
if (active && !scope) {
|
929
|
-
|
930
|
-
scope.run(cb);
|
941
|
+
start();
|
931
942
|
} else if (!active) {
|
932
|
-
var
|
933
|
-
(
|
943
|
+
var _scope2;
|
944
|
+
(_scope2 = scope) == null ? void 0 : _scope2.stop();
|
934
945
|
scope = undefined;
|
935
946
|
}
|
936
947
|
}, {
|
937
948
|
immediate: true
|
938
949
|
});
|
939
950
|
vue.onScopeDispose(() => {
|
940
|
-
var
|
941
|
-
(
|
951
|
+
var _scope3;
|
952
|
+
(_scope3 = scope) == null ? void 0 : _scope3.stop();
|
942
953
|
});
|
943
954
|
}
|
944
955
|
|
@@ -1007,33 +1018,36 @@
|
|
1007
1018
|
options.props = propsFactory(options.props, toKebabCase(options.name))();
|
1008
1019
|
options.props._as = String;
|
1009
1020
|
options.setup = function setup(props, ctx) {
|
1010
|
-
const vm = vue.getCurrentInstance();
|
1011
1021
|
const defaults = useDefaults();
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1022
|
+
|
1023
|
+
// Skip props proxy if defaults are not provided
|
1024
|
+
if (!defaults.value) return options._setup(props, ctx);
|
1025
|
+
const vm = vue.getCurrentInstance();
|
1026
|
+
const componentDefaults = vue.computed(() => defaults.value[props._as ?? options.name]);
|
1027
|
+
const _props = new Proxy(props, {
|
1028
|
+
get(target, prop) {
|
1029
|
+
if (!propIsDefined(vm.vnode, prop)) {
|
1030
|
+
var _componentDefaults$va, _global;
|
1031
|
+
return ((_componentDefaults$va = componentDefaults.value) == null ? void 0 : _componentDefaults$va[prop]) ?? ((_global = defaults.value.global) == null ? void 0 : _global[prop]) ?? target[prop];
|
1032
|
+
}
|
1033
|
+
return Reflect.get(target, prop);
|
1034
|
+
}
|
1015
1035
|
});
|
1036
|
+
const _subcomponentDefaults = vue.shallowRef();
|
1016
1037
|
vue.watchEffect(() => {
|
1017
|
-
|
1018
|
-
|
1019
|
-
if (componentDefaults) {
|
1020
|
-
const subComponents = Object.entries(componentDefaults).filter(_ref => {
|
1038
|
+
if (componentDefaults.value) {
|
1039
|
+
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
1021
1040
|
let [key] = _ref;
|
1022
1041
|
return key.startsWith(key[0].toUpperCase());
|
1023
1042
|
});
|
1024
1043
|
if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents);
|
1025
1044
|
}
|
1026
|
-
for (const prop of Object.keys(props)) {
|
1027
|
-
let newVal = props[prop];
|
1028
|
-
if (!propIsDefined(vm.vnode, prop)) {
|
1029
|
-
newVal = (componentDefaults == null ? void 0 : componentDefaults[prop]) ?? (globalDefaults == null ? void 0 : globalDefaults[prop]) ?? props[prop];
|
1030
|
-
}
|
1031
|
-
if (_props[prop] !== newVal) {
|
1032
|
-
_props[prop] = newVal;
|
1033
|
-
}
|
1034
|
-
}
|
1035
1045
|
});
|
1036
1046
|
const setupBindings = options._setup(_props, ctx);
|
1047
|
+
|
1048
|
+
// If subcomponent defaults are provided, override any
|
1049
|
+
// subcomponents provided by the component's setup function.
|
1050
|
+
// This uses injectSelf so must be done after the original setup to work.
|
1037
1051
|
useToggleScope(_subcomponentDefaults, () => {
|
1038
1052
|
var _injectSelf;
|
1039
1053
|
provideDefaults(mergeDeep(((_injectSelf = injectSelf(DefaultsSymbol)) == null ? void 0 : _injectSelf.value) ?? {}, _subcomponentDefaults.value));
|
@@ -1896,8 +1910,8 @@
|
|
1896
1910
|
root: 'Pagination Navigation',
|
1897
1911
|
next: 'Next page',
|
1898
1912
|
previous: 'Previous page',
|
1899
|
-
page: '
|
1900
|
-
currentPage: 'Page {0}, Current
|
1913
|
+
page: 'Go to page {0}',
|
1914
|
+
currentPage: 'Page {0}, Current page',
|
1901
1915
|
first: 'First page',
|
1902
1916
|
last: 'Last page'
|
1903
1917
|
}
|
@@ -3372,18 +3386,21 @@
|
|
3372
3386
|
};
|
3373
3387
|
}
|
3374
3388
|
|
3389
|
+
// Types
|
3390
|
+
|
3391
|
+
const makeVBtnGroupProps = propsFactory({
|
3392
|
+
divided: Boolean,
|
3393
|
+
...makeBorderProps(),
|
3394
|
+
...makeDensityProps(),
|
3395
|
+
...makeElevationProps(),
|
3396
|
+
...makeRoundedProps(),
|
3397
|
+
...makeTagProps(),
|
3398
|
+
...makeThemeProps(),
|
3399
|
+
...makeVariantProps()
|
3400
|
+
}, 'v-btn-group');
|
3375
3401
|
const VBtnGroup = defineComponent({
|
3376
3402
|
name: 'VBtnGroup',
|
3377
|
-
props:
|
3378
|
-
divided: Boolean,
|
3379
|
-
...makeBorderProps(),
|
3380
|
-
...makeDensityProps(),
|
3381
|
-
...makeElevationProps(),
|
3382
|
-
...makeRoundedProps(),
|
3383
|
-
...makeTagProps(),
|
3384
|
-
...makeThemeProps(),
|
3385
|
-
...makeVariantProps()
|
3386
|
-
},
|
3403
|
+
props: makeVBtnGroupProps(),
|
3387
3404
|
setup(props, _ref) {
|
3388
3405
|
let {
|
3389
3406
|
slots
|
@@ -3421,6 +3438,9 @@
|
|
3421
3438
|
});
|
3422
3439
|
}
|
3423
3440
|
});
|
3441
|
+
function filterVBtnGroupProps(props) {
|
3442
|
+
return pick(props, Object.keys(VBtnGroup.props));
|
3443
|
+
}
|
3424
3444
|
|
3425
3445
|
// Composables
|
3426
3446
|
|
@@ -3628,7 +3648,10 @@
|
|
3628
3648
|
const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');
|
3629
3649
|
const VBtnToggle = genericComponent()({
|
3630
3650
|
name: 'VBtnToggle',
|
3631
|
-
props:
|
3651
|
+
props: {
|
3652
|
+
...makeVBtnGroupProps(),
|
3653
|
+
...makeGroupProps()
|
3654
|
+
},
|
3632
3655
|
emits: {
|
3633
3656
|
'update:modelValue': value => true
|
3634
3657
|
},
|
@@ -3645,9 +3668,10 @@
|
|
3645
3668
|
} = useGroup(props, VBtnToggleSymbol);
|
3646
3669
|
useRender(() => {
|
3647
3670
|
var _slots$default;
|
3648
|
-
|
3671
|
+
const [btnGroupProps] = filterVBtnGroupProps(props);
|
3672
|
+
return vue.createVNode(VBtnGroup, vue.mergeProps({
|
3649
3673
|
"class": "v-btn-toggle"
|
3650
|
-
}, {
|
3674
|
+
}, btnGroupProps), {
|
3651
3675
|
default: () => [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
|
3652
3676
|
isSelected,
|
3653
3677
|
next,
|
@@ -4102,9 +4126,6 @@
|
|
4102
4126
|
el.style.transform = value;
|
4103
4127
|
el.style.webkitTransform = value;
|
4104
4128
|
}
|
4105
|
-
function opacity(el, value) {
|
4106
|
-
el.style.opacity = `calc(${value} * var(--v-theme-overlay-multiplier))`;
|
4107
|
-
}
|
4108
4129
|
function isTouchEvent(e) {
|
4109
4130
|
return e.constructor.name === 'TouchEvent';
|
4110
4131
|
}
|
@@ -4180,13 +4201,11 @@
|
|
4180
4201
|
animation.classList.add('v-ripple__animation--enter');
|
4181
4202
|
animation.classList.add('v-ripple__animation--visible');
|
4182
4203
|
transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
4183
|
-
opacity(animation, 0);
|
4184
4204
|
animation.dataset.activated = String(performance.now());
|
4185
4205
|
setTimeout(() => {
|
4186
4206
|
animation.classList.remove('v-ripple__animation--enter');
|
4187
4207
|
animation.classList.add('v-ripple__animation--in');
|
4188
4208
|
transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
4189
|
-
opacity(animation, 0.08);
|
4190
4209
|
}, 0);
|
4191
4210
|
},
|
4192
4211
|
hide(el) {
|
@@ -4201,14 +4220,14 @@
|
|
4201
4220
|
setTimeout(() => {
|
4202
4221
|
animation.classList.remove('v-ripple__animation--in');
|
4203
4222
|
animation.classList.add('v-ripple__animation--out');
|
4204
|
-
opacity(animation, 0);
|
4205
4223
|
setTimeout(() => {
|
4224
|
+
var _animation$parentNode;
|
4206
4225
|
const ripples = el.getElementsByClassName('v-ripple__animation');
|
4207
4226
|
if (ripples.length === 1 && el.dataset.previousPosition) {
|
4208
4227
|
el.style.position = el.dataset.previousPosition;
|
4209
4228
|
delete el.dataset.previousPosition;
|
4210
4229
|
}
|
4211
|
-
animation.parentNode
|
4230
|
+
if (((_animation$parentNode = animation.parentNode) == null ? void 0 : _animation$parentNode.parentNode) === el) el.removeChild(animation.parentNode);
|
4212
4231
|
}, 300);
|
4213
4232
|
}, delay);
|
4214
4233
|
}
|
@@ -4388,9 +4407,69 @@
|
|
4388
4407
|
updated: updated$1
|
4389
4408
|
};
|
4390
4409
|
|
4410
|
+
// Composables
|
4411
|
+
|
4412
|
+
// Types
|
4413
|
+
|
4414
|
+
const oppositeMap = {
|
4415
|
+
center: 'center',
|
4416
|
+
top: 'bottom',
|
4417
|
+
bottom: 'top',
|
4418
|
+
left: 'right',
|
4419
|
+
right: 'left'
|
4420
|
+
};
|
4421
|
+
const makeLocationProps = propsFactory({
|
4422
|
+
location: String
|
4423
|
+
}, 'location');
|
4424
|
+
function useLocation(props) {
|
4425
|
+
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
4426
|
+
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
4427
|
+
const {
|
4428
|
+
isRtl
|
4429
|
+
} = useRtl();
|
4430
|
+
const locationStyles = vue.computed(() => {
|
4431
|
+
if (!props.location) return {};
|
4432
|
+
const {
|
4433
|
+
side,
|
4434
|
+
align
|
4435
|
+
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
4436
|
+
function getOffset(side) {
|
4437
|
+
return offset ? offset(side) : 0;
|
4438
|
+
}
|
4439
|
+
const styles = {};
|
4440
|
+
if (side !== 'center') {
|
4441
|
+
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
4442
|
+
}
|
4443
|
+
if (align !== 'center') {
|
4444
|
+
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
4445
|
+
} else {
|
4446
|
+
if (side === 'center') styles.top = styles.left = '50%';else {
|
4447
|
+
styles[{
|
4448
|
+
top: 'left',
|
4449
|
+
bottom: 'left',
|
4450
|
+
left: 'top',
|
4451
|
+
right: 'top'
|
4452
|
+
}[side]] = '50%';
|
4453
|
+
}
|
4454
|
+
styles.transform = {
|
4455
|
+
top: 'translateX(-50%)',
|
4456
|
+
bottom: 'translateX(-50%)',
|
4457
|
+
left: 'translateY(-50%)',
|
4458
|
+
right: 'translateY(-50%)',
|
4459
|
+
center: 'translate(-50%, -50%)'
|
4460
|
+
}[side];
|
4461
|
+
}
|
4462
|
+
return styles;
|
4463
|
+
});
|
4464
|
+
return {
|
4465
|
+
locationStyles
|
4466
|
+
};
|
4467
|
+
}
|
4468
|
+
|
4391
4469
|
const VProgressLinear = defineComponent({
|
4392
4470
|
name: 'VProgressLinear',
|
4393
4471
|
props: {
|
4472
|
+
absolute: Boolean,
|
4394
4473
|
active: {
|
4395
4474
|
type: Boolean,
|
4396
4475
|
default: true
|
@@ -4420,6 +4499,9 @@
|
|
4420
4499
|
stream: Boolean,
|
4421
4500
|
striped: Boolean,
|
4422
4501
|
roundedBar: Boolean,
|
4502
|
+
...makeLocationProps({
|
4503
|
+
location: 'top'
|
4504
|
+
}),
|
4423
4505
|
...makeRoundedProps(),
|
4424
4506
|
...makeTagProps(),
|
4425
4507
|
...makeThemeProps()
|
@@ -4438,6 +4520,9 @@
|
|
4438
4520
|
const {
|
4439
4521
|
themeClasses
|
4440
4522
|
} = provideTheme(props);
|
4523
|
+
const {
|
4524
|
+
locationStyles
|
4525
|
+
} = useLocation(props);
|
4441
4526
|
const {
|
4442
4527
|
textColorClasses,
|
4443
4528
|
textColorStyles
|
@@ -4479,6 +4564,7 @@
|
|
4479
4564
|
useRender(() => vue.createVNode(props.tag, {
|
4480
4565
|
"ref": intersectionRef,
|
4481
4566
|
"class": ['v-progress-linear', {
|
4567
|
+
'v-progress-linear--absolute': props.absolute,
|
4482
4568
|
'v-progress-linear--active': props.active && isIntersecting.value,
|
4483
4569
|
'v-progress-linear--reverse': isReversed.value,
|
4484
4570
|
'v-progress-linear--rounded': props.rounded,
|
@@ -4486,8 +4572,11 @@
|
|
4486
4572
|
'v-progress-linear--striped': props.striped
|
4487
4573
|
}, roundedClasses.value, themeClasses.value],
|
4488
4574
|
"style": {
|
4575
|
+
bottom: props.location === 'bottom' ? 0 : undefined,
|
4576
|
+
top: props.location === 'top' ? 0 : undefined,
|
4489
4577
|
height: props.active ? convertToUnit(height.value) : 0,
|
4490
|
-
'--v-progress-linear-height': convertToUnit(height.value)
|
4578
|
+
'--v-progress-linear-height': convertToUnit(height.value),
|
4579
|
+
...locationStyles.value
|
4491
4580
|
},
|
4492
4581
|
"role": "progressbar",
|
4493
4582
|
"aria-hidden": props.active ? 'false' : 'true',
|
@@ -4573,65 +4662,6 @@
|
|
4573
4662
|
}, null)]);
|
4574
4663
|
}
|
4575
4664
|
|
4576
|
-
// Composables
|
4577
|
-
|
4578
|
-
// Types
|
4579
|
-
|
4580
|
-
const oppositeMap = {
|
4581
|
-
center: 'center',
|
4582
|
-
top: 'bottom',
|
4583
|
-
bottom: 'top',
|
4584
|
-
left: 'right',
|
4585
|
-
right: 'left'
|
4586
|
-
};
|
4587
|
-
const makeLocationProps = propsFactory({
|
4588
|
-
location: String
|
4589
|
-
}, 'location');
|
4590
|
-
function useLocation(props) {
|
4591
|
-
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
4592
|
-
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
4593
|
-
const {
|
4594
|
-
isRtl
|
4595
|
-
} = useRtl();
|
4596
|
-
const locationStyles = vue.computed(() => {
|
4597
|
-
if (!props.location) return {};
|
4598
|
-
const {
|
4599
|
-
side,
|
4600
|
-
align
|
4601
|
-
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
4602
|
-
function getOffset(side) {
|
4603
|
-
return offset ? offset(side) : 0;
|
4604
|
-
}
|
4605
|
-
const styles = {};
|
4606
|
-
if (side !== 'center') {
|
4607
|
-
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
4608
|
-
}
|
4609
|
-
if (align !== 'center') {
|
4610
|
-
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
4611
|
-
} else {
|
4612
|
-
if (side === 'center') styles.top = styles.left = '50%';else {
|
4613
|
-
styles[{
|
4614
|
-
top: 'left',
|
4615
|
-
bottom: 'left',
|
4616
|
-
left: 'top',
|
4617
|
-
right: 'top'
|
4618
|
-
}[side]] = '50%';
|
4619
|
-
}
|
4620
|
-
styles.transform = {
|
4621
|
-
top: 'translateX(-50%)',
|
4622
|
-
bottom: 'translateX(-50%)',
|
4623
|
-
left: 'translateY(-50%)',
|
4624
|
-
right: 'translateY(-50%)',
|
4625
|
-
center: 'translate(-50%, -50%)'
|
4626
|
-
}[side];
|
4627
|
-
}
|
4628
|
-
return styles;
|
4629
|
-
});
|
4630
|
-
return {
|
4631
|
-
locationStyles
|
4632
|
-
};
|
4633
|
-
}
|
4634
|
-
|
4635
4665
|
// Utilities
|
4636
4666
|
|
4637
4667
|
// Types
|
@@ -4837,21 +4867,31 @@
|
|
4837
4867
|
const group = useGroupItem(props, props.symbol, false);
|
4838
4868
|
const link = useLink(props, attrs);
|
4839
4869
|
const isActive = vue.computed(() => {
|
4840
|
-
|
4841
|
-
|
4870
|
+
if (props.active !== undefined) {
|
4871
|
+
return props.active;
|
4872
|
+
}
|
4873
|
+
if (link.isLink.value) {
|
4874
|
+
var _link$isActive;
|
4875
|
+
return (_link$isActive = link.isActive) == null ? void 0 : _link$isActive.value;
|
4876
|
+
}
|
4877
|
+
return group == null ? void 0 : group.isSelected.value;
|
4842
4878
|
});
|
4843
4879
|
const isDisabled = vue.computed(() => (group == null ? void 0 : group.disabled.value) || props.disabled);
|
4844
4880
|
const isElevated = vue.computed(() => {
|
4845
4881
|
return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
|
4846
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
|
+
});
|
4847
4887
|
useSelectLink(link, group == null ? void 0 : group.select);
|
4848
4888
|
useRender(() => {
|
4849
|
-
var _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
4889
|
+
var _link$isActive2, _link$isActive3, _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
4850
4890
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
4851
|
-
const hasColor = !group || group.isSelected.value;
|
4852
4891
|
const hasPrepend = !!(props.prependIcon || slots.prepend);
|
4853
4892
|
const hasAppend = !!(props.appendIcon || slots.append);
|
4854
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);
|
4855
4895
|
return vue.withDirectives(vue.createVNode(Tag, {
|
4856
4896
|
"type": Tag === 'a' ? undefined : 'button',
|
4857
4897
|
"class": ['v-btn', group == null ? void 0 : group.selectedClass.value, {
|
@@ -4872,7 +4912,8 @@
|
|
4872
4912
|
if (isDisabled.value) return;
|
4873
4913
|
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
4874
4914
|
group == null ? void 0 : group.toggle();
|
4875
|
-
}
|
4915
|
+
},
|
4916
|
+
"value": valueAttr.value
|
4876
4917
|
}, {
|
4877
4918
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode(VDefaultsProvider, {
|
4878
4919
|
"key": "prepend",
|
@@ -5346,32 +5387,34 @@
|
|
5346
5387
|
if (hasLabel.value) {
|
5347
5388
|
const el = labelRef.value.$el;
|
5348
5389
|
const targetEl = floatingLabelRef.value.$el;
|
5349
|
-
|
5350
|
-
|
5351
|
-
|
5352
|
-
|
5353
|
-
|
5354
|
-
|
5355
|
-
|
5356
|
-
|
5357
|
-
|
5358
|
-
|
5359
|
-
|
5360
|
-
|
5361
|
-
|
5362
|
-
|
5363
|
-
|
5364
|
-
|
5365
|
-
|
5366
|
-
|
5367
|
-
|
5368
|
-
|
5369
|
-
|
5370
|
-
|
5371
|
-
|
5372
|
-
|
5373
|
-
|
5374
|
-
|
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
|
+
});
|
5375
5418
|
});
|
5376
5419
|
}
|
5377
5420
|
}, {
|
@@ -5560,7 +5603,6 @@
|
|
5560
5603
|
const makeFormProps = propsFactory({
|
5561
5604
|
disabled: Boolean,
|
5562
5605
|
fastFail: Boolean,
|
5563
|
-
lazyValidation: Boolean,
|
5564
5606
|
readonly: Boolean,
|
5565
5607
|
modelValue: {
|
5566
5608
|
type: Boolean,
|
@@ -6964,9 +7006,9 @@
|
|
6964
7006
|
themeClasses
|
6965
7007
|
} = provideTheme(props);
|
6966
7008
|
const {
|
6967
|
-
|
6968
|
-
|
6969
|
-
} =
|
7009
|
+
textColorClasses,
|
7010
|
+
textColorStyles
|
7011
|
+
} = useTextColor(vue.toRef(props, 'color'));
|
6970
7012
|
const dividerStyles = vue.computed(() => {
|
6971
7013
|
const styles = {};
|
6972
7014
|
if (props.length) {
|
@@ -6982,8 +7024,8 @@
|
|
6982
7024
|
'v-divider': true,
|
6983
7025
|
'v-divider--inset': props.inset,
|
6984
7026
|
'v-divider--vertical': props.vertical
|
6985
|
-
}, themeClasses.value,
|
6986
|
-
"style": [dividerStyles.value,
|
7027
|
+
}, themeClasses.value, textColorClasses.value],
|
7028
|
+
"style": [dividerStyles.value, textColorStyles.value],
|
6987
7029
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
6988
7030
|
"role": `${attrs.role || 'separator'}`
|
6989
7031
|
}, null));
|
@@ -7693,7 +7735,7 @@
|
|
7693
7735
|
}
|
7694
7736
|
}
|
7695
7737
|
useRender(() => {
|
7696
|
-
var _slots$
|
7738
|
+
var _slots$title, _slots$subtitle, _slots$default;
|
7697
7739
|
const Tag = isLink.value ? 'a' : props.tag;
|
7698
7740
|
const hasColor = !list || isSelected.value || isActive.value;
|
7699
7741
|
const hasTitle = slots.title || props.title;
|
@@ -7716,7 +7758,18 @@
|
|
7716
7758
|
"onClick": onClick,
|
7717
7759
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
7718
7760
|
}, {
|
7719
|
-
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, {
|
7720
7773
|
"key": "prepend",
|
7721
7774
|
"defaults": {
|
7722
7775
|
VAvatar: {
|
@@ -7732,14 +7785,8 @@
|
|
7732
7785
|
}
|
7733
7786
|
}
|
7734
7787
|
}, {
|
7735
|
-
default: () => [
|
7736
|
-
|
7737
|
-
}, [props.prependAvatar && vue.createVNode(VAvatar, {
|
7738
|
-
"key": "prepend-avatar"
|
7739
|
-
}, null), props.prependIcon && vue.createVNode(VIcon, {
|
7740
|
-
"key": "prepend-icon"
|
7741
|
-
}, null), (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value)])]
|
7742
|
-
}), vue.createVNode("div", {
|
7788
|
+
default: () => [slots.prepend(slotProps.value)]
|
7789
|
+
})]), vue.createVNode("div", {
|
7743
7790
|
"class": "v-list-item__content",
|
7744
7791
|
"data-no-activator": ""
|
7745
7792
|
}, [hasTitle && vue.createVNode(VListItemTitle, {
|
@@ -7754,7 +7801,10 @@
|
|
7754
7801
|
default: () => [((_slots$subtitle = slots.subtitle) == null ? void 0 : _slots$subtitle.call(slots, {
|
7755
7802
|
subtitle: props.subtitle
|
7756
7803
|
})) ?? props.subtitle]
|
7757
|
-
}), (_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, {
|
7758
7808
|
"key": "append",
|
7759
7809
|
"defaults": {
|
7760
7810
|
VAvatar: {
|
@@ -7770,14 +7820,16 @@
|
|
7770
7820
|
}
|
7771
7821
|
}
|
7772
7822
|
}, {
|
7773
|
-
default: () => [
|
7774
|
-
|
7775
|
-
|
7776
|
-
|
7777
|
-
|
7778
|
-
|
7779
|
-
|
7780
|
-
|
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)])]
|
7781
7833
|
}), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
7782
7834
|
});
|
7783
7835
|
return {};
|
@@ -7991,9 +8043,12 @@
|
|
7991
8043
|
|
7992
8044
|
// Types
|
7993
8045
|
|
8046
|
+
function isPrimitive(value) {
|
8047
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
8048
|
+
}
|
7994
8049
|
function transformItem(props, item) {
|
7995
8050
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
7996
|
-
const title =
|
8051
|
+
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
7997
8052
|
const value = getPropertyFromItem(item, props.itemValue, undefined);
|
7998
8053
|
const children = getPropertyFromItem(item, props.itemChildren);
|
7999
8054
|
const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps);
|
@@ -8619,17 +8674,12 @@
|
|
8619
8674
|
function useLocationStrategies(props, data) {
|
8620
8675
|
const contentStyles = vue.ref({});
|
8621
8676
|
const updateLocation = vue.ref();
|
8622
|
-
|
8623
|
-
|
8624
|
-
|
8625
|
-
|
8626
|
-
|
8627
|
-
|
8628
|
-
scope = vue.effectScope();
|
8629
|
-
if (!(props.locationStrategy === 'connected')) {
|
8630
|
-
await vue.nextTick();
|
8631
|
-
}
|
8632
|
-
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
|
+
});
|
8633
8683
|
if (typeof props.locationStrategy === 'function') {
|
8634
8684
|
var _props$locationStrate;
|
8635
8685
|
updateLocation.value = (_props$locationStrate = props.locationStrategy(data, props, contentStyles)) == null ? void 0 : _props$locationStrate.updateLocation;
|
@@ -8638,16 +8688,14 @@
|
|
8638
8688
|
updateLocation.value = (_locationStrategies$p = locationStrategies[props.locationStrategy](data, props, contentStyles)) == null ? void 0 : _locationStrategies$p.updateLocation;
|
8639
8689
|
}
|
8640
8690
|
});
|
8641
|
-
|
8642
|
-
|
8643
|
-
|
8644
|
-
|
8645
|
-
|
8646
|
-
|
8647
|
-
|
8648
|
-
|
8649
|
-
(_scope2 = scope) == null ? void 0 : _scope2.stop();
|
8650
|
-
});
|
8691
|
+
window.addEventListener('resize', onResize, {
|
8692
|
+
passive: true
|
8693
|
+
});
|
8694
|
+
vue.onScopeDispose(() => {
|
8695
|
+
window.removeEventListener('resize', onResize);
|
8696
|
+
updateLocation.value = undefined;
|
8697
|
+
});
|
8698
|
+
}
|
8651
8699
|
function onResize(e) {
|
8652
8700
|
var _updateLocation$value;
|
8653
8701
|
(_updateLocation$value = updateLocation.value) == null ? void 0 : _updateLocation$value.call(updateLocation, e);
|
@@ -8941,13 +8989,30 @@
|
|
8941
8989
|
maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),
|
8942
8990
|
maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))
|
8943
8991
|
});
|
8992
|
+
return {
|
8993
|
+
available,
|
8994
|
+
contentBox
|
8995
|
+
};
|
8944
8996
|
}
|
8945
|
-
vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation()
|
8946
|
-
|
8947
|
-
|
8948
|
-
|
8949
|
-
|
8950
|
-
|
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
|
+
}
|
8951
9016
|
});
|
8952
9017
|
return {
|
8953
9018
|
updateLocation
|
@@ -9015,10 +9080,10 @@
|
|
9015
9080
|
await vue.nextTick();
|
9016
9081
|
scope.run(() => {
|
9017
9082
|
if (typeof props.scrollStrategy === 'function') {
|
9018
|
-
props.scrollStrategy(data, props);
|
9083
|
+
props.scrollStrategy(data, props, scope);
|
9019
9084
|
} else {
|
9020
9085
|
var _scrollStrategies$pro;
|
9021
|
-
(_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);
|
9022
9087
|
}
|
9023
9088
|
});
|
9024
9089
|
});
|
@@ -9064,9 +9129,10 @@
|
|
9064
9129
|
}
|
9065
9130
|
});
|
9066
9131
|
}
|
9067
|
-
function repositionScrollStrategy(data) {
|
9132
|
+
function repositionScrollStrategy(data, props, scope) {
|
9068
9133
|
let slow = false;
|
9069
9134
|
let raf = -1;
|
9135
|
+
let ric = -1;
|
9070
9136
|
function update(e) {
|
9071
9137
|
requestNewFrame(() => {
|
9072
9138
|
var _data$updateLocation$, _data$updateLocation;
|
@@ -9076,21 +9142,29 @@
|
|
9076
9142
|
slow = time / (1000 / 60) > 2;
|
9077
9143
|
});
|
9078
9144
|
}
|
9079
|
-
|
9080
|
-
|
9081
|
-
|
9082
|
-
|
9083
|
-
|
9084
|
-
|
9085
|
-
|
9086
|
-
|
9087
|
-
|
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 {
|
9088
9160
|
update(e);
|
9089
|
-
}
|
9161
|
+
}
|
9090
9162
|
});
|
9091
|
-
}
|
9092
|
-
|
9093
|
-
|
9163
|
+
});
|
9164
|
+
});
|
9165
|
+
vue.onScopeDispose(() => {
|
9166
|
+
cancelIdleCallback(ric);
|
9167
|
+
cancelAnimationFrame(raf);
|
9094
9168
|
});
|
9095
9169
|
}
|
9096
9170
|
|
@@ -9733,6 +9807,11 @@
|
|
9733
9807
|
function onClickOutside() {
|
9734
9808
|
parent == null ? void 0 : parent.closeParents();
|
9735
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));
|
9736
9815
|
useRender(() => {
|
9737
9816
|
const [overlayProps] = filterVOverlayProps(props);
|
9738
9817
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -9742,11 +9821,7 @@
|
|
9742
9821
|
"modelValue": isActive.value,
|
9743
9822
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
9744
9823
|
"absolute": true,
|
9745
|
-
"activatorProps":
|
9746
|
-
'aria-haspopup': 'menu',
|
9747
|
-
'aria-expanded': String(isActive.value),
|
9748
|
-
'aria-owns': id.value
|
9749
|
-
}, props.activatorProps),
|
9824
|
+
"activatorProps": activatorProps.value,
|
9750
9825
|
"onClick:outside": onClickOutside
|
9751
9826
|
}, scopeId), {
|
9752
9827
|
activator: slots.activator,
|
@@ -9860,8 +9935,10 @@
|
|
9860
9935
|
}
|
9861
9936
|
function onKeydown(e) {
|
9862
9937
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
9863
|
-
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
9938
|
+
if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
|
9864
9939
|
e.preventDefault();
|
9940
|
+
}
|
9941
|
+
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
9865
9942
|
menu.value = true;
|
9866
9943
|
}
|
9867
9944
|
if (['Escape', 'Tab'].includes(e.key)) {
|
@@ -9872,15 +9949,12 @@
|
|
9872
9949
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
9873
9950
|
} else if (e.key === 'ArrowUp') {
|
9874
9951
|
var _listRef$value2;
|
9875
|
-
e.preventDefault();
|
9876
9952
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
9877
9953
|
} else if (e.key === 'Home') {
|
9878
9954
|
var _listRef$value3;
|
9879
|
-
e.preventDefault();
|
9880
9955
|
(_listRef$value3 = listRef.value) == null ? void 0 : _listRef$value3.focus('first');
|
9881
9956
|
} else if (e.key === 'End') {
|
9882
9957
|
var _listRef$value4;
|
9883
|
-
e.preventDefault();
|
9884
9958
|
(_listRef$value4 = listRef.value) == null ? void 0 : _listRef$value4.focus('last');
|
9885
9959
|
}
|
9886
9960
|
}
|
@@ -10062,7 +10136,7 @@
|
|
10062
10136
|
const customFiltersLength = Object.keys((options == null ? void 0 : options.customKeyFilter) ?? {}).length;
|
10063
10137
|
if (!(items != null && items.length)) return array;
|
10064
10138
|
loop: for (let i = 0; i < items.length; i++) {
|
10065
|
-
const item = items[i]
|
10139
|
+
const item = items[i];
|
10066
10140
|
const customMatches = {};
|
10067
10141
|
const defaultMatches = {};
|
10068
10142
|
let match = -1;
|
@@ -10102,7 +10176,7 @@
|
|
10102
10176
|
}
|
10103
10177
|
return array;
|
10104
10178
|
}
|
10105
|
-
function useFilter(props, items, query) {
|
10179
|
+
function useFilter(props, items, query, options) {
|
10106
10180
|
const strQuery = vue.computed(() => typeof (query == null ? void 0 : query.value) !== 'string' && typeof (query == null ? void 0 : query.value) !== 'number' ? '' : String(query.value));
|
10107
10181
|
const filteredItems = vue.ref([]);
|
10108
10182
|
const filteredMatches = vue.ref(new Map());
|
@@ -10113,7 +10187,7 @@
|
|
10113
10187
|
const results = filterItems(transformedItems, strQuery.value, {
|
10114
10188
|
customKeyFilter: props.customKeyFilter,
|
10115
10189
|
default: props.customFilter,
|
10116
|
-
filterKeys: props.filterKeys,
|
10190
|
+
filterKeys: vue.unref(options == null ? void 0 : options.filterKeys) ?? props.filterKeys,
|
10117
10191
|
filterMode: props.filterMode,
|
10118
10192
|
noFilter: props.noFilter
|
10119
10193
|
});
|
@@ -10224,6 +10298,9 @@
|
|
10224
10298
|
}
|
10225
10299
|
function onKeydown(e) {
|
10226
10300
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
10301
|
+
if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
10302
|
+
e.preventDefault();
|
10303
|
+
}
|
10227
10304
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
10228
10305
|
menu.value = true;
|
10229
10306
|
}
|
@@ -10235,11 +10312,9 @@
|
|
10235
10312
|
}
|
10236
10313
|
if (e.key === 'ArrowDown') {
|
10237
10314
|
var _listRef$value;
|
10238
|
-
e.preventDefault();
|
10239
10315
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
10240
10316
|
} else if (e.key === 'ArrowUp') {
|
10241
10317
|
var _listRef$value2;
|
10242
|
-
e.preventDefault();
|
10243
10318
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
10244
10319
|
}
|
10245
10320
|
}
|
@@ -13568,7 +13643,9 @@
|
|
13568
13643
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
13569
13644
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
13570
13645
|
const length = selected.value.length;
|
13571
|
-
if (selectionIndex.value > -1
|
13646
|
+
if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
13647
|
+
e.preventDefault();
|
13648
|
+
}
|
13572
13649
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
13573
13650
|
menu.value = true;
|
13574
13651
|
}
|
@@ -13580,11 +13657,9 @@
|
|
13580
13657
|
}
|
13581
13658
|
if (e.key === 'ArrowDown') {
|
13582
13659
|
var _listRef$value;
|
13583
|
-
e.preventDefault();
|
13584
13660
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
13585
13661
|
} else if (e.key === 'ArrowUp') {
|
13586
13662
|
var _listRef$value2;
|
13587
|
-
e.preventDefault();
|
13588
13663
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
13589
13664
|
}
|
13590
13665
|
if (!props.multiple) return;
|
@@ -13618,7 +13693,7 @@
|
|
13618
13693
|
vTextFieldRef.value.setSelectionRange(0, 0);
|
13619
13694
|
}
|
13620
13695
|
}
|
13621
|
-
if (e.key === 'Enter') {
|
13696
|
+
if (e.key === 'Enter' && search.value) {
|
13622
13697
|
select(transformItem$1(props, search.value));
|
13623
13698
|
search.value = '';
|
13624
13699
|
}
|
@@ -13879,6 +13954,10 @@
|
|
13879
13954
|
});
|
13880
13955
|
}
|
13881
13956
|
});
|
13957
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
13958
|
+
'aria-haspopup': 'dialog',
|
13959
|
+
'aria-expanded': String(isActive.value)
|
13960
|
+
}, props.activatorProps));
|
13882
13961
|
useRender(() => {
|
13883
13962
|
const [overlayProps] = filterVOverlayProps(props);
|
13884
13963
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -13892,10 +13971,7 @@
|
|
13892
13971
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
13893
13972
|
"aria-role": "dialog",
|
13894
13973
|
"aria-modal": "true",
|
13895
|
-
"activatorProps":
|
13896
|
-
'aria-haspopup': 'dialog',
|
13897
|
-
'aria-expanded': String(isActive.value)
|
13898
|
-
}, props.activatorProps)
|
13974
|
+
"activatorProps": activatorProps.value
|
13899
13975
|
}, scopeId), {
|
13900
13976
|
activator: slots.activator,
|
13901
13977
|
default: function () {
|
@@ -14244,12 +14320,15 @@
|
|
14244
14320
|
onFocus();
|
14245
14321
|
vue.nextTick(() => {
|
14246
14322
|
model.value = [];
|
14247
|
-
if (inputRef != null && inputRef.value) {
|
14248
|
-
inputRef.value.value = '';
|
14249
|
-
}
|
14250
14323
|
callEvent(props['onClick:clear'], e);
|
14251
14324
|
});
|
14252
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
|
+
});
|
14253
14332
|
useRender(() => {
|
14254
14333
|
const hasCounter = !!(slots.counter || props.counter);
|
14255
14334
|
const hasDetails = !!(hasCounter || slots.details);
|
@@ -15240,7 +15319,7 @@
|
|
15240
15319
|
window.removeEventListener('touchmove', onTouchmove);
|
15241
15320
|
window.removeEventListener('touchend', onTouchend);
|
15242
15321
|
});
|
15243
|
-
const isHorizontal = vue.computed(() => position.value
|
15322
|
+
const isHorizontal = vue.computed(() => ['left', 'right'].includes(position.value));
|
15244
15323
|
const {
|
15245
15324
|
addMovement,
|
15246
15325
|
endTouch,
|
@@ -15252,11 +15331,11 @@
|
|
15252
15331
|
const offset = vue.ref(0);
|
15253
15332
|
let start;
|
15254
15333
|
function getOffset(pos, active) {
|
15255
|
-
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);
|
15256
15335
|
}
|
15257
15336
|
function getProgress(pos) {
|
15258
15337
|
let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
15259
|
-
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();
|
15260
15339
|
return limit ? Math.max(0, Math.min(1, progress)) : progress;
|
15261
15340
|
}
|
15262
15341
|
function onTouchstart(e) {
|
@@ -15264,8 +15343,8 @@
|
|
15264
15343
|
const touchX = e.changedTouches[0].clientX;
|
15265
15344
|
const touchY = e.changedTouches[0].clientY;
|
15266
15345
|
const touchZone = 25;
|
15267
|
-
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
15268
|
-
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());
|
15269
15348
|
if (inTouchZone || inElement || isActive.value && isTemporary.value) {
|
15270
15349
|
maybeDragging = true;
|
15271
15350
|
start = [touchX, touchY];
|
@@ -15317,6 +15396,7 @@
|
|
15317
15396
|
isActive.value = velocity.direction === ({
|
15318
15397
|
left: 'right',
|
15319
15398
|
right: 'left',
|
15399
|
+
top: 'down',
|
15320
15400
|
bottom: 'up'
|
15321
15401
|
}[position.value] || oops());
|
15322
15402
|
} else {
|
@@ -15325,7 +15405,7 @@
|
|
15325
15405
|
}
|
15326
15406
|
const dragStyles = vue.computed(() => {
|
15327
15407
|
return isDragging.value ? {
|
15328
|
-
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(),
|
15329
15409
|
transition: 'none'
|
15330
15410
|
} : undefined;
|
15331
15411
|
});
|
@@ -15341,7 +15421,7 @@
|
|
15341
15421
|
|
15342
15422
|
// Types
|
15343
15423
|
|
15344
|
-
const locations = ['start', 'end', 'left', 'right', 'bottom'];
|
15424
|
+
const locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];
|
15345
15425
|
const VNavigationDrawer = defineComponent({
|
15346
15426
|
name: 'VNavigationDrawer',
|
15347
15427
|
props: {
|
@@ -15798,7 +15878,7 @@
|
|
15798
15878
|
disabled: !!props.disabled || props.length < 2,
|
15799
15879
|
color: isActive ? props.activeColor : props.color,
|
15800
15880
|
ariaCurrent: isActive,
|
15801
|
-
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel,
|
15881
|
+
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
|
15802
15882
|
onClick: e => setValue(e, item)
|
15803
15883
|
}
|
15804
15884
|
};
|
@@ -17977,6 +18057,9 @@
|
|
17977
18057
|
if (props.transition) return props.transition;
|
17978
18058
|
return isActive.value ? 'scale-transition' : 'fade-transition';
|
17979
18059
|
});
|
18060
|
+
const activatorProps = vue.computed(() => vue.mergeProps({
|
18061
|
+
'aria-describedby': id.value
|
18062
|
+
}, props.activatorProps));
|
17980
18063
|
useRender(() => {
|
17981
18064
|
const [overlayProps] = filterVOverlayProps(props);
|
17982
18065
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
@@ -17993,9 +18076,7 @@
|
|
17993
18076
|
"persistent": true,
|
17994
18077
|
"role": "tooltip",
|
17995
18078
|
"eager": true,
|
17996
|
-
"activatorProps":
|
17997
|
-
'aria-describedby': id.value
|
17998
|
-
}, props.activatorProps),
|
18079
|
+
"activatorProps": activatorProps.value,
|
17999
18080
|
"_disableGlobalStack": true
|
18000
18081
|
}, scopeId), {
|
18001
18082
|
activator: slots.activator,
|
@@ -18944,7 +19025,7 @@
|
|
18944
19025
|
});
|
18945
19026
|
},
|
18946
19027
|
"item": item
|
18947
|
-
}, slots), isExpanded(item
|
19028
|
+
}, slots), isExpanded(item) && ((_slots$expandedRow = slots['expanded-row']) == null ? void 0 : _slots$expandedRow.call(slots, {
|
18948
19029
|
item,
|
18949
19030
|
columns: columns.value
|
18950
19031
|
}))]);
|
@@ -18982,7 +19063,7 @@
|
|
18982
19063
|
return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value);
|
18983
19064
|
});
|
18984
19065
|
const pageCount = vue.computed(() => {
|
18985
|
-
if (itemsPerPage.value === -1) return 1;
|
19066
|
+
if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
|
18986
19067
|
return Math.ceil(itemsLength.value / itemsPerPage.value);
|
18987
19068
|
});
|
18988
19069
|
vue.watchEffect(() => {
|
@@ -19085,7 +19166,7 @@
|
|
19085
19166
|
"hide-details": true
|
19086
19167
|
}, null)]), vue.createVNode("div", {
|
19087
19168
|
"class": "v-data-table-footer__info"
|
19088
|
-
}, [vue.createVNode("div", null, [
|
19169
|
+
}, [vue.createVNode("div", null, [!itemsLength.value ? 0 : startIndex.value + 1, vue.createTextVNode(" - "), stopIndex.value, vue.createTextVNode(" of "), itemsLength.value])]), vue.createVNode("div", {
|
19089
19170
|
"class": "v-data-table-footer__pagination"
|
19090
19171
|
}, [vue.createVNode(VBtn, {
|
19091
19172
|
"icon": props.firstIcon,
|
@@ -19153,18 +19234,14 @@
|
|
19153
19234
|
page,
|
19154
19235
|
itemsPerPage,
|
19155
19236
|
sortBy,
|
19156
|
-
|
19157
|
-
stopIndex,
|
19158
|
-
pageCount
|
19237
|
+
groupBy
|
19159
19238
|
} = _ref;
|
19160
19239
|
const vm = getCurrentInstance('VDataTable');
|
19161
19240
|
const options = vue.computed(() => ({
|
19162
19241
|
page: page.value,
|
19163
19242
|
itemsPerPage: itemsPerPage.value,
|
19164
|
-
|
19165
|
-
|
19166
|
-
pageCount: pageCount.value,
|
19167
|
-
sortBy: sortBy.value
|
19243
|
+
sortBy: sortBy.value,
|
19244
|
+
groupBy: groupBy.value
|
19168
19245
|
}));
|
19169
19246
|
|
19170
19247
|
// Reset page when sorting changes
|
@@ -19242,9 +19319,12 @@
|
|
19242
19319
|
const {
|
19243
19320
|
items
|
19244
19321
|
} = useDataTableItems(props, columns);
|
19322
|
+
const filterKeys = vue.computed(() => columns.value.map(c => 'columns.' + c.key));
|
19245
19323
|
const {
|
19246
19324
|
filteredItems
|
19247
|
-
} = useFilter(props, items, vue.toRef(props, 'search')
|
19325
|
+
} = useFilter(props, items, vue.toRef(props, 'search'), {
|
19326
|
+
filterKeys
|
19327
|
+
});
|
19248
19328
|
const {
|
19249
19329
|
sortBy
|
19250
19330
|
} = createSort(props);
|
@@ -19263,8 +19343,7 @@
|
|
19263
19343
|
page,
|
19264
19344
|
itemsPerPage,
|
19265
19345
|
startIndex,
|
19266
|
-
stopIndex
|
19267
|
-
pageCount
|
19346
|
+
stopIndex
|
19268
19347
|
} = createPagination(props, flatItems);
|
19269
19348
|
const {
|
19270
19349
|
paginatedItems
|
@@ -19276,9 +19355,7 @@
|
|
19276
19355
|
page,
|
19277
19356
|
itemsPerPage,
|
19278
19357
|
sortBy,
|
19279
|
-
|
19280
|
-
startIndex,
|
19281
|
-
stopIndex
|
19358
|
+
groupBy
|
19282
19359
|
});
|
19283
19360
|
provideDefaults({
|
19284
19361
|
VDataTableRows: {
|
@@ -19434,9 +19511,12 @@
|
|
19434
19511
|
const {
|
19435
19512
|
items
|
19436
19513
|
} = useDataTableItems(props, columns);
|
19514
|
+
const filterKeys = vue.computed(() => columns.value.map(c => 'columns.' + c.key));
|
19437
19515
|
const {
|
19438
19516
|
filteredItems
|
19439
|
-
} = useFilter(props, items, vue.toRef(props, 'search')
|
19517
|
+
} = useFilter(props, items, vue.toRef(props, 'search'), {
|
19518
|
+
filterKeys
|
19519
|
+
});
|
19440
19520
|
const {
|
19441
19521
|
sortBy
|
19442
19522
|
} = createSort(props);
|
@@ -19469,10 +19549,8 @@
|
|
19469
19549
|
useOptions({
|
19470
19550
|
sortBy,
|
19471
19551
|
page: vue.ref(1),
|
19472
|
-
|
19473
|
-
|
19474
|
-
pageCount: vue.ref(1),
|
19475
|
-
itemsPerPage: vue.ref(-1)
|
19552
|
+
itemsPerPage: vue.ref(-1),
|
19553
|
+
groupBy
|
19476
19554
|
});
|
19477
19555
|
provideDefaults({
|
19478
19556
|
VDataTableRows: {
|
@@ -19548,7 +19626,8 @@
|
|
19548
19626
|
...makeDataTableItemProps(),
|
19549
19627
|
...makeDataTableSelectProps(),
|
19550
19628
|
...makeDataTableSortProps(),
|
19551
|
-
...makeDataTablePaginateProps()
|
19629
|
+
...makeDataTablePaginateProps(),
|
19630
|
+
...makeDataTableGroupProps()
|
19552
19631
|
},
|
19553
19632
|
emits: {
|
19554
19633
|
'update:modelValue': value => true,
|
@@ -19557,6 +19636,7 @@
|
|
19557
19636
|
'update:sortBy': sortBy => true,
|
19558
19637
|
'update:options': options => true,
|
19559
19638
|
'update:expanded': options => true,
|
19639
|
+
'update:groupBy': value => true,
|
19560
19640
|
'click:row': (event, value) => true
|
19561
19641
|
},
|
19562
19642
|
setup(props, _ref) {
|
@@ -19564,10 +19644,12 @@
|
|
19564
19644
|
emit,
|
19565
19645
|
slots
|
19566
19646
|
} = _ref;
|
19647
|
+
const groupBy = useProxiedModel(props, 'groupBy');
|
19567
19648
|
createExpanded(props);
|
19568
19649
|
const {
|
19569
19650
|
columns
|
19570
19651
|
} = createHeaders(props, {
|
19652
|
+
groupBy,
|
19571
19653
|
showSelect: vue.toRef(props, 'showSelect'),
|
19572
19654
|
showExpand: vue.toRef(props, 'showExpand')
|
19573
19655
|
});
|
@@ -19578,21 +19660,22 @@
|
|
19578
19660
|
sortBy,
|
19579
19661
|
toggleSort
|
19580
19662
|
} = createSort(props);
|
19663
|
+
const {
|
19664
|
+
opened
|
19665
|
+
} = createGroupBy(props, groupBy, sortBy);
|
19581
19666
|
const {
|
19582
19667
|
page,
|
19583
|
-
itemsPerPage
|
19584
|
-
startIndex,
|
19585
|
-
stopIndex,
|
19586
|
-
pageCount
|
19668
|
+
itemsPerPage
|
19587
19669
|
} = createPagination(props, items);
|
19670
|
+
const {
|
19671
|
+
flatItems
|
19672
|
+
} = useGroupedItems(items, groupBy, opened);
|
19588
19673
|
createSelection(props, items);
|
19589
19674
|
useOptions({
|
19590
19675
|
page,
|
19591
19676
|
itemsPerPage,
|
19592
19677
|
sortBy,
|
19593
|
-
|
19594
|
-
stopIndex,
|
19595
|
-
pageCount
|
19678
|
+
groupBy
|
19596
19679
|
});
|
19597
19680
|
vue.provide('v-data-table', {
|
19598
19681
|
toggleSort,
|
@@ -19628,7 +19711,7 @@
|
|
19628
19711
|
"class": "v-data-table__tbody",
|
19629
19712
|
"role": "rowgroup"
|
19630
19713
|
}, [slots.body ? slots.body() : vue.createVNode(VDataTableRows, {
|
19631
|
-
"items":
|
19714
|
+
"items": flatItems.value,
|
19632
19715
|
"onClick:row": (event, value) => emit('click:row', event, value)
|
19633
19716
|
}, slots)]), (_slots$tbody = slots.tbody) == null ? void 0 : _slots$tbody.call(slots), (_slots$tfoot = slots.tfoot) == null ? void 0 : _slots$tfoot.call(slots)]);
|
19634
19717
|
}),
|
@@ -19919,6 +20002,7 @@
|
|
19919
20002
|
VDataTableRow: VDataTableRow,
|
19920
20003
|
VDataTableVirtual: VDataTableVirtual,
|
19921
20004
|
VDataTableServer: VDataTableServer,
|
20005
|
+
VDataTableFooter: VDataTableFooter,
|
19922
20006
|
VVirtualScroll: VVirtualScroll
|
19923
20007
|
});
|
19924
20008
|
|
@@ -20134,7 +20218,7 @@
|
|
20134
20218
|
locale
|
20135
20219
|
};
|
20136
20220
|
}
|
20137
|
-
const version$1 = "
|
20221
|
+
const version$1 = "4.0.0-dev-20230206.0";
|
20138
20222
|
createVuetify$1.version = version$1;
|
20139
20223
|
|
20140
20224
|
// Vue's inject() can only be used in setup
|
@@ -20147,7 +20231,7 @@
|
|
20147
20231
|
}
|
20148
20232
|
}
|
20149
20233
|
|
20150
|
-
const version = "
|
20234
|
+
const version = "4.0.0-dev-20230206.0";
|
20151
20235
|
|
20152
20236
|
const createVuetify = function () {
|
20153
20237
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|