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-labs.cjs
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
|
*/
|
|
@@ -613,6 +613,13 @@
|
|
|
613
613
|
}
|
|
614
614
|
return out;
|
|
615
615
|
}
|
|
616
|
+
function onlyDefinedProps(props) {
|
|
617
|
+
const booleanAttributes = ['checked', 'disabled'];
|
|
618
|
+
return Object.fromEntries(Object.entries(props).filter(_ref => {
|
|
619
|
+
let [key, v] = _ref;
|
|
620
|
+
return booleanAttributes.includes(key) ? !!v : v !== undefined;
|
|
621
|
+
}));
|
|
622
|
+
}
|
|
616
623
|
|
|
617
624
|
// Utilities
|
|
618
625
|
const block = ['top', 'bottom'];
|
|
@@ -937,7 +944,7 @@
|
|
|
937
944
|
// WoB should always return negative value.
|
|
938
945
|
|
|
939
946
|
const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB;
|
|
940
|
-
outputContrast = SAPC > -
|
|
947
|
+
outputContrast = SAPC > -loClip ? 0.0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;
|
|
941
948
|
}
|
|
942
949
|
return outputContrast * 100;
|
|
943
950
|
}
|
|
@@ -3325,10 +3332,10 @@
|
|
|
3325
3332
|
} = isObject(transition) ? transition : {};
|
|
3326
3333
|
let transitionProps;
|
|
3327
3334
|
if (isObject(transition)) {
|
|
3328
|
-
transitionProps = vue.mergeProps(customProps,
|
|
3335
|
+
transitionProps = vue.mergeProps(customProps, onlyDefinedProps({
|
|
3329
3336
|
disabled,
|
|
3330
3337
|
group
|
|
3331
|
-
})
|
|
3338
|
+
}), rest);
|
|
3332
3339
|
} else {
|
|
3333
3340
|
transitionProps = vue.mergeProps({
|
|
3334
3341
|
name: disabled || !transition ? '' : transition
|
|
@@ -4397,6 +4404,7 @@
|
|
|
4397
4404
|
} else {
|
|
4398
4405
|
const isSelected = selected.value.includes(id);
|
|
4399
4406
|
if (props.mandatory && isSelected) return;
|
|
4407
|
+
if (!isSelected && !value) return;
|
|
4400
4408
|
selected.value = value ?? !isSelected ? [id] : [];
|
|
4401
4409
|
}
|
|
4402
4410
|
}
|
|
@@ -4831,7 +4839,7 @@
|
|
|
4831
4839
|
const observer = new IntersectionObserver(entries => {
|
|
4832
4840
|
isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
|
|
4833
4841
|
}, options);
|
|
4834
|
-
vue.
|
|
4842
|
+
vue.onScopeDispose(() => {
|
|
4835
4843
|
observer.disconnect();
|
|
4836
4844
|
});
|
|
4837
4845
|
vue.watch(intersectionRef, (newValue, oldValue) => {
|
|
@@ -5362,9 +5370,9 @@
|
|
|
5362
5370
|
|
|
5363
5371
|
function useSelectLink(link, select) {
|
|
5364
5372
|
vue.watch(() => link.isActive?.value, isActive => {
|
|
5365
|
-
if (link.isLink.value && isActive && select) {
|
|
5373
|
+
if (link.isLink.value && isActive != null && select) {
|
|
5366
5374
|
vue.nextTick(() => {
|
|
5367
|
-
select(
|
|
5375
|
+
select(isActive);
|
|
5368
5376
|
});
|
|
5369
5377
|
}
|
|
5370
5378
|
}, {
|
|
@@ -8978,6 +8986,7 @@
|
|
|
8978
8986
|
type: IconValue,
|
|
8979
8987
|
default: '$expand'
|
|
8980
8988
|
},
|
|
8989
|
+
rawId: [String, Number],
|
|
8981
8990
|
prependIcon: IconValue,
|
|
8982
8991
|
appendIcon: IconValue,
|
|
8983
8992
|
fluid: Boolean,
|
|
@@ -8999,13 +9008,12 @@
|
|
|
8999
9008
|
open,
|
|
9000
9009
|
id: _id
|
|
9001
9010
|
} = useNestedItem(() => props.value, true);
|
|
9002
|
-
const id = vue.computed(() => `v-list-group--id-${String(_id.value)}`);
|
|
9011
|
+
const id = vue.computed(() => `v-list-group--id-${String(props.rawId ?? _id.value)}`);
|
|
9003
9012
|
const list = useList();
|
|
9004
9013
|
const {
|
|
9005
9014
|
isBooted
|
|
9006
9015
|
} = useSsrBoot();
|
|
9007
9016
|
function onClick(e) {
|
|
9008
|
-
e.stopPropagation();
|
|
9009
9017
|
if (['INPUT', 'TEXTAREA'].includes(e.target?.tagName)) return;
|
|
9010
9018
|
open(!isOpen.value, e);
|
|
9011
9019
|
}
|
|
@@ -9523,9 +9531,10 @@
|
|
|
9523
9531
|
}) : undefined
|
|
9524
9532
|
};
|
|
9525
9533
|
const listGroupProps = VListGroup.filterProps(itemProps);
|
|
9526
|
-
return children ? vue.createVNode(VListGroup, vue.mergeProps({
|
|
9527
|
-
"value": itemProps?.value
|
|
9528
|
-
|
|
9534
|
+
return children ? vue.createVNode(VListGroup, vue.mergeProps(listGroupProps, {
|
|
9535
|
+
"value": props.returnObject ? item : itemProps?.value,
|
|
9536
|
+
"rawId": itemProps?.value
|
|
9537
|
+
}), {
|
|
9529
9538
|
activator: _ref3 => {
|
|
9530
9539
|
let {
|
|
9531
9540
|
props: activatorProps
|
|
@@ -9704,7 +9713,7 @@
|
|
|
9704
9713
|
function transformItem$2(props, item) {
|
|
9705
9714
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
|
9706
9715
|
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
|
9707
|
-
const value = getPropertyFromItem(item, props.itemValue, undefined);
|
|
9716
|
+
const value = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemValue, undefined);
|
|
9708
9717
|
const children = getPropertyFromItem(item, props.itemChildren);
|
|
9709
9718
|
const itemProps = props.itemProps === true ? omit(item, ['children']) : getPropertyFromItem(item, props.itemProps);
|
|
9710
9719
|
const _props = {
|
|
@@ -12053,6 +12062,16 @@
|
|
|
12053
12062
|
}
|
|
12054
12063
|
});
|
|
12055
12064
|
|
|
12065
|
+
function useAutofocus(props) {
|
|
12066
|
+
function onIntersect(isIntersecting, entries) {
|
|
12067
|
+
if (!props.autofocus || !isIntersecting) return;
|
|
12068
|
+
entries[0].target?.focus?.();
|
|
12069
|
+
}
|
|
12070
|
+
return {
|
|
12071
|
+
onIntersect
|
|
12072
|
+
};
|
|
12073
|
+
}
|
|
12074
|
+
|
|
12056
12075
|
// Types
|
|
12057
12076
|
|
|
12058
12077
|
const activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];
|
|
@@ -12099,6 +12118,9 @@
|
|
|
12099
12118
|
focus,
|
|
12100
12119
|
blur
|
|
12101
12120
|
} = useFocus(props);
|
|
12121
|
+
const {
|
|
12122
|
+
onIntersect
|
|
12123
|
+
} = useAutofocus(props);
|
|
12102
12124
|
const counterValue = vue.computed(() => {
|
|
12103
12125
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;
|
|
12104
12126
|
});
|
|
@@ -12108,10 +12130,6 @@
|
|
|
12108
12130
|
return props.counter;
|
|
12109
12131
|
});
|
|
12110
12132
|
const isPlainOrUnderlined = vue.computed(() => ['plain', 'underlined'].includes(props.variant));
|
|
12111
|
-
function onIntersect(isIntersecting, entries) {
|
|
12112
|
-
if (!props.autofocus || !isIntersecting) return;
|
|
12113
|
-
entries[0].target?.focus?.();
|
|
12114
|
-
}
|
|
12115
12133
|
const vInputRef = vue.ref();
|
|
12116
12134
|
const vFieldRef = vue.ref();
|
|
12117
12135
|
const inputRef = vue.ref();
|
|
@@ -15203,6 +15221,7 @@
|
|
|
15203
15221
|
}) : vue.createVNode(VBtn, vue.mergeProps(item, props), null);
|
|
15204
15222
|
})]
|
|
15205
15223
|
})]), props.progress && vue.createVNode(VProgressLinear, {
|
|
15224
|
+
"absolute": true,
|
|
15206
15225
|
"class": "v-carousel__progress",
|
|
15207
15226
|
"color": typeof props.progress === 'string' ? props.progress : undefined,
|
|
15208
15227
|
"modelValue": (group.getItemIndex(model.value) + 1) / group.items.value.length * 100
|
|
@@ -22083,8 +22102,11 @@
|
|
|
22083
22102
|
}, v => adapter.getMonth(v));
|
|
22084
22103
|
const weekDays = vue.computed(() => {
|
|
22085
22104
|
const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
|
|
22086
|
-
|
|
22087
|
-
|
|
22105
|
+
return props.weekdays.map(day => (day + firstDayOfWeek) % 7);
|
|
22106
|
+
});
|
|
22107
|
+
const weekdayLabels = vue.computed(() => {
|
|
22108
|
+
const labels = adapter.getWeekdays(props.firstDayOfWeek);
|
|
22109
|
+
return weekDays.value.map(day => labels[day]);
|
|
22088
22110
|
});
|
|
22089
22111
|
const weeksInMonth = vue.computed(() => {
|
|
22090
22112
|
const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
|
|
@@ -22165,7 +22187,7 @@
|
|
|
22165
22187
|
if (typeof props.allowedDates === 'function') {
|
|
22166
22188
|
return !props.allowedDates(date);
|
|
22167
22189
|
}
|
|
22168
|
-
return
|
|
22190
|
+
return false;
|
|
22169
22191
|
}
|
|
22170
22192
|
return {
|
|
22171
22193
|
displayValue,
|
|
@@ -22175,6 +22197,7 @@
|
|
|
22175
22197
|
model,
|
|
22176
22198
|
weeksInMonth,
|
|
22177
22199
|
weekDays,
|
|
22200
|
+
weekdayLabels,
|
|
22178
22201
|
weekNumbers
|
|
22179
22202
|
};
|
|
22180
22203
|
}
|
|
@@ -22213,7 +22236,9 @@
|
|
|
22213
22236
|
const {
|
|
22214
22237
|
daysInMonth,
|
|
22215
22238
|
model,
|
|
22216
|
-
weekNumbers
|
|
22239
|
+
weekNumbers,
|
|
22240
|
+
weekDays,
|
|
22241
|
+
weekdayLabels
|
|
22217
22242
|
} = useCalendar(props);
|
|
22218
22243
|
const adapter = useDate();
|
|
22219
22244
|
const rangeStart = vue.shallowRef();
|
|
@@ -22285,7 +22310,10 @@
|
|
|
22285
22310
|
}
|
|
22286
22311
|
}
|
|
22287
22312
|
useRender(() => vue.createElementVNode("div", {
|
|
22288
|
-
"class": "v-date-picker-month"
|
|
22313
|
+
"class": "v-date-picker-month",
|
|
22314
|
+
"style": {
|
|
22315
|
+
'--v-date-picker-days-in-week': weekDays.value.length
|
|
22316
|
+
}
|
|
22289
22317
|
}, [props.showWeek && vue.createElementVNode("div", {
|
|
22290
22318
|
"key": "weeks",
|
|
22291
22319
|
"class": "v-date-picker-month__weeks"
|
|
@@ -22301,7 +22329,7 @@
|
|
|
22301
22329
|
"ref": daysRef,
|
|
22302
22330
|
"key": daysInMonth.value[0].date?.toString(),
|
|
22303
22331
|
"class": "v-date-picker-month__days"
|
|
22304
|
-
}, [!props.hideWeekdays &&
|
|
22332
|
+
}, [!props.hideWeekdays && weekdayLabels.value.map(weekDay => vue.createElementVNode("div", {
|
|
22305
22333
|
"class": vue.normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
|
|
22306
22334
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
|
22307
22335
|
const slotProps = {
|
|
@@ -22477,9 +22505,7 @@
|
|
|
22477
22505
|
const yearRef = templateRef();
|
|
22478
22506
|
vue.onMounted(async () => {
|
|
22479
22507
|
await vue.nextTick();
|
|
22480
|
-
yearRef.el?.
|
|
22481
|
-
block: 'center'
|
|
22482
|
-
});
|
|
22508
|
+
yearRef.el?.focus();
|
|
22483
22509
|
});
|
|
22484
22510
|
function isYearAllowed(year) {
|
|
22485
22511
|
if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
|
|
@@ -22615,8 +22641,16 @@
|
|
|
22615
22641
|
return value && adapter.isValid(value) ? value : today;
|
|
22616
22642
|
});
|
|
22617
22643
|
const headerColor = vue.toRef(() => props.headerColor ?? props.color);
|
|
22618
|
-
const
|
|
22619
|
-
const
|
|
22644
|
+
const _month = useProxiedModel(props, 'month');
|
|
22645
|
+
const month = vue.computed({
|
|
22646
|
+
get: () => Number(_month.value ?? adapter.getMonth(adapter.startOfMonth(internal.value))),
|
|
22647
|
+
set: v => _month.value = v
|
|
22648
|
+
});
|
|
22649
|
+
const _year = useProxiedModel(props, 'year');
|
|
22650
|
+
const year = vue.computed({
|
|
22651
|
+
get: () => Number(_year.value ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))),
|
|
22652
|
+
set: v => _year.value = v
|
|
22653
|
+
});
|
|
22620
22654
|
const isReversing = vue.shallowRef(false);
|
|
22621
22655
|
const header = vue.computed(() => {
|
|
22622
22656
|
if (props.multiple && model.value.length > 1) {
|
|
@@ -22700,9 +22734,9 @@
|
|
|
22700
22734
|
} else {
|
|
22701
22735
|
year.value++;
|
|
22702
22736
|
month.value = 0;
|
|
22703
|
-
onUpdateYear(
|
|
22737
|
+
onUpdateYear();
|
|
22704
22738
|
}
|
|
22705
|
-
onUpdateMonth(
|
|
22739
|
+
onUpdateMonth();
|
|
22706
22740
|
}
|
|
22707
22741
|
function onClickPrev() {
|
|
22708
22742
|
if (month.value > 0) {
|
|
@@ -22710,9 +22744,9 @@
|
|
|
22710
22744
|
} else {
|
|
22711
22745
|
year.value--;
|
|
22712
22746
|
month.value = 11;
|
|
22713
|
-
onUpdateYear(
|
|
22747
|
+
onUpdateYear();
|
|
22714
22748
|
}
|
|
22715
|
-
onUpdateMonth(
|
|
22749
|
+
onUpdateMonth();
|
|
22716
22750
|
}
|
|
22717
22751
|
function onClickDate() {
|
|
22718
22752
|
viewMode.value = 'month';
|
|
@@ -22723,13 +22757,11 @@
|
|
|
22723
22757
|
function onClickYear() {
|
|
22724
22758
|
viewMode.value = viewMode.value === 'year' ? 'month' : 'year';
|
|
22725
22759
|
}
|
|
22726
|
-
function onUpdateMonth(
|
|
22760
|
+
function onUpdateMonth() {
|
|
22727
22761
|
if (viewMode.value === 'months') onClickMonth();
|
|
22728
|
-
emit('update:month', value);
|
|
22729
22762
|
}
|
|
22730
|
-
function onUpdateYear(
|
|
22763
|
+
function onUpdateYear() {
|
|
22731
22764
|
if (viewMode.value === 'year') onClickYear();
|
|
22732
|
-
emit('update:year', value);
|
|
22733
22765
|
}
|
|
22734
22766
|
vue.watch(model, (val, oldVal) => {
|
|
22735
22767
|
const arrBefore = wrapInArray(oldVal);
|
|
@@ -22741,11 +22773,11 @@
|
|
|
22741
22773
|
const newYear = adapter.getYear(after);
|
|
22742
22774
|
if (newMonth !== month.value) {
|
|
22743
22775
|
month.value = newMonth;
|
|
22744
|
-
onUpdateMonth(
|
|
22776
|
+
onUpdateMonth();
|
|
22745
22777
|
}
|
|
22746
22778
|
if (newYear !== year.value) {
|
|
22747
22779
|
year.value = newYear;
|
|
22748
|
-
onUpdateYear(
|
|
22780
|
+
onUpdateYear();
|
|
22749
22781
|
}
|
|
22750
22782
|
isReversing.value = adapter.isBefore(before, after);
|
|
22751
22783
|
});
|
|
@@ -24899,6 +24931,8 @@
|
|
|
24899
24931
|
function holdStart(value) {
|
|
24900
24932
|
holdStop();
|
|
24901
24933
|
tick(value);
|
|
24934
|
+
window.addEventListener('pointerup', holdStop);
|
|
24935
|
+
document.addEventListener('blur', holdStop);
|
|
24902
24936
|
timeout = window.setTimeout(() => {
|
|
24903
24937
|
interval = window.setInterval(() => tick(value), HOLD_REPEAT);
|
|
24904
24938
|
}, HOLD_DELAY);
|
|
@@ -24906,6 +24940,8 @@
|
|
|
24906
24940
|
function holdStop() {
|
|
24907
24941
|
window.clearTimeout(timeout);
|
|
24908
24942
|
window.clearInterval(interval);
|
|
24943
|
+
window.removeEventListener('pointerup', holdStop);
|
|
24944
|
+
document.removeEventListener('blur', holdStop);
|
|
24909
24945
|
}
|
|
24910
24946
|
function tick(value) {
|
|
24911
24947
|
toggleUpDown(value === 'up');
|
|
@@ -25017,7 +25053,7 @@
|
|
|
25017
25053
|
onClick: onControlClick,
|
|
25018
25054
|
onPointerup: onControlMouseup,
|
|
25019
25055
|
onPointerdown: onUpControlMousedown,
|
|
25020
|
-
onPointercancel:
|
|
25056
|
+
onPointercancel: onControlMouseup
|
|
25021
25057
|
}
|
|
25022
25058
|
};
|
|
25023
25059
|
const decrementSlotProps = {
|
|
@@ -25025,7 +25061,7 @@
|
|
|
25025
25061
|
onClick: onControlClick,
|
|
25026
25062
|
onPointerup: onControlMouseup,
|
|
25027
25063
|
onPointerdown: onDownControlMousedown,
|
|
25028
|
-
onPointercancel:
|
|
25064
|
+
onPointercancel: onControlMouseup
|
|
25029
25065
|
}
|
|
25030
25066
|
};
|
|
25031
25067
|
vue.watch(() => props.precision, () => formatInputValue());
|
|
@@ -25105,7 +25141,6 @@
|
|
|
25105
25141
|
const el = e.currentTarget;
|
|
25106
25142
|
el?.releasePointerCapture(e.pointerId);
|
|
25107
25143
|
e.preventDefault();
|
|
25108
|
-
e.stopPropagation();
|
|
25109
25144
|
holdStop();
|
|
25110
25145
|
}
|
|
25111
25146
|
function onUpControlMousedown(e) {
|
|
@@ -25122,11 +25157,6 @@
|
|
|
25122
25157
|
e.stopPropagation();
|
|
25123
25158
|
holdStart('down');
|
|
25124
25159
|
}
|
|
25125
|
-
function onControlPointerCancel(e) {
|
|
25126
|
-
const el = e.currentTarget;
|
|
25127
|
-
el?.releasePointerCapture(e.pointerId);
|
|
25128
|
-
holdStop();
|
|
25129
|
-
}
|
|
25130
25160
|
function clampModel() {
|
|
25131
25161
|
if (controlsDisabled.value) return;
|
|
25132
25162
|
if (!vTextFieldRef.value) return;
|
|
@@ -25176,7 +25206,7 @@
|
|
|
25176
25206
|
"onClick": onControlClick,
|
|
25177
25207
|
"onPointerdown": onUpControlMousedown,
|
|
25178
25208
|
"onPointerup": onControlMouseup,
|
|
25179
|
-
"onPointercancel":
|
|
25209
|
+
"onPointercancel": onControlMouseup,
|
|
25180
25210
|
"size": controlNodeSize.value,
|
|
25181
25211
|
"tabindex": "-1"
|
|
25182
25212
|
}, null) : vue.createVNode(VDefaultsProvider, {
|
|
@@ -25206,7 +25236,7 @@
|
|
|
25206
25236
|
"onClick": onControlClick,
|
|
25207
25237
|
"onPointerdown": onDownControlMousedown,
|
|
25208
25238
|
"onPointerup": onControlMouseup,
|
|
25209
|
-
"onPointercancel":
|
|
25239
|
+
"onPointercancel": onControlMouseup,
|
|
25210
25240
|
"size": controlNodeSize.value,
|
|
25211
25241
|
"tabindex": "-1"
|
|
25212
25242
|
}, null) : vue.createVNode(VDefaultsProvider, {
|
|
@@ -25353,6 +25383,21 @@
|
|
|
25353
25383
|
const contentRef = vue.ref();
|
|
25354
25384
|
const inputRef = vue.ref([]);
|
|
25355
25385
|
const current = vue.computed(() => inputRef.value[focusIndex.value]);
|
|
25386
|
+
const intersectScope = vue.effectScope();
|
|
25387
|
+
intersectScope.run(() => {
|
|
25388
|
+
const {
|
|
25389
|
+
intersectionRef,
|
|
25390
|
+
isIntersecting
|
|
25391
|
+
} = useIntersectionObserver();
|
|
25392
|
+
vue.watch(isIntersecting, v => {
|
|
25393
|
+
if (!v) return;
|
|
25394
|
+
intersectionRef.value?.focus();
|
|
25395
|
+
intersectScope.stop();
|
|
25396
|
+
});
|
|
25397
|
+
vue.watchEffect(() => {
|
|
25398
|
+
intersectionRef.value = inputRef.value[0];
|
|
25399
|
+
});
|
|
25400
|
+
});
|
|
25356
25401
|
function onInput() {
|
|
25357
25402
|
// The maxlength attribute doesn't work for the number type input, so the text type is used.
|
|
25358
25403
|
// The following logic simulates the behavior of a number input.
|
|
@@ -28099,6 +28144,9 @@
|
|
|
28099
28144
|
focus,
|
|
28100
28145
|
blur
|
|
28101
28146
|
} = useFocus(props);
|
|
28147
|
+
const {
|
|
28148
|
+
onIntersect
|
|
28149
|
+
} = useAutofocus(props);
|
|
28102
28150
|
const counterValue = vue.computed(() => {
|
|
28103
28151
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : (model.value || '').toString().length;
|
|
28104
28152
|
});
|
|
@@ -28107,10 +28155,6 @@
|
|
|
28107
28155
|
if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;
|
|
28108
28156
|
return props.counter;
|
|
28109
28157
|
});
|
|
28110
|
-
function onIntersect(isIntersecting, entries) {
|
|
28111
|
-
if (!props.autofocus || !isIntersecting) return;
|
|
28112
|
-
entries[0].target?.focus?.();
|
|
28113
|
-
}
|
|
28114
28158
|
const vInputRef = vue.ref();
|
|
28115
28159
|
const vFieldRef = vue.ref();
|
|
28116
28160
|
const controlHeight = vue.shallowRef('');
|
|
@@ -29827,6 +29871,7 @@
|
|
|
29827
29871
|
"class": "v-file-upload-item"
|
|
29828
29872
|
}), {
|
|
29829
29873
|
...slots,
|
|
29874
|
+
title: () => props?.title ?? props.file?.name,
|
|
29830
29875
|
prepend: slotProps => vue.createElementVNode(vue.Fragment, null, [!slots.prepend ? vue.createVNode(VAvatar, {
|
|
29831
29876
|
"icon": props.fileIcon,
|
|
29832
29877
|
"image": preview.value,
|
|
@@ -30675,6 +30720,7 @@
|
|
|
30675
30720
|
const isDragging = vue.ref(false);
|
|
30676
30721
|
const valueOnMouseDown = vue.ref(null);
|
|
30677
30722
|
const valueOnMouseUp = vue.ref(null);
|
|
30723
|
+
const emitChangeDebounced = debounce(value => emit('change', value), 750);
|
|
30678
30724
|
const {
|
|
30679
30725
|
textColorClasses,
|
|
30680
30726
|
textColorStyles
|
|
@@ -30720,6 +30766,7 @@
|
|
|
30720
30766
|
if (value !== props.displayedValue) {
|
|
30721
30767
|
update(value);
|
|
30722
30768
|
}
|
|
30769
|
+
emitChangeDebounced(value);
|
|
30723
30770
|
}
|
|
30724
30771
|
function isInner(value) {
|
|
30725
30772
|
return props.double && value - props.min >= roundCount.value;
|
|
@@ -31320,6 +31367,7 @@
|
|
|
31320
31367
|
}
|
|
31321
31368
|
function onClickAction(e) {
|
|
31322
31369
|
e.preventDefault();
|
|
31370
|
+
e.stopPropagation();
|
|
31323
31371
|
emit('toggleExpand', e);
|
|
31324
31372
|
}
|
|
31325
31373
|
useRender(() => {
|
|
@@ -31465,7 +31513,8 @@
|
|
|
31465
31513
|
const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
|
|
31466
31514
|
const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
|
|
31467
31515
|
return children ? vue.createVNode(VTreeviewGroup, vue.mergeProps(treeviewGroupProps, {
|
|
31468
|
-
"value": props.returnObject ? item.raw : treeviewGroupProps?.value
|
|
31516
|
+
"value": props.returnObject ? item.raw : treeviewGroupProps?.value,
|
|
31517
|
+
"rawId": treeviewGroupProps?.value
|
|
31469
31518
|
}), {
|
|
31470
31519
|
activator: _ref2 => {
|
|
31471
31520
|
let {
|
|
@@ -32153,7 +32202,7 @@
|
|
|
32153
32202
|
};
|
|
32154
32203
|
});
|
|
32155
32204
|
}
|
|
32156
|
-
const version$1 = "3.8.
|
|
32205
|
+
const version$1 = "3.8.11";
|
|
32157
32206
|
createVuetify$1.version = version$1;
|
|
32158
32207
|
|
|
32159
32208
|
// Vue's inject() can only be used in setup
|
|
@@ -32451,7 +32500,7 @@
|
|
|
32451
32500
|
|
|
32452
32501
|
/* eslint-disable local-rules/sort-imports */
|
|
32453
32502
|
|
|
32454
|
-
const version = "3.8.
|
|
32503
|
+
const version = "3.8.11";
|
|
32455
32504
|
|
|
32456
32505
|
/* eslint-disable local-rules/sort-imports */
|
|
32457
32506
|
|