@vuetify/nightly 3.10.5-dev.2025-10-07 → 3.10.5-dev.2025-10-10
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 +21 -3
- package/dist/json/attributes.json +2024 -2040
- package/dist/json/importMap-labs.json +12 -12
- package/dist/json/importMap.json +180 -180
- package/dist/json/tags.json +5 -9
- package/dist/json/web-types.json +3964 -3985
- package/dist/vuetify-labs.cjs +233 -169
- package/dist/vuetify-labs.css +4520 -4520
- package/dist/vuetify-labs.d.ts +1444 -1390
- package/dist/vuetify-labs.esm.js +233 -169
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +233 -169
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +156 -92
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3385 -3385
- package/dist/vuetify.d.ts +2289 -2200
- package/dist/vuetify.esm.js +156 -92
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +156 -92
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +959 -955
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +0 -61
- package/lib/components/VAutocomplete/VAutocomplete.js +13 -11
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.d.ts +6 -67
- package/lib/components/VCombobox/VCombobox.js +22 -23
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +7 -7
- package/lib/components/VDataTable/VDataTableFooter.d.ts +16 -3
- package/lib/components/VDataTable/VDataTableFooter.js +4 -2
- package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js +10 -7
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.d.ts +10 -0
- package/lib/components/VDataTable/VDataTableRow.js +3 -0
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.d.ts +10 -0
- package/lib/components/VDataTable/VDataTableRows.js +2 -0
- package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +7 -7
- package/lib/components/VNumberInput/VNumberInput.js +23 -8
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.d.ts +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VTabs/VTabs.d.ts +16 -2
- package/lib/components/VTabs/VTabs.js +4 -2
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +2 -2
- package/lib/components/VTextarea/VTextarea.js +20 -1
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +4 -2
- package/lib/components/VTreeview/VTreeview.d.ts +192 -5
- package/lib/components/VTreeview/VTreeview.js +16 -3
- package/lib/components/VTreeview/VTreeview.js.map +1 -1
- package/lib/composables/icons.d.ts +0 -2
- package/lib/composables/icons.js +3 -36
- package/lib/composables/icons.js.map +1 -1
- package/lib/composables/virtual.js +2 -2
- package/lib/composables/virtual.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +65 -65
- package/lib/framework.js +3 -2
- package/lib/framework.js.map +1 -1
- package/lib/icons.d.ts +3 -0
- package/lib/icons.js +34 -0
- package/lib/icons.js.map +1 -0
- package/lib/labs/VColorInput/VColorInput.d.ts +0 -40
- package/lib/labs/VColorInput/VColorInput.js +2 -2
- package/lib/labs/VColorInput/VColorInput.js.map +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +0 -30
- package/lib/labs/VDateInput/VDateInput.js +2 -2
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VMaskInput/VMaskInput.js +1 -1
- package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.10.5-dev.2025-10-
|
|
2
|
+
* Vuetify v3.10.5-dev.2025-10-10
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1686,6 +1686,8 @@
|
|
|
1686
1686
|
vm.render = render;
|
|
1687
1687
|
}
|
|
1688
1688
|
|
|
1689
|
+
// Utilities
|
|
1690
|
+
|
|
1689
1691
|
// Types
|
|
1690
1692
|
|
|
1691
1693
|
const IconValue = [String, Function, Object, Array];
|
|
@@ -1767,37 +1769,6 @@
|
|
|
1767
1769
|
};
|
|
1768
1770
|
}
|
|
1769
1771
|
});
|
|
1770
|
-
function genDefaults$3() {
|
|
1771
|
-
return {
|
|
1772
|
-
svg: {
|
|
1773
|
-
component: VSvgIcon
|
|
1774
|
-
},
|
|
1775
|
-
class: {
|
|
1776
|
-
component: VClassIcon
|
|
1777
|
-
}
|
|
1778
|
-
};
|
|
1779
|
-
}
|
|
1780
|
-
|
|
1781
|
-
// Composables
|
|
1782
|
-
function createIcons(options) {
|
|
1783
|
-
const sets = genDefaults$3();
|
|
1784
|
-
const defaultSet = options?.defaultSet ?? 'mdi';
|
|
1785
|
-
if (defaultSet === 'mdi' && !sets.mdi) {
|
|
1786
|
-
sets.mdi = mdi;
|
|
1787
|
-
}
|
|
1788
|
-
return mergeDeep({
|
|
1789
|
-
defaultSet,
|
|
1790
|
-
sets,
|
|
1791
|
-
aliases: {
|
|
1792
|
-
...aliases,
|
|
1793
|
-
/* eslint-disable max-len */
|
|
1794
|
-
vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],
|
|
1795
|
-
'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',
|
|
1796
|
-
'vuetify-play': ['m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z', ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6]]
|
|
1797
|
-
/* eslint-enable max-len */
|
|
1798
|
-
}
|
|
1799
|
-
}, options);
|
|
1800
|
-
}
|
|
1801
1772
|
const useIcon = props => {
|
|
1802
1773
|
const icons = vue.inject(IconSymbol);
|
|
1803
1774
|
if (!icons) throw new Error('Missing Vuetify Icons provide!');
|
|
@@ -2895,7 +2866,7 @@
|
|
|
2895
2866
|
vue.provide(LocaleSymbol, data);
|
|
2896
2867
|
return data;
|
|
2897
2868
|
}
|
|
2898
|
-
function genDefaults$
|
|
2869
|
+
function genDefaults$3() {
|
|
2899
2870
|
return {
|
|
2900
2871
|
af: false,
|
|
2901
2872
|
ar: true,
|
|
@@ -2942,7 +2913,7 @@
|
|
|
2942
2913
|
};
|
|
2943
2914
|
}
|
|
2944
2915
|
function createRtl(i18n, options) {
|
|
2945
|
-
const rtl = vue.ref(options?.rtl ?? genDefaults$
|
|
2916
|
+
const rtl = vue.ref(options?.rtl ?? genDefaults$3());
|
|
2946
2917
|
const isRtl = vue.computed(() => rtl.value[i18n.current.value] ?? false);
|
|
2947
2918
|
return {
|
|
2948
2919
|
isRtl,
|
|
@@ -2975,7 +2946,7 @@
|
|
|
2975
2946
|
const makeThemeProps = propsFactory({
|
|
2976
2947
|
theme: String
|
|
2977
2948
|
}, 'theme');
|
|
2978
|
-
function genDefaults$
|
|
2949
|
+
function genDefaults$2() {
|
|
2979
2950
|
return {
|
|
2980
2951
|
defaultTheme: 'light',
|
|
2981
2952
|
prefix: 'v-',
|
|
@@ -3067,8 +3038,8 @@
|
|
|
3067
3038
|
};
|
|
3068
3039
|
}
|
|
3069
3040
|
function parseThemeOptions() {
|
|
3070
|
-
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$
|
|
3071
|
-
const defaults = genDefaults$
|
|
3041
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$2();
|
|
3042
|
+
const defaults = genDefaults$2();
|
|
3072
3043
|
if (!options) return {
|
|
3073
3044
|
...defaults,
|
|
3074
3045
|
isDisabled: true
|
|
@@ -8168,7 +8139,7 @@
|
|
|
8168
8139
|
// Types
|
|
8169
8140
|
|
|
8170
8141
|
const GoToSymbol = Symbol.for('vuetify:goto');
|
|
8171
|
-
function genDefaults() {
|
|
8142
|
+
function genDefaults$1() {
|
|
8172
8143
|
return {
|
|
8173
8144
|
container: undefined,
|
|
8174
8145
|
duration: 300,
|
|
@@ -8197,12 +8168,12 @@
|
|
|
8197
8168
|
function createGoTo(options, locale) {
|
|
8198
8169
|
return {
|
|
8199
8170
|
rtl: locale.isRtl,
|
|
8200
|
-
options: mergeDeep(genDefaults(), options)
|
|
8171
|
+
options: mergeDeep(genDefaults$1(), options)
|
|
8201
8172
|
};
|
|
8202
8173
|
}
|
|
8203
8174
|
async function scrollTo(_target, _options, horizontal, goTo) {
|
|
8204
8175
|
const property = horizontal ? 'scrollLeft' : 'scrollTop';
|
|
8205
|
-
const options = mergeDeep(goTo?.options ?? genDefaults(), _options);
|
|
8176
|
+
const options = mergeDeep(goTo?.options ?? genDefaults$1(), _options);
|
|
8206
8177
|
const rtl = goTo?.rtl.value;
|
|
8207
8178
|
const target = (typeof _target === 'number' ? _target : getTarget$1(_target)) ?? 0;
|
|
8208
8179
|
const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);
|
|
@@ -13192,7 +13163,7 @@
|
|
|
13192
13163
|
const start = performance.now();
|
|
13193
13164
|
offsets[0] = 0;
|
|
13194
13165
|
const length = items.value.length;
|
|
13195
|
-
for (let i = 1; i <= length
|
|
13166
|
+
for (let i = 1; i <= length; i++) {
|
|
13196
13167
|
offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1);
|
|
13197
13168
|
}
|
|
13198
13169
|
updateTime.value = Math.max(updateTime.value, performance.now() - start);
|
|
@@ -13227,7 +13198,7 @@
|
|
|
13227
13198
|
}
|
|
13228
13199
|
}
|
|
13229
13200
|
function calculateOffset(index) {
|
|
13230
|
-
index = clamp(index, 0, items.value.length
|
|
13201
|
+
index = clamp(index, 0, items.value.length);
|
|
13231
13202
|
const whole = Math.floor(index);
|
|
13232
13203
|
const fraction = index % 1;
|
|
13233
13204
|
const next = whole + 1;
|
|
@@ -14232,10 +14203,7 @@
|
|
|
14232
14203
|
...omit(makeVTextFieldProps({
|
|
14233
14204
|
modelValue: null,
|
|
14234
14205
|
role: 'combobox'
|
|
14235
|
-
}), ['validationValue', 'dirty', 'appendInnerIcon'])
|
|
14236
|
-
...makeTransitionProps({
|
|
14237
|
-
transition: false
|
|
14238
|
-
})
|
|
14206
|
+
}), ['validationValue', 'dirty', 'appendInnerIcon'])
|
|
14239
14207
|
}, 'VAutocomplete');
|
|
14240
14208
|
const VAutocomplete = genericComponent()({
|
|
14241
14209
|
name: 'VAutocomplete',
|
|
@@ -14260,6 +14228,7 @@
|
|
|
14260
14228
|
const vMenuRef = vue.ref();
|
|
14261
14229
|
const vVirtualScrollRef = vue.ref();
|
|
14262
14230
|
const selectionIndex = vue.shallowRef(-1);
|
|
14231
|
+
const _searchLock = vue.shallowRef(null);
|
|
14263
14232
|
const {
|
|
14264
14233
|
items,
|
|
14265
14234
|
transformIn,
|
|
@@ -14281,9 +14250,9 @@
|
|
|
14281
14250
|
const {
|
|
14282
14251
|
filteredItems,
|
|
14283
14252
|
getMatches
|
|
14284
|
-
} = useFilter(props, items, () => isPristine.value ? '' : search.value);
|
|
14253
|
+
} = useFilter(props, items, () => _searchLock.value ?? (isPristine.value ? '' : search.value));
|
|
14285
14254
|
const displayItems = vue.computed(() => {
|
|
14286
|
-
if (props.hideSelected) {
|
|
14255
|
+
if (props.hideSelected && _searchLock.value === null) {
|
|
14287
14256
|
return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
|
|
14288
14257
|
}
|
|
14289
14258
|
return filteredItems.value;
|
|
@@ -14414,6 +14383,7 @@
|
|
|
14414
14383
|
isPristine.value = true;
|
|
14415
14384
|
vTextFieldRef.value?.focus();
|
|
14416
14385
|
}
|
|
14386
|
+
_searchLock.value = null;
|
|
14417
14387
|
}
|
|
14418
14388
|
function onFocusin(e) {
|
|
14419
14389
|
isFocused.value = true;
|
|
@@ -14449,6 +14419,7 @@
|
|
|
14449
14419
|
} else {
|
|
14450
14420
|
const add = set !== false;
|
|
14451
14421
|
model.value = add ? [item] : [];
|
|
14422
|
+
_searchLock.value = isPristine.value ? '' : search.value ?? '';
|
|
14452
14423
|
search.value = add && !hasSelectionSlot.value ? item.title : '';
|
|
14453
14424
|
|
|
14454
14425
|
// watch for search watcher to trigger
|
|
@@ -14468,6 +14439,9 @@
|
|
|
14468
14439
|
} else {
|
|
14469
14440
|
if (!props.multiple && search.value == null) model.value = [];
|
|
14470
14441
|
menu.value = false;
|
|
14442
|
+
if (!isPristine.value && search.value) {
|
|
14443
|
+
_searchLock.value = search.value;
|
|
14444
|
+
}
|
|
14471
14445
|
search.value = '';
|
|
14472
14446
|
selectionIndex.value = -1;
|
|
14473
14447
|
}
|
|
@@ -14477,13 +14451,14 @@
|
|
|
14477
14451
|
if (val) menu.value = true;
|
|
14478
14452
|
isPristine.value = !val;
|
|
14479
14453
|
});
|
|
14480
|
-
vue.watch(menu,
|
|
14481
|
-
if (!props.hideSelected &&
|
|
14454
|
+
vue.watch(menu, val => {
|
|
14455
|
+
if (!props.hideSelected && val && model.value.length && isPristine.value) {
|
|
14482
14456
|
const index = displayItems.value.findIndex(item => model.value.some(s => item.value === s.value));
|
|
14483
14457
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
14484
14458
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
14485
14459
|
});
|
|
14486
14460
|
}
|
|
14461
|
+
if (val) _searchLock.value = null;
|
|
14487
14462
|
});
|
|
14488
14463
|
vue.watch(items, (newVal, oldVal) => {
|
|
14489
14464
|
if (menu.value) return;
|
|
@@ -14534,7 +14509,6 @@
|
|
|
14534
14509
|
"maxHeight": 310,
|
|
14535
14510
|
"openOnClick": false,
|
|
14536
14511
|
"closeOnContentClick": false,
|
|
14537
|
-
"transition": props.transition,
|
|
14538
14512
|
"onAfterEnter": onAfterEnter,
|
|
14539
14513
|
"onAfterLeave": onAfterLeave
|
|
14540
14514
|
}, props.menuProps), {
|
|
@@ -19553,10 +19527,7 @@
|
|
|
19553
19527
|
...omit(makeVTextFieldProps({
|
|
19554
19528
|
modelValue: null,
|
|
19555
19529
|
role: 'combobox'
|
|
19556
|
-
}), ['validationValue', 'dirty', 'appendInnerIcon'])
|
|
19557
|
-
...makeTransitionProps({
|
|
19558
|
-
transition: false
|
|
19559
|
-
})
|
|
19530
|
+
}), ['validationValue', 'dirty', 'appendInnerIcon'])
|
|
19560
19531
|
}, 'VCombobox');
|
|
19561
19532
|
const VCombobox = genericComponent()({
|
|
19562
19533
|
name: 'VCombobox',
|
|
@@ -19600,6 +19571,7 @@
|
|
|
19600
19571
|
const hasChips = vue.computed(() => !!(props.chips || slots.chip));
|
|
19601
19572
|
const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
|
|
19602
19573
|
const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
19574
|
+
const _searchLock = vue.shallowRef(null);
|
|
19603
19575
|
const search = vue.computed({
|
|
19604
19576
|
get: () => {
|
|
19605
19577
|
return _search.value;
|
|
@@ -19634,9 +19606,9 @@
|
|
|
19634
19606
|
const {
|
|
19635
19607
|
filteredItems,
|
|
19636
19608
|
getMatches
|
|
19637
|
-
} = useFilter(props, items, () => props.alwaysFilter || !isPristine.value ? search.value : '');
|
|
19609
|
+
} = useFilter(props, items, () => _searchLock.value ?? (props.alwaysFilter || !isPristine.value ? search.value : ''));
|
|
19638
19610
|
const displayItems = vue.computed(() => {
|
|
19639
|
-
if (props.hideSelected) {
|
|
19611
|
+
if (props.hideSelected && _searchLock.value === null) {
|
|
19640
19612
|
return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
|
|
19641
19613
|
}
|
|
19642
19614
|
return filteredItems.value;
|
|
@@ -19717,22 +19689,19 @@
|
|
|
19717
19689
|
if (['Escape'].includes(e.key)) {
|
|
19718
19690
|
menu.value = false;
|
|
19719
19691
|
}
|
|
19720
|
-
if (['Enter', '
|
|
19721
|
-
|
|
19722
|
-
|
|
19723
|
-
|
|
19724
|
-
|
|
19725
|
-
|
|
19726
|
-
|
|
19727
|
-
select(filteredItems.value[0]);
|
|
19728
|
-
}
|
|
19729
|
-
isPristine.value = true;
|
|
19692
|
+
if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {
|
|
19693
|
+
let {
|
|
19694
|
+
value
|
|
19695
|
+
} = _ref2;
|
|
19696
|
+
return value === displayItems.value[0].value;
|
|
19697
|
+
})) {
|
|
19698
|
+
select(filteredItems.value[0]);
|
|
19730
19699
|
}
|
|
19731
19700
|
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
19732
19701
|
listRef.value?.focus('next');
|
|
19733
19702
|
}
|
|
19734
19703
|
if (e.key === 'Enter' && search.value) {
|
|
19735
|
-
select(transformItem$3(props, search.value));
|
|
19704
|
+
select(transformItem$3(props, search.value), true, true);
|
|
19736
19705
|
if (hasSelectionSlot.value) _search.value = '';
|
|
19737
19706
|
}
|
|
19738
19707
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
@@ -19780,10 +19749,12 @@
|
|
|
19780
19749
|
isPristine.value = true;
|
|
19781
19750
|
vTextFieldRef.value?.focus();
|
|
19782
19751
|
}
|
|
19752
|
+
_searchLock.value = null;
|
|
19783
19753
|
}
|
|
19784
19754
|
/** @param set - null means toggle */
|
|
19785
19755
|
function select(item) {
|
|
19786
19756
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
19757
|
+
let keepMenu = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
19787
19758
|
if (!item || item.props.disabled) return;
|
|
19788
19759
|
if (props.multiple) {
|
|
19789
19760
|
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
@@ -19801,11 +19772,14 @@
|
|
|
19801
19772
|
} else {
|
|
19802
19773
|
const add = set !== false;
|
|
19803
19774
|
model.value = add ? [item] : [];
|
|
19775
|
+
if ((!isPristine.value || props.alwaysFilter) && _search.value) {
|
|
19776
|
+
_searchLock.value = _search.value;
|
|
19777
|
+
}
|
|
19804
19778
|
_search.value = add && !hasSelectionSlot.value ? item.title : '';
|
|
19805
19779
|
|
|
19806
19780
|
// watch for search watcher to trigger
|
|
19807
19781
|
vue.nextTick(() => {
|
|
19808
|
-
menu.value =
|
|
19782
|
+
menu.value = keepMenu;
|
|
19809
19783
|
isPristine.value = true;
|
|
19810
19784
|
});
|
|
19811
19785
|
}
|
|
@@ -19844,13 +19818,14 @@
|
|
|
19844
19818
|
}
|
|
19845
19819
|
}
|
|
19846
19820
|
});
|
|
19847
|
-
vue.watch(menu,
|
|
19848
|
-
if (!props.hideSelected &&
|
|
19821
|
+
vue.watch(menu, val => {
|
|
19822
|
+
if (!props.hideSelected && val && model.value.length && isPristine.value) {
|
|
19849
19823
|
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
|
19850
19824
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
19851
19825
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
19852
19826
|
});
|
|
19853
19827
|
}
|
|
19828
|
+
if (val) _searchLock.value = null;
|
|
19854
19829
|
});
|
|
19855
19830
|
vue.watch(items, (newVal, oldVal) => {
|
|
19856
19831
|
if (menu.value) return;
|
|
@@ -19901,7 +19876,6 @@
|
|
|
19901
19876
|
"maxHeight": 310,
|
|
19902
19877
|
"openOnClick": false,
|
|
19903
19878
|
"closeOnContentClick": false,
|
|
19904
|
-
"transition": props.transition,
|
|
19905
19879
|
"onAfterEnter": onAfterEnter,
|
|
19906
19880
|
"onAfterLeave": onAfterLeave
|
|
19907
19881
|
}, props.menuProps), {
|
|
@@ -21448,6 +21422,7 @@
|
|
|
21448
21422
|
// Types
|
|
21449
21423
|
|
|
21450
21424
|
const makeVDataTableFooterProps = propsFactory({
|
|
21425
|
+
color: String,
|
|
21451
21426
|
prevIcon: {
|
|
21452
21427
|
type: IconValue,
|
|
21453
21428
|
default: '$prev'
|
|
@@ -21550,6 +21525,7 @@
|
|
|
21550
21525
|
"aria-label": t(props.itemsPerPageText)
|
|
21551
21526
|
}, [t(props.itemsPerPageText)]), vue.createVNode(VSelect, {
|
|
21552
21527
|
"items": itemsPerPageOptions.value,
|
|
21528
|
+
"itemColor": props.color,
|
|
21553
21529
|
"modelValue": itemsPerPage.value,
|
|
21554
21530
|
"onUpdate:modelValue": v => setItemsPerPage(Number(v)),
|
|
21555
21531
|
"density": "compact",
|
|
@@ -21572,7 +21548,7 @@
|
|
|
21572
21548
|
"showFirstLastPage": true,
|
|
21573
21549
|
"totalVisible": props.showCurrentPage ? 1 : 0,
|
|
21574
21550
|
"variant": "plain"
|
|
21575
|
-
}, paginationProps), null)])]);
|
|
21551
|
+
}, omit(paginationProps, ['color'])), null)])]);
|
|
21576
21552
|
});
|
|
21577
21553
|
return {};
|
|
21578
21554
|
}
|
|
@@ -22083,6 +22059,7 @@
|
|
|
22083
22059
|
if (isEmpty) return '';
|
|
22084
22060
|
if (column.key === 'data-table-select') {
|
|
22085
22061
|
return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && vue.createVNode(VCheckboxBtn, {
|
|
22062
|
+
"color": props.color,
|
|
22086
22063
|
"density": props.density,
|
|
22087
22064
|
"modelValue": allSelected.value,
|
|
22088
22065
|
"indeterminate": someSelected.value && !allSelected.value,
|
|
@@ -22107,11 +22084,6 @@
|
|
|
22107
22084
|
const displayItems = vue.computed(() => {
|
|
22108
22085
|
return columns.value.filter(column => column?.sortable && !props.disableSort);
|
|
22109
22086
|
});
|
|
22110
|
-
const appendIcon = vue.computed(() => {
|
|
22111
|
-
const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');
|
|
22112
|
-
if (showSelectColumn == null) return;
|
|
22113
|
-
return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff';
|
|
22114
|
-
});
|
|
22115
22087
|
return vue.createVNode(VDataTableColumn, vue.mergeProps({
|
|
22116
22088
|
"tag": "th",
|
|
22117
22089
|
"class": [...headerCellClasses.value],
|
|
@@ -22121,6 +22093,7 @@
|
|
|
22121
22093
|
"class": "v-data-table-header__content"
|
|
22122
22094
|
}, [vue.createVNode(VSelect, {
|
|
22123
22095
|
"chips": true,
|
|
22096
|
+
"color": props.color,
|
|
22124
22097
|
"class": "v-data-table__td-sort-select",
|
|
22125
22098
|
"clearable": true,
|
|
22126
22099
|
"density": "default",
|
|
@@ -22129,9 +22102,15 @@
|
|
|
22129
22102
|
"multiple": props.multiSort,
|
|
22130
22103
|
"variant": "underlined",
|
|
22131
22104
|
"onClick:clear": () => sortBy.value = [],
|
|
22132
|
-
"appendIcon": appendIcon.value,
|
|
22133
22105
|
"onClick:append": () => selectAll(!allSelected.value)
|
|
22134
22106
|
}, {
|
|
22107
|
+
append: () => vue.createVNode(VCheckboxBtn, {
|
|
22108
|
+
"color": props.color,
|
|
22109
|
+
"density": "compact",
|
|
22110
|
+
"modelValue": allSelected.value,
|
|
22111
|
+
"indeterminate": someSelected.value && !allSelected.value,
|
|
22112
|
+
"onUpdate:modelValue": selectAll
|
|
22113
|
+
}, null),
|
|
22135
22114
|
chip: props => vue.createVNode(VChip, {
|
|
22136
22115
|
"onClick": props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined,
|
|
22137
22116
|
"onMousedown": e => {
|
|
@@ -22161,7 +22140,7 @@
|
|
|
22161
22140
|
"name": "v-data-table-progress",
|
|
22162
22141
|
"absolute": true,
|
|
22163
22142
|
"active": true,
|
|
22164
|
-
"color": typeof props.loading === 'boolean' ?
|
|
22143
|
+
"color": typeof props.loading === 'boolean' || props.loading === 'true' ? props.color : props.loading,
|
|
22165
22144
|
"indeterminate": true
|
|
22166
22145
|
}, {
|
|
22167
22146
|
default: slots.loader
|
|
@@ -22268,6 +22247,7 @@
|
|
|
22268
22247
|
// Types
|
|
22269
22248
|
|
|
22270
22249
|
const makeVDataTableRowProps = propsFactory({
|
|
22250
|
+
color: String,
|
|
22271
22251
|
index: Number,
|
|
22272
22252
|
item: Object,
|
|
22273
22253
|
cellProps: [Object, Function],
|
|
@@ -22385,11 +22365,13 @@
|
|
|
22385
22365
|
return slots['item.data-table-select']?.({
|
|
22386
22366
|
...slotProps,
|
|
22387
22367
|
props: {
|
|
22368
|
+
color: props.color,
|
|
22388
22369
|
disabled: !item.selectable,
|
|
22389
22370
|
modelValue: isSelected([item]),
|
|
22390
22371
|
onClick: vue.withModifiers(() => toggleSelect(item), ['stop'])
|
|
22391
22372
|
}
|
|
22392
22373
|
}) ?? vue.createVNode(VCheckboxBtn, {
|
|
22374
|
+
"color": props.color,
|
|
22393
22375
|
"disabled": !item.selectable,
|
|
22394
22376
|
"density": props.density,
|
|
22395
22377
|
"modelValue": isSelected([item]),
|
|
@@ -22428,6 +22410,7 @@
|
|
|
22428
22410
|
// Types
|
|
22429
22411
|
|
|
22430
22412
|
const makeVDataTableRowsProps = propsFactory({
|
|
22413
|
+
color: String,
|
|
22431
22414
|
loading: [Boolean, String],
|
|
22432
22415
|
loadingText: {
|
|
22433
22416
|
type: String,
|
|
@@ -22543,6 +22526,7 @@
|
|
|
22543
22526
|
} : undefined,
|
|
22544
22527
|
index,
|
|
22545
22528
|
item,
|
|
22529
|
+
color: props.color,
|
|
22546
22530
|
cellProps: props.cellProps,
|
|
22547
22531
|
collapseIcon: props.collapseIcon,
|
|
22548
22532
|
expandIcon: props.expandIcon,
|
|
@@ -26938,12 +26922,17 @@
|
|
|
26938
26922
|
}
|
|
26939
26923
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
|
26940
26924
|
const _inputText = vue.shallowRef(null);
|
|
26941
|
-
vue.
|
|
26942
|
-
|
|
26925
|
+
const _lastParsedValue = vue.shallowRef(null);
|
|
26926
|
+
vue.watch(model, val => {
|
|
26927
|
+
if (isFocused.value && !controlsDisabled.value && Number(_inputText.value) === val) ; else if (val == null) {
|
|
26943
26928
|
_inputText.value = null;
|
|
26944
|
-
|
|
26945
|
-
|
|
26929
|
+
_lastParsedValue.value = null;
|
|
26930
|
+
} else if (!isNaN(val)) {
|
|
26931
|
+
_inputText.value = correctPrecision(val);
|
|
26932
|
+
_lastParsedValue.value = Number(_inputText.value.replace(decimalSeparator.value, '.'));
|
|
26946
26933
|
}
|
|
26934
|
+
}, {
|
|
26935
|
+
immediate: true
|
|
26947
26936
|
});
|
|
26948
26937
|
const inputText = vue.computed({
|
|
26949
26938
|
get: () => _inputText.value,
|
|
@@ -26951,15 +26940,24 @@
|
|
|
26951
26940
|
if (val === null || val === '') {
|
|
26952
26941
|
model.value = null;
|
|
26953
26942
|
_inputText.value = null;
|
|
26943
|
+
_lastParsedValue.value = null;
|
|
26954
26944
|
return;
|
|
26955
26945
|
}
|
|
26956
26946
|
const parsedValue = Number(val.replace(decimalSeparator.value, '.'));
|
|
26957
|
-
if (!isNaN(parsedValue)
|
|
26958
|
-
model.value = parsedValue;
|
|
26947
|
+
if (!isNaN(parsedValue)) {
|
|
26959
26948
|
_inputText.value = val;
|
|
26949
|
+
_lastParsedValue.value = parsedValue;
|
|
26950
|
+
if (parsedValue <= props.max && parsedValue >= props.min) {
|
|
26951
|
+
model.value = parsedValue;
|
|
26952
|
+
}
|
|
26960
26953
|
}
|
|
26961
26954
|
}
|
|
26962
26955
|
});
|
|
26956
|
+
const isOutOfRange = vue.computed(() => {
|
|
26957
|
+
if (_lastParsedValue.value === null) return false;
|
|
26958
|
+
const numberFromText = Number(_inputText.value);
|
|
26959
|
+
return numberFromText !== clamp(numberFromText, props.min, props.max);
|
|
26960
|
+
});
|
|
26963
26961
|
const canIncrease = vue.computed(() => {
|
|
26964
26962
|
if (controlsDisabled.value) return false;
|
|
26965
26963
|
return (model.value ?? 0) + props.step <= props.max;
|
|
@@ -27215,6 +27213,7 @@
|
|
|
27215
27213
|
"focused": isFocused.value,
|
|
27216
27214
|
"onUpdate:focused": $event => isFocused.value = $event,
|
|
27217
27215
|
"validationValue": model.value,
|
|
27216
|
+
"error": isOutOfRange.value || undefined,
|
|
27218
27217
|
"onBeforeinput": onBeforeinput,
|
|
27219
27218
|
"onFocus": onFocus,
|
|
27220
27219
|
"onBlur": onBlur,
|
|
@@ -30014,7 +30013,7 @@
|
|
|
30014
30013
|
"role": "tablist",
|
|
30015
30014
|
"symbol": VTabsSymbol
|
|
30016
30015
|
}, scopeId, attrs), {
|
|
30017
|
-
default:
|
|
30016
|
+
default: slots.default ?? (() => items.value.map(item => slots.tab?.({
|
|
30018
30017
|
item
|
|
30019
30018
|
}) ?? vue.createVNode(VTab, vue.mergeProps(item, {
|
|
30020
30019
|
"key": item.text,
|
|
@@ -30024,7 +30023,9 @@
|
|
|
30024
30023
|
default: slots[`tab.${item.value}`] ? () => slots[`tab.${item.value}`]?.({
|
|
30025
30024
|
item
|
|
30026
30025
|
}) : undefined
|
|
30027
|
-
}))
|
|
30026
|
+
}))),
|
|
30027
|
+
prev: slots.prev,
|
|
30028
|
+
next: slots.next
|
|
30028
30029
|
}), hasWindow && vue.createVNode(VTabsWindow, vue.mergeProps({
|
|
30029
30030
|
"modelValue": model.value,
|
|
30030
30031
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
@@ -30113,6 +30114,10 @@
|
|
|
30113
30114
|
const vFieldRef = vue.ref();
|
|
30114
30115
|
const controlHeight = vue.shallowRef('');
|
|
30115
30116
|
const textareaRef = vue.ref();
|
|
30117
|
+
const scrollbarWidth = vue.ref(0);
|
|
30118
|
+
const {
|
|
30119
|
+
platform
|
|
30120
|
+
} = useDisplay();
|
|
30116
30121
|
const autocomplete = useAutocomplete(props);
|
|
30117
30122
|
const isActive = vue.computed(() => props.persistentPlaceholder || isFocused.value || props.active);
|
|
30118
30123
|
function onFocus() {
|
|
@@ -30157,6 +30162,18 @@
|
|
|
30157
30162
|
if (!props.autoGrow) rows.value = Number(props.rows);
|
|
30158
30163
|
});
|
|
30159
30164
|
function calculateInputHeight() {
|
|
30165
|
+
vue.nextTick(() => {
|
|
30166
|
+
if (!textareaRef.value) return;
|
|
30167
|
+
if (platform.value.firefox) {
|
|
30168
|
+
scrollbarWidth.value = 12;
|
|
30169
|
+
return;
|
|
30170
|
+
}
|
|
30171
|
+
const {
|
|
30172
|
+
offsetWidth,
|
|
30173
|
+
clientWidth
|
|
30174
|
+
} = textareaRef.value;
|
|
30175
|
+
scrollbarWidth.value = Math.max(0, offsetWidth - clientWidth);
|
|
30176
|
+
});
|
|
30160
30177
|
if (!props.autoGrow) return;
|
|
30161
30178
|
vue.nextTick(() => {
|
|
30162
30179
|
if (!sizerRef.value || !vFieldRef.value) return;
|
|
@@ -30217,7 +30234,9 @@
|
|
|
30217
30234
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
|
30218
30235
|
'v-input--plain-underlined': isPlainOrUnderlined.value
|
|
30219
30236
|
}, props.class],
|
|
30220
|
-
"style":
|
|
30237
|
+
"style": [{
|
|
30238
|
+
'--v-textarea-scroll-bar-width': convertToUnit(scrollbarWidth.value)
|
|
30239
|
+
}, props.style]
|
|
30221
30240
|
}, rootAttrs, inputProps, {
|
|
30222
30241
|
"centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
|
|
30223
30242
|
"focused": isFocused.value
|
|
@@ -31736,6 +31755,11 @@
|
|
|
31736
31755
|
openAll: Boolean,
|
|
31737
31756
|
indentLines: [Boolean, String],
|
|
31738
31757
|
search: String,
|
|
31758
|
+
hideNoData: Boolean,
|
|
31759
|
+
noDataText: {
|
|
31760
|
+
type: String,
|
|
31761
|
+
default: '$vuetify.noDataText'
|
|
31762
|
+
},
|
|
31739
31763
|
...makeFilterProps({
|
|
31740
31764
|
filterKeys: ['title']
|
|
31741
31765
|
}),
|
|
@@ -31763,6 +31787,9 @@
|
|
|
31763
31787
|
slots,
|
|
31764
31788
|
emit
|
|
31765
31789
|
} = _ref;
|
|
31790
|
+
const {
|
|
31791
|
+
t
|
|
31792
|
+
} = useLocale();
|
|
31766
31793
|
const {
|
|
31767
31794
|
items
|
|
31768
31795
|
} = useListItems(props);
|
|
@@ -31856,7 +31883,10 @@
|
|
|
31856
31883
|
"selected": selected.value,
|
|
31857
31884
|
"onUpdate:selected": $event => selected.value = $event
|
|
31858
31885
|
}), {
|
|
31859
|
-
default: () => [
|
|
31886
|
+
default: () => [visibleIds.value?.size === 0 && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
31887
|
+
"key": "no-data",
|
|
31888
|
+
"title": t(props.noDataText)
|
|
31889
|
+
}, null)), vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
|
|
31860
31890
|
"density": props.density,
|
|
31861
31891
|
"returnObject": props.returnObject,
|
|
31862
31892
|
"items": items.value,
|
|
@@ -32282,6 +32312,40 @@
|
|
|
32282
32312
|
Touch: Touch
|
|
32283
32313
|
});
|
|
32284
32314
|
|
|
32315
|
+
// Composables
|
|
32316
|
+
|
|
32317
|
+
// Types
|
|
32318
|
+
|
|
32319
|
+
function genDefaults() {
|
|
32320
|
+
return {
|
|
32321
|
+
svg: {
|
|
32322
|
+
component: VSvgIcon
|
|
32323
|
+
},
|
|
32324
|
+
class: {
|
|
32325
|
+
component: VClassIcon
|
|
32326
|
+
}
|
|
32327
|
+
};
|
|
32328
|
+
}
|
|
32329
|
+
function createIcons(options) {
|
|
32330
|
+
const sets = genDefaults();
|
|
32331
|
+
const defaultSet = options?.defaultSet ?? 'mdi';
|
|
32332
|
+
if (defaultSet === 'mdi' && !sets.mdi) {
|
|
32333
|
+
sets.mdi = mdi;
|
|
32334
|
+
}
|
|
32335
|
+
return mergeDeep({
|
|
32336
|
+
defaultSet,
|
|
32337
|
+
sets,
|
|
32338
|
+
aliases: {
|
|
32339
|
+
...aliases,
|
|
32340
|
+
/* eslint-disable max-len */
|
|
32341
|
+
vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],
|
|
32342
|
+
'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',
|
|
32343
|
+
'vuetify-play': ['m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z', ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6]]
|
|
32344
|
+
/* eslint-enable max-len */
|
|
32345
|
+
}
|
|
32346
|
+
}, options);
|
|
32347
|
+
}
|
|
32348
|
+
|
|
32285
32349
|
// Composables
|
|
32286
32350
|
function createVuetify$1() {
|
|
32287
32351
|
let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -32381,7 +32445,7 @@
|
|
|
32381
32445
|
};
|
|
32382
32446
|
});
|
|
32383
32447
|
}
|
|
32384
|
-
const version$1 = "3.10.5-dev.2025-10-
|
|
32448
|
+
const version$1 = "3.10.5-dev.2025-10-10";
|
|
32385
32449
|
createVuetify$1.version = version$1;
|
|
32386
32450
|
|
|
32387
32451
|
// Vue's inject() can only be used in setup
|
|
@@ -32406,7 +32470,7 @@
|
|
|
32406
32470
|
...options
|
|
32407
32471
|
});
|
|
32408
32472
|
};
|
|
32409
|
-
const version = "3.10.5-dev.2025-10-
|
|
32473
|
+
const version = "3.10.5-dev.2025-10-10";
|
|
32410
32474
|
createVuetify.version = version;
|
|
32411
32475
|
|
|
32412
32476
|
exports.blueprints = index;
|