vuetify 3.1.14 → 3.1.15
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 +149 -97
- package/dist/json/importMap.json +70 -70
- package/dist/json/tags.json +13 -0
- package/dist/json/web-types.json +440 -209
- package/dist/vuetify-labs.css +161 -152
- package/dist/vuetify-labs.d.ts +518 -160
- package/dist/vuetify-labs.esm.js +176 -116
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +176 -116
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +11 -2
- package/dist/vuetify.d.ts +486 -161
- package/dist/vuetify.esm.js +118 -68
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +118 -68
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +728 -717
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +9 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +50 -6
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
- package/lib/components/VAutocomplete/index.d.ts +29 -17
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +21 -16
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.ts +22 -1
- package/lib/components/VCombobox/VCombobox.css +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +6 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +1 -1
- package/lib/components/VCombobox/index.d.ts +29 -17
- package/lib/components/VField/index.d.ts +6 -0
- package/lib/components/VFileInput/VFileInput.mjs +13 -17
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +68 -23
- package/lib/components/VInput/VInput.mjs +14 -7
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +22 -1
- package/lib/components/VOverlay/locationStrategies.mjs +9 -4
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.ts +22 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +2 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +22 -1
- package/lib/components/VSelect/VSelect.mjs +6 -0
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +32 -17
- package/lib/components/VSlider/VSlider.mjs +2 -2
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/index.d.ts +22 -1
- package/lib/components/VSwitch/VSwitch.mjs +5 -3
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.ts +43 -1
- package/lib/components/VTextField/VTextField.mjs +4 -12
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/index.d.ts +70 -22
- package/lib/components/VTextarea/VTextarea.mjs +4 -12
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +61 -22
- package/lib/components/VTreeview/_mixins.sass +0 -0
- package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -0
- package/lib/components/VValidation/index.d.ts +10 -1
- package/lib/components/index.d.ts +465 -140
- package/lib/composables/focus.mjs +3 -2
- package/lib/composables/focus.mjs.map +1 -1
- package/lib/composables/items.mjs +7 -2
- package/lib/composables/items.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/mdi-svg.mjs +2 -2
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/index.d.ts +21 -21
- package/lib/labs/VDataTable/VDataTable.mjs +2 -2
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +52 -44
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +0 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +2 -1
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +44 -11
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +1 -0
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
- package/lib/labs/components.d.ts +53 -20
- package/lib/locale/el.mjs +0 -0
- package/lib/locale/index.mjs +0 -0
- package/package.json +2 -2
package/dist/vuetify-labs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.1.
|
|
2
|
+
* Vuetify v3.1.15
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -5297,7 +5297,8 @@
|
|
|
5297
5297
|
|
|
5298
5298
|
// Composables
|
|
5299
5299
|
const makeFocusProps = propsFactory({
|
|
5300
|
-
focused: Boolean
|
|
5300
|
+
focused: Boolean,
|
|
5301
|
+
'onUpdate:focused': EventProp()
|
|
5301
5302
|
}, 'focus');
|
|
5302
5303
|
function useFocus(props) {
|
|
5303
5304
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
@@ -5886,6 +5887,8 @@
|
|
|
5886
5887
|
appendIcon: IconValue,
|
|
5887
5888
|
prependIcon: IconValue,
|
|
5888
5889
|
hideDetails: [Boolean, String],
|
|
5890
|
+
hint: String,
|
|
5891
|
+
persistentHint: Boolean,
|
|
5889
5892
|
messages: {
|
|
5890
5893
|
type: [Array, String],
|
|
5891
5894
|
default: () => []
|
|
@@ -5949,10 +5952,19 @@
|
|
|
5949
5952
|
resetValidation,
|
|
5950
5953
|
validate
|
|
5951
5954
|
}));
|
|
5955
|
+
const messages = vue.computed(() => {
|
|
5956
|
+
if (errorMessages.value.length > 0) {
|
|
5957
|
+
return errorMessages.value;
|
|
5958
|
+
} else if (props.hint && (props.persistentHint || props.focused)) {
|
|
5959
|
+
return props.hint;
|
|
5960
|
+
} else {
|
|
5961
|
+
return props.messages;
|
|
5962
|
+
}
|
|
5963
|
+
});
|
|
5952
5964
|
useRender(() => {
|
|
5953
5965
|
const hasPrepend = !!(slots.prepend || props.prependIcon);
|
|
5954
5966
|
const hasAppend = !!(slots.append || props.appendIcon);
|
|
5955
|
-
const hasMessages =
|
|
5967
|
+
const hasMessages = messages.value.length > 0;
|
|
5956
5968
|
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
|
5957
5969
|
return vue.createVNode("div", {
|
|
5958
5970
|
"class": ['v-input', `v-input--${props.direction}`, densityClasses.value, validationClasses.value]
|
|
@@ -5975,7 +5987,7 @@
|
|
|
5975
5987
|
}, [vue.createVNode(VMessages, {
|
|
5976
5988
|
"id": messagesId.value,
|
|
5977
5989
|
"active": hasMessages,
|
|
5978
|
-
"messages":
|
|
5990
|
+
"messages": messages.value
|
|
5979
5991
|
}, {
|
|
5980
5992
|
message: slots.message
|
|
5981
5993
|
}), slots.details?.(slotProps.value)])]);
|
|
@@ -5987,10 +5999,6 @@
|
|
|
5987
5999
|
};
|
|
5988
6000
|
}
|
|
5989
6001
|
});
|
|
5990
|
-
function filterInputProps(props) {
|
|
5991
|
-
const keys = Object.keys(VInput.props).filter(k => !isOn(k));
|
|
5992
|
-
return pick(props, keys);
|
|
5993
|
-
}
|
|
5994
6002
|
|
|
5995
6003
|
const VCounter = genericComponent()({
|
|
5996
6004
|
name: 'VCounter',
|
|
@@ -6116,8 +6124,6 @@
|
|
|
6116
6124
|
autofocus: Boolean,
|
|
6117
6125
|
counter: [Boolean, Number, String],
|
|
6118
6126
|
counterValue: Function,
|
|
6119
|
-
hint: String,
|
|
6120
|
-
persistentHint: Boolean,
|
|
6121
6127
|
prefix: String,
|
|
6122
6128
|
placeholder: String,
|
|
6123
6129
|
persistentPlaceholder: Boolean,
|
|
@@ -6172,9 +6178,6 @@
|
|
|
6172
6178
|
const vFieldRef = vue.ref();
|
|
6173
6179
|
const inputRef = vue.ref();
|
|
6174
6180
|
const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value);
|
|
6175
|
-
const messages = vue.computed(() => {
|
|
6176
|
-
return props.messages.length ? props.messages : isFocused.value || props.persistentHint ? props.hint : '';
|
|
6177
|
-
});
|
|
6178
6181
|
function onFocus() {
|
|
6179
6182
|
if (inputRef.value !== document.activeElement) {
|
|
6180
6183
|
inputRef.value?.focus();
|
|
@@ -6217,7 +6220,7 @@
|
|
|
6217
6220
|
const [{
|
|
6218
6221
|
modelValue: _,
|
|
6219
6222
|
...inputProps
|
|
6220
|
-
}] =
|
|
6223
|
+
}] = VInput.filterProps(props);
|
|
6221
6224
|
const [fieldProps] = filterFieldProps(props);
|
|
6222
6225
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
6223
6226
|
"ref": vInputRef,
|
|
@@ -6227,12 +6230,9 @@
|
|
|
6227
6230
|
'v-text-field--prefixed': props.prefix,
|
|
6228
6231
|
'v-text-field--suffixed': props.suffix,
|
|
6229
6232
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
6230
|
-
}]
|
|
6231
|
-
"onClick:prepend": props['onClick:prepend'],
|
|
6232
|
-
"onClick:append": props['onClick:append']
|
|
6233
|
+
}]
|
|
6233
6234
|
}, rootAttrs, inputProps, {
|
|
6234
|
-
"focused": isFocused.value
|
|
6235
|
-
"messages": messages.value
|
|
6235
|
+
"focused": isFocused.value
|
|
6236
6236
|
}), {
|
|
6237
6237
|
...slots,
|
|
6238
6238
|
default: _ref2 => {
|
|
@@ -6641,7 +6641,7 @@
|
|
|
6641
6641
|
const id = vue.computed(() => props.id || `checkbox-${uid}`);
|
|
6642
6642
|
useRender(() => {
|
|
6643
6643
|
const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
6644
|
-
const [inputProps, _1] =
|
|
6644
|
+
const [inputProps, _1] = VInput.filterProps(props);
|
|
6645
6645
|
const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
|
|
6646
6646
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
6647
6647
|
"class": "v-checkbox"
|
|
@@ -8053,7 +8053,12 @@
|
|
|
8053
8053
|
function useItems(props) {
|
|
8054
8054
|
const items = vue.computed(() => transformItems$1(props, props.items));
|
|
8055
8055
|
function transformIn(value) {
|
|
8056
|
-
return value.map(
|
|
8056
|
+
return value.map(v => {
|
|
8057
|
+
const existingItem = items.value.find(item => deepEqual(v, item.value));
|
|
8058
|
+
// Nullish existingItem means value is a custom input value from combobox
|
|
8059
|
+
// In this case, use transformItem to create an InternalItem based on value
|
|
8060
|
+
return existingItem ?? transformItem$1(props, v);
|
|
8061
|
+
});
|
|
8057
8062
|
}
|
|
8058
8063
|
function transformOut(value) {
|
|
8059
8064
|
return value.map(_ref => {
|
|
@@ -8731,7 +8736,7 @@
|
|
|
8731
8736
|
}
|
|
8732
8737
|
|
|
8733
8738
|
/** Get size of element ignoring max-width/max-height */
|
|
8734
|
-
function getIntrinsicSize(el) {
|
|
8739
|
+
function getIntrinsicSize(el, isRtl) {
|
|
8735
8740
|
// const scrollables = new Map<Element, [number, number]>()
|
|
8736
8741
|
// el.querySelectorAll('*').forEach(el => {
|
|
8737
8742
|
// const x = el.scrollLeft
|
|
@@ -8748,7 +8753,11 @@
|
|
|
8748
8753
|
|
|
8749
8754
|
/* eslint-disable-next-line sonarjs/prefer-immediate-return */
|
|
8750
8755
|
const contentBox = nullifyTransforms(el);
|
|
8751
|
-
|
|
8756
|
+
if (isRtl) {
|
|
8757
|
+
contentBox.x += parseFloat(el.style.right || 0);
|
|
8758
|
+
} else {
|
|
8759
|
+
contentBox.x -= parseFloat(el.style.left || 0);
|
|
8760
|
+
}
|
|
8752
8761
|
contentBox.y -= parseFloat(el.style.top || 0);
|
|
8753
8762
|
|
|
8754
8763
|
// el.style.maxWidth = initialMaxWidth
|
|
@@ -8829,7 +8838,7 @@
|
|
|
8829
8838
|
});
|
|
8830
8839
|
if (!data.activatorEl.value || !data.contentEl.value) return;
|
|
8831
8840
|
const targetBox = data.activatorEl.value.getBoundingClientRect();
|
|
8832
|
-
const contentBox = getIntrinsicSize(data.contentEl.value);
|
|
8841
|
+
const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
|
|
8833
8842
|
const scrollParents = getScrollParents(data.contentEl.value);
|
|
8834
8843
|
const viewportMargin = 12;
|
|
8835
8844
|
if (!scrollParents.length) {
|
|
@@ -9005,7 +9014,8 @@
|
|
|
9005
9014
|
transformOrigin: `${placement.origin.side} ${placement.origin.align}`,
|
|
9006
9015
|
// transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,
|
|
9007
9016
|
top: convertToUnit(pixelRound(y)),
|
|
9008
|
-
left: convertToUnit(pixelRound(x)),
|
|
9017
|
+
left: data.isRtl.value ? undefined : convertToUnit(pixelRound(x)),
|
|
9018
|
+
right: data.isRtl.value ? convertToUnit(pixelRound(-x)) : undefined,
|
|
9009
9019
|
minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),
|
|
9010
9020
|
maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),
|
|
9011
9021
|
maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))
|
|
@@ -9900,6 +9910,7 @@
|
|
|
9900
9910
|
})
|
|
9901
9911
|
},
|
|
9902
9912
|
emits: {
|
|
9913
|
+
'update:focused': focused => true,
|
|
9903
9914
|
'update:modelValue': val => true,
|
|
9904
9915
|
'update:menu': val => true
|
|
9905
9916
|
},
|
|
@@ -10016,6 +10027,9 @@
|
|
|
10016
10027
|
menu.value = false;
|
|
10017
10028
|
}
|
|
10018
10029
|
}
|
|
10030
|
+
function onFocusin(e) {
|
|
10031
|
+
isFocused.value = true;
|
|
10032
|
+
}
|
|
10019
10033
|
function onFocusout(e) {
|
|
10020
10034
|
if (e.relatedTarget == null) {
|
|
10021
10035
|
vTextFieldRef.value?.focus();
|
|
@@ -10070,6 +10084,7 @@
|
|
|
10070
10084
|
"selected": selected.value,
|
|
10071
10085
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
10072
10086
|
"onMousedown": e => e.preventDefault(),
|
|
10087
|
+
"onFocusin": onFocusin,
|
|
10073
10088
|
"onFocusout": onFocusout
|
|
10074
10089
|
}, {
|
|
10075
10090
|
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
@@ -10148,6 +10163,7 @@
|
|
|
10148
10163
|
});
|
|
10149
10164
|
});
|
|
10150
10165
|
return forwardRefs({
|
|
10166
|
+
isFocused,
|
|
10151
10167
|
menu,
|
|
10152
10168
|
select
|
|
10153
10169
|
}, vTextFieldRef);
|
|
@@ -10286,6 +10302,7 @@
|
|
|
10286
10302
|
})
|
|
10287
10303
|
},
|
|
10288
10304
|
emits: {
|
|
10305
|
+
'update:focused': focused => true,
|
|
10289
10306
|
'update:search': val => true,
|
|
10290
10307
|
'update:modelValue': val => true,
|
|
10291
10308
|
'update:menu': val => true
|
|
@@ -10309,11 +10326,17 @@
|
|
|
10309
10326
|
_menu.value = v;
|
|
10310
10327
|
}
|
|
10311
10328
|
});
|
|
10329
|
+
const selectionIndex = vue.ref(-1);
|
|
10330
|
+
const color = vue.computed(() => vTextFieldRef.value?.color);
|
|
10312
10331
|
const {
|
|
10313
10332
|
items,
|
|
10314
10333
|
transformIn,
|
|
10315
10334
|
transformOut
|
|
10316
10335
|
} = useItems(props);
|
|
10336
|
+
const {
|
|
10337
|
+
textColorClasses,
|
|
10338
|
+
textColorStyles
|
|
10339
|
+
} = useTextColor(color);
|
|
10317
10340
|
const search = useProxiedModel(props, 'search', '');
|
|
10318
10341
|
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
|
|
10319
10342
|
const transformed = transformOut(v);
|
|
@@ -10336,6 +10359,7 @@
|
|
|
10336
10359
|
return filteredItems.value;
|
|
10337
10360
|
});
|
|
10338
10361
|
const selected = vue.computed(() => selections.value.map(selection => selection.props.value));
|
|
10362
|
+
const selection = vue.computed(() => selections.value[selectionIndex.value]);
|
|
10339
10363
|
const listRef = vue.ref();
|
|
10340
10364
|
function onClear(e) {
|
|
10341
10365
|
if (props.openOnClear) {
|
|
@@ -10349,7 +10373,9 @@
|
|
|
10349
10373
|
}
|
|
10350
10374
|
function onKeydown(e) {
|
|
10351
10375
|
if (props.readonly || form?.isReadonly.value) return;
|
|
10352
|
-
|
|
10376
|
+
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
10377
|
+
const length = selected.value.length;
|
|
10378
|
+
if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
|
10353
10379
|
e.preventDefault();
|
|
10354
10380
|
}
|
|
10355
10381
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
|
@@ -10366,6 +10392,38 @@
|
|
|
10366
10392
|
} else if (e.key === 'ArrowUp') {
|
|
10367
10393
|
listRef.value?.focus('prev');
|
|
10368
10394
|
}
|
|
10395
|
+
if (!props.multiple) return;
|
|
10396
|
+
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
10397
|
+
if (selectionIndex.value < 0) {
|
|
10398
|
+
if (e.key === 'Backspace' && !search.value) {
|
|
10399
|
+
selectionIndex.value = length - 1;
|
|
10400
|
+
}
|
|
10401
|
+
return;
|
|
10402
|
+
}
|
|
10403
|
+
const originalSelectionIndex = selectionIndex.value;
|
|
10404
|
+
if (selection.value) select(selection.value);
|
|
10405
|
+
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
10406
|
+
}
|
|
10407
|
+
if (e.key === 'ArrowLeft') {
|
|
10408
|
+
if (selectionIndex.value < 0 && selectionStart > 0) return;
|
|
10409
|
+
const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;
|
|
10410
|
+
if (selections.value[prev]) {
|
|
10411
|
+
selectionIndex.value = prev;
|
|
10412
|
+
} else {
|
|
10413
|
+
selectionIndex.value = -1;
|
|
10414
|
+
vTextFieldRef.value.setSelectionRange(search.value?.length, search.value?.length);
|
|
10415
|
+
}
|
|
10416
|
+
}
|
|
10417
|
+
if (e.key === 'ArrowRight') {
|
|
10418
|
+
if (selectionIndex.value < 0) return;
|
|
10419
|
+
const next = selectionIndex.value + 1;
|
|
10420
|
+
if (selections.value[next]) {
|
|
10421
|
+
selectionIndex.value = next;
|
|
10422
|
+
} else {
|
|
10423
|
+
selectionIndex.value = -1;
|
|
10424
|
+
vTextFieldRef.value.setSelectionRange(0, 0);
|
|
10425
|
+
}
|
|
10426
|
+
}
|
|
10369
10427
|
}
|
|
10370
10428
|
function onInput(e) {
|
|
10371
10429
|
search.value = e.target.value;
|
|
@@ -10387,7 +10445,6 @@
|
|
|
10387
10445
|
const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
|
|
10388
10446
|
if (index === -1) {
|
|
10389
10447
|
model.value = [...model.value, item];
|
|
10390
|
-
search.value = '';
|
|
10391
10448
|
} else {
|
|
10392
10449
|
const value = [...model.value];
|
|
10393
10450
|
value.splice(index, 1);
|
|
@@ -10432,12 +10489,15 @@
|
|
|
10432
10489
|
"onUpdate:modelValue": v => {
|
|
10433
10490
|
if (v == null) model.value = [];
|
|
10434
10491
|
},
|
|
10492
|
+
"focused": isFocused.value,
|
|
10493
|
+
"onUpdate:focused": $event => isFocused.value = $event,
|
|
10435
10494
|
"validationValue": model.externalValue,
|
|
10436
10495
|
"dirty": isDirty,
|
|
10437
10496
|
"onInput": onInput,
|
|
10438
10497
|
"class": ['v-autocomplete', {
|
|
10439
10498
|
'v-autocomplete--active-menu': menu.value,
|
|
10440
10499
|
'v-autocomplete--chips': !!props.chips,
|
|
10500
|
+
'v-autocomplete--selecting-index': selectionIndex.value > -1,
|
|
10441
10501
|
[`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
10442
10502
|
'v-autocomplete--selection-slot': !!slots.selection
|
|
10443
10503
|
}],
|
|
@@ -10446,8 +10506,6 @@
|
|
|
10446
10506
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
10447
10507
|
"onClick:clear": onClear,
|
|
10448
10508
|
"onMousedown:control": onMousedownControl,
|
|
10449
|
-
"onFocus": () => isFocused.value = true,
|
|
10450
|
-
"onBlur": () => isFocused.value = false,
|
|
10451
10509
|
"onKeydown": onKeydown
|
|
10452
10510
|
}), {
|
|
10453
10511
|
...slots,
|
|
@@ -10512,7 +10570,8 @@
|
|
|
10512
10570
|
};
|
|
10513
10571
|
return vue.createVNode("div", {
|
|
10514
10572
|
"key": item.value,
|
|
10515
|
-
"class":
|
|
10573
|
+
"class": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],
|
|
10574
|
+
"style": index === selectionIndex.value ? textColorStyles.value : {}
|
|
10516
10575
|
}, [hasChips ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
|
|
10517
10576
|
"key": "chip",
|
|
10518
10577
|
"closable": props.closableChips,
|
|
@@ -12907,7 +12966,7 @@
|
|
|
12907
12966
|
} = useFocus(props);
|
|
12908
12967
|
const trackStop = vue.computed(() => position(model.value));
|
|
12909
12968
|
useRender(() => {
|
|
12910
|
-
const [inputProps, _] =
|
|
12969
|
+
const [inputProps, _] = VInput.filterProps(props);
|
|
12911
12970
|
const hasPrepend = !!(props.label || slots.label || slots.prepend);
|
|
12912
12971
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
12913
12972
|
"class": ['v-slider', {
|
|
@@ -13571,6 +13630,7 @@
|
|
|
13571
13630
|
})
|
|
13572
13631
|
},
|
|
13573
13632
|
emits: {
|
|
13633
|
+
'update:focused': focused => true,
|
|
13574
13634
|
'update:modelValue': val => true,
|
|
13575
13635
|
'update:search': val => true,
|
|
13576
13636
|
'update:menu': val => true
|
|
@@ -13708,8 +13768,9 @@
|
|
|
13708
13768
|
}
|
|
13709
13769
|
return;
|
|
13710
13770
|
}
|
|
13711
|
-
|
|
13712
|
-
|
|
13771
|
+
const originalSelectionIndex = selectionIndex.value;
|
|
13772
|
+
if (selection.value) select(selection.value);
|
|
13773
|
+
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
13713
13774
|
}
|
|
13714
13775
|
if (e.key === 'ArrowLeft') {
|
|
13715
13776
|
if (selectionIndex.value < 0 && selectionStart > 0) return;
|
|
@@ -13794,6 +13855,8 @@
|
|
|
13794
13855
|
"onUpdate:modelValue": [$event => search.value = $event, v => {
|
|
13795
13856
|
if (v == null) model.value = [];
|
|
13796
13857
|
}],
|
|
13858
|
+
"focused": isFocused.value,
|
|
13859
|
+
"onUpdate:focused": $event => isFocused.value = $event,
|
|
13797
13860
|
"validationValue": model.externalValue,
|
|
13798
13861
|
"dirty": isDirty,
|
|
13799
13862
|
"class": ['v-combobox', {
|
|
@@ -13807,8 +13870,6 @@
|
|
|
13807
13870
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
13808
13871
|
"onClick:clear": onClear,
|
|
13809
13872
|
"onMousedown:control": onMousedownControl,
|
|
13810
|
-
"onFocus": () => isFocused.value = true,
|
|
13811
|
-
"onBlur": () => isFocused.value = false,
|
|
13812
13873
|
"onKeydown": onKeydown
|
|
13813
13874
|
}), {
|
|
13814
13875
|
...slots,
|
|
@@ -14260,8 +14321,6 @@
|
|
|
14260
14321
|
default: '$vuetify.fileInput.counter'
|
|
14261
14322
|
},
|
|
14262
14323
|
multiple: Boolean,
|
|
14263
|
-
hint: String,
|
|
14264
|
-
persistentHint: Boolean,
|
|
14265
14324
|
showSize: {
|
|
14266
14325
|
type: [Boolean, Number],
|
|
14267
14326
|
default: false,
|
|
@@ -14286,6 +14345,7 @@
|
|
|
14286
14345
|
emits: {
|
|
14287
14346
|
'click:control': e => true,
|
|
14288
14347
|
'mousedown:control': e => true,
|
|
14348
|
+
'update:focused': focused => true,
|
|
14289
14349
|
'update:modelValue': files => true
|
|
14290
14350
|
},
|
|
14291
14351
|
setup(props, _ref) {
|
|
@@ -14298,6 +14358,11 @@
|
|
|
14298
14358
|
t
|
|
14299
14359
|
} = useLocale();
|
|
14300
14360
|
const model = useProxiedModel(props, 'modelValue');
|
|
14361
|
+
const {
|
|
14362
|
+
isFocused,
|
|
14363
|
+
focus,
|
|
14364
|
+
blur
|
|
14365
|
+
} = useFocus(props);
|
|
14301
14366
|
const base = vue.computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined);
|
|
14302
14367
|
const totalBytes = vue.computed(() => (model.value ?? []).reduce((bytes, _ref2) => {
|
|
14303
14368
|
let {
|
|
@@ -14319,21 +14384,14 @@
|
|
|
14319
14384
|
});
|
|
14320
14385
|
const vInputRef = vue.ref();
|
|
14321
14386
|
const vFieldRef = vue.ref();
|
|
14322
|
-
const isFocused = vue.ref(false);
|
|
14323
14387
|
const inputRef = vue.ref();
|
|
14324
|
-
const messages = vue.computed(() => {
|
|
14325
|
-
return props.messages.length ? props.messages : props.persistentHint ? props.hint : '';
|
|
14326
|
-
});
|
|
14327
14388
|
function onFocus() {
|
|
14328
14389
|
if (inputRef.value !== document.activeElement) {
|
|
14329
14390
|
inputRef.value?.focus();
|
|
14330
14391
|
}
|
|
14331
|
-
if (!isFocused.value)
|
|
14332
|
-
isFocused.value = true;
|
|
14333
|
-
}
|
|
14392
|
+
if (!isFocused.value) focus();
|
|
14334
14393
|
}
|
|
14335
14394
|
function onClickPrepend(e) {
|
|
14336
|
-
callEvent(props['onClick:prepend'], e);
|
|
14337
14395
|
onControlClick(e);
|
|
14338
14396
|
}
|
|
14339
14397
|
function onControlMousedown(e) {
|
|
@@ -14364,18 +14422,16 @@
|
|
|
14364
14422
|
const [{
|
|
14365
14423
|
modelValue: _,
|
|
14366
14424
|
...inputProps
|
|
14367
|
-
}] =
|
|
14425
|
+
}] = VInput.filterProps(props);
|
|
14368
14426
|
const [fieldProps] = filterFieldProps(props);
|
|
14369
14427
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
14370
14428
|
"ref": vInputRef,
|
|
14371
14429
|
"modelValue": model.value,
|
|
14372
14430
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
14373
14431
|
"class": "v-file-input",
|
|
14374
|
-
"onClick:prepend": onClickPrepend
|
|
14375
|
-
"onClick:append": props['onClick:append']
|
|
14432
|
+
"onClick:prepend": onClickPrepend
|
|
14376
14433
|
}, rootAttrs, inputProps, {
|
|
14377
|
-
"focused": isFocused.value
|
|
14378
|
-
"messages": messages.value
|
|
14434
|
+
"focused": isFocused.value
|
|
14379
14435
|
}), {
|
|
14380
14436
|
...slots,
|
|
14381
14437
|
default: _ref3 => {
|
|
@@ -14427,7 +14483,7 @@
|
|
|
14427
14483
|
model.value = [...(target.files ?? [])];
|
|
14428
14484
|
},
|
|
14429
14485
|
"onFocus": onFocus,
|
|
14430
|
-
"onBlur":
|
|
14486
|
+
"onBlur": blur
|
|
14431
14487
|
}, slotProps, inputAttrs), null), vue.createVNode("div", {
|
|
14432
14488
|
"class": fieldClass
|
|
14433
14489
|
}, [!!model.value?.length && (slots.selection ? slots.selection({
|
|
@@ -16122,7 +16178,7 @@
|
|
|
16122
16178
|
const model = useProxiedModel(props, 'modelValue');
|
|
16123
16179
|
useRender(() => {
|
|
16124
16180
|
const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
16125
|
-
const [inputProps, _1] =
|
|
16181
|
+
const [inputProps, _1] = VInput.filterProps(props);
|
|
16126
16182
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
16127
16183
|
const label = slots.label ? slots.label({
|
|
16128
16184
|
label: props.label,
|
|
@@ -16250,7 +16306,7 @@
|
|
|
16250
16306
|
const trackStart = vue.computed(() => position(model.value[0]));
|
|
16251
16307
|
const trackStop = vue.computed(() => position(model.value[1]));
|
|
16252
16308
|
useRender(() => {
|
|
16253
|
-
const [inputProps, _] =
|
|
16309
|
+
const [inputProps, _] = VInput.filterProps(props);
|
|
16254
16310
|
const hasPrepend = !!(props.label || slots.label || slots.prepend);
|
|
16255
16311
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
16256
16312
|
"class": ['v-slider', 'v-range-slider', {
|
|
@@ -17124,10 +17180,12 @@
|
|
|
17124
17180
|
}
|
|
17125
17181
|
useRender(() => {
|
|
17126
17182
|
const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
17127
|
-
const [inputProps, _1] =
|
|
17183
|
+
const [inputProps, _1] = VInput.filterProps(props);
|
|
17128
17184
|
const [controlProps, _2] = VSelectionControl.filterProps(props);
|
|
17129
17185
|
const control = vue.ref();
|
|
17130
|
-
function onClick() {
|
|
17186
|
+
function onClick(e) {
|
|
17187
|
+
e.stopPropagation();
|
|
17188
|
+
e.preventDefault();
|
|
17131
17189
|
control.value?.input?.click();
|
|
17132
17190
|
}
|
|
17133
17191
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
@@ -17489,8 +17547,6 @@
|
|
|
17489
17547
|
autofocus: Boolean,
|
|
17490
17548
|
counter: [Boolean, Number, String],
|
|
17491
17549
|
counterValue: Function,
|
|
17492
|
-
hint: String,
|
|
17493
|
-
persistentHint: Boolean,
|
|
17494
17550
|
prefix: String,
|
|
17495
17551
|
placeholder: String,
|
|
17496
17552
|
persistentPlaceholder: Boolean,
|
|
@@ -17545,9 +17601,6 @@
|
|
|
17545
17601
|
const controlHeight = vue.ref('');
|
|
17546
17602
|
const textareaRef = vue.ref();
|
|
17547
17603
|
const isActive = vue.computed(() => isFocused.value || props.persistentPlaceholder);
|
|
17548
|
-
const messages = vue.computed(() => {
|
|
17549
|
-
return props.messages.length ? props.messages : isFocused.value || props.persistentHint ? props.hint : '';
|
|
17550
|
-
});
|
|
17551
17604
|
function onFocus() {
|
|
17552
17605
|
if (textareaRef.value !== document.activeElement) {
|
|
17553
17606
|
textareaRef.value?.focus();
|
|
@@ -17619,7 +17672,7 @@
|
|
|
17619
17672
|
const [{
|
|
17620
17673
|
modelValue: _,
|
|
17621
17674
|
...inputProps
|
|
17622
|
-
}] =
|
|
17675
|
+
}] = VInput.filterProps(props);
|
|
17623
17676
|
const [fieldProps] = filterFieldProps(props);
|
|
17624
17677
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
17625
17678
|
"ref": vInputRef,
|
|
@@ -17633,12 +17686,9 @@
|
|
|
17633
17686
|
'v-textarea--auto-grow': props.autoGrow,
|
|
17634
17687
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
|
17635
17688
|
'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
|
|
17636
|
-
}]
|
|
17637
|
-
"onClick:prepend": props['onClick:prepend'],
|
|
17638
|
-
"onClick:append": props['onClick:append']
|
|
17689
|
+
}]
|
|
17639
17690
|
}, rootAttrs, inputProps, {
|
|
17640
|
-
"focused": isFocused.value
|
|
17641
|
-
"messages": messages.value
|
|
17691
|
+
"focused": isFocused.value
|
|
17642
17692
|
}), {
|
|
17643
17693
|
...slots,
|
|
17644
17694
|
default: _ref2 => {
|
|
@@ -18949,56 +18999,64 @@
|
|
|
18949
18999
|
const {
|
|
18950
19000
|
t
|
|
18951
19001
|
} = useLocale();
|
|
18952
|
-
useRender(() =>
|
|
18953
|
-
|
|
18954
|
-
|
|
18955
|
-
|
|
18956
|
-
|
|
18957
|
-
|
|
18958
|
-
|
|
18959
|
-
|
|
18960
|
-
|
|
18961
|
-
|
|
18962
|
-
|
|
18963
|
-
|
|
18964
|
-
|
|
19002
|
+
useRender(() => {
|
|
19003
|
+
if (props.loading && slots.loading) {
|
|
19004
|
+
return vue.createVNode("tr", {
|
|
19005
|
+
"class": "v-data-table-rows-no-data",
|
|
19006
|
+
"key": "loading"
|
|
19007
|
+
}, [vue.createVNode("td", {
|
|
19008
|
+
"colspan": columns.value.length
|
|
19009
|
+
}, [slots.loading()])]);
|
|
19010
|
+
}
|
|
19011
|
+
if (!props.loading && !props.items.length && !props.hideNoData && slots['no-data']) {
|
|
19012
|
+
return vue.createVNode("tr", {
|
|
19013
|
+
"class": "v-data-table-rows-no-data",
|
|
19014
|
+
"key": "no-data"
|
|
19015
|
+
}, [vue.createVNode("td", {
|
|
19016
|
+
"colspan": columns.value.length
|
|
19017
|
+
}, [slots['no-data']?.() ?? t(props.noDataText)])]);
|
|
19018
|
+
}
|
|
19019
|
+
return vue.createVNode(vue.Fragment, null, [props.items.map((item, index) => {
|
|
19020
|
+
if (item.type === 'group-header') {
|
|
19021
|
+
return slots['group-header'] ? slots['group-header']({
|
|
19022
|
+
index,
|
|
19023
|
+
item,
|
|
19024
|
+
columns: columns.value,
|
|
19025
|
+
isExpanded,
|
|
19026
|
+
toggleExpand,
|
|
19027
|
+
isSelected,
|
|
19028
|
+
toggleSelect,
|
|
19029
|
+
toggleGroup,
|
|
19030
|
+
isGroupOpen
|
|
19031
|
+
}) : vue.createVNode(VDataTableGroupHeaderRow, {
|
|
19032
|
+
"key": `group-header_${item.id}`,
|
|
19033
|
+
"item": item
|
|
19034
|
+
}, slots);
|
|
19035
|
+
}
|
|
19036
|
+
const slotProps = {
|
|
18965
19037
|
index,
|
|
18966
19038
|
item,
|
|
18967
19039
|
columns: columns.value,
|
|
18968
19040
|
isExpanded,
|
|
18969
19041
|
toggleExpand,
|
|
18970
19042
|
isSelected,
|
|
18971
|
-
toggleSelect
|
|
18972
|
-
|
|
18973
|
-
|
|
18974
|
-
|
|
18975
|
-
"
|
|
19043
|
+
toggleSelect
|
|
19044
|
+
};
|
|
19045
|
+
return vue.createVNode(vue.Fragment, null, [slots.item ? slots.item(slotProps) : vue.createVNode(VDataTableRow, {
|
|
19046
|
+
"key": `item_${item.value}`,
|
|
19047
|
+
"onClick": expandOnClick.value || props['onClick:row'] ? event => {
|
|
19048
|
+
if (expandOnClick.value) {
|
|
19049
|
+
toggleExpand(item);
|
|
19050
|
+
}
|
|
19051
|
+
props['onClick:row']?.(event, {
|
|
19052
|
+
item
|
|
19053
|
+
});
|
|
19054
|
+
} : undefined,
|
|
19055
|
+
"index": index,
|
|
18976
19056
|
"item": item
|
|
18977
|
-
}, slots);
|
|
18978
|
-
}
|
|
18979
|
-
|
|
18980
|
-
index,
|
|
18981
|
-
item,
|
|
18982
|
-
columns: columns.value,
|
|
18983
|
-
isExpanded,
|
|
18984
|
-
toggleExpand,
|
|
18985
|
-
isSelected,
|
|
18986
|
-
toggleSelect
|
|
18987
|
-
};
|
|
18988
|
-
return vue.createVNode(vue.Fragment, null, [slots.item ? slots.item(slotProps) : vue.createVNode(VDataTableRow, {
|
|
18989
|
-
"key": `item_${item.value}`,
|
|
18990
|
-
"onClick": expandOnClick.value || props['onClick:row'] ? event => {
|
|
18991
|
-
if (expandOnClick.value) {
|
|
18992
|
-
toggleExpand(item);
|
|
18993
|
-
}
|
|
18994
|
-
props['onClick:row']?.(event, {
|
|
18995
|
-
item
|
|
18996
|
-
});
|
|
18997
|
-
} : undefined,
|
|
18998
|
-
"index": index,
|
|
18999
|
-
"item": item
|
|
19000
|
-
}, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
|
|
19001
|
-
})]));
|
|
19057
|
+
}, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
|
|
19058
|
+
})]);
|
|
19059
|
+
});
|
|
19002
19060
|
return {};
|
|
19003
19061
|
}
|
|
19004
19062
|
});
|
|
@@ -19273,7 +19331,8 @@
|
|
|
19273
19331
|
page: page.value,
|
|
19274
19332
|
itemsPerPage: itemsPerPage.value,
|
|
19275
19333
|
sortBy: sortBy.value,
|
|
19276
|
-
groupBy: groupBy.value
|
|
19334
|
+
groupBy: groupBy.value,
|
|
19335
|
+
search: search.value
|
|
19277
19336
|
}));
|
|
19278
19337
|
|
|
19279
19338
|
// Reset page when searching
|
|
@@ -19306,12 +19365,12 @@
|
|
|
19306
19365
|
width: [String, Number],
|
|
19307
19366
|
fixedHeader: Boolean,
|
|
19308
19367
|
fixedFooter: Boolean,
|
|
19309
|
-
'onClick:row': Function
|
|
19368
|
+
'onClick:row': Function,
|
|
19369
|
+
search: String
|
|
19310
19370
|
}, 'v-data-table');
|
|
19311
19371
|
const VDataTable = genericComponent()({
|
|
19312
19372
|
name: 'VDataTable',
|
|
19313
19373
|
props: {
|
|
19314
|
-
search: String,
|
|
19315
19374
|
...makeVDataTableProps(),
|
|
19316
19375
|
...makeDataTableExpandProps(),
|
|
19317
19376
|
...makeDataTableGroupProps(),
|
|
@@ -19526,7 +19585,6 @@
|
|
|
19526
19585
|
const VDataTableVirtual = genericComponent()({
|
|
19527
19586
|
name: 'VDataTableVirtual',
|
|
19528
19587
|
props: {
|
|
19529
|
-
search: String,
|
|
19530
19588
|
...makeVDataTableProps(),
|
|
19531
19589
|
...makeVDataTableProps(),
|
|
19532
19590
|
...makeDataTableGroupProps(),
|
|
@@ -19765,7 +19823,8 @@
|
|
|
19765
19823
|
page,
|
|
19766
19824
|
itemsPerPage,
|
|
19767
19825
|
sortBy,
|
|
19768
|
-
groupBy
|
|
19826
|
+
groupBy,
|
|
19827
|
+
search: vue.toRef(props, 'search')
|
|
19769
19828
|
});
|
|
19770
19829
|
vue.provide('v-data-table', {
|
|
19771
19830
|
toggleSort,
|
|
@@ -19825,6 +19884,7 @@
|
|
|
19825
19884
|
'date-picker': 'list-item, heading, divider, date-picker-options, date-picker-days, actions',
|
|
19826
19885
|
'date-picker-options': 'text, avatar@2',
|
|
19827
19886
|
'date-picker-days': 'avatar@28',
|
|
19887
|
+
divider: 'divider',
|
|
19828
19888
|
heading: 'heading',
|
|
19829
19889
|
image: 'image',
|
|
19830
19890
|
'list-item': 'text',
|
|
@@ -20466,7 +20526,7 @@
|
|
|
20466
20526
|
locale
|
|
20467
20527
|
};
|
|
20468
20528
|
}
|
|
20469
|
-
const version$1 = "3.1.
|
|
20529
|
+
const version$1 = "3.1.15";
|
|
20470
20530
|
createVuetify$1.version = version$1;
|
|
20471
20531
|
|
|
20472
20532
|
// Vue's inject() can only be used in setup
|
|
@@ -20478,7 +20538,7 @@
|
|
|
20478
20538
|
}
|
|
20479
20539
|
}
|
|
20480
20540
|
|
|
20481
|
-
const version = "3.1.
|
|
20541
|
+
const version = "3.1.15";
|
|
20482
20542
|
|
|
20483
20543
|
const createVuetify = function () {
|
|
20484
20544
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|