vuetify 3.8.3 → 3.8.4
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 +3888 -3884
- package/dist/json/importMap-labs.json +12 -12
- package/dist/json/importMap.json +142 -142
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +6709 -6699
- package/dist/vuetify-labs.cjs +107 -71
- package/dist/vuetify-labs.css +5358 -5358
- package/dist/vuetify-labs.d.ts +4100 -1172
- package/dist/vuetify-labs.esm.js +107 -71
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +107 -71
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +56 -29
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3018 -3018
- package/dist/vuetify.d.ts +4107 -1199
- package/dist/vuetify.esm.js +56 -29
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +56 -29
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +30 -27
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +795 -77
- package/lib/components/VAutocomplete/VAutocomplete.js +5 -0
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.d.ts +22 -46
- package/lib/components/VBottomNavigation/VBottomNavigation.d.ts +6 -6
- package/lib/components/VBottomSheet/VBottomSheet.d.ts +1434 -80
- package/lib/components/VCombobox/VCombobox.d.ts +795 -77
- package/lib/components/VCounter/VCounter.d.ts +22 -46
- package/lib/components/VDataIterator/VDataIterator.d.ts +22 -46
- package/lib/components/VDataTable/VDataTable.d.ts +110 -110
- package/lib/components/VDataTable/VDataTableHeaders.js +1 -2
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +62 -189
- package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +62 -189
- package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
- package/lib/components/VDataTable/composables/headers.d.ts +75 -75
- package/lib/components/VDataTable/composables/select.js +1 -1
- package/lib/components/VDataTable/composables/select.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.d.ts +3 -3
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +6 -6
- package/lib/components/VDialog/VDialog.d.ts +1048 -146
- package/lib/components/VDialog/VDialog.js +1 -1
- package/lib/components/VDialog/VDialog.js.map +1 -1
- package/lib/components/VFab/VFab.d.ts +22 -46
- package/lib/components/VFileInput/VFileInput.css +4 -0
- package/lib/components/VFileInput/VFileInput.js +21 -3
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +4 -0
- package/lib/components/VImg/VImg.d.ts +22 -49
- package/lib/components/VLazy/VLazy.d.ts +22 -46
- package/lib/components/VMenu/VMenu.d.ts +1048 -146
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VMessages/VMessages.d.ts +22 -46
- package/lib/components/VNumberInput/VNumberInput.d.ts +3 -3
- package/lib/components/VOverlay/VOverlay.d.ts +22 -49
- package/lib/components/VOverlay/locationStrategies.js +1 -1
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/components/VSelect/VSelect.d.ts +1235 -93
- package/lib/components/VSnackbar/VSnackbar.d.ts +58 -109
- package/lib/components/VSnackbarQueue/VSnackbarQueue.d.ts +22 -46
- package/lib/components/VSpeedDial/VSpeedDial.d.ts +1434 -80
- package/lib/components/VTable/VTable.css +2 -6
- package/lib/components/VTable/VTable.sass +4 -22
- package/lib/components/VTabs/VTabs.d.ts +6 -6
- package/lib/components/VTextField/VTextField.js +5 -3
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.d.ts +58 -109
- package/lib/components/VTooltip/VTooltip.js +2 -2
- package/lib/components/VTooltip/VTooltip.js.map +1 -1
- package/lib/components/transitions/dialog-transition.js +3 -3
- package/lib/components/transitions/dialog-transition.js.map +1 -1
- package/lib/composables/transition.d.ts +10 -20
- package/lib/composables/transition.js +15 -12
- package/lib/composables/transition.js.map +1 -1
- package/lib/entry-bundler.d.ts +6 -6
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +99 -138
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +3 -3
- package/lib/labs/VCalendar/VCalendarDay.d.ts +3 -3
- package/lib/labs/VCalendar/VCalendarInterval.d.ts +3 -3
- package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +3 -3
- package/lib/labs/VDateInput/VDateInput.d.ts +50 -13
- package/lib/labs/VDateInput/VDateInput.js +30 -9
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.js +19 -31
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js +2 -2
- package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
- package/lib/util/helpers.js.map +1 -1
- package/package.json +7 -7
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.8.
|
|
2
|
+
* Vuetify v3.8.4
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -2923,10 +2923,10 @@ const VDialogTransition = genericComponent()({
|
|
|
2923
2923
|
async onLeave(el, done) {
|
|
2924
2924
|
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
2925
2925
|
let dimensions;
|
|
2926
|
-
if (!Array.isArray(props.target)
|
|
2927
|
-
dimensions = saved.get(el);
|
|
2928
|
-
} else {
|
|
2926
|
+
if (!saved.has(el) || Array.isArray(props.target) || props.target.offsetParent || props.target.getClientRects().length) {
|
|
2929
2927
|
dimensions = getDimensions(props.target, el);
|
|
2928
|
+
} else {
|
|
2929
|
+
dimensions = saved.get(el);
|
|
2930
2930
|
}
|
|
2931
2931
|
const {
|
|
2932
2932
|
x,
|
|
@@ -3251,7 +3251,7 @@ function useRounded(props) {
|
|
|
3251
3251
|
|
|
3252
3252
|
const makeTransitionProps = propsFactory({
|
|
3253
3253
|
transition: {
|
|
3254
|
-
type:
|
|
3254
|
+
type: null,
|
|
3255
3255
|
default: 'fade-transition',
|
|
3256
3256
|
validator: val => val !== true
|
|
3257
3257
|
}
|
|
@@ -3269,16 +3269,19 @@ const MaybeTransition = (props, _ref) => {
|
|
|
3269
3269
|
const {
|
|
3270
3270
|
component = group ? TransitionGroup : Transition,
|
|
3271
3271
|
...customProps
|
|
3272
|
-
} =
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3272
|
+
} = isObject(transition) ? transition : {};
|
|
3273
|
+
let transitionProps;
|
|
3274
|
+
if (isObject(transition)) {
|
|
3275
|
+
transitionProps = mergeProps(customProps, JSON.parse(JSON.stringify({
|
|
3276
|
+
disabled,
|
|
3277
|
+
group
|
|
3278
|
+
})), rest);
|
|
3279
|
+
} else {
|
|
3280
|
+
transitionProps = mergeProps({
|
|
3281
|
+
name: disabled || !transition ? '' : transition
|
|
3282
|
+
}, rest);
|
|
3283
|
+
}
|
|
3284
|
+
return h(component, transitionProps, slots);
|
|
3282
3285
|
};
|
|
3283
3286
|
|
|
3284
3287
|
// Utilities
|
|
@@ -10161,7 +10164,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
10161
10164
|
observe = false;
|
|
10162
10165
|
requestAnimationFrame(() => observe = true);
|
|
10163
10166
|
if (!data.target.value || !data.contentEl.value) return;
|
|
10164
|
-
if (Array.isArray(data.target.value) || data.target.value.offsetParent) {
|
|
10167
|
+
if (Array.isArray(data.target.value) || data.target.value.offsetParent || data.target.value.getClientRects().length) {
|
|
10165
10168
|
targetBox = getTargetBox(data.target.value);
|
|
10166
10169
|
} // Otherwise target element is hidden, use last known value
|
|
10167
10170
|
|
|
@@ -12081,11 +12084,12 @@ const VTextField = genericComponent()({
|
|
|
12081
12084
|
onFocus();
|
|
12082
12085
|
emit('click:control', e);
|
|
12083
12086
|
}
|
|
12084
|
-
function onClear(e) {
|
|
12087
|
+
function onClear(e, reset) {
|
|
12085
12088
|
e.stopPropagation();
|
|
12086
12089
|
onFocus();
|
|
12087
12090
|
nextTick(() => {
|
|
12088
12091
|
model.value = null;
|
|
12092
|
+
reset();
|
|
12089
12093
|
callEvent(props['onClick:clear'], e);
|
|
12090
12094
|
});
|
|
12091
12095
|
}
|
|
@@ -12130,13 +12134,14 @@ const VTextField = genericComponent()({
|
|
|
12130
12134
|
isDisabled,
|
|
12131
12135
|
isDirty,
|
|
12132
12136
|
isReadonly,
|
|
12133
|
-
isValid
|
|
12137
|
+
isValid,
|
|
12138
|
+
reset
|
|
12134
12139
|
} = _ref2;
|
|
12135
12140
|
return createVNode(VField, mergeProps({
|
|
12136
12141
|
"ref": vFieldRef,
|
|
12137
12142
|
"onMousedown": onControlMousedown,
|
|
12138
12143
|
"onClick": onControlClick,
|
|
12139
|
-
"onClick:clear": onClear,
|
|
12144
|
+
"onClick:clear": e => onClear(e, reset),
|
|
12140
12145
|
"onClick:prependInner": props['onClick:prependInner'],
|
|
12141
12146
|
"onClick:appendInner": props['onClick:appendInner'],
|
|
12142
12147
|
"role": props.role
|
|
@@ -13497,6 +13502,11 @@ const VAutocomplete = genericComponent()({
|
|
|
13497
13502
|
menu.value = true;
|
|
13498
13503
|
}
|
|
13499
13504
|
});
|
|
13505
|
+
watch(model, value => {
|
|
13506
|
+
if (!props.multiple && !hasSelectionSlot.value) {
|
|
13507
|
+
search.value = value[0]?.title ?? '';
|
|
13508
|
+
}
|
|
13509
|
+
});
|
|
13500
13510
|
useRender(() => {
|
|
13501
13511
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
13502
13512
|
const isDirty = model.value.length > 0;
|
|
@@ -14116,7 +14126,7 @@ const VDialog = genericComponent()({
|
|
|
14116
14126
|
}
|
|
14117
14127
|
function onAfterEnter() {
|
|
14118
14128
|
emit('afterEnter');
|
|
14119
|
-
if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
|
|
14129
|
+
if ((props.scrim || props.retainFocus) && overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
|
|
14120
14130
|
overlay.value.contentEl.focus({
|
|
14121
14131
|
preventScroll: true
|
|
14122
14132
|
});
|
|
@@ -18988,7 +18998,7 @@ function provideSelection(props, _ref9) {
|
|
|
18988
18998
|
index = index ?? currentPage.value.findIndex(i => i.value === item.value);
|
|
18989
18999
|
if (props.selectStrategy !== 'single' && event?.shiftKey && lastSelectedIndex.value !== null) {
|
|
18990
19000
|
const [start, end] = [lastSelectedIndex.value, index].sort((a, b) => a - b);
|
|
18991
|
-
items.push(...currentPage.value.slice(start, end + 1));
|
|
19001
|
+
items.push(...currentPage.value.slice(start, end + 1).filter(item => item.selectable));
|
|
18992
19002
|
} else {
|
|
18993
19003
|
items.push(item);
|
|
18994
19004
|
lastSelectedIndex.value = index;
|
|
@@ -20324,7 +20334,6 @@ const VDataTableHeaders = genericComponent()({
|
|
|
20324
20334
|
});
|
|
20325
20335
|
};
|
|
20326
20336
|
const VDataTableMobileHeaderCell = () => {
|
|
20327
|
-
const headerProps = mergeProps(props.headerProps ?? {} ?? {});
|
|
20328
20337
|
const displayItems = computed(() => {
|
|
20329
20338
|
return columns.value.filter(column => column?.sortable && !props.disableSort);
|
|
20330
20339
|
});
|
|
@@ -20337,7 +20346,7 @@ const VDataTableHeaders = genericComponent()({
|
|
|
20337
20346
|
"tag": "th",
|
|
20338
20347
|
"class": [...headerCellClasses.value],
|
|
20339
20348
|
"colspan": headers.value.length + 1
|
|
20340
|
-
}, headerProps), {
|
|
20349
|
+
}, props.headerProps), {
|
|
20341
20350
|
default: () => [createVNode("div", {
|
|
20342
20351
|
"class": "v-data-table-header__content"
|
|
20343
20352
|
}, [createVNode(VSelect, {
|
|
@@ -23260,6 +23269,7 @@ const VFileInput = genericComponent()({
|
|
|
23260
23269
|
const inputRef = ref();
|
|
23261
23270
|
const isActive = toRef(() => isFocused.value || props.active);
|
|
23262
23271
|
const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
|
|
23272
|
+
const isDragging = shallowRef(false);
|
|
23263
23273
|
function onFocus() {
|
|
23264
23274
|
if (inputRef.value !== document.activeElement) {
|
|
23265
23275
|
inputRef.value?.focus();
|
|
@@ -23286,11 +23296,26 @@ const VFileInput = genericComponent()({
|
|
|
23286
23296
|
}
|
|
23287
23297
|
function onDragover(e) {
|
|
23288
23298
|
e.preventDefault();
|
|
23299
|
+
e.stopImmediatePropagation();
|
|
23300
|
+
isDragging.value = true;
|
|
23301
|
+
}
|
|
23302
|
+
function onDragleave(e) {
|
|
23303
|
+
e.preventDefault();
|
|
23304
|
+
isDragging.value = false;
|
|
23289
23305
|
}
|
|
23290
23306
|
function onDrop(e) {
|
|
23291
23307
|
e.preventDefault();
|
|
23292
|
-
|
|
23293
|
-
|
|
23308
|
+
e.stopImmediatePropagation();
|
|
23309
|
+
isDragging.value = false;
|
|
23310
|
+
if (!e.dataTransfer?.files?.length || !inputRef.value) return;
|
|
23311
|
+
const dataTransfer = new DataTransfer();
|
|
23312
|
+
for (const file of e.dataTransfer.files) {
|
|
23313
|
+
dataTransfer.items.add(file);
|
|
23314
|
+
}
|
|
23315
|
+
inputRef.value.files = dataTransfer.files;
|
|
23316
|
+
inputRef.value.dispatchEvent(new Event('change', {
|
|
23317
|
+
bubbles: true
|
|
23318
|
+
}));
|
|
23294
23319
|
}
|
|
23295
23320
|
watch(model, newValue => {
|
|
23296
23321
|
const hasModelReset = !Array.isArray(newValue) || !newValue.length;
|
|
@@ -23312,6 +23337,7 @@ const VFileInput = genericComponent()({
|
|
|
23312
23337
|
"modelValue": props.multiple ? model.value : model.value[0],
|
|
23313
23338
|
"class": ['v-file-input', {
|
|
23314
23339
|
'v-file-input--chips': !!props.chips,
|
|
23340
|
+
'v-file-input--dragging': isDragging.value,
|
|
23315
23341
|
'v-file-input--hide': props.hideInput,
|
|
23316
23342
|
'v-input--plain-underlined': isPlainOrUnderlined.value
|
|
23317
23343
|
}, props.class],
|
|
@@ -23373,6 +23399,7 @@ const VFileInput = genericComponent()({
|
|
|
23373
23399
|
const target = e.target;
|
|
23374
23400
|
model.value = [...(target.files ?? [])];
|
|
23375
23401
|
},
|
|
23402
|
+
"onDragleave": onDragleave,
|
|
23376
23403
|
"onFocus": onFocus,
|
|
23377
23404
|
"onBlur": blur
|
|
23378
23405
|
}, slotProps, inputAttrs), null), createVNode("div", {
|
|
@@ -28360,7 +28387,7 @@ const makeVTooltipProps = propsFactory({
|
|
|
28360
28387
|
origin: 'auto',
|
|
28361
28388
|
scrim: false,
|
|
28362
28389
|
scrollStrategy: 'reposition',
|
|
28363
|
-
transition:
|
|
28390
|
+
transition: null
|
|
28364
28391
|
}), ['absolute', 'persistent'])
|
|
28365
28392
|
}, 'VTooltip');
|
|
28366
28393
|
const VTooltip = genericComponent()({
|
|
@@ -28387,7 +28414,7 @@ const VTooltip = genericComponent()({
|
|
|
28387
28414
|
return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';
|
|
28388
28415
|
});
|
|
28389
28416
|
const transition = toRef(() => {
|
|
28390
|
-
if (props.transition) return props.transition;
|
|
28417
|
+
if (props.transition != null) return props.transition;
|
|
28391
28418
|
return isActive.value ? 'scale-transition' : 'fade-transition';
|
|
28392
28419
|
});
|
|
28393
28420
|
const activatorProps = computed(() => mergeProps({
|
|
@@ -29058,7 +29085,13 @@ const makeVDateInputProps = propsFactory({
|
|
|
29058
29085
|
type: String,
|
|
29059
29086
|
default: 'bottom start'
|
|
29060
29087
|
},
|
|
29061
|
-
|
|
29088
|
+
updateOn: {
|
|
29089
|
+
type: Array,
|
|
29090
|
+
default: () => ['blur', 'enter']
|
|
29091
|
+
},
|
|
29092
|
+
...makeDisplayProps({
|
|
29093
|
+
mobile: null
|
|
29094
|
+
}),
|
|
29062
29095
|
...makeFocusProps(),
|
|
29063
29096
|
...makeVConfirmEditProps({
|
|
29064
29097
|
hideActions: true
|
|
@@ -29097,7 +29130,8 @@ const VDateInput = genericComponent()({
|
|
|
29097
29130
|
focus,
|
|
29098
29131
|
blur
|
|
29099
29132
|
} = useFocus(props);
|
|
29100
|
-
const
|
|
29133
|
+
const emptyModelValue = () => props.multiple ? [] : null;
|
|
29134
|
+
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);
|
|
29101
29135
|
const menu = shallowRef(false);
|
|
29102
29136
|
const isEditingInput = shallowRef(false);
|
|
29103
29137
|
const vTextFieldRef = ref();
|
|
@@ -29128,7 +29162,10 @@ const VDateInput = genericComponent()({
|
|
|
29128
29162
|
return 'none';
|
|
29129
29163
|
});
|
|
29130
29164
|
const isInteractive = computed(() => !props.disabled && !props.readonly);
|
|
29131
|
-
const isReadonly = computed(() =>
|
|
29165
|
+
const isReadonly = computed(() => {
|
|
29166
|
+
if (!props.updateOn.length) return true;
|
|
29167
|
+
return !(mobile.value && isEditingInput.value) && props.readonly;
|
|
29168
|
+
});
|
|
29132
29169
|
watch(menu, val => {
|
|
29133
29170
|
if (val) return;
|
|
29134
29171
|
isEditingInput.value = false;
|
|
@@ -29140,8 +29177,9 @@ const VDateInput = genericComponent()({
|
|
|
29140
29177
|
menu.value = true;
|
|
29141
29178
|
return;
|
|
29142
29179
|
}
|
|
29143
|
-
|
|
29144
|
-
|
|
29180
|
+
if (props.updateOn.includes('enter')) {
|
|
29181
|
+
onUserInput(e.target);
|
|
29182
|
+
}
|
|
29145
29183
|
}
|
|
29146
29184
|
function onClick(e) {
|
|
29147
29185
|
e.preventDefault();
|
|
@@ -29163,9 +29201,12 @@ const VDateInput = genericComponent()({
|
|
|
29163
29201
|
}
|
|
29164
29202
|
function onUpdateDisplayModel(value) {
|
|
29165
29203
|
if (value != null) return;
|
|
29166
|
-
model.value =
|
|
29204
|
+
model.value = emptyModelValue();
|
|
29167
29205
|
}
|
|
29168
|
-
function onBlur() {
|
|
29206
|
+
function onBlur(e) {
|
|
29207
|
+
if (props.updateOn.includes('blur')) {
|
|
29208
|
+
onUserInput(e.target);
|
|
29209
|
+
}
|
|
29169
29210
|
blur();
|
|
29170
29211
|
|
|
29171
29212
|
// When in mobile mode and editing is done (due to keyboard dismissal), close the menu
|
|
@@ -29174,6 +29215,13 @@ const VDateInput = genericComponent()({
|
|
|
29174
29215
|
isEditingInput.value = false;
|
|
29175
29216
|
}
|
|
29176
29217
|
}
|
|
29218
|
+
function onUserInput(_ref2) {
|
|
29219
|
+
let {
|
|
29220
|
+
value
|
|
29221
|
+
} = _ref2;
|
|
29222
|
+
if (value && !adapter.isValid(value)) return;
|
|
29223
|
+
model.value = !value ? emptyModelValue() : value;
|
|
29224
|
+
}
|
|
29177
29225
|
useRender(() => {
|
|
29178
29226
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
|
29179
29227
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
|
@@ -29212,14 +29260,14 @@ const VDateInput = genericComponent()({
|
|
|
29212
29260
|
"onSave": onSave,
|
|
29213
29261
|
"onCancel": onCancel
|
|
29214
29262
|
}), {
|
|
29215
|
-
default:
|
|
29263
|
+
default: _ref3 => {
|
|
29216
29264
|
let {
|
|
29217
29265
|
actions,
|
|
29218
29266
|
model: proxyModel,
|
|
29219
29267
|
save,
|
|
29220
29268
|
cancel,
|
|
29221
29269
|
isPristine
|
|
29222
|
-
} =
|
|
29270
|
+
} = _ref3;
|
|
29223
29271
|
function onUpdateModel(value) {
|
|
29224
29272
|
if (!props.hideActions) {
|
|
29225
29273
|
proxyModel.value = value;
|
|
@@ -29404,43 +29452,31 @@ const VFileUpload = genericComponent()({
|
|
|
29404
29452
|
densityClasses
|
|
29405
29453
|
} = useDensity(props);
|
|
29406
29454
|
const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => props.multiple || Array.isArray(props.modelValue) ? val : val[0]);
|
|
29407
|
-
const
|
|
29455
|
+
const isDragging = shallowRef(false);
|
|
29408
29456
|
const vSheetRef = ref(null);
|
|
29409
29457
|
const inputRef = ref(null);
|
|
29410
|
-
|
|
29411
|
-
vSheetRef.value?.$el.addEventListener('dragover', onDragOver);
|
|
29412
|
-
vSheetRef.value?.$el.addEventListener('drop', onDrop);
|
|
29413
|
-
});
|
|
29414
|
-
onUnmounted(() => {
|
|
29415
|
-
vSheetRef.value?.$el.removeEventListener('dragover', onDragOver);
|
|
29416
|
-
vSheetRef.value?.$el.removeEventListener('drop', onDrop);
|
|
29417
|
-
});
|
|
29418
|
-
function onDragOver(e) {
|
|
29458
|
+
function onDragover(e) {
|
|
29419
29459
|
e.preventDefault();
|
|
29420
29460
|
e.stopImmediatePropagation();
|
|
29421
|
-
|
|
29461
|
+
isDragging.value = true;
|
|
29422
29462
|
}
|
|
29423
|
-
function
|
|
29463
|
+
function onDragleave(e) {
|
|
29424
29464
|
e.preventDefault();
|
|
29425
|
-
|
|
29465
|
+
isDragging.value = false;
|
|
29426
29466
|
}
|
|
29427
29467
|
function onDrop(e) {
|
|
29428
29468
|
e.preventDefault();
|
|
29429
29469
|
e.stopImmediatePropagation();
|
|
29430
|
-
|
|
29431
|
-
|
|
29432
|
-
|
|
29433
|
-
|
|
29434
|
-
|
|
29435
|
-
|
|
29436
|
-
|
|
29437
|
-
|
|
29438
|
-
|
|
29439
|
-
|
|
29440
|
-
array.push(file);
|
|
29441
|
-
}
|
|
29442
|
-
}
|
|
29443
|
-
model.value = array;
|
|
29470
|
+
isDragging.value = false;
|
|
29471
|
+
if (!e.dataTransfer?.files?.length || !inputRef.value) return;
|
|
29472
|
+
const dataTransfer = new DataTransfer();
|
|
29473
|
+
for (const file of e.dataTransfer.files) {
|
|
29474
|
+
dataTransfer.items.add(file);
|
|
29475
|
+
}
|
|
29476
|
+
inputRef.value.files = dataTransfer.files;
|
|
29477
|
+
inputRef.value.dispatchEvent(new Event('change', {
|
|
29478
|
+
bubbles: true
|
|
29479
|
+
}));
|
|
29444
29480
|
}
|
|
29445
29481
|
function onClick() {
|
|
29446
29482
|
inputRef.value?.click();
|
|
@@ -29476,11 +29512,11 @@ const VFileUpload = genericComponent()({
|
|
|
29476
29512
|
"class": ['v-file-upload', {
|
|
29477
29513
|
'v-file-upload--clickable': !hasBrowse,
|
|
29478
29514
|
'v-file-upload--disabled': props.disabled,
|
|
29479
|
-
'v-file-upload--dragging':
|
|
29515
|
+
'v-file-upload--dragging': isDragging.value
|
|
29480
29516
|
}, densityClasses.value, props.class],
|
|
29481
29517
|
"style": [props.style],
|
|
29482
|
-
"onDragleave":
|
|
29483
|
-
"onDragover":
|
|
29518
|
+
"onDragleave": onDragleave,
|
|
29519
|
+
"onDragover": onDragover,
|
|
29484
29520
|
"onDrop": onDrop,
|
|
29485
29521
|
"onClick": !hasBrowse ? onClick : undefined
|
|
29486
29522
|
}, rootAttrs), {
|
|
@@ -29531,7 +29567,7 @@ const VFileUpload = genericComponent()({
|
|
|
29531
29567
|
})]), props.subtitle && createVNode("div", {
|
|
29532
29568
|
"class": "v-file-upload-subtitle"
|
|
29533
29569
|
}, [props.subtitle])]), createVNode(VOverlay, {
|
|
29534
|
-
"model-value":
|
|
29570
|
+
"model-value": isDragging.value,
|
|
29535
29571
|
"contained": true,
|
|
29536
29572
|
"scrim": props.scrim
|
|
29537
29573
|
}, null), slots.input?.({
|
|
@@ -30229,8 +30265,8 @@ const VTimePickerClock = genericComponent()({
|
|
|
30229
30265
|
y
|
|
30230
30266
|
} = getPosition(i);
|
|
30231
30267
|
return {
|
|
30232
|
-
left: `${50 + x * 50}%`,
|
|
30233
|
-
top: `${50 + y * 50}%`
|
|
30268
|
+
left: `${Math.round(50 + x * 50)}%`,
|
|
30269
|
+
top: `${Math.round(50 + y * 50)}%`
|
|
30234
30270
|
};
|
|
30235
30271
|
}
|
|
30236
30272
|
function euclidean(p0, p1) {
|
|
@@ -31634,7 +31670,7 @@ function createVuetify$1() {
|
|
|
31634
31670
|
};
|
|
31635
31671
|
});
|
|
31636
31672
|
}
|
|
31637
|
-
const version$1 = "3.8.
|
|
31673
|
+
const version$1 = "3.8.4";
|
|
31638
31674
|
createVuetify$1.version = version$1;
|
|
31639
31675
|
|
|
31640
31676
|
// Vue's inject() can only be used in setup
|
|
@@ -31932,7 +31968,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
31932
31968
|
|
|
31933
31969
|
/* eslint-disable local-rules/sort-imports */
|
|
31934
31970
|
|
|
31935
|
-
const version = "3.8.
|
|
31971
|
+
const version = "3.8.4";
|
|
31936
31972
|
|
|
31937
31973
|
/* eslint-disable local-rules/sort-imports */
|
|
31938
31974
|
|