vuetify 3.3.14 → 3.3.16
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 +427 -403
- package/dist/json/importMap-labs.json +4 -4
- package/dist/json/importMap.json +4 -4
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +1002 -924
- package/dist/vuetify-labs.css +159 -134
- package/dist/vuetify-labs.d.ts +609 -370
- package/dist/vuetify-labs.esm.js +165 -150
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +165 -150
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +129 -105
- package/dist/vuetify.d.ts +547 -308
- package/dist/vuetify.esm.js +157 -144
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +157 -144
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +234 -234
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +2 -0
- package/lib/blueprints/md1.d.mts +2 -0
- package/lib/blueprints/md2.d.mts +2 -0
- package/lib/blueprints/md3.d.mts +2 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +16 -26
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +40 -38
- package/lib/components/VBtnToggle/VBtnToggle.css +13 -2
- package/lib/components/VBtnToggle/VBtnToggle.sass +3 -3
- package/lib/components/VBtnToggle/_variables.scss +2 -1
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +203 -87
- package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -0
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +28 -34
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +1 -0
- package/lib/components/VCombobox/VCombobox.mjs +15 -25
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +40 -38
- package/lib/components/VField/VField.css +16 -12
- package/lib/components/VField/VField.sass +16 -8
- package/lib/components/VField/_variables.scss +0 -1
- package/lib/components/VIcon/VIcon.css +1 -0
- package/lib/components/VIcon/VIcon.sass +1 -0
- package/lib/components/VLabel/VLabel.css +1 -0
- package/lib/components/VLabel/VLabel.sass +1 -0
- package/lib/components/VLabel/_variables.scss +1 -1
- package/lib/components/VList/index.d.mts +21 -3
- package/lib/components/VOverlay/useActivator.mjs +1 -1
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VRadio/index.d.mts +82 -23
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.mts +75 -109
- package/lib/components/VSelect/VSelect.mjs +9 -23
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +14 -11
- package/lib/components/VSelectionControl/VSelectionControl.css +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs +17 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
- package/lib/components/VSelectionControl/index.d.mts +19 -5
- package/lib/components/VSwitch/VSwitch.css +7 -5
- package/lib/components/VSwitch/VSwitch.mjs +18 -8
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +6 -4
- package/lib/components/VSwitch/_variables.scss +5 -3
- package/lib/components/VSwitch/index.d.mts +82 -23
- package/lib/components/VTable/VTable.css +3 -0
- package/lib/components/VTable/VTable.sass +4 -0
- package/lib/components/VTable/_variables.scss +3 -0
- package/lib/components/VTabs/VTab.css +1 -0
- package/lib/components/VTabs/VTab.mjs +4 -5
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTab.sass +1 -0
- package/lib/components/VTabs/_variables.scss +1 -0
- package/lib/components/VTextarea/VTextarea.mjs +1 -0
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/index.d.mts +544 -307
- package/lib/composables/filter.mjs +4 -4
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/list-items.mjs +26 -15
- package/lib/composables/list-items.mjs.map +1 -1
- package/lib/composables/theme.mjs +6 -2
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +4 -2
- package/lib/labs/VBottomSheet/VBottomSheet.css +1 -0
- package/lib/labs/VBottomSheet/VBottomSheet.sass +2 -0
- package/lib/labs/VBottomSheet/_variables.scss +1 -0
- package/lib/labs/VDataIterator/index.d.mts +30 -26
- package/lib/labs/VDataTable/index.d.mts +43 -39
- package/lib/labs/VDataTable/types.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePicker.mjs +4 -2
- package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerControls.mjs +4 -4
- package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerYears.css +1 -1
- package/lib/labs/VDatePicker/VDatePickerYears.sass +1 -1
- package/lib/labs/VDatePicker/index.d.mts +24 -24
- package/lib/labs/VDateRangePicker/index.d.mts +8 -8
- package/lib/labs/components.d.mts +80 -76
- package/lib/labs/date/DateAdapter.mjs.map +1 -1
- package/lib/labs/date/adapters/vuetify.d.mts +4 -0
- package/lib/labs/date/adapters/vuetify.mjs +13 -0
- package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
- package/lib/labs/date/index.d.mts +4 -0
- package/lib/locale/bg.mjs +23 -23
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/fa.mjs +16 -16
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/styles/tools/_states.sass +5 -5
- package/package.json +2 -2
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.3.
|
|
2
|
+
* Vuetify v3.3.16
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -2115,6 +2115,7 @@ const defaultThemeOptions = {
|
|
|
2115
2115
|
colors: {
|
|
2116
2116
|
background: '#FFFFFF',
|
|
2117
2117
|
surface: '#FFFFFF',
|
|
2118
|
+
'surface-bright': '#FFFFFF',
|
|
2118
2119
|
'surface-variant': '#424242',
|
|
2119
2120
|
'on-surface-variant': '#EEEEEE',
|
|
2120
2121
|
primary: '#6200EE',
|
|
@@ -2150,7 +2151,8 @@ const defaultThemeOptions = {
|
|
|
2150
2151
|
colors: {
|
|
2151
2152
|
background: '#121212',
|
|
2152
2153
|
surface: '#212121',
|
|
2153
|
-
'surface-
|
|
2154
|
+
'surface-bright': '#ccbfd6',
|
|
2155
|
+
'surface-variant': '#a3a3a3',
|
|
2154
2156
|
'on-surface-variant': '#424242',
|
|
2155
2157
|
primary: '#BB86FC',
|
|
2156
2158
|
'primary-darken-1': '#3700B3',
|
|
@@ -2341,12 +2343,14 @@ function provideTheme(props) {
|
|
|
2341
2343
|
const theme = inject$1(ThemeSymbol, null);
|
|
2342
2344
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
|
2343
2345
|
const name = computed(() => {
|
|
2344
|
-
return props.theme ?? theme
|
|
2346
|
+
return props.theme ?? theme.name.value;
|
|
2345
2347
|
});
|
|
2348
|
+
const current = computed(() => theme.themes.value[name.value]);
|
|
2346
2349
|
const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
|
2347
2350
|
const newTheme = {
|
|
2348
2351
|
...theme,
|
|
2349
2352
|
name,
|
|
2353
|
+
current,
|
|
2350
2354
|
themeClasses
|
|
2351
2355
|
};
|
|
2352
2356
|
provide(ThemeSymbol, newTheme);
|
|
@@ -5803,6 +5807,12 @@ function useSelectionControl(props) {
|
|
|
5803
5807
|
} = useTextColor(computed(() => {
|
|
5804
5808
|
return model.value && !props.error && !props.disabled ? props.color : undefined;
|
|
5805
5809
|
}));
|
|
5810
|
+
const {
|
|
5811
|
+
backgroundColorClasses,
|
|
5812
|
+
backgroundColorStyles
|
|
5813
|
+
} = useBackgroundColor(computed(() => {
|
|
5814
|
+
return model.value && !props.error && !props.disabled ? props.color : undefined;
|
|
5815
|
+
}));
|
|
5806
5816
|
const icon = computed(() => model.value ? props.trueIcon : props.falseIcon);
|
|
5807
5817
|
return {
|
|
5808
5818
|
group,
|
|
@@ -5812,6 +5822,8 @@ function useSelectionControl(props) {
|
|
|
5812
5822
|
model,
|
|
5813
5823
|
textColorClasses,
|
|
5814
5824
|
textColorStyles,
|
|
5825
|
+
backgroundColorClasses,
|
|
5826
|
+
backgroundColorStyles,
|
|
5815
5827
|
icon
|
|
5816
5828
|
};
|
|
5817
5829
|
}
|
|
@@ -5837,6 +5849,8 @@ const VSelectionControl = genericComponent()({
|
|
|
5837
5849
|
model,
|
|
5838
5850
|
textColorClasses,
|
|
5839
5851
|
textColorStyles,
|
|
5852
|
+
backgroundColorClasses,
|
|
5853
|
+
backgroundColorStyles,
|
|
5840
5854
|
trueValue
|
|
5841
5855
|
} = useSelectionControl(props);
|
|
5842
5856
|
const uid = getUid();
|
|
@@ -5901,12 +5915,17 @@ const VSelectionControl = genericComponent()({
|
|
|
5901
5915
|
}), [createVNode("div", {
|
|
5902
5916
|
"class": ['v-selection-control__wrapper', textColorClasses.value],
|
|
5903
5917
|
"style": textColorStyles.value
|
|
5904
|
-
}, [slots.default?.(
|
|
5918
|
+
}, [slots.default?.({
|
|
5919
|
+
backgroundColorClasses,
|
|
5920
|
+
backgroundColorStyles
|
|
5921
|
+
}), withDirectives(createVNode("div", {
|
|
5905
5922
|
"class": ['v-selection-control__input']
|
|
5906
5923
|
}, [slots.input?.({
|
|
5907
5924
|
model,
|
|
5908
5925
|
textColorClasses,
|
|
5909
5926
|
textColorStyles,
|
|
5927
|
+
backgroundColorClasses,
|
|
5928
|
+
backgroundColorStyles,
|
|
5910
5929
|
inputNode,
|
|
5911
5930
|
icon: icon.value,
|
|
5912
5931
|
props: {
|
|
@@ -7962,11 +7981,15 @@ const makeItemsProps = propsFactory({
|
|
|
7962
7981
|
type: [Boolean, String, Array, Function],
|
|
7963
7982
|
default: 'props'
|
|
7964
7983
|
},
|
|
7965
|
-
returnObject: Boolean
|
|
7984
|
+
returnObject: Boolean,
|
|
7985
|
+
valueComparator: {
|
|
7986
|
+
type: Function,
|
|
7987
|
+
default: deepEqual
|
|
7988
|
+
}
|
|
7966
7989
|
}, 'list-items');
|
|
7967
7990
|
function transformItem$3(props, item) {
|
|
7968
7991
|
const title = getPropertyFromItem(item, props.itemTitle, item);
|
|
7969
|
-
const value =
|
|
7992
|
+
const value = getPropertyFromItem(item, props.itemValue, title);
|
|
7970
7993
|
const children = getPropertyFromItem(item, props.itemChildren);
|
|
7971
7994
|
const itemProps = props.itemProps === true ? typeof item === 'object' && item != null && !Array.isArray(item) ? 'children' in item ? pick(item, ['children'])[1] : item : undefined : getPropertyFromItem(item, props.itemProps);
|
|
7972
7995
|
const _props = {
|
|
@@ -7991,25 +8014,32 @@ function transformItems$3(props, items) {
|
|
|
7991
8014
|
}
|
|
7992
8015
|
function useItems(props) {
|
|
7993
8016
|
const items = computed(() => transformItems$3(props, props.items));
|
|
7994
|
-
|
|
7995
|
-
}
|
|
7996
|
-
function useTransformItems(items, transform) {
|
|
8017
|
+
const hasNullItem = computed(() => items.value.some(item => item.value === null));
|
|
7997
8018
|
function transformIn(value) {
|
|
7998
|
-
|
|
7999
|
-
|
|
8000
|
-
|
|
8001
|
-
|
|
8002
|
-
|
|
8003
|
-
|
|
8004
|
-
|
|
8005
|
-
|
|
8019
|
+
if (!hasNullItem.value) {
|
|
8020
|
+
// When the model value is null, return an InternalItem
|
|
8021
|
+
// based on null only if null is one of the items
|
|
8022
|
+
value = value.filter(v => v !== null);
|
|
8023
|
+
}
|
|
8024
|
+
return value.map(v => {
|
|
8025
|
+
if (props.returnObject && typeof v === 'string') {
|
|
8026
|
+
// String model value means value is a custom input value from combobox
|
|
8027
|
+
// Don't look up existing items if the model value is a string
|
|
8028
|
+
return transformItem$3(props, v);
|
|
8029
|
+
}
|
|
8030
|
+
return items.value.find(item => props.valueComparator(v, item.value)) || transformItem$3(props, v);
|
|
8006
8031
|
});
|
|
8007
8032
|
}
|
|
8008
8033
|
function transformOut(value) {
|
|
8009
|
-
return value.map(_ref => {
|
|
8034
|
+
return props.returnObject ? value.map(_ref => {
|
|
8010
8035
|
let {
|
|
8011
|
-
|
|
8036
|
+
raw
|
|
8012
8037
|
} = _ref;
|
|
8038
|
+
return raw;
|
|
8039
|
+
}) : value.map(_ref2 => {
|
|
8040
|
+
let {
|
|
8041
|
+
value
|
|
8042
|
+
} = _ref2;
|
|
8013
8043
|
return value;
|
|
8014
8044
|
});
|
|
8015
8045
|
}
|
|
@@ -9117,7 +9147,7 @@ function _useActivator(props, vm, _ref2) {
|
|
|
9117
9147
|
if (selector) {
|
|
9118
9148
|
if (selector === 'parent') {
|
|
9119
9149
|
let el = vm?.proxy?.$el?.parentNode;
|
|
9120
|
-
while (el
|
|
9150
|
+
while (el?.hasAttribute('data-no-activator')) {
|
|
9121
9151
|
el = el.parentNode;
|
|
9122
9152
|
}
|
|
9123
9153
|
activator = el;
|
|
@@ -10840,10 +10870,6 @@ const makeSelectProps = propsFactory({
|
|
|
10840
10870
|
default: '$vuetify.noDataText'
|
|
10841
10871
|
},
|
|
10842
10872
|
openOnClear: Boolean,
|
|
10843
|
-
valueComparator: {
|
|
10844
|
-
type: Function,
|
|
10845
|
-
default: deepEqual
|
|
10846
|
-
},
|
|
10847
10873
|
itemColor: String,
|
|
10848
10874
|
...makeItemsProps({
|
|
10849
10875
|
itemChildren: false
|
|
@@ -10897,24 +10923,14 @@ const VSelect = genericComponent()({
|
|
|
10897
10923
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
10898
10924
|
});
|
|
10899
10925
|
const form = useForm();
|
|
10900
|
-
const
|
|
10901
|
-
return model.value.map(v => {
|
|
10902
|
-
return items.value.find(item => {
|
|
10903
|
-
const itemRawValue = getPropertyFromItem(item.raw, props.itemValue);
|
|
10904
|
-
const modelRawValue = getPropertyFromItem(v.raw, props.itemValue);
|
|
10905
|
-
if (itemRawValue === undefined || modelRawValue === undefined) return false;
|
|
10906
|
-
return props.returnObject ? props.valueComparator(itemRawValue, modelRawValue) : props.valueComparator(item.value, v.value);
|
|
10907
|
-
}) || v;
|
|
10908
|
-
});
|
|
10909
|
-
});
|
|
10910
|
-
const selected = computed(() => selections.value.map(selection => selection.props.value));
|
|
10926
|
+
const selectedValues = computed(() => model.value.map(selection => selection.value));
|
|
10911
10927
|
const isFocused = shallowRef(false);
|
|
10912
10928
|
const label = computed(() => menu.value ? props.closeText : props.openText);
|
|
10913
10929
|
let keyboardLookupPrefix = '';
|
|
10914
10930
|
let keyboardLookupLastTime;
|
|
10915
10931
|
const displayItems = computed(() => {
|
|
10916
10932
|
if (props.hideSelected) {
|
|
10917
|
-
return items.value.filter(item => !
|
|
10933
|
+
return items.value.filter(item => !model.value.some(s => s === item));
|
|
10918
10934
|
}
|
|
10919
10935
|
return items.value;
|
|
10920
10936
|
});
|
|
@@ -10972,7 +10988,7 @@ const VSelect = genericComponent()({
|
|
|
10972
10988
|
}
|
|
10973
10989
|
function select(item) {
|
|
10974
10990
|
if (props.multiple) {
|
|
10975
|
-
const index =
|
|
10991
|
+
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
10976
10992
|
if (index === -1) {
|
|
10977
10993
|
model.value = [...model.value, item];
|
|
10978
10994
|
} else {
|
|
@@ -11009,8 +11025,8 @@ const VSelect = genericComponent()({
|
|
|
11009
11025
|
}
|
|
11010
11026
|
}
|
|
11011
11027
|
watch(menu, () => {
|
|
11012
|
-
if (!props.hideSelected && menu.value &&
|
|
11013
|
-
const index = displayItems.value.findIndex(item =>
|
|
11028
|
+
if (!props.hideSelected && menu.value && model.value.length) {
|
|
11029
|
+
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
11014
11030
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
11015
11031
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
11016
11032
|
});
|
|
@@ -11065,7 +11081,7 @@ const VSelect = genericComponent()({
|
|
|
11065
11081
|
}, props.menuProps), {
|
|
11066
11082
|
default: () => [hasList && createVNode(VList, {
|
|
11067
11083
|
"ref": listRef,
|
|
11068
|
-
"selected":
|
|
11084
|
+
"selected": selectedValues.value,
|
|
11069
11085
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
11070
11086
|
"onMousedown": e => e.preventDefault(),
|
|
11071
11087
|
"onKeydown": onListKeydown,
|
|
@@ -11114,7 +11130,7 @@ const VSelect = genericComponent()({
|
|
|
11114
11130
|
}
|
|
11115
11131
|
}), slots['append-item']?.()]
|
|
11116
11132
|
})]
|
|
11117
|
-
}),
|
|
11133
|
+
}), model.value.map((item, index) => {
|
|
11118
11134
|
function onChipClose(e) {
|
|
11119
11135
|
e.stopPropagation();
|
|
11120
11136
|
e.preventDefault();
|
|
@@ -11157,7 +11173,7 @@ const VSelect = genericComponent()({
|
|
|
11157
11173
|
index
|
|
11158
11174
|
}) ?? createVNode("span", {
|
|
11159
11175
|
"class": "v-select__selection-text"
|
|
11160
|
-
}, [item.title, props.multiple && index <
|
|
11176
|
+
}, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
|
|
11161
11177
|
"class": "v-select__selection-comma"
|
|
11162
11178
|
}, [createTextVNode(",")])])]);
|
|
11163
11179
|
})]),
|
|
@@ -11209,15 +11225,15 @@ function filterItems(items, query, options) {
|
|
|
11209
11225
|
const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length;
|
|
11210
11226
|
if (!items?.length) return array;
|
|
11211
11227
|
loop: for (let i = 0; i < items.length; i++) {
|
|
11212
|
-
const item = items[i];
|
|
11228
|
+
const [item, transformed = item] = wrapInArray(items[i]);
|
|
11213
11229
|
const customMatches = {};
|
|
11214
11230
|
const defaultMatches = {};
|
|
11215
11231
|
let match = -1;
|
|
11216
11232
|
if (query && !options?.noFilter) {
|
|
11217
11233
|
if (typeof item === 'object') {
|
|
11218
|
-
const filterKeys = keys || Object.keys(
|
|
11234
|
+
const filterKeys = keys || Object.keys(transformed);
|
|
11219
11235
|
for (const key of filterKeys) {
|
|
11220
|
-
const value = getPropertyFromItem(
|
|
11236
|
+
const value = getPropertyFromItem(transformed, key, transformed);
|
|
11221
11237
|
const keyFilter = options?.customKeyFilter?.[key];
|
|
11222
11238
|
match = keyFilter ? keyFilter(value, query, item) : filter(value, query, item);
|
|
11223
11239
|
if (match !== -1 && match !== false) {
|
|
@@ -11251,7 +11267,7 @@ function filterItems(items, query, options) {
|
|
|
11251
11267
|
function useFilter(props, items, query, options) {
|
|
11252
11268
|
const filteredItems = ref([]);
|
|
11253
11269
|
const filteredMatches = ref(new Map());
|
|
11254
|
-
const transformedItems = computed(() => options?.transform ? unref(items).map(options
|
|
11270
|
+
const transformedItems = computed(() => options?.transform ? unref(items).map(item => [item, options.transform(item)]) : unref(items));
|
|
11255
11271
|
watchEffect(() => {
|
|
11256
11272
|
const _query = typeof query === 'function' ? query() : unref(query);
|
|
11257
11273
|
const strQuery = typeof _query !== 'string' && typeof _query !== 'number' ? '' : String(_query);
|
|
@@ -11369,24 +11385,13 @@ const VAutocomplete = genericComponent()({
|
|
|
11369
11385
|
filteredItems,
|
|
11370
11386
|
getMatches
|
|
11371
11387
|
} = useFilter(props, items, () => isPristine.value ? '' : search.value);
|
|
11372
|
-
const selections = computed(() => {
|
|
11373
|
-
return model.value.map(v => {
|
|
11374
|
-
return items.value.find(item => {
|
|
11375
|
-
const itemRawValue = getPropertyFromItem(item.raw, props.itemValue);
|
|
11376
|
-
const modelRawValue = getPropertyFromItem(v.raw, props.itemValue);
|
|
11377
|
-
if (itemRawValue === undefined || modelRawValue === undefined) return false;
|
|
11378
|
-
return props.returnObject ? props.valueComparator(itemRawValue, modelRawValue) : props.valueComparator(item.value, v.value);
|
|
11379
|
-
}) || v;
|
|
11380
|
-
});
|
|
11381
|
-
});
|
|
11382
11388
|
const displayItems = computed(() => {
|
|
11383
11389
|
if (props.hideSelected) {
|
|
11384
|
-
return filteredItems.value.filter(filteredItem => !
|
|
11390
|
+
return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
|
|
11385
11391
|
}
|
|
11386
11392
|
return filteredItems.value;
|
|
11387
11393
|
});
|
|
11388
|
-
const
|
|
11389
|
-
const selection = computed(() => selections.value[selectionIndex.value]);
|
|
11394
|
+
const selectedValues = computed(() => model.value.map(selection => selection.props.value));
|
|
11390
11395
|
const highlightFirst = computed(() => {
|
|
11391
11396
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
11392
11397
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
@@ -11418,7 +11423,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11418
11423
|
function onKeydown(e) {
|
|
11419
11424
|
if (props.readonly || form?.isReadonly.value) return;
|
|
11420
11425
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
11421
|
-
const length =
|
|
11426
|
+
const length = model.value.length;
|
|
11422
11427
|
if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
|
11423
11428
|
e.preventDefault();
|
|
11424
11429
|
}
|
|
@@ -11443,13 +11448,14 @@ const VAutocomplete = genericComponent()({
|
|
|
11443
11448
|
return;
|
|
11444
11449
|
}
|
|
11445
11450
|
const originalSelectionIndex = selectionIndex.value;
|
|
11446
|
-
|
|
11451
|
+
const selectedItem = model.value[selectionIndex.value];
|
|
11452
|
+
if (selectedItem) select(selectedItem);
|
|
11447
11453
|
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
11448
11454
|
}
|
|
11449
11455
|
if (e.key === 'ArrowLeft') {
|
|
11450
11456
|
if (selectionIndex.value < 0 && selectionStart > 0) return;
|
|
11451
11457
|
const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;
|
|
11452
|
-
if (
|
|
11458
|
+
if (model.value[prev]) {
|
|
11453
11459
|
selectionIndex.value = prev;
|
|
11454
11460
|
} else {
|
|
11455
11461
|
selectionIndex.value = -1;
|
|
@@ -11459,7 +11465,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11459
11465
|
if (e.key === 'ArrowRight') {
|
|
11460
11466
|
if (selectionIndex.value < 0) return;
|
|
11461
11467
|
const next = selectionIndex.value + 1;
|
|
11462
|
-
if (
|
|
11468
|
+
if (model.value[next]) {
|
|
11463
11469
|
selectionIndex.value = next;
|
|
11464
11470
|
} else {
|
|
11465
11471
|
selectionIndex.value = -1;
|
|
@@ -11499,7 +11505,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11499
11505
|
const isSelecting = shallowRef(false);
|
|
11500
11506
|
function select(item) {
|
|
11501
11507
|
if (props.multiple) {
|
|
11502
|
-
const index =
|
|
11508
|
+
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
11503
11509
|
if (index === -1) {
|
|
11504
11510
|
model.value = [...model.value, item];
|
|
11505
11511
|
} else {
|
|
@@ -11520,11 +11526,11 @@ const VAutocomplete = genericComponent()({
|
|
|
11520
11526
|
if (val === oldVal) return;
|
|
11521
11527
|
if (val) {
|
|
11522
11528
|
isSelecting.value = true;
|
|
11523
|
-
search.value = props.multiple ? '' : String(
|
|
11529
|
+
search.value = props.multiple ? '' : String(model.value.at(-1)?.props.title ?? '');
|
|
11524
11530
|
isPristine.value = true;
|
|
11525
11531
|
nextTick(() => isSelecting.value = false);
|
|
11526
11532
|
} else {
|
|
11527
|
-
if (!props.multiple && !search.value) model.value = [];else if (highlightFirst.value && !listHasFocus.value && !
|
|
11533
|
+
if (!props.multiple && !search.value) model.value = [];else if (highlightFirst.value && !listHasFocus.value && !model.value.some(_ref2 => {
|
|
11528
11534
|
let {
|
|
11529
11535
|
value
|
|
11530
11536
|
} = _ref2;
|
|
@@ -11543,8 +11549,8 @@ const VAutocomplete = genericComponent()({
|
|
|
11543
11549
|
isPristine.value = !val;
|
|
11544
11550
|
});
|
|
11545
11551
|
watch(menu, () => {
|
|
11546
|
-
if (!props.hideSelected && menu.value &&
|
|
11547
|
-
const index = displayItems.value.findIndex(item =>
|
|
11552
|
+
if (!props.hideSelected && menu.value && model.value.length) {
|
|
11553
|
+
const index = displayItems.value.findIndex(item => model.value.some(s => item.value === s.value));
|
|
11548
11554
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
11549
11555
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
11550
11556
|
});
|
|
@@ -11596,7 +11602,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11596
11602
|
}, props.menuProps), {
|
|
11597
11603
|
default: () => [hasList && createVNode(VList, {
|
|
11598
11604
|
"ref": listRef,
|
|
11599
|
-
"selected":
|
|
11605
|
+
"selected": selectedValues.value,
|
|
11600
11606
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
11601
11607
|
"onMousedown": e => e.preventDefault(),
|
|
11602
11608
|
"onKeydown": onListKeydown,
|
|
@@ -11650,7 +11656,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11650
11656
|
}
|
|
11651
11657
|
}), slots['append-item']?.()]
|
|
11652
11658
|
})]
|
|
11653
|
-
}),
|
|
11659
|
+
}), model.value.map((item, index) => {
|
|
11654
11660
|
function onChipClose(e) {
|
|
11655
11661
|
e.stopPropagation();
|
|
11656
11662
|
e.preventDefault();
|
|
@@ -11694,7 +11700,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11694
11700
|
index
|
|
11695
11701
|
}) ?? createVNode("span", {
|
|
11696
11702
|
"class": "v-autocomplete__selection-text"
|
|
11697
|
-
}, [item.title, props.multiple && index <
|
|
11703
|
+
}, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
|
|
11698
11704
|
"class": "v-autocomplete__selection-comma"
|
|
11699
11705
|
}, [createTextVNode(",")])])]);
|
|
11700
11706
|
})]),
|
|
@@ -13092,11 +13098,29 @@ const VColorPickerCanvas = defineComponent({
|
|
|
13092
13098
|
emit
|
|
13093
13099
|
} = _ref;
|
|
13094
13100
|
const isInteracting = shallowRef(false);
|
|
13095
|
-
const
|
|
13096
|
-
const
|
|
13101
|
+
const canvasRef = ref();
|
|
13102
|
+
const canvasWidth = shallowRef(parseFloat(props.width));
|
|
13103
|
+
const canvasHeight = shallowRef(parseFloat(props.height));
|
|
13104
|
+
const _dotPosition = ref({
|
|
13097
13105
|
x: 0,
|
|
13098
13106
|
y: 0
|
|
13099
13107
|
});
|
|
13108
|
+
const dotPosition = computed({
|
|
13109
|
+
get: () => _dotPosition.value,
|
|
13110
|
+
set(val) {
|
|
13111
|
+
if (!canvasRef.value) return;
|
|
13112
|
+
const {
|
|
13113
|
+
x,
|
|
13114
|
+
y
|
|
13115
|
+
} = val;
|
|
13116
|
+
emit('update:color', {
|
|
13117
|
+
h: props.color?.h ?? 0,
|
|
13118
|
+
s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,
|
|
13119
|
+
v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,
|
|
13120
|
+
a: props.color?.a ?? 1
|
|
13121
|
+
});
|
|
13122
|
+
}
|
|
13123
|
+
});
|
|
13100
13124
|
const dotStyles = computed(() => {
|
|
13101
13125
|
const {
|
|
13102
13126
|
x,
|
|
@@ -13109,9 +13133,6 @@ const VColorPickerCanvas = defineComponent({
|
|
|
13109
13133
|
transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`
|
|
13110
13134
|
};
|
|
13111
13135
|
});
|
|
13112
|
-
const canvasRef = ref();
|
|
13113
|
-
const canvasWidth = shallowRef(parseFloat(props.width));
|
|
13114
|
-
const canvasHeight = shallowRef(parseFloat(props.height));
|
|
13115
13136
|
const {
|
|
13116
13137
|
resizeRef
|
|
13117
13138
|
} = useResizeObserver(entries => {
|
|
@@ -13135,15 +13156,13 @@ const VColorPickerCanvas = defineComponent({
|
|
|
13135
13156
|
y: clamp(y - top, 0, height)
|
|
13136
13157
|
};
|
|
13137
13158
|
}
|
|
13138
|
-
function handleClick(e) {
|
|
13139
|
-
if (props.disabled || !canvasRef.value) return;
|
|
13140
|
-
updateDotPosition(e.clientX, e.clientY, canvasRef.value.getBoundingClientRect());
|
|
13141
|
-
}
|
|
13142
13159
|
function handleMouseDown(e) {
|
|
13143
|
-
|
|
13144
|
-
|
|
13160
|
+
if (e.type === 'mousedown') {
|
|
13161
|
+
// Prevent text selection while dragging
|
|
13162
|
+
e.preventDefault();
|
|
13163
|
+
}
|
|
13145
13164
|
if (props.disabled) return;
|
|
13146
|
-
|
|
13165
|
+
handleMouseMove(e);
|
|
13147
13166
|
window.addEventListener('mousemove', handleMouseMove);
|
|
13148
13167
|
window.addEventListener('mouseup', handleMouseUp);
|
|
13149
13168
|
window.addEventListener('touchmove', handleMouseMove);
|
|
@@ -13161,23 +13180,6 @@ const VColorPickerCanvas = defineComponent({
|
|
|
13161
13180
|
window.removeEventListener('touchmove', handleMouseMove);
|
|
13162
13181
|
window.removeEventListener('touchend', handleMouseUp);
|
|
13163
13182
|
}
|
|
13164
|
-
watch(dotPosition, () => {
|
|
13165
|
-
if (isOutsideUpdate.value) {
|
|
13166
|
-
isOutsideUpdate.value = false;
|
|
13167
|
-
return;
|
|
13168
|
-
}
|
|
13169
|
-
if (!canvasRef.value) return;
|
|
13170
|
-
const {
|
|
13171
|
-
x,
|
|
13172
|
-
y
|
|
13173
|
-
} = dotPosition.value;
|
|
13174
|
-
emit('update:color', {
|
|
13175
|
-
h: props.color?.h ?? 0,
|
|
13176
|
-
s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,
|
|
13177
|
-
v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,
|
|
13178
|
-
a: props.color?.a ?? 1
|
|
13179
|
-
});
|
|
13180
|
-
});
|
|
13181
13183
|
function updateCanvas() {
|
|
13182
13184
|
if (!canvasRef.value) return;
|
|
13183
13185
|
const canvas = canvasRef.value;
|
|
@@ -13199,7 +13201,7 @@ const VColorPickerCanvas = defineComponent({
|
|
|
13199
13201
|
});
|
|
13200
13202
|
watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {
|
|
13201
13203
|
updateCanvas();
|
|
13202
|
-
|
|
13204
|
+
_dotPosition.value = {
|
|
13203
13205
|
x: dotPosition.value.x * newVal[0] / oldVal[0],
|
|
13204
13206
|
y: dotPosition.value.y * newVal[1] / oldVal[1]
|
|
13205
13207
|
};
|
|
@@ -13211,8 +13213,7 @@ const VColorPickerCanvas = defineComponent({
|
|
|
13211
13213
|
isInteracting.value = false;
|
|
13212
13214
|
return;
|
|
13213
13215
|
}
|
|
13214
|
-
|
|
13215
|
-
dotPosition.value = props.color ? {
|
|
13216
|
+
_dotPosition.value = props.color ? {
|
|
13216
13217
|
x: props.color.s * canvasWidth.value,
|
|
13217
13218
|
y: (1 - props.color.v) * canvasHeight.value
|
|
13218
13219
|
} : {
|
|
@@ -13228,9 +13229,8 @@ const VColorPickerCanvas = defineComponent({
|
|
|
13228
13229
|
"ref": resizeRef,
|
|
13229
13230
|
"class": ['v-color-picker-canvas', props.class],
|
|
13230
13231
|
"style": props.style,
|
|
13231
|
-
"onClick": handleClick,
|
|
13232
13232
|
"onMousedown": handleMouseDown,
|
|
13233
|
-
"
|
|
13233
|
+
"onTouchstartPassive": handleMouseDown
|
|
13234
13234
|
}, [createVNode("canvas", {
|
|
13235
13235
|
"ref": canvasRef,
|
|
13236
13236
|
"width": canvasWidth.value,
|
|
@@ -14951,24 +14951,13 @@ const VCombobox = genericComponent()({
|
|
|
14951
14951
|
filteredItems,
|
|
14952
14952
|
getMatches
|
|
14953
14953
|
} = useFilter(props, items, () => isPristine.value ? '' : search.value);
|
|
14954
|
-
const selections = computed(() => {
|
|
14955
|
-
return model.value.map(v => {
|
|
14956
|
-
return items.value.find(item => {
|
|
14957
|
-
const itemRawValue = getPropertyFromItem(item.raw, props.itemValue);
|
|
14958
|
-
const modelRawValue = getPropertyFromItem(v.raw, props.itemValue);
|
|
14959
|
-
if (itemRawValue === undefined || modelRawValue === undefined) return false;
|
|
14960
|
-
return props.returnObject ? props.valueComparator(itemRawValue, modelRawValue) : props.valueComparator(item.value, v.value);
|
|
14961
|
-
}) || v;
|
|
14962
|
-
});
|
|
14963
|
-
});
|
|
14964
14954
|
const displayItems = computed(() => {
|
|
14965
14955
|
if (props.hideSelected) {
|
|
14966
|
-
return filteredItems.value.filter(filteredItem => !
|
|
14956
|
+
return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
|
|
14967
14957
|
}
|
|
14968
14958
|
return filteredItems.value;
|
|
14969
14959
|
});
|
|
14970
|
-
const
|
|
14971
|
-
const selection = computed(() => selections.value[selectionIndex.value]);
|
|
14960
|
+
const selectedValues = computed(() => model.value.map(selection => selection.value));
|
|
14972
14961
|
const highlightFirst = computed(() => {
|
|
14973
14962
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
14974
14963
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
@@ -15000,7 +14989,7 @@ const VCombobox = genericComponent()({
|
|
|
15000
14989
|
function onKeydown(e) {
|
|
15001
14990
|
if (props.readonly || form?.isReadonly.value) return;
|
|
15002
14991
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
15003
|
-
const length =
|
|
14992
|
+
const length = model.value.length;
|
|
15004
14993
|
if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
|
15005
14994
|
e.preventDefault();
|
|
15006
14995
|
}
|
|
@@ -15028,13 +15017,14 @@ const VCombobox = genericComponent()({
|
|
|
15028
15017
|
return;
|
|
15029
15018
|
}
|
|
15030
15019
|
const originalSelectionIndex = selectionIndex.value;
|
|
15031
|
-
|
|
15020
|
+
const selectedItem = model.value[selectionIndex.value];
|
|
15021
|
+
if (selectedItem) select(selectedItem);
|
|
15032
15022
|
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
15033
15023
|
}
|
|
15034
15024
|
if (e.key === 'ArrowLeft') {
|
|
15035
15025
|
if (selectionIndex.value < 0 && selectionStart > 0) return;
|
|
15036
15026
|
const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;
|
|
15037
|
-
if (
|
|
15027
|
+
if (model.value[prev]) {
|
|
15038
15028
|
selectionIndex.value = prev;
|
|
15039
15029
|
} else {
|
|
15040
15030
|
selectionIndex.value = -1;
|
|
@@ -15044,7 +15034,7 @@ const VCombobox = genericComponent()({
|
|
|
15044
15034
|
if (e.key === 'ArrowRight') {
|
|
15045
15035
|
if (selectionIndex.value < 0) return;
|
|
15046
15036
|
const next = selectionIndex.value + 1;
|
|
15047
|
-
if (
|
|
15037
|
+
if (model.value[next]) {
|
|
15048
15038
|
selectionIndex.value = next;
|
|
15049
15039
|
} else {
|
|
15050
15040
|
selectionIndex.value = -1;
|
|
@@ -15064,7 +15054,7 @@ const VCombobox = genericComponent()({
|
|
|
15064
15054
|
}
|
|
15065
15055
|
function select(item) {
|
|
15066
15056
|
if (props.multiple) {
|
|
15067
|
-
const index =
|
|
15057
|
+
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
15068
15058
|
if (index === -1) {
|
|
15069
15059
|
model.value = [...model.value, item];
|
|
15070
15060
|
} else {
|
|
@@ -15103,7 +15093,7 @@ const VCombobox = genericComponent()({
|
|
|
15103
15093
|
if (val || val === oldVal) return;
|
|
15104
15094
|
selectionIndex.value = -1;
|
|
15105
15095
|
menu.value = false;
|
|
15106
|
-
if (highlightFirst.value && !listHasFocus.value && !
|
|
15096
|
+
if (highlightFirst.value && !listHasFocus.value && !model.value.some(_ref2 => {
|
|
15107
15097
|
let {
|
|
15108
15098
|
value
|
|
15109
15099
|
} = _ref2;
|
|
@@ -15116,8 +15106,8 @@ const VCombobox = genericComponent()({
|
|
|
15116
15106
|
}
|
|
15117
15107
|
});
|
|
15118
15108
|
watch(menu, () => {
|
|
15119
|
-
if (!props.hideSelected && menu.value &&
|
|
15120
|
-
const index = displayItems.value.findIndex(item =>
|
|
15109
|
+
if (!props.hideSelected && menu.value && model.value.length) {
|
|
15110
|
+
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
15121
15111
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
15122
15112
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
15123
15113
|
});
|
|
@@ -15168,7 +15158,7 @@ const VCombobox = genericComponent()({
|
|
|
15168
15158
|
}, props.menuProps), {
|
|
15169
15159
|
default: () => [hasList && createVNode(VList, {
|
|
15170
15160
|
"ref": listRef,
|
|
15171
|
-
"selected":
|
|
15161
|
+
"selected": selectedValues.value,
|
|
15172
15162
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
15173
15163
|
"onMousedown": e => e.preventDefault(),
|
|
15174
15164
|
"onKeydown": onListKeydown,
|
|
@@ -15222,7 +15212,7 @@ const VCombobox = genericComponent()({
|
|
|
15222
15212
|
}
|
|
15223
15213
|
}), slots['append-item']?.()]
|
|
15224
15214
|
})]
|
|
15225
|
-
}),
|
|
15215
|
+
}), model.value.map((item, index) => {
|
|
15226
15216
|
function onChipClose(e) {
|
|
15227
15217
|
e.stopPropagation();
|
|
15228
15218
|
e.preventDefault();
|
|
@@ -15266,7 +15256,7 @@ const VCombobox = genericComponent()({
|
|
|
15266
15256
|
index
|
|
15267
15257
|
}) ?? createVNode("span", {
|
|
15268
15258
|
"class": "v-combobox__selection-text"
|
|
15269
|
-
}, [item.title, props.multiple && index <
|
|
15259
|
+
}, [item.title, props.multiple && index < model.value.length - 1 && createVNode("span", {
|
|
15270
15260
|
"class": "v-combobox__selection-comma"
|
|
15271
15261
|
}, [createTextVNode(",")])])]);
|
|
15272
15262
|
})]),
|
|
@@ -18617,19 +18607,29 @@ const VSwitch = genericComponent()({
|
|
|
18617
18607
|
"onBlur": blur
|
|
18618
18608
|
}, controlAttrs), {
|
|
18619
18609
|
...slots,
|
|
18620
|
-
default:
|
|
18621
|
-
"class": "v-switch__track",
|
|
18622
|
-
"onClick": onTrackClick
|
|
18623
|
-
}, null),
|
|
18624
|
-
input: _ref3 => {
|
|
18610
|
+
default: _ref3 => {
|
|
18625
18611
|
let {
|
|
18626
|
-
|
|
18627
|
-
|
|
18612
|
+
backgroundColorClasses,
|
|
18613
|
+
backgroundColorStyles
|
|
18628
18614
|
} = _ref3;
|
|
18615
|
+
return createVNode("div", {
|
|
18616
|
+
"class": ['v-switch__track', ...backgroundColorClasses.value],
|
|
18617
|
+
"style": backgroundColorStyles.value,
|
|
18618
|
+
"onClick": onTrackClick
|
|
18619
|
+
}, null);
|
|
18620
|
+
},
|
|
18621
|
+
input: _ref4 => {
|
|
18622
|
+
let {
|
|
18623
|
+
inputNode,
|
|
18624
|
+
icon,
|
|
18625
|
+
backgroundColorClasses,
|
|
18626
|
+
backgroundColorStyles
|
|
18627
|
+
} = _ref4;
|
|
18629
18628
|
return createVNode(Fragment, null, [inputNode, createVNode("div", {
|
|
18630
18629
|
"class": ['v-switch__thumb', {
|
|
18631
18630
|
'v-switch__thumb--filled': icon || props.loading
|
|
18632
|
-
}]
|
|
18631
|
+
}, props.inset ? undefined : backgroundColorClasses.value],
|
|
18632
|
+
"style": props.inset ? undefined : backgroundColorStyles.value
|
|
18633
18633
|
}, [createVNode(VScaleTransition, null, {
|
|
18634
18634
|
default: () => [!props.loading ? icon && createVNode(VIcon, {
|
|
18635
18635
|
"key": icon,
|
|
@@ -18770,8 +18770,8 @@ const VTab = genericComponent()({
|
|
|
18770
18770
|
const delta = prevPos > nextPos ? prevBox[rightBottom] - nextBox[rightBottom] : prevBox[xy] - nextBox[xy];
|
|
18771
18771
|
const origin = Math.sign(delta) > 0 ? isHorizontal.value ? 'right' : 'bottom' : Math.sign(delta) < 0 ? isHorizontal.value ? 'left' : 'top' : 'center';
|
|
18772
18772
|
const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight]);
|
|
18773
|
-
const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]);
|
|
18774
|
-
const initialScale = prevBox[widthHeight] / nextBox[widthHeight];
|
|
18773
|
+
const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0;
|
|
18774
|
+
const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0;
|
|
18775
18775
|
const sigma = 1.5;
|
|
18776
18776
|
animate(nextEl, {
|
|
18777
18777
|
backgroundColor: [color, 'currentcolor'],
|
|
@@ -18793,11 +18793,10 @@ const VTab = genericComponent()({
|
|
|
18793
18793
|
"tabindex": isSelected.value ? 0 : -1,
|
|
18794
18794
|
"role": "tab",
|
|
18795
18795
|
"aria-selected": String(isSelected.value),
|
|
18796
|
-
"active": false
|
|
18796
|
+
"active": false
|
|
18797
|
+
}, btnProps, attrs, {
|
|
18797
18798
|
"block": props.fixed,
|
|
18798
18799
|
"maxWidth": props.fixed ? 300 : undefined,
|
|
18799
|
-
"rounded": 0
|
|
18800
|
-
}, btnProps, attrs, {
|
|
18801
18800
|
"onGroup:selected": updateSlider
|
|
18802
18801
|
}), {
|
|
18803
18802
|
default: () => [slots.default?.() ?? props.text, !props.hideSlider && createVNode("div", {
|
|
@@ -19167,6 +19166,7 @@ const VTextarea = genericComponent()({
|
|
|
19167
19166
|
once: true
|
|
19168
19167
|
}]]), props.autoGrow && withDirectives(createVNode("textarea", {
|
|
19169
19168
|
"class": [fieldClass, 'v-textarea__sizer'],
|
|
19169
|
+
"id": `${slotProps.id}-sizer`,
|
|
19170
19170
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
19171
19171
|
"ref": sizerRef,
|
|
19172
19172
|
"readonly": true,
|
|
@@ -21776,7 +21776,7 @@ const VDataTableServer = genericComponent()({
|
|
|
21776
21776
|
const makeVDatePickerControlsProps = propsFactory({
|
|
21777
21777
|
displayDate: String,
|
|
21778
21778
|
disabled: {
|
|
21779
|
-
type: [Boolean, String],
|
|
21779
|
+
type: [Boolean, String, Array],
|
|
21780
21780
|
default: false
|
|
21781
21781
|
},
|
|
21782
21782
|
nextIcon: {
|
|
@@ -21816,13 +21816,13 @@ const VDatePickerControls = genericComponent()({
|
|
|
21816
21816
|
return props.viewMode === 'month' ? props.expandIcon : props.collapseIcon;
|
|
21817
21817
|
});
|
|
21818
21818
|
const disableMode = computed(() => {
|
|
21819
|
-
return Array.isArray(props.disabled) ? props.disabled.includes('mode') : props.disabled;
|
|
21819
|
+
return Array.isArray(props.disabled) ? props.disabled.includes('mode') : !!props.disabled;
|
|
21820
21820
|
});
|
|
21821
21821
|
const disablePrev = computed(() => {
|
|
21822
|
-
return Array.isArray(props.disabled) ? props.disabled.includes('prev') : props.disabled;
|
|
21822
|
+
return Array.isArray(props.disabled) ? props.disabled.includes('prev') : !!props.disabled;
|
|
21823
21823
|
});
|
|
21824
21824
|
const disableNext = computed(() => {
|
|
21825
|
-
return Array.isArray(props.disabled) ? props.disabled.includes('next') : props.disabled;
|
|
21825
|
+
return Array.isArray(props.disabled) ? props.disabled.includes('next') : !!props.disabled;
|
|
21826
21826
|
});
|
|
21827
21827
|
function onClickPrev() {
|
|
21828
21828
|
emit('click:prev');
|
|
@@ -22163,6 +22163,7 @@ function isWithinRange(date, range) {
|
|
|
22163
22163
|
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
|
22164
22164
|
}
|
|
22165
22165
|
function isValid(date) {
|
|
22166
|
+
if (!date || date == null) return false;
|
|
22166
22167
|
const d = new Date(date);
|
|
22167
22168
|
return d instanceof Date && !isNaN(d.getTime());
|
|
22168
22169
|
}
|
|
@@ -22194,6 +22195,12 @@ function setYear(date, year) {
|
|
|
22194
22195
|
d.setFullYear(year);
|
|
22195
22196
|
return d;
|
|
22196
22197
|
}
|
|
22198
|
+
function startOfDay(date) {
|
|
22199
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
22200
|
+
}
|
|
22201
|
+
function endOfDay(date) {
|
|
22202
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);
|
|
22203
|
+
}
|
|
22197
22204
|
class VuetifyDateAdapter {
|
|
22198
22205
|
constructor(options) {
|
|
22199
22206
|
this.locale = options.locale;
|
|
@@ -22258,6 +22265,12 @@ class VuetifyDateAdapter {
|
|
|
22258
22265
|
getMonth(date) {
|
|
22259
22266
|
return getMonth(date);
|
|
22260
22267
|
}
|
|
22268
|
+
startOfDay(date) {
|
|
22269
|
+
return startOfDay(date);
|
|
22270
|
+
}
|
|
22271
|
+
endOfDay(date) {
|
|
22272
|
+
return endOfDay(date);
|
|
22273
|
+
}
|
|
22261
22274
|
startOfYear(date) {
|
|
22262
22275
|
return startOfYear(date);
|
|
22263
22276
|
}
|
|
@@ -23126,9 +23139,11 @@ const VDatePicker = genericComponent()({
|
|
|
23126
23139
|
function updateFromInput(input, index) {
|
|
23127
23140
|
const {
|
|
23128
23141
|
isValid,
|
|
23129
|
-
date
|
|
23142
|
+
date,
|
|
23143
|
+
isAfter
|
|
23130
23144
|
} = adapter;
|
|
23131
|
-
|
|
23145
|
+
const inputDate = date(input);
|
|
23146
|
+
if (isValid(input) && (!minDate.value || !isAfter(minDate.value, inputDate)) && (!maxDate.value || !isAfter(inputDate, maxDate.value))) {
|
|
23132
23147
|
const newModel = model.value.slice();
|
|
23133
23148
|
newModel[index] = date(input);
|
|
23134
23149
|
if (props.hideActions) {
|
|
@@ -24544,7 +24559,7 @@ function createVuetify$1() {
|
|
|
24544
24559
|
date
|
|
24545
24560
|
};
|
|
24546
24561
|
}
|
|
24547
|
-
const version$1 = "3.3.
|
|
24562
|
+
const version$1 = "3.3.16";
|
|
24548
24563
|
createVuetify$1.version = version$1;
|
|
24549
24564
|
|
|
24550
24565
|
// Vue's inject() can only be used in setup
|
|
@@ -24558,7 +24573,7 @@ function inject(key) {
|
|
|
24558
24573
|
|
|
24559
24574
|
/* eslint-disable local-rules/sort-imports */
|
|
24560
24575
|
|
|
24561
|
-
const version = "3.3.
|
|
24576
|
+
const version = "3.3.16";
|
|
24562
24577
|
|
|
24563
24578
|
/* eslint-disable local-rules/sort-imports */
|
|
24564
24579
|
|