vuetify 3.5.6 → 3.5.8
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 +2 -0
- package/dist/json/attributes.json +461 -41
- package/dist/json/importMap-labs.json +16 -4
- package/dist/json/importMap.json +120 -120
- package/dist/json/tags.json +120 -0
- package/dist/json/web-types.json +1173 -53
- package/dist/vuetify-labs.css +1547 -1407
- package/dist/vuetify-labs.d.ts +1672 -127
- package/dist/vuetify-labs.esm.js +428 -94
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +428 -94
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +438 -432
- package/dist/vuetify.d.ts +78 -142
- package/dist/vuetify.esm.js +121 -82
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +121 -82
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +147 -135
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VApp/index.d.mts +8 -6
- package/lib/components/VAutocomplete/VAutocomplete.css +4 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs +28 -27
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs +3 -1
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +4 -4
- package/lib/components/VCombobox/VCombobox.mjs +40 -27
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +2 -2
- package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/components/VDataIterator/index.d.mts +50 -94
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VLayout/index.d.mts +8 -6
- package/lib/components/VSelect/VSelect.mjs +18 -17
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.css +9 -5
- package/lib/components/VSwitch/VSwitch.mjs +2 -0
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +10 -7
- package/lib/components/VSwitch/_variables.scss +2 -0
- package/lib/components/VToolbar/VToolbar.css +3 -1
- package/lib/components/VToolbar/VToolbar.sass +2 -1
- package/lib/components/index.d.mts +38 -105
- package/lib/composables/date/adapters/vuetify.mjs +21 -3
- package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/transition.mjs +7 -5
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +42 -37
- package/lib/labs/VCalendar/VCalendarInterval.css +1 -0
- package/lib/labs/VCalendar/VCalendarInterval.sass +1 -0
- package/lib/labs/VCalendar/VCalendarIntervalEvent.css +6 -0
- package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs +5 -2
- package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs.map +1 -1
- package/lib/labs/VCalendar/VCalendarIntervalEvent.sass +6 -0
- package/lib/labs/VEmptyState/VEmptyState.css +59 -0
- package/lib/labs/VEmptyState/VEmptyState.mjs +145 -0
- package/lib/labs/VEmptyState/VEmptyState.mjs.map +1 -0
- package/lib/labs/VEmptyState/VEmptyState.sass +53 -0
- package/lib/labs/VEmptyState/_variables.scss +22 -0
- package/lib/labs/VEmptyState/index.d.mts +415 -0
- package/lib/labs/VEmptyState/index.mjs +2 -0
- package/lib/labs/VEmptyState/index.mjs.map +1 -0
- package/lib/labs/VFab/VFab.css +69 -0
- package/lib/labs/VFab/VFab.mjs +114 -0
- package/lib/labs/VFab/VFab.mjs.map +1 -0
- package/lib/labs/VFab/VFab.sass +82 -0
- package/lib/labs/VFab/_mixins.scss +22 -0
- package/lib/labs/VFab/_variables.scss +33 -0
- package/lib/labs/VFab/index.d.mts +656 -0
- package/lib/labs/VFab/index.mjs +2 -0
- package/lib/labs/VFab/index.mjs.map +1 -0
- package/lib/labs/VSparkline/VBarline.mjs +8 -7
- package/lib/labs/VSparkline/VBarline.mjs.map +1 -1
- package/lib/labs/VSparkline/VTrendline.mjs +14 -6
- package/lib/labs/VSparkline/VTrendline.mjs.map +1 -1
- package/lib/labs/VSparkline/index.d.mts +27 -0
- package/lib/labs/VSparkline/util/line.mjs +6 -0
- package/lib/labs/VSparkline/util/line.mjs.map +1 -1
- package/lib/labs/VSpeedDial/VSpeedDial.css +3 -0
- package/lib/labs/VSpeedDial/VSpeedDial.mjs +56 -0
- package/lib/labs/VSpeedDial/VSpeedDial.mjs.map +1 -0
- package/lib/labs/VSpeedDial/VSpeedDial.sass +2 -0
- package/lib/labs/VSpeedDial/index.d.mts +649 -0
- package/lib/labs/VSpeedDial/index.mjs +2 -0
- package/lib/labs/VSpeedDial/index.mjs.map +1 -0
- package/lib/labs/components.d.mts +1907 -193
- package/lib/labs/components.mjs +3 -0
- package/lib/labs/components.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.5.
|
|
2
|
+
* Vuetify v3.5.8
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -3158,17 +3158,19 @@
|
|
|
3158
3158
|
const {
|
|
3159
3159
|
transition,
|
|
3160
3160
|
disabled,
|
|
3161
|
+
group,
|
|
3161
3162
|
...rest
|
|
3162
3163
|
} = props;
|
|
3163
3164
|
const {
|
|
3164
|
-
component = vue.Transition,
|
|
3165
|
+
component = group ? vue.TransitionGroup : vue.Transition,
|
|
3165
3166
|
...customProps
|
|
3166
3167
|
} = typeof transition === 'object' ? transition : {};
|
|
3167
3168
|
return vue.h(component, vue.mergeProps(typeof transition === 'string' ? {
|
|
3168
3169
|
name: disabled ? '' : transition
|
|
3169
|
-
} : customProps,
|
|
3170
|
-
disabled
|
|
3171
|
-
|
|
3170
|
+
} : customProps, typeof transition === 'string' ? {} : {
|
|
3171
|
+
disabled,
|
|
3172
|
+
group
|
|
3173
|
+
}, rest), slots);
|
|
3172
3174
|
};
|
|
3173
3175
|
|
|
3174
3176
|
// Utilities
|
|
@@ -6885,7 +6887,8 @@
|
|
|
6885
6887
|
id,
|
|
6886
6888
|
messagesId,
|
|
6887
6889
|
isDisabled,
|
|
6888
|
-
isReadonly
|
|
6890
|
+
isReadonly,
|
|
6891
|
+
isValid
|
|
6889
6892
|
} = _ref2;
|
|
6890
6893
|
return vue.createVNode(VCheckboxBtn, vue.mergeProps(checkboxProps, {
|
|
6891
6894
|
"id": id.value,
|
|
@@ -6893,6 +6896,7 @@
|
|
|
6893
6896
|
"disabled": isDisabled.value,
|
|
6894
6897
|
"readonly": isReadonly.value
|
|
6895
6898
|
}, controlAttrs, {
|
|
6899
|
+
"error": isValid.value === false,
|
|
6896
6900
|
"modelValue": model.value,
|
|
6897
6901
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
6898
6902
|
"onFocus": focus,
|
|
@@ -11842,21 +11846,27 @@
|
|
|
11842
11846
|
model.value = [item];
|
|
11843
11847
|
}
|
|
11844
11848
|
}
|
|
11849
|
+
|
|
11850
|
+
/** @param set - null means toggle */
|
|
11845
11851
|
function select(item) {
|
|
11846
|
-
let
|
|
11852
|
+
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
11853
|
+
if (item.props.disabled) return;
|
|
11847
11854
|
if (props.multiple) {
|
|
11848
11855
|
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
11849
|
-
add = index
|
|
11850
|
-
if (
|
|
11851
|
-
|
|
11852
|
-
} else {
|
|
11853
|
-
const value = [...model.value];
|
|
11856
|
+
const add = set == null ? !~index : set;
|
|
11857
|
+
if (~index) {
|
|
11858
|
+
const value = add ? [...model.value, item] : [...model.value];
|
|
11854
11859
|
value.splice(index, 1);
|
|
11855
11860
|
model.value = value;
|
|
11861
|
+
} else if (add) {
|
|
11862
|
+
model.value = [...model.value, item];
|
|
11856
11863
|
}
|
|
11857
11864
|
} else {
|
|
11865
|
+
const add = set !== false;
|
|
11858
11866
|
model.value = add ? [item] : [];
|
|
11859
|
-
|
|
11867
|
+
vue.nextTick(() => {
|
|
11868
|
+
menu.value = false;
|
|
11869
|
+
});
|
|
11860
11870
|
}
|
|
11861
11871
|
}
|
|
11862
11872
|
function onBlur(e) {
|
|
@@ -11890,14 +11900,9 @@
|
|
|
11890
11900
|
});
|
|
11891
11901
|
}
|
|
11892
11902
|
});
|
|
11893
|
-
vue.watch(
|
|
11894
|
-
if (!isFocused.value) return;
|
|
11895
|
-
|
|
11896
|
-
menu.value = false;
|
|
11897
|
-
}
|
|
11898
|
-
if (!oldVal.length && val.length) {
|
|
11899
|
-
menu.value = true;
|
|
11900
|
-
}
|
|
11903
|
+
vue.watch(() => props.items, val => {
|
|
11904
|
+
if (!isFocused.value || !val.length || menu.value) return;
|
|
11905
|
+
menu.value = true;
|
|
11901
11906
|
});
|
|
11902
11907
|
useRender(() => {
|
|
11903
11908
|
const hasChips = !!(props.chips || slots.chip);
|
|
@@ -11975,7 +11980,7 @@
|
|
|
11975
11980
|
const itemProps = vue.mergeProps(item.props, {
|
|
11976
11981
|
ref: itemRef,
|
|
11977
11982
|
key: index,
|
|
11978
|
-
onClick: () => select(item)
|
|
11983
|
+
onClick: () => select(item, null)
|
|
11979
11984
|
});
|
|
11980
11985
|
return slots.item?.({
|
|
11981
11986
|
item,
|
|
@@ -12282,6 +12287,8 @@
|
|
|
12282
12287
|
}
|
|
12283
12288
|
return filteredItems.value;
|
|
12284
12289
|
});
|
|
12290
|
+
const hasChips = vue.computed(() => !!(props.chips || slots.chip));
|
|
12291
|
+
const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
|
|
12285
12292
|
const selectedValues = vue.computed(() => model.value.map(selection => selection.props.value));
|
|
12286
12293
|
const highlightFirst = vue.computed(() => {
|
|
12287
12294
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
@@ -12340,7 +12347,7 @@
|
|
|
12340
12347
|
}
|
|
12341
12348
|
const originalSelectionIndex = selectionIndex.value;
|
|
12342
12349
|
const selectedItem = model.value[selectionIndex.value];
|
|
12343
|
-
if (selectedItem && !selectedItem.props.disabled) select(selectedItem);
|
|
12350
|
+
if (selectedItem && !selectedItem.props.disabled) select(selectedItem, false);
|
|
12344
12351
|
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
12345
12352
|
}
|
|
12346
12353
|
if (e.key === 'ArrowLeft') {
|
|
@@ -12391,36 +12398,41 @@
|
|
|
12391
12398
|
if (v == null || v === '' && !props.multiple) model.value = [];
|
|
12392
12399
|
}
|
|
12393
12400
|
const isSelecting = vue.shallowRef(false);
|
|
12401
|
+
|
|
12402
|
+
/** @param set - null means toggle */
|
|
12394
12403
|
function select(item) {
|
|
12395
|
-
let
|
|
12404
|
+
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
12396
12405
|
if (item.props.disabled) return;
|
|
12397
12406
|
if (props.multiple) {
|
|
12398
12407
|
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
12399
|
-
add = index
|
|
12400
|
-
if (
|
|
12401
|
-
|
|
12402
|
-
} else {
|
|
12403
|
-
const value = [...model.value];
|
|
12408
|
+
const add = set == null ? !~index : set;
|
|
12409
|
+
if (~index) {
|
|
12410
|
+
const value = add ? [...model.value, item] : [...model.value];
|
|
12404
12411
|
value.splice(index, 1);
|
|
12405
12412
|
model.value = value;
|
|
12413
|
+
} else if (add) {
|
|
12414
|
+
model.value = [...model.value, item];
|
|
12406
12415
|
}
|
|
12407
12416
|
if (props.clearOnSelect) {
|
|
12408
12417
|
search.value = '';
|
|
12409
12418
|
}
|
|
12410
12419
|
} else {
|
|
12420
|
+
const add = set !== false;
|
|
12411
12421
|
model.value = add ? [item] : [];
|
|
12412
|
-
|
|
12413
|
-
|
|
12414
|
-
|
|
12415
|
-
|
|
12416
|
-
|
|
12422
|
+
search.value = add && !hasSelectionSlot.value ? item.title : '';
|
|
12423
|
+
|
|
12424
|
+
// watch for search watcher to trigger
|
|
12425
|
+
vue.nextTick(() => {
|
|
12426
|
+
menu.value = false;
|
|
12427
|
+
isPristine.value = true;
|
|
12428
|
+
});
|
|
12417
12429
|
}
|
|
12418
12430
|
}
|
|
12419
12431
|
vue.watch(isFocused, (val, oldVal) => {
|
|
12420
12432
|
if (val === oldVal) return;
|
|
12421
12433
|
if (val) {
|
|
12422
12434
|
isSelecting.value = true;
|
|
12423
|
-
search.value = props.multiple ? '' : String(model.value.at(-1)?.props.title ?? '');
|
|
12435
|
+
search.value = props.multiple || hasSelectionSlot.value ? '' : String(model.value.at(-1)?.props.title ?? '');
|
|
12424
12436
|
isPristine.value = true;
|
|
12425
12437
|
vue.nextTick(() => isSelecting.value = false);
|
|
12426
12438
|
} else {
|
|
@@ -12450,17 +12462,11 @@
|
|
|
12450
12462
|
});
|
|
12451
12463
|
}
|
|
12452
12464
|
});
|
|
12453
|
-
vue.watch(
|
|
12454
|
-
if (!isFocused.value) return;
|
|
12455
|
-
|
|
12456
|
-
menu.value = false;
|
|
12457
|
-
}
|
|
12458
|
-
if (!oldVal.length && val.length) {
|
|
12459
|
-
menu.value = true;
|
|
12460
|
-
}
|
|
12465
|
+
vue.watch(() => props.items, val => {
|
|
12466
|
+
if (!isFocused.value || !val.length || menu.value) return;
|
|
12467
|
+
menu.value = true;
|
|
12461
12468
|
});
|
|
12462
12469
|
useRender(() => {
|
|
12463
|
-
const hasChips = !!(props.chips || slots.chip);
|
|
12464
12470
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
12465
12471
|
const isDirty = model.value.length > 0;
|
|
12466
12472
|
const textFieldProps = VTextField.filterProps(props);
|
|
@@ -12478,7 +12484,7 @@
|
|
|
12478
12484
|
"class": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {
|
|
12479
12485
|
'v-autocomplete--active-menu': menu.value,
|
|
12480
12486
|
'v-autocomplete--chips': !!props.chips,
|
|
12481
|
-
'v-autocomplete--selection-slot': !!
|
|
12487
|
+
'v-autocomplete--selection-slot': !!hasSelectionSlot.value,
|
|
12482
12488
|
'v-autocomplete--selecting-index': selectionIndex.value > -1
|
|
12483
12489
|
}, props.class],
|
|
12484
12490
|
"style": props.style,
|
|
@@ -12533,7 +12539,7 @@
|
|
|
12533
12539
|
ref: itemRef,
|
|
12534
12540
|
key: index,
|
|
12535
12541
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
|
12536
|
-
onClick: () => select(item)
|
|
12542
|
+
onClick: () => select(item, null)
|
|
12537
12543
|
});
|
|
12538
12544
|
return slots.item?.({
|
|
12539
12545
|
item,
|
|
@@ -12579,8 +12585,8 @@
|
|
|
12579
12585
|
modelValue: true,
|
|
12580
12586
|
'onUpdate:modelValue': undefined
|
|
12581
12587
|
};
|
|
12582
|
-
const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
|
|
12583
|
-
const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
|
|
12588
|
+
const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
|
|
12589
|
+
const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
|
|
12584
12590
|
item,
|
|
12585
12591
|
index,
|
|
12586
12592
|
props: slotProps
|
|
@@ -12593,7 +12599,7 @@
|
|
|
12593
12599
|
"key": item.value,
|
|
12594
12600
|
"class": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],
|
|
12595
12601
|
"style": index === selectionIndex.value ? textColorStyles.value : {}
|
|
12596
|
-
}, [hasChips ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
|
|
12602
|
+
}, [hasChips.value ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
|
|
12597
12603
|
"key": "chip",
|
|
12598
12604
|
"closable": props.closableChips,
|
|
12599
12605
|
"size": "small",
|
|
@@ -16032,14 +16038,16 @@
|
|
|
16032
16038
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
16033
16039
|
});
|
|
16034
16040
|
const form = useForm();
|
|
16035
|
-
const
|
|
16041
|
+
const hasChips = vue.computed(() => !!(props.chips || slots.chip));
|
|
16042
|
+
const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
|
|
16043
|
+
const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
16036
16044
|
const search = vue.computed({
|
|
16037
16045
|
get: () => {
|
|
16038
16046
|
return _search.value;
|
|
16039
16047
|
},
|
|
16040
16048
|
set: val => {
|
|
16041
16049
|
_search.value = val ?? '';
|
|
16042
|
-
if (!props.multiple) {
|
|
16050
|
+
if (!props.multiple && !hasSelectionSlot.value) {
|
|
16043
16051
|
model.value = [transformItem$3(props, val)];
|
|
16044
16052
|
}
|
|
16045
16053
|
if (val && props.multiple && props.delimiters?.length) {
|
|
@@ -16070,7 +16078,7 @@
|
|
|
16070
16078
|
emit('update:search', value);
|
|
16071
16079
|
});
|
|
16072
16080
|
vue.watch(model, value => {
|
|
16073
|
-
if (!props.multiple) {
|
|
16081
|
+
if (!props.multiple && !hasSelectionSlot.value) {
|
|
16074
16082
|
_search.value = value[0]?.title ?? '';
|
|
16075
16083
|
}
|
|
16076
16084
|
});
|
|
@@ -16135,6 +16143,10 @@
|
|
|
16135
16143
|
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
16136
16144
|
listRef.value?.focus('next');
|
|
16137
16145
|
}
|
|
16146
|
+
if (e.key === 'Enter' && search.value) {
|
|
16147
|
+
select(transformItem$3(props, search.value));
|
|
16148
|
+
if (hasSelectionSlot.value) _search.value = '';
|
|
16149
|
+
}
|
|
16138
16150
|
if (!props.multiple) return;
|
|
16139
16151
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
16140
16152
|
if (selectionIndex.value < 0) {
|
|
@@ -16168,10 +16180,6 @@
|
|
|
16168
16180
|
vTextFieldRef.value.setSelectionRange(0, 0);
|
|
16169
16181
|
}
|
|
16170
16182
|
}
|
|
16171
|
-
if (e.key === 'Enter' && search.value) {
|
|
16172
|
-
select(transformItem$3(props, search.value));
|
|
16173
|
-
search.value = '';
|
|
16174
|
-
}
|
|
16175
16183
|
}
|
|
16176
16184
|
function onAfterLeave() {
|
|
16177
16185
|
if (isFocused.value) {
|
|
@@ -16182,6 +16190,7 @@
|
|
|
16182
16190
|
/** @param set - null means toggle */
|
|
16183
16191
|
function select(item) {
|
|
16184
16192
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
16193
|
+
if (item.props.disabled) return;
|
|
16185
16194
|
if (props.multiple) {
|
|
16186
16195
|
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
16187
16196
|
const add = set == null ? !~index : set;
|
|
@@ -16198,7 +16207,7 @@
|
|
|
16198
16207
|
} else {
|
|
16199
16208
|
const add = set !== false;
|
|
16200
16209
|
model.value = add ? [item] : [];
|
|
16201
|
-
_search.value = add ? item.title : '';
|
|
16210
|
+
_search.value = add && !hasSelectionSlot.value ? item.title : '';
|
|
16202
16211
|
|
|
16203
16212
|
// watch for search watcher to trigger
|
|
16204
16213
|
vue.nextTick(() => {
|
|
@@ -16230,8 +16239,24 @@
|
|
|
16230
16239
|
return value === displayItems.value[0].value;
|
|
16231
16240
|
})) {
|
|
16232
16241
|
select(displayItems.value[0]);
|
|
16233
|
-
|
|
16234
|
-
|
|
16242
|
+
return;
|
|
16243
|
+
}
|
|
16244
|
+
if (search.value) {
|
|
16245
|
+
if (props.multiple) {
|
|
16246
|
+
select(transformItem$3(props, search.value));
|
|
16247
|
+
return;
|
|
16248
|
+
}
|
|
16249
|
+
if (!hasSelectionSlot.value) return;
|
|
16250
|
+
if (model.value.some(_ref3 => {
|
|
16251
|
+
let {
|
|
16252
|
+
title
|
|
16253
|
+
} = _ref3;
|
|
16254
|
+
return title === search.value;
|
|
16255
|
+
})) {
|
|
16256
|
+
_search.value = '';
|
|
16257
|
+
} else {
|
|
16258
|
+
select(transformItem$3(props, search.value));
|
|
16259
|
+
}
|
|
16235
16260
|
}
|
|
16236
16261
|
});
|
|
16237
16262
|
vue.watch(menu, () => {
|
|
@@ -16242,17 +16267,11 @@
|
|
|
16242
16267
|
});
|
|
16243
16268
|
}
|
|
16244
16269
|
});
|
|
16245
|
-
vue.watch(
|
|
16246
|
-
if (!isFocused.value) return;
|
|
16247
|
-
|
|
16248
|
-
menu.value = false;
|
|
16249
|
-
}
|
|
16250
|
-
if (!oldVal.length && val.length) {
|
|
16251
|
-
menu.value = true;
|
|
16252
|
-
}
|
|
16270
|
+
vue.watch(() => props.items, val => {
|
|
16271
|
+
if (!isFocused.value || !val.length || menu.value) return;
|
|
16272
|
+
menu.value = true;
|
|
16253
16273
|
});
|
|
16254
16274
|
useRender(() => {
|
|
16255
|
-
const hasChips = !!(props.chips || slots.chip);
|
|
16256
16275
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
16257
16276
|
const isDirty = model.value.length > 0;
|
|
16258
16277
|
const textFieldProps = VTextField.filterProps(props);
|
|
@@ -16269,7 +16288,7 @@
|
|
|
16269
16288
|
"class": ['v-combobox', {
|
|
16270
16289
|
'v-combobox--active-menu': menu.value,
|
|
16271
16290
|
'v-combobox--chips': !!props.chips,
|
|
16272
|
-
'v-combobox--selection-slot': !!
|
|
16291
|
+
'v-combobox--selection-slot': !!hasSelectionSlot.value,
|
|
16273
16292
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
|
16274
16293
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
|
16275
16294
|
}, props.class],
|
|
@@ -16315,12 +16334,12 @@
|
|
|
16315
16334
|
"renderless": true,
|
|
16316
16335
|
"items": displayItems.value
|
|
16317
16336
|
}, {
|
|
16318
|
-
default:
|
|
16337
|
+
default: _ref4 => {
|
|
16319
16338
|
let {
|
|
16320
16339
|
item,
|
|
16321
16340
|
index,
|
|
16322
16341
|
itemRef
|
|
16323
|
-
} =
|
|
16342
|
+
} = _ref4;
|
|
16324
16343
|
const itemProps = vue.mergeProps(item.props, {
|
|
16325
16344
|
ref: itemRef,
|
|
16326
16345
|
key: index,
|
|
@@ -16334,10 +16353,10 @@
|
|
|
16334
16353
|
}) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
|
|
16335
16354
|
"role": "option"
|
|
16336
16355
|
}), {
|
|
16337
|
-
prepend:
|
|
16356
|
+
prepend: _ref5 => {
|
|
16338
16357
|
let {
|
|
16339
16358
|
isSelected
|
|
16340
|
-
} =
|
|
16359
|
+
} = _ref5;
|
|
16341
16360
|
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
16342
16361
|
"key": item.value,
|
|
16343
16362
|
"modelValue": isSelected,
|
|
@@ -16371,8 +16390,8 @@
|
|
|
16371
16390
|
modelValue: true,
|
|
16372
16391
|
'onUpdate:modelValue': undefined
|
|
16373
16392
|
};
|
|
16374
|
-
const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
|
|
16375
|
-
const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
|
|
16393
|
+
const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
|
|
16394
|
+
const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
|
|
16376
16395
|
item,
|
|
16377
16396
|
index,
|
|
16378
16397
|
props: slotProps
|
|
@@ -16385,7 +16404,7 @@
|
|
|
16385
16404
|
"key": item.value,
|
|
16386
16405
|
"class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
|
|
16387
16406
|
"style": index === selectionIndex.value ? textColorStyles.value : {}
|
|
16388
|
-
}, [hasChips ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
|
|
16407
|
+
}, [hasChips.value ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
|
|
16389
16408
|
"key": "chip",
|
|
16390
16409
|
"closable": props.closableChips,
|
|
16391
16410
|
"size": "small",
|
|
@@ -17353,10 +17372,28 @@
|
|
|
17353
17372
|
function getDiff(date, comparing, unit) {
|
|
17354
17373
|
const d = new Date(date);
|
|
17355
17374
|
const c = new Date(comparing);
|
|
17356
|
-
|
|
17357
|
-
|
|
17375
|
+
switch (unit) {
|
|
17376
|
+
case 'years':
|
|
17377
|
+
return d.getFullYear() - c.getFullYear();
|
|
17378
|
+
case 'quarters':
|
|
17379
|
+
return Math.floor((d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12) / 4);
|
|
17380
|
+
case 'months':
|
|
17381
|
+
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
|
17382
|
+
case 'weeks':
|
|
17383
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24 * 7));
|
|
17384
|
+
case 'days':
|
|
17385
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
|
17386
|
+
case 'hours':
|
|
17387
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60));
|
|
17388
|
+
case 'minutes':
|
|
17389
|
+
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60));
|
|
17390
|
+
case 'seconds':
|
|
17391
|
+
return Math.floor((d.getTime() - c.getTime()) / 1000);
|
|
17392
|
+
default:
|
|
17393
|
+
{
|
|
17394
|
+
return d.getTime() - c.getTime();
|
|
17395
|
+
}
|
|
17358
17396
|
}
|
|
17359
|
-
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
|
17360
17397
|
}
|
|
17361
17398
|
function setHours(date, count) {
|
|
17362
17399
|
const d = new Date(date);
|
|
@@ -20551,7 +20588,7 @@
|
|
|
20551
20588
|
} else {
|
|
20552
20589
|
rangeStop.value = _value;
|
|
20553
20590
|
}
|
|
20554
|
-
const diff = adapter.getDiff(rangeStop.value, rangeStart.value);
|
|
20591
|
+
const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days');
|
|
20555
20592
|
const datesInRange = [rangeStart.value];
|
|
20556
20593
|
for (let i = 1; i < diff; i++) {
|
|
20557
20594
|
const nextDate = adapter.addDays(rangeStart.value, i);
|
|
@@ -24365,6 +24402,8 @@
|
|
|
24365
24402
|
const controlProps = VSelectionControl.filterProps(props);
|
|
24366
24403
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
24367
24404
|
"class": ['v-switch', {
|
|
24405
|
+
'v-switch--flat': props.flat
|
|
24406
|
+
}, {
|
|
24368
24407
|
'v-switch--inset': props.inset
|
|
24369
24408
|
}, {
|
|
24370
24409
|
'v-switch--indeterminate': indeterminate.value
|
|
@@ -25738,7 +25777,7 @@
|
|
|
25738
25777
|
goTo
|
|
25739
25778
|
};
|
|
25740
25779
|
}
|
|
25741
|
-
const version$1 = "3.5.
|
|
25780
|
+
const version$1 = "3.5.8";
|
|
25742
25781
|
createVuetify$1.version = version$1;
|
|
25743
25782
|
|
|
25744
25783
|
// Vue's inject() can only be used in setup
|
|
@@ -25763,7 +25802,7 @@
|
|
|
25763
25802
|
...options
|
|
25764
25803
|
});
|
|
25765
25804
|
};
|
|
25766
|
-
const version = "3.5.
|
|
25805
|
+
const version = "3.5.8";
|
|
25767
25806
|
createVuetify.version = version;
|
|
25768
25807
|
|
|
25769
25808
|
exports.components = components;
|