vuetify 3.8.9 → 3.8.11
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/dist/json/attributes.json +3247 -3239
- package/dist/json/importMap-labs.json +22 -22
- package/dist/json/importMap.json +180 -180
- package/dist/json/tags.json +2 -0
- package/dist/json/web-types.json +6004 -5986
- package/dist/vuetify-labs.cjs +104 -55
- package/dist/vuetify-labs.css +5367 -5364
- package/dist/vuetify-labs.d.ts +70 -60
- package/dist/vuetify-labs.esm.js +104 -55
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +104 -55
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +98 -54
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4065 -4062
- package/dist/vuetify.d.ts +65 -60
- package/dist/vuetify.esm.js +98 -54
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +98 -54
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +413 -410
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VBtn/VBtn.css +3 -0
- package/lib/components/VBtn/VBtn.sass +5 -0
- package/lib/components/VBtnGroup/VBtnGroup.css +2 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +2 -1
- package/lib/components/VCarousel/VCarousel.css +0 -1
- package/lib/components/VCarousel/VCarousel.js +1 -0
- package/lib/components/VCarousel/VCarousel.js.map +1 -1
- package/lib/components/VCarousel/VCarousel.sass +0 -1
- package/lib/components/VDataTable/VDataTable.css +6 -3
- package/lib/components/VDataTable/VDataTable.sass +4 -2
- package/lib/components/VDatePicker/VDatePicker.js +19 -13
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.css +3 -8
- package/lib/components/VDatePicker/VDatePickerMonth.js +8 -3
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.sass +3 -8
- package/lib/components/VDatePicker/VDatePickerYears.js +1 -3
- package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/lib/components/VList/VList.js +1 -1
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListChildren.js +4 -3
- package/lib/components/VList/VListChildren.js.map +1 -1
- package/lib/components/VList/VListGroup.d.ts +10 -0
- package/lib/components/VList/VListGroup.js +2 -2
- package/lib/components/VList/VListGroup.js.map +1 -1
- package/lib/components/VList/VListItem.css +2 -0
- package/lib/components/VList/VListItem.sass +2 -0
- package/lib/components/VList/_variables.scss +1 -0
- package/lib/components/VNumberInput/VNumberInput.js +4 -10
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VNumberInput/hold.js +4 -0
- package/lib/components/VNumberInput/hold.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +17 -1
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.css +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.sass +3 -1
- package/lib/components/VTextField/VTextField.js +4 -4
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.js +4 -4
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/composables/autofocus.d.ts +7 -0
- package/lib/composables/autofocus.js +10 -0
- package/lib/composables/autofocus.js.map +1 -0
- package/lib/composables/calendar.d.ts +1 -0
- package/lib/composables/calendar.js +7 -3
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/group.js +1 -0
- package/lib/composables/group.js.map +1 -1
- package/lib/composables/hotkey.d.ts +9 -0
- package/lib/composables/hotkey.js +131 -0
- package/lib/composables/hotkey.js.map +1 -0
- package/lib/composables/intersectionObserver.js +2 -2
- package/lib/composables/intersectionObserver.js.map +1 -1
- package/lib/composables/selectLink.js +2 -2
- package/lib/composables/selectLink.js.map +1 -1
- package/lib/composables/transition.js +3 -3
- package/lib/composables/transition.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +60 -60
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUploadItem.js +1 -0
- package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js +3 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.js +2 -1
- package/lib/labs/VTreeview/VTreeviewChildren.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewGroup.d.ts +10 -0
- package/lib/labs/VTreeview/VTreeviewItem.js +1 -0
- package/lib/labs/VTreeview/VTreeviewItem.js.map +1 -1
- package/lib/util/helpers.d.ts +3 -0
- package/lib/util/helpers.js +7 -0
- package/lib/util/helpers.js.map +1 -1
- package/package.json +8 -8
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.8.
|
|
2
|
+
* Vuetify v3.8.11
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -536,6 +536,13 @@
|
|
|
536
536
|
}
|
|
537
537
|
return out;
|
|
538
538
|
}
|
|
539
|
+
function onlyDefinedProps(props) {
|
|
540
|
+
const booleanAttributes = ['checked', 'disabled'];
|
|
541
|
+
return Object.fromEntries(Object.entries(props).filter(_ref => {
|
|
542
|
+
let [key, v] = _ref;
|
|
543
|
+
return booleanAttributes.includes(key) ? !!v : v !== undefined;
|
|
544
|
+
}));
|
|
545
|
+
}
|
|
539
546
|
|
|
540
547
|
// Utilities
|
|
541
548
|
const block = ['top', 'bottom'];
|
|
@@ -860,7 +867,7 @@
|
|
|
860
867
|
// WoB should always return negative value.
|
|
861
868
|
|
|
862
869
|
const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB;
|
|
863
|
-
outputContrast = SAPC > -
|
|
870
|
+
outputContrast = SAPC > -loClip ? 0.0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;
|
|
864
871
|
}
|
|
865
872
|
return outputContrast * 100;
|
|
866
873
|
}
|
|
@@ -3812,10 +3819,10 @@
|
|
|
3812
3819
|
} = isObject(transition) ? transition : {};
|
|
3813
3820
|
let transitionProps;
|
|
3814
3821
|
if (isObject(transition)) {
|
|
3815
|
-
transitionProps = vue.mergeProps(customProps,
|
|
3822
|
+
transitionProps = vue.mergeProps(customProps, onlyDefinedProps({
|
|
3816
3823
|
disabled,
|
|
3817
3824
|
group
|
|
3818
|
-
})
|
|
3825
|
+
}), rest);
|
|
3819
3826
|
} else {
|
|
3820
3827
|
transitionProps = vue.mergeProps({
|
|
3821
3828
|
name: disabled || !transition ? '' : transition
|
|
@@ -4884,6 +4891,7 @@
|
|
|
4884
4891
|
} else {
|
|
4885
4892
|
const isSelected = selected.value.includes(id);
|
|
4886
4893
|
if (props.mandatory && isSelected) return;
|
|
4894
|
+
if (!isSelected && !value) return;
|
|
4887
4895
|
selected.value = value ?? !isSelected ? [id] : [];
|
|
4888
4896
|
}
|
|
4889
4897
|
}
|
|
@@ -5109,7 +5117,7 @@
|
|
|
5109
5117
|
const observer = new IntersectionObserver(entries => {
|
|
5110
5118
|
isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
|
|
5111
5119
|
}, options);
|
|
5112
|
-
vue.
|
|
5120
|
+
vue.onScopeDispose(() => {
|
|
5113
5121
|
observer.disconnect();
|
|
5114
5122
|
});
|
|
5115
5123
|
vue.watch(intersectionRef, (newValue, oldValue) => {
|
|
@@ -5640,9 +5648,9 @@
|
|
|
5640
5648
|
|
|
5641
5649
|
function useSelectLink(link, select) {
|
|
5642
5650
|
vue.watch(() => link.isActive?.value, isActive => {
|
|
5643
|
-
if (link.isLink.value && isActive && select) {
|
|
5651
|
+
if (link.isLink.value && isActive != null && select) {
|
|
5644
5652
|
vue.nextTick(() => {
|
|
5645
|
-
select(
|
|
5653
|
+
select(isActive);
|
|
5646
5654
|
});
|
|
5647
5655
|
}
|
|
5648
5656
|
}, {
|
|
@@ -9256,6 +9264,7 @@
|
|
|
9256
9264
|
type: IconValue,
|
|
9257
9265
|
default: '$expand'
|
|
9258
9266
|
},
|
|
9267
|
+
rawId: [String, Number],
|
|
9259
9268
|
prependIcon: IconValue,
|
|
9260
9269
|
appendIcon: IconValue,
|
|
9261
9270
|
fluid: Boolean,
|
|
@@ -9277,13 +9286,12 @@
|
|
|
9277
9286
|
open,
|
|
9278
9287
|
id: _id
|
|
9279
9288
|
} = useNestedItem(() => props.value, true);
|
|
9280
|
-
const id = vue.computed(() => `v-list-group--id-${String(_id.value)}`);
|
|
9289
|
+
const id = vue.computed(() => `v-list-group--id-${String(props.rawId ?? _id.value)}`);
|
|
9281
9290
|
const list = useList();
|
|
9282
9291
|
const {
|
|
9283
9292
|
isBooted
|
|
9284
9293
|
} = useSsrBoot();
|
|
9285
9294
|
function onClick(e) {
|
|
9286
|
-
e.stopPropagation();
|
|
9287
9295
|
if (['INPUT', 'TEXTAREA'].includes(e.target?.tagName)) return;
|
|
9288
9296
|
open(!isOpen.value, e);
|
|
9289
9297
|
}
|
|
@@ -9801,9 +9809,10 @@
|
|
|
9801
9809
|
}) : undefined
|
|
9802
9810
|
};
|
|
9803
9811
|
const listGroupProps = VListGroup.filterProps(itemProps);
|
|
9804
|
-
return children ? vue.createVNode(VListGroup, vue.mergeProps({
|
|
9805
|
-
"value": itemProps?.value
|
|
9806
|
-
|
|
9812
|
+
return children ? vue.createVNode(VListGroup, vue.mergeProps(listGroupProps, {
|
|
9813
|
+
"value": props.returnObject ? item : itemProps?.value,
|
|
9814
|
+
"rawId": itemProps?.value
|
|
9815
|
+
}), {
|
|
9807
9816
|
activator: _ref3 => {
|
|
9808
9817
|
let {
|
|
9809
9818
|
props: activatorProps
|
|
@@ -9982,7 +9991,7 @@
|
|
|
9982
9991
|
function transformItem$2(props, item) {
|
|
9983
9992
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
|
9984
9993
|
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
|
9985
|
-
const value = getPropertyFromItem(item, props.itemValue, undefined);
|
|
9994
|
+
const value = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemValue, undefined);
|
|
9986
9995
|
const children = getPropertyFromItem(item, props.itemChildren);
|
|
9987
9996
|
const itemProps = props.itemProps === true ? omit(item, ['children']) : getPropertyFromItem(item, props.itemProps);
|
|
9988
9997
|
const _props = {
|
|
@@ -12331,6 +12340,16 @@
|
|
|
12331
12340
|
}
|
|
12332
12341
|
});
|
|
12333
12342
|
|
|
12343
|
+
function useAutofocus(props) {
|
|
12344
|
+
function onIntersect(isIntersecting, entries) {
|
|
12345
|
+
if (!props.autofocus || !isIntersecting) return;
|
|
12346
|
+
entries[0].target?.focus?.();
|
|
12347
|
+
}
|
|
12348
|
+
return {
|
|
12349
|
+
onIntersect
|
|
12350
|
+
};
|
|
12351
|
+
}
|
|
12352
|
+
|
|
12334
12353
|
// Types
|
|
12335
12354
|
|
|
12336
12355
|
const activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];
|
|
@@ -12377,6 +12396,9 @@
|
|
|
12377
12396
|
focus,
|
|
12378
12397
|
blur
|
|
12379
12398
|
} = useFocus(props);
|
|
12399
|
+
const {
|
|
12400
|
+
onIntersect
|
|
12401
|
+
} = useAutofocus(props);
|
|
12380
12402
|
const counterValue = vue.computed(() => {
|
|
12381
12403
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;
|
|
12382
12404
|
});
|
|
@@ -12386,10 +12408,6 @@
|
|
|
12386
12408
|
return props.counter;
|
|
12387
12409
|
});
|
|
12388
12410
|
const isPlainOrUnderlined = vue.computed(() => ['plain', 'underlined'].includes(props.variant));
|
|
12389
|
-
function onIntersect(isIntersecting, entries) {
|
|
12390
|
-
if (!props.autofocus || !isIntersecting) return;
|
|
12391
|
-
entries[0].target?.focus?.();
|
|
12392
|
-
}
|
|
12393
12411
|
const vInputRef = vue.ref();
|
|
12394
12412
|
const vFieldRef = vue.ref();
|
|
12395
12413
|
const inputRef = vue.ref();
|
|
@@ -15481,6 +15499,7 @@
|
|
|
15481
15499
|
}) : vue.createVNode(VBtn, vue.mergeProps(item, props), null);
|
|
15482
15500
|
})]
|
|
15483
15501
|
})]), props.progress && vue.createVNode(VProgressLinear, {
|
|
15502
|
+
"absolute": true,
|
|
15484
15503
|
"class": "v-carousel__progress",
|
|
15485
15504
|
"color": typeof props.progress === 'string' ? props.progress : undefined,
|
|
15486
15505
|
"modelValue": (group.getItemIndex(model.value) + 1) / group.items.value.length * 100
|
|
@@ -22361,8 +22380,11 @@
|
|
|
22361
22380
|
}, v => adapter.getMonth(v));
|
|
22362
22381
|
const weekDays = vue.computed(() => {
|
|
22363
22382
|
const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
|
|
22364
|
-
|
|
22365
|
-
|
|
22383
|
+
return props.weekdays.map(day => (day + firstDayOfWeek) % 7);
|
|
22384
|
+
});
|
|
22385
|
+
const weekdayLabels = vue.computed(() => {
|
|
22386
|
+
const labels = adapter.getWeekdays(props.firstDayOfWeek);
|
|
22387
|
+
return weekDays.value.map(day => labels[day]);
|
|
22366
22388
|
});
|
|
22367
22389
|
const weeksInMonth = vue.computed(() => {
|
|
22368
22390
|
const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
|
|
@@ -22443,7 +22465,7 @@
|
|
|
22443
22465
|
if (typeof props.allowedDates === 'function') {
|
|
22444
22466
|
return !props.allowedDates(date);
|
|
22445
22467
|
}
|
|
22446
|
-
return
|
|
22468
|
+
return false;
|
|
22447
22469
|
}
|
|
22448
22470
|
return {
|
|
22449
22471
|
displayValue,
|
|
@@ -22453,6 +22475,7 @@
|
|
|
22453
22475
|
model,
|
|
22454
22476
|
weeksInMonth,
|
|
22455
22477
|
weekDays,
|
|
22478
|
+
weekdayLabels,
|
|
22456
22479
|
weekNumbers
|
|
22457
22480
|
};
|
|
22458
22481
|
}
|
|
@@ -22491,7 +22514,9 @@
|
|
|
22491
22514
|
const {
|
|
22492
22515
|
daysInMonth,
|
|
22493
22516
|
model,
|
|
22494
|
-
weekNumbers
|
|
22517
|
+
weekNumbers,
|
|
22518
|
+
weekDays,
|
|
22519
|
+
weekdayLabels
|
|
22495
22520
|
} = useCalendar(props);
|
|
22496
22521
|
const adapter = useDate();
|
|
22497
22522
|
const rangeStart = vue.shallowRef();
|
|
@@ -22563,7 +22588,10 @@
|
|
|
22563
22588
|
}
|
|
22564
22589
|
}
|
|
22565
22590
|
useRender(() => vue.createElementVNode("div", {
|
|
22566
|
-
"class": "v-date-picker-month"
|
|
22591
|
+
"class": "v-date-picker-month",
|
|
22592
|
+
"style": {
|
|
22593
|
+
'--v-date-picker-days-in-week': weekDays.value.length
|
|
22594
|
+
}
|
|
22567
22595
|
}, [props.showWeek && vue.createElementVNode("div", {
|
|
22568
22596
|
"key": "weeks",
|
|
22569
22597
|
"class": "v-date-picker-month__weeks"
|
|
@@ -22579,7 +22607,7 @@
|
|
|
22579
22607
|
"ref": daysRef,
|
|
22580
22608
|
"key": daysInMonth.value[0].date?.toString(),
|
|
22581
22609
|
"class": "v-date-picker-month__days"
|
|
22582
|
-
}, [!props.hideWeekdays &&
|
|
22610
|
+
}, [!props.hideWeekdays && weekdayLabels.value.map(weekDay => vue.createElementVNode("div", {
|
|
22583
22611
|
"class": vue.normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
|
|
22584
22612
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
|
22585
22613
|
const slotProps = {
|
|
@@ -22755,9 +22783,7 @@
|
|
|
22755
22783
|
const yearRef = templateRef();
|
|
22756
22784
|
vue.onMounted(async () => {
|
|
22757
22785
|
await vue.nextTick();
|
|
22758
|
-
yearRef.el?.
|
|
22759
|
-
block: 'center'
|
|
22760
|
-
});
|
|
22786
|
+
yearRef.el?.focus();
|
|
22761
22787
|
});
|
|
22762
22788
|
function isYearAllowed(year) {
|
|
22763
22789
|
if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
|
|
@@ -22893,8 +22919,16 @@
|
|
|
22893
22919
|
return value && adapter.isValid(value) ? value : today;
|
|
22894
22920
|
});
|
|
22895
22921
|
const headerColor = vue.toRef(() => props.headerColor ?? props.color);
|
|
22896
|
-
const
|
|
22897
|
-
const
|
|
22922
|
+
const _month = useProxiedModel(props, 'month');
|
|
22923
|
+
const month = vue.computed({
|
|
22924
|
+
get: () => Number(_month.value ?? adapter.getMonth(adapter.startOfMonth(internal.value))),
|
|
22925
|
+
set: v => _month.value = v
|
|
22926
|
+
});
|
|
22927
|
+
const _year = useProxiedModel(props, 'year');
|
|
22928
|
+
const year = vue.computed({
|
|
22929
|
+
get: () => Number(_year.value ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))),
|
|
22930
|
+
set: v => _year.value = v
|
|
22931
|
+
});
|
|
22898
22932
|
const isReversing = vue.shallowRef(false);
|
|
22899
22933
|
const header = vue.computed(() => {
|
|
22900
22934
|
if (props.multiple && model.value.length > 1) {
|
|
@@ -22978,9 +23012,9 @@
|
|
|
22978
23012
|
} else {
|
|
22979
23013
|
year.value++;
|
|
22980
23014
|
month.value = 0;
|
|
22981
|
-
onUpdateYear(
|
|
23015
|
+
onUpdateYear();
|
|
22982
23016
|
}
|
|
22983
|
-
onUpdateMonth(
|
|
23017
|
+
onUpdateMonth();
|
|
22984
23018
|
}
|
|
22985
23019
|
function onClickPrev() {
|
|
22986
23020
|
if (month.value > 0) {
|
|
@@ -22988,9 +23022,9 @@
|
|
|
22988
23022
|
} else {
|
|
22989
23023
|
year.value--;
|
|
22990
23024
|
month.value = 11;
|
|
22991
|
-
onUpdateYear(
|
|
23025
|
+
onUpdateYear();
|
|
22992
23026
|
}
|
|
22993
|
-
onUpdateMonth(
|
|
23027
|
+
onUpdateMonth();
|
|
22994
23028
|
}
|
|
22995
23029
|
function onClickDate() {
|
|
22996
23030
|
viewMode.value = 'month';
|
|
@@ -23001,13 +23035,11 @@
|
|
|
23001
23035
|
function onClickYear() {
|
|
23002
23036
|
viewMode.value = viewMode.value === 'year' ? 'month' : 'year';
|
|
23003
23037
|
}
|
|
23004
|
-
function onUpdateMonth(
|
|
23038
|
+
function onUpdateMonth() {
|
|
23005
23039
|
if (viewMode.value === 'months') onClickMonth();
|
|
23006
|
-
emit('update:month', value);
|
|
23007
23040
|
}
|
|
23008
|
-
function onUpdateYear(
|
|
23041
|
+
function onUpdateYear() {
|
|
23009
23042
|
if (viewMode.value === 'year') onClickYear();
|
|
23010
|
-
emit('update:year', value);
|
|
23011
23043
|
}
|
|
23012
23044
|
vue.watch(model, (val, oldVal) => {
|
|
23013
23045
|
const arrBefore = wrapInArray(oldVal);
|
|
@@ -23019,11 +23051,11 @@
|
|
|
23019
23051
|
const newYear = adapter.getYear(after);
|
|
23020
23052
|
if (newMonth !== month.value) {
|
|
23021
23053
|
month.value = newMonth;
|
|
23022
|
-
onUpdateMonth(
|
|
23054
|
+
onUpdateMonth();
|
|
23023
23055
|
}
|
|
23024
23056
|
if (newYear !== year.value) {
|
|
23025
23057
|
year.value = newYear;
|
|
23026
|
-
onUpdateYear(
|
|
23058
|
+
onUpdateYear();
|
|
23027
23059
|
}
|
|
23028
23060
|
isReversing.value = adapter.isBefore(before, after);
|
|
23029
23061
|
});
|
|
@@ -25177,6 +25209,8 @@
|
|
|
25177
25209
|
function holdStart(value) {
|
|
25178
25210
|
holdStop();
|
|
25179
25211
|
tick(value);
|
|
25212
|
+
window.addEventListener('pointerup', holdStop);
|
|
25213
|
+
document.addEventListener('blur', holdStop);
|
|
25180
25214
|
timeout = window.setTimeout(() => {
|
|
25181
25215
|
interval = window.setInterval(() => tick(value), HOLD_REPEAT);
|
|
25182
25216
|
}, HOLD_DELAY);
|
|
@@ -25184,6 +25218,8 @@
|
|
|
25184
25218
|
function holdStop() {
|
|
25185
25219
|
window.clearTimeout(timeout);
|
|
25186
25220
|
window.clearInterval(interval);
|
|
25221
|
+
window.removeEventListener('pointerup', holdStop);
|
|
25222
|
+
document.removeEventListener('blur', holdStop);
|
|
25187
25223
|
}
|
|
25188
25224
|
function tick(value) {
|
|
25189
25225
|
toggleUpDown(value === 'up');
|
|
@@ -25295,7 +25331,7 @@
|
|
|
25295
25331
|
onClick: onControlClick,
|
|
25296
25332
|
onPointerup: onControlMouseup,
|
|
25297
25333
|
onPointerdown: onUpControlMousedown,
|
|
25298
|
-
onPointercancel:
|
|
25334
|
+
onPointercancel: onControlMouseup
|
|
25299
25335
|
}
|
|
25300
25336
|
};
|
|
25301
25337
|
const decrementSlotProps = {
|
|
@@ -25303,7 +25339,7 @@
|
|
|
25303
25339
|
onClick: onControlClick,
|
|
25304
25340
|
onPointerup: onControlMouseup,
|
|
25305
25341
|
onPointerdown: onDownControlMousedown,
|
|
25306
|
-
onPointercancel:
|
|
25342
|
+
onPointercancel: onControlMouseup
|
|
25307
25343
|
}
|
|
25308
25344
|
};
|
|
25309
25345
|
vue.watch(() => props.precision, () => formatInputValue());
|
|
@@ -25383,7 +25419,6 @@
|
|
|
25383
25419
|
const el = e.currentTarget;
|
|
25384
25420
|
el?.releasePointerCapture(e.pointerId);
|
|
25385
25421
|
e.preventDefault();
|
|
25386
|
-
e.stopPropagation();
|
|
25387
25422
|
holdStop();
|
|
25388
25423
|
}
|
|
25389
25424
|
function onUpControlMousedown(e) {
|
|
@@ -25400,11 +25435,6 @@
|
|
|
25400
25435
|
e.stopPropagation();
|
|
25401
25436
|
holdStart('down');
|
|
25402
25437
|
}
|
|
25403
|
-
function onControlPointerCancel(e) {
|
|
25404
|
-
const el = e.currentTarget;
|
|
25405
|
-
el?.releasePointerCapture(e.pointerId);
|
|
25406
|
-
holdStop();
|
|
25407
|
-
}
|
|
25408
25438
|
function clampModel() {
|
|
25409
25439
|
if (controlsDisabled.value) return;
|
|
25410
25440
|
if (!vTextFieldRef.value) return;
|
|
@@ -25454,7 +25484,7 @@
|
|
|
25454
25484
|
"onClick": onControlClick,
|
|
25455
25485
|
"onPointerdown": onUpControlMousedown,
|
|
25456
25486
|
"onPointerup": onControlMouseup,
|
|
25457
|
-
"onPointercancel":
|
|
25487
|
+
"onPointercancel": onControlMouseup,
|
|
25458
25488
|
"size": controlNodeSize.value,
|
|
25459
25489
|
"tabindex": "-1"
|
|
25460
25490
|
}, null) : vue.createVNode(VDefaultsProvider, {
|
|
@@ -25484,7 +25514,7 @@
|
|
|
25484
25514
|
"onClick": onControlClick,
|
|
25485
25515
|
"onPointerdown": onDownControlMousedown,
|
|
25486
25516
|
"onPointerup": onControlMouseup,
|
|
25487
|
-
"onPointercancel":
|
|
25517
|
+
"onPointercancel": onControlMouseup,
|
|
25488
25518
|
"size": controlNodeSize.value,
|
|
25489
25519
|
"tabindex": "-1"
|
|
25490
25520
|
}, null) : vue.createVNode(VDefaultsProvider, {
|
|
@@ -25631,6 +25661,21 @@
|
|
|
25631
25661
|
const contentRef = vue.ref();
|
|
25632
25662
|
const inputRef = vue.ref([]);
|
|
25633
25663
|
const current = vue.computed(() => inputRef.value[focusIndex.value]);
|
|
25664
|
+
const intersectScope = vue.effectScope();
|
|
25665
|
+
intersectScope.run(() => {
|
|
25666
|
+
const {
|
|
25667
|
+
intersectionRef,
|
|
25668
|
+
isIntersecting
|
|
25669
|
+
} = useIntersectionObserver();
|
|
25670
|
+
vue.watch(isIntersecting, v => {
|
|
25671
|
+
if (!v) return;
|
|
25672
|
+
intersectionRef.value?.focus();
|
|
25673
|
+
intersectScope.stop();
|
|
25674
|
+
});
|
|
25675
|
+
vue.watchEffect(() => {
|
|
25676
|
+
intersectionRef.value = inputRef.value[0];
|
|
25677
|
+
});
|
|
25678
|
+
});
|
|
25634
25679
|
function onInput() {
|
|
25635
25680
|
// The maxlength attribute doesn't work for the number type input, so the text type is used.
|
|
25636
25681
|
// The following logic simulates the behavior of a number input.
|
|
@@ -28377,6 +28422,9 @@
|
|
|
28377
28422
|
focus,
|
|
28378
28423
|
blur
|
|
28379
28424
|
} = useFocus(props);
|
|
28425
|
+
const {
|
|
28426
|
+
onIntersect
|
|
28427
|
+
} = useAutofocus(props);
|
|
28380
28428
|
const counterValue = vue.computed(() => {
|
|
28381
28429
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : (model.value || '').toString().length;
|
|
28382
28430
|
});
|
|
@@ -28385,10 +28433,6 @@
|
|
|
28385
28433
|
if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;
|
|
28386
28434
|
return props.counter;
|
|
28387
28435
|
});
|
|
28388
|
-
function onIntersect(isIntersecting, entries) {
|
|
28389
|
-
if (!props.autofocus || !isIntersecting) return;
|
|
28390
|
-
entries[0].target?.focus?.();
|
|
28391
|
-
}
|
|
28392
28436
|
const vInputRef = vue.ref();
|
|
28393
28437
|
const vFieldRef = vue.ref();
|
|
28394
28438
|
const controlHeight = vue.shallowRef('');
|
|
@@ -29468,7 +29512,7 @@
|
|
|
29468
29512
|
};
|
|
29469
29513
|
});
|
|
29470
29514
|
}
|
|
29471
|
-
const version$1 = "3.8.
|
|
29515
|
+
const version$1 = "3.8.11";
|
|
29472
29516
|
createVuetify$1.version = version$1;
|
|
29473
29517
|
|
|
29474
29518
|
// Vue's inject() can only be used in setup
|
|
@@ -29493,7 +29537,7 @@
|
|
|
29493
29537
|
...options
|
|
29494
29538
|
});
|
|
29495
29539
|
};
|
|
29496
|
-
const version = "3.8.
|
|
29540
|
+
const version = "3.8.11";
|
|
29497
29541
|
createVuetify.version = version;
|
|
29498
29542
|
|
|
29499
29543
|
exports.blueprints = index;
|