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.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
|
*/
|
|
@@ -233,7 +233,7 @@
|
|
|
233
233
|
function pick(obj, paths) {
|
|
234
234
|
const found = {};
|
|
235
235
|
for (const key of paths) {
|
|
236
|
-
if (Object.
|
|
236
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
237
237
|
found[key] = obj[key];
|
|
238
238
|
}
|
|
239
239
|
}
|
|
@@ -4674,7 +4674,7 @@
|
|
|
4674
4674
|
const slotIcon = vue.ref();
|
|
4675
4675
|
const {
|
|
4676
4676
|
themeClasses
|
|
4677
|
-
} =
|
|
4677
|
+
} = useTheme();
|
|
4678
4678
|
const {
|
|
4679
4679
|
iconData
|
|
4680
4680
|
} = useIcon(vue.computed(() => slotIcon.value || props.icon));
|
|
@@ -20347,22 +20347,37 @@
|
|
|
20347
20347
|
"width": !mobile.value ? column.width : undefined
|
|
20348
20348
|
}, cellProps, columnCellProps), {
|
|
20349
20349
|
default: () => {
|
|
20350
|
-
if (slots[slotName] && !mobile.value) return slots[slotName]?.(slotProps);
|
|
20351
20350
|
if (column.key === 'data-table-select') {
|
|
20352
|
-
return slots['item.data-table-select']?.(
|
|
20351
|
+
return slots['item.data-table-select']?.({
|
|
20352
|
+
...slotProps,
|
|
20353
|
+
props: {
|
|
20354
|
+
disabled: !item.selectable,
|
|
20355
|
+
modelValue: isSelected([item]),
|
|
20356
|
+
onClick: vue.withModifiers(() => toggleSelect(item), ['stop'])
|
|
20357
|
+
}
|
|
20358
|
+
}) ?? vue.createVNode(VCheckboxBtn, {
|
|
20353
20359
|
"disabled": !item.selectable,
|
|
20354
20360
|
"modelValue": isSelected([item]),
|
|
20355
20361
|
"onClick": vue.withModifiers(() => toggleSelect(item), ['stop'])
|
|
20356
20362
|
}, null);
|
|
20357
20363
|
}
|
|
20358
20364
|
if (column.key === 'data-table-expand') {
|
|
20359
|
-
return slots['item.data-table-expand']?.(
|
|
20365
|
+
return slots['item.data-table-expand']?.({
|
|
20366
|
+
...slotProps,
|
|
20367
|
+
props: {
|
|
20368
|
+
icon: isExpanded(item) ? '$collapse' : '$expand',
|
|
20369
|
+
size: 'small',
|
|
20370
|
+
variant: 'text',
|
|
20371
|
+
onClick: vue.withModifiers(() => toggleExpand(item), ['stop'])
|
|
20372
|
+
}
|
|
20373
|
+
}) ?? vue.createVNode(VBtn, {
|
|
20360
20374
|
"icon": isExpanded(item) ? '$collapse' : '$expand',
|
|
20361
20375
|
"size": "small",
|
|
20362
20376
|
"variant": "text",
|
|
20363
20377
|
"onClick": vue.withModifiers(() => toggleExpand(item), ['stop'])
|
|
20364
20378
|
}, null);
|
|
20365
20379
|
}
|
|
20380
|
+
if (slots[slotName] && !mobile.value) return slots[slotName](slotProps);
|
|
20366
20381
|
const displayValue = vue.toDisplayString(slotProps.value);
|
|
20367
20382
|
return !mobile.value ? displayValue : vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
|
|
20368
20383
|
"class": "v-data-table__td-title"
|
|
@@ -21691,7 +21706,7 @@
|
|
|
21691
21706
|
}, 'calendar');
|
|
21692
21707
|
function useCalendar(props) {
|
|
21693
21708
|
const adapter = useDate();
|
|
21694
|
-
const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v));
|
|
21709
|
+
const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v).map(i => adapter.date(i)));
|
|
21695
21710
|
const displayValue = vue.computed(() => {
|
|
21696
21711
|
if (props.displayValue) return adapter.date(props.displayValue);
|
|
21697
21712
|
if (model.value.length > 0) return adapter.date(model.value[0]);
|
|
@@ -21920,7 +21935,7 @@
|
|
|
21920
21935
|
model.value = [value];
|
|
21921
21936
|
}
|
|
21922
21937
|
}
|
|
21923
|
-
|
|
21938
|
+
return () => vue.createVNode("div", {
|
|
21924
21939
|
"class": "v-date-picker-month"
|
|
21925
21940
|
}, [props.showWeek && vue.createVNode("div", {
|
|
21926
21941
|
"key": "weeks",
|
|
@@ -21942,13 +21957,6 @@
|
|
|
21942
21957
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
|
21943
21958
|
const slotProps = {
|
|
21944
21959
|
props: {
|
|
21945
|
-
class: 'v-date-picker-month__day-btn',
|
|
21946
|
-
color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
|
|
21947
|
-
disabled: item.isDisabled,
|
|
21948
|
-
icon: true,
|
|
21949
|
-
ripple: false,
|
|
21950
|
-
text: item.localized,
|
|
21951
|
-
variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
|
|
21952
21960
|
onClick: () => onClick(item.date)
|
|
21953
21961
|
},
|
|
21954
21962
|
item,
|
|
@@ -21966,9 +21974,24 @@
|
|
|
21966
21974
|
'v-date-picker-month__day--week-start': item.isWeekStart
|
|
21967
21975
|
}],
|
|
21968
21976
|
"data-v-date": !item.isDisabled ? item.isoDate : undefined
|
|
21969
|
-
}, [(props.showAdjacentMonths || !item.isAdjacent) &&
|
|
21977
|
+
}, [(props.showAdjacentMonths || !item.isAdjacent) && vue.createVNode(VDefaultsProvider, {
|
|
21978
|
+
"defaults": {
|
|
21979
|
+
VBtn: {
|
|
21980
|
+
class: 'v-date-picker-month__day-btn',
|
|
21981
|
+
color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
|
|
21982
|
+
disabled: item.isDisabled,
|
|
21983
|
+
icon: true,
|
|
21984
|
+
ripple: false,
|
|
21985
|
+
text: item.localized,
|
|
21986
|
+
variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
|
|
21987
|
+
onClick: () => onClick(item.date)
|
|
21988
|
+
}
|
|
21989
|
+
}
|
|
21990
|
+
}, {
|
|
21991
|
+
default: () => [slots.day?.(slotProps) ?? vue.createVNode(VBtn, slotProps.props, null)]
|
|
21992
|
+
})]);
|
|
21970
21993
|
})])]
|
|
21971
|
-
})])
|
|
21994
|
+
})]);
|
|
21972
21995
|
}
|
|
21973
21996
|
});
|
|
21974
21997
|
|
|
@@ -22264,7 +22287,7 @@
|
|
|
22264
22287
|
const {
|
|
22265
22288
|
t
|
|
22266
22289
|
} = useLocale();
|
|
22267
|
-
const model = useProxiedModel(props, 'modelValue', undefined, v => wrapInArray(v), v => props.multiple ? v : v[0]);
|
|
22290
|
+
const model = useProxiedModel(props, 'modelValue', undefined, v => wrapInArray(v).map(i => adapter.date(i)), v => props.multiple ? v : v[0]);
|
|
22268
22291
|
const viewMode = useProxiedModel(props, 'viewMode');
|
|
22269
22292
|
// const inputMode = useProxiedModel(props, 'inputMode')
|
|
22270
22293
|
|
|
@@ -28233,11 +28256,13 @@
|
|
|
28233
28256
|
// Types
|
|
28234
28257
|
|
|
28235
28258
|
const makeVDateInputProps = propsFactory({
|
|
28259
|
+
displayFormat: [Function, String],
|
|
28236
28260
|
hideActions: Boolean,
|
|
28237
28261
|
location: {
|
|
28238
28262
|
type: String,
|
|
28239
28263
|
default: 'bottom start'
|
|
28240
28264
|
},
|
|
28265
|
+
...makeDisplayProps(),
|
|
28241
28266
|
...makeFocusProps(),
|
|
28242
28267
|
...makeVConfirmEditProps(),
|
|
28243
28268
|
...makeVTextFieldProps({
|
|
@@ -28253,16 +28278,22 @@
|
|
|
28253
28278
|
name: 'VDateInput',
|
|
28254
28279
|
props: makeVDateInputProps(),
|
|
28255
28280
|
emits: {
|
|
28281
|
+
save: value => true,
|
|
28282
|
+
cancel: () => true,
|
|
28256
28283
|
'update:modelValue': val => true
|
|
28257
28284
|
},
|
|
28258
28285
|
setup(props, _ref) {
|
|
28259
28286
|
let {
|
|
28287
|
+
emit,
|
|
28260
28288
|
slots
|
|
28261
28289
|
} = _ref;
|
|
28262
28290
|
const {
|
|
28263
28291
|
t
|
|
28264
28292
|
} = useLocale();
|
|
28265
28293
|
const adapter = useDate();
|
|
28294
|
+
const {
|
|
28295
|
+
mobile
|
|
28296
|
+
} = useDisplay();
|
|
28266
28297
|
const {
|
|
28267
28298
|
isFocused,
|
|
28268
28299
|
focus,
|
|
@@ -28270,7 +28301,14 @@
|
|
|
28270
28301
|
} = useFocus(props);
|
|
28271
28302
|
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);
|
|
28272
28303
|
const menu = vue.shallowRef(false);
|
|
28304
|
+
const isEditingInput = vue.shallowRef(false);
|
|
28273
28305
|
const vDateInputRef = vue.ref();
|
|
28306
|
+
function format(date) {
|
|
28307
|
+
if (typeof props.displayFormat === 'function') {
|
|
28308
|
+
return props.displayFormat(date);
|
|
28309
|
+
}
|
|
28310
|
+
return adapter.format(date, props.displayFormat ?? 'keyboardDate');
|
|
28311
|
+
}
|
|
28274
28312
|
const display = vue.computed(() => {
|
|
28275
28313
|
const value = wrapInArray(model.value);
|
|
28276
28314
|
if (!value.length) return null;
|
|
@@ -28280,11 +28318,22 @@
|
|
|
28280
28318
|
if (props.multiple === 'range') {
|
|
28281
28319
|
const start = value[0];
|
|
28282
28320
|
const end = value[value.length - 1];
|
|
28283
|
-
|
|
28321
|
+
if (!adapter.isValid(start) || !adapter.isValid(end)) return '';
|
|
28322
|
+
return `${format(adapter.date(start))} - ${format(adapter.date(end))}`;
|
|
28284
28323
|
}
|
|
28285
|
-
return adapter.isValid(model.value) ?
|
|
28324
|
+
return adapter.isValid(model.value) ? format(adapter.date(model.value)) : '';
|
|
28325
|
+
});
|
|
28326
|
+
const inputmode = vue.computed(() => {
|
|
28327
|
+
if (!mobile.value) return undefined;
|
|
28328
|
+
if (isEditingInput.value) return 'text';
|
|
28329
|
+
return 'none';
|
|
28286
28330
|
});
|
|
28287
28331
|
const isInteractive = vue.computed(() => !props.disabled && !props.readonly);
|
|
28332
|
+
const isReadonly = vue.computed(() => !(mobile.value && isEditingInput.value) && props.readonly);
|
|
28333
|
+
vue.watch(menu, val => {
|
|
28334
|
+
if (val) return;
|
|
28335
|
+
isEditingInput.value = false;
|
|
28336
|
+
});
|
|
28288
28337
|
function onKeydown(e) {
|
|
28289
28338
|
if (e.key !== 'Enter') return;
|
|
28290
28339
|
if (!menu.value || !isFocused.value) {
|
|
@@ -28297,15 +28346,38 @@
|
|
|
28297
28346
|
function onClick(e) {
|
|
28298
28347
|
e.preventDefault();
|
|
28299
28348
|
e.stopPropagation();
|
|
28300
|
-
menu.value
|
|
28349
|
+
if (menu.value && mobile.value) {
|
|
28350
|
+
isEditingInput.value = true;
|
|
28351
|
+
} else {
|
|
28352
|
+
menu.value = true;
|
|
28353
|
+
}
|
|
28354
|
+
}
|
|
28355
|
+
function onCancel() {
|
|
28356
|
+
emit('cancel');
|
|
28357
|
+
menu.value = false;
|
|
28358
|
+
isEditingInput.value = false;
|
|
28301
28359
|
}
|
|
28302
|
-
function onSave() {
|
|
28360
|
+
function onSave(value) {
|
|
28361
|
+
emit('save', value);
|
|
28303
28362
|
menu.value = false;
|
|
28304
28363
|
}
|
|
28305
|
-
function
|
|
28364
|
+
function onUpdateDisplayModel(value) {
|
|
28306
28365
|
if (value != null) return;
|
|
28307
28366
|
model.value = null;
|
|
28308
28367
|
}
|
|
28368
|
+
function onUpdateMenuModel(isMenuOpen) {
|
|
28369
|
+
if (isMenuOpen) return;
|
|
28370
|
+
isEditingInput.value = false;
|
|
28371
|
+
}
|
|
28372
|
+
function onBlur() {
|
|
28373
|
+
blur();
|
|
28374
|
+
|
|
28375
|
+
// When in mobile mode and editing is done (due to keyboard dismissal), close the menu
|
|
28376
|
+
if (mobile.value && isEditingInput.value && !isFocused.value) {
|
|
28377
|
+
menu.value = false;
|
|
28378
|
+
isEditingInput.value = false;
|
|
28379
|
+
}
|
|
28380
|
+
}
|
|
28309
28381
|
useRender(() => {
|
|
28310
28382
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
|
28311
28383
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
|
@@ -28316,18 +28388,20 @@
|
|
|
28316
28388
|
"class": props.class,
|
|
28317
28389
|
"style": props.style,
|
|
28318
28390
|
"modelValue": display.value,
|
|
28391
|
+
"inputmode": inputmode.value,
|
|
28392
|
+
"readonly": isReadonly.value,
|
|
28319
28393
|
"onKeydown": isInteractive.value ? onKeydown : undefined,
|
|
28320
28394
|
"focused": menu.value || isFocused.value,
|
|
28321
28395
|
"onFocus": focus,
|
|
28322
|
-
"onBlur":
|
|
28396
|
+
"onBlur": onBlur,
|
|
28323
28397
|
"onClick:control": isInteractive.value ? onClick : undefined,
|
|
28324
28398
|
"onClick:prepend": isInteractive.value ? onClick : undefined,
|
|
28325
|
-
"onUpdate:modelValue":
|
|
28399
|
+
"onUpdate:modelValue": onUpdateDisplayModel
|
|
28326
28400
|
}), {
|
|
28327
28401
|
...slots,
|
|
28328
28402
|
default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, {
|
|
28329
28403
|
"modelValue": menu.value,
|
|
28330
|
-
"onUpdate:modelValue": $event => menu.value = $event,
|
|
28404
|
+
"onUpdate:modelValue": [$event => menu.value = $event, onUpdateMenuModel],
|
|
28331
28405
|
"activator": "parent",
|
|
28332
28406
|
"min-width": "0",
|
|
28333
28407
|
"eager": isFocused.value,
|
|
@@ -28339,7 +28413,7 @@
|
|
|
28339
28413
|
"modelValue": model.value,
|
|
28340
28414
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
28341
28415
|
"onSave": onSave,
|
|
28342
|
-
"onCancel":
|
|
28416
|
+
"onCancel": onCancel
|
|
28343
28417
|
}), {
|
|
28344
28418
|
default: _ref2 => {
|
|
28345
28419
|
let {
|
|
@@ -28349,16 +28423,21 @@
|
|
|
28349
28423
|
cancel,
|
|
28350
28424
|
isPristine
|
|
28351
28425
|
} = _ref2;
|
|
28426
|
+
function onUpdateModel(value) {
|
|
28427
|
+
if (!props.hideActions) {
|
|
28428
|
+
proxyModel.value = value;
|
|
28429
|
+
} else {
|
|
28430
|
+
model.value = value;
|
|
28431
|
+
if (!props.multiple) {
|
|
28432
|
+
menu.value = false;
|
|
28433
|
+
}
|
|
28434
|
+
}
|
|
28435
|
+
emit('save', value);
|
|
28436
|
+
vDateInputRef.value?.blur();
|
|
28437
|
+
}
|
|
28352
28438
|
return vue.createVNode(VDatePicker, vue.mergeProps(datePickerProps, {
|
|
28353
28439
|
"modelValue": props.hideActions ? model.value : proxyModel.value,
|
|
28354
|
-
"onUpdate:modelValue":
|
|
28355
|
-
if (!props.hideActions) {
|
|
28356
|
-
proxyModel.value = val;
|
|
28357
|
-
} else {
|
|
28358
|
-
model.value = val;
|
|
28359
|
-
if (!props.multiple) menu.value = false;
|
|
28360
|
-
}
|
|
28361
|
-
},
|
|
28440
|
+
"onUpdate:modelValue": value => onUpdateModel(value),
|
|
28362
28441
|
"onMousedown": e => e.preventDefault()
|
|
28363
28442
|
}), {
|
|
28364
28443
|
actions: !props.hideActions ? () => slots.actions?.({
|
|
@@ -31076,7 +31155,7 @@
|
|
|
31076
31155
|
goTo
|
|
31077
31156
|
};
|
|
31078
31157
|
}
|
|
31079
|
-
const version$1 = "3.7.
|
|
31158
|
+
const version$1 = "3.7.19";
|
|
31080
31159
|
createVuetify$1.version = version$1;
|
|
31081
31160
|
|
|
31082
31161
|
// Vue's inject() can only be used in setup
|
|
@@ -31329,7 +31408,7 @@
|
|
|
31329
31408
|
|
|
31330
31409
|
/* eslint-disable local-rules/sort-imports */
|
|
31331
31410
|
|
|
31332
|
-
const version = "3.7.
|
|
31411
|
+
const version = "3.7.19";
|
|
31333
31412
|
|
|
31334
31413
|
/* eslint-disable local-rules/sort-imports */
|
|
31335
31414
|
|