vuetify 3.7.18 → 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 +2834 -2822
- package/dist/json/importMap-labs.json +26 -26
- package/dist/json/importMap.json +138 -138
- package/dist/json/tags.json +3 -0
- package/dist/json/web-types.json +5323 -5273
- package/dist/vuetify-labs.css +3725 -3725
- package/dist/vuetify-labs.d.ts +74 -32
- package/dist/vuetify-labs.esm.js +98 -27
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +98 -27
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +3391 -3391
- package/dist/vuetify.d.ts +86 -83
- package/dist/vuetify.esm.js +25 -10
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +25 -10
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +10 -10
- 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/VIcon/VIcon.mjs +2 -2
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/index.d.mts +35 -32
- 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 +51 -51
- 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]);
|
|
@@ -22272,7 +22287,7 @@
|
|
|
22272
22287
|
const {
|
|
22273
22288
|
t
|
|
22274
22289
|
} = useLocale();
|
|
22275
|
-
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]);
|
|
22276
22291
|
const viewMode = useProxiedModel(props, 'viewMode');
|
|
22277
22292
|
// const inputMode = useProxiedModel(props, 'inputMode')
|
|
22278
22293
|
|
|
@@ -28241,11 +28256,13 @@
|
|
|
28241
28256
|
// Types
|
|
28242
28257
|
|
|
28243
28258
|
const makeVDateInputProps = propsFactory({
|
|
28259
|
+
displayFormat: [Function, String],
|
|
28244
28260
|
hideActions: Boolean,
|
|
28245
28261
|
location: {
|
|
28246
28262
|
type: String,
|
|
28247
28263
|
default: 'bottom start'
|
|
28248
28264
|
},
|
|
28265
|
+
...makeDisplayProps(),
|
|
28249
28266
|
...makeFocusProps(),
|
|
28250
28267
|
...makeVConfirmEditProps(),
|
|
28251
28268
|
...makeVTextFieldProps({
|
|
@@ -28261,16 +28278,22 @@
|
|
|
28261
28278
|
name: 'VDateInput',
|
|
28262
28279
|
props: makeVDateInputProps(),
|
|
28263
28280
|
emits: {
|
|
28281
|
+
save: value => true,
|
|
28282
|
+
cancel: () => true,
|
|
28264
28283
|
'update:modelValue': val => true
|
|
28265
28284
|
},
|
|
28266
28285
|
setup(props, _ref) {
|
|
28267
28286
|
let {
|
|
28287
|
+
emit,
|
|
28268
28288
|
slots
|
|
28269
28289
|
} = _ref;
|
|
28270
28290
|
const {
|
|
28271
28291
|
t
|
|
28272
28292
|
} = useLocale();
|
|
28273
28293
|
const adapter = useDate();
|
|
28294
|
+
const {
|
|
28295
|
+
mobile
|
|
28296
|
+
} = useDisplay();
|
|
28274
28297
|
const {
|
|
28275
28298
|
isFocused,
|
|
28276
28299
|
focus,
|
|
@@ -28278,7 +28301,14 @@
|
|
|
28278
28301
|
} = useFocus(props);
|
|
28279
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);
|
|
28280
28303
|
const menu = vue.shallowRef(false);
|
|
28304
|
+
const isEditingInput = vue.shallowRef(false);
|
|
28281
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
|
+
}
|
|
28282
28312
|
const display = vue.computed(() => {
|
|
28283
28313
|
const value = wrapInArray(model.value);
|
|
28284
28314
|
if (!value.length) return null;
|
|
@@ -28288,11 +28318,22 @@
|
|
|
28288
28318
|
if (props.multiple === 'range') {
|
|
28289
28319
|
const start = value[0];
|
|
28290
28320
|
const end = value[value.length - 1];
|
|
28291
|
-
|
|
28321
|
+
if (!adapter.isValid(start) || !adapter.isValid(end)) return '';
|
|
28322
|
+
return `${format(adapter.date(start))} - ${format(adapter.date(end))}`;
|
|
28292
28323
|
}
|
|
28293
|
-
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';
|
|
28294
28330
|
});
|
|
28295
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
|
+
});
|
|
28296
28337
|
function onKeydown(e) {
|
|
28297
28338
|
if (e.key !== 'Enter') return;
|
|
28298
28339
|
if (!menu.value || !isFocused.value) {
|
|
@@ -28305,15 +28346,38 @@
|
|
|
28305
28346
|
function onClick(e) {
|
|
28306
28347
|
e.preventDefault();
|
|
28307
28348
|
e.stopPropagation();
|
|
28308
|
-
menu.value
|
|
28349
|
+
if (menu.value && mobile.value) {
|
|
28350
|
+
isEditingInput.value = true;
|
|
28351
|
+
} else {
|
|
28352
|
+
menu.value = true;
|
|
28353
|
+
}
|
|
28309
28354
|
}
|
|
28310
|
-
function
|
|
28355
|
+
function onCancel() {
|
|
28356
|
+
emit('cancel');
|
|
28311
28357
|
menu.value = false;
|
|
28358
|
+
isEditingInput.value = false;
|
|
28312
28359
|
}
|
|
28313
|
-
function
|
|
28360
|
+
function onSave(value) {
|
|
28361
|
+
emit('save', value);
|
|
28362
|
+
menu.value = false;
|
|
28363
|
+
}
|
|
28364
|
+
function onUpdateDisplayModel(value) {
|
|
28314
28365
|
if (value != null) return;
|
|
28315
28366
|
model.value = null;
|
|
28316
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
|
+
}
|
|
28317
28381
|
useRender(() => {
|
|
28318
28382
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
|
28319
28383
|
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
|
@@ -28324,18 +28388,20 @@
|
|
|
28324
28388
|
"class": props.class,
|
|
28325
28389
|
"style": props.style,
|
|
28326
28390
|
"modelValue": display.value,
|
|
28391
|
+
"inputmode": inputmode.value,
|
|
28392
|
+
"readonly": isReadonly.value,
|
|
28327
28393
|
"onKeydown": isInteractive.value ? onKeydown : undefined,
|
|
28328
28394
|
"focused": menu.value || isFocused.value,
|
|
28329
28395
|
"onFocus": focus,
|
|
28330
|
-
"onBlur":
|
|
28396
|
+
"onBlur": onBlur,
|
|
28331
28397
|
"onClick:control": isInteractive.value ? onClick : undefined,
|
|
28332
28398
|
"onClick:prepend": isInteractive.value ? onClick : undefined,
|
|
28333
|
-
"onUpdate:modelValue":
|
|
28399
|
+
"onUpdate:modelValue": onUpdateDisplayModel
|
|
28334
28400
|
}), {
|
|
28335
28401
|
...slots,
|
|
28336
28402
|
default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, {
|
|
28337
28403
|
"modelValue": menu.value,
|
|
28338
|
-
"onUpdate:modelValue": $event => menu.value = $event,
|
|
28404
|
+
"onUpdate:modelValue": [$event => menu.value = $event, onUpdateMenuModel],
|
|
28339
28405
|
"activator": "parent",
|
|
28340
28406
|
"min-width": "0",
|
|
28341
28407
|
"eager": isFocused.value,
|
|
@@ -28347,7 +28413,7 @@
|
|
|
28347
28413
|
"modelValue": model.value,
|
|
28348
28414
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
28349
28415
|
"onSave": onSave,
|
|
28350
|
-
"onCancel":
|
|
28416
|
+
"onCancel": onCancel
|
|
28351
28417
|
}), {
|
|
28352
28418
|
default: _ref2 => {
|
|
28353
28419
|
let {
|
|
@@ -28357,16 +28423,21 @@
|
|
|
28357
28423
|
cancel,
|
|
28358
28424
|
isPristine
|
|
28359
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
|
+
}
|
|
28360
28438
|
return vue.createVNode(VDatePicker, vue.mergeProps(datePickerProps, {
|
|
28361
28439
|
"modelValue": props.hideActions ? model.value : proxyModel.value,
|
|
28362
|
-
"onUpdate:modelValue":
|
|
28363
|
-
if (!props.hideActions) {
|
|
28364
|
-
proxyModel.value = val;
|
|
28365
|
-
} else {
|
|
28366
|
-
model.value = val;
|
|
28367
|
-
if (!props.multiple) menu.value = false;
|
|
28368
|
-
}
|
|
28369
|
-
},
|
|
28440
|
+
"onUpdate:modelValue": value => onUpdateModel(value),
|
|
28370
28441
|
"onMousedown": e => e.preventDefault()
|
|
28371
28442
|
}), {
|
|
28372
28443
|
actions: !props.hideActions ? () => slots.actions?.({
|
|
@@ -31084,7 +31155,7 @@
|
|
|
31084
31155
|
goTo
|
|
31085
31156
|
};
|
|
31086
31157
|
}
|
|
31087
|
-
const version$1 = "3.7.
|
|
31158
|
+
const version$1 = "3.7.19";
|
|
31088
31159
|
createVuetify$1.version = version$1;
|
|
31089
31160
|
|
|
31090
31161
|
// Vue's inject() can only be used in setup
|
|
@@ -31337,7 +31408,7 @@
|
|
|
31337
31408
|
|
|
31338
31409
|
/* eslint-disable local-rules/sort-imports */
|
|
31339
31410
|
|
|
31340
|
-
const version = "3.7.
|
|
31411
|
+
const version = "3.7.19";
|
|
31341
31412
|
|
|
31342
31413
|
/* eslint-disable local-rules/sort-imports */
|
|
31343
31414
|
|