@vuetify/nightly 3.9.0-beta.1-dev.2025-06-28 → 3.9.0-beta.1-dev.2025-07-04
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 +112 -3
- package/dist/json/attributes.json +3349 -3357
- package/dist/json/importMap-labs.json +26 -26
- package/dist/json/importMap.json +160 -160
- package/dist/json/tags.json +2 -4
- package/dist/json/web-types.json +6608 -6629
- package/dist/vuetify-labs.cjs +179 -121
- package/dist/vuetify-labs.css +3814 -3803
- package/dist/vuetify-labs.d.ts +248 -258
- package/dist/vuetify-labs.esm.js +179 -121
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +179 -121
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +154 -97
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3909 -3898
- package/dist/vuetify.d.ts +105 -115
- package/dist/vuetify.esm.js +154 -97
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +154 -97
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +102 -89
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.css +12 -1
- package/lib/components/VDataTable/VDataTable.d.ts +20 -38
- package/lib/components/VDataTable/VDataTable.sass +12 -2
- package/lib/components/VDataTable/VDataTableColumn.d.ts +9 -3
- package/lib/components/VDataTable/VDataTableColumn.js +12 -4
- package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +0 -13
- package/lib/components/VDataTable/VDataTableHeaders.js +10 -9
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.js +2 -0
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +10 -23
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +10 -23
- package/lib/components/VDataTable/composables/headers.d.ts +22 -14
- package/lib/components/VDataTable/composables/headers.js +51 -22
- package/lib/components/VDataTable/composables/headers.js.map +1 -1
- package/lib/components/VDataTable/composables/sort.js +2 -1
- package/lib/components/VDataTable/composables/sort.js.map +1 -1
- package/lib/components/VDataTable/types.d.ts +3 -1
- package/lib/components/VDataTable/types.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js +1 -2
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VList/VListGroup.d.ts +13 -0
- package/lib/components/VList/VListGroup.js +2 -1
- package/lib/components/VList/VListGroup.js.map +1 -1
- package/lib/components/VList/VListItem.d.ts +6 -3
- package/lib/components/VList/VListItem.js +1 -1
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +17 -14
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverlay/locationStrategies.js +1 -1
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/components/VTextField/VTextField.js +1 -1
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTreeview/VTreeview.d.ts +6 -21
- package/lib/components/VTreeview/VTreeview.js +6 -9
- package/lib/components/VTreeview/VTreeview.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewGroup.d.ts +13 -0
- package/lib/components/VTreeview/VTreeviewItem.d.ts +18 -9
- package/lib/components/VTreeview/VTreeviewItem.js +1 -1
- package/lib/components/VTreeview/VTreeviewItem.js.map +1 -1
- package/lib/composables/calendar.d.ts +0 -1
- package/lib/composables/calendar.js +6 -10
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/date/adapters/vuetify.js +1 -1
- package/lib/composables/date/adapters/vuetify.js.map +1 -1
- package/lib/composables/nested/nested.d.ts +7 -4
- package/lib/composables/nested/nested.js +16 -6
- package/lib/composables/nested/nested.js.map +1 -1
- package/lib/composables/nested/selectStrategies.d.ts +2 -1
- package/lib/composables/nested/selectStrategies.js +22 -11
- package/lib/composables/nested/selectStrategies.js.map +1 -1
- package/lib/composables/virtual.js +1 -1
- package/lib/composables/virtual.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +60 -57
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +33 -33
- package/lib/labs/VCalendar/VCalendar.js +9 -9
- package/lib/labs/VCalendar/VCalendar.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarDay.d.ts +33 -33
- package/lib/labs/VCalendar/VCalendarDay.js +1 -1
- package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarInterval.d.ts +36 -36
- package/lib/labs/VCalendar/VCalendarInterval.js +9 -9
- package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +12 -12
- package/lib/labs/VCalendar/VCalendarIntervalEvent.js +1 -1
- package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +36 -36
- package/lib/labs/VCalendar/VCalendarMonthDay.js +4 -4
- package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
- package/lib/labs/VIconBtn/VIconBtn.js +1 -0
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify-labs.esm.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.9.0-beta.1-dev.2025-
|
2
|
+
* Vuetify v3.9.0-beta.1-dev.2025-07-04
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -8822,7 +8822,7 @@ const independentSelectStrategy = mandatory => {
|
|
8822
8822
|
selected.set(id, value ? 'on' : 'off');
|
8823
8823
|
return selected;
|
8824
8824
|
},
|
8825
|
-
in: (v, children, parents) => {
|
8825
|
+
in: (v, children, parents, disabled) => {
|
8826
8826
|
const map = new Map();
|
8827
8827
|
for (const id of v || []) {
|
8828
8828
|
strategy.select({
|
@@ -8830,7 +8830,8 @@ const independentSelectStrategy = mandatory => {
|
|
8830
8830
|
value: true,
|
8831
8831
|
selected: map,
|
8832
8832
|
children,
|
8833
|
-
parents
|
8833
|
+
parents,
|
8834
|
+
disabled
|
8834
8835
|
});
|
8835
8836
|
}
|
8836
8837
|
return map;
|
@@ -8862,9 +8863,9 @@ const independentSingleSelectStrategy = mandatory => {
|
|
8862
8863
|
selected: singleSelected
|
8863
8864
|
});
|
8864
8865
|
},
|
8865
|
-
in: (v, children, parents) => {
|
8866
|
+
in: (v, children, parents, disabled) => {
|
8866
8867
|
if (v?.length) {
|
8867
|
-
return parentStrategy.in(v.slice(0, 1), children, parents);
|
8868
|
+
return parentStrategy.in(v.slice(0, 1), children, parents, disabled);
|
8868
8869
|
}
|
8869
8870
|
return new Map();
|
8870
8871
|
},
|
@@ -8930,23 +8931,32 @@ const classicSelectStrategy = mandatory => {
|
|
8930
8931
|
value,
|
8931
8932
|
selected,
|
8932
8933
|
children,
|
8933
|
-
parents
|
8934
|
+
parents,
|
8935
|
+
disabled
|
8934
8936
|
} = _ref6;
|
8935
8937
|
id = toRaw(id);
|
8936
8938
|
const original = new Map(selected);
|
8937
8939
|
const items = [id];
|
8938
8940
|
while (items.length) {
|
8939
8941
|
const item = items.shift();
|
8940
|
-
|
8942
|
+
if (!disabled.has(item)) {
|
8943
|
+
selected.set(toRaw(item), value ? 'on' : 'off');
|
8944
|
+
}
|
8941
8945
|
if (children.has(item)) {
|
8942
8946
|
items.push(...children.get(item));
|
8943
8947
|
}
|
8944
8948
|
}
|
8945
8949
|
let parent = toRaw(parents.get(id));
|
8946
8950
|
while (parent) {
|
8947
|
-
|
8948
|
-
|
8949
|
-
|
8951
|
+
let everySelected = true;
|
8952
|
+
let noneSelected = true;
|
8953
|
+
for (const child of children.get(parent)) {
|
8954
|
+
const cid = toRaw(child);
|
8955
|
+
if (disabled.has(cid)) continue;
|
8956
|
+
if (selected.get(cid) !== 'on') everySelected = false;
|
8957
|
+
if (selected.has(cid) && selected.get(cid) !== 'off') noneSelected = false;
|
8958
|
+
if (!everySelected && !noneSelected) break;
|
8959
|
+
}
|
8950
8960
|
selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
|
8951
8961
|
parent = toRaw(parents.get(parent));
|
8952
8962
|
}
|
@@ -8963,7 +8973,7 @@ const classicSelectStrategy = mandatory => {
|
|
8963
8973
|
}
|
8964
8974
|
return selected;
|
8965
8975
|
},
|
8966
|
-
in: (v, children, parents) => {
|
8976
|
+
in: (v, children, parents, disabled) => {
|
8967
8977
|
let map = new Map();
|
8968
8978
|
for (const id of v || []) {
|
8969
8979
|
map = strategy.select({
|
@@ -8971,7 +8981,8 @@ const classicSelectStrategy = mandatory => {
|
|
8971
8981
|
value: true,
|
8972
8982
|
selected: map,
|
8973
8983
|
children,
|
8974
|
-
parents
|
8984
|
+
parents,
|
8985
|
+
disabled
|
8975
8986
|
});
|
8976
8987
|
}
|
8977
8988
|
return map;
|
@@ -9018,8 +9029,9 @@ const emptyNested = {
|
|
9018
9029
|
root: {
|
9019
9030
|
register: () => null,
|
9020
9031
|
unregister: () => null,
|
9021
|
-
parents: ref(new Map()),
|
9022
9032
|
children: ref(new Map()),
|
9033
|
+
parents: ref(new Map()),
|
9034
|
+
disabled: ref(new Set()),
|
9023
9035
|
open: () => null,
|
9024
9036
|
openOnSelect: () => null,
|
9025
9037
|
activate: () => null,
|
@@ -9048,6 +9060,7 @@ const useNested = props => {
|
|
9048
9060
|
let isUnmounted = false;
|
9049
9061
|
const children = shallowRef(new Map());
|
9050
9062
|
const parents = shallowRef(new Map());
|
9063
|
+
const disabled = shallowRef(new Set());
|
9051
9064
|
const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(Array.isArray(v) ? v.map(i => toRaw(i)) : v), v => [...v.values()]);
|
9052
9065
|
const activeStrategy = computed(() => {
|
9053
9066
|
if (typeof props.activeStrategy === 'object') return props.activeStrategy;
|
@@ -9096,7 +9109,7 @@ const useNested = props => {
|
|
9096
9109
|
}
|
9097
9110
|
});
|
9098
9111
|
const activated = useProxiedModel(props, 'activated', props.activated, v => activeStrategy.value.in(v, children.value, parents.value), v => activeStrategy.value.out(v, children.value, parents.value));
|
9099
|
-
const selected = useProxiedModel(props, 'selected', props.selected, v => selectStrategy.value.in(v, children.value, parents.value), v => selectStrategy.value.out(v, children.value, parents.value));
|
9112
|
+
const selected = useProxiedModel(props, 'selected', props.selected, v => selectStrategy.value.in(v, children.value, parents.value, disabled.value), v => selectStrategy.value.out(v, children.value, parents.value));
|
9100
9113
|
onBeforeUnmount(() => {
|
9101
9114
|
isUnmounted = true;
|
9102
9115
|
});
|
@@ -9126,7 +9139,7 @@ const useNested = props => {
|
|
9126
9139
|
}
|
9127
9140
|
return arr;
|
9128
9141
|
}),
|
9129
|
-
register: (id, parentId, isGroup) => {
|
9142
|
+
register: (id, parentId, isDisabled, isGroup) => {
|
9130
9143
|
if (nodeIds.has(id)) {
|
9131
9144
|
const path = getPath(id).map(String).join(' -> ');
|
9132
9145
|
const newPath = getPath(parentId).concat(id).map(String).join(' -> ');
|
@@ -9136,6 +9149,7 @@ const useNested = props => {
|
|
9136
9149
|
nodeIds.add(id);
|
9137
9150
|
}
|
9138
9151
|
parentId && id !== parentId && parents.value.set(id, parentId);
|
9152
|
+
isDisabled && disabled.value.add(id);
|
9139
9153
|
isGroup && children.value.set(id, []);
|
9140
9154
|
if (parentId != null) {
|
9141
9155
|
children.value.set(parentId, [...(children.value.get(parentId) || []), id]);
|
@@ -9145,6 +9159,7 @@ const useNested = props => {
|
|
9145
9159
|
if (isUnmounted) return;
|
9146
9160
|
nodeIds.delete(id);
|
9147
9161
|
children.value.delete(id);
|
9162
|
+
disabled.value.delete(id);
|
9148
9163
|
const parent = parents.value.get(id);
|
9149
9164
|
if (parent) {
|
9150
9165
|
const list = children.value.get(parent) ?? [];
|
@@ -9194,6 +9209,7 @@ const useNested = props => {
|
|
9194
9209
|
selected: new Map(selected.value),
|
9195
9210
|
children: children.value,
|
9196
9211
|
parents: parents.value,
|
9212
|
+
disabled: disabled.value,
|
9197
9213
|
event
|
9198
9214
|
});
|
9199
9215
|
newSelected && (selected.value = newSelected);
|
@@ -9236,13 +9252,14 @@ const useNested = props => {
|
|
9236
9252
|
},
|
9237
9253
|
children,
|
9238
9254
|
parents,
|
9255
|
+
disabled,
|
9239
9256
|
getPath
|
9240
9257
|
}
|
9241
9258
|
};
|
9242
9259
|
provide(VNestedSymbol, nested);
|
9243
9260
|
return nested.root;
|
9244
9261
|
};
|
9245
|
-
const useNestedItem = (id, isGroup) => {
|
9262
|
+
const useNestedItem = (id, isDisabled, isGroup) => {
|
9246
9263
|
const parent = inject$1(VNestedSymbol, emptyNested);
|
9247
9264
|
const uidSymbol = Symbol('nested item');
|
9248
9265
|
const computedId = computed(() => toRaw(toValue(id)) ?? uidSymbol);
|
@@ -9262,10 +9279,14 @@ const useNestedItem = (id, isGroup) => {
|
|
9262
9279
|
isGroupActivator: parent.isGroupActivator
|
9263
9280
|
};
|
9264
9281
|
onBeforeMount(() => {
|
9265
|
-
!parent.isGroupActivator
|
9282
|
+
if (!parent.isGroupActivator) {
|
9283
|
+
parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup);
|
9284
|
+
}
|
9266
9285
|
});
|
9267
9286
|
onBeforeUnmount(() => {
|
9268
|
-
!parent.isGroupActivator
|
9287
|
+
if (!parent.isGroupActivator) {
|
9288
|
+
parent.root.unregister(computedId.value);
|
9289
|
+
}
|
9269
9290
|
});
|
9270
9291
|
isGroup && provide(VNestedSymbol, item);
|
9271
9292
|
return item;
|
@@ -9297,6 +9318,7 @@ const makeVListGroupProps = propsFactory({
|
|
9297
9318
|
type: IconValue,
|
9298
9319
|
default: '$collapse'
|
9299
9320
|
},
|
9321
|
+
disabled: Boolean,
|
9300
9322
|
expandIcon: {
|
9301
9323
|
type: IconValue,
|
9302
9324
|
default: '$expand'
|
@@ -9322,7 +9344,7 @@ const VListGroup = genericComponent()({
|
|
9322
9344
|
isOpen,
|
9323
9345
|
open,
|
9324
9346
|
id: _id
|
9325
|
-
} = useNestedItem(() => props.value, true);
|
9347
|
+
} = useNestedItem(() => props.value, () => props.disabled, true);
|
9326
9348
|
const id = computed(() => `v-list-group--id-${String(props.rawId ?? _id.value)}`);
|
9327
9349
|
const list = useList();
|
9328
9350
|
const {
|
@@ -9492,7 +9514,7 @@ const VListItem = genericComponent()({
|
|
9492
9514
|
parent,
|
9493
9515
|
openOnSelect,
|
9494
9516
|
id: uid
|
9495
|
-
} = useNestedItem(id, false);
|
9517
|
+
} = useNestedItem(id, () => props.disabled, false);
|
9496
9518
|
const list = useList();
|
9497
9519
|
const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
|
9498
9520
|
const isLink = toRef(() => props.link !== false && link.isLink.value);
|
@@ -10452,7 +10474,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
10452
10474
|
});
|
10453
10475
|
if (flipped.isFull) {
|
10454
10476
|
const values = flipped.values();
|
10455
|
-
if (deepEqual(values.at(-1), values.at(-3))) {
|
10477
|
+
if (deepEqual(values.at(-1), values.at(-3)) && !deepEqual(values.at(-1), values.at(-2))) {
|
10456
10478
|
// Flipping is causing a container resize loop
|
10457
10479
|
return;
|
10458
10480
|
}
|
@@ -12302,7 +12324,7 @@ const VTextField = genericComponent()({
|
|
12302
12324
|
if (!isFocused.value) focus();
|
12303
12325
|
nextTick(() => {
|
12304
12326
|
if (inputRef.value !== document.activeElement) {
|
12305
|
-
inputRef.value?.focus();
|
12327
|
+
nextTick(() => inputRef.value?.focus());
|
12306
12328
|
}
|
12307
12329
|
});
|
12308
12330
|
}
|
@@ -12641,7 +12663,7 @@ function useVirtual(props, items) {
|
|
12641
12663
|
raf = requestAnimationFrame(_calculateVisibleItems);
|
12642
12664
|
}
|
12643
12665
|
function _calculateVisibleItems() {
|
12644
|
-
if (!containerRef.value || !viewportHeight.value) return;
|
12666
|
+
if (!containerRef.value || !viewportHeight.value || !itemHeight.value) return;
|
12645
12667
|
const scrollTop = lastScrollTop - markerOffset;
|
12646
12668
|
const direction = Math.sign(scrollVelocity);
|
12647
12669
|
const startPx = Math.max(0, scrollTop - BUFFER_PX);
|
@@ -17524,7 +17546,7 @@ function format(value, formatString, locale, formats) {
|
|
17524
17546
|
case 'fullDate':
|
17525
17547
|
options = {
|
17526
17548
|
year: 'numeric',
|
17527
|
-
month: '
|
17549
|
+
month: 'short',
|
17528
17550
|
day: 'numeric'
|
17529
17551
|
};
|
17530
17552
|
break;
|
@@ -19841,7 +19863,8 @@ function sortItems(items, sortByItems, locale, options) {
|
|
19841
19863
|
|
19842
19864
|
// Dates should be compared numerically
|
19843
19865
|
if (sortA instanceof Date && sortB instanceof Date) {
|
19844
|
-
|
19866
|
+
sortA = sortA.getTime();
|
19867
|
+
sortB = sortB.getTime();
|
19845
19868
|
}
|
19846
19869
|
[sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s);
|
19847
19870
|
if (sortA !== sortB) {
|
@@ -20550,10 +20573,15 @@ const VDataTableColumn = defineFunctionalComponent({
|
|
20550
20573
|
type: String,
|
20551
20574
|
default: 'start'
|
20552
20575
|
},
|
20553
|
-
fixed:
|
20576
|
+
fixed: {
|
20577
|
+
type: [Boolean, String],
|
20578
|
+
default: false
|
20579
|
+
},
|
20554
20580
|
fixedOffset: [Number, String],
|
20581
|
+
fixedEndOffset: [Number, String],
|
20555
20582
|
height: [Number, String],
|
20556
20583
|
lastFixed: Boolean,
|
20584
|
+
firstFixedEnd: Boolean,
|
20557
20585
|
noPadding: Boolean,
|
20558
20586
|
tag: String,
|
20559
20587
|
width: [Number, String],
|
@@ -20564,11 +20592,13 @@ const VDataTableColumn = defineFunctionalComponent({
|
|
20564
20592
|
slots
|
20565
20593
|
} = _ref;
|
20566
20594
|
const Tag = props.tag ?? 'td';
|
20595
|
+
const fixedSide = typeof props.fixed === 'string' ? props.fixed : props.fixed ? 'start' : 'none';
|
20567
20596
|
return createVNode(Tag, {
|
20568
|
-
"tabindex": "0",
|
20569
20597
|
"class": normalizeClass(['v-data-table__td', {
|
20570
|
-
'v-data-table-column--fixed':
|
20598
|
+
'v-data-table-column--fixed': fixedSide === 'start',
|
20599
|
+
'v-data-table-column--fixed-end': fixedSide === 'end',
|
20571
20600
|
'v-data-table-column--last-fixed': props.lastFixed,
|
20601
|
+
'v-data-table-column--first-fixed-end': props.firstFixedEnd,
|
20572
20602
|
'v-data-table-column--no-padding': props.noPadding,
|
20573
20603
|
'v-data-table-column--nowrap': props.nowrap
|
20574
20604
|
}, `v-data-table-column--align-${props.align}`]),
|
@@ -20576,7 +20606,8 @@ const VDataTableColumn = defineFunctionalComponent({
|
|
20576
20606
|
height: convertToUnit(props.height),
|
20577
20607
|
width: convertToUnit(props.width),
|
20578
20608
|
maxWidth: convertToUnit(props.maxWidth),
|
20579
|
-
left: convertToUnit(props.fixedOffset || null)
|
20609
|
+
left: fixedSide === 'start' ? convertToUnit(props.fixedOffset || null) : undefined,
|
20610
|
+
right: fixedSide === 'end' ? convertToUnit(props.fixedEndOffset || null) : undefined
|
20580
20611
|
}
|
20581
20612
|
}, {
|
20582
20613
|
default: () => [slots.default?.()]
|
@@ -20673,20 +20704,28 @@ function getDepth(item) {
|
|
20673
20704
|
}
|
20674
20705
|
function parseFixedColumns(items) {
|
20675
20706
|
let seenFixed = false;
|
20676
|
-
function setFixed(item) {
|
20677
|
-
let
|
20707
|
+
function setFixed(item, side) {
|
20708
|
+
let parentFixedSide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'none';
|
20678
20709
|
if (!item) return;
|
20679
|
-
if (
|
20680
|
-
item.fixed =
|
20710
|
+
if (parentFixedSide !== 'none') {
|
20711
|
+
item.fixed = parentFixedSide;
|
20681
20712
|
}
|
20682
|
-
|
20683
|
-
|
20684
|
-
|
20685
|
-
|
20713
|
+
|
20714
|
+
// normalize to simplify logic below
|
20715
|
+
if (item.fixed === true) {
|
20716
|
+
item.fixed = 'start';
|
20717
|
+
}
|
20718
|
+
const orderedChildren = side === 'start' ? item.children?.toReversed() : item.children;
|
20719
|
+
if (item.fixed === side) {
|
20720
|
+
if (orderedChildren) {
|
20721
|
+
for (const child of orderedChildren) {
|
20722
|
+
setFixed(child, side, side);
|
20686
20723
|
}
|
20687
20724
|
} else {
|
20688
|
-
if (!seenFixed) {
|
20725
|
+
if (!seenFixed && side === 'start') {
|
20689
20726
|
item.lastFixed = true;
|
20727
|
+
} else if (!seenFixed && side === 'end') {
|
20728
|
+
item.firstFixedEnd = true;
|
20690
20729
|
} else if (isNaN(Number(item.width))) {
|
20691
20730
|
consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);
|
20692
20731
|
} else {
|
@@ -20695,36 +20734,57 @@ function parseFixedColumns(items) {
|
|
20695
20734
|
seenFixed = true;
|
20696
20735
|
}
|
20697
20736
|
} else {
|
20698
|
-
if (
|
20699
|
-
for (
|
20700
|
-
setFixed(
|
20737
|
+
if (orderedChildren) {
|
20738
|
+
for (const child of orderedChildren) {
|
20739
|
+
setFixed(child, side);
|
20701
20740
|
}
|
20702
20741
|
} else {
|
20703
20742
|
seenFixed = false;
|
20704
20743
|
}
|
20705
20744
|
}
|
20706
20745
|
}
|
20707
|
-
for (
|
20708
|
-
setFixed(
|
20746
|
+
for (const item of items.toReversed()) {
|
20747
|
+
setFixed(item, 'start');
|
20748
|
+
}
|
20749
|
+
for (const item of items) {
|
20750
|
+
setFixed(item, 'end');
|
20709
20751
|
}
|
20710
20752
|
function setFixedOffset(item) {
|
20711
|
-
let
|
20712
|
-
if (!item) return
|
20753
|
+
let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
20754
|
+
if (!item) return offset;
|
20713
20755
|
if (item.children) {
|
20714
|
-
item.fixedOffset =
|
20756
|
+
item.fixedOffset = offset;
|
20715
20757
|
for (const child of item.children) {
|
20716
|
-
|
20758
|
+
offset = setFixedOffset(child, offset);
|
20717
20759
|
}
|
20718
|
-
} else if (item.fixed) {
|
20719
|
-
item.fixedOffset =
|
20720
|
-
|
20760
|
+
} else if (item.fixed && item.fixed !== 'end') {
|
20761
|
+
item.fixedOffset = offset;
|
20762
|
+
offset += parseFloat(item.width || '0') || 0;
|
20721
20763
|
}
|
20722
|
-
return
|
20764
|
+
return offset;
|
20723
20765
|
}
|
20724
20766
|
let fixedOffset = 0;
|
20725
20767
|
for (const item of items) {
|
20726
20768
|
fixedOffset = setFixedOffset(item, fixedOffset);
|
20727
20769
|
}
|
20770
|
+
function setFixedEndOffset(item) {
|
20771
|
+
let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
20772
|
+
if (!item) return offset;
|
20773
|
+
if (item.children) {
|
20774
|
+
item.fixedEndOffset = offset;
|
20775
|
+
for (const child of item.children) {
|
20776
|
+
offset = setFixedEndOffset(child, offset);
|
20777
|
+
}
|
20778
|
+
} else if (item.fixed === 'end') {
|
20779
|
+
item.fixedEndOffset = offset;
|
20780
|
+
offset += parseFloat(item.width || '0') || 0;
|
20781
|
+
}
|
20782
|
+
return offset;
|
20783
|
+
}
|
20784
|
+
let fixedEndOffset = 0;
|
20785
|
+
for (const item of items.toReversed()) {
|
20786
|
+
fixedEndOffset = setFixedEndOffset(item, fixedEndOffset);
|
20787
|
+
}
|
20728
20788
|
}
|
20729
20789
|
function parse(items, maxDepth) {
|
20730
20790
|
const headers = [];
|
@@ -20857,7 +20917,6 @@ const makeVDataTableHeadersProps = propsFactory({
|
|
20857
20917
|
color: String,
|
20858
20918
|
disableSort: Boolean,
|
20859
20919
|
fixedHeader: Boolean,
|
20860
|
-
lastFixed: Boolean,
|
20861
20920
|
multiSort: Boolean,
|
20862
20921
|
sortAscIcon: {
|
20863
20922
|
type: IconValue,
|
@@ -20904,11 +20963,12 @@ const VDataTableHeaders = genericComponent()({
|
|
20904
20963
|
loaderClasses
|
20905
20964
|
} = useLoader(props);
|
20906
20965
|
function getFixedStyles(column, y) {
|
20907
|
-
if (!(props.sticky || props.fixedHeader) && !
|
20966
|
+
if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;
|
20967
|
+
const fixedSide = typeof column.fixed === 'string' ? column.fixed : column.fixed ? 'start' : 'none';
|
20908
20968
|
return {
|
20909
20969
|
position: 'sticky',
|
20910
|
-
left:
|
20911
|
-
right:
|
20970
|
+
left: fixedSide === 'start' ? convertToUnit(column.fixedOffset) : undefined,
|
20971
|
+
right: fixedSide === 'end' ? convertToUnit(column.fixedEndOffset) : undefined,
|
20912
20972
|
top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
|
20913
20973
|
};
|
20914
20974
|
}
|
@@ -20968,14 +21028,15 @@ const VDataTableHeaders = genericComponent()({
|
|
20968
21028
|
},
|
20969
21029
|
"colspan": column.colspan,
|
20970
21030
|
"rowspan": column.rowspan,
|
20971
|
-
"onClick": column.sortable ? () => toggleSort(column) : undefined,
|
20972
21031
|
"fixed": column.fixed,
|
20973
21032
|
"nowrap": column.nowrap,
|
20974
21033
|
"lastFixed": column.lastFixed,
|
20975
|
-
"
|
20976
|
-
|
20977
|
-
"
|
20978
|
-
|
21034
|
+
"firstFixedEnd": column.firstFixedEnd,
|
21035
|
+
"noPadding": noPadding,
|
21036
|
+
"tabindex": column.sortable ? 0 : undefined,
|
21037
|
+
"onClick": column.sortable ? () => toggleSort(column) : undefined,
|
21038
|
+
"onKeydown": column.sortable ? event => handleEnterKeyPress(event, column) : undefined
|
21039
|
+
}, headerProps), {
|
20979
21040
|
default: () => {
|
20980
21041
|
const columnSlotName = `header.${column.key}`;
|
20981
21042
|
const columnSlotProps = {
|
@@ -21251,7 +21312,9 @@ const VDataTableRow = genericComponent()({
|
|
21251
21312
|
},
|
21252
21313
|
"fixed": column.fixed,
|
21253
21314
|
"fixedOffset": column.fixedOffset,
|
21315
|
+
"fixedEndOffset": column.fixedEndOffset,
|
21254
21316
|
"lastFixed": column.lastFixed,
|
21317
|
+
"firstFixedEnd": column.firstFixedEnd,
|
21255
21318
|
"maxWidth": !mobile.value ? column.maxWidth : undefined,
|
21256
21319
|
"noPadding": column.key === 'data-table-select' || column.key === 'data-table-expand',
|
21257
21320
|
"nowrap": column.nowrap,
|
@@ -22661,13 +22724,9 @@ function useCalendar(props) {
|
|
22661
22724
|
const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));
|
22662
22725
|
return adapter.setMonth(date, value);
|
22663
22726
|
}, v => adapter.getMonth(v));
|
22664
|
-
const weekDays = computed(() => {
|
22665
|
-
const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
|
22666
|
-
return props.weekdays.map(day => (day + firstDayOfWeek) % 7);
|
22667
|
-
});
|
22668
22727
|
const weekdayLabels = computed(() => {
|
22669
|
-
const
|
22670
|
-
return
|
22728
|
+
const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
|
22729
|
+
return adapter.getWeekdays(props.firstDayOfWeek, props.weekdayFormat).filter((_, i) => props.weekdays.includes((i + firstDayOfWeek) % 7));
|
22671
22730
|
});
|
22672
22731
|
const weeksInMonth = computed(() => {
|
22673
22732
|
const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
|
@@ -22691,13 +22750,14 @@ function useCalendar(props) {
|
|
22691
22750
|
});
|
22692
22751
|
function genDays(days, today) {
|
22693
22752
|
return days.filter(date => {
|
22694
|
-
return
|
22753
|
+
return props.weekdays.includes(adapter.toJsDate(date).getDay());
|
22695
22754
|
}).map((date, index) => {
|
22696
22755
|
const isoDate = adapter.toISO(date);
|
22697
22756
|
const isAdjacent = !adapter.isSameMonth(date, month.value);
|
22698
22757
|
const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value));
|
22699
22758
|
const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value));
|
22700
22759
|
const isSame = adapter.isSameDay(date, month.value);
|
22760
|
+
const weekdaysCount = props.weekdays.length;
|
22701
22761
|
return {
|
22702
22762
|
date,
|
22703
22763
|
formatted: adapter.format(date, 'keyboardDate'),
|
@@ -22709,8 +22769,8 @@ function useCalendar(props) {
|
|
22709
22769
|
isSelected: model.value.some(value => adapter.isSameDay(date, value)),
|
22710
22770
|
isStart,
|
22711
22771
|
isToday: adapter.isSameDay(date, today),
|
22712
|
-
isWeekEnd: index %
|
22713
|
-
isWeekStart: index %
|
22772
|
+
isWeekEnd: index % weekdaysCount === weekdaysCount - 1,
|
22773
|
+
isWeekStart: index % weekdaysCount === 0,
|
22714
22774
|
isoDate,
|
22715
22775
|
localized: adapter.format(date, 'dayOfMonth'),
|
22716
22776
|
month: adapter.getMonth(date),
|
@@ -22757,7 +22817,6 @@ function useCalendar(props) {
|
|
22757
22817
|
genDays,
|
22758
22818
|
model,
|
22759
22819
|
weeksInMonth,
|
22760
|
-
weekDays,
|
22761
22820
|
weekdayLabels,
|
22762
22821
|
weekNumbers
|
22763
22822
|
};
|
@@ -22798,7 +22857,6 @@ const VDatePickerMonth = genericComponent()({
|
|
22798
22857
|
daysInMonth,
|
22799
22858
|
model,
|
22800
22859
|
weekNumbers,
|
22801
|
-
weekDays,
|
22802
22860
|
weekdayLabels
|
22803
22861
|
} = useCalendar(props);
|
22804
22862
|
const adapter = useDate();
|
@@ -22873,7 +22931,7 @@ const VDatePickerMonth = genericComponent()({
|
|
22873
22931
|
useRender(() => createElementVNode("div", {
|
22874
22932
|
"class": "v-date-picker-month",
|
22875
22933
|
"style": {
|
22876
|
-
'--v-date-picker-days-in-week':
|
22934
|
+
'--v-date-picker-days-in-week': props.weekdays.length
|
22877
22935
|
}
|
22878
22936
|
}, [props.showWeek && createElementVNode("div", {
|
22879
22937
|
"key": "weeks",
|
@@ -26044,19 +26102,21 @@ const VOtpInput = genericComponent()({
|
|
26044
26102
|
const contentRef = ref();
|
26045
26103
|
const inputRef = ref([]);
|
26046
26104
|
const current = computed(() => inputRef.value[focusIndex.value]);
|
26047
|
-
|
26048
|
-
|
26049
|
-
|
26050
|
-
|
26051
|
-
|
26052
|
-
|
26053
|
-
|
26054
|
-
|
26055
|
-
|
26056
|
-
|
26057
|
-
|
26058
|
-
|
26059
|
-
|
26105
|
+
useToggleScope(() => props.autofocus, () => {
|
26106
|
+
const intersectScope = effectScope();
|
26107
|
+
intersectScope.run(() => {
|
26108
|
+
const {
|
26109
|
+
intersectionRef,
|
26110
|
+
isIntersecting
|
26111
|
+
} = useIntersectionObserver();
|
26112
|
+
watchEffect(() => {
|
26113
|
+
intersectionRef.value = inputRef.value[0];
|
26114
|
+
});
|
26115
|
+
watch(isIntersecting, v => {
|
26116
|
+
if (!v) return;
|
26117
|
+
intersectionRef.value?.focus();
|
26118
|
+
intersectScope.stop();
|
26119
|
+
});
|
26060
26120
|
});
|
26061
26121
|
});
|
26062
26122
|
function onInput() {
|
@@ -30107,7 +30167,7 @@ const VTreeviewItem = genericComponent()({
|
|
30107
30167
|
return createVNode(VListItem, mergeProps({
|
30108
30168
|
"ref": vListItemRef
|
30109
30169
|
}, listItemProps, {
|
30110
|
-
"active": vListItemRef.value?.isActivated,
|
30170
|
+
"active": vListItemRef.value?.isActivated || undefined,
|
30111
30171
|
"class": ['v-treeview-item', {
|
30112
30172
|
'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,
|
30113
30173
|
'v-treeview-item--filtered': isFiltered.value
|
@@ -30319,10 +30379,7 @@ const makeVTreeviewProps = propsFactory({
|
|
30319
30379
|
expandIcon: '$treeviewExpand',
|
30320
30380
|
slim: true
|
30321
30381
|
}), ['itemType', 'nav', 'openStrategy']),
|
30322
|
-
modelValue:
|
30323
|
-
type: Array,
|
30324
|
-
default: () => []
|
30325
|
-
}
|
30382
|
+
modelValue: Array
|
30326
30383
|
}, 'VTreeview');
|
30327
30384
|
const VTreeview = genericComponent()({
|
30328
30385
|
name: 'VTreeview',
|
@@ -30337,7 +30394,8 @@ const VTreeview = genericComponent()({
|
|
30337
30394
|
},
|
30338
30395
|
setup(props, _ref) {
|
30339
30396
|
let {
|
30340
|
-
slots
|
30397
|
+
slots,
|
30398
|
+
emit
|
30341
30399
|
} = _ref;
|
30342
30400
|
const {
|
30343
30401
|
items
|
@@ -30346,13 +30404,12 @@ const VTreeview = genericComponent()({
|
|
30346
30404
|
const baseColor = toRef(() => props.baseColor);
|
30347
30405
|
const color = toRef(() => props.color);
|
30348
30406
|
const activated = useProxiedModel(props, 'activated');
|
30349
|
-
const
|
30350
|
-
const _selected = useProxiedModel(props, 'selected', props.modelValue);
|
30407
|
+
const _selected = useProxiedModel(props, 'selected');
|
30351
30408
|
const selected = computed({
|
30352
|
-
get: () => _selected.value,
|
30409
|
+
get: () => props.modelValue ?? _selected.value,
|
30353
30410
|
set(val) {
|
30354
30411
|
_selected.value = val;
|
30355
|
-
|
30412
|
+
emit('update:modelValue', val);
|
30356
30413
|
}
|
30357
30414
|
});
|
30358
30415
|
const vListRef = ref();
|
@@ -30524,7 +30581,7 @@ const VCalendarIntervalEvent = genericComponent()({
|
|
30524
30581
|
}
|
30525
30582
|
};
|
30526
30583
|
useRender(() => {
|
30527
|
-
return createElementVNode("div", null, [slots
|
30584
|
+
return createElementVNode("div", null, [slots['interval-event']?.({
|
30528
30585
|
height: calcHeight().height,
|
30529
30586
|
margin: calcHeight().margin,
|
30530
30587
|
eventClass: 'v-calendar-internal-event',
|
@@ -30621,13 +30678,13 @@ const VCalendarInterval = genericComponent()({
|
|
30621
30678
|
"style": normalizeStyle(`height: ${convertToUnit(props.intervalHeight)}`)
|
30622
30679
|
}, [createElementVNode("div", mergeProps({
|
30623
30680
|
"class": "v-calendar-day__row-label"
|
30624
|
-
}, getPrefixedEventHandlers(attrs, ':time', () => props)), [slots
|
30681
|
+
}, getPrefixedEventHandlers(attrs, ':time', () => props)), [slots['interval-title']?.({
|
30625
30682
|
interval: interval.value
|
30626
30683
|
}) ?? (props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : '12 AM')]), createElementVNode("div", {
|
30627
30684
|
"class": "v-calendar-day__row-hairline"
|
30628
30685
|
}, null), createElementVNode("div", mergeProps({
|
30629
30686
|
"class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
|
30630
|
-
}, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots
|
30687
|
+
}, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots['interval-body']?.({
|
30631
30688
|
interval: interval.value
|
30632
30689
|
}) ?? createElementVNode("div", null, [interval.value.events?.map(event => createVNode(VCalendarIntervalEvent, mergeProps({
|
30633
30690
|
"event": event,
|
@@ -30636,8 +30693,8 @@ const VCalendarInterval = genericComponent()({
|
|
30636
30693
|
"intervalDuration": props.intervalDuration,
|
30637
30694
|
"intervalHeight": props.intervalHeight
|
30638
30695
|
}, attrs), {
|
30639
|
-
...(slots
|
30640
|
-
|
30696
|
+
...(slots['interval-event'] ? {
|
30697
|
+
'interval-event': _ref2 => {
|
30641
30698
|
let {
|
30642
30699
|
height,
|
30643
30700
|
margin,
|
@@ -30645,7 +30702,7 @@ const VCalendarInterval = genericComponent()({
|
|
30645
30702
|
event,
|
30646
30703
|
interval
|
30647
30704
|
} = _ref2;
|
30648
|
-
return slots
|
30705
|
+
return slots['interval-event']?.({
|
30649
30706
|
height,
|
30650
30707
|
margin,
|
30651
30708
|
eventClass,
|
@@ -30659,7 +30716,7 @@ const VCalendarInterval = genericComponent()({
|
|
30659
30716
|
"style": normalizeStyle(`height: ${convertToUnit(props.intervalHeight)}`)
|
30660
30717
|
}, [createElementVNode("div", mergeProps({
|
30661
30718
|
"class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
|
30662
|
-
}, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots
|
30719
|
+
}, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots['interval-body']?.({
|
30663
30720
|
interval: interval.value
|
30664
30721
|
}) ?? interval.value.events?.map(event => createVNode(VCalendarIntervalEvent, mergeProps({
|
30665
30722
|
"event": event,
|
@@ -30668,8 +30725,8 @@ const VCalendarInterval = genericComponent()({
|
|
30668
30725
|
"intervalDuration": props.intervalDuration,
|
30669
30726
|
"intervalHeight": props.intervalHeight
|
30670
30727
|
}, attrs), {
|
30671
|
-
...(slots
|
30672
|
-
|
30728
|
+
...(slots['interval-event'] ? {
|
30729
|
+
'interval-event': _ref3 => {
|
30673
30730
|
let {
|
30674
30731
|
height,
|
30675
30732
|
margin,
|
@@ -30677,7 +30734,7 @@ const VCalendarInterval = genericComponent()({
|
|
30677
30734
|
event,
|
30678
30735
|
interval
|
30679
30736
|
} = _ref3;
|
30680
|
-
return slots
|
30737
|
+
return slots['interval-event']?.({
|
30681
30738
|
height,
|
30682
30739
|
margin,
|
30683
30740
|
eventClass,
|
@@ -30732,7 +30789,7 @@ const VCalendarDay = genericComponent()({
|
|
30732
30789
|
}), null)])]), intervals.value.map((_, index) => slots.interval?.(calendarIntervalProps) ?? createVNode(VCalendarInterval, mergeProps({
|
30733
30790
|
"index": index
|
30734
30791
|
}, calendarIntervalProps, attrs, getPrefixedEventHandlers(attrs, ':interval', () => calendarIntervalProps)), {
|
30735
|
-
...pick(slots, ['
|
30792
|
+
...pick(slots, ['interval-body', 'interval-event', 'interval-title'])
|
30736
30793
|
}))]);
|
30737
30794
|
});
|
30738
30795
|
return {
|
@@ -30876,7 +30933,7 @@ const VCalendarMonthDay = genericComponent()({
|
|
30876
30933
|
}, getPrefixedEventHandlers(attrs, ':day', () => props)), [!props.day?.isHidden ? createElementVNode("div", {
|
30877
30934
|
"key": "title",
|
30878
30935
|
"class": "v-calendar-weekly__day-label"
|
30879
|
-
}, [slots
|
30936
|
+
}, [slots['day-title']?.({
|
30880
30937
|
title: props.title
|
30881
30938
|
}) ?? createVNode(VBtn, mergeProps({
|
30882
30939
|
"class": props.day?.isToday ? 'v-calendar-weekly__day-label__today' : undefined,
|
@@ -30889,12 +30946,12 @@ const VCalendarMonthDay = genericComponent()({
|
|
30889
30946
|
}, getPrefixedEventHandlers(attrs, ':date', () => props)), null)]) : undefined, !props.day?.isHidden ? createElementVNode("div", {
|
30890
30947
|
"key": "content",
|
30891
30948
|
"class": "v-calendar-weekly__day-content"
|
30892
|
-
}, [slots
|
30949
|
+
}, [slots['day-body']?.({
|
30893
30950
|
day: props.day,
|
30894
30951
|
events: props.events
|
30895
30952
|
}) ?? createElementVNode("div", null, [createElementVNode("div", {
|
30896
30953
|
"class": "v-calendar-weekly__day-alldayevents-container"
|
30897
|
-
}, [props.events?.filter(event => event.allDay).map(event => slots
|
30954
|
+
}, [props.events?.filter(event => event.allDay).map(event => slots['day-event'] ? slots['day-event']({
|
30898
30955
|
day: props.day,
|
30899
30956
|
allDay: true,
|
30900
30957
|
event
|
@@ -30904,7 +30961,7 @@ const VCalendarMonthDay = genericComponent()({
|
|
30904
30961
|
"allDay": true
|
30905
30962
|
}, attrs), null))]), createElementVNode("div", {
|
30906
30963
|
"class": "v-calendar-weekly__day-events-container"
|
30907
|
-
}, [props.events?.filter(event => !event.allDay).map(event => slots
|
30964
|
+
}, [props.events?.filter(event => !event.allDay).map(event => slots['day-event'] ? slots['day-event']({
|
30908
30965
|
day: props.day,
|
30909
30966
|
event,
|
30910
30967
|
allDay: false
|
@@ -30949,9 +31006,8 @@ const VCalendar = genericComponent()({
|
|
30949
31006
|
model,
|
30950
31007
|
displayValue,
|
30951
31008
|
weekNumbers,
|
30952
|
-
|
31009
|
+
weekdayLabels
|
30953
31010
|
} = useCalendar(props);
|
30954
|
-
const dayNames = adapter.getWeekdays();
|
30955
31011
|
function onClickNext() {
|
30956
31012
|
if (props.viewMode === 'month') {
|
30957
31013
|
model.value = [adapter.addMonths(displayValue.value, 1)];
|
@@ -30989,6 +31045,7 @@ const VCalendar = genericComponent()({
|
|
30989
31045
|
useRender(() => {
|
30990
31046
|
const calendarDayProps = VCalendarDay.filterProps(props);
|
30991
31047
|
const calendarHeaderProps = VCalendarHeader.filterProps(props);
|
31048
|
+
const weekdaysCount = daysInWeek.value.length;
|
30992
31049
|
return createElementVNode("div", {
|
30993
31050
|
"class": normalizeClass(['v-calendar', {
|
30994
31051
|
'v-calendar-monthly': props.viewMode === 'month',
|
@@ -31010,19 +31067,19 @@ const VCalendar = genericComponent()({
|
|
31010
31067
|
}), {
|
31011
31068
|
title: slots.title
|
31012
31069
|
}))]), createElementVNode("div", {
|
31013
|
-
"class": normalizeClass(['v-calendar__container', `days__${
|
31070
|
+
"class": normalizeClass(['v-calendar__container', `days__${weekdaysCount}`])
|
31014
31071
|
}, [props.viewMode === 'month' && !props.hideDayHeader && createElementVNode("div", {
|
31015
|
-
"class": normalizeClass(['v-calendar-weekly__head', `days__${
|
31072
|
+
"class": normalizeClass(['v-calendar-weekly__head', `days__${weekdaysCount}`, ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : [])]),
|
31016
31073
|
"key": "calendarWeeklyHead"
|
31017
31074
|
}, [!props.hideWeekNumber ? createElementVNode("div", {
|
31018
31075
|
"key": "weekNumber0",
|
31019
31076
|
"class": "v-calendar-weekly__head-weeknumber"
|
31020
|
-
}, null) : '',
|
31077
|
+
}, null) : '', weekdayLabels.value.map(weekday => createElementVNode("div", {
|
31021
31078
|
"class": normalizeClass(`v-calendar-weekly__head-weekday${!props.hideWeekNumber ? '-with-weeknumber' : ''}`)
|
31022
|
-
}, [
|
31079
|
+
}, [weekday]))]), props.viewMode === 'month' && createElementVNode("div", {
|
31023
31080
|
"key": "VCalendarMonth",
|
31024
|
-
"class": normalizeClass(['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${
|
31025
|
-
}, [chunkArray(daysInMonth.value,
|
31081
|
+
"class": normalizeClass(['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${weekdaysCount}`, ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : [])])
|
31082
|
+
}, [chunkArray(daysInMonth.value, weekdaysCount).map((week, wi) => [!props.hideWeekNumber ? createElementVNode("div", mergeProps({
|
31026
31083
|
"class": "v-calendar-month__weeknumber"
|
31027
31084
|
}, getPrefixedEventHandlers(attrs, ':weekNumber', () => ({
|
31028
31085
|
weekNumber: weekNumbers.value[wi],
|
@@ -31045,7 +31102,7 @@ const VCalendar = genericComponent()({
|
|
31045
31102
|
"dayIndex": i,
|
31046
31103
|
"events": props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date))
|
31047
31104
|
}, attrs), {
|
31048
|
-
...pick(slots, ['interval', '
|
31105
|
+
...pick(slots, ['interval', 'interval-body', 'interval-event', 'interval-title'])
|
31049
31106
|
})), props.viewMode === 'day' && (slots['day-interval'] ? slots['day-interval']({
|
31050
31107
|
day: genDays([displayValue.value], adapter.date())[0],
|
31051
31108
|
dayIndex: 0,
|
@@ -31960,6 +32017,7 @@ const VIconBtn = genericComponent()({
|
|
31960
32017
|
opacity: props.opacity
|
31961
32018
|
};
|
31962
32019
|
return createVNode(props.tag, {
|
32020
|
+
"type": props.tag === 'button' ? 'button' : undefined,
|
31963
32021
|
"class": normalizeClass([{
|
31964
32022
|
'v-icon-btn': true,
|
31965
32023
|
'v-icon-btn--active': isActive.value,
|
@@ -33522,7 +33580,7 @@ function createVuetify$1() {
|
|
33522
33580
|
};
|
33523
33581
|
});
|
33524
33582
|
}
|
33525
|
-
const version$1 = "3.9.0-beta.1-dev.2025-
|
33583
|
+
const version$1 = "3.9.0-beta.1-dev.2025-07-04";
|
33526
33584
|
createVuetify$1.version = version$1;
|
33527
33585
|
|
33528
33586
|
// Vue's inject() can only be used in setup
|
@@ -33820,7 +33878,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
33820
33878
|
|
33821
33879
|
/* eslint-disable local-rules/sort-imports */
|
33822
33880
|
|
33823
|
-
const version = "3.9.0-beta.1-dev.2025-
|
33881
|
+
const version = "3.9.0-beta.1-dev.2025-07-04";
|
33824
33882
|
|
33825
33883
|
/* eslint-disable local-rules/sort-imports */
|
33826
33884
|
|