@vuetify/nightly 3.8.9-dev.2025-06-13 → 3.8.9-master.2025-06-12
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 +6 -45
- package/dist/json/attributes.json +3714 -4110
- package/dist/json/importMap-labs.json +24 -28
- package/dist/json/importMap.json +154 -154
- package/dist/json/tags.json +2 -106
- package/dist/json/web-types.json +6783 -8232
- package/dist/vuetify-labs.cjs +177 -730
- package/dist/vuetify-labs.css +4085 -4128
- package/dist/vuetify-labs.d.ts +2938 -10254
- package/dist/vuetify-labs.esm.js +178 -731
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +177 -730
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +166 -478
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3607 -3650
- package/dist/vuetify.d.ts +2085 -2782
- package/dist/vuetify.esm.js +167 -479
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +166 -478
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1229 -1251
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +1 -6
- package/lib/components/VAlert/VAlert.d.ts +0 -35
- package/lib/components/VAlert/VAlert.js +10 -15
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VAlert/VAlert.sass +1 -7
- package/lib/components/VAppBar/VAppBar.d.ts +3 -15
- package/lib/components/VAppBar/VAppBarNavIcon.d.ts +10 -20
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +110 -175
- package/lib/components/VAutocomplete/VAutocomplete.js +3 -21
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.d.ts +0 -60
- package/lib/components/VBadge/VBadge.js +2 -7
- package/lib/components/VBadge/VBadge.js.map +1 -1
- package/lib/components/VBtn/VBtn.d.ts +10 -20
- package/lib/components/VBtnGroup/VBtnGroup.css +7 -30
- package/lib/components/VBtnGroup/VBtnGroup.d.ts +32 -58
- package/lib/components/VBtnGroup/VBtnGroup.js +3 -7
- package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +17 -44
- package/lib/components/VBtnToggle/VBtnToggle.d.ts +0 -25
- package/lib/components/VCard/VCard.d.ts +10 -20
- package/lib/components/VCheckbox/VCheckbox.d.ts +13 -23
- package/lib/components/VCheckbox/VCheckboxBtn.d.ts +10 -20
- package/lib/components/VChip/VChip.d.ts +10 -20
- package/lib/components/VChipGroup/VChipGroup.d.ts +0 -10
- package/lib/components/VCombobox/VCombobox.d.ts +110 -175
- package/lib/components/VCombobox/VCombobox.js +3 -22
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +0 -60
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +0 -13
- package/lib/components/VDataTable/VDataTableHeaders.js +2 -4
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +0 -42
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +0 -42
- package/lib/components/VDatePicker/VDatePicker.d.ts +5 -80
- package/lib/components/VDatePicker/VDatePicker.js +4 -10
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +0 -10
- package/lib/components/VDatePicker/VDatePickerMonth.js +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +10 -20
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +10 -20
- package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +10 -20
- package/lib/components/VFab/VFab.d.ts +10 -20
- package/lib/components/VField/VField.d.ts +3 -3
- package/lib/components/VFileInput/VFileInput.d.ts +15 -15
- package/lib/components/VInfiniteScroll/VInfiniteScroll.d.ts +3 -9
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js +0 -29
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
- package/lib/components/VInput/VInput.d.ts +4 -4
- package/lib/components/VKbd/VKbd.css +2 -13
- package/lib/components/VKbd/VKbd.sass +1 -2
- package/lib/components/VKbd/_variables.scss +1 -12
- package/lib/components/VKbd/index.d.ts +95 -1
- package/lib/components/VKbd/index.js +4 -1
- package/lib/components/VKbd/index.js.map +1 -1
- package/lib/components/VList/VList.d.ts +0 -13
- package/lib/components/VList/VList.js +1 -4
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListChildren.js.map +1 -1
- package/lib/components/VList/VListItem.css +2 -0
- package/lib/components/VList/VListItem.d.ts +10 -23
- package/lib/components/VList/VListItem.js +3 -7
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/VListItem.sass +2 -0
- package/lib/components/VList/_variables.scss +1 -0
- package/lib/components/VList/list.d.ts +2 -9
- package/lib/components/VList/list.js +0 -7
- package/lib/components/VList/list.js.map +1 -1
- package/lib/components/VMenu/VMenu.d.ts +0 -13
- package/lib/components/VMenu/VMenu.js +1 -2
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.d.ts +89 -114
- package/lib/components/VNumberInput/VNumberInput.js +20 -43
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +1 -2
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +1 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VRadio/VRadio.d.ts +10 -20
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +13 -23
- package/lib/components/VRangeSlider/VRangeSlider.d.ts +3 -3
- package/lib/components/VSelect/VSelect.d.ts +118 -204
- package/lib/components/VSelect/VSelect.js +3 -21
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.d.ts +10 -20
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +14 -28
- package/lib/components/VSlideGroup/VSlideGroup.d.ts +0 -10
- package/lib/components/VSlideGroup/VSlideGroup.js +1 -2
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VSlider/VSlider.d.ts +3 -3
- package/lib/components/VSlider/VSliderThumb.d.ts +10 -20
- package/lib/components/VSpeedDial/VSpeedDial.css +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.d.ts +0 -13
- package/lib/components/VSpeedDial/VSpeedDial.sass +3 -1
- package/lib/components/VStepper/VStepperItem.d.ts +14 -28
- package/lib/components/VSwitch/VSwitch.d.ts +13 -23
- package/lib/components/VTable/VTable.css +0 -6
- package/lib/components/VTable/VTable.d.ts +24 -55
- package/lib/components/VTable/VTable.js +2 -9
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTable/VTable.sass +0 -14
- package/lib/components/VTable/_variables.scss +0 -1
- package/lib/components/VTabs/VTab.d.ts +28 -56
- package/lib/components/VTabs/VTabs.d.ts +0 -10
- package/lib/components/VTextField/VTextField.d.ts +27 -27
- package/lib/components/VTextarea/VTextarea.d.ts +15 -15
- package/lib/components/VToolbar/VToolbar.d.ts +3 -15
- package/lib/components/VToolbar/VToolbar.js +3 -6
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/composables/calendar.d.ts +0 -6
- package/lib/composables/calendar.js +1 -2
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +3 -3
- package/lib/composables/date/DateAdapter.js.map +1 -1
- package/lib/composables/date/adapters/vuetify.d.ts +1 -1
- package/lib/composables/date/adapters/vuetify.js +4 -4
- package/lib/composables/date/adapters/vuetify.js.map +1 -1
- package/lib/composables/date/date.d.ts +3 -3
- package/lib/composables/date/index.d.ts +0 -1
- package/lib/composables/date/index.js +0 -1
- package/lib/composables/date/index.js.map +1 -1
- package/lib/composables/filter.js +0 -3
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/locale.d.ts +1 -5
- package/lib/composables/locale.js.map +1 -1
- package/lib/composables/theme.d.ts +1 -6
- package/lib/composables/theme.js +29 -97
- package/lib/composables/theme.js.map +1 -1
- package/lib/composables/virtual.js +1 -6
- package/lib/composables/virtual.js.map +1 -1
- package/lib/directives/ripple/index.d.ts +1 -2
- package/lib/directives/ripple/index.js +7 -12
- package/lib/directives/ripple/index.js.map +1 -1
- package/lib/entry-bundler.d.ts +3 -4
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +64 -83
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +0 -10
- package/lib/labs/VColorInput/VColorInput.d.ts +3 -3
- package/lib/labs/VDateInput/VDateInput.d.ts +87 -97
- package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
- package/lib/labs/VFileUpload/VFileUploadItem.d.ts +10 -20
- package/lib/labs/VIconBtn/VIconBtn.d.ts +29 -29
- package/lib/labs/VIconBtn/VIconBtn.js +11 -7
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
- package/lib/labs/VStepperVertical/VStepperVertical.d.ts +10 -20
- package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +10 -20
- package/lib/labs/VTreeview/VTreeview.d.ts +0 -13
- package/lib/labs/VTreeview/VTreeviewItem.d.ts +10 -20
- package/lib/labs/components.d.ts +0 -1
- package/lib/labs/components.js +0 -1
- package/lib/labs/components.js.map +1 -1
- package/lib/labs/entry-bundler.d.ts +3 -4
- package/lib/locale/adapters/vue-i18n.js +1 -6
- package/lib/locale/adapters/vue-i18n.js.map +1 -1
- package/lib/locale/adapters/vuetify.js +1 -7
- package/lib/locale/adapters/vuetify.js.map +1 -1
- package/lib/util/globals.d.ts +0 -1
- package/lib/util/globals.js +0 -1
- package/lib/util/globals.js.map +1 -1
- package/lib/util/helpers.d.ts +1 -2
- package/lib/util/helpers.js +7 -12
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -3
- package/lib/components/VKbd/VKbd.d.ts +0 -221
- package/lib/components/VKbd/VKbd.js +0 -55
- package/lib/components/VKbd/VKbd.js.map +0 -1
- package/lib/composables/date/adapters/string.d.ts +0 -54
- package/lib/composables/date/adapters/string.js +0 -153
- package/lib/composables/date/adapters/string.js.map +0 -1
- package/lib/composables/iconSizes.d.ts +0 -28
- package/lib/composables/iconSizes.js +0 -23
- package/lib/composables/iconSizes.js.map +0 -1
- package/lib/composables/mask.d.ts +0 -38
- package/lib/composables/mask.js +0 -183
- package/lib/composables/mask.js.map +0 -1
- package/lib/labs/VMaskInput/VMaskInput.d.ts +0 -6993
- package/lib/labs/VMaskInput/VMaskInput.js +0 -67
- package/lib/labs/VMaskInput/VMaskInput.js.map +0 -1
- package/lib/labs/VMaskInput/index.d.ts +0 -1
- package/lib/labs/VMaskInput/index.js +0 -2
- package/lib/labs/VMaskInput/index.js.map +0 -1
package/dist/vuetify-labs.cjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.9-
|
2
|
+
* Vuetify v3.8.9-master.2025-06-12
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -85,7 +85,6 @@
|
|
85
85
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
86
86
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
87
87
|
const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
|
88
|
-
const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';
|
89
88
|
|
90
89
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
91
90
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -592,23 +591,18 @@
|
|
592
591
|
function isPrimitive(value) {
|
593
592
|
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';
|
594
593
|
}
|
595
|
-
function
|
596
|
-
|
597
|
-
}
|
598
|
-
function extractNumber(text, decimalDigitsLimit, decimalSeparator) {
|
599
|
-
const onlyValidCharacters = new RegExp(`[\\d\\-${escapeForRegex(decimalSeparator)}]`);
|
600
|
-
const cleanText = text.split('').filter(x => onlyValidCharacters.test(x)).filter((x, i, all) => i === 0 && /[-]/.test(x) ||
|
594
|
+
function extractNumber(text, decimalDigitsLimit) {
|
595
|
+
const cleanText = text.split('').filter(x => /[\d\-.]/.test(x)).filter((x, i, all) => i === 0 && /[-]/.test(x) ||
|
601
596
|
// sign allowed at the start
|
602
|
-
x ===
|
597
|
+
x === '.' && i === all.indexOf('.') ||
|
603
598
|
// decimal separator allowed only once
|
604
599
|
/\d/.test(x)).join('');
|
605
600
|
if (decimalDigitsLimit === 0) {
|
606
|
-
return cleanText.split(
|
601
|
+
return cleanText.split('.')[0];
|
607
602
|
}
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
return [parts[0], parts[1].substring(0, decimalDigitsLimit)].join(decimalSeparator);
|
603
|
+
if (decimalDigitsLimit !== null && /\.\d/.test(cleanText)) {
|
604
|
+
const parts = cleanText.split('.');
|
605
|
+
return [parts[0], parts[1].substring(0, decimalDigitsLimit)].join('.');
|
612
606
|
}
|
613
607
|
return cleanText;
|
614
608
|
}
|
@@ -2184,10 +2178,6 @@
|
|
2184
2178
|
return numberFormat.format(value);
|
2185
2179
|
};
|
2186
2180
|
}
|
2187
|
-
function inferDecimalSeparator(current, fallback) {
|
2188
|
-
const format = createNumberFunction(current, fallback);
|
2189
|
-
return format(0.1).includes(',') ? ',' : '.';
|
2190
|
-
}
|
2191
2181
|
function useProvided(props, prop, provided) {
|
2192
2182
|
const internal = useProxiedModel(props, prop, props[prop] ?? provided.value);
|
2193
2183
|
|
@@ -2210,7 +2200,6 @@
|
|
2210
2200
|
current,
|
2211
2201
|
fallback,
|
2212
2202
|
messages,
|
2213
|
-
decimalSeparator: vue.toRef(() => inferDecimalSeparator(current, fallback)),
|
2214
2203
|
t: createTranslateFunction(current, fallback, messages),
|
2215
2204
|
n: createNumberFunction(current, fallback),
|
2216
2205
|
provide: createProvideFunction({
|
@@ -2233,7 +2222,6 @@
|
|
2233
2222
|
current,
|
2234
2223
|
fallback,
|
2235
2224
|
messages,
|
2236
|
-
decimalSeparator: vue.toRef(() => options?.decimalSeparator ?? inferDecimalSeparator(current, fallback)),
|
2237
2225
|
t: createTranslateFunction(current, fallback, messages),
|
2238
2226
|
n: createNumberFunction(current, fallback),
|
2239
2227
|
provide: createProvideFunction({
|
@@ -2360,7 +2348,6 @@
|
|
2360
2348
|
function genDefaults$2() {
|
2361
2349
|
return {
|
2362
2350
|
defaultTheme: 'light',
|
2363
|
-
prefix: 'v-',
|
2364
2351
|
variations: {
|
2365
2352
|
colors: [],
|
2366
2353
|
lighten: 0,
|
@@ -2398,8 +2385,8 @@
|
|
2398
2385
|
'activated-opacity': 0.12,
|
2399
2386
|
'pressed-opacity': 0.12,
|
2400
2387
|
'dragged-opacity': 0.08,
|
2401
|
-
'theme-kbd': '#
|
2402
|
-
'theme-on-kbd': '#
|
2388
|
+
'theme-kbd': '#212529',
|
2389
|
+
'theme-on-kbd': '#FFFFFF',
|
2403
2390
|
'theme-code': '#F5F5F5',
|
2404
2391
|
'theme-on-code': '#000000'
|
2405
2392
|
}
|
@@ -2435,17 +2422,14 @@
|
|
2435
2422
|
'activated-opacity': 0.12,
|
2436
2423
|
'pressed-opacity': 0.16,
|
2437
2424
|
'dragged-opacity': 0.08,
|
2438
|
-
'theme-kbd': '#
|
2425
|
+
'theme-kbd': '#212529',
|
2439
2426
|
'theme-on-kbd': '#FFFFFF',
|
2440
2427
|
'theme-code': '#343434',
|
2441
2428
|
'theme-on-code': '#CCCCCC'
|
2442
2429
|
}
|
2443
2430
|
}
|
2444
2431
|
},
|
2445
|
-
stylesheetId: 'vuetify-theme-stylesheet'
|
2446
|
-
scoped: false,
|
2447
|
-
unimportant: false,
|
2448
|
-
utilities: true
|
2432
|
+
stylesheetId: 'vuetify-theme-stylesheet'
|
2449
2433
|
};
|
2450
2434
|
}
|
2451
2435
|
function parseThemeOptions() {
|
@@ -2468,21 +2452,21 @@
|
|
2468
2452
|
function createCssClass(lines, selector, content, scope) {
|
2469
2453
|
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2470
2454
|
}
|
2471
|
-
function genCssVariables(theme
|
2455
|
+
function genCssVariables(theme) {
|
2472
2456
|
const lightOverlay = theme.dark ? 2 : 1;
|
2473
2457
|
const darkOverlay = theme.dark ? 1 : 2;
|
2474
2458
|
const variables = [];
|
2475
2459
|
for (const [key, value] of Object.entries(theme.colors)) {
|
2476
2460
|
const rgb = parseColor(value);
|
2477
|
-
variables.push(
|
2461
|
+
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2478
2462
|
if (!key.startsWith('on-')) {
|
2479
|
-
variables.push(
|
2463
|
+
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2480
2464
|
}
|
2481
2465
|
}
|
2482
2466
|
for (const [key, value] of Object.entries(theme.variables)) {
|
2483
2467
|
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2484
2468
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2485
|
-
variables.push(
|
2469
|
+
variables.push(`--v-${key}: ${rgb ?? value}`);
|
2486
2470
|
}
|
2487
2471
|
return variables;
|
2488
2472
|
}
|
@@ -2526,8 +2510,7 @@
|
|
2526
2510
|
const scopeSelector = `:where(${scope})`;
|
2527
2511
|
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
2528
2512
|
}
|
2529
|
-
function upsertStyles(
|
2530
|
-
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
2513
|
+
function upsertStyles(styleEl, styles) {
|
2531
2514
|
if (!styleEl) return;
|
2532
2515
|
styleEl.innerHTML = styles;
|
2533
2516
|
}
|
@@ -2547,17 +2530,8 @@
|
|
2547
2530
|
// Composables
|
2548
2531
|
function createTheme(options) {
|
2549
2532
|
const parsedOptions = parseThemeOptions(options);
|
2550
|
-
const
|
2533
|
+
const name = vue.shallowRef(parsedOptions.defaultTheme);
|
2551
2534
|
const themes = vue.ref(parsedOptions.themes);
|
2552
|
-
const systemName = vue.shallowRef('light');
|
2553
|
-
const name = vue.computed({
|
2554
|
-
get() {
|
2555
|
-
return _name.value === 'system' ? systemName.value : _name.value;
|
2556
|
-
},
|
2557
|
-
set(val) {
|
2558
|
-
_name.value = val;
|
2559
|
-
}
|
2560
|
-
});
|
2561
2535
|
const computedThemes = vue.computed(() => {
|
2562
2536
|
const acc = {};
|
2563
2537
|
for (const [name, original] of Object.entries(themes.value)) {
|
@@ -2578,49 +2552,28 @@
|
|
2578
2552
|
const current = vue.toRef(() => computedThemes.value[name.value]);
|
2579
2553
|
const styles = vue.computed(() => {
|
2580
2554
|
const lines = [];
|
2581
|
-
const important = parsedOptions.unimportant ? '' : ' !important';
|
2582
|
-
const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
|
2583
2555
|
if (current.value?.dark) {
|
2584
2556
|
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
2585
2557
|
}
|
2586
|
-
createCssClass(lines, ':root', genCssVariables(current.value
|
2558
|
+
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
2587
2559
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
2588
|
-
createCssClass(lines,
|
2589
|
-
}
|
2590
|
-
|
2591
|
-
|
2592
|
-
|
2593
|
-
|
2594
|
-
|
2595
|
-
|
2596
|
-
|
2597
|
-
}
|
2598
|
-
|
2599
|
-
|
2600
|
-
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
2601
|
-
}
|
2560
|
+
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
|
2561
|
+
}
|
2562
|
+
const bgLines = [];
|
2563
|
+
const fgLines = [];
|
2564
|
+
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
2565
|
+
for (const key of colors) {
|
2566
|
+
if (key.startsWith('on-')) {
|
2567
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2568
|
+
} else {
|
2569
|
+
createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`], parsedOptions.scope);
|
2570
|
+
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2571
|
+
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
|
2602
2572
|
}
|
2603
|
-
lines.push(...bgLines, ...fgLines);
|
2604
2573
|
}
|
2574
|
+
lines.push(...bgLines, ...fgLines);
|
2605
2575
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
2606
2576
|
});
|
2607
|
-
const themeClasses = vue.toRef(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
|
2608
|
-
const themeNames = vue.toRef(() => Object.keys(computedThemes.value));
|
2609
|
-
if (SUPPORTS_MATCH_MEDIA) {
|
2610
|
-
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
2611
|
-
function updateSystemName() {
|
2612
|
-
systemName.value = media.matches ? 'dark' : 'light';
|
2613
|
-
}
|
2614
|
-
updateSystemName();
|
2615
|
-
media.addEventListener('change', updateSystemName, {
|
2616
|
-
passive: true
|
2617
|
-
});
|
2618
|
-
if (vue.getCurrentScope()) {
|
2619
|
-
vue.onScopeDispose(() => {
|
2620
|
-
media.removeEventListener('change', updateSystemName);
|
2621
|
-
});
|
2622
|
-
}
|
2623
|
-
}
|
2624
2577
|
function install(app) {
|
2625
2578
|
if (parsedOptions.isDisabled) return;
|
2626
2579
|
const head = app._context.provides.usehead;
|
@@ -2658,55 +2611,22 @@
|
|
2658
2611
|
updateStyles();
|
2659
2612
|
}
|
2660
2613
|
function updateStyles() {
|
2661
|
-
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
2614
|
+
upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
|
2662
2615
|
}
|
2663
2616
|
}
|
2664
2617
|
}
|
2665
|
-
|
2666
|
-
if (!themeNames.value.includes(themeName)) {
|
2667
|
-
consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
|
2668
|
-
return;
|
2669
|
-
}
|
2670
|
-
name.value = themeName;
|
2671
|
-
}
|
2672
|
-
function cycle() {
|
2673
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
|
2674
|
-
const currentIndex = themeArray.indexOf(name.value);
|
2675
|
-
const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
|
2676
|
-
change(themeArray[nextIndex]);
|
2677
|
-
}
|
2678
|
-
function toggle() {
|
2679
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
|
2680
|
-
cycle(themeArray);
|
2681
|
-
}
|
2682
|
-
const globalName = new Proxy(name, {
|
2683
|
-
get(target, prop) {
|
2684
|
-
return target[prop];
|
2685
|
-
},
|
2686
|
-
set(target, prop, val) {
|
2687
|
-
if (prop === 'value') {
|
2688
|
-
deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
2689
|
-
}
|
2690
|
-
// @ts-expect-error
|
2691
|
-
target[prop] = val;
|
2692
|
-
return true;
|
2693
|
-
}
|
2694
|
-
});
|
2618
|
+
const themeClasses = vue.toRef(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
|
2695
2619
|
return {
|
2696
2620
|
install,
|
2697
|
-
change,
|
2698
|
-
cycle,
|
2699
|
-
toggle,
|
2700
2621
|
isDisabled: parsedOptions.isDisabled,
|
2701
2622
|
name,
|
2702
2623
|
themes,
|
2703
2624
|
current,
|
2704
2625
|
computedThemes,
|
2705
|
-
prefix: parsedOptions.prefix,
|
2706
2626
|
themeClasses,
|
2707
2627
|
styles,
|
2708
2628
|
global: {
|
2709
|
-
name
|
2629
|
+
name,
|
2710
2630
|
current
|
2711
2631
|
}
|
2712
2632
|
};
|
@@ -2717,7 +2637,7 @@
|
|
2717
2637
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
2718
2638
|
const name = vue.toRef(() => props.theme ?? theme.name.value);
|
2719
2639
|
const current = vue.toRef(() => theme.themes.value[name.value]);
|
2720
|
-
const themeClasses = vue.toRef(() => theme.isDisabled ? undefined :
|
2640
|
+
const themeClasses = vue.toRef(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
2721
2641
|
const newTheme = {
|
2722
2642
|
...theme,
|
2723
2643
|
name,
|
@@ -3821,10 +3741,7 @@
|
|
3821
3741
|
default: 'default',
|
3822
3742
|
validator: v => allowedDensities$1.includes(v)
|
3823
3743
|
},
|
3824
|
-
extended:
|
3825
|
-
type: Boolean,
|
3826
|
-
default: null
|
3827
|
-
},
|
3744
|
+
extended: Boolean,
|
3828
3745
|
extensionHeight: {
|
3829
3746
|
type: [Number, String],
|
3830
3747
|
default: 48
|
@@ -3872,7 +3789,7 @@
|
|
3872
3789
|
const {
|
3873
3790
|
rtlClasses
|
3874
3791
|
} = useRtl();
|
3875
|
-
const isExtended = vue.shallowRef(props.extended
|
3792
|
+
const isExtended = vue.shallowRef(!!(props.extended || slots.extension?.()));
|
3876
3793
|
const contentHeight = vue.computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
|
3877
3794
|
const extensionHeight = vue.computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);
|
3878
3795
|
provideDefaults({
|
@@ -3884,7 +3801,7 @@
|
|
3884
3801
|
const hasTitle = !!(props.title || slots.title);
|
3885
3802
|
const hasImage = !!(slots.image || props.image);
|
3886
3803
|
const extension = slots.extension?.();
|
3887
|
-
isExtended.value = props.extended
|
3804
|
+
isExtended.value = !!(props.extended || extension);
|
3888
3805
|
return vue.createVNode(props.tag, {
|
3889
3806
|
"class": vue.normalizeClass(['v-toolbar', {
|
3890
3807
|
'v-toolbar--absolute': props.absolute,
|
@@ -4267,15 +4184,9 @@
|
|
4267
4184
|
};
|
4268
4185
|
}
|
4269
4186
|
|
4270
|
-
// Types
|
4271
|
-
|
4272
4187
|
const makeVBtnGroupProps = propsFactory({
|
4273
4188
|
baseColor: String,
|
4274
4189
|
divided: Boolean,
|
4275
|
-
direction: {
|
4276
|
-
type: String,
|
4277
|
-
default: 'horizontal'
|
4278
|
-
},
|
4279
4190
|
...makeBorderProps(),
|
4280
4191
|
...makeComponentProps(),
|
4281
4192
|
...makeDensityProps(),
|
@@ -4309,7 +4220,7 @@
|
|
4309
4220
|
} = useRounded(props);
|
4310
4221
|
provideDefaults({
|
4311
4222
|
VBtn: {
|
4312
|
-
height:
|
4223
|
+
height: 'auto',
|
4313
4224
|
baseColor: vue.toRef(() => props.baseColor),
|
4314
4225
|
color: vue.toRef(() => props.color),
|
4315
4226
|
density: vue.toRef(() => props.density),
|
@@ -4319,7 +4230,7 @@
|
|
4319
4230
|
});
|
4320
4231
|
useRender(() => {
|
4321
4232
|
return vue.createVNode(props.tag, {
|
4322
|
-
"class": vue.normalizeClass(['v-btn-group',
|
4233
|
+
"class": vue.normalizeClass(['v-btn-group', {
|
4323
4234
|
'v-btn-group--divided': props.divided
|
4324
4235
|
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
|
4325
4236
|
"style": vue.normalizeStyle(props.style)
|
@@ -5651,8 +5562,8 @@
|
|
5651
5562
|
window.clearTimeout(element._ripple.showTimer);
|
5652
5563
|
}
|
5653
5564
|
let keyboardRipple = false;
|
5654
|
-
function keyboardRippleShow(e
|
5655
|
-
if (!keyboardRipple &&
|
5565
|
+
function keyboardRippleShow(e) {
|
5566
|
+
if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {
|
5656
5567
|
keyboardRipple = true;
|
5657
5568
|
rippleShow(e);
|
5658
5569
|
}
|
@@ -5680,12 +5591,9 @@
|
|
5680
5591
|
el._ripple.enabled = enabled;
|
5681
5592
|
el._ripple.centered = modifiers.center;
|
5682
5593
|
el._ripple.circle = modifiers.circle;
|
5683
|
-
|
5684
|
-
|
5685
|
-
el._ripple.class = bindingValue.class;
|
5594
|
+
if (isObject(value) && value.class) {
|
5595
|
+
el._ripple.class = value.class;
|
5686
5596
|
}
|
5687
|
-
const allowedKeys = bindingValue.keys ?? [keyCodes.enter, keyCodes.space];
|
5688
|
-
el._ripple.keyDownHandler = e => keyboardRippleShow(e, allowedKeys);
|
5689
5597
|
if (enabled && !wasEnabled) {
|
5690
5598
|
if (modifiers.stop) {
|
5691
5599
|
el.addEventListener('touchstart', rippleStop, {
|
@@ -5707,7 +5615,7 @@
|
|
5707
5615
|
el.addEventListener('mousedown', rippleShow);
|
5708
5616
|
el.addEventListener('mouseup', rippleHide);
|
5709
5617
|
el.addEventListener('mouseleave', rippleHide);
|
5710
|
-
el.addEventListener('keydown',
|
5618
|
+
el.addEventListener('keydown', keyboardRippleShow);
|
5711
5619
|
el.addEventListener('keyup', keyboardRippleHide);
|
5712
5620
|
el.addEventListener('blur', focusRippleHide);
|
5713
5621
|
|
@@ -5727,9 +5635,7 @@
|
|
5727
5635
|
el.removeEventListener('touchcancel', rippleHide);
|
5728
5636
|
el.removeEventListener('mouseup', rippleHide);
|
5729
5637
|
el.removeEventListener('mouseleave', rippleHide);
|
5730
|
-
|
5731
|
-
el.removeEventListener('keydown', el._ripple.keyDownHandler);
|
5732
|
-
}
|
5638
|
+
el.removeEventListener('keydown', keyboardRippleShow);
|
5733
5639
|
el.removeEventListener('keyup', keyboardRippleHide);
|
5734
5640
|
el.removeEventListener('dragstart', rippleHide);
|
5735
5641
|
el.removeEventListener('blur', focusRippleHide);
|
@@ -5738,8 +5644,8 @@
|
|
5738
5644
|
updateRipple(el, binding, false);
|
5739
5645
|
}
|
5740
5646
|
function unmounted$4(el) {
|
5741
|
-
removeListeners(el);
|
5742
5647
|
delete el._ripple;
|
5648
|
+
removeListeners(el);
|
5743
5649
|
}
|
5744
5650
|
function updated$1(el, binding) {
|
5745
5651
|
if (binding.value === binding.oldValue) {
|
@@ -6012,31 +5918,6 @@
|
|
6012
5918
|
// Utilities
|
6013
5919
|
const VAlertTitle = createSimpleFunctional('v-alert-title');
|
6014
5920
|
|
6015
|
-
// Utilities
|
6016
|
-
|
6017
|
-
// Types
|
6018
|
-
|
6019
|
-
// Types
|
6020
|
-
|
6021
|
-
// Composables
|
6022
|
-
const makeIconSizeProps = propsFactory({
|
6023
|
-
iconSize: [Number, String],
|
6024
|
-
iconSizes: {
|
6025
|
-
type: Array,
|
6026
|
-
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
6027
|
-
}
|
6028
|
-
}, 'iconSize');
|
6029
|
-
function useIconSizes(props, fallback) {
|
6030
|
-
const iconSize = vue.computed(() => {
|
6031
|
-
const iconSizeMap = new Map(props.iconSizes);
|
6032
|
-
const _iconSize = props.iconSize ?? fallback() ?? 'default';
|
6033
|
-
return iconSizeMap.has(_iconSize) ? iconSizeMap.get(_iconSize) : _iconSize;
|
6034
|
-
});
|
6035
|
-
return {
|
6036
|
-
iconSize
|
6037
|
-
};
|
6038
|
-
}
|
6039
|
-
|
6040
5921
|
// Types
|
6041
5922
|
|
6042
5923
|
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
@@ -6076,7 +5957,6 @@
|
|
6076
5957
|
...makeDensityProps(),
|
6077
5958
|
...makeDimensionProps(),
|
6078
5959
|
...makeElevationProps(),
|
6079
|
-
...makeIconSizeProps(),
|
6080
5960
|
...makeLocationProps(),
|
6081
5961
|
...makePositionProps(),
|
6082
5962
|
...makeRoundedProps(),
|
@@ -6104,9 +5984,6 @@
|
|
6104
5984
|
if (!props.type) return props.icon;
|
6105
5985
|
return props.icon ?? `$${props.type}`;
|
6106
5986
|
});
|
6107
|
-
const {
|
6108
|
-
iconSize
|
6109
|
-
} = useIconSizes(props, () => props.prominent ? 44 : 28);
|
6110
5987
|
const {
|
6111
5988
|
themeClasses
|
6112
5989
|
} = provideTheme(props);
|
@@ -6154,11 +6031,6 @@
|
|
6154
6031
|
const hasPrepend = !!(slots.prepend || icon.value);
|
6155
6032
|
const hasTitle = !!(slots.title || props.title);
|
6156
6033
|
const hasClose = !!(slots.close || props.closable);
|
6157
|
-
const iconProps = {
|
6158
|
-
density: props.density,
|
6159
|
-
icon: icon.value,
|
6160
|
-
size: iconSize.value
|
6161
|
-
};
|
6162
6034
|
return isActive.value && vue.createVNode(props.tag, {
|
6163
6035
|
"class": vue.normalizeClass(['v-alert', props.border && {
|
6164
6036
|
'v-alert--border': !!props.border,
|
@@ -6176,14 +6048,19 @@
|
|
6176
6048
|
}, null), hasPrepend && vue.createElementVNode("div", {
|
6177
6049
|
"key": "prepend",
|
6178
6050
|
"class": "v-alert__prepend"
|
6179
|
-
}, [!slots.prepend ? vue.createVNode(VIcon,
|
6180
|
-
"key": "prepend-icon"
|
6181
|
-
|
6051
|
+
}, [!slots.prepend ? vue.createVNode(VIcon, {
|
6052
|
+
"key": "prepend-icon",
|
6053
|
+
"density": props.density,
|
6054
|
+
"icon": icon.value,
|
6055
|
+
"size": props.prominent ? 44 : 28
|
6056
|
+
}, null) : vue.createVNode(VDefaultsProvider, {
|
6182
6057
|
"key": "prepend-defaults",
|
6183
6058
|
"disabled": !icon.value,
|
6184
6059
|
"defaults": {
|
6185
6060
|
VIcon: {
|
6186
|
-
|
6061
|
+
density: props.density,
|
6062
|
+
icon: icon.value,
|
6063
|
+
size: props.prominent ? 44 : 28
|
6187
6064
|
}
|
6188
6065
|
}
|
6189
6066
|
}, slots.prepend)]), vue.createElementVNode("div", {
|
@@ -7708,7 +7585,6 @@
|
|
7708
7585
|
const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');
|
7709
7586
|
const makeVSlideGroupProps = propsFactory({
|
7710
7587
|
centerActive: Boolean,
|
7711
|
-
contentClass: null,
|
7712
7588
|
direction: {
|
7713
7589
|
type: String,
|
7714
7590
|
default: 'horizontal'
|
@@ -8021,7 +7897,7 @@
|
|
8021
7897
|
})]), vue.createElementVNode("div", {
|
8022
7898
|
"key": "container",
|
8023
7899
|
"ref": containerRef,
|
8024
|
-
"class":
|
7900
|
+
"class": "v-slide-group__container",
|
8025
7901
|
"onScroll": onScroll
|
8026
7902
|
}, [vue.createElementVNode("div", {
|
8027
7903
|
"ref": contentRef,
|
@@ -8384,85 +8260,16 @@
|
|
8384
8260
|
}
|
8385
8261
|
});
|
8386
8262
|
|
8387
|
-
const makeVDividerProps = propsFactory({
|
8388
|
-
color: String,
|
8389
|
-
inset: Boolean,
|
8390
|
-
length: [Number, String],
|
8391
|
-
opacity: [Number, String],
|
8392
|
-
thickness: [Number, String],
|
8393
|
-
vertical: Boolean,
|
8394
|
-
...makeComponentProps(),
|
8395
|
-
...makeThemeProps()
|
8396
|
-
}, 'VDivider');
|
8397
|
-
const VDivider = genericComponent()({
|
8398
|
-
name: 'VDivider',
|
8399
|
-
props: makeVDividerProps(),
|
8400
|
-
setup(props, _ref) {
|
8401
|
-
let {
|
8402
|
-
attrs,
|
8403
|
-
slots
|
8404
|
-
} = _ref;
|
8405
|
-
const {
|
8406
|
-
themeClasses
|
8407
|
-
} = provideTheme(props);
|
8408
|
-
const {
|
8409
|
-
textColorClasses,
|
8410
|
-
textColorStyles
|
8411
|
-
} = useTextColor(() => props.color);
|
8412
|
-
const dividerStyles = vue.computed(() => {
|
8413
|
-
const styles = {};
|
8414
|
-
if (props.length) {
|
8415
|
-
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
8416
|
-
}
|
8417
|
-
if (props.thickness) {
|
8418
|
-
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
8419
|
-
}
|
8420
|
-
return styles;
|
8421
|
-
});
|
8422
|
-
useRender(() => {
|
8423
|
-
const divider = vue.createElementVNode("hr", {
|
8424
|
-
"class": vue.normalizeClass([{
|
8425
|
-
'v-divider': true,
|
8426
|
-
'v-divider--inset': props.inset,
|
8427
|
-
'v-divider--vertical': props.vertical
|
8428
|
-
}, themeClasses.value, textColorClasses.value, props.class]),
|
8429
|
-
"style": vue.normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
8430
|
-
'--v-border-opacity': props.opacity
|
8431
|
-
}, props.style]),
|
8432
|
-
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
8433
|
-
"role": `${attrs.role || 'separator'}`
|
8434
|
-
}, null);
|
8435
|
-
if (!slots.default) return divider;
|
8436
|
-
return vue.createElementVNode("div", {
|
8437
|
-
"class": vue.normalizeClass(['v-divider__wrapper', {
|
8438
|
-
'v-divider__wrapper--vertical': props.vertical,
|
8439
|
-
'v-divider__wrapper--inset': props.inset
|
8440
|
-
}])
|
8441
|
-
}, [divider, vue.createElementVNode("div", {
|
8442
|
-
"class": "v-divider__content"
|
8443
|
-
}, [slots.default()]), divider]);
|
8444
|
-
});
|
8445
|
-
return {};
|
8446
|
-
}
|
8447
|
-
});
|
8448
|
-
|
8449
8263
|
// Utilities
|
8450
8264
|
|
8451
8265
|
// List
|
8452
8266
|
const ListKey = Symbol.for('vuetify:list');
|
8453
8267
|
function createList() {
|
8454
|
-
let {
|
8455
|
-
filterable
|
8456
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
8457
|
-
filterable: false
|
8458
|
-
};
|
8459
8268
|
const parent = vue.inject(ListKey, {
|
8460
|
-
filterable: false,
|
8461
8269
|
hasPrepend: vue.shallowRef(false),
|
8462
8270
|
updateHasPrepend: () => null
|
8463
8271
|
});
|
8464
8272
|
const data = {
|
8465
|
-
filterable: parent.filterable || filterable,
|
8466
8273
|
hasPrepend: vue.shallowRef(false),
|
8467
8274
|
updateHasPrepend: value => {
|
8468
8275
|
if (value) data.hasPrepend.value = value;
|
@@ -9414,9 +9221,6 @@
|
|
9414
9221
|
roundedClasses
|
9415
9222
|
} = useRounded(roundedProps);
|
9416
9223
|
const lineClasses = vue.toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
|
9417
|
-
const rippleOptions = vue.toRef(() => props.ripple !== undefined && !!props.ripple && list?.filterable ? {
|
9418
|
-
keys: [keyCodes.enter]
|
9419
|
-
} : props.ripple);
|
9420
9224
|
const slotProps = vue.computed(() => ({
|
9421
9225
|
isActive: isActive.value,
|
9422
9226
|
select,
|
@@ -9441,9 +9245,8 @@
|
|
9441
9245
|
function onKeyDown(e) {
|
9442
9246
|
const target = e.target;
|
9443
9247
|
if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
|
9444
|
-
if (e.key === 'Enter' || e.key === ' '
|
9248
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
9445
9249
|
e.preventDefault();
|
9446
|
-
e.stopPropagation();
|
9447
9250
|
e.target.dispatchEvent(new MouseEvent('click', e));
|
9448
9251
|
}
|
9449
9252
|
}
|
@@ -9553,7 +9356,7 @@
|
|
9553
9356
|
}), vue.createElementVNode("div", {
|
9554
9357
|
"class": "v-list-item__spacer"
|
9555
9358
|
}, null)])]
|
9556
|
-
}), [[Ripple, isClickable.value &&
|
9359
|
+
}), [[Ripple, isClickable.value && props.ripple]]);
|
9557
9360
|
});
|
9558
9361
|
return {
|
9559
9362
|
activate,
|
@@ -9608,6 +9411,68 @@
|
|
9608
9411
|
}
|
9609
9412
|
});
|
9610
9413
|
|
9414
|
+
const makeVDividerProps = propsFactory({
|
9415
|
+
color: String,
|
9416
|
+
inset: Boolean,
|
9417
|
+
length: [Number, String],
|
9418
|
+
opacity: [Number, String],
|
9419
|
+
thickness: [Number, String],
|
9420
|
+
vertical: Boolean,
|
9421
|
+
...makeComponentProps(),
|
9422
|
+
...makeThemeProps()
|
9423
|
+
}, 'VDivider');
|
9424
|
+
const VDivider = genericComponent()({
|
9425
|
+
name: 'VDivider',
|
9426
|
+
props: makeVDividerProps(),
|
9427
|
+
setup(props, _ref) {
|
9428
|
+
let {
|
9429
|
+
attrs,
|
9430
|
+
slots
|
9431
|
+
} = _ref;
|
9432
|
+
const {
|
9433
|
+
themeClasses
|
9434
|
+
} = provideTheme(props);
|
9435
|
+
const {
|
9436
|
+
textColorClasses,
|
9437
|
+
textColorStyles
|
9438
|
+
} = useTextColor(() => props.color);
|
9439
|
+
const dividerStyles = vue.computed(() => {
|
9440
|
+
const styles = {};
|
9441
|
+
if (props.length) {
|
9442
|
+
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
9443
|
+
}
|
9444
|
+
if (props.thickness) {
|
9445
|
+
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
9446
|
+
}
|
9447
|
+
return styles;
|
9448
|
+
});
|
9449
|
+
useRender(() => {
|
9450
|
+
const divider = vue.createElementVNode("hr", {
|
9451
|
+
"class": vue.normalizeClass([{
|
9452
|
+
'v-divider': true,
|
9453
|
+
'v-divider--inset': props.inset,
|
9454
|
+
'v-divider--vertical': props.vertical
|
9455
|
+
}, themeClasses.value, textColorClasses.value, props.class]),
|
9456
|
+
"style": vue.normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
9457
|
+
'--v-border-opacity': props.opacity
|
9458
|
+
}, props.style]),
|
9459
|
+
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
9460
|
+
"role": `${attrs.role || 'separator'}`
|
9461
|
+
}, null);
|
9462
|
+
if (!slots.default) return divider;
|
9463
|
+
return vue.createElementVNode("div", {
|
9464
|
+
"class": vue.normalizeClass(['v-divider__wrapper', {
|
9465
|
+
'v-divider__wrapper--vertical': props.vertical,
|
9466
|
+
'v-divider__wrapper--inset': props.inset
|
9467
|
+
}])
|
9468
|
+
}, [divider, vue.createElementVNode("div", {
|
9469
|
+
"class": "v-divider__content"
|
9470
|
+
}, [slots.default()]), divider]);
|
9471
|
+
});
|
9472
|
+
return {};
|
9473
|
+
}
|
9474
|
+
});
|
9475
|
+
|
9611
9476
|
// Types
|
9612
9477
|
|
9613
9478
|
const makeVListChildrenProps = propsFactory({
|
@@ -9876,7 +9741,6 @@
|
|
9876
9741
|
activeClass: String,
|
9877
9742
|
bgColor: String,
|
9878
9743
|
disabled: Boolean,
|
9879
|
-
filterable: Boolean,
|
9880
9744
|
expandIcon: IconValue,
|
9881
9745
|
collapseIcon: IconValue,
|
9882
9746
|
lines: {
|
@@ -9960,9 +9824,7 @@
|
|
9960
9824
|
const activeColor = vue.toRef(() => props.activeColor);
|
9961
9825
|
const baseColor = vue.toRef(() => props.baseColor);
|
9962
9826
|
const color = vue.toRef(() => props.color);
|
9963
|
-
createList(
|
9964
|
-
filterable: props.filterable
|
9965
|
-
});
|
9827
|
+
createList();
|
9966
9828
|
provideDefaults({
|
9967
9829
|
VListGroup: {
|
9968
9830
|
activeColor,
|
@@ -11645,7 +11507,6 @@
|
|
11645
11507
|
// disableKeys: Boolean,
|
11646
11508
|
id: String,
|
11647
11509
|
submenu: Boolean,
|
11648
|
-
disableInitialFocus: Boolean,
|
11649
11510
|
...omit(makeVOverlayProps({
|
11650
11511
|
closeDelay: 250,
|
11651
11512
|
closeOnContentClick: true,
|
@@ -11720,7 +11581,7 @@
|
|
11720
11581
|
vue.watch(isActive, val => {
|
11721
11582
|
if (val) {
|
11722
11583
|
parent?.register();
|
11723
|
-
if (IN_BROWSER
|
11584
|
+
if (IN_BROWSER) {
|
11724
11585
|
document.addEventListener('focusin', onFocusIn, {
|
11725
11586
|
once: true
|
11726
11587
|
});
|
@@ -12540,12 +12401,7 @@
|
|
12540
12401
|
}
|
12541
12402
|
function calculateOffset(index) {
|
12542
12403
|
index = clamp(index, 0, items.value.length - 1);
|
12543
|
-
|
12544
|
-
const fraction = index % 1;
|
12545
|
-
const next = whole + 1;
|
12546
|
-
const wholeOffset = offsets[whole] || 0;
|
12547
|
-
const nextOffset = offsets[next] || wholeOffset;
|
12548
|
-
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12404
|
+
return offsets[index] || 0;
|
12549
12405
|
}
|
12550
12406
|
function calculateIndex(scrollTop) {
|
12551
12407
|
return binaryClosest(offsets, scrollTop);
|
@@ -12899,7 +12755,6 @@
|
|
12899
12755
|
},
|
12900
12756
|
openOnClear: Boolean,
|
12901
12757
|
itemColor: String,
|
12902
|
-
noAutoScroll: Boolean,
|
12903
12758
|
...makeItemsProps({
|
12904
12759
|
itemChildren: false
|
12905
12760
|
})
|
@@ -13114,7 +12969,7 @@
|
|
13114
12969
|
vue.watch(menu, () => {
|
13115
12970
|
if (!props.hideSelected && menu.value && model.value.length) {
|
13116
12971
|
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
13117
|
-
IN_BROWSER &&
|
12972
|
+
IN_BROWSER && window.requestAnimationFrame(() => {
|
13118
12973
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
13119
12974
|
});
|
13120
12975
|
}
|
@@ -13207,22 +13062,6 @@
|
|
13207
13062
|
key: item.value,
|
13208
13063
|
onClick: () => select(item, null)
|
13209
13064
|
});
|
13210
|
-
if (item.raw.type === 'divider') {
|
13211
|
-
return slots.divider?.({
|
13212
|
-
props: item.raw,
|
13213
|
-
index
|
13214
|
-
}) ?? vue.createVNode(VDivider, vue.mergeProps(item.props, {
|
13215
|
-
"key": `divider-${index}`
|
13216
|
-
}), null);
|
13217
|
-
}
|
13218
|
-
if (item.raw.type === 'subheader') {
|
13219
|
-
return slots.subheader?.({
|
13220
|
-
props: item.raw,
|
13221
|
-
index
|
13222
|
-
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
13223
|
-
"key": `subheader-${index}`
|
13224
|
-
}), null);
|
13225
|
-
}
|
13226
13065
|
return slots.item?.({
|
13227
13066
|
item,
|
13228
13067
|
index,
|
@@ -13383,9 +13222,6 @@
|
|
13383
13222
|
let match = -1;
|
13384
13223
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13385
13224
|
if (typeof item === 'object') {
|
13386
|
-
if (['divider', 'subheader'].includes(item.raw?.type)) {
|
13387
|
-
continue;
|
13388
|
-
}
|
13389
13225
|
const filterKeys = keys || Object.keys(transformed);
|
13390
13226
|
for (const key of filterKeys) {
|
13391
13227
|
const value = getPropertyFromItem(transformed, key);
|
@@ -13588,7 +13424,7 @@
|
|
13588
13424
|
menu.value = !menu.value;
|
13589
13425
|
}
|
13590
13426
|
function onListKeydown(e) {
|
13591
|
-
if (
|
13427
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
13592
13428
|
vTextFieldRef.value?.focus();
|
13593
13429
|
}
|
13594
13430
|
}
|
@@ -13793,7 +13629,6 @@
|
|
13793
13629
|
}, props.menuProps), {
|
13794
13630
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
13795
13631
|
"ref": listRef,
|
13796
|
-
"filterable": true,
|
13797
13632
|
"selected": selectedValues.value,
|
13798
13633
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
13799
13634
|
"onMousedown": e => e.preventDefault(),
|
@@ -13825,22 +13660,6 @@
|
|
13825
13660
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
13826
13661
|
onClick: () => select(item, null)
|
13827
13662
|
});
|
13828
|
-
if (item.raw.type === 'divider') {
|
13829
|
-
return slots.divider?.({
|
13830
|
-
props: item.raw,
|
13831
|
-
index
|
13832
|
-
}) ?? vue.createVNode(VDivider, vue.mergeProps(item.props, {
|
13833
|
-
"key": `divider-${index}`
|
13834
|
-
}), null);
|
13835
|
-
}
|
13836
|
-
if (item.raw.type === 'subheader') {
|
13837
|
-
return slots.subheader?.({
|
13838
|
-
props: item.raw,
|
13839
|
-
index
|
13840
|
-
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
13841
|
-
"key": `subheader-${index}`
|
13842
|
-
}), null);
|
13843
|
-
}
|
13844
13663
|
return slots.item?.({
|
13845
13664
|
item,
|
13846
13665
|
index,
|
@@ -13985,8 +13804,7 @@
|
|
13985
13804
|
...makeThemeProps(),
|
13986
13805
|
...makeTransitionProps({
|
13987
13806
|
transition: 'scale-rotate-transition'
|
13988
|
-
})
|
13989
|
-
...makeDimensionProps()
|
13807
|
+
})
|
13990
13808
|
}, 'VBadge');
|
13991
13809
|
const VBadge = genericComponent()({
|
13992
13810
|
name: 'VBadge',
|
@@ -14016,9 +13834,6 @@
|
|
14016
13834
|
const base = props.floating ? props.dot ? 2 : 4 : props.dot ? 8 : 12;
|
14017
13835
|
return base + (['top', 'bottom'].includes(side) ? Number(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? Number(props.offsetX ?? 0) : 0);
|
14018
13836
|
});
|
14019
|
-
const {
|
14020
|
-
dimensionStyles
|
14021
|
-
} = useDimension(props);
|
14022
13837
|
useRender(() => {
|
14023
13838
|
const value = Number(props.content);
|
14024
13839
|
const content = !props.max || isNaN(value) ? props.content : value <= Number(props.max) ? value : `${props.max}+`;
|
@@ -14040,7 +13855,7 @@
|
|
14040
13855
|
}, {
|
14041
13856
|
default: () => [vue.withDirectives(vue.createElementVNode("span", vue.mergeProps({
|
14042
13857
|
"class": ['v-badge__badge', themeClasses.value, backgroundColorClasses.value, roundedClasses.value, textColorClasses.value],
|
14043
|
-
"style": [backgroundColorStyles.value, textColorStyles.value,
|
13858
|
+
"style": [backgroundColorStyles.value, textColorStyles.value, props.inline ? {} : locationStyles.value],
|
14044
13859
|
"aria-atomic": "true",
|
14045
13860
|
"aria-label": t(props.label, value),
|
14046
13861
|
"aria-live": "polite",
|
@@ -17449,13 +17264,13 @@
|
|
17449
17264
|
return null;
|
17450
17265
|
}
|
17451
17266
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
17452
|
-
function getWeekdays(locale, firstDayOfWeek
|
17267
|
+
function getWeekdays(locale, firstDayOfWeek) {
|
17453
17268
|
const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
|
17454
17269
|
return createRange(7).map(i => {
|
17455
17270
|
const weekday = new Date(sundayJanuarySecond2000);
|
17456
17271
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
17457
17272
|
return new Intl.DateTimeFormat(locale, {
|
17458
|
-
weekday:
|
17273
|
+
weekday: 'narrow'
|
17459
17274
|
}).format(weekday);
|
17460
17275
|
});
|
17461
17276
|
}
|
@@ -17919,9 +17734,9 @@
|
|
17919
17734
|
getDiff(date, comparing, unit) {
|
17920
17735
|
return getDiff(date, comparing, unit);
|
17921
17736
|
}
|
17922
|
-
getWeekdays(firstDayOfWeek
|
17737
|
+
getWeekdays(firstDayOfWeek) {
|
17923
17738
|
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
17924
|
-
return getWeekdays(this.locale, firstDay
|
17739
|
+
return getWeekdays(this.locale, firstDay);
|
17925
17740
|
}
|
17926
17741
|
getYear(date) {
|
17927
17742
|
return getYear(date);
|
@@ -18276,7 +18091,6 @@
|
|
18276
18091
|
_search.value = val ?? '';
|
18277
18092
|
if (!props.multiple && !hasSelectionSlot.value) {
|
18278
18093
|
model.value = [transformItem$3(props, val)];
|
18279
|
-
vue.nextTick(() => vVirtualScrollRef.value?.scrollToIndex(0));
|
18280
18094
|
}
|
18281
18095
|
if (val && props.multiple && props.delimiters?.length) {
|
18282
18096
|
const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));
|
@@ -18357,7 +18171,7 @@
|
|
18357
18171
|
menu.value = !menu.value;
|
18358
18172
|
}
|
18359
18173
|
function onListKeydown(e) {
|
18360
|
-
if (
|
18174
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
18361
18175
|
vTextFieldRef.value?.focus();
|
18362
18176
|
}
|
18363
18177
|
}
|
@@ -18562,7 +18376,6 @@
|
|
18562
18376
|
}, props.menuProps), {
|
18563
18377
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
18564
18378
|
"ref": listRef,
|
18565
|
-
"filterable": true,
|
18566
18379
|
"selected": selectedValues.value,
|
18567
18380
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
18568
18381
|
"onMousedown": e => e.preventDefault(),
|
@@ -18594,22 +18407,6 @@
|
|
18594
18407
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
18595
18408
|
onClick: () => select(item, null)
|
18596
18409
|
});
|
18597
|
-
if (item.raw.type === 'divider') {
|
18598
|
-
return slots.divider?.({
|
18599
|
-
props: item.raw,
|
18600
|
-
index
|
18601
|
-
}) ?? vue.createVNode(VDivider, vue.mergeProps(item.props, {
|
18602
|
-
"key": `divider-${index}`
|
18603
|
-
}), null);
|
18604
|
-
}
|
18605
|
-
if (item.raw.type === 'subheader') {
|
18606
|
-
return slots.subheader?.({
|
18607
|
-
props: item.raw,
|
18608
|
-
index
|
18609
|
-
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
18610
|
-
"key": `subheader-${index}`
|
18611
|
-
}), null);
|
18612
|
-
}
|
18613
18410
|
return slots.item?.({
|
18614
18411
|
item,
|
18615
18412
|
index,
|
@@ -20492,7 +20289,6 @@
|
|
20492
20289
|
color: String,
|
20493
20290
|
disableSort: Boolean,
|
20494
20291
|
fixedHeader: Boolean,
|
20495
|
-
lastFixed: Boolean,
|
20496
20292
|
multiSort: Boolean,
|
20497
20293
|
sortAscIcon: {
|
20498
20294
|
type: IconValue,
|
@@ -20539,11 +20335,10 @@
|
|
20539
20335
|
loaderClasses
|
20540
20336
|
} = useLoader(props);
|
20541
20337
|
function getFixedStyles(column, y) {
|
20542
|
-
if (!(props.sticky || props.fixedHeader) && !
|
20338
|
+
if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;
|
20543
20339
|
return {
|
20544
20340
|
position: 'sticky',
|
20545
|
-
left: column.fixed
|
20546
|
-
right: column.lastFixed ? convertToUnit(column.fixedOffset ?? 0) : undefined,
|
20341
|
+
left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,
|
20547
20342
|
top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
|
20548
20343
|
};
|
20549
20344
|
}
|
@@ -21059,18 +20854,11 @@
|
|
21059
20854
|
}
|
21060
20855
|
});
|
21061
20856
|
|
21062
|
-
// Types
|
21063
|
-
|
21064
20857
|
const makeVTableProps = propsFactory({
|
21065
20858
|
fixedHeader: Boolean,
|
21066
20859
|
fixedFooter: Boolean,
|
21067
20860
|
height: [Number, String],
|
21068
20861
|
hover: Boolean,
|
21069
|
-
striped: {
|
21070
|
-
type: String,
|
21071
|
-
default: null,
|
21072
|
-
validator: v => ['even', 'odd'].includes(v)
|
21073
|
-
},
|
21074
20862
|
...makeComponentProps(),
|
21075
20863
|
...makeDensityProps(),
|
21076
20864
|
...makeTagProps(),
|
@@ -21097,9 +20885,7 @@
|
|
21097
20885
|
'v-table--fixed-footer': props.fixedFooter,
|
21098
20886
|
'v-table--has-top': !!slots.top,
|
21099
20887
|
'v-table--has-bottom': !!slots.bottom,
|
21100
|
-
'v-table--hover': props.hover
|
21101
|
-
'v-table--striped-even': props.striped === 'even',
|
21102
|
-
'v-table--striped-odd': props.striped === 'odd'
|
20888
|
+
'v-table--hover': props.hover
|
21103
20889
|
}, themeClasses.value, densityClasses.value, props.class]),
|
21104
20890
|
"style": vue.normalizeStyle(props.style)
|
21105
20891
|
}, {
|
@@ -22274,8 +22060,7 @@
|
|
22274
22060
|
firstDayOfWeek: {
|
22275
22061
|
type: [Number, String],
|
22276
22062
|
default: undefined
|
22277
|
-
}
|
22278
|
-
weekdayFormat: String
|
22063
|
+
}
|
22279
22064
|
}, 'calendar');
|
22280
22065
|
function useCalendar(props) {
|
22281
22066
|
const adapter = useDate();
|
@@ -22516,7 +22301,7 @@
|
|
22516
22301
|
"ref": daysRef,
|
22517
22302
|
"key": daysInMonth.value[0].date?.toString(),
|
22518
22303
|
"class": "v-date-picker-month__days"
|
22519
|
-
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek
|
22304
|
+
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => vue.createElementVNode("div", {
|
22520
22305
|
"class": vue.normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
|
22521
22306
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
22522
22307
|
const slotProps = {
|
@@ -23021,9 +22806,7 @@
|
|
23021
22806
|
"max": maxDate.value,
|
23022
22807
|
"year": year.value,
|
23023
22808
|
"allowedMonths": allowedMonths
|
23024
|
-
}), {
|
23025
|
-
...pick(slots, ['month'])
|
23026
|
-
}) : viewMode.value === 'year' ? vue.createVNode(VDatePickerYears, vue.mergeProps({
|
22809
|
+
}), null) : viewMode.value === 'year' ? vue.createVNode(VDatePickerYears, vue.mergeProps({
|
23027
22810
|
"key": "date-picker-years"
|
23028
22811
|
}, datePickerYearsProps, {
|
23029
22812
|
"modelValue": year.value,
|
@@ -23031,9 +22814,7 @@
|
|
23031
22814
|
"min": minDate.value,
|
23032
22815
|
"max": maxDate.value,
|
23033
22816
|
"allowedYears": allowedYears
|
23034
|
-
}), {
|
23035
|
-
...pick(slots, ['year'])
|
23036
|
-
}) : vue.createVNode(VDatePickerMonth, vue.mergeProps({
|
22817
|
+
}), null) : vue.createVNode(VDatePickerMonth, vue.mergeProps({
|
23037
22818
|
"key": "date-picker-month"
|
23038
22819
|
}, datePickerMonthProps, {
|
23039
22820
|
"modelValue": model.value,
|
@@ -23044,9 +22825,7 @@
|
|
23044
22825
|
"onUpdate:year": [$event => year.value = $event, onUpdateYear],
|
23045
22826
|
"min": minDate.value,
|
23046
22827
|
"max": maxDate.value
|
23047
|
-
}),
|
23048
|
-
...pick(slots, ['day'])
|
23049
|
-
})]
|
22828
|
+
}), null)]
|
23050
22829
|
})]),
|
23051
22830
|
actions: slots.actions
|
23052
22831
|
});
|
@@ -24137,9 +23916,6 @@
|
|
24137
23916
|
startStatus.value = status;
|
24138
23917
|
} else if (side === 'end') {
|
24139
23918
|
endStatus.value = status;
|
24140
|
-
} else if (side === 'both') {
|
24141
|
-
startStatus.value = status;
|
24142
|
-
endStatus.value = status;
|
24143
23919
|
}
|
24144
23920
|
}
|
24145
23921
|
function getStatus(side) {
|
@@ -24251,32 +24027,6 @@
|
|
24251
24027
|
}, [renderSide('end', endStatus.value)])]
|
24252
24028
|
});
|
24253
24029
|
});
|
24254
|
-
function reset(side) {
|
24255
|
-
const effectiveSide = side ?? props.side;
|
24256
|
-
setStatus(effectiveSide, 'ok');
|
24257
|
-
vue.nextTick(() => {
|
24258
|
-
setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
|
24259
|
-
if (props.mode !== 'manual') {
|
24260
|
-
vue.nextTick(() => {
|
24261
|
-
window.requestAnimationFrame(() => {
|
24262
|
-
window.requestAnimationFrame(() => {
|
24263
|
-
window.requestAnimationFrame(() => {
|
24264
|
-
if (effectiveSide === 'both') {
|
24265
|
-
intersecting('start');
|
24266
|
-
intersecting('end');
|
24267
|
-
} else {
|
24268
|
-
intersecting(effectiveSide);
|
24269
|
-
}
|
24270
|
-
});
|
24271
|
-
});
|
24272
|
-
});
|
24273
|
-
});
|
24274
|
-
}
|
24275
|
-
});
|
24276
|
-
}
|
24277
|
-
return {
|
24278
|
-
reset
|
24279
|
-
};
|
24280
24030
|
}
|
24281
24031
|
});
|
24282
24032
|
|
@@ -24356,47 +24106,8 @@
|
|
24356
24106
|
}
|
24357
24107
|
});
|
24358
24108
|
|
24359
|
-
|
24360
|
-
|
24361
|
-
...makeComponentProps(),
|
24362
|
-
...makeRoundedProps(),
|
24363
|
-
...makeTagProps({
|
24364
|
-
tag: 'kbd'
|
24365
|
-
}),
|
24366
|
-
...makeThemeProps(),
|
24367
|
-
...makeElevationProps(),
|
24368
|
-
color: String
|
24369
|
-
}, 'VKbd');
|
24370
|
-
const VKbd = genericComponent()({
|
24371
|
-
name: 'VKbd',
|
24372
|
-
props: makeVKbdProps(),
|
24373
|
-
setup(props, _ref) {
|
24374
|
-
let {
|
24375
|
-
slots
|
24376
|
-
} = _ref;
|
24377
|
-
const {
|
24378
|
-
themeClasses
|
24379
|
-
} = provideTheme(props);
|
24380
|
-
const {
|
24381
|
-
borderClasses
|
24382
|
-
} = useBorder(props);
|
24383
|
-
const {
|
24384
|
-
roundedClasses
|
24385
|
-
} = useRounded(props);
|
24386
|
-
const {
|
24387
|
-
backgroundColorClasses,
|
24388
|
-
backgroundColorStyles
|
24389
|
-
} = useBackgroundColor(() => props.color);
|
24390
|
-
const {
|
24391
|
-
elevationClasses
|
24392
|
-
} = useElevation(props);
|
24393
|
-
useRender(() => vue.createVNode(props.tag, {
|
24394
|
-
"class": vue.normalizeClass(['v-kbd', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
|
24395
|
-
"style": vue.normalizeStyle([backgroundColorStyles.value, props.style])
|
24396
|
-
}, slots));
|
24397
|
-
return {};
|
24398
|
-
}
|
24399
|
-
});
|
24109
|
+
// Styles
|
24110
|
+
const VKbd = createSimpleFunctional('v-kbd', 'kbd');
|
24400
24111
|
|
24401
24112
|
const makeVLayoutProps = propsFactory({
|
24402
24113
|
...makeComponentProps(),
|
@@ -25234,14 +24945,6 @@
|
|
25234
24945
|
type: Number,
|
25235
24946
|
default: 0
|
25236
24947
|
},
|
25237
|
-
minFractionDigits: {
|
25238
|
-
type: Number,
|
25239
|
-
default: null
|
25240
|
-
},
|
25241
|
-
decimalSeparator: {
|
25242
|
-
type: String,
|
25243
|
-
validator: v => !v || v.length === 1
|
25244
|
-
},
|
25245
24948
|
...omit(makeVTextFieldProps(), ['modelValue', 'validationValue'])
|
25246
24949
|
}, 'VNumberInput');
|
25247
24950
|
const VNumberInput = genericComponent()({
|
@@ -25267,24 +24970,11 @@
|
|
25267
24970
|
const form = useForm(props);
|
25268
24971
|
const controlsDisabled = vue.computed(() => form.isDisabled.value || form.isReadonly.value);
|
25269
24972
|
const isFocused = vue.shallowRef(props.focused);
|
25270
|
-
const {
|
25271
|
-
decimalSeparator: decimalSeparatorFromLocale
|
25272
|
-
} = useLocale();
|
25273
|
-
const decimalSeparator = vue.computed(() => props.decimalSeparator?.[0] || decimalSeparatorFromLocale.value);
|
25274
24973
|
function correctPrecision(val) {
|
25275
24974
|
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
|
25276
|
-
let trim = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
25277
24975
|
const fixed = precision == null ? String(val) : val.toFixed(precision);
|
25278
|
-
|
25279
|
-
|
25280
|
-
.replace('.', decimalSeparator.value);
|
25281
|
-
}
|
25282
|
-
if (props.minFractionDigits === null || precision !== null && precision < props.minFractionDigits) {
|
25283
|
-
return fixed.replace('.', decimalSeparator.value);
|
25284
|
-
}
|
25285
|
-
let [baseDigits, fractionDigits] = fixed.split('.');
|
25286
|
-
fractionDigits = (fractionDigits ?? '').padEnd(props.minFractionDigits, '0').replace(new RegExp(`(?<=\\d{${props.minFractionDigits}})0`, 'g'), '');
|
25287
|
-
return [baseDigits, fractionDigits].filter(Boolean).join(decimalSeparator.value);
|
24976
|
+
return isFocused.value ? Number(fixed).toString() // trim zeros
|
24977
|
+
: fixed;
|
25288
24978
|
}
|
25289
24979
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
25290
24980
|
const _inputText = vue.shallowRef(null);
|
@@ -25301,11 +24991,8 @@
|
|
25301
24991
|
if (val === null || val === '') {
|
25302
24992
|
model.value = null;
|
25303
24993
|
_inputText.value = null;
|
25304
|
-
|
25305
|
-
|
25306
|
-
const parsedValue = Number(val.replace(decimalSeparator.value, '.'));
|
25307
|
-
if (!isNaN(parsedValue) && parsedValue <= props.max && parsedValue >= props.min) {
|
25308
|
-
model.value = parsedValue;
|
24994
|
+
} else if (!isNaN(Number(val)) && Number(val) <= props.max && Number(val) >= props.min) {
|
24995
|
+
model.value = Number(val);
|
25309
24996
|
_inputText.value = val;
|
25310
24997
|
}
|
25311
24998
|
}
|
@@ -25342,7 +25029,6 @@
|
|
25342
25029
|
}
|
25343
25030
|
};
|
25344
25031
|
vue.watch(() => props.precision, () => formatInputValue());
|
25345
|
-
vue.watch(() => props.minFractionDigits, () => formatInputValue());
|
25346
25032
|
vue.onMounted(() => {
|
25347
25033
|
clampModel();
|
25348
25034
|
});
|
@@ -25376,24 +25062,24 @@
|
|
25376
25062
|
selectionEnd
|
25377
25063
|
} = inputElement ?? {};
|
25378
25064
|
const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
|
25379
|
-
const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision
|
25065
|
+
const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision);
|
25380
25066
|
|
25381
|
-
//
|
25382
|
-
//
|
25383
|
-
//
|
25384
|
-
if (
|
25067
|
+
// Only numbers, "-", "." are allowed
|
25068
|
+
// AND "-", "." are allowed only once
|
25069
|
+
// AND "-" is only allowed at the start
|
25070
|
+
if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
|
25385
25071
|
e.preventDefault();
|
25386
25072
|
inputElement.value = potentialNewNumber;
|
25387
25073
|
}
|
25388
25074
|
if (props.precision == null) return;
|
25389
25075
|
|
25390
25076
|
// Ignore decimal digits above precision limit
|
25391
|
-
if (potentialNewInputVal.split(
|
25077
|
+
if (potentialNewInputVal.split('.')[1]?.length > props.precision) {
|
25392
25078
|
e.preventDefault();
|
25393
25079
|
inputElement.value = potentialNewNumber;
|
25394
25080
|
}
|
25395
25081
|
// Ignore decimal separator when precision = 0
|
25396
|
-
if (props.precision === 0 && potentialNewInputVal.includes(
|
25082
|
+
if (props.precision === 0 && potentialNewInputVal.includes('.')) {
|
25397
25083
|
e.preventDefault();
|
25398
25084
|
inputElement.value = potentialNewNumber;
|
25399
25085
|
}
|
@@ -25445,16 +25131,19 @@
|
|
25445
25131
|
if (controlsDisabled.value) return;
|
25446
25132
|
if (!vTextFieldRef.value) return;
|
25447
25133
|
const actualText = vTextFieldRef.value.value;
|
25448
|
-
|
25449
|
-
|
25450
|
-
inputText.value = correctPrecision(clamp(parsedValue, props.min, props.max));
|
25134
|
+
if (actualText && !isNaN(Number(actualText))) {
|
25135
|
+
inputText.value = correctPrecision(clamp(Number(actualText), props.min, props.max));
|
25451
25136
|
} else {
|
25452
25137
|
inputText.value = null;
|
25453
25138
|
}
|
25454
25139
|
}
|
25455
25140
|
function formatInputValue() {
|
25456
25141
|
if (controlsDisabled.value) return;
|
25457
|
-
|
25142
|
+
if (model.value === null || isNaN(model.value)) {
|
25143
|
+
inputText.value = null;
|
25144
|
+
return;
|
25145
|
+
}
|
25146
|
+
inputText.value = props.precision == null ? String(model.value) : model.value.toFixed(props.precision);
|
25458
25147
|
}
|
25459
25148
|
function trimDecimalZeros() {
|
25460
25149
|
if (controlsDisabled.value) return;
|
@@ -25462,7 +25151,7 @@
|
|
25462
25151
|
inputText.value = null;
|
25463
25152
|
return;
|
25464
25153
|
}
|
25465
|
-
inputText.value = model.value.toString()
|
25154
|
+
inputText.value = model.value.toString();
|
25466
25155
|
}
|
25467
25156
|
function onFocus() {
|
25468
25157
|
trimDecimalZeros();
|
@@ -25714,10 +25403,9 @@
|
|
25714
25403
|
e.preventDefault();
|
25715
25404
|
e.stopPropagation();
|
25716
25405
|
const clipboardText = e?.clipboardData?.getData('Text').trim().slice(0, length.value) ?? '';
|
25717
|
-
const finalIndex = clipboardText.length - 1 === -1 ? index : clipboardText.length - 1;
|
25718
25406
|
if (isValidNumber(clipboardText)) return;
|
25719
25407
|
model.value = clipboardText.split('');
|
25720
|
-
inputRef.value?.[
|
25408
|
+
inputRef.value?.[index].blur();
|
25721
25409
|
}
|
25722
25410
|
function reset() {
|
25723
25411
|
model.value = [];
|
@@ -30417,6 +30105,11 @@
|
|
30417
30105
|
hideOverlay: Boolean,
|
30418
30106
|
icon: [String, Function, Object],
|
30419
30107
|
iconColor: String,
|
30108
|
+
iconSize: [Number, String],
|
30109
|
+
iconSizes: {
|
30110
|
+
type: Array,
|
30111
|
+
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
30112
|
+
},
|
30420
30113
|
loading: Boolean,
|
30421
30114
|
opacity: [Number, String],
|
30422
30115
|
readonly: Boolean,
|
@@ -30436,7 +30129,6 @@
|
|
30436
30129
|
...makeBorderProps(),
|
30437
30130
|
...makeComponentProps(),
|
30438
30131
|
...makeElevationProps(),
|
30439
|
-
...makeIconSizeProps(),
|
30440
30132
|
...makeRoundedProps(),
|
30441
30133
|
...makeTagProps({
|
30442
30134
|
tag: 'button'
|
@@ -30491,6 +30183,7 @@
|
|
30491
30183
|
})()
|
30492
30184
|
}));
|
30493
30185
|
const btnSizeMap = new Map(props.sizes);
|
30186
|
+
const iconSizeMap = new Map(props.iconSizes);
|
30494
30187
|
function onClick() {
|
30495
30188
|
if (props.disabled || props.readonly || isActive.value === undefined || props.tag === 'a' && attrs.href) return;
|
30496
30189
|
isActive.value = !isActive.value;
|
@@ -30502,12 +30195,12 @@
|
|
30502
30195
|
const btnSize = hasNamedSize ? btnSizeMap.get(_btnSize) : _btnSize;
|
30503
30196
|
const btnHeight = props.height ?? btnSize;
|
30504
30197
|
const btnWidth = props.width ?? btnSize;
|
30505
|
-
const
|
30506
|
-
|
30507
|
-
|
30198
|
+
const _iconSize = props.iconSize;
|
30199
|
+
const hasNamedIconSize = iconSizeMap.has(_iconSize);
|
30200
|
+
const iconSize = !_iconSize ? hasNamedSize ? iconSizeMap.get(_btnSize) : iconSizeMap.get('default') : hasNamedIconSize ? iconSizeMap.get(_iconSize) : _iconSize;
|
30508
30201
|
const iconProps = {
|
30509
30202
|
icon,
|
30510
|
-
size: iconSize
|
30203
|
+
size: iconSize,
|
30511
30204
|
iconColor: props.iconColor,
|
30512
30205
|
opacity: props.opacity
|
30513
30206
|
};
|
@@ -30550,7 +30243,7 @@
|
|
30550
30243
|
"color": typeof props.loading === 'boolean' ? undefined : props.loading,
|
30551
30244
|
"indeterminate": "disable-shrink",
|
30552
30245
|
"width": "2",
|
30553
|
-
"size": iconSize
|
30246
|
+
"size": iconSize
|
30554
30247
|
}, null)])]
|
30555
30248
|
});
|
30556
30249
|
});
|
@@ -30558,251 +30251,6 @@
|
|
30558
30251
|
}
|
30559
30252
|
});
|
30560
30253
|
|
30561
|
-
// Utilities
|
30562
|
-
|
30563
|
-
// Types
|
30564
|
-
|
30565
|
-
const makeMaskProps = propsFactory({
|
30566
|
-
mask: [String, Object],
|
30567
|
-
returnMaskedValue: Boolean
|
30568
|
-
}, 'mask');
|
30569
|
-
const defaultDelimiters = /[-!$%^&*()_+|~=`{}[\]:";'<>?,./\\ ]/;
|
30570
|
-
const presets = {
|
30571
|
-
'credit-card': '#### - #### - #### - ####',
|
30572
|
-
date: '##/##/####',
|
30573
|
-
'date-time': '##/##/#### ##:##',
|
30574
|
-
'iso-date': '####-##-##',
|
30575
|
-
'iso-date-time': '####-##-## ##:##',
|
30576
|
-
phone: '(###) ### - ####',
|
30577
|
-
social: '###-##-####',
|
30578
|
-
time: '##:##',
|
30579
|
-
'time-with-seconds': '##:##:##'
|
30580
|
-
};
|
30581
|
-
function isMaskDelimiter(char) {
|
30582
|
-
return char ? defaultDelimiters.test(char) : false;
|
30583
|
-
}
|
30584
|
-
const defaultTokens = {
|
30585
|
-
'#': {
|
30586
|
-
pattern: /[0-9]/
|
30587
|
-
},
|
30588
|
-
A: {
|
30589
|
-
pattern: /[A-Z]/i,
|
30590
|
-
convert: v => v.toUpperCase()
|
30591
|
-
},
|
30592
|
-
a: {
|
30593
|
-
pattern: /[a-z]/i,
|
30594
|
-
convert: v => v.toLowerCase()
|
30595
|
-
},
|
30596
|
-
N: {
|
30597
|
-
pattern: /[0-9A-Z]/i,
|
30598
|
-
convert: v => v.toUpperCase()
|
30599
|
-
},
|
30600
|
-
n: {
|
30601
|
-
pattern: /[0-9a-z]/i,
|
30602
|
-
convert: v => v.toLowerCase()
|
30603
|
-
},
|
30604
|
-
X: {
|
30605
|
-
pattern: defaultDelimiters
|
30606
|
-
}
|
30607
|
-
};
|
30608
|
-
function useMask(props, inputRef) {
|
30609
|
-
const mask = vue.computed(() => {
|
30610
|
-
if (typeof props.mask === 'string') {
|
30611
|
-
if (props.mask in presets) return presets[props.mask];
|
30612
|
-
return props.mask;
|
30613
|
-
}
|
30614
|
-
return props.mask?.mask ?? '';
|
30615
|
-
});
|
30616
|
-
const tokens = vue.computed(() => {
|
30617
|
-
return {
|
30618
|
-
...defaultTokens,
|
30619
|
-
...(isObject(props.mask) ? props.mask.tokens : null)
|
30620
|
-
};
|
30621
|
-
});
|
30622
|
-
const selection = vue.shallowRef(0);
|
30623
|
-
const lazySelection = vue.shallowRef(0);
|
30624
|
-
function isMask(char) {
|
30625
|
-
return char in tokens.value;
|
30626
|
-
}
|
30627
|
-
function maskValidates(mask, char) {
|
30628
|
-
if (char == null || !isMask(mask)) return false;
|
30629
|
-
const item = tokens.value[mask];
|
30630
|
-
if (item.pattern) return item.pattern.test(char);
|
30631
|
-
return item.test(char);
|
30632
|
-
}
|
30633
|
-
function convert(mask, char) {
|
30634
|
-
const item = tokens.value[mask];
|
30635
|
-
return item.convert ? item.convert(char) : char;
|
30636
|
-
}
|
30637
|
-
function maskText(text) {
|
30638
|
-
const trimmedText = text?.trim().replace(/\s+/g, ' ');
|
30639
|
-
if (trimmedText == null) return '';
|
30640
|
-
if (!mask.value.length || !trimmedText.length) return trimmedText;
|
30641
|
-
let textIndex = 0;
|
30642
|
-
let maskIndex = 0;
|
30643
|
-
let newText = '';
|
30644
|
-
while (maskIndex < mask.value.length) {
|
30645
|
-
const mchar = mask.value[maskIndex];
|
30646
|
-
const tchar = trimmedText[textIndex];
|
30647
|
-
|
30648
|
-
// Escaped character in mask, the next mask character is inserted
|
30649
|
-
if (mchar === '\\') {
|
30650
|
-
newText += mask.value[maskIndex + 1];
|
30651
|
-
maskIndex += 2;
|
30652
|
-
continue;
|
30653
|
-
}
|
30654
|
-
if (!isMask(mchar)) {
|
30655
|
-
newText += mchar;
|
30656
|
-
if (tchar === mchar) {
|
30657
|
-
textIndex++;
|
30658
|
-
}
|
30659
|
-
} else if (maskValidates(mchar, tchar)) {
|
30660
|
-
newText += convert(mchar, tchar);
|
30661
|
-
textIndex++;
|
30662
|
-
} else {
|
30663
|
-
break;
|
30664
|
-
}
|
30665
|
-
maskIndex++;
|
30666
|
-
}
|
30667
|
-
return newText;
|
30668
|
-
}
|
30669
|
-
function unmaskText(text) {
|
30670
|
-
if (text == null) return null;
|
30671
|
-
if (!mask.value.length || !text.length) return text;
|
30672
|
-
let textIndex = 0;
|
30673
|
-
let maskIndex = 0;
|
30674
|
-
let newText = '';
|
30675
|
-
while (true) {
|
30676
|
-
const mchar = mask.value[maskIndex];
|
30677
|
-
const tchar = text[textIndex];
|
30678
|
-
if (tchar == null) break;
|
30679
|
-
if (mchar == null) {
|
30680
|
-
newText += tchar;
|
30681
|
-
textIndex++;
|
30682
|
-
continue;
|
30683
|
-
}
|
30684
|
-
|
30685
|
-
// Escaped character in mask, skip the next input character
|
30686
|
-
if (mchar === '\\') {
|
30687
|
-
if (tchar === mask.value[maskIndex + 1]) {
|
30688
|
-
textIndex++;
|
30689
|
-
}
|
30690
|
-
maskIndex += 2;
|
30691
|
-
continue;
|
30692
|
-
}
|
30693
|
-
if (maskValidates(mchar, tchar)) {
|
30694
|
-
// masked char
|
30695
|
-
newText += tchar;
|
30696
|
-
textIndex++;
|
30697
|
-
maskIndex++;
|
30698
|
-
continue;
|
30699
|
-
} else if (mchar !== tchar) {
|
30700
|
-
// input doesn't match mask, skip forward until it does
|
30701
|
-
while (true) {
|
30702
|
-
const mchar = mask.value[maskIndex++];
|
30703
|
-
if (mchar == null || maskValidates(mchar, tchar)) break;
|
30704
|
-
}
|
30705
|
-
continue;
|
30706
|
-
}
|
30707
|
-
textIndex++;
|
30708
|
-
maskIndex++;
|
30709
|
-
}
|
30710
|
-
return newText;
|
30711
|
-
}
|
30712
|
-
function setCaretPosition(newSelection) {
|
30713
|
-
selection.value = newSelection;
|
30714
|
-
inputRef.value && inputRef.value.setSelectionRange(selection.value, selection.value);
|
30715
|
-
}
|
30716
|
-
function resetSelections() {
|
30717
|
-
if (!inputRef.value?.selectionEnd) return;
|
30718
|
-
selection.value = inputRef.value.selectionEnd;
|
30719
|
-
lazySelection.value = 0;
|
30720
|
-
for (let index = 0; index < selection.value; index++) {
|
30721
|
-
isMaskDelimiter(inputRef.value.value[index]) || lazySelection.value++;
|
30722
|
-
}
|
30723
|
-
}
|
30724
|
-
function updateRange() {
|
30725
|
-
if (!inputRef.value) return;
|
30726
|
-
resetSelections();
|
30727
|
-
let selection = 0;
|
30728
|
-
const newValue = inputRef.value.value;
|
30729
|
-
if (newValue) {
|
30730
|
-
for (let index = 0; index < newValue.length; index++) {
|
30731
|
-
if (lazySelection.value <= 0) break;
|
30732
|
-
isMaskDelimiter(newValue[index]) || lazySelection.value--;
|
30733
|
-
selection++;
|
30734
|
-
}
|
30735
|
-
}
|
30736
|
-
setCaretPosition(selection);
|
30737
|
-
}
|
30738
|
-
return {
|
30739
|
-
updateRange,
|
30740
|
-
maskText,
|
30741
|
-
unmaskText
|
30742
|
-
};
|
30743
|
-
}
|
30744
|
-
|
30745
|
-
// Types
|
30746
|
-
|
30747
|
-
const makeVMaskInputProps = propsFactory({
|
30748
|
-
...makeVTextFieldProps(),
|
30749
|
-
...makeMaskProps()
|
30750
|
-
}, 'VMaskInput');
|
30751
|
-
const VMaskInput = genericComponent()({
|
30752
|
-
name: 'VMaskInput',
|
30753
|
-
props: makeVMaskInputProps(),
|
30754
|
-
emits: {
|
30755
|
-
'update:modelValue': val => true
|
30756
|
-
},
|
30757
|
-
setup(props, _ref) {
|
30758
|
-
let {
|
30759
|
-
slots,
|
30760
|
-
emit
|
30761
|
-
} = _ref;
|
30762
|
-
const vTextFieldRef = vue.ref();
|
30763
|
-
const {
|
30764
|
-
maskText,
|
30765
|
-
updateRange,
|
30766
|
-
unmaskText
|
30767
|
-
} = useMask(props, vTextFieldRef);
|
30768
|
-
const returnMaskedValue = vue.computed(() => props.mask && props.returnMaskedValue);
|
30769
|
-
const model = useProxiedModel(props, 'modelValue', undefined,
|
30770
|
-
// Always display masked value in input when mask is applied
|
30771
|
-
val => props.mask ? maskText(unmaskText(val)) : val, val => {
|
30772
|
-
if (props.mask) {
|
30773
|
-
const valueBeforeChange = unmaskText(model.value);
|
30774
|
-
// E.g. mask is #-# and the input value is '2-23'
|
30775
|
-
// model-value should be enforced to '2-2'
|
30776
|
-
const enforcedMaskedValue = maskText(unmaskText(val));
|
30777
|
-
const newUnmaskedValue = unmaskText(enforcedMaskedValue);
|
30778
|
-
if (newUnmaskedValue === valueBeforeChange) {
|
30779
|
-
vTextFieldRef.value.value = enforcedMaskedValue;
|
30780
|
-
}
|
30781
|
-
val = newUnmaskedValue;
|
30782
|
-
updateRange();
|
30783
|
-
return returnMaskedValue.value ? maskText(val) : val;
|
30784
|
-
}
|
30785
|
-
return val;
|
30786
|
-
});
|
30787
|
-
vue.onBeforeMount(() => {
|
30788
|
-
if (props.returnMaskedValue) {
|
30789
|
-
emit('update:modelValue', model.value);
|
30790
|
-
}
|
30791
|
-
});
|
30792
|
-
useRender(() => {
|
30793
|
-
const textFieldProps = VTextField.filterProps(props);
|
30794
|
-
return vue.createVNode(VTextField, vue.mergeProps(textFieldProps, {
|
30795
|
-
"modelValue": model.value,
|
30796
|
-
"onUpdate:modelValue": $event => model.value = $event,
|
30797
|
-
"ref": vTextFieldRef
|
30798
|
-
}), {
|
30799
|
-
...slots
|
30800
|
-
});
|
30801
|
-
});
|
30802
|
-
return forwardRefs({}, vTextFieldRef);
|
30803
|
-
}
|
30804
|
-
});
|
30805
|
-
|
30806
30254
|
// Types
|
30807
30255
|
|
30808
30256
|
const makeVStepperVerticalActionsProps = propsFactory({
|
@@ -32308,7 +31756,6 @@
|
|
32308
31756
|
VListSubheader: VListSubheader,
|
32309
31757
|
VLocaleProvider: VLocaleProvider,
|
32310
31758
|
VMain: VMain,
|
32311
|
-
VMaskInput: VMaskInput,
|
32312
31759
|
VMenu: VMenu,
|
32313
31760
|
VMessages: VMessages,
|
32314
31761
|
VNavigationDrawer: VNavigationDrawer,
|
@@ -32706,7 +32153,7 @@
|
|
32706
32153
|
};
|
32707
32154
|
});
|
32708
32155
|
}
|
32709
|
-
const version$1 = "3.8.9-
|
32156
|
+
const version$1 = "3.8.9-master.2025-06-12";
|
32710
32157
|
createVuetify$1.version = version$1;
|
32711
32158
|
|
32712
32159
|
// Vue's inject() can only be used in setup
|
@@ -33004,7 +32451,7 @@
|
|
33004
32451
|
|
33005
32452
|
/* eslint-disable local-rules/sort-imports */
|
33006
32453
|
|
33007
|
-
const version = "3.8.9-
|
32454
|
+
const version = "3.8.9-master.2025-06-12";
|
33008
32455
|
|
33009
32456
|
/* eslint-disable local-rules/sort-imports */
|
33010
32457
|
|