@vuetify/nightly 3.8.7-master.2025-05-27 → 3.8.7-master.2025-05-31
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 +13 -3
- package/dist/json/attributes.json +2816 -2792
- package/dist/json/importMap-labs.json +26 -26
- package/dist/json/importMap.json +156 -156
- package/dist/json/tags.json +6 -0
- package/dist/json/web-types.json +5254 -5200
- package/dist/vuetify-labs.cjs +85 -24
- package/dist/vuetify-labs.css +3367 -3367
- package/dist/vuetify-labs.d.ts +89 -55
- package/dist/vuetify-labs.esm.js +85 -24
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +85 -24
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +83 -18
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3390 -3390
- package/dist/vuetify.d.ts +79 -55
- package/dist/vuetify.esm.js +83 -18
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +83 -18
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +25 -16
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.d.ts +20 -0
- package/lib/components/VDatePicker/VDatePicker.js +39 -2
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js +1 -8
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonths.d.ts +10 -0
- package/lib/components/VDatePicker/VDatePickerMonths.js +12 -2
- package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.d.ts +10 -0
- package/lib/components/VDatePicker/VDatePickerYears.js +14 -2
- package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/lib/composables/date/date.d.ts +4 -0
- package/lib/composables/date/date.js +14 -1
- package/lib/composables/date/date.js.map +1 -1
- package/lib/entry-bundler.d.ts +3 -0
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +59 -55
- package/lib/framework.js +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +20 -0
- package/lib/labs/VDateInput/VDateInput.js +3 -7
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/entry-bundler.d.ts +3 -0
- package/package.json +1 -1
package/dist/vuetify-labs.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.7-master.2025-05-
|
2
|
+
* Vuetify v3.8.7-master.2025-05-31
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -17823,7 +17823,20 @@
|
|
17823
17823
|
vue.watch(locale.current, value => {
|
17824
17824
|
instance.locale = options.locale[value] ?? value ?? instance.locale;
|
17825
17825
|
});
|
17826
|
-
return instance
|
17826
|
+
return Object.assign(instance, {
|
17827
|
+
createDateRange(start, stop) {
|
17828
|
+
const diff = instance.getDiff(stop ?? start, start, 'days');
|
17829
|
+
const datesInRange = [start];
|
17830
|
+
for (let i = 1; i < diff; i++) {
|
17831
|
+
const nextDate = instance.addDays(start, i);
|
17832
|
+
datesInRange.push(nextDate);
|
17833
|
+
}
|
17834
|
+
if (stop) {
|
17835
|
+
datesInRange.push(instance.endOfDay(stop));
|
17836
|
+
}
|
17837
|
+
return datesInRange;
|
17838
|
+
}
|
17839
|
+
});
|
17827
17840
|
}
|
17828
17841
|
function useDate() {
|
17829
17842
|
const options = vue.inject(DateOptionsSymbol);
|
@@ -22217,14 +22230,7 @@
|
|
22217
22230
|
} else {
|
22218
22231
|
rangeStop.value = adapter.endOfDay(_value);
|
22219
22232
|
}
|
22220
|
-
|
22221
|
-
const datesInRange = [rangeStart.value];
|
22222
|
-
for (let i = 1; i < diff; i++) {
|
22223
|
-
const nextDate = adapter.addDays(rangeStart.value, i);
|
22224
|
-
datesInRange.push(nextDate);
|
22225
|
-
}
|
22226
|
-
datesInRange.push(rangeStop.value);
|
22227
|
-
model.value = datesInRange;
|
22233
|
+
model.value = adapter.createDateRange(rangeStart.value, rangeStop.value);
|
22228
22234
|
} else {
|
22229
22235
|
rangeStart.value = value;
|
22230
22236
|
rangeStop.value = undefined;
|
@@ -22310,7 +22316,8 @@
|
|
22310
22316
|
min: null,
|
22311
22317
|
max: null,
|
22312
22318
|
modelValue: Number,
|
22313
|
-
year: Number
|
22319
|
+
year: Number,
|
22320
|
+
allowedMonths: [Array, Function]
|
22314
22321
|
}, 'VDatePickerMonths');
|
22315
22322
|
const VDatePickerMonths = genericComponent()({
|
22316
22323
|
name: 'VDatePickerMonths',
|
@@ -22332,7 +22339,7 @@
|
|
22332
22339
|
}
|
22333
22340
|
return createRange(12).map(i => {
|
22334
22341
|
const text = adapter.format(date, 'monthShort');
|
22335
|
-
const isDisabled = !!(props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
|
22342
|
+
const isDisabled = !!(!isMonthAllowed(i) || props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
|
22336
22343
|
date = adapter.getNextMonth(date);
|
22337
22344
|
return {
|
22338
22345
|
isDisabled,
|
@@ -22344,6 +22351,15 @@
|
|
22344
22351
|
vue.watchEffect(() => {
|
22345
22352
|
model.value = model.value ?? adapter.getMonth(adapter.date());
|
22346
22353
|
});
|
22354
|
+
function isMonthAllowed(month) {
|
22355
|
+
if (Array.isArray(props.allowedMonths) && props.allowedMonths.length) {
|
22356
|
+
return props.allowedMonths.includes(month);
|
22357
|
+
}
|
22358
|
+
if (typeof props.allowedMonths === 'function') {
|
22359
|
+
return props.allowedMonths(month);
|
22360
|
+
}
|
22361
|
+
return true;
|
22362
|
+
}
|
22347
22363
|
useRender(() => vue.createElementVNode("div", {
|
22348
22364
|
"class": "v-date-picker-months",
|
22349
22365
|
"style": vue.normalizeStyle({
|
@@ -22389,7 +22405,8 @@
|
|
22389
22405
|
height: [String, Number],
|
22390
22406
|
min: null,
|
22391
22407
|
max: null,
|
22392
|
-
modelValue: Number
|
22408
|
+
modelValue: Number,
|
22409
|
+
allowedYears: [Array, Function]
|
22393
22410
|
}, 'VDatePickerYears');
|
22394
22411
|
const VDatePickerYears = genericComponent()({
|
22395
22412
|
name: 'VDatePickerYears',
|
@@ -22421,7 +22438,8 @@
|
|
22421
22438
|
date = adapter.setYear(date, adapter.getYear(date) + 1);
|
22422
22439
|
return {
|
22423
22440
|
text,
|
22424
|
-
value: i
|
22441
|
+
value: i,
|
22442
|
+
isDisabled: !isYearAllowed(i)
|
22425
22443
|
};
|
22426
22444
|
});
|
22427
22445
|
});
|
@@ -22435,6 +22453,15 @@
|
|
22435
22453
|
block: 'center'
|
22436
22454
|
});
|
22437
22455
|
});
|
22456
|
+
function isYearAllowed(year) {
|
22457
|
+
if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
|
22458
|
+
return props.allowedYears.includes(year);
|
22459
|
+
}
|
22460
|
+
if (typeof props.allowedYears === 'function') {
|
22461
|
+
return props.allowedYears(year);
|
22462
|
+
}
|
22463
|
+
return true;
|
22464
|
+
}
|
22438
22465
|
useRender(() => vue.createElementVNode("div", {
|
22439
22466
|
"class": "v-date-picker-years",
|
22440
22467
|
"style": vue.normalizeStyle({
|
@@ -22449,6 +22476,7 @@
|
|
22449
22476
|
color: model.value === year.value ? props.color : undefined,
|
22450
22477
|
rounded: true,
|
22451
22478
|
text: year.text,
|
22479
|
+
disabled: year.isDisabled,
|
22452
22480
|
variant: model.value === year.value ? 'flat' : 'text',
|
22453
22481
|
onClick: () => {
|
22454
22482
|
if (model.value === year.value) {
|
@@ -22598,6 +22626,41 @@
|
|
22598
22626
|
}
|
22599
22627
|
return targets;
|
22600
22628
|
});
|
22629
|
+
function isAllowedInRange(start, end) {
|
22630
|
+
const allowedDates = props.allowedDates;
|
22631
|
+
if (typeof allowedDates !== 'function') return true;
|
22632
|
+
const days = adapter.getDiff(end, start, 'days');
|
22633
|
+
for (let i = 0; i < days; i++) {
|
22634
|
+
if (allowedDates(adapter.addDays(start, i))) return true;
|
22635
|
+
}
|
22636
|
+
return false;
|
22637
|
+
}
|
22638
|
+
function allowedYears(year) {
|
22639
|
+
if (typeof props.allowedDates === 'function') {
|
22640
|
+
const startOfYear = adapter.parseISO(`${year}-01-01`);
|
22641
|
+
return isAllowedInRange(startOfYear, adapter.endOfYear(startOfYear));
|
22642
|
+
}
|
22643
|
+
if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
|
22644
|
+
for (const date of props.allowedDates) {
|
22645
|
+
if (adapter.getYear(adapter.date(date)) === year) return true;
|
22646
|
+
}
|
22647
|
+
return false;
|
22648
|
+
}
|
22649
|
+
return true;
|
22650
|
+
}
|
22651
|
+
function allowedMonths(month) {
|
22652
|
+
if (typeof props.allowedDates === 'function') {
|
22653
|
+
const startOfMonth = adapter.parseISO(`${year.value}-${month + 1}-01`);
|
22654
|
+
return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth));
|
22655
|
+
}
|
22656
|
+
if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
|
22657
|
+
for (const date of props.allowedDates) {
|
22658
|
+
if (adapter.getYear(adapter.date(date)) === year.value && adapter.getMonth(adapter.date(date)) === month) return true;
|
22659
|
+
}
|
22660
|
+
return false;
|
22661
|
+
}
|
22662
|
+
return true;
|
22663
|
+
}
|
22601
22664
|
|
22602
22665
|
// function onClickAppend () {
|
22603
22666
|
// inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'
|
@@ -22713,14 +22776,16 @@
|
|
22713
22776
|
"onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
|
22714
22777
|
"min": minDate.value,
|
22715
22778
|
"max": maxDate.value,
|
22716
|
-
"year": year.value
|
22779
|
+
"year": year.value,
|
22780
|
+
"allowedMonths": allowedMonths
|
22717
22781
|
}), null) : viewMode.value === 'year' ? vue.createVNode(VDatePickerYears, vue.mergeProps({
|
22718
22782
|
"key": "date-picker-years"
|
22719
22783
|
}, datePickerYearsProps, {
|
22720
22784
|
"modelValue": year.value,
|
22721
22785
|
"onUpdate:modelValue": [$event => year.value = $event, onUpdateYear],
|
22722
22786
|
"min": minDate.value,
|
22723
|
-
"max": maxDate.value
|
22787
|
+
"max": maxDate.value,
|
22788
|
+
"allowedYears": allowedYears
|
22724
22789
|
}), null) : vue.createVNode(VDatePickerMonth, vue.mergeProps({
|
22725
22790
|
"key": "date-picker-month"
|
22726
22791
|
}, datePickerMonthProps, {
|
@@ -29553,18 +29618,14 @@
|
|
29553
29618
|
const parts = value.trim().split(/\D+-\D+|[^\d\-/.]+/);
|
29554
29619
|
if (parts.every(isValid)) {
|
29555
29620
|
if (props.multiple === 'range') {
|
29556
|
-
|
29621
|
+
const [start, stop] = parts.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
|
29622
|
+
model.value = adapter.createDateRange(start, stop);
|
29557
29623
|
} else {
|
29558
29624
|
model.value = parts.map(parseDate);
|
29559
29625
|
}
|
29560
29626
|
}
|
29561
29627
|
}
|
29562
29628
|
}
|
29563
|
-
function getRange(inputDates) {
|
29564
|
-
const [start, stop] = inputDates.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
|
29565
|
-
const diff = adapter.getDiff(stop ?? start, start, 'days');
|
29566
|
-
return [start, ...createRange(diff, 1).map(i => adapter.addDays(start, i))];
|
29567
|
-
}
|
29568
29629
|
useRender(() => {
|
29569
29630
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
29570
29631
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
@@ -32016,7 +32077,7 @@
|
|
32016
32077
|
};
|
32017
32078
|
});
|
32018
32079
|
}
|
32019
|
-
const version$1 = "3.8.7-master.2025-05-
|
32080
|
+
const version$1 = "3.8.7-master.2025-05-31";
|
32020
32081
|
createVuetify$1.version = version$1;
|
32021
32082
|
|
32022
32083
|
// Vue's inject() can only be used in setup
|
@@ -32314,7 +32375,7 @@
|
|
32314
32375
|
|
32315
32376
|
/* eslint-disable local-rules/sort-imports */
|
32316
32377
|
|
32317
|
-
const version = "3.8.7-master.2025-05-
|
32378
|
+
const version = "3.8.7-master.2025-05-31";
|
32318
32379
|
|
32319
32380
|
/* eslint-disable local-rules/sort-imports */
|
32320
32381
|
|