vuetify 3.1.1 → 3.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +495 -483
- package/dist/json/importMap.json +58 -58
- package/dist/json/tags.json +4 -1
- package/dist/json/web-types.json +892 -839
- package/dist/vuetify-labs.css +356 -346
- package/dist/vuetify-labs.d.ts +257 -179
- package/dist/vuetify-labs.esm.js +432 -278
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +431 -277
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +94 -84
- package/dist/vuetify.d.ts +261 -194
- package/dist/vuetify.esm.js +346 -242
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +345 -241
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +731 -721
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +2 -2
- package/lib/blueprints/md1.d.ts +2 -2
- package/lib/blueprints/md2.d.ts +2 -2
- package/lib/blueprints/md3.d.ts +2 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +43 -20
- package/lib/components/VBtn/VBtn.mjs +16 -5
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VCard/VCard.mjs +5 -2
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +8 -2
- package/lib/components/VChip/VChip.mjs +18 -4
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.ts +15 -2
- package/lib/components/VChipGroup/VChipGroup.mjs +1 -0
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +5 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +43 -20
- package/lib/components/VDefaultsProvider/index.d.ts +5 -4
- package/lib/components/VDialog/VDialog.mjs +6 -5
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.ts +57 -34
- package/lib/components/VDivider/VDivider.mjs +6 -6
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VField/VField.mjs +28 -26
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.css +1 -0
- package/lib/components/VFileInput/VFileInput.mjs +7 -4
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +1 -0
- package/lib/components/VForm/index.d.ts +0 -3
- package/lib/components/VGrid/VGrid.css +5 -0
- package/lib/components/VGrid/VGrid.sass +5 -0
- package/lib/components/VList/VList.mjs +4 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +1 -1
- package/lib/components/VList/VListItem.mjs +34 -20
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +1 -1
- package/lib/components/VList/index.d.ts +20 -1
- package/lib/components/VMenu/VMenu.mjs +6 -5
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +57 -34
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +4 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +4 -0
- package/lib/components/VNavigationDrawer/index.d.ts +3 -3
- package/lib/components/VNavigationDrawer/touch.mjs +7 -6
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +34 -11
- package/lib/components/VOverlay/locationStrategies.mjs +40 -29
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +25 -16
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +1 -1
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs +13 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +18 -0
- package/lib/components/VSelect/VSelect.mjs +4 -4
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +43 -20
- package/lib/components/VSlider/VSliderThumb.mjs +5 -1
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.ts +42 -19
- package/lib/components/VTable/VTable.css +4 -4
- package/lib/components/VTable/VTable.sass +2 -2
- package/lib/components/VTooltip/VTooltip.mjs +4 -3
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/index.d.ts +57 -34
- package/lib/components/index.d.ts +247 -179
- package/lib/composables/defaults.mjs +1 -1
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/filter.mjs +3 -3
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/form.mjs +0 -1
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/teleport.mjs +6 -7
- package/lib/composables/teleport.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +14 -7
- package/lib/composables/toggleScope.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +17 -17
- package/lib/labs/VDataTable/VDataTable.mjs +10 -6
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +3 -3
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +36 -8
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +23 -10
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -2
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/group.mjs +9 -4
- package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +4 -2
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/sort.mjs +3 -5
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +11 -0
- package/lib/labs/components.d.ts +11 -0
- package/lib/locale/adapters/vue-i18n.mjs +12 -2
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/en.mjs +2 -2
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/sv.mjs +7 -7
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +21 -18
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +5 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.1.
|
|
2
|
+
* Vuetify v3.1.3
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
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
|
}
|
|
@@ -4384,9 +4398,69 @@ const Ripple = {
|
|
|
4384
4398
|
updated: updated$1
|
|
4385
4399
|
};
|
|
4386
4400
|
|
|
4401
|
+
// Composables
|
|
4402
|
+
|
|
4403
|
+
// Types
|
|
4404
|
+
|
|
4405
|
+
const oppositeMap = {
|
|
4406
|
+
center: 'center',
|
|
4407
|
+
top: 'bottom',
|
|
4408
|
+
bottom: 'top',
|
|
4409
|
+
left: 'right',
|
|
4410
|
+
right: 'left'
|
|
4411
|
+
};
|
|
4412
|
+
const makeLocationProps = propsFactory({
|
|
4413
|
+
location: String
|
|
4414
|
+
}, 'location');
|
|
4415
|
+
function useLocation(props) {
|
|
4416
|
+
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
4417
|
+
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
4418
|
+
const {
|
|
4419
|
+
isRtl
|
|
4420
|
+
} = useRtl();
|
|
4421
|
+
const locationStyles = computed(() => {
|
|
4422
|
+
if (!props.location) return {};
|
|
4423
|
+
const {
|
|
4424
|
+
side,
|
|
4425
|
+
align
|
|
4426
|
+
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
|
4427
|
+
function getOffset(side) {
|
|
4428
|
+
return offset ? offset(side) : 0;
|
|
4429
|
+
}
|
|
4430
|
+
const styles = {};
|
|
4431
|
+
if (side !== 'center') {
|
|
4432
|
+
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
|
4433
|
+
}
|
|
4434
|
+
if (align !== 'center') {
|
|
4435
|
+
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
|
4436
|
+
} else {
|
|
4437
|
+
if (side === 'center') styles.top = styles.left = '50%';else {
|
|
4438
|
+
styles[{
|
|
4439
|
+
top: 'left',
|
|
4440
|
+
bottom: 'left',
|
|
4441
|
+
left: 'top',
|
|
4442
|
+
right: 'top'
|
|
4443
|
+
}[side]] = '50%';
|
|
4444
|
+
}
|
|
4445
|
+
styles.transform = {
|
|
4446
|
+
top: 'translateX(-50%)',
|
|
4447
|
+
bottom: 'translateX(-50%)',
|
|
4448
|
+
left: 'translateY(-50%)',
|
|
4449
|
+
right: 'translateY(-50%)',
|
|
4450
|
+
center: 'translate(-50%, -50%)'
|
|
4451
|
+
}[side];
|
|
4452
|
+
}
|
|
4453
|
+
return styles;
|
|
4454
|
+
});
|
|
4455
|
+
return {
|
|
4456
|
+
locationStyles
|
|
4457
|
+
};
|
|
4458
|
+
}
|
|
4459
|
+
|
|
4387
4460
|
const VProgressLinear = defineComponent({
|
|
4388
4461
|
name: 'VProgressLinear',
|
|
4389
4462
|
props: {
|
|
4463
|
+
absolute: Boolean,
|
|
4390
4464
|
active: {
|
|
4391
4465
|
type: Boolean,
|
|
4392
4466
|
default: true
|
|
@@ -4416,6 +4490,9 @@ const VProgressLinear = defineComponent({
|
|
|
4416
4490
|
stream: Boolean,
|
|
4417
4491
|
striped: Boolean,
|
|
4418
4492
|
roundedBar: Boolean,
|
|
4493
|
+
...makeLocationProps({
|
|
4494
|
+
location: 'top'
|
|
4495
|
+
}),
|
|
4419
4496
|
...makeRoundedProps(),
|
|
4420
4497
|
...makeTagProps(),
|
|
4421
4498
|
...makeThemeProps()
|
|
@@ -4434,6 +4511,9 @@ const VProgressLinear = defineComponent({
|
|
|
4434
4511
|
const {
|
|
4435
4512
|
themeClasses
|
|
4436
4513
|
} = provideTheme(props);
|
|
4514
|
+
const {
|
|
4515
|
+
locationStyles
|
|
4516
|
+
} = useLocation(props);
|
|
4437
4517
|
const {
|
|
4438
4518
|
textColorClasses,
|
|
4439
4519
|
textColorStyles
|
|
@@ -4475,6 +4555,7 @@ const VProgressLinear = defineComponent({
|
|
|
4475
4555
|
useRender(() => createVNode(props.tag, {
|
|
4476
4556
|
"ref": intersectionRef,
|
|
4477
4557
|
"class": ['v-progress-linear', {
|
|
4558
|
+
'v-progress-linear--absolute': props.absolute,
|
|
4478
4559
|
'v-progress-linear--active': props.active && isIntersecting.value,
|
|
4479
4560
|
'v-progress-linear--reverse': isReversed.value,
|
|
4480
4561
|
'v-progress-linear--rounded': props.rounded,
|
|
@@ -4482,8 +4563,11 @@ const VProgressLinear = defineComponent({
|
|
|
4482
4563
|
'v-progress-linear--striped': props.striped
|
|
4483
4564
|
}, roundedClasses.value, themeClasses.value],
|
|
4484
4565
|
"style": {
|
|
4566
|
+
bottom: props.location === 'bottom' ? 0 : undefined,
|
|
4567
|
+
top: props.location === 'top' ? 0 : undefined,
|
|
4485
4568
|
height: props.active ? convertToUnit(height.value) : 0,
|
|
4486
|
-
'--v-progress-linear-height': convertToUnit(height.value)
|
|
4569
|
+
'--v-progress-linear-height': convertToUnit(height.value),
|
|
4570
|
+
...locationStyles.value
|
|
4487
4571
|
},
|
|
4488
4572
|
"role": "progressbar",
|
|
4489
4573
|
"aria-hidden": props.active ? 'false' : 'true',
|
|
@@ -4569,65 +4653,6 @@ function LoaderSlot(props, _ref) {
|
|
|
4569
4653
|
}, null)]);
|
|
4570
4654
|
}
|
|
4571
4655
|
|
|
4572
|
-
// Composables
|
|
4573
|
-
|
|
4574
|
-
// Types
|
|
4575
|
-
|
|
4576
|
-
const oppositeMap = {
|
|
4577
|
-
center: 'center',
|
|
4578
|
-
top: 'bottom',
|
|
4579
|
-
bottom: 'top',
|
|
4580
|
-
left: 'right',
|
|
4581
|
-
right: 'left'
|
|
4582
|
-
};
|
|
4583
|
-
const makeLocationProps = propsFactory({
|
|
4584
|
-
location: String
|
|
4585
|
-
}, 'location');
|
|
4586
|
-
function useLocation(props) {
|
|
4587
|
-
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
4588
|
-
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
4589
|
-
const {
|
|
4590
|
-
isRtl
|
|
4591
|
-
} = useRtl();
|
|
4592
|
-
const locationStyles = computed(() => {
|
|
4593
|
-
if (!props.location) return {};
|
|
4594
|
-
const {
|
|
4595
|
-
side,
|
|
4596
|
-
align
|
|
4597
|
-
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
|
4598
|
-
function getOffset(side) {
|
|
4599
|
-
return offset ? offset(side) : 0;
|
|
4600
|
-
}
|
|
4601
|
-
const styles = {};
|
|
4602
|
-
if (side !== 'center') {
|
|
4603
|
-
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
|
4604
|
-
}
|
|
4605
|
-
if (align !== 'center') {
|
|
4606
|
-
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
|
4607
|
-
} else {
|
|
4608
|
-
if (side === 'center') styles.top = styles.left = '50%';else {
|
|
4609
|
-
styles[{
|
|
4610
|
-
top: 'left',
|
|
4611
|
-
bottom: 'left',
|
|
4612
|
-
left: 'top',
|
|
4613
|
-
right: 'top'
|
|
4614
|
-
}[side]] = '50%';
|
|
4615
|
-
}
|
|
4616
|
-
styles.transform = {
|
|
4617
|
-
top: 'translateX(-50%)',
|
|
4618
|
-
bottom: 'translateX(-50%)',
|
|
4619
|
-
left: 'translateY(-50%)',
|
|
4620
|
-
right: 'translateY(-50%)',
|
|
4621
|
-
center: 'translate(-50%, -50%)'
|
|
4622
|
-
}[side];
|
|
4623
|
-
}
|
|
4624
|
-
return styles;
|
|
4625
|
-
});
|
|
4626
|
-
return {
|
|
4627
|
-
locationStyles
|
|
4628
|
-
};
|
|
4629
|
-
}
|
|
4630
|
-
|
|
4631
4656
|
// Utilities
|
|
4632
4657
|
|
|
4633
4658
|
// Types
|
|
@@ -4833,21 +4858,31 @@ const VBtn = defineComponent({
|
|
|
4833
4858
|
const group = useGroupItem(props, props.symbol, false);
|
|
4834
4859
|
const link = useLink(props, attrs);
|
|
4835
4860
|
const isActive = computed(() => {
|
|
4836
|
-
|
|
4837
|
-
|
|
4861
|
+
if (props.active !== undefined) {
|
|
4862
|
+
return props.active;
|
|
4863
|
+
}
|
|
4864
|
+
if (link.isLink.value) {
|
|
4865
|
+
var _link$isActive;
|
|
4866
|
+
return (_link$isActive = link.isActive) == null ? void 0 : _link$isActive.value;
|
|
4867
|
+
}
|
|
4868
|
+
return group == null ? void 0 : group.isSelected.value;
|
|
4838
4869
|
});
|
|
4839
4870
|
const isDisabled = computed(() => (group == null ? void 0 : group.disabled.value) || props.disabled);
|
|
4840
4871
|
const isElevated = computed(() => {
|
|
4841
4872
|
return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
|
|
4842
4873
|
});
|
|
4874
|
+
const valueAttr = computed(() => {
|
|
4875
|
+
if (props.value === undefined) return undefined;
|
|
4876
|
+
return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
|
|
4877
|
+
});
|
|
4843
4878
|
useSelectLink(link, group == null ? void 0 : group.select);
|
|
4844
4879
|
useRender(() => {
|
|
4845
|
-
var _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
|
4880
|
+
var _link$isActive2, _link$isActive3, _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
|
4846
4881
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
4847
|
-
const hasColor = !group || group.isSelected.value;
|
|
4848
4882
|
const hasPrepend = !!(props.prependIcon || slots.prepend);
|
|
4849
4883
|
const hasAppend = !!(props.appendIcon || slots.append);
|
|
4850
4884
|
const hasIcon = !!(props.icon && props.icon !== true);
|
|
4885
|
+
const hasColor = (group == null ? void 0 : group.isSelected.value) && (!link.isLink.value || ((_link$isActive2 = link.isActive) == null ? void 0 : _link$isActive2.value)) || !group || ((_link$isActive3 = link.isActive) == null ? void 0 : _link$isActive3.value);
|
|
4851
4886
|
return withDirectives(createVNode(Tag, {
|
|
4852
4887
|
"type": Tag === 'a' ? undefined : 'button',
|
|
4853
4888
|
"class": ['v-btn', group == null ? void 0 : group.selectedClass.value, {
|
|
@@ -4868,7 +4903,8 @@ const VBtn = defineComponent({
|
|
|
4868
4903
|
if (isDisabled.value) return;
|
|
4869
4904
|
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
|
4870
4905
|
group == null ? void 0 : group.toggle();
|
|
4871
|
-
}
|
|
4906
|
+
},
|
|
4907
|
+
"value": valueAttr.value
|
|
4872
4908
|
}, {
|
|
4873
4909
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createVNode(VDefaultsProvider, {
|
|
4874
4910
|
"key": "prepend",
|
|
@@ -5342,32 +5378,34 @@ const VField = genericComponent()({
|
|
|
5342
5378
|
if (hasLabel.value) {
|
|
5343
5379
|
const el = labelRef.value.$el;
|
|
5344
5380
|
const targetEl = floatingLabelRef.value.$el;
|
|
5345
|
-
|
|
5346
|
-
|
|
5347
|
-
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5351
|
-
|
|
5352
|
-
|
|
5353
|
-
|
|
5354
|
-
|
|
5355
|
-
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
|
|
5359
|
-
|
|
5360
|
-
|
|
5361
|
-
|
|
5362
|
-
|
|
5363
|
-
|
|
5364
|
-
|
|
5365
|
-
|
|
5366
|
-
|
|
5367
|
-
|
|
5368
|
-
|
|
5369
|
-
|
|
5370
|
-
|
|
5381
|
+
requestAnimationFrame(() => {
|
|
5382
|
+
const rect = nullifyTransforms(el);
|
|
5383
|
+
const targetRect = targetEl.getBoundingClientRect();
|
|
5384
|
+
const x = targetRect.x - rect.x;
|
|
5385
|
+
const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2);
|
|
5386
|
+
const targetWidth = targetRect.width / 0.75;
|
|
5387
|
+
const width = Math.abs(targetWidth - rect.width) > 1 ? {
|
|
5388
|
+
maxWidth: convertToUnit(targetWidth)
|
|
5389
|
+
} : undefined;
|
|
5390
|
+
const style = getComputedStyle(el);
|
|
5391
|
+
const targetStyle = getComputedStyle(targetEl);
|
|
5392
|
+
const duration = parseFloat(style.transitionDuration) * 1000 || 150;
|
|
5393
|
+
const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'));
|
|
5394
|
+
const color = targetStyle.getPropertyValue('color');
|
|
5395
|
+
el.style.visibility = 'visible';
|
|
5396
|
+
targetEl.style.visibility = 'hidden';
|
|
5397
|
+
animate(el, {
|
|
5398
|
+
transform: `translate(${x}px, ${y}px) scale(${scale})`,
|
|
5399
|
+
color,
|
|
5400
|
+
...width
|
|
5401
|
+
}, {
|
|
5402
|
+
duration,
|
|
5403
|
+
easing: standardEasing,
|
|
5404
|
+
direction: val ? 'normal' : 'reverse'
|
|
5405
|
+
}).finished.then(() => {
|
|
5406
|
+
el.style.removeProperty('visibility');
|
|
5407
|
+
targetEl.style.removeProperty('visibility');
|
|
5408
|
+
});
|
|
5371
5409
|
});
|
|
5372
5410
|
}
|
|
5373
5411
|
}, {
|
|
@@ -5556,7 +5594,6 @@ const FormKey = Symbol.for('vuetify:form');
|
|
|
5556
5594
|
const makeFormProps = propsFactory({
|
|
5557
5595
|
disabled: Boolean,
|
|
5558
5596
|
fastFail: Boolean,
|
|
5559
|
-
lazyValidation: Boolean,
|
|
5560
5597
|
readonly: Boolean,
|
|
5561
5598
|
modelValue: {
|
|
5562
5599
|
type: Boolean,
|
|
@@ -6701,6 +6738,7 @@ const VChipGroup = defineComponent({
|
|
|
6701
6738
|
provideDefaults({
|
|
6702
6739
|
VChip: {
|
|
6703
6740
|
color: toRef(props, 'color'),
|
|
6741
|
+
disabled: toRef(props, 'disabled'),
|
|
6704
6742
|
filter: toRef(props, 'filter'),
|
|
6705
6743
|
variant: toRef(props, 'variant')
|
|
6706
6744
|
}
|
|
@@ -6750,7 +6788,10 @@ const VChip = defineComponent({
|
|
|
6750
6788
|
default: '$complete'
|
|
6751
6789
|
},
|
|
6752
6790
|
label: Boolean,
|
|
6753
|
-
link:
|
|
6791
|
+
link: {
|
|
6792
|
+
type: Boolean,
|
|
6793
|
+
default: undefined
|
|
6794
|
+
},
|
|
6754
6795
|
pill: Boolean,
|
|
6755
6796
|
prependAvatar: String,
|
|
6756
6797
|
prependIcon: IconValue,
|
|
@@ -6763,6 +6804,8 @@ const VChip = defineComponent({
|
|
|
6763
6804
|
type: Boolean,
|
|
6764
6805
|
default: true
|
|
6765
6806
|
},
|
|
6807
|
+
onClick: EventProp,
|
|
6808
|
+
onClickOnce: EventProp,
|
|
6766
6809
|
...makeBorderProps(),
|
|
6767
6810
|
...makeDensityProps(),
|
|
6768
6811
|
...makeElevationProps(),
|
|
@@ -6816,7 +6859,8 @@ const VChip = defineComponent({
|
|
|
6816
6859
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
6817
6860
|
const group = useGroupItem(props, VChipGroupSymbol, false);
|
|
6818
6861
|
const link = useLink(props, attrs);
|
|
6819
|
-
const
|
|
6862
|
+
const isLink = computed(() => props.link !== false && link.isLink.value);
|
|
6863
|
+
const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
|
|
6820
6864
|
function onCloseClick(e) {
|
|
6821
6865
|
isActive.value = false;
|
|
6822
6866
|
emit('click:close', e);
|
|
@@ -6828,6 +6872,12 @@ const VChip = defineComponent({
|
|
|
6828
6872
|
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
|
6829
6873
|
group == null ? void 0 : group.toggle();
|
|
6830
6874
|
}
|
|
6875
|
+
function onKeyDown(e) {
|
|
6876
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
6877
|
+
e.preventDefault();
|
|
6878
|
+
onClick(e);
|
|
6879
|
+
}
|
|
6880
|
+
}
|
|
6831
6881
|
return () => {
|
|
6832
6882
|
var _slots$default;
|
|
6833
6883
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
@@ -6848,7 +6898,9 @@ const VChip = defineComponent({
|
|
|
6848
6898
|
"disabled": props.disabled || undefined,
|
|
6849
6899
|
"draggable": props.draggable,
|
|
6850
6900
|
"href": link.href.value,
|
|
6851
|
-
"
|
|
6901
|
+
"tabindex": isClickable.value ? 0 : undefined,
|
|
6902
|
+
"onClick": onClick,
|
|
6903
|
+
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
6852
6904
|
}, {
|
|
6853
6905
|
default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && createVNode(VDefaultsProvider, {
|
|
6854
6906
|
"key": "filter",
|
|
@@ -6945,9 +6997,9 @@ const VDivider = defineComponent({
|
|
|
6945
6997
|
themeClasses
|
|
6946
6998
|
} = provideTheme(props);
|
|
6947
6999
|
const {
|
|
6948
|
-
|
|
6949
|
-
|
|
6950
|
-
} =
|
|
7000
|
+
textColorClasses,
|
|
7001
|
+
textColorStyles
|
|
7002
|
+
} = useTextColor(toRef(props, 'color'));
|
|
6951
7003
|
const dividerStyles = computed(() => {
|
|
6952
7004
|
const styles = {};
|
|
6953
7005
|
if (props.length) {
|
|
@@ -6963,8 +7015,8 @@ const VDivider = defineComponent({
|
|
|
6963
7015
|
'v-divider': true,
|
|
6964
7016
|
'v-divider--inset': props.inset,
|
|
6965
7017
|
'v-divider--vertical': props.vertical
|
|
6966
|
-
}, themeClasses.value,
|
|
6967
|
-
"style": [dividerStyles.value,
|
|
7018
|
+
}, themeClasses.value, textColorClasses.value],
|
|
7019
|
+
"style": [dividerStyles.value, textColorStyles.value],
|
|
6968
7020
|
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
|
6969
7021
|
"role": `${attrs.role || 'separator'}`
|
|
6970
7022
|
}, null));
|
|
@@ -7564,6 +7616,10 @@ const VListItem = genericComponent()({
|
|
|
7564
7616
|
nav: Boolean,
|
|
7565
7617
|
prependAvatar: String,
|
|
7566
7618
|
prependIcon: IconValue,
|
|
7619
|
+
ripple: {
|
|
7620
|
+
type: Boolean,
|
|
7621
|
+
default: true
|
|
7622
|
+
},
|
|
7567
7623
|
subtitle: [String, Number, Boolean],
|
|
7568
7624
|
title: [String, Number, Boolean],
|
|
7569
7625
|
value: null,
|
|
@@ -7670,7 +7726,7 @@ const VListItem = genericComponent()({
|
|
|
7670
7726
|
}
|
|
7671
7727
|
}
|
|
7672
7728
|
useRender(() => {
|
|
7673
|
-
var _slots$
|
|
7729
|
+
var _slots$title, _slots$subtitle, _slots$default;
|
|
7674
7730
|
const Tag = isLink.value ? 'a' : props.tag;
|
|
7675
7731
|
const hasColor = !list || isSelected.value || isActive.value;
|
|
7676
7732
|
const hasTitle = slots.title || props.title;
|
|
@@ -7693,7 +7749,18 @@ const VListItem = genericComponent()({
|
|
|
7693
7749
|
"onClick": onClick,
|
|
7694
7750
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
7695
7751
|
}, {
|
|
7696
|
-
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createVNode(
|
|
7752
|
+
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createVNode("div", {
|
|
7753
|
+
"key": "prepend",
|
|
7754
|
+
"class": "v-list-item__prepend"
|
|
7755
|
+
}, [props.prependAvatar && createVNode(VAvatar, {
|
|
7756
|
+
"key": "prepend-avatar",
|
|
7757
|
+
"density": props.density,
|
|
7758
|
+
"image": props.prependAvatar
|
|
7759
|
+
}, null), props.prependIcon && createVNode(VIcon, {
|
|
7760
|
+
"key": "prepend-icon",
|
|
7761
|
+
"density": props.density,
|
|
7762
|
+
"icon": props.prependIcon
|
|
7763
|
+
}, null), slots.prepend && createVNode(VDefaultsProvider, {
|
|
7697
7764
|
"key": "prepend",
|
|
7698
7765
|
"defaults": {
|
|
7699
7766
|
VAvatar: {
|
|
@@ -7709,14 +7776,8 @@ const VListItem = genericComponent()({
|
|
|
7709
7776
|
}
|
|
7710
7777
|
}
|
|
7711
7778
|
}, {
|
|
7712
|
-
default: () => [
|
|
7713
|
-
|
|
7714
|
-
}, [props.prependAvatar && createVNode(VAvatar, {
|
|
7715
|
-
"key": "prepend-avatar"
|
|
7716
|
-
}, null), props.prependIcon && createVNode(VIcon, {
|
|
7717
|
-
"key": "prepend-icon"
|
|
7718
|
-
}, null), (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value)])]
|
|
7719
|
-
}), createVNode("div", {
|
|
7779
|
+
default: () => [slots.prepend(slotProps.value)]
|
|
7780
|
+
})]), createVNode("div", {
|
|
7720
7781
|
"class": "v-list-item__content",
|
|
7721
7782
|
"data-no-activator": ""
|
|
7722
7783
|
}, [hasTitle && createVNode(VListItemTitle, {
|
|
@@ -7731,7 +7792,10 @@ const VListItem = genericComponent()({
|
|
|
7731
7792
|
default: () => [((_slots$subtitle = slots.subtitle) == null ? void 0 : _slots$subtitle.call(slots, {
|
|
7732
7793
|
subtitle: props.subtitle
|
|
7733
7794
|
})) ?? props.subtitle]
|
|
7734
|
-
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && createVNode(
|
|
7795
|
+
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && createVNode("div", {
|
|
7796
|
+
"key": "append",
|
|
7797
|
+
"class": "v-list-item__append"
|
|
7798
|
+
}, [slots.append && createVNode(VDefaultsProvider, {
|
|
7735
7799
|
"key": "append",
|
|
7736
7800
|
"defaults": {
|
|
7737
7801
|
VAvatar: {
|
|
@@ -7747,15 +7811,17 @@ const VListItem = genericComponent()({
|
|
|
7747
7811
|
}
|
|
7748
7812
|
}
|
|
7749
7813
|
}, {
|
|
7750
|
-
default: () => [
|
|
7751
|
-
|
|
7752
|
-
|
|
7753
|
-
|
|
7754
|
-
|
|
7755
|
-
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
|
|
7814
|
+
default: () => [slots.append(slotProps.value)]
|
|
7815
|
+
}), props.appendIcon && createVNode(VIcon, {
|
|
7816
|
+
"key": "append-icon",
|
|
7817
|
+
"density": props.density,
|
|
7818
|
+
"icon": props.appendIcon
|
|
7819
|
+
}, null), props.appendAvatar && createVNode(VAvatar, {
|
|
7820
|
+
"key": "append-avatar",
|
|
7821
|
+
"density": props.density,
|
|
7822
|
+
"image": props.appendAvatar
|
|
7823
|
+
}, null)])]
|
|
7824
|
+
}), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
7759
7825
|
});
|
|
7760
7826
|
return {};
|
|
7761
7827
|
}
|
|
@@ -7968,9 +8034,12 @@ function useItems(props) {
|
|
|
7968
8034
|
|
|
7969
8035
|
// Types
|
|
7970
8036
|
|
|
8037
|
+
function isPrimitive(value) {
|
|
8038
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
|
8039
|
+
}
|
|
7971
8040
|
function transformItem(props, item) {
|
|
7972
8041
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
|
7973
|
-
const title =
|
|
8042
|
+
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
|
7974
8043
|
const value = getPropertyFromItem(item, props.itemValue, undefined);
|
|
7975
8044
|
const children = getPropertyFromItem(item, props.itemChildren);
|
|
7976
8045
|
const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps);
|
|
@@ -8596,17 +8665,12 @@ const makeLocationStrategyProps = propsFactory({
|
|
|
8596
8665
|
function useLocationStrategies(props, data) {
|
|
8597
8666
|
const contentStyles = ref({});
|
|
8598
8667
|
const updateLocation = ref();
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
scope = effectScope();
|
|
8606
|
-
if (!(props.locationStrategy === 'connected')) {
|
|
8607
|
-
await nextTick();
|
|
8608
|
-
}
|
|
8609
|
-
scope.run(() => {
|
|
8668
|
+
if (IN_BROWSER) {
|
|
8669
|
+
useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {
|
|
8670
|
+
watch(() => props.locationStrategy, reset);
|
|
8671
|
+
onScopeDispose(() => {
|
|
8672
|
+
updateLocation.value = undefined;
|
|
8673
|
+
});
|
|
8610
8674
|
if (typeof props.locationStrategy === 'function') {
|
|
8611
8675
|
var _props$locationStrate;
|
|
8612
8676
|
updateLocation.value = (_props$locationStrate = props.locationStrategy(data, props, contentStyles)) == null ? void 0 : _props$locationStrate.updateLocation;
|
|
@@ -8615,16 +8679,14 @@ function useLocationStrategies(props, data) {
|
|
|
8615
8679
|
updateLocation.value = (_locationStrategies$p = locationStrategies[props.locationStrategy](data, props, contentStyles)) == null ? void 0 : _locationStrategies$p.updateLocation;
|
|
8616
8680
|
}
|
|
8617
8681
|
});
|
|
8618
|
-
|
|
8619
|
-
|
|
8620
|
-
|
|
8621
|
-
|
|
8622
|
-
|
|
8623
|
-
|
|
8624
|
-
|
|
8625
|
-
|
|
8626
|
-
(_scope2 = scope) == null ? void 0 : _scope2.stop();
|
|
8627
|
-
});
|
|
8682
|
+
window.addEventListener('resize', onResize, {
|
|
8683
|
+
passive: true
|
|
8684
|
+
});
|
|
8685
|
+
onScopeDispose(() => {
|
|
8686
|
+
window.removeEventListener('resize', onResize);
|
|
8687
|
+
updateLocation.value = undefined;
|
|
8688
|
+
});
|
|
8689
|
+
}
|
|
8628
8690
|
function onResize(e) {
|
|
8629
8691
|
var _updateLocation$value;
|
|
8630
8692
|
(_updateLocation$value = updateLocation.value) == null ? void 0 : _updateLocation$value.call(updateLocation, e);
|
|
@@ -8918,13 +8980,30 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
8918
8980
|
maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),
|
|
8919
8981
|
maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))
|
|
8920
8982
|
});
|
|
8983
|
+
return {
|
|
8984
|
+
available,
|
|
8985
|
+
contentBox
|
|
8986
|
+
};
|
|
8921
8987
|
}
|
|
8922
|
-
watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation()
|
|
8923
|
-
|
|
8924
|
-
|
|
8925
|
-
|
|
8926
|
-
|
|
8927
|
-
|
|
8988
|
+
watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());
|
|
8989
|
+
nextTick(() => {
|
|
8990
|
+
const result = updateLocation();
|
|
8991
|
+
|
|
8992
|
+
// TODO: overflowing content should only require a single updateLocation call
|
|
8993
|
+
// Icky hack to make sure the content is positioned consistently
|
|
8994
|
+
if (!result) return;
|
|
8995
|
+
const {
|
|
8996
|
+
available,
|
|
8997
|
+
contentBox
|
|
8998
|
+
} = result;
|
|
8999
|
+
if (contentBox.height > available.y) {
|
|
9000
|
+
requestAnimationFrame(() => {
|
|
9001
|
+
updateLocation();
|
|
9002
|
+
requestAnimationFrame(() => {
|
|
9003
|
+
updateLocation();
|
|
9004
|
+
});
|
|
9005
|
+
});
|
|
9006
|
+
}
|
|
8928
9007
|
});
|
|
8929
9008
|
return {
|
|
8930
9009
|
updateLocation
|
|
@@ -8992,10 +9071,10 @@ function useScrollStrategies(props, data) {
|
|
|
8992
9071
|
await nextTick();
|
|
8993
9072
|
scope.run(() => {
|
|
8994
9073
|
if (typeof props.scrollStrategy === 'function') {
|
|
8995
|
-
props.scrollStrategy(data, props);
|
|
9074
|
+
props.scrollStrategy(data, props, scope);
|
|
8996
9075
|
} else {
|
|
8997
9076
|
var _scrollStrategies$pro;
|
|
8998
|
-
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props);
|
|
9077
|
+
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props, scope);
|
|
8999
9078
|
}
|
|
9000
9079
|
});
|
|
9001
9080
|
});
|
|
@@ -9041,9 +9120,10 @@ function blockScrollStrategy(data, props) {
|
|
|
9041
9120
|
}
|
|
9042
9121
|
});
|
|
9043
9122
|
}
|
|
9044
|
-
function repositionScrollStrategy(data) {
|
|
9123
|
+
function repositionScrollStrategy(data, props, scope) {
|
|
9045
9124
|
let slow = false;
|
|
9046
9125
|
let raf = -1;
|
|
9126
|
+
let ric = -1;
|
|
9047
9127
|
function update(e) {
|
|
9048
9128
|
requestNewFrame(() => {
|
|
9049
9129
|
var _data$updateLocation$, _data$updateLocation;
|
|
@@ -9053,21 +9133,29 @@ function repositionScrollStrategy(data) {
|
|
|
9053
9133
|
slow = time / (1000 / 60) > 2;
|
|
9054
9134
|
});
|
|
9055
9135
|
}
|
|
9056
|
-
|
|
9057
|
-
|
|
9058
|
-
|
|
9059
|
-
|
|
9060
|
-
|
|
9061
|
-
|
|
9062
|
-
|
|
9063
|
-
|
|
9064
|
-
|
|
9136
|
+
ric = requestIdleCallback(() => {
|
|
9137
|
+
scope.run(() => {
|
|
9138
|
+
bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {
|
|
9139
|
+
if (slow) {
|
|
9140
|
+
// If the position calculation is slow,
|
|
9141
|
+
// defer updates until scrolling is finished.
|
|
9142
|
+
// Browsers usually fire one scroll event per frame so
|
|
9143
|
+
// we just wait until we've got two frames without an event
|
|
9144
|
+
cancelAnimationFrame(raf);
|
|
9145
|
+
raf = requestAnimationFrame(() => {
|
|
9146
|
+
raf = requestAnimationFrame(() => {
|
|
9147
|
+
update(e);
|
|
9148
|
+
});
|
|
9149
|
+
});
|
|
9150
|
+
} else {
|
|
9065
9151
|
update(e);
|
|
9066
|
-
}
|
|
9152
|
+
}
|
|
9067
9153
|
});
|
|
9068
|
-
}
|
|
9069
|
-
|
|
9070
|
-
|
|
9154
|
+
});
|
|
9155
|
+
});
|
|
9156
|
+
onScopeDispose(() => {
|
|
9157
|
+
cancelIdleCallback(ric);
|
|
9158
|
+
cancelAnimationFrame(raf);
|
|
9071
9159
|
});
|
|
9072
9160
|
}
|
|
9073
9161
|
|
|
@@ -9296,19 +9384,18 @@ function useTeleport(target) {
|
|
|
9296
9384
|
warn(`Unable to locate target ${_target}`);
|
|
9297
9385
|
return undefined;
|
|
9298
9386
|
}
|
|
9299
|
-
|
|
9300
|
-
|
|
9301
|
-
|
|
9302
|
-
|
|
9303
|
-
|
|
9387
|
+
let container = targetElement.querySelector('.v-overlay-container');
|
|
9388
|
+
if (!container) {
|
|
9389
|
+
container = document.createElement('div');
|
|
9390
|
+
container.className = 'v-overlay-container';
|
|
9391
|
+
targetElement.appendChild(container);
|
|
9304
9392
|
}
|
|
9305
|
-
return
|
|
9393
|
+
return container;
|
|
9306
9394
|
});
|
|
9307
9395
|
return {
|
|
9308
9396
|
teleportTarget
|
|
9309
9397
|
};
|
|
9310
9398
|
}
|
|
9311
|
-
useTeleport.cache = new WeakMap();
|
|
9312
9399
|
|
|
9313
9400
|
function defaultConditional() {
|
|
9314
9401
|
return true;
|
|
@@ -9711,6 +9798,11 @@ const VMenu = genericComponent()({
|
|
|
9711
9798
|
function onClickOutside() {
|
|
9712
9799
|
parent == null ? void 0 : parent.closeParents();
|
|
9713
9800
|
}
|
|
9801
|
+
const activatorProps = computed(() => mergeProps({
|
|
9802
|
+
'aria-haspopup': 'menu',
|
|
9803
|
+
'aria-expanded': String(isActive.value),
|
|
9804
|
+
'aria-owns': id.value
|
|
9805
|
+
}, props.activatorProps));
|
|
9714
9806
|
useRender(() => {
|
|
9715
9807
|
const [overlayProps] = filterVOverlayProps(props);
|
|
9716
9808
|
return createVNode(VOverlay, mergeProps({
|
|
@@ -9720,11 +9812,7 @@ const VMenu = genericComponent()({
|
|
|
9720
9812
|
"modelValue": isActive.value,
|
|
9721
9813
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
9722
9814
|
"absolute": true,
|
|
9723
|
-
"activatorProps":
|
|
9724
|
-
'aria-haspopup': 'menu',
|
|
9725
|
-
'aria-expanded': String(isActive.value),
|
|
9726
|
-
'aria-owns': id.value
|
|
9727
|
-
}, props.activatorProps),
|
|
9815
|
+
"activatorProps": activatorProps.value,
|
|
9728
9816
|
"onClick:outside": onClickOutside
|
|
9729
9817
|
}, scopeId), {
|
|
9730
9818
|
activator: slots.activator,
|
|
@@ -9838,8 +9926,10 @@ const VSelect = genericComponent()({
|
|
|
9838
9926
|
}
|
|
9839
9927
|
function onKeydown(e) {
|
|
9840
9928
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
|
9841
|
-
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
|
9929
|
+
if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
|
|
9842
9930
|
e.preventDefault();
|
|
9931
|
+
}
|
|
9932
|
+
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
|
9843
9933
|
menu.value = true;
|
|
9844
9934
|
}
|
|
9845
9935
|
if (['Escape', 'Tab'].includes(e.key)) {
|
|
@@ -9850,15 +9940,12 @@ const VSelect = genericComponent()({
|
|
|
9850
9940
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
|
9851
9941
|
} else if (e.key === 'ArrowUp') {
|
|
9852
9942
|
var _listRef$value2;
|
|
9853
|
-
e.preventDefault();
|
|
9854
9943
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
|
9855
9944
|
} else if (e.key === 'Home') {
|
|
9856
9945
|
var _listRef$value3;
|
|
9857
|
-
e.preventDefault();
|
|
9858
9946
|
(_listRef$value3 = listRef.value) == null ? void 0 : _listRef$value3.focus('first');
|
|
9859
9947
|
} else if (e.key === 'End') {
|
|
9860
9948
|
var _listRef$value4;
|
|
9861
|
-
e.preventDefault();
|
|
9862
9949
|
(_listRef$value4 = listRef.value) == null ? void 0 : _listRef$value4.focus('last');
|
|
9863
9950
|
}
|
|
9864
9951
|
}
|
|
@@ -9924,6 +10011,7 @@ const VSelect = genericComponent()({
|
|
|
9924
10011
|
"activator": "parent",
|
|
9925
10012
|
"contentClass": "v-select__content",
|
|
9926
10013
|
"eager": props.eager,
|
|
10014
|
+
"maxHeight": 310,
|
|
9927
10015
|
"openOnClick": false,
|
|
9928
10016
|
"closeOnContentClick": false,
|
|
9929
10017
|
"transition": props.transition
|
|
@@ -10039,7 +10127,7 @@ function filterItems(items, query, options) {
|
|
|
10039
10127
|
const customFiltersLength = Object.keys((options == null ? void 0 : options.customKeyFilter) ?? {}).length;
|
|
10040
10128
|
if (!(items != null && items.length)) return array;
|
|
10041
10129
|
loop: for (let i = 0; i < items.length; i++) {
|
|
10042
|
-
const item = items[i]
|
|
10130
|
+
const item = items[i];
|
|
10043
10131
|
const customMatches = {};
|
|
10044
10132
|
const defaultMatches = {};
|
|
10045
10133
|
let match = -1;
|
|
@@ -10079,7 +10167,7 @@ function filterItems(items, query, options) {
|
|
|
10079
10167
|
}
|
|
10080
10168
|
return array;
|
|
10081
10169
|
}
|
|
10082
|
-
function useFilter(props, items, query) {
|
|
10170
|
+
function useFilter(props, items, query, options) {
|
|
10083
10171
|
const strQuery = computed(() => typeof (query == null ? void 0 : query.value) !== 'string' && typeof (query == null ? void 0 : query.value) !== 'number' ? '' : String(query.value));
|
|
10084
10172
|
const filteredItems = ref([]);
|
|
10085
10173
|
const filteredMatches = ref(new Map());
|
|
@@ -10090,7 +10178,7 @@ function useFilter(props, items, query) {
|
|
|
10090
10178
|
const results = filterItems(transformedItems, strQuery.value, {
|
|
10091
10179
|
customKeyFilter: props.customKeyFilter,
|
|
10092
10180
|
default: props.customFilter,
|
|
10093
|
-
filterKeys: props.filterKeys,
|
|
10181
|
+
filterKeys: unref(options == null ? void 0 : options.filterKeys) ?? props.filterKeys,
|
|
10094
10182
|
filterMode: props.filterMode,
|
|
10095
10183
|
noFilter: props.noFilter
|
|
10096
10184
|
});
|
|
@@ -10201,6 +10289,9 @@ const VAutocomplete = genericComponent()({
|
|
|
10201
10289
|
}
|
|
10202
10290
|
function onKeydown(e) {
|
|
10203
10291
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
|
10292
|
+
if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
|
10293
|
+
e.preventDefault();
|
|
10294
|
+
}
|
|
10204
10295
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
|
10205
10296
|
menu.value = true;
|
|
10206
10297
|
}
|
|
@@ -10212,11 +10303,9 @@ const VAutocomplete = genericComponent()({
|
|
|
10212
10303
|
}
|
|
10213
10304
|
if (e.key === 'ArrowDown') {
|
|
10214
10305
|
var _listRef$value;
|
|
10215
|
-
e.preventDefault();
|
|
10216
10306
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
|
10217
10307
|
} else if (e.key === 'ArrowUp') {
|
|
10218
10308
|
var _listRef$value2;
|
|
10219
|
-
e.preventDefault();
|
|
10220
10309
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
|
10221
10310
|
}
|
|
10222
10311
|
}
|
|
@@ -10313,6 +10402,7 @@ const VAutocomplete = genericComponent()({
|
|
|
10313
10402
|
"activator": "parent",
|
|
10314
10403
|
"contentClass": "v-autocomplete__content",
|
|
10315
10404
|
"eager": props.eager,
|
|
10405
|
+
"maxHeight": 310,
|
|
10316
10406
|
"openOnClick": false,
|
|
10317
10407
|
"closeOnContentClick": false,
|
|
10318
10408
|
"transition": props.transition,
|
|
@@ -11021,7 +11111,10 @@ const VCard = defineComponent({
|
|
|
11021
11111
|
},
|
|
11022
11112
|
prependAvatar: String,
|
|
11023
11113
|
prependIcon: IconValue,
|
|
11024
|
-
ripple:
|
|
11114
|
+
ripple: {
|
|
11115
|
+
type: Boolean,
|
|
11116
|
+
default: true
|
|
11117
|
+
},
|
|
11025
11118
|
subtitle: String,
|
|
11026
11119
|
text: String,
|
|
11027
11120
|
title: String,
|
|
@@ -11142,7 +11235,7 @@ const VCard = defineComponent({
|
|
|
11142
11235
|
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), slots.actions && createVNode(VCardActions, null, {
|
|
11143
11236
|
default: slots.actions
|
|
11144
11237
|
}), genOverlays(isClickable.value, 'v-card')]
|
|
11145
|
-
}), [[resolveDirective("ripple"), isClickable.value]]);
|
|
11238
|
+
}), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
11146
11239
|
});
|
|
11147
11240
|
return {};
|
|
11148
11241
|
}
|
|
@@ -12435,6 +12528,10 @@ const VSliderThumb = defineComponent({
|
|
|
12435
12528
|
position: {
|
|
12436
12529
|
type: Number,
|
|
12437
12530
|
required: true
|
|
12531
|
+
},
|
|
12532
|
+
ripple: {
|
|
12533
|
+
type: Boolean,
|
|
12534
|
+
default: true
|
|
12438
12535
|
}
|
|
12439
12536
|
},
|
|
12440
12537
|
emits: {
|
|
@@ -12535,7 +12632,7 @@ const VSliderThumb = defineComponent({
|
|
|
12535
12632
|
}, null), withDirectives(createVNode("div", {
|
|
12536
12633
|
"class": ['v-slider-thumb__ripple', textColorClasses.value],
|
|
12537
12634
|
"style": textColorStyles.value
|
|
12538
|
-
}, null), [[resolveDirective("ripple"),
|
|
12635
|
+
}, null), [[resolveDirective("ripple"), props.ripple, null, {
|
|
12539
12636
|
circle: true,
|
|
12540
12637
|
center: true
|
|
12541
12638
|
}]]), createVNode(VScaleTransition, {
|
|
@@ -13537,7 +13634,9 @@ const VCombobox = genericComponent()({
|
|
|
13537
13634
|
if (props.readonly || form != null && form.isReadonly.value) return;
|
|
13538
13635
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
13539
13636
|
const length = selected.value.length;
|
|
13540
|
-
if (selectionIndex.value > -1
|
|
13637
|
+
if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
|
13638
|
+
e.preventDefault();
|
|
13639
|
+
}
|
|
13541
13640
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
|
13542
13641
|
menu.value = true;
|
|
13543
13642
|
}
|
|
@@ -13549,11 +13648,9 @@ const VCombobox = genericComponent()({
|
|
|
13549
13648
|
}
|
|
13550
13649
|
if (e.key === 'ArrowDown') {
|
|
13551
13650
|
var _listRef$value;
|
|
13552
|
-
e.preventDefault();
|
|
13553
13651
|
(_listRef$value = listRef.value) == null ? void 0 : _listRef$value.focus('next');
|
|
13554
13652
|
} else if (e.key === 'ArrowUp') {
|
|
13555
13653
|
var _listRef$value2;
|
|
13556
|
-
e.preventDefault();
|
|
13557
13654
|
(_listRef$value2 = listRef.value) == null ? void 0 : _listRef$value2.focus('prev');
|
|
13558
13655
|
}
|
|
13559
13656
|
if (!props.multiple) return;
|
|
@@ -13587,7 +13684,7 @@ const VCombobox = genericComponent()({
|
|
|
13587
13684
|
vTextFieldRef.value.setSelectionRange(0, 0);
|
|
13588
13685
|
}
|
|
13589
13686
|
}
|
|
13590
|
-
if (e.key === 'Enter') {
|
|
13687
|
+
if (e.key === 'Enter' && search.value) {
|
|
13591
13688
|
select(transformItem$1(props, search.value));
|
|
13592
13689
|
search.value = '';
|
|
13593
13690
|
}
|
|
@@ -13676,6 +13773,7 @@ const VCombobox = genericComponent()({
|
|
|
13676
13773
|
"activator": "parent",
|
|
13677
13774
|
"contentClass": "v-combobox__content",
|
|
13678
13775
|
"eager": props.eager,
|
|
13776
|
+
"maxHeight": 310,
|
|
13679
13777
|
"openOnClick": false,
|
|
13680
13778
|
"closeOnContentClick": false,
|
|
13681
13779
|
"transition": props.transition,
|
|
@@ -13847,6 +13945,10 @@ const VDialog = genericComponent()({
|
|
|
13847
13945
|
});
|
|
13848
13946
|
}
|
|
13849
13947
|
});
|
|
13948
|
+
const activatorProps = computed(() => mergeProps({
|
|
13949
|
+
'aria-haspopup': 'dialog',
|
|
13950
|
+
'aria-expanded': String(isActive.value)
|
|
13951
|
+
}, props.activatorProps));
|
|
13850
13952
|
useRender(() => {
|
|
13851
13953
|
const [overlayProps] = filterVOverlayProps(props);
|
|
13852
13954
|
return createVNode(VOverlay, mergeProps({
|
|
@@ -13860,10 +13962,7 @@ const VDialog = genericComponent()({
|
|
|
13860
13962
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
13861
13963
|
"aria-role": "dialog",
|
|
13862
13964
|
"aria-modal": "true",
|
|
13863
|
-
"activatorProps":
|
|
13864
|
-
'aria-haspopup': 'dialog',
|
|
13865
|
-
'aria-expanded': String(isActive.value)
|
|
13866
|
-
}, props.activatorProps)
|
|
13965
|
+
"activatorProps": activatorProps.value
|
|
13867
13966
|
}, scopeId), {
|
|
13868
13967
|
activator: slots.activator,
|
|
13869
13968
|
default: function () {
|
|
@@ -14212,12 +14311,15 @@ const VFileInput = defineComponent({
|
|
|
14212
14311
|
onFocus();
|
|
14213
14312
|
nextTick(() => {
|
|
14214
14313
|
model.value = [];
|
|
14215
|
-
if (inputRef != null && inputRef.value) {
|
|
14216
|
-
inputRef.value.value = '';
|
|
14217
|
-
}
|
|
14218
14314
|
callEvent(props['onClick:clear'], e);
|
|
14219
14315
|
});
|
|
14220
14316
|
}
|
|
14317
|
+
watch(model, newValue => {
|
|
14318
|
+
const hasModelReset = !Array.isArray(newValue) || !newValue.length;
|
|
14319
|
+
if (hasModelReset && inputRef.value) {
|
|
14320
|
+
inputRef.value.value = '';
|
|
14321
|
+
}
|
|
14322
|
+
});
|
|
14221
14323
|
useRender(() => {
|
|
14222
14324
|
const hasCounter = !!(slots.counter || props.counter);
|
|
14223
14325
|
const hasDetails = !!(hasCounter || slots.details);
|
|
@@ -15208,7 +15310,7 @@ function useTouch(_ref) {
|
|
|
15208
15310
|
window.removeEventListener('touchmove', onTouchmove);
|
|
15209
15311
|
window.removeEventListener('touchend', onTouchend);
|
|
15210
15312
|
});
|
|
15211
|
-
const isHorizontal = computed(() => position.value
|
|
15313
|
+
const isHorizontal = computed(() => ['left', 'right'].includes(position.value));
|
|
15212
15314
|
const {
|
|
15213
15315
|
addMovement,
|
|
15214
15316
|
endTouch,
|
|
@@ -15220,11 +15322,11 @@ function useTouch(_ref) {
|
|
|
15220
15322
|
const offset = ref(0);
|
|
15221
15323
|
let start;
|
|
15222
15324
|
function getOffset(pos, active) {
|
|
15223
|
-
return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
|
|
15325
|
+
return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'top' ? pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
|
|
15224
15326
|
}
|
|
15225
15327
|
function getProgress(pos) {
|
|
15226
15328
|
let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
15227
|
-
const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();
|
|
15329
|
+
const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'top' ? (pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();
|
|
15228
15330
|
return limit ? Math.max(0, Math.min(1, progress)) : progress;
|
|
15229
15331
|
}
|
|
15230
15332
|
function onTouchstart(e) {
|
|
@@ -15232,8 +15334,8 @@ function useTouch(_ref) {
|
|
|
15232
15334
|
const touchX = e.changedTouches[0].clientX;
|
|
15233
15335
|
const touchY = e.changedTouches[0].clientY;
|
|
15234
15336
|
const touchZone = 25;
|
|
15235
|
-
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
|
15236
|
-
const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());
|
|
15337
|
+
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'top' ? touchY < touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
|
15338
|
+
const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'top' ? touchY < width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());
|
|
15237
15339
|
if (inTouchZone || inElement || isActive.value && isTemporary.value) {
|
|
15238
15340
|
maybeDragging = true;
|
|
15239
15341
|
start = [touchX, touchY];
|
|
@@ -15285,6 +15387,7 @@ function useTouch(_ref) {
|
|
|
15285
15387
|
isActive.value = velocity.direction === ({
|
|
15286
15388
|
left: 'right',
|
|
15287
15389
|
right: 'left',
|
|
15390
|
+
top: 'down',
|
|
15288
15391
|
bottom: 'up'
|
|
15289
15392
|
}[position.value] || oops());
|
|
15290
15393
|
} else {
|
|
@@ -15293,7 +15396,7 @@ function useTouch(_ref) {
|
|
|
15293
15396
|
}
|
|
15294
15397
|
const dragStyles = computed(() => {
|
|
15295
15398
|
return isDragging.value ? {
|
|
15296
|
-
transform: position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))` : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))` : oops(),
|
|
15399
|
+
transform: position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))` : position.value === 'top' ? `translateY(calc(-100% + ${dragProgress.value * width.value}px))` : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))` : oops(),
|
|
15297
15400
|
transition: 'none'
|
|
15298
15401
|
} : undefined;
|
|
15299
15402
|
});
|
|
@@ -15309,7 +15412,7 @@ function oops() {
|
|
|
15309
15412
|
|
|
15310
15413
|
// Types
|
|
15311
15414
|
|
|
15312
|
-
const locations = ['start', 'end', 'left', 'right', 'bottom'];
|
|
15415
|
+
const locations = ['start', 'end', 'left', 'right', 'top', 'bottom'];
|
|
15313
15416
|
const VNavigationDrawer = defineComponent({
|
|
15314
15417
|
name: 'VNavigationDrawer',
|
|
15315
15418
|
props: {
|
|
@@ -15766,7 +15869,7 @@ const VPagination = defineComponent({
|
|
|
15766
15869
|
disabled: !!props.disabled || props.length < 2,
|
|
15767
15870
|
color: isActive ? props.activeColor : props.color,
|
|
15768
15871
|
ariaCurrent: isActive,
|
|
15769
|
-
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel,
|
|
15872
|
+
ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
|
|
15770
15873
|
onClick: e => setValue(e, item)
|
|
15771
15874
|
}
|
|
15772
15875
|
};
|
|
@@ -17945,6 +18048,9 @@ const VTooltip = genericComponent()({
|
|
|
17945
18048
|
if (props.transition) return props.transition;
|
|
17946
18049
|
return isActive.value ? 'scale-transition' : 'fade-transition';
|
|
17947
18050
|
});
|
|
18051
|
+
const activatorProps = computed(() => mergeProps({
|
|
18052
|
+
'aria-describedby': id.value
|
|
18053
|
+
}, props.activatorProps));
|
|
17948
18054
|
useRender(() => {
|
|
17949
18055
|
const [overlayProps] = filterVOverlayProps(props);
|
|
17950
18056
|
return createVNode(VOverlay, mergeProps({
|
|
@@ -17961,9 +18067,7 @@ const VTooltip = genericComponent()({
|
|
|
17961
18067
|
"persistent": true,
|
|
17962
18068
|
"role": "tooltip",
|
|
17963
18069
|
"eager": true,
|
|
17964
|
-
"activatorProps":
|
|
17965
|
-
'aria-describedby': id.value
|
|
17966
|
-
}, props.activatorProps),
|
|
18070
|
+
"activatorProps": activatorProps.value,
|
|
17967
18071
|
"_disableGlobalStack": true
|
|
17968
18072
|
}, scopeId), {
|
|
17969
18073
|
activator: slots.activator,
|
|
@@ -18262,10 +18366,9 @@ const VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');
|
|
|
18262
18366
|
function createSort(props) {
|
|
18263
18367
|
const sortBy = useProxiedModel(props, 'sortBy');
|
|
18264
18368
|
const toggleSort = key => {
|
|
18265
|
-
|
|
18266
|
-
let newSortBy = ((_sortBy$value = sortBy.value) == null ? void 0 : _sortBy$value.map(x => ({
|
|
18369
|
+
let newSortBy = sortBy.value.map(x => ({
|
|
18267
18370
|
...x
|
|
18268
|
-
}))
|
|
18371
|
+
})) ?? [];
|
|
18269
18372
|
const item = newSortBy.find(x => x.key === key);
|
|
18270
18373
|
if (!item) {
|
|
18271
18374
|
if (props.multiSort) newSortBy = [...newSortBy, {
|
|
@@ -18307,8 +18410,7 @@ function useSortedItems(items, sortBy, columns) {
|
|
|
18307
18410
|
}, {});
|
|
18308
18411
|
});
|
|
18309
18412
|
const sortedItems = computed(() => {
|
|
18310
|
-
|
|
18311
|
-
if (!((_sortBy$value2 = sortBy.value) != null && _sortBy$value2.length)) return items.value;
|
|
18413
|
+
if (!sortBy.value.length) return items.value;
|
|
18312
18414
|
return sortItems(items.value, sortBy.value, 'en', customSorters.value);
|
|
18313
18415
|
});
|
|
18314
18416
|
return {
|
|
@@ -18507,9 +18609,13 @@ function createGroupBy(props, groupBy, sortBy) {
|
|
|
18507
18609
|
order: val.order ?? false
|
|
18508
18610
|
})).concat(sortBy.value);
|
|
18509
18611
|
});
|
|
18510
|
-
function
|
|
18511
|
-
|
|
18512
|
-
|
|
18612
|
+
function isGroupOpen(group) {
|
|
18613
|
+
return opened.value.has(group.id);
|
|
18614
|
+
}
|
|
18615
|
+
function toggleGroup(group) {
|
|
18616
|
+
const newOpened = new Set(opened.value);
|
|
18617
|
+
if (!isGroupOpen(group)) newOpened.add(group.id);else newOpened.delete(group.id);
|
|
18618
|
+
opened.value = newOpened;
|
|
18513
18619
|
}
|
|
18514
18620
|
function extractRows(items) {
|
|
18515
18621
|
function dive(group) {
|
|
@@ -18542,7 +18648,8 @@ function createGroupBy(props, groupBy, sortBy) {
|
|
|
18542
18648
|
toggleGroup,
|
|
18543
18649
|
opened,
|
|
18544
18650
|
groupBy,
|
|
18545
|
-
extractRows
|
|
18651
|
+
extractRows,
|
|
18652
|
+
isGroupOpen
|
|
18546
18653
|
};
|
|
18547
18654
|
provide(VDataTableGroupSymbol, data);
|
|
18548
18655
|
return data;
|
|
@@ -18628,7 +18735,7 @@ const VDataTableGroupHeaderRow = defineComponent({
|
|
|
18628
18735
|
slots
|
|
18629
18736
|
} = _ref;
|
|
18630
18737
|
const {
|
|
18631
|
-
|
|
18738
|
+
isGroupOpen,
|
|
18632
18739
|
toggleGroup,
|
|
18633
18740
|
extractRows
|
|
18634
18741
|
} = useGroupBy();
|
|
@@ -18651,8 +18758,8 @@ const VDataTableGroupHeaderRow = defineComponent({
|
|
|
18651
18758
|
}, [columns.value.map(column => {
|
|
18652
18759
|
if (column.key === 'data-table-group') {
|
|
18653
18760
|
var _slots$dataTableGro;
|
|
18654
|
-
const icon =
|
|
18655
|
-
const onClick = () => toggleGroup(props.item
|
|
18761
|
+
const icon = isGroupOpen(props.item) ? '$expand' : '$next';
|
|
18762
|
+
const onClick = () => toggleGroup(props.item);
|
|
18656
18763
|
return ((_slots$dataTableGro = slots['data-table-group']) == null ? void 0 : _slots$dataTableGro.call(slots, {
|
|
18657
18764
|
item: props.item,
|
|
18658
18765
|
count: rows.value.length,
|
|
@@ -18845,10 +18952,18 @@ const VDataTableRows = defineComponent({
|
|
|
18845
18952
|
columns
|
|
18846
18953
|
} = useHeaders();
|
|
18847
18954
|
const {
|
|
18848
|
-
|
|
18849
|
-
|
|
18850
|
-
|
|
18955
|
+
expandOnClick,
|
|
18956
|
+
toggleExpand,
|
|
18957
|
+
isExpanded
|
|
18851
18958
|
} = useExpanded();
|
|
18959
|
+
const {
|
|
18960
|
+
isSelected,
|
|
18961
|
+
toggleSelect
|
|
18962
|
+
} = useSelection();
|
|
18963
|
+
const {
|
|
18964
|
+
toggleGroup,
|
|
18965
|
+
isGroupOpen
|
|
18966
|
+
} = useGroupBy();
|
|
18852
18967
|
const {
|
|
18853
18968
|
t
|
|
18854
18969
|
} = useLocale();
|
|
@@ -18867,23 +18982,41 @@ const VDataTableRows = defineComponent({
|
|
|
18867
18982
|
})), props.items.map((item, index) => {
|
|
18868
18983
|
var _slots$expandedRow;
|
|
18869
18984
|
if (item.type === 'group-header') {
|
|
18870
|
-
return
|
|
18985
|
+
return slots['group-header'] ? slots['group-header']({
|
|
18986
|
+
index,
|
|
18987
|
+
item,
|
|
18988
|
+
columns: columns.value,
|
|
18989
|
+
isExpanded,
|
|
18990
|
+
toggleExpand,
|
|
18991
|
+
isSelected,
|
|
18992
|
+
toggleSelect,
|
|
18993
|
+
toggleGroup,
|
|
18994
|
+
isGroupOpen
|
|
18995
|
+
}) : createVNode(VDataTableGroupHeaderRow, {
|
|
18871
18996
|
"key": `group-header_${item.id}`,
|
|
18872
18997
|
"item": item
|
|
18873
18998
|
}, slots);
|
|
18874
18999
|
}
|
|
18875
|
-
return createVNode(Fragment, null, [
|
|
19000
|
+
return createVNode(Fragment, null, [slots.item ? slots.item({
|
|
19001
|
+
index,
|
|
19002
|
+
item,
|
|
19003
|
+
columns: columns.value,
|
|
19004
|
+
isExpanded,
|
|
19005
|
+
toggleExpand,
|
|
19006
|
+
isSelected,
|
|
19007
|
+
toggleSelect
|
|
19008
|
+
}) : createVNode(VDataTableRow, {
|
|
18876
19009
|
"key": `item_${item.value}`,
|
|
18877
19010
|
"onClick": event => {
|
|
18878
19011
|
if (expandOnClick.value) {
|
|
18879
|
-
|
|
19012
|
+
toggleExpand(item.value);
|
|
18880
19013
|
}
|
|
18881
19014
|
emit('click:row', event, {
|
|
18882
19015
|
item
|
|
18883
19016
|
});
|
|
18884
19017
|
},
|
|
18885
19018
|
"item": item
|
|
18886
|
-
}, slots),
|
|
19019
|
+
}, slots), isExpanded(item) && ((_slots$expandedRow = slots['expanded-row']) == null ? void 0 : _slots$expandedRow.call(slots, {
|
|
18887
19020
|
item,
|
|
18888
19021
|
columns: columns.value
|
|
18889
19022
|
}))]);
|
|
@@ -19094,7 +19227,8 @@ function useOptions(_ref) {
|
|
|
19094
19227
|
sortBy,
|
|
19095
19228
|
startIndex,
|
|
19096
19229
|
stopIndex,
|
|
19097
|
-
pageCount
|
|
19230
|
+
pageCount,
|
|
19231
|
+
groupBy
|
|
19098
19232
|
} = _ref;
|
|
19099
19233
|
const vm = getCurrentInstance('VDataTable');
|
|
19100
19234
|
const options = computed(() => ({
|
|
@@ -19103,7 +19237,8 @@ function useOptions(_ref) {
|
|
|
19103
19237
|
startIndex: startIndex.value,
|
|
19104
19238
|
stopIndex: stopIndex.value,
|
|
19105
19239
|
pageCount: pageCount.value,
|
|
19106
|
-
sortBy: sortBy.value
|
|
19240
|
+
sortBy: sortBy.value,
|
|
19241
|
+
groupBy: groupBy.value
|
|
19107
19242
|
}));
|
|
19108
19243
|
|
|
19109
19244
|
// Reset page when sorting changes
|
|
@@ -19181,9 +19316,12 @@ const VDataTable = defineComponent({
|
|
|
19181
19316
|
const {
|
|
19182
19317
|
items
|
|
19183
19318
|
} = useDataTableItems(props, columns);
|
|
19319
|
+
const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key));
|
|
19184
19320
|
const {
|
|
19185
19321
|
filteredItems
|
|
19186
|
-
} = useFilter(props, items, toRef(props, 'search')
|
|
19322
|
+
} = useFilter(props, items, toRef(props, 'search'), {
|
|
19323
|
+
filterKeys
|
|
19324
|
+
});
|
|
19187
19325
|
const {
|
|
19188
19326
|
sortBy
|
|
19189
19327
|
} = createSort(props);
|
|
@@ -19217,7 +19355,8 @@ const VDataTable = defineComponent({
|
|
|
19217
19355
|
sortBy,
|
|
19218
19356
|
pageCount,
|
|
19219
19357
|
startIndex,
|
|
19220
|
-
stopIndex
|
|
19358
|
+
stopIndex,
|
|
19359
|
+
groupBy
|
|
19221
19360
|
});
|
|
19222
19361
|
provideDefaults({
|
|
19223
19362
|
VDataTableRows: {
|
|
@@ -19234,7 +19373,7 @@ const VDataTable = defineComponent({
|
|
|
19234
19373
|
"height": props.height
|
|
19235
19374
|
}, {
|
|
19236
19375
|
top: slots.top,
|
|
19237
|
-
default: slots.default
|
|
19376
|
+
default: slots.default ?? (() => {
|
|
19238
19377
|
var _slots$colgroup, _slots$thead, _slots$tbody, _slots$tfoot;
|
|
19239
19378
|
return createVNode(Fragment, null, [(_slots$colgroup = slots.colgroup) == null ? void 0 : _slots$colgroup.call(slots, {
|
|
19240
19379
|
columns
|
|
@@ -19245,10 +19384,10 @@ const VDataTable = defineComponent({
|
|
|
19245
19384
|
"items": paginatedItems.value,
|
|
19246
19385
|
"onClick:row": (event, value) => emit('click:row', event, value)
|
|
19247
19386
|
}, slots)]), (_slots$tbody = slots.tbody) == null ? void 0 : _slots$tbody.call(slots), (_slots$tfoot = slots.tfoot) == null ? void 0 : _slots$tfoot.call(slots)]);
|
|
19248
|
-
},
|
|
19249
|
-
bottom: slots.bottom
|
|
19387
|
+
}),
|
|
19388
|
+
bottom: slots.bottom ?? (() => createVNode(VDataTableFooter, null, {
|
|
19250
19389
|
prepend: slots['footer.prepend']
|
|
19251
|
-
})
|
|
19390
|
+
}))
|
|
19252
19391
|
}));
|
|
19253
19392
|
return {};
|
|
19254
19393
|
}
|
|
@@ -19373,9 +19512,12 @@ const VDataTableVirtual = defineComponent({
|
|
|
19373
19512
|
const {
|
|
19374
19513
|
items
|
|
19375
19514
|
} = useDataTableItems(props, columns);
|
|
19515
|
+
const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key));
|
|
19376
19516
|
const {
|
|
19377
19517
|
filteredItems
|
|
19378
|
-
} = useFilter(props, items, toRef(props, 'search')
|
|
19518
|
+
} = useFilter(props, items, toRef(props, 'search'), {
|
|
19519
|
+
filterKeys
|
|
19520
|
+
});
|
|
19379
19521
|
const {
|
|
19380
19522
|
sortBy
|
|
19381
19523
|
} = createSort(props);
|
|
@@ -19411,7 +19553,8 @@ const VDataTableVirtual = defineComponent({
|
|
|
19411
19553
|
startIndex: ref(0),
|
|
19412
19554
|
stopIndex: computed(() => flatItems.value.length - 1),
|
|
19413
19555
|
pageCount: ref(1),
|
|
19414
|
-
itemsPerPage: ref(-1)
|
|
19556
|
+
itemsPerPage: ref(-1),
|
|
19557
|
+
groupBy
|
|
19415
19558
|
});
|
|
19416
19559
|
provideDefaults({
|
|
19417
19560
|
VDataTableRows: {
|
|
@@ -19487,7 +19630,8 @@ const VDataTableServer = defineComponent({
|
|
|
19487
19630
|
...makeDataTableItemProps(),
|
|
19488
19631
|
...makeDataTableSelectProps(),
|
|
19489
19632
|
...makeDataTableSortProps(),
|
|
19490
|
-
...makeDataTablePaginateProps()
|
|
19633
|
+
...makeDataTablePaginateProps(),
|
|
19634
|
+
...makeDataTableGroupProps()
|
|
19491
19635
|
},
|
|
19492
19636
|
emits: {
|
|
19493
19637
|
'update:modelValue': value => true,
|
|
@@ -19496,6 +19640,7 @@ const VDataTableServer = defineComponent({
|
|
|
19496
19640
|
'update:sortBy': sortBy => true,
|
|
19497
19641
|
'update:options': options => true,
|
|
19498
19642
|
'update:expanded': options => true,
|
|
19643
|
+
'update:groupBy': value => true,
|
|
19499
19644
|
'click:row': (event, value) => true
|
|
19500
19645
|
},
|
|
19501
19646
|
setup(props, _ref) {
|
|
@@ -19503,10 +19648,12 @@ const VDataTableServer = defineComponent({
|
|
|
19503
19648
|
emit,
|
|
19504
19649
|
slots
|
|
19505
19650
|
} = _ref;
|
|
19651
|
+
const groupBy = useProxiedModel(props, 'groupBy');
|
|
19506
19652
|
createExpanded(props);
|
|
19507
19653
|
const {
|
|
19508
19654
|
columns
|
|
19509
19655
|
} = createHeaders(props, {
|
|
19656
|
+
groupBy,
|
|
19510
19657
|
showSelect: toRef(props, 'showSelect'),
|
|
19511
19658
|
showExpand: toRef(props, 'showExpand')
|
|
19512
19659
|
});
|
|
@@ -19517,6 +19664,9 @@ const VDataTableServer = defineComponent({
|
|
|
19517
19664
|
sortBy,
|
|
19518
19665
|
toggleSort
|
|
19519
19666
|
} = createSort(props);
|
|
19667
|
+
const {
|
|
19668
|
+
opened
|
|
19669
|
+
} = createGroupBy(props, groupBy, sortBy);
|
|
19520
19670
|
const {
|
|
19521
19671
|
page,
|
|
19522
19672
|
itemsPerPage,
|
|
@@ -19524,6 +19674,9 @@ const VDataTableServer = defineComponent({
|
|
|
19524
19674
|
stopIndex,
|
|
19525
19675
|
pageCount
|
|
19526
19676
|
} = createPagination(props, items);
|
|
19677
|
+
const {
|
|
19678
|
+
flatItems
|
|
19679
|
+
} = useGroupedItems(items, groupBy, opened);
|
|
19527
19680
|
createSelection(props, items);
|
|
19528
19681
|
useOptions({
|
|
19529
19682
|
page,
|
|
@@ -19531,7 +19684,8 @@ const VDataTableServer = defineComponent({
|
|
|
19531
19684
|
sortBy,
|
|
19532
19685
|
startIndex,
|
|
19533
19686
|
stopIndex,
|
|
19534
|
-
pageCount
|
|
19687
|
+
pageCount,
|
|
19688
|
+
groupBy
|
|
19535
19689
|
});
|
|
19536
19690
|
provide('v-data-table', {
|
|
19537
19691
|
toggleSort,
|
|
@@ -19554,7 +19708,7 @@ const VDataTableServer = defineComponent({
|
|
|
19554
19708
|
"height": props.height
|
|
19555
19709
|
}, {
|
|
19556
19710
|
top: slots.top,
|
|
19557
|
-
default: slots.default
|
|
19711
|
+
default: slots.default ?? (() => {
|
|
19558
19712
|
var _slots$thead, _slots$tbody, _slots$tfoot;
|
|
19559
19713
|
return createVNode(Fragment, null, [createVNode("thead", {
|
|
19560
19714
|
"class": "v-data-table__thead",
|
|
@@ -19567,13 +19721,13 @@ const VDataTableServer = defineComponent({
|
|
|
19567
19721
|
"class": "v-data-table__tbody",
|
|
19568
19722
|
"role": "rowgroup"
|
|
19569
19723
|
}, [slots.body ? slots.body() : createVNode(VDataTableRows, {
|
|
19570
|
-
"items":
|
|
19724
|
+
"items": flatItems.value,
|
|
19571
19725
|
"onClick:row": (event, value) => emit('click:row', event, value)
|
|
19572
19726
|
}, slots)]), (_slots$tbody = slots.tbody) == null ? void 0 : _slots$tbody.call(slots), (_slots$tfoot = slots.tfoot) == null ? void 0 : _slots$tfoot.call(slots)]);
|
|
19573
|
-
},
|
|
19574
|
-
bottom: slots.bottom
|
|
19727
|
+
}),
|
|
19728
|
+
bottom: slots.bottom ?? (() => createVNode(VDataTableFooter, null, {
|
|
19575
19729
|
prepend: slots['footer.prepend']
|
|
19576
|
-
})
|
|
19730
|
+
}))
|
|
19577
19731
|
}));
|
|
19578
19732
|
}
|
|
19579
19733
|
});
|
|
@@ -20073,7 +20227,7 @@ function createVuetify$1() {
|
|
|
20073
20227
|
locale
|
|
20074
20228
|
};
|
|
20075
20229
|
}
|
|
20076
|
-
const version$1 = "3.1.
|
|
20230
|
+
const version$1 = "3.1.3";
|
|
20077
20231
|
createVuetify$1.version = version$1;
|
|
20078
20232
|
|
|
20079
20233
|
// Vue's inject() can only be used in setup
|
|
@@ -20086,7 +20240,7 @@ function inject(key) {
|
|
|
20086
20240
|
}
|
|
20087
20241
|
}
|
|
20088
20242
|
|
|
20089
|
-
const version = "3.1.
|
|
20243
|
+
const version = "3.1.3";
|
|
20090
20244
|
|
|
20091
20245
|
const createVuetify = function () {
|
|
20092
20246
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|