vuetify 3.8.3 → 3.8.5
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/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +4267 -3919
- package/dist/json/importMap-labs.json +28 -24
- package/dist/json/importMap.json +164 -164
- package/dist/json/tags.json +92 -0
- package/dist/json/web-types.json +8380 -7153
- package/dist/vuetify-labs.cjs +374 -79
- package/dist/vuetify-labs.css +3864 -3836
- package/dist/vuetify-labs.d.ts +5818 -1810
- package/dist/vuetify-labs.esm.js +374 -79
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +374 -79
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +53 -30
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3556 -3531
- package/dist/vuetify.d.ts +4121 -1210
- package/dist/vuetify.esm.js +53 -30
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +53 -30
- 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/VBadge/VBadge.d.ts +22 -46
- package/lib/components/VBottomNavigation/VBottomNavigation.d.ts +6 -6
- package/lib/components/VBottomSheet/VBottomSheet.css +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.d.ts +1434 -80
- package/lib/components/VBottomSheet/VBottomSheet.sass +1 -1
- package/lib/components/VBtn/VBtn.css +25 -0
- package/lib/components/VBtn/VBtn.sass +9 -0
- package/lib/components/VBtn/_variables.scss +1 -0
- 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 +25 -47
- package/lib/components/VSnackbarQueue/VSnackbarQueue.js.map +1 -1
- 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/dateFormat.d.ts +24 -0
- package/lib/composables/dateFormat.js +112 -0
- package/lib/composables/dateFormat.js.map +1 -0
- 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 +113 -149
- package/lib/framework.js +1 -1
- package/lib/iconsets/mdi.js +2 -1
- package/lib/iconsets/mdi.js.map +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/VColorInput/VColorInput.css +4 -0
- package/lib/labs/VColorInput/VColorInput.d.ts +1767 -0
- package/lib/labs/VColorInput/VColorInput.js +129 -0
- package/lib/labs/VColorInput/VColorInput.js.map +1 -0
- package/lib/labs/VColorInput/VColorInput.sass +7 -0
- package/lib/labs/VColorInput/_variables.scss +2 -0
- package/lib/labs/VColorInput/index.d.ts +1 -0
- package/lib/labs/VColorInput/index.js +2 -0
- package/lib/labs/VColorInput/index.js.map +1 -0
- package/lib/labs/VDateInput/VDateInput.d.ts +96 -34
- package/lib/labs/VDateInput/VDateInput.js +71 -17
- 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/labs/components.d.ts +1 -0
- package/lib/labs/components.js +1 -0
- package/lib/labs/components.js.map +1 -1
- package/lib/util/helpers.js.map +1 -1
- package/package.json +7 -8
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.8.
|
|
2
|
+
* Vuetify v3.8.5
|
|
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
|
|
@@ -4503,7 +4506,8 @@ const aliases = {
|
|
|
4503
4506
|
treeviewCollapse: 'mdi-menu-down',
|
|
4504
4507
|
treeviewExpand: 'mdi-menu-right',
|
|
4505
4508
|
eyeDropper: 'mdi-eyedropper',
|
|
4506
|
-
upload: 'mdi-cloud-upload'
|
|
4509
|
+
upload: 'mdi-cloud-upload',
|
|
4510
|
+
color: 'mdi-palette'
|
|
4507
4511
|
};
|
|
4508
4512
|
const mdi = {
|
|
4509
4513
|
// Not using mergeProps here, functional components merge props by default (?)
|
|
@@ -10161,7 +10165,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
10161
10165
|
observe = false;
|
|
10162
10166
|
requestAnimationFrame(() => observe = true);
|
|
10163
10167
|
if (!data.target.value || !data.contentEl.value) return;
|
|
10164
|
-
if (Array.isArray(data.target.value) || data.target.value.offsetParent) {
|
|
10168
|
+
if (Array.isArray(data.target.value) || data.target.value.offsetParent || data.target.value.getClientRects().length) {
|
|
10165
10169
|
targetBox = getTargetBox(data.target.value);
|
|
10166
10170
|
} // Otherwise target element is hidden, use last known value
|
|
10167
10171
|
|
|
@@ -12081,11 +12085,12 @@ const VTextField = genericComponent()({
|
|
|
12081
12085
|
onFocus();
|
|
12082
12086
|
emit('click:control', e);
|
|
12083
12087
|
}
|
|
12084
|
-
function onClear(e) {
|
|
12088
|
+
function onClear(e, reset) {
|
|
12085
12089
|
e.stopPropagation();
|
|
12086
12090
|
onFocus();
|
|
12087
12091
|
nextTick(() => {
|
|
12088
12092
|
model.value = null;
|
|
12093
|
+
reset();
|
|
12089
12094
|
callEvent(props['onClick:clear'], e);
|
|
12090
12095
|
});
|
|
12091
12096
|
}
|
|
@@ -12130,13 +12135,14 @@ const VTextField = genericComponent()({
|
|
|
12130
12135
|
isDisabled,
|
|
12131
12136
|
isDirty,
|
|
12132
12137
|
isReadonly,
|
|
12133
|
-
isValid
|
|
12138
|
+
isValid,
|
|
12139
|
+
reset
|
|
12134
12140
|
} = _ref2;
|
|
12135
12141
|
return createVNode(VField, mergeProps({
|
|
12136
12142
|
"ref": vFieldRef,
|
|
12137
12143
|
"onMousedown": onControlMousedown,
|
|
12138
12144
|
"onClick": onControlClick,
|
|
12139
|
-
"onClick:clear": onClear,
|
|
12145
|
+
"onClick:clear": e => onClear(e, reset),
|
|
12140
12146
|
"onClick:prependInner": props['onClick:prependInner'],
|
|
12141
12147
|
"onClick:appendInner": props['onClick:appendInner'],
|
|
12142
12148
|
"role": props.role
|
|
@@ -14116,7 +14122,7 @@ const VDialog = genericComponent()({
|
|
|
14116
14122
|
}
|
|
14117
14123
|
function onAfterEnter() {
|
|
14118
14124
|
emit('afterEnter');
|
|
14119
|
-
if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
|
|
14125
|
+
if ((props.scrim || props.retainFocus) && overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
|
|
14120
14126
|
overlay.value.contentEl.focus({
|
|
14121
14127
|
preventScroll: true
|
|
14122
14128
|
});
|
|
@@ -18988,7 +18994,7 @@ function provideSelection(props, _ref9) {
|
|
|
18988
18994
|
index = index ?? currentPage.value.findIndex(i => i.value === item.value);
|
|
18989
18995
|
if (props.selectStrategy !== 'single' && event?.shiftKey && lastSelectedIndex.value !== null) {
|
|
18990
18996
|
const [start, end] = [lastSelectedIndex.value, index].sort((a, b) => a - b);
|
|
18991
|
-
items.push(...currentPage.value.slice(start, end + 1));
|
|
18997
|
+
items.push(...currentPage.value.slice(start, end + 1).filter(item => item.selectable));
|
|
18992
18998
|
} else {
|
|
18993
18999
|
items.push(item);
|
|
18994
19000
|
lastSelectedIndex.value = index;
|
|
@@ -20324,7 +20330,6 @@ const VDataTableHeaders = genericComponent()({
|
|
|
20324
20330
|
});
|
|
20325
20331
|
};
|
|
20326
20332
|
const VDataTableMobileHeaderCell = () => {
|
|
20327
|
-
const headerProps = mergeProps(props.headerProps ?? {} ?? {});
|
|
20328
20333
|
const displayItems = computed(() => {
|
|
20329
20334
|
return columns.value.filter(column => column?.sortable && !props.disableSort);
|
|
20330
20335
|
});
|
|
@@ -20337,7 +20342,7 @@ const VDataTableHeaders = genericComponent()({
|
|
|
20337
20342
|
"tag": "th",
|
|
20338
20343
|
"class": [...headerCellClasses.value],
|
|
20339
20344
|
"colspan": headers.value.length + 1
|
|
20340
|
-
}, headerProps), {
|
|
20345
|
+
}, props.headerProps), {
|
|
20341
20346
|
default: () => [createVNode("div", {
|
|
20342
20347
|
"class": "v-data-table-header__content"
|
|
20343
20348
|
}, [createVNode(VSelect, {
|
|
@@ -23260,6 +23265,7 @@ const VFileInput = genericComponent()({
|
|
|
23260
23265
|
const inputRef = ref();
|
|
23261
23266
|
const isActive = toRef(() => isFocused.value || props.active);
|
|
23262
23267
|
const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
|
|
23268
|
+
const isDragging = shallowRef(false);
|
|
23263
23269
|
function onFocus() {
|
|
23264
23270
|
if (inputRef.value !== document.activeElement) {
|
|
23265
23271
|
inputRef.value?.focus();
|
|
@@ -23286,11 +23292,26 @@ const VFileInput = genericComponent()({
|
|
|
23286
23292
|
}
|
|
23287
23293
|
function onDragover(e) {
|
|
23288
23294
|
e.preventDefault();
|
|
23295
|
+
e.stopImmediatePropagation();
|
|
23296
|
+
isDragging.value = true;
|
|
23297
|
+
}
|
|
23298
|
+
function onDragleave(e) {
|
|
23299
|
+
e.preventDefault();
|
|
23300
|
+
isDragging.value = false;
|
|
23289
23301
|
}
|
|
23290
23302
|
function onDrop(e) {
|
|
23291
23303
|
e.preventDefault();
|
|
23292
|
-
|
|
23293
|
-
|
|
23304
|
+
e.stopImmediatePropagation();
|
|
23305
|
+
isDragging.value = false;
|
|
23306
|
+
if (!e.dataTransfer?.files?.length || !inputRef.value) return;
|
|
23307
|
+
const dataTransfer = new DataTransfer();
|
|
23308
|
+
for (const file of e.dataTransfer.files) {
|
|
23309
|
+
dataTransfer.items.add(file);
|
|
23310
|
+
}
|
|
23311
|
+
inputRef.value.files = dataTransfer.files;
|
|
23312
|
+
inputRef.value.dispatchEvent(new Event('change', {
|
|
23313
|
+
bubbles: true
|
|
23314
|
+
}));
|
|
23294
23315
|
}
|
|
23295
23316
|
watch(model, newValue => {
|
|
23296
23317
|
const hasModelReset = !Array.isArray(newValue) || !newValue.length;
|
|
@@ -23312,6 +23333,7 @@ const VFileInput = genericComponent()({
|
|
|
23312
23333
|
"modelValue": props.multiple ? model.value : model.value[0],
|
|
23313
23334
|
"class": ['v-file-input', {
|
|
23314
23335
|
'v-file-input--chips': !!props.chips,
|
|
23336
|
+
'v-file-input--dragging': isDragging.value,
|
|
23315
23337
|
'v-file-input--hide': props.hideInput,
|
|
23316
23338
|
'v-input--plain-underlined': isPlainOrUnderlined.value
|
|
23317
23339
|
}, props.class],
|
|
@@ -23373,6 +23395,7 @@ const VFileInput = genericComponent()({
|
|
|
23373
23395
|
const target = e.target;
|
|
23374
23396
|
model.value = [...(target.files ?? [])];
|
|
23375
23397
|
},
|
|
23398
|
+
"onDragleave": onDragleave,
|
|
23376
23399
|
"onFocus": onFocus,
|
|
23377
23400
|
"onBlur": blur
|
|
23378
23401
|
}, slotProps, inputAttrs), null), createVNode("div", {
|
|
@@ -28360,7 +28383,7 @@ const makeVTooltipProps = propsFactory({
|
|
|
28360
28383
|
origin: 'auto',
|
|
28361
28384
|
scrim: false,
|
|
28362
28385
|
scrollStrategy: 'reposition',
|
|
28363
|
-
transition:
|
|
28386
|
+
transition: null
|
|
28364
28387
|
}), ['absolute', 'persistent'])
|
|
28365
28388
|
}, 'VTooltip');
|
|
28366
28389
|
const VTooltip = genericComponent()({
|
|
@@ -28387,7 +28410,7 @@ const VTooltip = genericComponent()({
|
|
|
28387
28410
|
return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';
|
|
28388
28411
|
});
|
|
28389
28412
|
const transition = toRef(() => {
|
|
28390
|
-
if (props.transition) return props.transition;
|
|
28413
|
+
if (props.transition != null) return props.transition;
|
|
28391
28414
|
return isActive.value ? 'scale-transition' : 'fade-transition';
|
|
28392
28415
|
});
|
|
28393
28416
|
const activatorProps = computed(() => mergeProps({
|
|
@@ -29050,6 +29073,236 @@ const VCalendar = genericComponent()({
|
|
|
29050
29073
|
|
|
29051
29074
|
// Types
|
|
29052
29075
|
|
|
29076
|
+
const makeVColorInputProps = propsFactory({
|
|
29077
|
+
pip: Boolean,
|
|
29078
|
+
pipIcon: {
|
|
29079
|
+
type: String,
|
|
29080
|
+
default: '$color'
|
|
29081
|
+
},
|
|
29082
|
+
...makeFocusProps(),
|
|
29083
|
+
...makeVConfirmEditProps(),
|
|
29084
|
+
...makeVTextFieldProps(),
|
|
29085
|
+
...omit(makeVColorPickerProps(), ['width'])
|
|
29086
|
+
}, 'VColorInput');
|
|
29087
|
+
const VColorInput = genericComponent()({
|
|
29088
|
+
name: 'VColorInput',
|
|
29089
|
+
props: makeVColorInputProps(),
|
|
29090
|
+
emits: {
|
|
29091
|
+
'update:modelValue': val => true
|
|
29092
|
+
},
|
|
29093
|
+
setup(props, _ref) {
|
|
29094
|
+
let {
|
|
29095
|
+
slots
|
|
29096
|
+
} = _ref;
|
|
29097
|
+
const {
|
|
29098
|
+
isFocused,
|
|
29099
|
+
focus,
|
|
29100
|
+
blur
|
|
29101
|
+
} = useFocus(props);
|
|
29102
|
+
const model = useProxiedModel(props, 'modelValue');
|
|
29103
|
+
const menu = shallowRef(false);
|
|
29104
|
+
const isInteractive = computed(() => !props.disabled && !props.readonly);
|
|
29105
|
+
const display = computed(() => model.value || null);
|
|
29106
|
+
function onKeydown(e) {
|
|
29107
|
+
if (e.key !== 'Enter') return;
|
|
29108
|
+
if (!menu.value || !isFocused.value) {
|
|
29109
|
+
menu.value = true;
|
|
29110
|
+
return;
|
|
29111
|
+
}
|
|
29112
|
+
const target = e.target;
|
|
29113
|
+
model.value = target.value;
|
|
29114
|
+
}
|
|
29115
|
+
function onClick(e) {
|
|
29116
|
+
e.preventDefault();
|
|
29117
|
+
e.stopPropagation();
|
|
29118
|
+
menu.value = true;
|
|
29119
|
+
}
|
|
29120
|
+
function onSave() {
|
|
29121
|
+
menu.value = false;
|
|
29122
|
+
}
|
|
29123
|
+
useRender(() => {
|
|
29124
|
+
const confirmEditProps = VConfirmEdit.filterProps(props);
|
|
29125
|
+
const colorPickerProps = VColorPicker.filterProps(omit(props, ['active', 'color']));
|
|
29126
|
+
const textFieldProps = VTextField.filterProps(omit(props, ['prependInnerIcon']));
|
|
29127
|
+
const hasPrepend = !!(slots.prepend || props.pipIcon);
|
|
29128
|
+
return createVNode(VTextField, mergeProps(textFieldProps, {
|
|
29129
|
+
"class": ['v-color-input', props.class],
|
|
29130
|
+
"style": props.style,
|
|
29131
|
+
"modelValue": display.value,
|
|
29132
|
+
"onKeydown": isInteractive.value ? onKeydown : undefined,
|
|
29133
|
+
"focused": menu.value || isFocused.value,
|
|
29134
|
+
"onFocus": focus,
|
|
29135
|
+
"onBlur": blur,
|
|
29136
|
+
"onClick:control": isInteractive.value ? onClick : undefined,
|
|
29137
|
+
"onClick:prependInner": isInteractive.value ? onClick : undefined,
|
|
29138
|
+
"onClick:appendInner": isInteractive.value ? onClick : undefined,
|
|
29139
|
+
"onUpdate:modelValue": val => {
|
|
29140
|
+
model.value = val;
|
|
29141
|
+
}
|
|
29142
|
+
}), {
|
|
29143
|
+
...slots,
|
|
29144
|
+
prepend: props.pipIcon ? arg => createVNode(Fragment, null, [hasPrepend && createVNode(VIcon, {
|
|
29145
|
+
"color": props.pip ? model.value : undefined,
|
|
29146
|
+
"icon": props.pipIcon
|
|
29147
|
+
}, null), slots.prepend?.(arg)]) : undefined,
|
|
29148
|
+
default: () => createVNode(Fragment, null, [createVNode(VMenu, {
|
|
29149
|
+
"modelValue": menu.value,
|
|
29150
|
+
"onUpdate:modelValue": $event => menu.value = $event,
|
|
29151
|
+
"activator": "parent",
|
|
29152
|
+
"min-width": "0",
|
|
29153
|
+
"closeOnContentClick": false,
|
|
29154
|
+
"openOnClick": false
|
|
29155
|
+
}, {
|
|
29156
|
+
default: () => [createVNode(VConfirmEdit, mergeProps(confirmEditProps, {
|
|
29157
|
+
"modelValue": model.value,
|
|
29158
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
29159
|
+
"onSave": onSave
|
|
29160
|
+
}), {
|
|
29161
|
+
default: _ref2 => {
|
|
29162
|
+
let {
|
|
29163
|
+
actions,
|
|
29164
|
+
model: proxyModel,
|
|
29165
|
+
save,
|
|
29166
|
+
cancel,
|
|
29167
|
+
isPristine
|
|
29168
|
+
} = _ref2;
|
|
29169
|
+
return createVNode(VColorPicker, mergeProps(colorPickerProps, {
|
|
29170
|
+
"modelValue": proxyModel.value,
|
|
29171
|
+
"onUpdate:modelValue": val => {
|
|
29172
|
+
proxyModel.value = val;
|
|
29173
|
+
model.value = val;
|
|
29174
|
+
},
|
|
29175
|
+
"onMousedown": e => e.preventDefault()
|
|
29176
|
+
}), {
|
|
29177
|
+
actions: !props.hideActions ? () => slots.actions?.({
|
|
29178
|
+
save,
|
|
29179
|
+
cancel,
|
|
29180
|
+
isPristine
|
|
29181
|
+
}) ?? actions() : undefined
|
|
29182
|
+
});
|
|
29183
|
+
}
|
|
29184
|
+
})]
|
|
29185
|
+
}), slots.default?.()])
|
|
29186
|
+
});
|
|
29187
|
+
});
|
|
29188
|
+
}
|
|
29189
|
+
});
|
|
29190
|
+
|
|
29191
|
+
// Composables
|
|
29192
|
+
|
|
29193
|
+
// Types
|
|
29194
|
+
|
|
29195
|
+
// Types
|
|
29196
|
+
|
|
29197
|
+
class DateFormatSpec {
|
|
29198
|
+
constructor(order,
|
|
29199
|
+
// mdy | dmy | ymd
|
|
29200
|
+
separator // / | - | .
|
|
29201
|
+
) {
|
|
29202
|
+
this.order = order;
|
|
29203
|
+
this.separator = separator;
|
|
29204
|
+
}
|
|
29205
|
+
get format() {
|
|
29206
|
+
return this.order.split('').map(sign => `${sign}${sign}`).join(this.separator).replace('yy', 'yyyy');
|
|
29207
|
+
}
|
|
29208
|
+
static canBeParsed(v) {
|
|
29209
|
+
if (typeof v !== 'string') return false;
|
|
29210
|
+
const lowercase = v.toLowerCase();
|
|
29211
|
+
return ['y', 'm', 'd'].every(sign => lowercase.includes(sign)) && ['/', '-', '.'].some(sign => v.includes(sign));
|
|
29212
|
+
}
|
|
29213
|
+
static parse(v) {
|
|
29214
|
+
if (!DateFormatSpec.canBeParsed(v)) {
|
|
29215
|
+
throw new Error(`[${v}] cannot be parsed into date format specification`);
|
|
29216
|
+
}
|
|
29217
|
+
const order = v.toLowerCase().split('').filter((c, i, all) => 'dmy'.includes(c) && all.indexOf(c) === i).join('');
|
|
29218
|
+
const separator = ['/', '-', '.'].find(sign => v.includes(sign));
|
|
29219
|
+
return new DateFormatSpec(order, separator);
|
|
29220
|
+
}
|
|
29221
|
+
}
|
|
29222
|
+
const makeDateFormatProps = propsFactory({
|
|
29223
|
+
inputFormat: {
|
|
29224
|
+
type: String,
|
|
29225
|
+
validator: v => !v || DateFormatSpec.canBeParsed(v)
|
|
29226
|
+
}
|
|
29227
|
+
}, 'date-format');
|
|
29228
|
+
function useDateFormat(props, locale) {
|
|
29229
|
+
const adapter = useDate();
|
|
29230
|
+
function inferFromLocale() {
|
|
29231
|
+
const localeForDateFormat = locale.value ?? 'en-US';
|
|
29232
|
+
const formatFromLocale = Intl.DateTimeFormat(localeForDateFormat, {
|
|
29233
|
+
year: 'numeric',
|
|
29234
|
+
month: '2-digit',
|
|
29235
|
+
day: '2-digit'
|
|
29236
|
+
}).format(adapter.toJsDate(adapter.parseISO('1999-12-07'))).replace(/(07)|(٠٧)|(٢٩)|(۱۶)|(০৭)/, 'dd').replace(/(12)|(١٢)|(٠٨)|(۰۹)|(১২)/, 'mm').replace(/(1999)|(2542)|(١٩٩٩)|(١٤٢٠)|(۱۳۷۸)|(১৯৯৯)/, 'yyyy').replace(/[^ymd\-/.]/g, '').replace(/\.$/, '');
|
|
29237
|
+
if (!DateFormatSpec.canBeParsed(formatFromLocale)) {
|
|
29238
|
+
consoleWarn(`Date format inferred from locale [${localeForDateFormat}] is invalid: [${formatFromLocale}]`);
|
|
29239
|
+
return 'mm/dd/yyyy';
|
|
29240
|
+
}
|
|
29241
|
+
return formatFromLocale;
|
|
29242
|
+
}
|
|
29243
|
+
const currentFormat = toRef(() => {
|
|
29244
|
+
return DateFormatSpec.canBeParsed(props.inputFormat) ? DateFormatSpec.parse(props.inputFormat) : DateFormatSpec.parse(inferFromLocale());
|
|
29245
|
+
});
|
|
29246
|
+
function parseDate(dateString) {
|
|
29247
|
+
function parseDateParts(text) {
|
|
29248
|
+
const parts = text.trim().split(currentFormat.value.separator);
|
|
29249
|
+
return {
|
|
29250
|
+
y: Number(parts[currentFormat.value.order.indexOf('y')]),
|
|
29251
|
+
m: Number(parts[currentFormat.value.order.indexOf('m')]),
|
|
29252
|
+
d: Number(parts[currentFormat.value.order.indexOf('d')])
|
|
29253
|
+
};
|
|
29254
|
+
}
|
|
29255
|
+
function validateDateParts(dateParts) {
|
|
29256
|
+
const {
|
|
29257
|
+
y: year,
|
|
29258
|
+
m: month,
|
|
29259
|
+
d: day
|
|
29260
|
+
} = dateParts;
|
|
29261
|
+
if (!year || !month || !day) return null;
|
|
29262
|
+
if (month < 1 || month > 12) return null;
|
|
29263
|
+
if (day < 1 || day > 31) return null;
|
|
29264
|
+
return {
|
|
29265
|
+
year: autoFixYear(year),
|
|
29266
|
+
month,
|
|
29267
|
+
day
|
|
29268
|
+
};
|
|
29269
|
+
}
|
|
29270
|
+
function autoFixYear(year) {
|
|
29271
|
+
const currentYear = adapter.getYear(adapter.date());
|
|
29272
|
+
if (year > 100 || currentYear % 100 >= 50) {
|
|
29273
|
+
return year;
|
|
29274
|
+
}
|
|
29275
|
+
const currentCentury = ~~(currentYear / 100) * 100;
|
|
29276
|
+
return year < 50 ? currentCentury + year : currentCentury - 100 + year;
|
|
29277
|
+
}
|
|
29278
|
+
const dateParts = parseDateParts(dateString);
|
|
29279
|
+
const validatedParts = validateDateParts(dateParts);
|
|
29280
|
+
if (!validatedParts) return null;
|
|
29281
|
+
const {
|
|
29282
|
+
year,
|
|
29283
|
+
month,
|
|
29284
|
+
day
|
|
29285
|
+
} = validatedParts;
|
|
29286
|
+
const pad = v => String(v).padStart(2, '0');
|
|
29287
|
+
return adapter.parseISO(`${year}-${pad(month)}-${pad(day)}`);
|
|
29288
|
+
}
|
|
29289
|
+
function isValid(text) {
|
|
29290
|
+
return !!parseDate(text);
|
|
29291
|
+
}
|
|
29292
|
+
function formatDate(value) {
|
|
29293
|
+
const parts = adapter.toISO(value).split('-');
|
|
29294
|
+
return currentFormat.value.order.split('').map(sign => parts['ymd'.indexOf(sign)]).join(currentFormat.value.separator);
|
|
29295
|
+
}
|
|
29296
|
+
return {
|
|
29297
|
+
isValid,
|
|
29298
|
+
parseDate,
|
|
29299
|
+
formatDate,
|
|
29300
|
+
parserFormat: toRef(() => currentFormat.value.format)
|
|
29301
|
+
};
|
|
29302
|
+
}
|
|
29303
|
+
|
|
29304
|
+
// Types
|
|
29305
|
+
|
|
29053
29306
|
// Types
|
|
29054
29307
|
|
|
29055
29308
|
const makeVDateInputProps = propsFactory({
|
|
@@ -29058,13 +29311,20 @@ const makeVDateInputProps = propsFactory({
|
|
|
29058
29311
|
type: String,
|
|
29059
29312
|
default: 'bottom start'
|
|
29060
29313
|
},
|
|
29061
|
-
|
|
29314
|
+
menu: Boolean,
|
|
29315
|
+
updateOn: {
|
|
29316
|
+
type: Array,
|
|
29317
|
+
default: () => ['blur', 'enter']
|
|
29318
|
+
},
|
|
29319
|
+
...makeDateFormatProps(),
|
|
29320
|
+
...makeDisplayProps({
|
|
29321
|
+
mobile: null
|
|
29322
|
+
}),
|
|
29062
29323
|
...makeFocusProps(),
|
|
29063
29324
|
...makeVConfirmEditProps({
|
|
29064
29325
|
hideActions: true
|
|
29065
29326
|
}),
|
|
29066
29327
|
...makeVTextFieldProps({
|
|
29067
|
-
placeholder: 'mm/dd/yyyy',
|
|
29068
29328
|
prependIcon: '$calendar'
|
|
29069
29329
|
}),
|
|
29070
29330
|
...omit(makeVDatePickerProps({
|
|
@@ -29078,7 +29338,8 @@ const VDateInput = genericComponent()({
|
|
|
29078
29338
|
emits: {
|
|
29079
29339
|
save: value => true,
|
|
29080
29340
|
cancel: () => true,
|
|
29081
|
-
'update:modelValue': val => true
|
|
29341
|
+
'update:modelValue': val => true,
|
|
29342
|
+
'update:menu': val => true
|
|
29082
29343
|
},
|
|
29083
29344
|
setup(props, _ref) {
|
|
29084
29345
|
let {
|
|
@@ -29086,9 +29347,16 @@ const VDateInput = genericComponent()({
|
|
|
29086
29347
|
slots
|
|
29087
29348
|
} = _ref;
|
|
29088
29349
|
const {
|
|
29089
|
-
t
|
|
29350
|
+
t,
|
|
29351
|
+
current: currentLocale
|
|
29090
29352
|
} = useLocale();
|
|
29091
29353
|
const adapter = useDate();
|
|
29354
|
+
const {
|
|
29355
|
+
isValid,
|
|
29356
|
+
parseDate,
|
|
29357
|
+
formatDate,
|
|
29358
|
+
parserFormat
|
|
29359
|
+
} = useDateFormat(props, currentLocale);
|
|
29092
29360
|
const {
|
|
29093
29361
|
mobile
|
|
29094
29362
|
} = useDisplay(props);
|
|
@@ -29097,8 +29365,9 @@ const VDateInput = genericComponent()({
|
|
|
29097
29365
|
focus,
|
|
29098
29366
|
blur
|
|
29099
29367
|
} = useFocus(props);
|
|
29100
|
-
const
|
|
29101
|
-
const
|
|
29368
|
+
const emptyModelValue = () => props.multiple ? [] : null;
|
|
29369
|
+
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);
|
|
29370
|
+
const menu = useProxiedModel(props, 'menu');
|
|
29102
29371
|
const isEditingInput = shallowRef(false);
|
|
29103
29372
|
const vTextFieldRef = ref();
|
|
29104
29373
|
const disabledActions = ref(['save']);
|
|
@@ -29106,7 +29375,10 @@ const VDateInput = genericComponent()({
|
|
|
29106
29375
|
if (typeof props.displayFormat === 'function') {
|
|
29107
29376
|
return props.displayFormat(date);
|
|
29108
29377
|
}
|
|
29109
|
-
|
|
29378
|
+
if (props.displayFormat) {
|
|
29379
|
+
return adapter.format(date, props.displayFormat ?? 'keyboardDate');
|
|
29380
|
+
}
|
|
29381
|
+
return formatDate(date);
|
|
29110
29382
|
}
|
|
29111
29383
|
const display = computed(() => {
|
|
29112
29384
|
const value = wrapInArray(model.value);
|
|
@@ -29128,7 +29400,10 @@ const VDateInput = genericComponent()({
|
|
|
29128
29400
|
return 'none';
|
|
29129
29401
|
});
|
|
29130
29402
|
const isInteractive = computed(() => !props.disabled && !props.readonly);
|
|
29131
|
-
const isReadonly = computed(() =>
|
|
29403
|
+
const isReadonly = computed(() => {
|
|
29404
|
+
if (!props.updateOn.length) return true;
|
|
29405
|
+
return !(mobile.value && isEditingInput.value) && props.readonly;
|
|
29406
|
+
});
|
|
29132
29407
|
watch(menu, val => {
|
|
29133
29408
|
if (val) return;
|
|
29134
29409
|
isEditingInput.value = false;
|
|
@@ -29138,10 +29413,10 @@ const VDateInput = genericComponent()({
|
|
|
29138
29413
|
if (e.key !== 'Enter') return;
|
|
29139
29414
|
if (!menu.value || !isFocused.value) {
|
|
29140
29415
|
menu.value = true;
|
|
29141
|
-
return;
|
|
29142
29416
|
}
|
|
29143
|
-
|
|
29144
|
-
|
|
29417
|
+
if (props.updateOn.includes('enter')) {
|
|
29418
|
+
onUserInput(e.target);
|
|
29419
|
+
}
|
|
29145
29420
|
}
|
|
29146
29421
|
function onClick(e) {
|
|
29147
29422
|
e.preventDefault();
|
|
@@ -29163,9 +29438,12 @@ const VDateInput = genericComponent()({
|
|
|
29163
29438
|
}
|
|
29164
29439
|
function onUpdateDisplayModel(value) {
|
|
29165
29440
|
if (value != null) return;
|
|
29166
|
-
model.value =
|
|
29441
|
+
model.value = emptyModelValue();
|
|
29167
29442
|
}
|
|
29168
|
-
function onBlur() {
|
|
29443
|
+
function onBlur(e) {
|
|
29444
|
+
if (props.updateOn.includes('blur')) {
|
|
29445
|
+
onUserInput(e.target);
|
|
29446
|
+
}
|
|
29169
29447
|
blur();
|
|
29170
29448
|
|
|
29171
29449
|
// When in mobile mode and editing is done (due to keyboard dismissal), close the menu
|
|
@@ -29174,10 +29452,36 @@ const VDateInput = genericComponent()({
|
|
|
29174
29452
|
isEditingInput.value = false;
|
|
29175
29453
|
}
|
|
29176
29454
|
}
|
|
29455
|
+
function onUserInput(_ref2) {
|
|
29456
|
+
let {
|
|
29457
|
+
value
|
|
29458
|
+
} = _ref2;
|
|
29459
|
+
if (!value.trim()) {
|
|
29460
|
+
model.value = emptyModelValue();
|
|
29461
|
+
} else if (!props.multiple) {
|
|
29462
|
+
if (isValid(value)) {
|
|
29463
|
+
model.value = parseDate(value);
|
|
29464
|
+
}
|
|
29465
|
+
} else {
|
|
29466
|
+
const parts = value.trim().split(/\D+-\D+|[^\d\-/.]+/);
|
|
29467
|
+
if (parts.every(isValid)) {
|
|
29468
|
+
if (props.multiple === 'range') {
|
|
29469
|
+
model.value = getRange(parts);
|
|
29470
|
+
} else {
|
|
29471
|
+
model.value = parts.map(parseDate);
|
|
29472
|
+
}
|
|
29473
|
+
}
|
|
29474
|
+
}
|
|
29475
|
+
}
|
|
29476
|
+
function getRange(inputDates) {
|
|
29477
|
+
const [start, stop] = inputDates.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
|
|
29478
|
+
const diff = adapter.getDiff(stop ?? start, start, 'days');
|
|
29479
|
+
return [start, ...createRange(diff, 1).map(i => adapter.addDays(start, i))];
|
|
29480
|
+
}
|
|
29177
29481
|
useRender(() => {
|
|
29178
29482
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
|
29179
29483
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
|
29180
|
-
const textFieldProps = VTextField.filterProps(props);
|
|
29484
|
+
const textFieldProps = VTextField.filterProps(omit(props, ['placeholder']));
|
|
29181
29485
|
return createVNode(VTextField, mergeProps({
|
|
29182
29486
|
"ref": vTextFieldRef
|
|
29183
29487
|
}, textFieldProps, {
|
|
@@ -29185,11 +29489,13 @@ const VDateInput = genericComponent()({
|
|
|
29185
29489
|
"style": props.style,
|
|
29186
29490
|
"modelValue": display.value,
|
|
29187
29491
|
"inputmode": inputmode.value,
|
|
29492
|
+
"placeholder": props.placeholder ?? parserFormat.value,
|
|
29188
29493
|
"readonly": isReadonly.value,
|
|
29189
29494
|
"onKeydown": isInteractive.value ? onKeydown : undefined,
|
|
29190
29495
|
"focused": menu.value || isFocused.value,
|
|
29191
29496
|
"onFocus": focus,
|
|
29192
29497
|
"onBlur": onBlur,
|
|
29498
|
+
"validationValue": model.value,
|
|
29193
29499
|
"onClick:control": isInteractive.value ? onClick : undefined,
|
|
29194
29500
|
"onClick:prepend": isInteractive.value ? onClick : undefined,
|
|
29195
29501
|
"onUpdate:modelValue": onUpdateDisplayModel
|
|
@@ -29212,14 +29518,14 @@ const VDateInput = genericComponent()({
|
|
|
29212
29518
|
"onSave": onSave,
|
|
29213
29519
|
"onCancel": onCancel
|
|
29214
29520
|
}), {
|
|
29215
|
-
default:
|
|
29521
|
+
default: _ref3 => {
|
|
29216
29522
|
let {
|
|
29217
29523
|
actions,
|
|
29218
29524
|
model: proxyModel,
|
|
29219
29525
|
save,
|
|
29220
29526
|
cancel,
|
|
29221
29527
|
isPristine
|
|
29222
|
-
} =
|
|
29528
|
+
} = _ref3;
|
|
29223
29529
|
function onUpdateModel(value) {
|
|
29224
29530
|
if (!props.hideActions) {
|
|
29225
29531
|
proxyModel.value = value;
|
|
@@ -29404,43 +29710,31 @@ const VFileUpload = genericComponent()({
|
|
|
29404
29710
|
densityClasses
|
|
29405
29711
|
} = useDensity(props);
|
|
29406
29712
|
const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => props.multiple || Array.isArray(props.modelValue) ? val : val[0]);
|
|
29407
|
-
const
|
|
29713
|
+
const isDragging = shallowRef(false);
|
|
29408
29714
|
const vSheetRef = ref(null);
|
|
29409
29715
|
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) {
|
|
29716
|
+
function onDragover(e) {
|
|
29419
29717
|
e.preventDefault();
|
|
29420
29718
|
e.stopImmediatePropagation();
|
|
29421
|
-
|
|
29719
|
+
isDragging.value = true;
|
|
29422
29720
|
}
|
|
29423
|
-
function
|
|
29721
|
+
function onDragleave(e) {
|
|
29424
29722
|
e.preventDefault();
|
|
29425
|
-
|
|
29723
|
+
isDragging.value = false;
|
|
29426
29724
|
}
|
|
29427
29725
|
function onDrop(e) {
|
|
29428
29726
|
e.preventDefault();
|
|
29429
29727
|
e.stopImmediatePropagation();
|
|
29430
|
-
|
|
29431
|
-
|
|
29432
|
-
|
|
29433
|
-
|
|
29434
|
-
|
|
29435
|
-
|
|
29436
|
-
|
|
29437
|
-
|
|
29438
|
-
|
|
29439
|
-
|
|
29440
|
-
array.push(file);
|
|
29441
|
-
}
|
|
29442
|
-
}
|
|
29443
|
-
model.value = array;
|
|
29728
|
+
isDragging.value = false;
|
|
29729
|
+
if (!e.dataTransfer?.files?.length || !inputRef.value) return;
|
|
29730
|
+
const dataTransfer = new DataTransfer();
|
|
29731
|
+
for (const file of e.dataTransfer.files) {
|
|
29732
|
+
dataTransfer.items.add(file);
|
|
29733
|
+
}
|
|
29734
|
+
inputRef.value.files = dataTransfer.files;
|
|
29735
|
+
inputRef.value.dispatchEvent(new Event('change', {
|
|
29736
|
+
bubbles: true
|
|
29737
|
+
}));
|
|
29444
29738
|
}
|
|
29445
29739
|
function onClick() {
|
|
29446
29740
|
inputRef.value?.click();
|
|
@@ -29476,11 +29770,11 @@ const VFileUpload = genericComponent()({
|
|
|
29476
29770
|
"class": ['v-file-upload', {
|
|
29477
29771
|
'v-file-upload--clickable': !hasBrowse,
|
|
29478
29772
|
'v-file-upload--disabled': props.disabled,
|
|
29479
|
-
'v-file-upload--dragging':
|
|
29773
|
+
'v-file-upload--dragging': isDragging.value
|
|
29480
29774
|
}, densityClasses.value, props.class],
|
|
29481
29775
|
"style": [props.style],
|
|
29482
|
-
"onDragleave":
|
|
29483
|
-
"onDragover":
|
|
29776
|
+
"onDragleave": onDragleave,
|
|
29777
|
+
"onDragover": onDragover,
|
|
29484
29778
|
"onDrop": onDrop,
|
|
29485
29779
|
"onClick": !hasBrowse ? onClick : undefined
|
|
29486
29780
|
}, rootAttrs), {
|
|
@@ -29531,7 +29825,7 @@ const VFileUpload = genericComponent()({
|
|
|
29531
29825
|
})]), props.subtitle && createVNode("div", {
|
|
29532
29826
|
"class": "v-file-upload-subtitle"
|
|
29533
29827
|
}, [props.subtitle])]), createVNode(VOverlay, {
|
|
29534
|
-
"model-value":
|
|
29828
|
+
"model-value": isDragging.value,
|
|
29535
29829
|
"contained": true,
|
|
29536
29830
|
"scrim": props.scrim
|
|
29537
29831
|
}, null), slots.input?.({
|
|
@@ -30229,8 +30523,8 @@ const VTimePickerClock = genericComponent()({
|
|
|
30229
30523
|
y
|
|
30230
30524
|
} = getPosition(i);
|
|
30231
30525
|
return {
|
|
30232
|
-
left: `${50 + x * 50}%`,
|
|
30233
|
-
top: `${50 + y * 50}%`
|
|
30526
|
+
left: `${Math.round(50 + x * 50)}%`,
|
|
30527
|
+
top: `${Math.round(50 + y * 50)}%`
|
|
30234
30528
|
};
|
|
30235
30529
|
}
|
|
30236
30530
|
function euclidean(p0, p1) {
|
|
@@ -31168,6 +31462,7 @@ var components = /*#__PURE__*/Object.freeze({
|
|
|
31168
31462
|
VClassIcon: VClassIcon,
|
|
31169
31463
|
VCode: VCode,
|
|
31170
31464
|
VCol: VCol,
|
|
31465
|
+
VColorInput: VColorInput,
|
|
31171
31466
|
VColorPicker: VColorPicker,
|
|
31172
31467
|
VCombobox: VCombobox,
|
|
31173
31468
|
VComponentIcon: VComponentIcon,
|
|
@@ -31634,7 +31929,7 @@ function createVuetify$1() {
|
|
|
31634
31929
|
};
|
|
31635
31930
|
});
|
|
31636
31931
|
}
|
|
31637
|
-
const version$1 = "3.8.
|
|
31932
|
+
const version$1 = "3.8.5";
|
|
31638
31933
|
createVuetify$1.version = version$1;
|
|
31639
31934
|
|
|
31640
31935
|
// Vue's inject() can only be used in setup
|
|
@@ -31932,7 +32227,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
31932
32227
|
|
|
31933
32228
|
/* eslint-disable local-rules/sort-imports */
|
|
31934
32229
|
|
|
31935
|
-
const version = "3.8.
|
|
32230
|
+
const version = "3.8.5";
|
|
31936
32231
|
|
|
31937
32232
|
/* eslint-disable local-rules/sort-imports */
|
|
31938
32233
|
|