vuetify 3.7.17 → 3.7.19
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 +3397 -3385
- package/dist/json/importMap-labs.json +16 -16
- package/dist/json/importMap.json +168 -168
- package/dist/json/tags.json +3 -0
- package/dist/json/web-types.json +6343 -6293
- package/dist/vuetify-labs.css +3200 -3200
- package/dist/vuetify-labs.d.ts +77 -35
- package/dist/vuetify-labs.esm.js +116 -37
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +116 -37
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +2769 -2769
- package/dist/vuetify.d.ts +95 -92
- package/dist/vuetify.esm.js +43 -20
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +43 -20
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +12 -12
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.mjs +18 -3
- package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +91 -88
- package/lib/components/VDatePicker/VDatePicker.mjs +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +21 -12
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +3 -3
- package/lib/components/VIcon/VIcon.mjs +2 -2
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/index.d.mts +38 -35
- package/lib/composables/calendar.mjs +1 -1
- package/lib/composables/calendar.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +57 -57
- package/lib/labs/VDateInput/VDateInput.mjs +75 -18
- package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
- package/lib/labs/VDateInput/index.d.mts +43 -0
- package/lib/labs/components.d.mts +43 -4
- package/lib/util/helpers.mjs +1 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.7.
|
|
2
|
+
* Vuetify v3.7.19
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -229,7 +229,7 @@ function has(obj, key) {
|
|
|
229
229
|
function pick(obj, paths) {
|
|
230
230
|
const found = {};
|
|
231
231
|
for (const key of paths) {
|
|
232
|
-
if (Object.
|
|
232
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
233
233
|
found[key] = obj[key];
|
|
234
234
|
}
|
|
235
235
|
}
|
|
@@ -4670,7 +4670,7 @@ const VIcon = genericComponent()({
|
|
|
4670
4670
|
const slotIcon = ref();
|
|
4671
4671
|
const {
|
|
4672
4672
|
themeClasses
|
|
4673
|
-
} =
|
|
4673
|
+
} = useTheme();
|
|
4674
4674
|
const {
|
|
4675
4675
|
iconData
|
|
4676
4676
|
} = useIcon(computed(() => slotIcon.value || props.icon));
|
|
@@ -20343,22 +20343,37 @@ const VDataTableRow = genericComponent()({
|
|
|
20343
20343
|
"width": !mobile.value ? column.width : undefined
|
|
20344
20344
|
}, cellProps, columnCellProps), {
|
|
20345
20345
|
default: () => {
|
|
20346
|
-
if (slots[slotName] && !mobile.value) return slots[slotName]?.(slotProps);
|
|
20347
20346
|
if (column.key === 'data-table-select') {
|
|
20348
|
-
return slots['item.data-table-select']?.(
|
|
20347
|
+
return slots['item.data-table-select']?.({
|
|
20348
|
+
...slotProps,
|
|
20349
|
+
props: {
|
|
20350
|
+
disabled: !item.selectable,
|
|
20351
|
+
modelValue: isSelected([item]),
|
|
20352
|
+
onClick: withModifiers(() => toggleSelect(item), ['stop'])
|
|
20353
|
+
}
|
|
20354
|
+
}) ?? createVNode(VCheckboxBtn, {
|
|
20349
20355
|
"disabled": !item.selectable,
|
|
20350
20356
|
"modelValue": isSelected([item]),
|
|
20351
20357
|
"onClick": withModifiers(() => toggleSelect(item), ['stop'])
|
|
20352
20358
|
}, null);
|
|
20353
20359
|
}
|
|
20354
20360
|
if (column.key === 'data-table-expand') {
|
|
20355
|
-
return slots['item.data-table-expand']?.(
|
|
20361
|
+
return slots['item.data-table-expand']?.({
|
|
20362
|
+
...slotProps,
|
|
20363
|
+
props: {
|
|
20364
|
+
icon: isExpanded(item) ? '$collapse' : '$expand',
|
|
20365
|
+
size: 'small',
|
|
20366
|
+
variant: 'text',
|
|
20367
|
+
onClick: withModifiers(() => toggleExpand(item), ['stop'])
|
|
20368
|
+
}
|
|
20369
|
+
}) ?? createVNode(VBtn, {
|
|
20356
20370
|
"icon": isExpanded(item) ? '$collapse' : '$expand',
|
|
20357
20371
|
"size": "small",
|
|
20358
20372
|
"variant": "text",
|
|
20359
20373
|
"onClick": withModifiers(() => toggleExpand(item), ['stop'])
|
|
20360
20374
|
}, null);
|
|
20361
20375
|
}
|
|
20376
|
+
if (slots[slotName] && !mobile.value) return slots[slotName](slotProps);
|
|
20362
20377
|
const displayValue = toDisplayString(slotProps.value);
|
|
20363
20378
|
return !mobile.value ? displayValue : createVNode(Fragment, null, [createVNode("div", {
|
|
20364
20379
|
"class": "v-data-table__td-title"
|
|
@@ -21687,7 +21702,7 @@ const makeCalendarProps = propsFactory({
|
|
|
21687
21702
|
}, 'calendar');
|
|
21688
21703
|
function useCalendar(props) {
|
|
21689
21704
|
const adapter = useDate();
|
|
21690
|
-
const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v));
|
|
21705
|
+
const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v).map(i => adapter.date(i)));
|
|
21691
21706
|
const displayValue = computed(() => {
|
|
21692
21707
|
if (props.displayValue) return adapter.date(props.displayValue);
|
|
21693
21708
|
if (model.value.length > 0) return adapter.date(model.value[0]);
|
|
@@ -21916,7 +21931,7 @@ const VDatePickerMonth = genericComponent()({
|
|
|
21916
21931
|
model.value = [value];
|
|
21917
21932
|
}
|
|
21918
21933
|
}
|
|
21919
|
-
|
|
21934
|
+
return () => createVNode("div", {
|
|
21920
21935
|
"class": "v-date-picker-month"
|
|
21921
21936
|
}, [props.showWeek && createVNode("div", {
|
|
21922
21937
|
"key": "weeks",
|
|
@@ -21938,13 +21953,6 @@ const VDatePickerMonth = genericComponent()({
|
|
|
21938
21953
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
|
21939
21954
|
const slotProps = {
|
|
21940
21955
|
props: {
|
|
21941
|
-
class: 'v-date-picker-month__day-btn',
|
|
21942
|
-
color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
|
|
21943
|
-
disabled: item.isDisabled,
|
|
21944
|
-
icon: true,
|
|
21945
|
-
ripple: false,
|
|
21946
|
-
text: item.localized,
|
|
21947
|
-
variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
|
|
21948
21956
|
onClick: () => onClick(item.date)
|
|
21949
21957
|
},
|
|
21950
21958
|
item,
|
|
@@ -21962,9 +21970,24 @@ const VDatePickerMonth = genericComponent()({
|
|
|
21962
21970
|
'v-date-picker-month__day--week-start': item.isWeekStart
|
|
21963
21971
|
}],
|
|
21964
21972
|
"data-v-date": !item.isDisabled ? item.isoDate : undefined
|
|
21965
|
-
}, [(props.showAdjacentMonths || !item.isAdjacent) &&
|
|
21973
|
+
}, [(props.showAdjacentMonths || !item.isAdjacent) && createVNode(VDefaultsProvider, {
|
|
21974
|
+
"defaults": {
|
|
21975
|
+
VBtn: {
|
|
21976
|
+
class: 'v-date-picker-month__day-btn',
|
|
21977
|
+
color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
|
|
21978
|
+
disabled: item.isDisabled,
|
|
21979
|
+
icon: true,
|
|
21980
|
+
ripple: false,
|
|
21981
|
+
text: item.localized,
|
|
21982
|
+
variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
|
|
21983
|
+
onClick: () => onClick(item.date)
|
|
21984
|
+
}
|
|
21985
|
+
}
|
|
21986
|
+
}, {
|
|
21987
|
+
default: () => [slots.day?.(slotProps) ?? createVNode(VBtn, slotProps.props, null)]
|
|
21988
|
+
})]);
|
|
21966
21989
|
})])]
|
|
21967
|
-
})])
|
|
21990
|
+
})]);
|
|
21968
21991
|
}
|
|
21969
21992
|
});
|
|
21970
21993
|
|
|
@@ -22260,7 +22283,7 @@ const VDatePicker = genericComponent()({
|
|
|
22260
22283
|
const {
|
|
22261
22284
|
t
|
|
22262
22285
|
} = useLocale();
|
|
22263
|
-
const model = useProxiedModel(props, 'modelValue', undefined, v => wrapInArray(v), v => props.multiple ? v : v[0]);
|
|
22286
|
+
const model = useProxiedModel(props, 'modelValue', undefined, v => wrapInArray(v).map(i => adapter.date(i)), v => props.multiple ? v : v[0]);
|
|
22264
22287
|
const viewMode = useProxiedModel(props, 'viewMode');
|
|
22265
22288
|
// const inputMode = useProxiedModel(props, 'inputMode')
|
|
22266
22289
|
|
|
@@ -28229,11 +28252,13 @@ const VCalendar = genericComponent()({
|
|
|
28229
28252
|
// Types
|
|
28230
28253
|
|
|
28231
28254
|
const makeVDateInputProps = propsFactory({
|
|
28255
|
+
displayFormat: [Function, String],
|
|
28232
28256
|
hideActions: Boolean,
|
|
28233
28257
|
location: {
|
|
28234
28258
|
type: String,
|
|
28235
28259
|
default: 'bottom start'
|
|
28236
28260
|
},
|
|
28261
|
+
...makeDisplayProps(),
|
|
28237
28262
|
...makeFocusProps(),
|
|
28238
28263
|
...makeVConfirmEditProps(),
|
|
28239
28264
|
...makeVTextFieldProps({
|
|
@@ -28249,16 +28274,22 @@ const VDateInput = genericComponent()({
|
|
|
28249
28274
|
name: 'VDateInput',
|
|
28250
28275
|
props: makeVDateInputProps(),
|
|
28251
28276
|
emits: {
|
|
28277
|
+
save: value => true,
|
|
28278
|
+
cancel: () => true,
|
|
28252
28279
|
'update:modelValue': val => true
|
|
28253
28280
|
},
|
|
28254
28281
|
setup(props, _ref) {
|
|
28255
28282
|
let {
|
|
28283
|
+
emit,
|
|
28256
28284
|
slots
|
|
28257
28285
|
} = _ref;
|
|
28258
28286
|
const {
|
|
28259
28287
|
t
|
|
28260
28288
|
} = useLocale();
|
|
28261
28289
|
const adapter = useDate();
|
|
28290
|
+
const {
|
|
28291
|
+
mobile
|
|
28292
|
+
} = useDisplay();
|
|
28262
28293
|
const {
|
|
28263
28294
|
isFocused,
|
|
28264
28295
|
focus,
|
|
@@ -28266,7 +28297,14 @@ const VDateInput = genericComponent()({
|
|
|
28266
28297
|
} = useFocus(props);
|
|
28267
28298
|
const model = useProxiedModel(props, 'modelValue', props.multiple ? [] : null, 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);
|
|
28268
28299
|
const menu = shallowRef(false);
|
|
28300
|
+
const isEditingInput = shallowRef(false);
|
|
28269
28301
|
const vDateInputRef = ref();
|
|
28302
|
+
function format(date) {
|
|
28303
|
+
if (typeof props.displayFormat === 'function') {
|
|
28304
|
+
return props.displayFormat(date);
|
|
28305
|
+
}
|
|
28306
|
+
return adapter.format(date, props.displayFormat ?? 'keyboardDate');
|
|
28307
|
+
}
|
|
28270
28308
|
const display = computed(() => {
|
|
28271
28309
|
const value = wrapInArray(model.value);
|
|
28272
28310
|
if (!value.length) return null;
|
|
@@ -28276,11 +28314,22 @@ const VDateInput = genericComponent()({
|
|
|
28276
28314
|
if (props.multiple === 'range') {
|
|
28277
28315
|
const start = value[0];
|
|
28278
28316
|
const end = value[value.length - 1];
|
|
28279
|
-
|
|
28317
|
+
if (!adapter.isValid(start) || !adapter.isValid(end)) return '';
|
|
28318
|
+
return `${format(adapter.date(start))} - ${format(adapter.date(end))}`;
|
|
28280
28319
|
}
|
|
28281
|
-
return adapter.isValid(model.value) ?
|
|
28320
|
+
return adapter.isValid(model.value) ? format(adapter.date(model.value)) : '';
|
|
28321
|
+
});
|
|
28322
|
+
const inputmode = computed(() => {
|
|
28323
|
+
if (!mobile.value) return undefined;
|
|
28324
|
+
if (isEditingInput.value) return 'text';
|
|
28325
|
+
return 'none';
|
|
28282
28326
|
});
|
|
28283
28327
|
const isInteractive = computed(() => !props.disabled && !props.readonly);
|
|
28328
|
+
const isReadonly = computed(() => !(mobile.value && isEditingInput.value) && props.readonly);
|
|
28329
|
+
watch(menu, val => {
|
|
28330
|
+
if (val) return;
|
|
28331
|
+
isEditingInput.value = false;
|
|
28332
|
+
});
|
|
28284
28333
|
function onKeydown(e) {
|
|
28285
28334
|
if (e.key !== 'Enter') return;
|
|
28286
28335
|
if (!menu.value || !isFocused.value) {
|
|
@@ -28293,15 +28342,38 @@ const VDateInput = genericComponent()({
|
|
|
28293
28342
|
function onClick(e) {
|
|
28294
28343
|
e.preventDefault();
|
|
28295
28344
|
e.stopPropagation();
|
|
28296
|
-
menu.value
|
|
28345
|
+
if (menu.value && mobile.value) {
|
|
28346
|
+
isEditingInput.value = true;
|
|
28347
|
+
} else {
|
|
28348
|
+
menu.value = true;
|
|
28349
|
+
}
|
|
28350
|
+
}
|
|
28351
|
+
function onCancel() {
|
|
28352
|
+
emit('cancel');
|
|
28353
|
+
menu.value = false;
|
|
28354
|
+
isEditingInput.value = false;
|
|
28297
28355
|
}
|
|
28298
|
-
function onSave() {
|
|
28356
|
+
function onSave(value) {
|
|
28357
|
+
emit('save', value);
|
|
28299
28358
|
menu.value = false;
|
|
28300
28359
|
}
|
|
28301
|
-
function
|
|
28360
|
+
function onUpdateDisplayModel(value) {
|
|
28302
28361
|
if (value != null) return;
|
|
28303
28362
|
model.value = null;
|
|
28304
28363
|
}
|
|
28364
|
+
function onUpdateMenuModel(isMenuOpen) {
|
|
28365
|
+
if (isMenuOpen) return;
|
|
28366
|
+
isEditingInput.value = false;
|
|
28367
|
+
}
|
|
28368
|
+
function onBlur() {
|
|
28369
|
+
blur();
|
|
28370
|
+
|
|
28371
|
+
// When in mobile mode and editing is done (due to keyboard dismissal), close the menu
|
|
28372
|
+
if (mobile.value && isEditingInput.value && !isFocused.value) {
|
|
28373
|
+
menu.value = false;
|
|
28374
|
+
isEditingInput.value = false;
|
|
28375
|
+
}
|
|
28376
|
+
}
|
|
28305
28377
|
useRender(() => {
|
|
28306
28378
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
|
28307
28379
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
|
@@ -28312,18 +28384,20 @@ const VDateInput = genericComponent()({
|
|
|
28312
28384
|
"class": props.class,
|
|
28313
28385
|
"style": props.style,
|
|
28314
28386
|
"modelValue": display.value,
|
|
28387
|
+
"inputmode": inputmode.value,
|
|
28388
|
+
"readonly": isReadonly.value,
|
|
28315
28389
|
"onKeydown": isInteractive.value ? onKeydown : undefined,
|
|
28316
28390
|
"focused": menu.value || isFocused.value,
|
|
28317
28391
|
"onFocus": focus,
|
|
28318
|
-
"onBlur":
|
|
28392
|
+
"onBlur": onBlur,
|
|
28319
28393
|
"onClick:control": isInteractive.value ? onClick : undefined,
|
|
28320
28394
|
"onClick:prepend": isInteractive.value ? onClick : undefined,
|
|
28321
|
-
"onUpdate:modelValue":
|
|
28395
|
+
"onUpdate:modelValue": onUpdateDisplayModel
|
|
28322
28396
|
}), {
|
|
28323
28397
|
...slots,
|
|
28324
28398
|
default: () => createVNode(Fragment, null, [createVNode(VMenu, {
|
|
28325
28399
|
"modelValue": menu.value,
|
|
28326
|
-
"onUpdate:modelValue": $event => menu.value = $event,
|
|
28400
|
+
"onUpdate:modelValue": [$event => menu.value = $event, onUpdateMenuModel],
|
|
28327
28401
|
"activator": "parent",
|
|
28328
28402
|
"min-width": "0",
|
|
28329
28403
|
"eager": isFocused.value,
|
|
@@ -28335,7 +28409,7 @@ const VDateInput = genericComponent()({
|
|
|
28335
28409
|
"modelValue": model.value,
|
|
28336
28410
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
28337
28411
|
"onSave": onSave,
|
|
28338
|
-
"onCancel":
|
|
28412
|
+
"onCancel": onCancel
|
|
28339
28413
|
}), {
|
|
28340
28414
|
default: _ref2 => {
|
|
28341
28415
|
let {
|
|
@@ -28345,16 +28419,21 @@ const VDateInput = genericComponent()({
|
|
|
28345
28419
|
cancel,
|
|
28346
28420
|
isPristine
|
|
28347
28421
|
} = _ref2;
|
|
28422
|
+
function onUpdateModel(value) {
|
|
28423
|
+
if (!props.hideActions) {
|
|
28424
|
+
proxyModel.value = value;
|
|
28425
|
+
} else {
|
|
28426
|
+
model.value = value;
|
|
28427
|
+
if (!props.multiple) {
|
|
28428
|
+
menu.value = false;
|
|
28429
|
+
}
|
|
28430
|
+
}
|
|
28431
|
+
emit('save', value);
|
|
28432
|
+
vDateInputRef.value?.blur();
|
|
28433
|
+
}
|
|
28348
28434
|
return createVNode(VDatePicker, mergeProps(datePickerProps, {
|
|
28349
28435
|
"modelValue": props.hideActions ? model.value : proxyModel.value,
|
|
28350
|
-
"onUpdate:modelValue":
|
|
28351
|
-
if (!props.hideActions) {
|
|
28352
|
-
proxyModel.value = val;
|
|
28353
|
-
} else {
|
|
28354
|
-
model.value = val;
|
|
28355
|
-
if (!props.multiple) menu.value = false;
|
|
28356
|
-
}
|
|
28357
|
-
},
|
|
28436
|
+
"onUpdate:modelValue": value => onUpdateModel(value),
|
|
28358
28437
|
"onMousedown": e => e.preventDefault()
|
|
28359
28438
|
}), {
|
|
28360
28439
|
actions: !props.hideActions ? () => slots.actions?.({
|
|
@@ -31072,7 +31151,7 @@ function createVuetify$1() {
|
|
|
31072
31151
|
goTo
|
|
31073
31152
|
};
|
|
31074
31153
|
}
|
|
31075
|
-
const version$1 = "3.7.
|
|
31154
|
+
const version$1 = "3.7.19";
|
|
31076
31155
|
createVuetify$1.version = version$1;
|
|
31077
31156
|
|
|
31078
31157
|
// Vue's inject() can only be used in setup
|
|
@@ -31325,7 +31404,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
31325
31404
|
|
|
31326
31405
|
/* eslint-disable local-rules/sort-imports */
|
|
31327
31406
|
|
|
31328
|
-
const version = "3.7.
|
|
31407
|
+
const version = "3.7.19";
|
|
31329
31408
|
|
|
31330
31409
|
/* eslint-disable local-rules/sort-imports */
|
|
31331
31410
|
|