@vuetify/nightly 3.7.15-master.2025-03-06 → 3.7.15-master.2025-03-07
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 +26 -3
- package/dist/json/attributes.json +3562 -3558
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +160 -160
- package/dist/json/tags.json +3 -2
- package/dist/json/web-types.json +6530 -6509
- package/dist/vuetify-labs.css +4798 -4798
- package/dist/vuetify-labs.d.ts +301 -129
- package/dist/vuetify-labs.esm.js +129 -106
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +128 -105
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +2139 -2139
- package/dist/vuetify.d.ts +260 -146
- package/dist/vuetify.esm.js +80 -51
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +79 -50
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +219 -217
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/index.d.mts +15 -6
- package/lib/components/VAutocomplete/index.d.mts +2 -2
- package/lib/components/VBadge/VBadge.mjs +2 -2
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.mjs +6 -3
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.mts +15 -6
- package/lib/components/VCard/VCard.mjs +12 -3
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +11 -4
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCard/index.d.mts +75 -30
- package/lib/components/VCarousel/VCarousel.mjs +1 -1
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VChip/VChip.mjs +6 -3
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.mts +15 -6
- package/lib/components/VCombobox/index.d.mts +2 -2
- package/lib/components/VDataTable/composables/headers.mjs +2 -2
- package/lib/components/VDataTable/composables/headers.mjs.map +1 -1
- package/lib/components/VDataTable/composables/paginate.mjs +2 -2
- package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/components/VFab/index.d.mts +15 -6
- package/lib/components/VList/VListItem.mjs +11 -5
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +32 -14
- package/lib/components/VPagination/VPagination.mjs +3 -3
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VParallax/VParallax.mjs +1 -1
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VRating/VRating.mjs +1 -1
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +2 -2
- package/lib/components/VSlider/slider.mjs +1 -1
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSparkline/VBarline.mjs +1 -1
- package/lib/components/VSparkline/VBarline.mjs.map +1 -1
- package/lib/components/VTabs/index.d.mts +39 -24
- package/lib/components/VTextarea/VTextarea.mjs +2 -2
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/index.d.mts +206 -92
- package/lib/composables/stack.mjs +2 -2
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/validation.mjs +2 -2
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +54 -54
- package/lib/labs/VFileUpload/VFileUpload.mjs +3 -2
- package/lib/labs/VFileUpload/VFileUpload.mjs.map +1 -1
- package/lib/labs/VFileUpload/index.d.mts +32 -14
- package/lib/labs/VNumberInput/VNumberInput.mjs +5 -5
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VTimePicker/VTimePicker.mjs +30 -31
- package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerControls.mjs +12 -13
- package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
- package/lib/labs/VTimePicker/index.d.mts +35 -13
- package/lib/labs/VTimePicker/shared.mjs +2 -0
- package/lib/labs/VTimePicker/shared.mjs.map +1 -0
- package/lib/labs/VTreeview/index.d.mts +32 -14
- package/lib/labs/components.d.mts +97 -39
- package/lib/locale/adapters/vuetify.mjs +1 -1
- package/lib/locale/adapters/vuetify.mjs.map +1 -1
- package/lib/util/animation.mjs +8 -8
- package/lib/util/animation.mjs.map +1 -1
- package/lib/util/helpers.mjs +6 -4
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +1 -1
- package/lib/labs/VTimePicker/SelectingTimes.mjs +0 -10
- package/lib/labs/VTimePicker/SelectingTimes.mjs.map +0 -1
package/dist/vuetify-labs.esm.js
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.7.15-master.2025-03-
|
2
|
+
* Vuetify v3.7.15-master.2025-03-07
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
6
6
|
|
7
|
-
import { shallowRef, reactive, computed, watchEffect, toRefs, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, onBeforeUnmount, watch, readonly, onMounted, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers,
|
7
|
+
import { shallowRef, reactive, computed, watchEffect, toRefs, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, onBeforeUnmount, watch, readonly, onMounted, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
|
8
8
|
|
9
9
|
// Types
|
10
10
|
// eslint-disable-line vue/prefer-import-from-vue
|
@@ -151,12 +151,14 @@ function convertToUnit(str) {
|
|
151
151
|
let unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';
|
152
152
|
if (str == null || str === '') {
|
153
153
|
return undefined;
|
154
|
-
}
|
154
|
+
}
|
155
|
+
const num = Number(str);
|
156
|
+
if (isNaN(num)) {
|
155
157
|
return String(str);
|
156
|
-
} else if (!isFinite(
|
158
|
+
} else if (!isFinite(num)) {
|
157
159
|
return undefined;
|
158
160
|
} else {
|
159
|
-
return `${
|
161
|
+
return `${num}${unit}`;
|
160
162
|
}
|
161
163
|
}
|
162
164
|
function isObject(obj) {
|
@@ -690,16 +692,16 @@ function nullifyTransforms(el) {
|
|
690
692
|
let ta, sx, sy, dx, dy;
|
691
693
|
if (tx.startsWith('matrix3d(')) {
|
692
694
|
ta = tx.slice(9, -1).split(/, /);
|
693
|
-
sx =
|
694
|
-
sy =
|
695
|
-
dx =
|
696
|
-
dy =
|
695
|
+
sx = Number(ta[0]);
|
696
|
+
sy = Number(ta[5]);
|
697
|
+
dx = Number(ta[12]);
|
698
|
+
dy = Number(ta[13]);
|
697
699
|
} else if (tx.startsWith('matrix(')) {
|
698
700
|
ta = tx.slice(7, -1).split(/, /);
|
699
|
-
sx =
|
700
|
-
sy =
|
701
|
-
dx =
|
702
|
-
dy =
|
701
|
+
sx = Number(ta[0]);
|
702
|
+
sy = Number(ta[3]);
|
703
|
+
dx = Number(ta[4]);
|
704
|
+
dy = Number(ta[5]);
|
703
705
|
} else {
|
704
706
|
return new Box(rect);
|
705
707
|
}
|
@@ -2075,7 +2077,7 @@ var en = {
|
|
2075
2077
|
const LANG_PREFIX = '$vuetify.';
|
2076
2078
|
const replace = (str, params) => {
|
2077
2079
|
return str.replace(/\{(\d+)\}/g, (match, index) => {
|
2078
|
-
return String(params[
|
2080
|
+
return String(params[Number(index)]);
|
2079
2081
|
});
|
2080
2082
|
};
|
2081
2083
|
const createTranslateFunction = (current, fallback, messages) => {
|
@@ -5572,7 +5574,10 @@ const makeVBtnProps = propsFactory({
|
|
5572
5574
|
type: [Boolean, Object],
|
5573
5575
|
default: true
|
5574
5576
|
},
|
5575
|
-
text:
|
5577
|
+
text: {
|
5578
|
+
type: [String, Number, Boolean],
|
5579
|
+
default: undefined
|
5580
|
+
},
|
5576
5581
|
...makeBorderProps(),
|
5577
5582
|
...makeComponentProps(),
|
5578
5583
|
...makeDensityProps(),
|
@@ -5728,7 +5733,7 @@ const VBtn = genericComponent()({
|
|
5728
5733
|
}
|
5729
5734
|
}
|
5730
5735
|
}, {
|
5731
|
-
default: () => [slots.default?.() ?? props.text]
|
5736
|
+
default: () => [slots.default?.() ?? toDisplayString(props.text)]
|
5732
5737
|
})]), !props.icon && hasAppend && createVNode("span", {
|
5733
5738
|
"key": "append",
|
5734
5739
|
"class": "v-btn__append"
|
@@ -6736,7 +6741,7 @@ function useValidation(props) {
|
|
6736
6741
|
const isPristine = shallowRef(true);
|
6737
6742
|
const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
|
6738
6743
|
const errorMessages = computed(() => {
|
6739
|
-
return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0,
|
6744
|
+
return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, Number(props.maxErrors))) : internalErrorMessages.value;
|
6740
6745
|
});
|
6741
6746
|
const validateOn = computed(() => {
|
6742
6747
|
let value = (props.validateOn ?? form.validateOn?.value) || 'input';
|
@@ -6827,7 +6832,7 @@ function useValidation(props) {
|
|
6827
6832
|
const results = [];
|
6828
6833
|
isValidating.value = true;
|
6829
6834
|
for (const rule of props.rules) {
|
6830
|
-
if (results.length >=
|
6835
|
+
if (results.length >= Number(props.maxErrors ?? 1)) {
|
6831
6836
|
break;
|
6832
6837
|
}
|
6833
6838
|
const handler = typeof rule === 'function' ? rule : () => rule;
|
@@ -7888,7 +7893,10 @@ const makeVChipProps = propsFactory({
|
|
7888
7893
|
type: [Boolean, Object],
|
7889
7894
|
default: true
|
7890
7895
|
},
|
7891
|
-
text:
|
7896
|
+
text: {
|
7897
|
+
type: [String, Number, Boolean],
|
7898
|
+
default: undefined
|
7899
|
+
},
|
7892
7900
|
modelValue: {
|
7893
7901
|
type: Boolean,
|
7894
7902
|
default: true
|
@@ -8057,7 +8065,7 @@ const VChip = genericComponent()({
|
|
8057
8065
|
toggle: group?.toggle,
|
8058
8066
|
value: group?.value.value,
|
8059
8067
|
disabled: props.disabled
|
8060
|
-
}) ?? props.text]), hasAppend && createVNode("div", {
|
8068
|
+
}) ?? toDisplayString(props.text)]), hasAppend && createVNode("div", {
|
8061
8069
|
"key": "append",
|
8062
8070
|
"class": "v-chip__append"
|
8063
8071
|
}, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
|
@@ -8936,8 +8944,14 @@ const makeVListItemProps = propsFactory({
|
|
8936
8944
|
default: true
|
8937
8945
|
},
|
8938
8946
|
slim: Boolean,
|
8939
|
-
subtitle:
|
8940
|
-
|
8947
|
+
subtitle: {
|
8948
|
+
type: [String, Number, Boolean],
|
8949
|
+
default: undefined
|
8950
|
+
},
|
8951
|
+
title: {
|
8952
|
+
type: [String, Number, Boolean],
|
8953
|
+
default: undefined
|
8954
|
+
},
|
8941
8955
|
value: null,
|
8942
8956
|
onClick: EventProp(),
|
8943
8957
|
onClickOnce: EventProp(),
|
@@ -9130,13 +9144,13 @@ const VListItem = genericComponent()({
|
|
9130
9144
|
}, {
|
9131
9145
|
default: () => [slots.title?.({
|
9132
9146
|
title: props.title
|
9133
|
-
}) ?? props.title]
|
9147
|
+
}) ?? toDisplayString(props.title)]
|
9134
9148
|
}), hasSubtitle && createVNode(VListItemSubtitle, {
|
9135
9149
|
"key": "subtitle"
|
9136
9150
|
}, {
|
9137
9151
|
default: () => [slots.subtitle?.({
|
9138
9152
|
subtitle: props.subtitle
|
9139
|
-
}) ?? props.subtitle]
|
9153
|
+
}) ?? toDisplayString(props.subtitle)]
|
9140
9154
|
}), slots.default?.(slotProps.value)]), hasAppend && createVNode("div", {
|
9141
9155
|
"key": "append",
|
9142
9156
|
"class": "v-list-item__append"
|
@@ -10737,10 +10751,10 @@ function useStack(isActive, zIndex, disableGlobalStack) {
|
|
10737
10751
|
activeChildren: new Set()
|
10738
10752
|
});
|
10739
10753
|
provide(StackSymbol, stack);
|
10740
|
-
const _zIndex = shallowRef(
|
10754
|
+
const _zIndex = shallowRef(Number(zIndex.value));
|
10741
10755
|
useToggleScope(isActive, () => {
|
10742
10756
|
const lastZIndex = globalStack.at(-1)?.[1];
|
10743
|
-
_zIndex.value = lastZIndex ? lastZIndex + 10 :
|
10757
|
+
_zIndex.value = lastZIndex ? lastZIndex + 10 : Number(zIndex.value);
|
10744
10758
|
if (createStackEntry) {
|
10745
10759
|
globalStack.push([vm.uid, _zIndex.value]);
|
10746
10760
|
}
|
@@ -13522,11 +13536,11 @@ const VBadge = genericComponent()({
|
|
13522
13536
|
locationStyles
|
13523
13537
|
} = useLocation(props, true, side => {
|
13524
13538
|
const base = props.floating ? props.dot ? 2 : 4 : props.dot ? 8 : 12;
|
13525
|
-
return base + (['top', 'bottom'].includes(side) ?
|
13539
|
+
return base + (['top', 'bottom'].includes(side) ? Number(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? Number(props.offsetX ?? 0) : 0);
|
13526
13540
|
});
|
13527
13541
|
useRender(() => {
|
13528
13542
|
const value = Number(props.content);
|
13529
|
-
const content = !props.max || isNaN(value) ? props.content : value <=
|
13543
|
+
const content = !props.max || isNaN(value) ? props.content : value <= Number(props.max) ? value : `${props.max}+`;
|
13530
13544
|
const [badgeAttrs, attrs] = pickWithRest(ctx.attrs, ['aria-atomic', 'aria-label', 'aria-live', 'role', 'title']);
|
13531
13545
|
return createVNode(props.tag, mergeProps({
|
13532
13546
|
"class": ['v-badge', {
|
@@ -14225,8 +14239,14 @@ const makeCardItemProps = propsFactory({
|
|
14225
14239
|
appendIcon: IconValue,
|
14226
14240
|
prependAvatar: String,
|
14227
14241
|
prependIcon: IconValue,
|
14228
|
-
subtitle:
|
14229
|
-
|
14242
|
+
subtitle: {
|
14243
|
+
type: [String, Number, Boolean],
|
14244
|
+
default: undefined
|
14245
|
+
},
|
14246
|
+
title: {
|
14247
|
+
type: [String, Number, Boolean],
|
14248
|
+
default: undefined
|
14249
|
+
},
|
14230
14250
|
...makeComponentProps(),
|
14231
14251
|
...makeDensityProps()
|
14232
14252
|
}, 'VCardItem');
|
@@ -14276,11 +14296,11 @@ const VCardItem = genericComponent()({
|
|
14276
14296
|
}, [hasTitle && createVNode(VCardTitle, {
|
14277
14297
|
"key": "title"
|
14278
14298
|
}, {
|
14279
|
-
default: () => [slots.title?.() ?? props.title]
|
14299
|
+
default: () => [slots.title?.() ?? toDisplayString(props.title)]
|
14280
14300
|
}), hasSubtitle && createVNode(VCardSubtitle, {
|
14281
14301
|
"key": "subtitle"
|
14282
14302
|
}, {
|
14283
|
-
default: () => [slots.subtitle?.() ?? props.subtitle]
|
14303
|
+
default: () => [slots.subtitle?.() ?? toDisplayString(props.subtitle)]
|
14284
14304
|
}), slots.default?.()]), hasAppend && createVNode("div", {
|
14285
14305
|
"key": "append",
|
14286
14306
|
"class": "v-card-item__append"
|
@@ -14352,9 +14372,18 @@ const makeVCardProps = propsFactory({
|
|
14352
14372
|
type: [Boolean, Object],
|
14353
14373
|
default: true
|
14354
14374
|
},
|
14355
|
-
subtitle:
|
14356
|
-
|
14357
|
-
|
14375
|
+
subtitle: {
|
14376
|
+
type: [String, Number, Boolean],
|
14377
|
+
default: undefined
|
14378
|
+
},
|
14379
|
+
text: {
|
14380
|
+
type: [String, Number, Boolean],
|
14381
|
+
default: undefined
|
14382
|
+
},
|
14383
|
+
title: {
|
14384
|
+
type: [String, Number, Boolean],
|
14385
|
+
default: undefined
|
14386
|
+
},
|
14358
14387
|
...makeBorderProps(),
|
14359
14388
|
...makeComponentProps(),
|
14360
14389
|
...makeDensityProps(),
|
@@ -14823,7 +14852,7 @@ const VCarousel = genericComponent()({
|
|
14823
14852
|
onMounted(startTimeout);
|
14824
14853
|
function startTimeout() {
|
14825
14854
|
if (!props.cycle || !windowRef.value) return;
|
14826
|
-
slideTimeout = window.setTimeout(windowRef.value.group.next,
|
14855
|
+
slideTimeout = window.setTimeout(windowRef.value.group.next, Number(props.interval) > 0 ? Number(props.interval) : 6000);
|
14827
14856
|
}
|
14828
14857
|
function restartTimeout() {
|
14829
14858
|
window.clearTimeout(slideTimeout);
|
@@ -15549,7 +15578,7 @@ const makeSliderProps = propsFactory({
|
|
15549
15578
|
const useSteps = props => {
|
15550
15579
|
const min = computed(() => parseFloat(props.min));
|
15551
15580
|
const max = computed(() => parseFloat(props.max));
|
15552
|
-
const step = computed(() =>
|
15581
|
+
const step = computed(() => Number(props.step) > 0 ? parseFloat(props.step) : 0);
|
15553
15582
|
const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
|
15554
15583
|
function roundValue(value) {
|
15555
15584
|
value = parseFloat(value);
|
@@ -18504,8 +18533,8 @@ const makeDataTablePaginateProps = propsFactory({
|
|
18504
18533
|
}, 'DataTable-paginate');
|
18505
18534
|
const VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');
|
18506
18535
|
function createPagination(props) {
|
18507
|
-
const page = useProxiedModel(props, 'page', undefined, value =>
|
18508
|
-
const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value =>
|
18536
|
+
const page = useProxiedModel(props, 'page', undefined, value => Number(value ?? 1));
|
18537
|
+
const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => Number(value ?? 10));
|
18509
18538
|
return {
|
18510
18539
|
page,
|
18511
18540
|
itemsPerPage
|
@@ -19294,7 +19323,7 @@ const VPagination = genericComponent()({
|
|
19294
19323
|
const minButtons = props.showFirstLastPage ? 5 : 3;
|
19295
19324
|
return Math.max(0, Math.floor(
|
19296
19325
|
// Round to two decimal places to avoid floating point errors
|
19297
|
-
|
19326
|
+
Number(((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2))));
|
19298
19327
|
}
|
19299
19328
|
const range = computed(() => {
|
19300
19329
|
if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return [];
|
@@ -19365,7 +19394,7 @@ const VPagination = genericComponent()({
|
|
19365
19394
|
ref,
|
19366
19395
|
ellipsis: false,
|
19367
19396
|
icon: true,
|
19368
|
-
disabled: !!props.disabled ||
|
19397
|
+
disabled: !!props.disabled || Number(props.length) < 2,
|
19369
19398
|
color: isActive ? props.activeColor : props.color,
|
19370
19399
|
'aria-current': isActive,
|
19371
19400
|
'aria-label': t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
|
@@ -19414,7 +19443,7 @@ const VPagination = genericComponent()({
|
|
19414
19443
|
refs.value[currentIndex]?.$el.focus();
|
19415
19444
|
}
|
19416
19445
|
function onKeydown(e) {
|
19417
|
-
if (e.key === keyValues.left && !props.disabled && page.value >
|
19446
|
+
if (e.key === keyValues.left && !props.disabled && page.value > Number(props.start)) {
|
19418
19447
|
page.value = page.value - 1;
|
19419
19448
|
nextTick(updateFocus);
|
19420
19449
|
} else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {
|
@@ -19747,10 +19776,10 @@ function parseFixedColumns(items) {
|
|
19747
19776
|
} else {
|
19748
19777
|
if (!seenFixed) {
|
19749
19778
|
item.lastFixed = true;
|
19750
|
-
} else if (isNaN(
|
19779
|
+
} else if (isNaN(Number(item.width))) {
|
19751
19780
|
consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);
|
19752
19781
|
} else {
|
19753
|
-
item.minWidth = Math.max(
|
19782
|
+
item.minWidth = Math.max(Number(item.width) || 0, Number(item.minWidth) || 0);
|
19754
19783
|
}
|
19755
19784
|
seenFixed = true;
|
19756
19785
|
}
|
@@ -24696,7 +24725,7 @@ const VParallax = genericComponent()({
|
|
24696
24725
|
watch(displayHeight, onScroll);
|
24697
24726
|
watch(() => contentRect.value?.height, onScroll);
|
24698
24727
|
const scale = computed(() => {
|
24699
|
-
return 1 - clamp(
|
24728
|
+
return 1 - clamp(Number(props.scale));
|
24700
24729
|
});
|
24701
24730
|
let frame = -1;
|
24702
24731
|
function onScroll() {
|
@@ -25117,7 +25146,7 @@ const VRating = genericComponent()({
|
|
25117
25146
|
themeClasses
|
25118
25147
|
} = provideTheme(props);
|
25119
25148
|
const rating = useProxiedModel(props, 'modelValue');
|
25120
|
-
const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0,
|
25149
|
+
const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, Number(props.length)));
|
25121
25150
|
const range = computed(() => createRange(Number(props.length), 1));
|
25122
25151
|
const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
|
25123
25152
|
const hoverIndex = shallowRef(-1);
|
@@ -25728,7 +25757,7 @@ const VBarline = genericComponent()({
|
|
25728
25757
|
const height = Math.abs(gridY * value);
|
25729
25758
|
return {
|
25730
25759
|
x: minX + index * gridX,
|
25731
|
-
y: horizonY - height +
|
25760
|
+
y: horizonY - height + Number(value < 0) * height,
|
25732
25761
|
height,
|
25733
25762
|
value
|
25734
25763
|
};
|
@@ -27166,10 +27195,10 @@ const VTextarea = genericComponent()({
|
|
27166
27195
|
}
|
27167
27196
|
}
|
27168
27197
|
const sizerRef = ref();
|
27169
|
-
const rows = ref(
|
27198
|
+
const rows = ref(Number(props.rows));
|
27170
27199
|
const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
|
27171
27200
|
watchEffect(() => {
|
27172
|
-
if (!props.autoGrow) rows.value =
|
27201
|
+
if (!props.autoGrow) rows.value = Number(props.rows);
|
27173
27202
|
});
|
27174
27203
|
function calculateInputHeight() {
|
27175
27204
|
if (!props.autoGrow) return;
|
@@ -28540,8 +28569,9 @@ const VFileUpload = genericComponent()({
|
|
28540
28569
|
inputRef.value?.click();
|
28541
28570
|
}
|
28542
28571
|
function onClickRemove(index) {
|
28543
|
-
|
28544
|
-
|
28572
|
+
const newValue = model.value.filter((_, i) => i !== index);
|
28573
|
+
model.value = newValue;
|
28574
|
+
if (newValue.length > 0 || !inputRef.value) return;
|
28545
28575
|
inputRef.value.value = '';
|
28546
28576
|
}
|
28547
28577
|
useRender(() => {
|
@@ -28752,7 +28782,7 @@ const VNumberInput = genericComponent()({
|
|
28752
28782
|
return isFocused.value ? Number(fixed).toString() // trim zeros
|
28753
28783
|
: fixed;
|
28754
28784
|
}
|
28755
|
-
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(
|
28785
|
+
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
28756
28786
|
const _inputText = shallowRef(null);
|
28757
28787
|
watchEffect(() => {
|
28758
28788
|
if (isFocused.value && !controlsDisabled.value) ; else if (model.value == null) {
|
@@ -28767,8 +28797,8 @@ const VNumberInput = genericComponent()({
|
|
28767
28797
|
if (val === null || val === '') {
|
28768
28798
|
model.value = null;
|
28769
28799
|
_inputText.value = null;
|
28770
|
-
} else if (!isNaN(
|
28771
|
-
model.value =
|
28800
|
+
} else if (!isNaN(Number(val)) && Number(val) <= props.max && Number(val) >= props.min) {
|
28801
|
+
model.value = Number(val);
|
28772
28802
|
_inputText.value = val;
|
28773
28803
|
}
|
28774
28804
|
}
|
@@ -28892,8 +28922,8 @@ const VNumberInput = genericComponent()({
|
|
28892
28922
|
if (controlsDisabled.value) return;
|
28893
28923
|
if (!vTextFieldRef.value) return;
|
28894
28924
|
const actualText = vTextFieldRef.value.value;
|
28895
|
-
if (actualText && !isNaN(
|
28896
|
-
inputText.value = correctPrecision(clamp(
|
28925
|
+
if (actualText && !isNaN(Number(actualText))) {
|
28926
|
+
inputText.value = correctPrecision(clamp(Number(actualText), props.min, props.max));
|
28897
28927
|
} else {
|
28898
28928
|
inputText.value = null;
|
28899
28929
|
}
|
@@ -29767,14 +29797,7 @@ const VTimePickerClock = genericComponent()({
|
|
29767
29797
|
}
|
29768
29798
|
});
|
29769
29799
|
|
29770
|
-
//
|
29771
|
-
/* eslint-disable */
|
29772
|
-
var SelectingTimes = /*#__PURE__*/function (SelectingTimes) {
|
29773
|
-
SelectingTimes[SelectingTimes["Hour"] = 1] = "Hour";
|
29774
|
-
SelectingTimes[SelectingTimes["Minute"] = 2] = "Minute";
|
29775
|
-
SelectingTimes[SelectingTimes["Second"] = 3] = "Second";
|
29776
|
-
return SelectingTimes;
|
29777
|
-
}(SelectingTimes || {});
|
29800
|
+
// Types
|
29778
29801
|
|
29779
29802
|
const makeVTimePickerControlsProps = propsFactory({
|
29780
29803
|
ampm: Boolean,
|
@@ -29788,15 +29811,15 @@ const makeVTimePickerControlsProps = propsFactory({
|
|
29788
29811
|
period: String,
|
29789
29812
|
readonly: Boolean,
|
29790
29813
|
useSeconds: Boolean,
|
29791
|
-
|
29792
|
-
|
29814
|
+
value: Number,
|
29815
|
+
viewMode: String
|
29793
29816
|
}, 'VTimePickerControls');
|
29794
29817
|
const VTimePickerControls = genericComponent()({
|
29795
29818
|
name: 'VTimePickerControls',
|
29796
29819
|
props: makeVTimePickerControlsProps(),
|
29797
29820
|
emits: {
|
29798
29821
|
'update:period': data => true,
|
29799
|
-
'update:
|
29822
|
+
'update:viewMode': data => true
|
29800
29823
|
},
|
29801
29824
|
setup(props, _ref) {
|
29802
29825
|
let {
|
@@ -29819,8 +29842,8 @@ const VTimePickerControls = genericComponent()({
|
|
29819
29842
|
'v-time-picker-controls__time--with-seconds': props.useSeconds
|
29820
29843
|
}
|
29821
29844
|
}, [createVNode(VBtn, {
|
29822
|
-
"active": props.
|
29823
|
-
"color": props.
|
29845
|
+
"active": props.viewMode === 'hour',
|
29846
|
+
"color": props.viewMode === 'hour' ? props.color : undefined,
|
29824
29847
|
"disabled": props.disabled,
|
29825
29848
|
"variant": "tonal",
|
29826
29849
|
"class": {
|
@@ -29829,24 +29852,24 @@ const VTimePickerControls = genericComponent()({
|
|
29829
29852
|
'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
|
29830
29853
|
},
|
29831
29854
|
"text": props.hour == null ? '--' : pad(`${hour}`),
|
29832
|
-
"onClick": () => emit('update:
|
29855
|
+
"onClick": () => emit('update:viewMode', 'hour')
|
29833
29856
|
}, null), createVNode("span", {
|
29834
29857
|
"class": ['v-time-picker-controls__time__separator', {
|
29835
29858
|
'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
|
29836
29859
|
}]
|
29837
29860
|
}, [createTextVNode(":")]), createVNode(VBtn, {
|
29838
|
-
"active": props.
|
29839
|
-
"color": props.
|
29861
|
+
"active": props.viewMode === 'minute',
|
29862
|
+
"color": props.viewMode === 'minute' ? props.color : undefined,
|
29840
29863
|
"class": {
|
29841
29864
|
'v-time-picker-controls__time__btn': true,
|
29842
|
-
'v-time-picker-controls__time__btn__active': props.
|
29865
|
+
'v-time-picker-controls__time__btn__active': props.viewMode === 'minute',
|
29843
29866
|
'v-time-picker-controls__time--with-ampm__btn': props.ampm,
|
29844
29867
|
'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
|
29845
29868
|
},
|
29846
29869
|
"disabled": props.disabled,
|
29847
29870
|
"variant": "tonal",
|
29848
29871
|
"text": props.minute == null ? '--' : pad(props.minute),
|
29849
|
-
"onClick": () => emit('update:
|
29872
|
+
"onClick": () => emit('update:viewMode', 'minute')
|
29850
29873
|
}, null), props.useSeconds && createVNode("span", {
|
29851
29874
|
"class": ['v-time-picker-controls__time__separator', {
|
29852
29875
|
'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
|
@@ -29855,10 +29878,10 @@ const VTimePickerControls = genericComponent()({
|
|
29855
29878
|
}, [createTextVNode(":")]), props.useSeconds && createVNode(VBtn, {
|
29856
29879
|
"key": "secondsVal",
|
29857
29880
|
"variant": "tonal",
|
29858
|
-
"onClick": () => emit('update:
|
29881
|
+
"onClick": () => emit('update:viewMode', 'second'),
|
29859
29882
|
"class": {
|
29860
29883
|
'v-time-picker-controls__time__btn': true,
|
29861
|
-
'v-time-picker-controls__time__btn__active': props.
|
29884
|
+
'v-time-picker-controls__time__btn__active': props.viewMode === 'second',
|
29862
29885
|
'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
|
29863
29886
|
},
|
29864
29887
|
"disabled": props.disabled,
|
@@ -29903,11 +29926,6 @@ const rangeHours24 = createRange(24);
|
|
29903
29926
|
const rangeHours12am = createRange(12);
|
29904
29927
|
const rangeHours12pm = rangeHours12am.map(v => v + 12);
|
29905
29928
|
createRange(60);
|
29906
|
-
const selectingNames = {
|
29907
|
-
1: 'hour',
|
29908
|
-
2: 'minute',
|
29909
|
-
3: 'second'
|
29910
|
-
};
|
29911
29929
|
const makeVTimePickerProps = propsFactory({
|
29912
29930
|
allowedHours: [Function, Array],
|
29913
29931
|
allowedMinutes: [Function, Array],
|
@@ -29920,6 +29938,10 @@ const makeVTimePickerProps = propsFactory({
|
|
29920
29938
|
},
|
29921
29939
|
max: String,
|
29922
29940
|
min: String,
|
29941
|
+
viewMode: {
|
29942
|
+
type: String,
|
29943
|
+
default: 'hour'
|
29944
|
+
},
|
29923
29945
|
modelValue: null,
|
29924
29946
|
readonly: Boolean,
|
29925
29947
|
scrollable: Boolean,
|
@@ -29936,7 +29958,8 @@ const VTimePicker = genericComponent()({
|
|
29936
29958
|
'update:minute': val => true,
|
29937
29959
|
'update:period': val => true,
|
29938
29960
|
'update:second': val => true,
|
29939
|
-
'update:modelValue': val => true
|
29961
|
+
'update:modelValue': val => true,
|
29962
|
+
'update:viewMode': val => true
|
29940
29963
|
},
|
29941
29964
|
setup(props, _ref) {
|
29942
29965
|
let {
|
@@ -29953,7 +29976,7 @@ const VTimePicker = genericComponent()({
|
|
29953
29976
|
const lazyInputMinute = ref(null);
|
29954
29977
|
const lazyInputSecond = ref(null);
|
29955
29978
|
const period = ref('am');
|
29956
|
-
const
|
29979
|
+
const viewMode = useProxiedModel(props, 'viewMode', 'hour');
|
29957
29980
|
const controlsRef = ref(null);
|
29958
29981
|
const clockRef = ref(null);
|
29959
29982
|
const isAllowedHourCb = computed(() => {
|
@@ -29967,7 +29990,7 @@ const VTimePicker = genericComponent()({
|
|
29967
29990
|
const minHour = props.min ? Number(props.min.split(':')[0]) : 0;
|
29968
29991
|
const maxHour = props.max ? Number(props.max.split(':')[0]) : 23;
|
29969
29992
|
return val => {
|
29970
|
-
return val >= minHour
|
29993
|
+
return val >= Number(minHour) && val <= Number(maxHour) && (!cb || cb(val));
|
29971
29994
|
};
|
29972
29995
|
});
|
29973
29996
|
const isAllowedMinuteCb = computed(() => {
|
@@ -29983,8 +30006,8 @@ const VTimePicker = genericComponent()({
|
|
29983
30006
|
}
|
29984
30007
|
const [minHour, minMinute] = props.min ? props.min.split(':').map(Number) : [0, 0];
|
29985
30008
|
const [maxHour, maxMinute] = props.max ? props.max.split(':').map(Number) : [23, 59];
|
29986
|
-
const minTime = minHour * 60 + minMinute
|
29987
|
-
const maxTime = maxHour * 60 + maxMinute
|
30009
|
+
const minTime = minHour * 60 + Number(minMinute);
|
30010
|
+
const maxTime = maxHour * 60 + Number(maxMinute);
|
29988
30011
|
return val => {
|
29989
30012
|
const time = 60 * inputHour.value + val;
|
29990
30013
|
return time >= minTime && time <= maxTime && isHourAllowed && (!cb || cb(val));
|
@@ -30004,8 +30027,8 @@ const VTimePicker = genericComponent()({
|
|
30004
30027
|
}
|
30005
30028
|
const [minHour, minMinute, minSecond] = props.min ? props.min.split(':').map(Number) : [0, 0, 0];
|
30006
30029
|
const [maxHour, maxMinute, maxSecond] = props.max ? props.max.split(':').map(Number) : [23, 59, 59];
|
30007
|
-
const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0)
|
30008
|
-
const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0)
|
30030
|
+
const minTime = minHour * 3600 + minMinute * 60 + Number(minSecond || 0);
|
30031
|
+
const maxTime = maxHour * 3600 + maxMinute * 60 + Number(maxSecond || 0);
|
30009
30032
|
return val => {
|
30010
30033
|
const time = 3600 * inputHour.value + 60 * inputMinute.value + val;
|
30011
30034
|
return time >= minTime && time <= maxTime && isMinuteAllowed && (!cb || cb(val));
|
@@ -30071,16 +30094,16 @@ const VTimePicker = genericComponent()({
|
|
30071
30094
|
return true;
|
30072
30095
|
}
|
30073
30096
|
function onInput(value) {
|
30074
|
-
if (
|
30097
|
+
if (viewMode.value === 'hour') {
|
30075
30098
|
inputHour.value = isAmPm.value ? convert12to24(value, period.value) : value;
|
30076
|
-
} else if (
|
30099
|
+
} else if (viewMode.value === 'minute') {
|
30077
30100
|
inputMinute.value = value;
|
30078
30101
|
} else {
|
30079
30102
|
inputSecond.value = value;
|
30080
30103
|
}
|
30081
30104
|
}
|
30082
30105
|
function onChange(value) {
|
30083
|
-
switch (
|
30106
|
+
switch (viewMode.value || 'hour') {
|
30084
30107
|
case 'hour':
|
30085
30108
|
emit('update:hour', value);
|
30086
30109
|
break;
|
@@ -30092,10 +30115,10 @@ const VTimePicker = genericComponent()({
|
|
30092
30115
|
break;
|
30093
30116
|
}
|
30094
30117
|
const emitChange = inputHour.value !== null && inputMinute.value !== null && (props.useSeconds ? inputSecond.value !== null : true);
|
30095
|
-
if (
|
30096
|
-
|
30097
|
-
} else if (props.useSeconds &&
|
30098
|
-
|
30118
|
+
if (viewMode.value === 'hour') {
|
30119
|
+
viewMode.value = 'minute';
|
30120
|
+
} else if (props.useSeconds && viewMode.value === 'minute') {
|
30121
|
+
viewMode.value = 'second';
|
30099
30122
|
}
|
30100
30123
|
if (inputHour.value === lazyInputHour.value && inputMinute.value === lazyInputMinute.value && (!props.useSeconds || inputSecond.value === lazyInputSecond.value)) return;
|
30101
30124
|
const time = genValue();
|
@@ -30124,20 +30147,20 @@ const VTimePicker = genericComponent()({
|
|
30124
30147
|
"minute": inputMinute.value,
|
30125
30148
|
"period": period.value,
|
30126
30149
|
"second": inputSecond.value,
|
30127
|
-
"
|
30150
|
+
"viewMode": viewMode.value,
|
30128
30151
|
"onUpdate:period": val => setPeriod(val),
|
30129
|
-
"onUpdate:
|
30152
|
+
"onUpdate:viewMode": value => viewMode.value = value,
|
30130
30153
|
"ref": controlsRef
|
30131
30154
|
}), null),
|
30132
30155
|
default: () => createVNode(VTimePickerClock, mergeProps(timePickerClockProps, {
|
30133
|
-
"allowedValues":
|
30134
|
-
"double":
|
30135
|
-
"format":
|
30136
|
-
"max":
|
30137
|
-
"min":
|
30156
|
+
"allowedValues": viewMode.value === 'hour' ? isAllowedHourCb.value : viewMode.value === 'minute' ? isAllowedMinuteCb.value : isAllowedSecondCb.value,
|
30157
|
+
"double": viewMode.value === 'hour' && !isAmPm.value,
|
30158
|
+
"format": viewMode.value === 'hour' ? isAmPm.value ? convert24to12 : val => val : val => pad(val, 2),
|
30159
|
+
"max": viewMode.value === 'hour' ? isAmPm.value && period.value === 'am' ? 11 : 23 : 59,
|
30160
|
+
"min": viewMode.value === 'hour' && isAmPm.value && period.value === 'pm' ? 12 : 0,
|
30138
30161
|
"size": 20,
|
30139
|
-
"step":
|
30140
|
-
"modelValue":
|
30162
|
+
"step": viewMode.value === 'hour' ? 1 : 5,
|
30163
|
+
"modelValue": viewMode.value === 'hour' ? inputHour.value : viewMode.value === 'minute' ? inputMinute.value : inputSecond.value,
|
30141
30164
|
"onChange": onChange,
|
30142
30165
|
"onInput": onInput,
|
30143
30166
|
"ref": clockRef
|
@@ -31050,7 +31073,7 @@ function createVuetify$1() {
|
|
31050
31073
|
goTo
|
31051
31074
|
};
|
31052
31075
|
}
|
31053
|
-
const version$1 = "3.7.15-master.2025-03-
|
31076
|
+
const version$1 = "3.7.15-master.2025-03-07";
|
31054
31077
|
createVuetify$1.version = version$1;
|
31055
31078
|
|
31056
31079
|
// Vue's inject() can only be used in setup
|
@@ -31303,7 +31326,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
31303
31326
|
|
31304
31327
|
/* eslint-disable local-rules/sort-imports */
|
31305
31328
|
|
31306
|
-
const version = "3.7.15-master.2025-03-
|
31329
|
+
const version = "3.7.15-master.2025-03-07";
|
31307
31330
|
|
31308
31331
|
/* eslint-disable local-rules/sort-imports */
|
31309
31332
|
|