vuetify 3.8.7 → 3.8.9
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/LICENSE.md +1 -1
- package/dist/json/attributes.json +1535 -1511
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +138 -138
- package/dist/json/tags.json +6 -0
- package/dist/json/web-types.json +2800 -2746
- package/dist/vuetify-labs.cjs +292 -154
- package/dist/vuetify-labs.css +6716 -6710
- package/dist/vuetify-labs.d.ts +96 -50
- package/dist/vuetify-labs.esm.js +293 -155
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +292 -154
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +272 -124
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3854 -3848
- package/dist/vuetify.d.ts +81 -50
- package/dist/vuetify.esm.js +273 -125
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +272 -124
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +489 -470
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +6 -6
- package/lib/components/VAutocomplete/VAutocomplete.sass +3 -9
- package/lib/components/VCarousel/VCarousel.js +3 -3
- package/lib/components/VCarousel/VCarousel.js.map +1 -1
- package/lib/components/VChip/VChip.js +1 -0
- package/lib/components/VChip/VChip.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.js +3 -3
- package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.js +3 -3
- package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +6 -6
- package/lib/components/VCombobox/VCombobox.sass +3 -9
- package/lib/components/VDataTable/VDataTableColumn.js +4 -3
- package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
- package/lib/components/VDataTable/VDataTableFooter.js +3 -1
- package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +3 -3
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js +8 -1
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.js +7 -7
- package/lib/components/VDataTable/VDataTableVirtual.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/VDatePickerControls.js +4 -4
- package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js +5 -12
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonths.d.ts +10 -0
- package/lib/components/VDatePicker/VDatePickerMonths.js +15 -5
- package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.d.ts +10 -0
- package/lib/components/VDatePicker/VDatePickerYears.js +17 -5
- package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/lib/components/VEmptyState/VEmptyState.js +3 -3
- package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.js +8 -3
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VImg/VImg.js +7 -7
- package/lib/components/VImg/VImg.js.map +1 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js +3 -3
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.d.ts +5 -0
- package/lib/components/VNumberInput/VNumberInput.js +18 -21
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +7 -4
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.js +2 -2
- package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.js +3 -3
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VSelect/VSelect.css +6 -0
- package/lib/components/VSelect/VSelect.js +6 -5
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelect/VSelect.sass +3 -0
- package/lib/components/VSelect/_mixins.scss +14 -0
- package/lib/components/VSelectionControl/VSelectionControl.js +2 -2
- package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
- package/lib/components/VSlider/VSliderThumb.js +16 -10
- package/lib/components/VSlider/VSliderThumb.js.map +1 -1
- package/lib/components/VSlider/VSliderTrack.js +6 -6
- package/lib/components/VSlider/VSliderTrack.js.map +1 -1
- package/lib/components/VSlider/slider.js +4 -1
- package/lib/components/VSlider/slider.js.map +1 -1
- package/lib/components/VTable/VTable.js +3 -3
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTextField/VTextField.js +5 -4
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VToolbar/VToolbar.js +5 -5
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.js +7 -7
- package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
- package/lib/components/VWindow/VWindow.js +3 -3
- package/lib/components/VWindow/VWindow.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/date/date.d.ts +1 -0
- package/lib/composables/date/date.js +12 -0
- package/lib/composables/date/date.js.map +1 -1
- package/lib/composables/fileDrop.d.ts +4 -0
- package/lib/composables/fileDrop.js +50 -0
- package/lib/composables/fileDrop.js.map +1 -0
- package/lib/composables/icons.d.ts +6 -0
- package/lib/composables/icons.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +56 -50
- package/lib/framework.js +1 -1
- package/lib/iconsets/fa.js +3 -1
- package/lib/iconsets/fa.js.map +1 -1
- package/lib/iconsets/fa4.js +3 -1
- package/lib/iconsets/fa4.js.map +1 -1
- package/lib/iconsets/md.js +3 -1
- package/lib/iconsets/md.js.map +1 -1
- package/lib/iconsets/mdi-svg.js +3 -1
- package/lib/iconsets/mdi-svg.js.map +1 -1
- package/lib/labs/VColorInput/VColorInput.js +3 -8
- package/lib/labs/VColorInput/VColorInput.js.map +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +25 -0
- package/lib/labs/VDateInput/VDateInput.js +9 -16
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.js +7 -3
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/labs/VPullToRefresh/VPullToRefresh.js +7 -7
- package/lib/labs/VPullToRefresh/VPullToRefresh.js.map +1 -1
- package/lib/util/helpers.d.ts +1 -0
- package/lib/util/helpers.js +8 -1
- package/lib/util/helpers.js.map +1 -1
- package/package.json +3 -3
package/dist/vuetify-labs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.8.
|
|
2
|
+
* Vuetify v3.8.9
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -606,6 +606,13 @@
|
|
|
606
606
|
}
|
|
607
607
|
return cleanText;
|
|
608
608
|
}
|
|
609
|
+
function camelizeProps(props) {
|
|
610
|
+
const out = {};
|
|
611
|
+
for (const prop in props) {
|
|
612
|
+
out[vue.camelize(prop)] = props[prop];
|
|
613
|
+
}
|
|
614
|
+
return out;
|
|
615
|
+
}
|
|
609
616
|
|
|
610
617
|
// Utilities
|
|
611
618
|
const block = ['top', 'bottom'];
|
|
@@ -3552,9 +3559,9 @@
|
|
|
3552
3559
|
if (!normalisedSrc.value.src || state.value === 'idle') return null;
|
|
3553
3560
|
const img = vue.createElementVNode("img", {
|
|
3554
3561
|
"class": vue.normalizeClass(['v-img__img', containClasses.value]),
|
|
3555
|
-
"style":
|
|
3562
|
+
"style": {
|
|
3556
3563
|
objectPosition: props.position
|
|
3557
|
-
}
|
|
3564
|
+
},
|
|
3558
3565
|
"crossorigin": props.crossorigin,
|
|
3559
3566
|
"src": normalisedSrc.value.src,
|
|
3560
3567
|
"srcset": normalisedSrc.value.srcset,
|
|
@@ -3581,9 +3588,9 @@
|
|
|
3581
3588
|
}, {
|
|
3582
3589
|
default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && vue.createElementVNode("img", {
|
|
3583
3590
|
"class": vue.normalizeClass(['v-img__img', 'v-img__img--preload', containClasses.value]),
|
|
3584
|
-
"style":
|
|
3591
|
+
"style": {
|
|
3585
3592
|
objectPosition: props.position
|
|
3586
|
-
}
|
|
3593
|
+
},
|
|
3587
3594
|
"crossorigin": props.crossorigin,
|
|
3588
3595
|
"src": normalisedSrc.value.lazySrc,
|
|
3589
3596
|
"alt": props.alt,
|
|
@@ -3617,9 +3624,9 @@
|
|
|
3617
3624
|
if (!props.gradient) return null;
|
|
3618
3625
|
return vue.createElementVNode("div", {
|
|
3619
3626
|
"class": "v-img__gradient",
|
|
3620
|
-
"style":
|
|
3627
|
+
"style": {
|
|
3621
3628
|
backgroundImage: `linear-gradient(${props.gradient})`
|
|
3622
|
-
}
|
|
3629
|
+
}
|
|
3623
3630
|
}, null);
|
|
3624
3631
|
};
|
|
3625
3632
|
const isBooted = vue.shallowRef(false);
|
|
@@ -3830,9 +3837,9 @@
|
|
|
3830
3837
|
}, {
|
|
3831
3838
|
default: () => [vue.createElementVNode("div", {
|
|
3832
3839
|
"class": "v-toolbar__content",
|
|
3833
|
-
"style":
|
|
3840
|
+
"style": {
|
|
3834
3841
|
height: convertToUnit(contentHeight.value)
|
|
3835
|
-
}
|
|
3842
|
+
}
|
|
3836
3843
|
}, [slots.prepend && vue.createElementVNode("div", {
|
|
3837
3844
|
"class": "v-toolbar__prepend"
|
|
3838
3845
|
}, [slots.prepend?.()]), hasTitle && vue.createVNode(VToolbarTitle, {
|
|
@@ -3853,9 +3860,9 @@
|
|
|
3853
3860
|
default: () => [vue.createVNode(VExpandTransition, null, {
|
|
3854
3861
|
default: () => [isExtended.value && vue.createElementVNode("div", {
|
|
3855
3862
|
"class": "v-toolbar__extension",
|
|
3856
|
-
"style":
|
|
3863
|
+
"style": {
|
|
3857
3864
|
height: convertToUnit(extensionHeight.value)
|
|
3858
|
-
}
|
|
3865
|
+
}
|
|
3859
3866
|
}, [extension])]
|
|
3860
3867
|
})]
|
|
3861
3868
|
})]
|
|
@@ -4928,9 +4935,9 @@
|
|
|
4928
4935
|
"aria-valuenow": props.indeterminate ? undefined : normalizedValue.value
|
|
4929
4936
|
}, {
|
|
4930
4937
|
default: () => [vue.createElementVNode("svg", {
|
|
4931
|
-
"style":
|
|
4938
|
+
"style": {
|
|
4932
4939
|
transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`
|
|
4933
|
-
}
|
|
4940
|
+
},
|
|
4934
4941
|
"xmlns": "http://www.w3.org/2000/svg",
|
|
4935
4942
|
"viewBox": `0 0 ${diameter.value} ${diameter.value}`
|
|
4936
4943
|
}, [vue.createElementVNode("circle", {
|
|
@@ -5151,7 +5158,7 @@
|
|
|
5151
5158
|
default: () => [props.stream && vue.createElementVNode("div", {
|
|
5152
5159
|
"key": "stream",
|
|
5153
5160
|
"class": vue.normalizeClass(['v-progress-linear__stream', textColorClasses.value]),
|
|
5154
|
-
"style":
|
|
5161
|
+
"style": {
|
|
5155
5162
|
...textColorStyles.value,
|
|
5156
5163
|
[isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),
|
|
5157
5164
|
borderTop: `${convertToUnit(height.value / 2)} dotted`,
|
|
@@ -5159,7 +5166,7 @@
|
|
|
5159
5166
|
top: `calc(50% - ${convertToUnit(height.value / 4)})`,
|
|
5160
5167
|
width: convertToUnit(100 - normalizedBuffer.value, '%'),
|
|
5161
5168
|
'--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1))
|
|
5162
|
-
}
|
|
5169
|
+
}
|
|
5163
5170
|
}, null), vue.createElementVNode("div", {
|
|
5164
5171
|
"class": vue.normalizeClass(['v-progress-linear__background', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined]),
|
|
5165
5172
|
"style": vue.normalizeStyle([backgroundColorStyles.value, {
|
|
@@ -6467,7 +6474,7 @@
|
|
|
6467
6474
|
backgroundColorClasses,
|
|
6468
6475
|
backgroundColorStyles
|
|
6469
6476
|
}), vue.withDirectives(vue.createElementVNode("div", {
|
|
6470
|
-
"class": ['v-selection-control__input']
|
|
6477
|
+
"class": vue.normalizeClass(['v-selection-control__input'])
|
|
6471
6478
|
}, [slots.input?.({
|
|
6472
6479
|
model,
|
|
6473
6480
|
textColorClasses,
|
|
@@ -8100,6 +8107,7 @@
|
|
|
8100
8107
|
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
|
|
8101
8108
|
const closeProps = vue.toRef(() => ({
|
|
8102
8109
|
'aria-label': t(props.closeLabel),
|
|
8110
|
+
disabled: props.disabled,
|
|
8103
8111
|
onClick(e) {
|
|
8104
8112
|
e.preventDefault();
|
|
8105
8113
|
e.stopPropagation();
|
|
@@ -12109,10 +12117,12 @@
|
|
|
12109
12117
|
const inputRef = vue.ref();
|
|
12110
12118
|
const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);
|
|
12111
12119
|
function onFocus() {
|
|
12112
|
-
if (inputRef.value !== document.activeElement) {
|
|
12113
|
-
inputRef.value?.focus();
|
|
12114
|
-
}
|
|
12115
12120
|
if (!isFocused.value) focus();
|
|
12121
|
+
vue.nextTick(() => {
|
|
12122
|
+
if (inputRef.value !== document.activeElement) {
|
|
12123
|
+
inputRef.value?.focus();
|
|
12124
|
+
}
|
|
12125
|
+
});
|
|
12116
12126
|
}
|
|
12117
12127
|
function onControlMousedown(e) {
|
|
12118
12128
|
emit('mousedown:control', e);
|
|
@@ -12121,7 +12131,6 @@
|
|
|
12121
12131
|
e.preventDefault();
|
|
12122
12132
|
}
|
|
12123
12133
|
function onControlClick(e) {
|
|
12124
|
-
onFocus();
|
|
12125
12134
|
emit('click:control', e);
|
|
12126
12135
|
}
|
|
12127
12136
|
function onClear(e, reset) {
|
|
@@ -12614,14 +12623,14 @@
|
|
|
12614
12623
|
return props.renderless ? vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("div", {
|
|
12615
12624
|
"ref": markerRef,
|
|
12616
12625
|
"class": "v-virtual-scroll__spacer",
|
|
12617
|
-
"style":
|
|
12626
|
+
"style": {
|
|
12618
12627
|
paddingTop: convertToUnit(paddingTop.value)
|
|
12619
|
-
}
|
|
12628
|
+
}
|
|
12620
12629
|
}, null), children, vue.createElementVNode("div", {
|
|
12621
12630
|
"class": "v-virtual-scroll__spacer",
|
|
12622
|
-
"style":
|
|
12631
|
+
"style": {
|
|
12623
12632
|
paddingBottom: convertToUnit(paddingBottom.value)
|
|
12624
|
-
}
|
|
12633
|
+
}
|
|
12625
12634
|
}, null)]) : vue.createElementVNode("div", {
|
|
12626
12635
|
"ref": containerRef,
|
|
12627
12636
|
"class": vue.normalizeClass(['v-virtual-scroll', props.class]),
|
|
@@ -12631,10 +12640,10 @@
|
|
|
12631
12640
|
}, [vue.createElementVNode("div", {
|
|
12632
12641
|
"ref": markerRef,
|
|
12633
12642
|
"class": "v-virtual-scroll__container",
|
|
12634
|
-
"style":
|
|
12643
|
+
"style": {
|
|
12635
12644
|
paddingTop: convertToUnit(paddingTop.value),
|
|
12636
12645
|
paddingBottom: convertToUnit(paddingBottom.value)
|
|
12637
|
-
}
|
|
12646
|
+
}
|
|
12638
12647
|
}, [children])]);
|
|
12639
12648
|
});
|
|
12640
12649
|
return {
|
|
@@ -13047,6 +13056,7 @@
|
|
|
13047
13056
|
index,
|
|
13048
13057
|
itemRef
|
|
13049
13058
|
} = _ref2;
|
|
13059
|
+
const camelizedProps = camelizeProps(item.props);
|
|
13050
13060
|
const itemProps = vue.mergeProps(item.props, {
|
|
13051
13061
|
ref: itemRef,
|
|
13052
13062
|
key: item.value,
|
|
@@ -13068,10 +13078,10 @@
|
|
|
13068
13078
|
"modelValue": isSelected,
|
|
13069
13079
|
"ripple": false,
|
|
13070
13080
|
"tabindex": "-1"
|
|
13071
|
-
}, null) : undefined,
|
|
13072
|
-
"image":
|
|
13073
|
-
}, null),
|
|
13074
|
-
"icon":
|
|
13081
|
+
}, null) : undefined, camelizedProps.prependAvatar && vue.createVNode(VAvatar, {
|
|
13082
|
+
"image": camelizedProps.prependAvatar
|
|
13083
|
+
}, null), camelizedProps.prependIcon && vue.createVNode(VIcon, {
|
|
13084
|
+
"icon": camelizedProps.prependIcon
|
|
13075
13085
|
}, null)]);
|
|
13076
13086
|
}
|
|
13077
13087
|
});
|
|
@@ -15068,9 +15078,9 @@
|
|
|
15068
15078
|
}, {
|
|
15069
15079
|
default: () => [vue.createElementVNode("div", {
|
|
15070
15080
|
"class": "v-window__container",
|
|
15071
|
-
"style":
|
|
15081
|
+
"style": {
|
|
15072
15082
|
height: transitionHeight.value
|
|
15073
|
-
}
|
|
15083
|
+
}
|
|
15074
15084
|
}, [slots.default?.({
|
|
15075
15085
|
group
|
|
15076
15086
|
}), props.showArrows !== false && vue.createElementVNode("div", {
|
|
@@ -15165,10 +15175,10 @@
|
|
|
15165
15175
|
} = _ref2;
|
|
15166
15176
|
return vue.createElementVNode(vue.Fragment, null, [!props.hideDelimiters && vue.createElementVNode("div", {
|
|
15167
15177
|
"class": "v-carousel__controls",
|
|
15168
|
-
"style":
|
|
15178
|
+
"style": {
|
|
15169
15179
|
left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',
|
|
15170
15180
|
right: props.verticalDelimiters === 'right' ? 0 : 'auto'
|
|
15171
|
-
}
|
|
15181
|
+
}
|
|
15172
15182
|
}, [group.items.value.length > 0 && vue.createVNode(VDefaultsProvider, {
|
|
15173
15183
|
"defaults": {
|
|
15174
15184
|
VBtn: {
|
|
@@ -15888,7 +15898,10 @@
|
|
|
15888
15898
|
if (step.value <= 0) return value;
|
|
15889
15899
|
const clamped = clamp(value, min.value, max.value);
|
|
15890
15900
|
const offset = min.value % step.value;
|
|
15891
|
-
|
|
15901
|
+
let newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
|
|
15902
|
+
if (clamped > newValue && newValue + step.value > max.value) {
|
|
15903
|
+
newValue = max.value;
|
|
15904
|
+
}
|
|
15892
15905
|
return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
|
|
15893
15906
|
}
|
|
15894
15907
|
return {
|
|
@@ -16144,6 +16157,8 @@
|
|
|
16144
16157
|
} = useRtl();
|
|
16145
16158
|
if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider');
|
|
16146
16159
|
const {
|
|
16160
|
+
min,
|
|
16161
|
+
max,
|
|
16147
16162
|
thumbColor,
|
|
16148
16163
|
step,
|
|
16149
16164
|
disabled,
|
|
@@ -16184,16 +16199,20 @@
|
|
|
16184
16199
|
if (!relevantKeys.includes(e.key)) return;
|
|
16185
16200
|
e.preventDefault();
|
|
16186
16201
|
const _step = step.value || 0.1;
|
|
16187
|
-
const steps = (
|
|
16202
|
+
const steps = (max.value - min.value) / _step;
|
|
16188
16203
|
if ([left, right, down, up].includes(e.key)) {
|
|
16189
16204
|
const increase = vertical.value ? [isRtl.value ? left : right, isReversed.value ? down : up] : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up];
|
|
16190
16205
|
const direction = increase.includes(e.key) ? 1 : -1;
|
|
16191
16206
|
const multiplier = e.shiftKey ? 2 : e.ctrlKey ? 1 : 0;
|
|
16192
|
-
|
|
16207
|
+
if (direction === -1 && value === max.value && !multiplier && !Number.isInteger(steps)) {
|
|
16208
|
+
value = value - steps % 1 * _step;
|
|
16209
|
+
} else {
|
|
16210
|
+
value = value + direction * _step * multipliers.value[multiplier];
|
|
16211
|
+
}
|
|
16193
16212
|
} else if (e.key === home) {
|
|
16194
|
-
value =
|
|
16213
|
+
value = min.value;
|
|
16195
16214
|
} else if (e.key === end) {
|
|
16196
|
-
value =
|
|
16215
|
+
value = max.value;
|
|
16197
16216
|
} else {
|
|
16198
16217
|
const direction = e.key === pagedown ? 1 : -1;
|
|
16199
16218
|
value = value - direction * _step * (steps > 100 ? steps / 10 : 10);
|
|
@@ -16218,17 +16237,17 @@
|
|
|
16218
16237
|
"role": "slider",
|
|
16219
16238
|
"tabindex": disabled.value ? -1 : 0,
|
|
16220
16239
|
"aria-label": props.name,
|
|
16221
|
-
"aria-valuemin":
|
|
16222
|
-
"aria-valuemax":
|
|
16240
|
+
"aria-valuemin": min.value,
|
|
16241
|
+
"aria-valuemax": max.value,
|
|
16223
16242
|
"aria-valuenow": props.modelValue,
|
|
16224
16243
|
"aria-readonly": !!readonly.value,
|
|
16225
16244
|
"aria-orientation": direction.value,
|
|
16226
16245
|
"onKeydown": !readonly.value ? onKeydown : undefined
|
|
16227
16246
|
}, [vue.createElementVNode("div", {
|
|
16228
16247
|
"class": vue.normalizeClass(['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value]),
|
|
16229
|
-
"style":
|
|
16248
|
+
"style": {
|
|
16230
16249
|
...textColorStyles.value
|
|
16231
|
-
}
|
|
16250
|
+
}
|
|
16232
16251
|
}, null), vue.withDirectives(vue.createElementVNode("div", {
|
|
16233
16252
|
"class": vue.normalizeClass(['v-slider-thumb__ripple', textColorClasses.value]),
|
|
16234
16253
|
"style": vue.normalizeStyle(textColorStyles.value)
|
|
@@ -16241,7 +16260,7 @@
|
|
|
16241
16260
|
default: () => [vue.withDirectives(vue.createElementVNode("div", {
|
|
16242
16261
|
"class": "v-slider-thumb__label-container"
|
|
16243
16262
|
}, [vue.createElementVNode("div", {
|
|
16244
|
-
"class": ['v-slider-thumb__label']
|
|
16263
|
+
"class": vue.normalizeClass(['v-slider-thumb__label', textColorClasses.value])
|
|
16245
16264
|
}, [vue.createElementVNode("div", null, [slots['thumb-label']?.({
|
|
16246
16265
|
modelValue: props.modelValue
|
|
16247
16266
|
}) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[vue.vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
|
|
@@ -16326,9 +16345,9 @@
|
|
|
16326
16345
|
'v-slider-track__tick--first': tick.value === min.value,
|
|
16327
16346
|
'v-slider-track__tick--last': tick.value === max.value
|
|
16328
16347
|
}]),
|
|
16329
|
-
"style":
|
|
16348
|
+
"style": {
|
|
16330
16349
|
[startDir.value]: directionValue
|
|
16331
|
-
}
|
|
16350
|
+
}
|
|
16332
16351
|
}, [(tick.label || slots['tick-label']) && vue.createElementVNode("div", {
|
|
16333
16352
|
"class": "v-slider-track__tick-label"
|
|
16334
16353
|
}, [slots['tick-label']?.({
|
|
@@ -16348,16 +16367,16 @@
|
|
|
16348
16367
|
"class": vue.normalizeClass(['v-slider-track__background', trackColorClasses.value, {
|
|
16349
16368
|
'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
|
|
16350
16369
|
}]),
|
|
16351
|
-
"style":
|
|
16370
|
+
"style": {
|
|
16352
16371
|
...backgroundStyles.value,
|
|
16353
16372
|
...trackColorStyles.value
|
|
16354
|
-
}
|
|
16373
|
+
}
|
|
16355
16374
|
}, null), vue.createElementVNode("div", {
|
|
16356
16375
|
"class": vue.normalizeClass(['v-slider-track__fill', trackFillColorClasses.value]),
|
|
16357
|
-
"style":
|
|
16376
|
+
"style": {
|
|
16358
16377
|
...trackFillStyles.value,
|
|
16359
16378
|
...trackFillColorStyles.value
|
|
16360
|
-
}
|
|
16379
|
+
}
|
|
16361
16380
|
}, null), showTicks.value && vue.createElementVNode("div", {
|
|
16362
16381
|
"class": vue.normalizeClass(['v-slider-track__ticks', {
|
|
16363
16382
|
'v-slider-track__ticks--always-show': showTicks.value === 'always'
|
|
@@ -16559,9 +16578,9 @@
|
|
|
16559
16578
|
}, null)]), vue.createElementVNode("div", {
|
|
16560
16579
|
"class": "v-color-picker-preview__dot"
|
|
16561
16580
|
}, [vue.createElementVNode("div", {
|
|
16562
|
-
"style":
|
|
16581
|
+
"style": {
|
|
16563
16582
|
background: HSVtoCSS(props.color ?? nullColor)
|
|
16564
|
-
}
|
|
16583
|
+
}
|
|
16565
16584
|
}, null)]), vue.createElementVNode("div", {
|
|
16566
16585
|
"class": "v-color-picker-preview__sliders"
|
|
16567
16586
|
}, [vue.createVNode(VSlider, {
|
|
@@ -16962,9 +16981,9 @@
|
|
|
16962
16981
|
"class": "v-color-picker-swatches__color",
|
|
16963
16982
|
"onClick": () => hsva && emit('update:color', hsva)
|
|
16964
16983
|
}, [vue.createElementVNode("div", {
|
|
16965
|
-
"style":
|
|
16984
|
+
"style": {
|
|
16966
16985
|
background
|
|
16967
|
-
}
|
|
16986
|
+
}
|
|
16968
16987
|
}, [props.color && deepEqual(props.color, hsva) ? vue.createVNode(VIcon, {
|
|
16969
16988
|
"size": "x-small",
|
|
16970
16989
|
"icon": "$success",
|
|
@@ -17510,7 +17529,7 @@
|
|
|
17510
17529
|
const yearStart = new Date(year, 0, 1);
|
|
17511
17530
|
const size = firstWeekSize(year);
|
|
17512
17531
|
const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
|
|
17513
|
-
return 1 + getDiff(date, d1w1, 'weeks');
|
|
17532
|
+
return 1 + getDiff(endOfDay(date), startOfDay(d1w1), 'weeks');
|
|
17514
17533
|
}
|
|
17515
17534
|
function getDate(date) {
|
|
17516
17535
|
return date.getDate();
|
|
@@ -17813,6 +17832,18 @@
|
|
|
17813
17832
|
instance: createInstance(_options, locale)
|
|
17814
17833
|
};
|
|
17815
17834
|
}
|
|
17835
|
+
function createDateRange(adapter, start, stop) {
|
|
17836
|
+
const diff = adapter.getDiff(adapter.endOfDay(stop ?? start), adapter.startOfDay(start), 'days');
|
|
17837
|
+
const datesInRange = [start];
|
|
17838
|
+
for (let i = 1; i < diff; i++) {
|
|
17839
|
+
const nextDate = adapter.addDays(start, i);
|
|
17840
|
+
datesInRange.push(nextDate);
|
|
17841
|
+
}
|
|
17842
|
+
if (stop) {
|
|
17843
|
+
datesInRange.push(adapter.endOfDay(stop));
|
|
17844
|
+
}
|
|
17845
|
+
return datesInRange;
|
|
17846
|
+
}
|
|
17816
17847
|
function createInstance(options, locale) {
|
|
17817
17848
|
const instance = vue.reactive(typeof options.adapter === 'function'
|
|
17818
17849
|
// eslint-disable-next-line new-cap
|
|
@@ -19912,7 +19943,9 @@
|
|
|
19912
19943
|
"class": "v-data-table-footer"
|
|
19913
19944
|
}, [slots.prepend?.(), vue.createElementVNode("div", {
|
|
19914
19945
|
"class": "v-data-table-footer__items-per-page"
|
|
19915
|
-
}, [vue.createElementVNode("span",
|
|
19946
|
+
}, [vue.createElementVNode("span", {
|
|
19947
|
+
"aria-label": t(props.itemsPerPageText)
|
|
19948
|
+
}, [t(props.itemsPerPageText)]), vue.createVNode(VSelect, {
|
|
19916
19949
|
"items": itemsPerPageOptions.value,
|
|
19917
19950
|
"modelValue": itemsPerPage.value,
|
|
19918
19951
|
"onUpdate:modelValue": v => setItemsPerPage(Number(v)),
|
|
@@ -19964,18 +19997,19 @@
|
|
|
19964
19997
|
} = _ref;
|
|
19965
19998
|
const Tag = props.tag ?? 'td';
|
|
19966
19999
|
return vue.createVNode(Tag, {
|
|
20000
|
+
"tabindex": "0",
|
|
19967
20001
|
"class": vue.normalizeClass(['v-data-table__td', {
|
|
19968
20002
|
'v-data-table-column--fixed': props.fixed,
|
|
19969
20003
|
'v-data-table-column--last-fixed': props.lastFixed,
|
|
19970
20004
|
'v-data-table-column--no-padding': props.noPadding,
|
|
19971
20005
|
'v-data-table-column--nowrap': props.nowrap
|
|
19972
20006
|
}, `v-data-table-column--align-${props.align}`]),
|
|
19973
|
-
"style":
|
|
20007
|
+
"style": {
|
|
19974
20008
|
height: convertToUnit(props.height),
|
|
19975
20009
|
width: convertToUnit(props.width),
|
|
19976
20010
|
maxWidth: convertToUnit(props.maxWidth),
|
|
19977
20011
|
left: convertToUnit(props.fixedOffset || null)
|
|
19978
|
-
}
|
|
20012
|
+
}
|
|
19979
20013
|
}, {
|
|
19980
20014
|
default: () => [slots.default?.()]
|
|
19981
20015
|
});
|
|
@@ -20308,6 +20342,11 @@
|
|
|
20308
20342
|
top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
|
|
20309
20343
|
};
|
|
20310
20344
|
}
|
|
20345
|
+
function handleEnterKeyPress(event, column) {
|
|
20346
|
+
if (event.key === 'Enter' && !props.disableSort) {
|
|
20347
|
+
toggleSort(column);
|
|
20348
|
+
}
|
|
20349
|
+
}
|
|
20311
20350
|
function getSortIcon(column) {
|
|
20312
20351
|
const item = sortBy.value.find(item => item.key === column.key);
|
|
20313
20352
|
if (!item) return props.sortAscIcon;
|
|
@@ -20364,7 +20403,9 @@
|
|
|
20364
20403
|
"nowrap": column.nowrap,
|
|
20365
20404
|
"lastFixed": column.lastFixed,
|
|
20366
20405
|
"noPadding": noPadding
|
|
20367
|
-
}, headerProps
|
|
20406
|
+
}, headerProps, {
|
|
20407
|
+
"onKeydown": event => column.sortable && handleEnterKeyPress(event, column)
|
|
20408
|
+
}), {
|
|
20368
20409
|
default: () => {
|
|
20369
20410
|
const columnSlotName = `header.${column.key}`;
|
|
20370
20411
|
const columnSlotProps = {
|
|
@@ -20500,9 +20541,9 @@
|
|
|
20500
20541
|
});
|
|
20501
20542
|
return () => vue.createElementVNode("tr", {
|
|
20502
20543
|
"class": "v-data-table-group-header-row",
|
|
20503
|
-
"style":
|
|
20544
|
+
"style": {
|
|
20504
20545
|
'--v-data-table-group-header-row-depth': props.item.depth
|
|
20505
|
-
}
|
|
20546
|
+
}
|
|
20506
20547
|
}, [columns.value.map(column => {
|
|
20507
20548
|
if (column.key === 'data-table-group') {
|
|
20508
20549
|
const icon = isGroupOpen(props.item) ? '$expand' : '$next';
|
|
@@ -20850,9 +20891,9 @@
|
|
|
20850
20891
|
}, {
|
|
20851
20892
|
default: () => [slots.top?.(), slots.default ? vue.createElementVNode("div", {
|
|
20852
20893
|
"class": "v-table__wrapper",
|
|
20853
|
-
"style":
|
|
20894
|
+
"style": {
|
|
20854
20895
|
height: convertToUnit(props.height)
|
|
20855
|
-
}
|
|
20896
|
+
}
|
|
20856
20897
|
}, [vue.createElementVNode("table", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]
|
|
20857
20898
|
}));
|
|
20858
20899
|
return {};
|
|
@@ -21287,19 +21328,19 @@
|
|
|
21287
21328
|
"onScrollPassive": handleScroll,
|
|
21288
21329
|
"onScrollend": handleScrollend,
|
|
21289
21330
|
"class": "v-table__wrapper",
|
|
21290
|
-
"style":
|
|
21331
|
+
"style": {
|
|
21291
21332
|
height: convertToUnit(props.height)
|
|
21292
|
-
}
|
|
21333
|
+
}
|
|
21293
21334
|
}, [vue.createElementVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createElementVNode("thead", {
|
|
21294
21335
|
"key": "thead"
|
|
21295
21336
|
}, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createElementVNode("tbody", {
|
|
21296
21337
|
"key": "tbody"
|
|
21297
21338
|
}, [vue.createElementVNode("tr", {
|
|
21298
21339
|
"ref": markerRef,
|
|
21299
|
-
"style":
|
|
21340
|
+
"style": {
|
|
21300
21341
|
height: convertToUnit(paddingTop.value),
|
|
21301
21342
|
border: 0
|
|
21302
|
-
}
|
|
21343
|
+
}
|
|
21303
21344
|
}, [vue.createElementVNode("td", {
|
|
21304
21345
|
"colspan": columns.value.length,
|
|
21305
21346
|
"style": {
|
|
@@ -21330,10 +21371,10 @@
|
|
|
21330
21371
|
}
|
|
21331
21372
|
})
|
|
21332
21373
|
}), slots['body.append']?.(slotProps.value), vue.createElementVNode("tr", {
|
|
21333
|
-
"style":
|
|
21374
|
+
"style": {
|
|
21334
21375
|
height: convertToUnit(paddingBottom.value),
|
|
21335
21376
|
border: 0
|
|
21336
|
-
}
|
|
21377
|
+
}
|
|
21337
21378
|
}, [vue.createElementVNode("td", {
|
|
21338
21379
|
"colspan": columns.value.length,
|
|
21339
21380
|
"style": {
|
|
@@ -21871,10 +21912,10 @@
|
|
|
21871
21912
|
useRender(() => {
|
|
21872
21913
|
// TODO: add slot support and scope defaults
|
|
21873
21914
|
return vue.createElementVNode("div", {
|
|
21874
|
-
"class": ['v-date-picker-controls'],
|
|
21875
|
-
"style":
|
|
21915
|
+
"class": vue.normalizeClass(['v-date-picker-controls']),
|
|
21916
|
+
"style": {
|
|
21876
21917
|
'--v-date-picker-controls-height': convertToUnit(props.controlHeight)
|
|
21877
|
-
}
|
|
21918
|
+
}
|
|
21878
21919
|
}, [vue.createVNode(VBtn, {
|
|
21879
21920
|
"class": "v-date-picker-controls__month-btn",
|
|
21880
21921
|
"data-testid": "month-btn",
|
|
@@ -22217,14 +22258,7 @@
|
|
|
22217
22258
|
} else {
|
|
22218
22259
|
rangeStop.value = adapter.endOfDay(_value);
|
|
22219
22260
|
}
|
|
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;
|
|
22261
|
+
model.value = createDateRange(adapter, rangeStart.value, rangeStop.value);
|
|
22228
22262
|
} else {
|
|
22229
22263
|
rangeStart.value = value;
|
|
22230
22264
|
rangeStop.value = undefined;
|
|
@@ -22259,7 +22293,7 @@
|
|
|
22259
22293
|
"key": "hide-week-days",
|
|
22260
22294
|
"class": "v-date-picker-month__day"
|
|
22261
22295
|
}, [vue.createTextVNode("\xA0")]), weekNumbers.value.map(week => vue.createElementVNode("div", {
|
|
22262
|
-
"class": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']
|
|
22296
|
+
"class": vue.normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__day--adjacent'])
|
|
22263
22297
|
}, [week]))]), vue.createVNode(MaybeTransition, {
|
|
22264
22298
|
"name": transition.value
|
|
22265
22299
|
}, {
|
|
@@ -22268,7 +22302,7 @@
|
|
|
22268
22302
|
"key": daysInMonth.value[0].date?.toString(),
|
|
22269
22303
|
"class": "v-date-picker-month__days"
|
|
22270
22304
|
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => vue.createElementVNode("div", {
|
|
22271
|
-
"class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
|
|
22305
|
+
"class": vue.normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
|
|
22272
22306
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
|
22273
22307
|
const slotProps = {
|
|
22274
22308
|
props: {
|
|
@@ -22310,7 +22344,8 @@
|
|
|
22310
22344
|
min: null,
|
|
22311
22345
|
max: null,
|
|
22312
22346
|
modelValue: Number,
|
|
22313
|
-
year: Number
|
|
22347
|
+
year: Number,
|
|
22348
|
+
allowedMonths: [Array, Function]
|
|
22314
22349
|
}, 'VDatePickerMonths');
|
|
22315
22350
|
const VDatePickerMonths = genericComponent()({
|
|
22316
22351
|
name: 'VDatePickerMonths',
|
|
@@ -22332,7 +22367,7 @@
|
|
|
22332
22367
|
}
|
|
22333
22368
|
return createRange(12).map(i => {
|
|
22334
22369
|
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))));
|
|
22370
|
+
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
22371
|
date = adapter.getNextMonth(date);
|
|
22337
22372
|
return {
|
|
22338
22373
|
isDisabled,
|
|
@@ -22344,11 +22379,20 @@
|
|
|
22344
22379
|
vue.watchEffect(() => {
|
|
22345
22380
|
model.value = model.value ?? adapter.getMonth(adapter.date());
|
|
22346
22381
|
});
|
|
22382
|
+
function isMonthAllowed(month) {
|
|
22383
|
+
if (Array.isArray(props.allowedMonths) && props.allowedMonths.length) {
|
|
22384
|
+
return props.allowedMonths.includes(month);
|
|
22385
|
+
}
|
|
22386
|
+
if (typeof props.allowedMonths === 'function') {
|
|
22387
|
+
return props.allowedMonths(month);
|
|
22388
|
+
}
|
|
22389
|
+
return true;
|
|
22390
|
+
}
|
|
22347
22391
|
useRender(() => vue.createElementVNode("div", {
|
|
22348
22392
|
"class": "v-date-picker-months",
|
|
22349
|
-
"style":
|
|
22393
|
+
"style": {
|
|
22350
22394
|
height: convertToUnit(props.height)
|
|
22351
|
-
}
|
|
22395
|
+
}
|
|
22352
22396
|
}, [vue.createElementVNode("div", {
|
|
22353
22397
|
"class": "v-date-picker-months__content"
|
|
22354
22398
|
}, [months.value.map((month, i) => {
|
|
@@ -22389,7 +22433,8 @@
|
|
|
22389
22433
|
height: [String, Number],
|
|
22390
22434
|
min: null,
|
|
22391
22435
|
max: null,
|
|
22392
|
-
modelValue: Number
|
|
22436
|
+
modelValue: Number,
|
|
22437
|
+
allowedYears: [Array, Function]
|
|
22393
22438
|
}, 'VDatePickerYears');
|
|
22394
22439
|
const VDatePickerYears = genericComponent()({
|
|
22395
22440
|
name: 'VDatePickerYears',
|
|
@@ -22421,7 +22466,8 @@
|
|
|
22421
22466
|
date = adapter.setYear(date, adapter.getYear(date) + 1);
|
|
22422
22467
|
return {
|
|
22423
22468
|
text,
|
|
22424
|
-
value: i
|
|
22469
|
+
value: i,
|
|
22470
|
+
isDisabled: !isYearAllowed(i)
|
|
22425
22471
|
};
|
|
22426
22472
|
});
|
|
22427
22473
|
});
|
|
@@ -22435,11 +22481,20 @@
|
|
|
22435
22481
|
block: 'center'
|
|
22436
22482
|
});
|
|
22437
22483
|
});
|
|
22484
|
+
function isYearAllowed(year) {
|
|
22485
|
+
if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
|
|
22486
|
+
return props.allowedYears.includes(year);
|
|
22487
|
+
}
|
|
22488
|
+
if (typeof props.allowedYears === 'function') {
|
|
22489
|
+
return props.allowedYears(year);
|
|
22490
|
+
}
|
|
22491
|
+
return true;
|
|
22492
|
+
}
|
|
22438
22493
|
useRender(() => vue.createElementVNode("div", {
|
|
22439
22494
|
"class": "v-date-picker-years",
|
|
22440
|
-
"style":
|
|
22495
|
+
"style": {
|
|
22441
22496
|
height: convertToUnit(props.height)
|
|
22442
|
-
}
|
|
22497
|
+
}
|
|
22443
22498
|
}, [vue.createElementVNode("div", {
|
|
22444
22499
|
"class": "v-date-picker-years__content"
|
|
22445
22500
|
}, [years.value.map((year, i) => {
|
|
@@ -22449,6 +22504,7 @@
|
|
|
22449
22504
|
color: model.value === year.value ? props.color : undefined,
|
|
22450
22505
|
rounded: true,
|
|
22451
22506
|
text: year.text,
|
|
22507
|
+
disabled: year.isDisabled,
|
|
22452
22508
|
variant: model.value === year.value ? 'flat' : 'text',
|
|
22453
22509
|
onClick: () => {
|
|
22454
22510
|
if (model.value === year.value) {
|
|
@@ -22598,6 +22654,41 @@
|
|
|
22598
22654
|
}
|
|
22599
22655
|
return targets;
|
|
22600
22656
|
});
|
|
22657
|
+
function isAllowedInRange(start, end) {
|
|
22658
|
+
const allowedDates = props.allowedDates;
|
|
22659
|
+
if (typeof allowedDates !== 'function') return true;
|
|
22660
|
+
const days = adapter.getDiff(end, start, 'days');
|
|
22661
|
+
for (let i = 0; i < days; i++) {
|
|
22662
|
+
if (allowedDates(adapter.addDays(start, i))) return true;
|
|
22663
|
+
}
|
|
22664
|
+
return false;
|
|
22665
|
+
}
|
|
22666
|
+
function allowedYears(year) {
|
|
22667
|
+
if (typeof props.allowedDates === 'function') {
|
|
22668
|
+
const startOfYear = adapter.parseISO(`${year}-01-01`);
|
|
22669
|
+
return isAllowedInRange(startOfYear, adapter.endOfYear(startOfYear));
|
|
22670
|
+
}
|
|
22671
|
+
if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
|
|
22672
|
+
for (const date of props.allowedDates) {
|
|
22673
|
+
if (adapter.getYear(adapter.date(date)) === year) return true;
|
|
22674
|
+
}
|
|
22675
|
+
return false;
|
|
22676
|
+
}
|
|
22677
|
+
return true;
|
|
22678
|
+
}
|
|
22679
|
+
function allowedMonths(month) {
|
|
22680
|
+
if (typeof props.allowedDates === 'function') {
|
|
22681
|
+
const startOfMonth = adapter.parseISO(`${year.value}-${month + 1}-01`);
|
|
22682
|
+
return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth));
|
|
22683
|
+
}
|
|
22684
|
+
if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
|
|
22685
|
+
for (const date of props.allowedDates) {
|
|
22686
|
+
if (adapter.getYear(adapter.date(date)) === year.value && adapter.getMonth(adapter.date(date)) === month) return true;
|
|
22687
|
+
}
|
|
22688
|
+
return false;
|
|
22689
|
+
}
|
|
22690
|
+
return true;
|
|
22691
|
+
}
|
|
22601
22692
|
|
|
22602
22693
|
// function onClickAppend () {
|
|
22603
22694
|
// inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'
|
|
@@ -22713,14 +22804,16 @@
|
|
|
22713
22804
|
"onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
|
|
22714
22805
|
"min": minDate.value,
|
|
22715
22806
|
"max": maxDate.value,
|
|
22716
|
-
"year": year.value
|
|
22807
|
+
"year": year.value,
|
|
22808
|
+
"allowedMonths": allowedMonths
|
|
22717
22809
|
}), null) : viewMode.value === 'year' ? vue.createVNode(VDatePickerYears, vue.mergeProps({
|
|
22718
22810
|
"key": "date-picker-years"
|
|
22719
22811
|
}, datePickerYearsProps, {
|
|
22720
22812
|
"modelValue": year.value,
|
|
22721
22813
|
"onUpdate:modelValue": [$event => year.value = $event, onUpdateYear],
|
|
22722
22814
|
"min": minDate.value,
|
|
22723
|
-
"max": maxDate.value
|
|
22815
|
+
"max": maxDate.value,
|
|
22816
|
+
"allowedYears": allowedYears
|
|
22724
22817
|
}), null) : vue.createVNode(VDatePickerMonth, vue.mergeProps({
|
|
22725
22818
|
"key": "date-picker-month"
|
|
22726
22819
|
}, datePickerMonthProps, {
|
|
@@ -22845,9 +22938,9 @@
|
|
|
22845
22938
|
}, [slots.title?.() ?? props.title]), hasText && vue.createElementVNode("div", {
|
|
22846
22939
|
"key": "text",
|
|
22847
22940
|
"class": "v-empty-state__text",
|
|
22848
|
-
"style":
|
|
22941
|
+
"style": {
|
|
22849
22942
|
maxWidth: convertToUnit(props.textWidth)
|
|
22850
|
-
}
|
|
22943
|
+
}
|
|
22851
22944
|
}, [slots.text?.() ?? props.text]), slots.default && vue.createElementVNode("div", {
|
|
22852
22945
|
"key": "content",
|
|
22853
22946
|
"class": "v-empty-state__content"
|
|
@@ -23252,6 +23345,56 @@
|
|
|
23252
23345
|
|
|
23253
23346
|
// Types
|
|
23254
23347
|
|
|
23348
|
+
function useFileDrop() {
|
|
23349
|
+
function hasFilesOrFolders(e) {
|
|
23350
|
+
const entries = [...(e.dataTransfer?.items ?? [])].filter(x => x.kind === 'file').map(x => x.webkitGetAsEntry()).filter(Boolean);
|
|
23351
|
+
return entries.length > 0 || [...(e.dataTransfer?.files ?? [])].length > 0;
|
|
23352
|
+
}
|
|
23353
|
+
async function handleDrop(e) {
|
|
23354
|
+
const result = [];
|
|
23355
|
+
const entries = [...(e.dataTransfer?.items ?? [])].filter(x => x.kind === 'file').map(x => x.webkitGetAsEntry()).filter(Boolean);
|
|
23356
|
+
if (entries.length) {
|
|
23357
|
+
for (const entry of entries) {
|
|
23358
|
+
const files = await traverseFileTree(entry, appendIfDirectory('.', entry));
|
|
23359
|
+
result.push(...files.map(x => x.file));
|
|
23360
|
+
}
|
|
23361
|
+
} else {
|
|
23362
|
+
result.push(...[...(e.dataTransfer?.files ?? [])]);
|
|
23363
|
+
}
|
|
23364
|
+
return result;
|
|
23365
|
+
}
|
|
23366
|
+
return {
|
|
23367
|
+
handleDrop,
|
|
23368
|
+
hasFilesOrFolders
|
|
23369
|
+
};
|
|
23370
|
+
}
|
|
23371
|
+
function traverseFileTree(item) {
|
|
23372
|
+
let path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
23373
|
+
return new Promise((resolve, reject) => {
|
|
23374
|
+
if (item.isFile) {
|
|
23375
|
+
const fileEntry = item;
|
|
23376
|
+
fileEntry.file(file => resolve([{
|
|
23377
|
+
file,
|
|
23378
|
+
path
|
|
23379
|
+
}]), reject);
|
|
23380
|
+
} else if (item.isDirectory) {
|
|
23381
|
+
const directoryReader = item.createReader();
|
|
23382
|
+
directoryReader.readEntries(async entries => {
|
|
23383
|
+
const files = [];
|
|
23384
|
+
for (const entry of entries) {
|
|
23385
|
+
files.push(...(await traverseFileTree(entry, appendIfDirectory(path, entry))));
|
|
23386
|
+
}
|
|
23387
|
+
resolve(files);
|
|
23388
|
+
});
|
|
23389
|
+
}
|
|
23390
|
+
});
|
|
23391
|
+
}
|
|
23392
|
+
function appendIfDirectory(path, item) {
|
|
23393
|
+
return item.isDirectory ? `${path}/${item.name}` : path;
|
|
23394
|
+
}
|
|
23395
|
+
|
|
23396
|
+
// Types
|
|
23397
|
+
|
|
23255
23398
|
const makeVFileInputProps = propsFactory({
|
|
23256
23399
|
chips: Boolean,
|
|
23257
23400
|
counter: Boolean,
|
|
@@ -23336,6 +23479,10 @@
|
|
|
23336
23479
|
const isActive = vue.toRef(() => isFocused.value || props.active);
|
|
23337
23480
|
const isPlainOrUnderlined = vue.computed(() => ['plain', 'underlined'].includes(props.variant));
|
|
23338
23481
|
const isDragging = vue.shallowRef(false);
|
|
23482
|
+
const {
|
|
23483
|
+
handleDrop,
|
|
23484
|
+
hasFilesOrFolders
|
|
23485
|
+
} = useFileDrop();
|
|
23339
23486
|
function onFocus() {
|
|
23340
23487
|
if (inputRef.value !== document.activeElement) {
|
|
23341
23488
|
inputRef.value?.focus();
|
|
@@ -23369,13 +23516,13 @@
|
|
|
23369
23516
|
e.preventDefault();
|
|
23370
23517
|
isDragging.value = false;
|
|
23371
23518
|
}
|
|
23372
|
-
function onDrop(e) {
|
|
23519
|
+
async function onDrop(e) {
|
|
23373
23520
|
e.preventDefault();
|
|
23374
23521
|
e.stopImmediatePropagation();
|
|
23375
23522
|
isDragging.value = false;
|
|
23376
|
-
if (!
|
|
23523
|
+
if (!inputRef.value || !hasFilesOrFolders(e)) return;
|
|
23377
23524
|
const dataTransfer = new DataTransfer();
|
|
23378
|
-
for (const file of e
|
|
23525
|
+
for (const file of await handleDrop(e)) {
|
|
23379
23526
|
dataTransfer.items.add(file);
|
|
23380
23527
|
}
|
|
23381
23528
|
inputRef.value.files = dataTransfer.files;
|
|
@@ -23712,9 +23859,9 @@
|
|
|
23712
23859
|
});
|
|
23713
23860
|
useRender(() => vue.createElementVNode("div", {
|
|
23714
23861
|
"class": "v-infinite-scroll-intersect",
|
|
23715
|
-
"style":
|
|
23862
|
+
"style": {
|
|
23716
23863
|
'--v-infinite-margin-size': props.rootMargin
|
|
23717
|
-
}
|
|
23864
|
+
},
|
|
23718
23865
|
"ref": intersectionRef
|
|
23719
23866
|
}, [vue.createTextVNode("\xA0")]));
|
|
23720
23867
|
return {};
|
|
@@ -24806,6 +24953,7 @@
|
|
|
24806
24953
|
...makeVNumberInputProps()
|
|
24807
24954
|
},
|
|
24808
24955
|
emits: {
|
|
24956
|
+
'update:focused': val => true,
|
|
24809
24957
|
'update:modelValue': val => true
|
|
24810
24958
|
},
|
|
24811
24959
|
setup(props, _ref) {
|
|
@@ -24821,11 +24969,7 @@
|
|
|
24821
24969
|
});
|
|
24822
24970
|
const form = useForm(props);
|
|
24823
24971
|
const controlsDisabled = vue.computed(() => form.isDisabled.value || form.isReadonly.value);
|
|
24824
|
-
const
|
|
24825
|
-
isFocused,
|
|
24826
|
-
focus,
|
|
24827
|
-
blur
|
|
24828
|
-
} = useFocus(props);
|
|
24972
|
+
const isFocused = vue.shallowRef(props.focused);
|
|
24829
24973
|
function correctPrecision(val) {
|
|
24830
24974
|
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
|
|
24831
24975
|
const fixed = precision == null ? String(val) : val.toFixed(precision);
|
|
@@ -24870,22 +25014,18 @@
|
|
|
24870
25014
|
const controlNodeDefaultHeight = vue.toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
|
|
24871
25015
|
const incrementSlotProps = {
|
|
24872
25016
|
props: {
|
|
24873
|
-
style: {
|
|
24874
|
-
touchAction: 'none'
|
|
24875
|
-
},
|
|
24876
25017
|
onClick: onControlClick,
|
|
24877
25018
|
onPointerup: onControlMouseup,
|
|
24878
|
-
onPointerdown: onUpControlMousedown
|
|
25019
|
+
onPointerdown: onUpControlMousedown,
|
|
25020
|
+
onPointercancel: onControlPointerCancel
|
|
24879
25021
|
}
|
|
24880
25022
|
};
|
|
24881
25023
|
const decrementSlotProps = {
|
|
24882
25024
|
props: {
|
|
24883
|
-
style: {
|
|
24884
|
-
touchAction: 'none'
|
|
24885
|
-
},
|
|
24886
25025
|
onClick: onControlClick,
|
|
24887
25026
|
onPointerup: onControlMouseup,
|
|
24888
|
-
onPointerdown: onDownControlMousedown
|
|
25027
|
+
onPointerdown: onDownControlMousedown,
|
|
25028
|
+
onPointercancel: onControlPointerCancel
|
|
24889
25029
|
}
|
|
24890
25030
|
};
|
|
24891
25031
|
vue.watch(() => props.precision, () => formatInputValue());
|
|
@@ -24982,6 +25122,11 @@
|
|
|
24982
25122
|
e.stopPropagation();
|
|
24983
25123
|
holdStart('down');
|
|
24984
25124
|
}
|
|
25125
|
+
function onControlPointerCancel(e) {
|
|
25126
|
+
const el = e.currentTarget;
|
|
25127
|
+
el?.releasePointerCapture(e.pointerId);
|
|
25128
|
+
holdStop();
|
|
25129
|
+
}
|
|
24985
25130
|
function clampModel() {
|
|
24986
25131
|
if (controlsDisabled.value) return;
|
|
24987
25132
|
if (!vTextFieldRef.value) return;
|
|
@@ -25009,11 +25154,9 @@
|
|
|
25009
25154
|
inputText.value = model.value.toString();
|
|
25010
25155
|
}
|
|
25011
25156
|
function onFocus() {
|
|
25012
|
-
focus();
|
|
25013
25157
|
trimDecimalZeros();
|
|
25014
25158
|
}
|
|
25015
25159
|
function onBlur() {
|
|
25016
|
-
blur();
|
|
25017
25160
|
clampModel();
|
|
25018
25161
|
}
|
|
25019
25162
|
useRender(() => {
|
|
@@ -25033,8 +25176,8 @@
|
|
|
25033
25176
|
"onClick": onControlClick,
|
|
25034
25177
|
"onPointerdown": onUpControlMousedown,
|
|
25035
25178
|
"onPointerup": onControlMouseup,
|
|
25179
|
+
"onPointercancel": onControlPointerCancel,
|
|
25036
25180
|
"size": controlNodeSize.value,
|
|
25037
|
-
"style": "touch-action: none",
|
|
25038
25181
|
"tabindex": "-1"
|
|
25039
25182
|
}, null) : vue.createVNode(VDefaultsProvider, {
|
|
25040
25183
|
"key": "increment-defaults",
|
|
@@ -25063,8 +25206,8 @@
|
|
|
25063
25206
|
"onClick": onControlClick,
|
|
25064
25207
|
"onPointerdown": onDownControlMousedown,
|
|
25065
25208
|
"onPointerup": onControlMouseup,
|
|
25209
|
+
"onPointercancel": onControlPointerCancel,
|
|
25066
25210
|
"size": controlNodeSize.value,
|
|
25067
|
-
"style": "touch-action: none",
|
|
25068
25211
|
"tabindex": "-1"
|
|
25069
25212
|
}, null) : vue.createVNode(VDefaultsProvider, {
|
|
25070
25213
|
"key": "decrement-defaults",
|
|
@@ -25106,9 +25249,12 @@
|
|
|
25106
25249
|
}, null)]) : props.reverse && controlVariant.value !== 'hidden' ? vue.createElementVNode(vue.Fragment, null, [controlNode(), dividerNode()]) : undefined;
|
|
25107
25250
|
const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
|
|
25108
25251
|
return vue.createVNode(VTextField, vue.mergeProps({
|
|
25109
|
-
"ref": vTextFieldRef
|
|
25252
|
+
"ref": vTextFieldRef
|
|
25253
|
+
}, textFieldProps, {
|
|
25110
25254
|
"modelValue": inputText.value,
|
|
25111
25255
|
"onUpdate:modelValue": $event => inputText.value = $event,
|
|
25256
|
+
"focused": isFocused.value,
|
|
25257
|
+
"onUpdate:focused": $event => isFocused.value = $event,
|
|
25112
25258
|
"validationValue": model.value,
|
|
25113
25259
|
"onBeforeinput": onBeforeinput,
|
|
25114
25260
|
"onFocus": onFocus,
|
|
@@ -25121,8 +25267,7 @@
|
|
|
25121
25267
|
'v-number-input--reverse': props.reverse,
|
|
25122
25268
|
'v-number-input--split': controlVariant.value === 'split',
|
|
25123
25269
|
'v-number-input--stacked': controlVariant.value === 'stacked'
|
|
25124
|
-
}, props.class]
|
|
25125
|
-
}, textFieldProps, {
|
|
25270
|
+
}, props.class],
|
|
25126
25271
|
"style": props.style,
|
|
25127
25272
|
"inputmode": "decimal"
|
|
25128
25273
|
}), {
|
|
@@ -25257,7 +25402,7 @@
|
|
|
25257
25402
|
function onPaste(index, e) {
|
|
25258
25403
|
e.preventDefault();
|
|
25259
25404
|
e.stopPropagation();
|
|
25260
|
-
const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';
|
|
25405
|
+
const clipboardText = e?.clipboardData?.getData('Text').trim().slice(0, length.value) ?? '';
|
|
25261
25406
|
if (isValidNumber(clipboardText)) return;
|
|
25262
25407
|
model.value = clipboardText.split('');
|
|
25263
25408
|
inputRef.value?.[index].blur();
|
|
@@ -25289,7 +25434,10 @@
|
|
|
25289
25434
|
scoped: true
|
|
25290
25435
|
});
|
|
25291
25436
|
vue.watch(model, val => {
|
|
25292
|
-
if (val.length === length.value)
|
|
25437
|
+
if (val.length === length.value) {
|
|
25438
|
+
focusIndex.value = length.value - 1;
|
|
25439
|
+
emit('finish', val.join(''));
|
|
25440
|
+
}
|
|
25293
25441
|
}, {
|
|
25294
25442
|
deep: true
|
|
25295
25443
|
});
|
|
@@ -25324,7 +25472,7 @@
|
|
|
25324
25472
|
"aria-label": t(props.label, i + 1),
|
|
25325
25473
|
"autofocus": i === 0 && props.autofocus,
|
|
25326
25474
|
"autocomplete": "one-time-code",
|
|
25327
|
-
"class": ['v-otp-input__field'],
|
|
25475
|
+
"class": vue.normalizeClass(['v-otp-input__field']),
|
|
25328
25476
|
"disabled": props.disabled,
|
|
25329
25477
|
"inputmode": props.type === 'number' ? 'numeric' : 'text',
|
|
25330
25478
|
"min": props.type === 'number' ? 0 : undefined,
|
|
@@ -29180,13 +29328,9 @@
|
|
|
29180
29328
|
let {
|
|
29181
29329
|
slots
|
|
29182
29330
|
} = _ref;
|
|
29183
|
-
const {
|
|
29184
|
-
isFocused,
|
|
29185
|
-
focus,
|
|
29186
|
-
blur
|
|
29187
|
-
} = useFocus(props);
|
|
29188
29331
|
const model = useProxiedModel(props, 'modelValue');
|
|
29189
29332
|
const menu = vue.shallowRef(false);
|
|
29333
|
+
const isFocused = vue.shallowRef(props.focused);
|
|
29190
29334
|
const isInteractive = vue.computed(() => !props.disabled && !props.readonly);
|
|
29191
29335
|
const display = vue.computed(() => model.value || null);
|
|
29192
29336
|
function onKeydown(e) {
|
|
@@ -29217,10 +29361,9 @@
|
|
|
29217
29361
|
"modelValue": display.value,
|
|
29218
29362
|
"onKeydown": isInteractive.value ? onKeydown : undefined,
|
|
29219
29363
|
"focused": menu.value || isFocused.value,
|
|
29220
|
-
"onFocus": focus,
|
|
29221
|
-
"onBlur": blur,
|
|
29222
29364
|
"onClick:control": isInteractive.value ? onClick : undefined,
|
|
29223
29365
|
"onClick:prependInner": isInteractive.value ? onClick : undefined,
|
|
29366
|
+
"onUpdate:focused": event => isFocused.value = event,
|
|
29224
29367
|
"onClick:appendInner": isInteractive.value ? onClick : undefined,
|
|
29225
29368
|
"onUpdate:modelValue": val => {
|
|
29226
29369
|
model.value = val;
|
|
@@ -29424,6 +29567,7 @@
|
|
|
29424
29567
|
emits: {
|
|
29425
29568
|
save: value => true,
|
|
29426
29569
|
cancel: () => true,
|
|
29570
|
+
'update:focused': val => true,
|
|
29427
29571
|
'update:modelValue': val => true,
|
|
29428
29572
|
'update:menu': val => true
|
|
29429
29573
|
},
|
|
@@ -29446,15 +29590,11 @@
|
|
|
29446
29590
|
const {
|
|
29447
29591
|
mobile
|
|
29448
29592
|
} = useDisplay(props);
|
|
29449
|
-
const {
|
|
29450
|
-
isFocused,
|
|
29451
|
-
focus,
|
|
29452
|
-
blur
|
|
29453
|
-
} = useFocus(props);
|
|
29454
29593
|
const emptyModelValue = () => props.multiple ? [] : null;
|
|
29455
29594
|
const model = useProxiedModel(props, 'modelValue', emptyModelValue(), val => Array.isArray(val) ? val.map(item => adapter.toJsDate(item)) : val ? adapter.toJsDate(val) : val, val => Array.isArray(val) ? val.map(item => adapter.date(item)) : val ? adapter.date(val) : val);
|
|
29456
29595
|
const menu = useProxiedModel(props, 'menu');
|
|
29457
29596
|
const isEditingInput = vue.shallowRef(false);
|
|
29597
|
+
const isFocused = vue.shallowRef(props.focused);
|
|
29458
29598
|
const vTextFieldRef = vue.ref();
|
|
29459
29599
|
const disabledActions = vue.ref(['save']);
|
|
29460
29600
|
function format(date) {
|
|
@@ -29530,7 +29670,6 @@
|
|
|
29530
29670
|
if (props.updateOn.includes('blur')) {
|
|
29531
29671
|
onUserInput(e.target);
|
|
29532
29672
|
}
|
|
29533
|
-
blur();
|
|
29534
29673
|
|
|
29535
29674
|
// When in mobile mode and editing is done (due to keyboard dismissal), close the menu
|
|
29536
29675
|
if (mobile.value && isEditingInput.value && !isFocused.value) {
|
|
@@ -29552,18 +29691,14 @@
|
|
|
29552
29691
|
const parts = value.trim().split(/\D+-\D+|[^\d\-/.]+/);
|
|
29553
29692
|
if (parts.every(isValid)) {
|
|
29554
29693
|
if (props.multiple === 'range') {
|
|
29555
|
-
|
|
29694
|
+
const [start, stop] = parts.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
|
|
29695
|
+
model.value = createDateRange(adapter, start, stop);
|
|
29556
29696
|
} else {
|
|
29557
29697
|
model.value = parts.map(parseDate);
|
|
29558
29698
|
}
|
|
29559
29699
|
}
|
|
29560
29700
|
}
|
|
29561
29701
|
}
|
|
29562
|
-
function getRange(inputDates) {
|
|
29563
|
-
const [start, stop] = inputDates.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
|
|
29564
|
-
const diff = adapter.getDiff(stop ?? start, start, 'days');
|
|
29565
|
-
return [start, ...createRange(diff, 1).map(i => adapter.addDays(start, i))];
|
|
29566
|
-
}
|
|
29567
29702
|
useRender(() => {
|
|
29568
29703
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
|
29569
29704
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
|
@@ -29579,12 +29714,12 @@
|
|
|
29579
29714
|
"readonly": isReadonly.value,
|
|
29580
29715
|
"onKeydown": isInteractive.value ? onKeydown : undefined,
|
|
29581
29716
|
"focused": menu.value || isFocused.value,
|
|
29582
|
-
"onFocus": focus,
|
|
29583
29717
|
"onBlur": onBlur,
|
|
29584
29718
|
"validationValue": model.value,
|
|
29585
29719
|
"onClick:control": isInteractive.value ? onClick : undefined,
|
|
29586
29720
|
"onClick:prepend": isInteractive.value ? onClick : undefined,
|
|
29587
|
-
"onUpdate:modelValue": onUpdateDisplayModel
|
|
29721
|
+
"onUpdate:modelValue": onUpdateDisplayModel,
|
|
29722
|
+
"onUpdate:focused": event => isFocused.value = event
|
|
29588
29723
|
}), {
|
|
29589
29724
|
...slots,
|
|
29590
29725
|
default: () => vue.createElementVNode(vue.Fragment, null, [vue.createVNode(VMenu, {
|
|
@@ -29799,6 +29934,9 @@
|
|
|
29799
29934
|
const isDragging = vue.shallowRef(false);
|
|
29800
29935
|
const vSheetRef = vue.ref(null);
|
|
29801
29936
|
const inputRef = vue.ref(null);
|
|
29937
|
+
const {
|
|
29938
|
+
handleDrop
|
|
29939
|
+
} = useFileDrop();
|
|
29802
29940
|
function onDragover(e) {
|
|
29803
29941
|
e.preventDefault();
|
|
29804
29942
|
e.stopImmediatePropagation();
|
|
@@ -29808,13 +29946,13 @@
|
|
|
29808
29946
|
e.preventDefault();
|
|
29809
29947
|
isDragging.value = false;
|
|
29810
29948
|
}
|
|
29811
|
-
function onDrop(e) {
|
|
29949
|
+
async function onDrop(e) {
|
|
29812
29950
|
e.preventDefault();
|
|
29813
29951
|
e.stopImmediatePropagation();
|
|
29814
29952
|
isDragging.value = false;
|
|
29815
|
-
if (!
|
|
29953
|
+
if (!inputRef.value) return;
|
|
29816
29954
|
const dataTransfer = new DataTransfer();
|
|
29817
|
-
for (const file of e
|
|
29955
|
+
for (const file of await handleDrop(e)) {
|
|
29818
29956
|
dataTransfer.items.add(file);
|
|
29819
29957
|
}
|
|
29820
29958
|
inputRef.value.files = dataTransfer.files;
|
|
@@ -30440,7 +30578,7 @@
|
|
|
30440
30578
|
});
|
|
30441
30579
|
useRender(() => {
|
|
30442
30580
|
return vue.createElementVNode("div", {
|
|
30443
|
-
"class": ['v-pull-to-refresh'],
|
|
30581
|
+
"class": vue.normalizeClass(['v-pull-to-refresh']),
|
|
30444
30582
|
"onTouchstart": onTouchstart,
|
|
30445
30583
|
"onTouchmove": onTouchmove,
|
|
30446
30584
|
"onTouchend": onTouchend,
|
|
@@ -30453,16 +30591,16 @@
|
|
|
30453
30591
|
"class": vue.normalizeClass(['v-pull-to-refresh__pull-down', {
|
|
30454
30592
|
'v-pull-to-refresh__pull-down--touching': touching.value
|
|
30455
30593
|
}]),
|
|
30456
|
-
"style":
|
|
30594
|
+
"style": {
|
|
30457
30595
|
top: convertToUnit(-1 * props.pullDownThreshold + topOffset.value),
|
|
30458
30596
|
height: convertToUnit(props.pullDownThreshold)
|
|
30459
|
-
}
|
|
30597
|
+
}
|
|
30460
30598
|
}, [slots.pullDownPanel ? slots.pullDownPanel({
|
|
30461
30599
|
canRefresh: canRefresh.value,
|
|
30462
30600
|
goingUp: goingUp.value,
|
|
30463
30601
|
refreshing: refreshing.value
|
|
30464
30602
|
}) : vue.createElementVNode("div", {
|
|
30465
|
-
"class": ['v-pull-to-refresh__pull-down-default']
|
|
30603
|
+
"class": vue.normalizeClass(['v-pull-to-refresh__pull-down-default'])
|
|
30466
30604
|
}, [refreshing.value ? vue.createVNode(VProgressCircular, {
|
|
30467
30605
|
"indeterminate": true,
|
|
30468
30606
|
"active": false
|
|
@@ -30472,9 +30610,9 @@
|
|
|
30472
30610
|
"class": vue.normalizeClass(['v-pull-to-refresh__scroll-container', {
|
|
30473
30611
|
'v-pull-to-refresh__scroll-container--touching': touching.value
|
|
30474
30612
|
}]),
|
|
30475
|
-
"style":
|
|
30613
|
+
"style": {
|
|
30476
30614
|
top: convertToUnit(topOffset.value)
|
|
30477
|
-
}
|
|
30615
|
+
}
|
|
30478
30616
|
}, [slots.default?.()])]);
|
|
30479
30617
|
});
|
|
30480
30618
|
}
|
|
@@ -32015,7 +32153,7 @@
|
|
|
32015
32153
|
};
|
|
32016
32154
|
});
|
|
32017
32155
|
}
|
|
32018
|
-
const version$1 = "3.8.
|
|
32156
|
+
const version$1 = "3.8.9";
|
|
32019
32157
|
createVuetify$1.version = version$1;
|
|
32020
32158
|
|
|
32021
32159
|
// Vue's inject() can only be used in setup
|
|
@@ -32313,7 +32451,7 @@
|
|
|
32313
32451
|
|
|
32314
32452
|
/* eslint-disable local-rules/sort-imports */
|
|
32315
32453
|
|
|
32316
|
-
const version = "3.8.
|
|
32454
|
+
const version = "3.8.9";
|
|
32317
32455
|
|
|
32318
32456
|
/* eslint-disable local-rules/sort-imports */
|
|
32319
32457
|
|