vuetify 3.3.2 → 3.3.3
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 +8 -8
- package/dist/json/importMap.json +4 -4
- package/dist/json/web-types.json +26 -15
- package/dist/vuetify-labs.css +53 -61
- package/dist/vuetify-labs.d.ts +253 -119
- package/dist/vuetify-labs.esm.js +196 -82
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +195 -81
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +10 -8
- package/dist/vuetify.d.ts +254 -120
- package/dist/vuetify.esm.js +191 -78
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +190 -77
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +780 -771
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +2 -2
- package/lib/blueprints/md1.d.mts +2 -2
- package/lib/blueprints/md2.d.mts +2 -2
- package/lib/blueprints/md3.d.mts +2 -2
- package/lib/components/VAppBar/index.d.mts +24 -8
- package/lib/components/VAutocomplete/VAutocomplete.mjs +16 -11
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.mjs +1 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.mts +24 -8
- package/lib/components/VCard/VCard.mjs +1 -1
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.mts +44 -28
- package/lib/components/VCheckbox/VCheckbox.mjs +8 -1
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +7 -1
- package/lib/components/VChip/VChip.mjs +2 -2
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.mts +48 -32
- package/lib/components/VCombobox/VCombobox.mjs +16 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +56 -24
- package/lib/components/VField/VField.css +1 -0
- package/lib/components/VField/VField.sass +1 -0
- package/lib/components/VIcon/VIcon.mjs +2 -2
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +1 -1
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +24 -8
- package/lib/components/VMenu/VMenu.mjs +29 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +7 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +29 -35
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +15 -10
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +2 -2
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.css +1 -0
- package/lib/components/VTabs/VTabs.sass +1 -0
- package/lib/components/VTabs/index.d.mts +24 -8
- package/lib/components/VTextarea/VTextarea.css +7 -7
- package/lib/components/VTextarea/VTextarea.sass +9 -9
- package/lib/components/index.d.mts +251 -117
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/theme.mjs +1 -1
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/mdi-svg.mjs +35 -35
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/index.d.mts +3 -3
- package/lib/labs/VDataTable/VDataTable.css +4 -14
- package/lib/labs/VDataTable/VDataTable.sass +6 -15
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +2 -2
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/select.mjs +3 -2
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
- package/lib/util/bindProps.mjs +49 -0
- package/lib/util/bindProps.mjs.map +1 -0
- package/lib/util/helpers.mjs +3 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +1 -0
- package/lib/util/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.3.
|
|
2
|
+
* Vuetify v3.3.3
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { reactive, computed, watchEffect, toRefs, capitalize, warn, watch, onScopeDispose, effectScope, ref, unref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, readonly, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives,
|
|
7
|
+
import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, warn, watch, onScopeDispose, effectScope, ref, unref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, readonly, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, Teleport, cloneVNode, createTextVNode, onBeforeUpdate, vModelText, onUpdated, withModifiers } from 'vue';
|
|
8
8
|
|
|
9
9
|
// Types
|
|
10
10
|
// eslint-disable-line vue/prefer-import-from-vue
|
|
@@ -294,6 +294,15 @@ function mergeDeep() {
|
|
|
294
294
|
}
|
|
295
295
|
return out;
|
|
296
296
|
}
|
|
297
|
+
function flattenFragments(nodes) {
|
|
298
|
+
return nodes.map(node => {
|
|
299
|
+
if (node.type === Fragment) {
|
|
300
|
+
return flattenFragments(node.children);
|
|
301
|
+
} else {
|
|
302
|
+
return node;
|
|
303
|
+
}
|
|
304
|
+
}).flat();
|
|
305
|
+
}
|
|
297
306
|
function toKebabCase() {
|
|
298
307
|
let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
299
308
|
if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);
|
|
@@ -373,6 +382,9 @@ function includes(arr, val) {
|
|
|
373
382
|
}
|
|
374
383
|
const onRE = /^on[^a-z]/;
|
|
375
384
|
const isOn = key => onRE.test(key);
|
|
385
|
+
function eventName(propName) {
|
|
386
|
+
return propName[2].toLowerCase() + propName.slice(3);
|
|
387
|
+
}
|
|
376
388
|
const EventProp = () => [Function, Array];
|
|
377
389
|
function hasEvent(props, name) {
|
|
378
390
|
name = 'on' + capitalize(name);
|
|
@@ -571,6 +583,54 @@ function animate(el, keyframes, options) {
|
|
|
571
583
|
return animation;
|
|
572
584
|
}
|
|
573
585
|
|
|
586
|
+
// Utilities
|
|
587
|
+
const handlers = new WeakMap();
|
|
588
|
+
function bindProps(el, props) {
|
|
589
|
+
Object.keys(props).forEach(k => {
|
|
590
|
+
if (isOn(k)) {
|
|
591
|
+
const name = eventName(k);
|
|
592
|
+
const handler = handlers.get(el);
|
|
593
|
+
if (props[k] == null) {
|
|
594
|
+
handler?.forEach(v => {
|
|
595
|
+
const [n, fn] = v;
|
|
596
|
+
if (n === name) {
|
|
597
|
+
el.removeEventListener(name, fn);
|
|
598
|
+
handler.delete(v);
|
|
599
|
+
}
|
|
600
|
+
});
|
|
601
|
+
} else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {
|
|
602
|
+
el.addEventListener(name, props[k]);
|
|
603
|
+
const _handler = handler || new Set();
|
|
604
|
+
_handler.add([name, props[k]]);
|
|
605
|
+
if (!handlers.has(el)) handlers.set(el, _handler);
|
|
606
|
+
}
|
|
607
|
+
} else {
|
|
608
|
+
if (props[k] == null) {
|
|
609
|
+
el.removeAttribute(k);
|
|
610
|
+
} else {
|
|
611
|
+
el.setAttribute(k, props[k]);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
});
|
|
615
|
+
}
|
|
616
|
+
function unbindProps(el, props) {
|
|
617
|
+
Object.keys(props).forEach(k => {
|
|
618
|
+
if (isOn(k)) {
|
|
619
|
+
const name = eventName(k);
|
|
620
|
+
const handler = handlers.get(el);
|
|
621
|
+
handler?.forEach(v => {
|
|
622
|
+
const [n, fn] = v;
|
|
623
|
+
if (n === name) {
|
|
624
|
+
el.removeEventListener(name, fn);
|
|
625
|
+
handler.delete(v);
|
|
626
|
+
}
|
|
627
|
+
});
|
|
628
|
+
} else {
|
|
629
|
+
el.removeAttribute(k);
|
|
630
|
+
}
|
|
631
|
+
});
|
|
632
|
+
}
|
|
633
|
+
|
|
574
634
|
/* eslint-disable no-console */
|
|
575
635
|
|
|
576
636
|
function consoleWarn(message) {
|
|
@@ -2158,6 +2218,7 @@ function createTheme(options) {
|
|
|
2158
2218
|
};
|
|
2159
2219
|
}
|
|
2160
2220
|
function install(app) {
|
|
2221
|
+
if (parsedOptions.isDisabled) return;
|
|
2161
2222
|
const head = app._context.provides.usehead;
|
|
2162
2223
|
if (head) {
|
|
2163
2224
|
if (head.push) {
|
|
@@ -2179,7 +2240,6 @@ function createTheme(options) {
|
|
|
2179
2240
|
immediate: true
|
|
2180
2241
|
});
|
|
2181
2242
|
function updateStyles() {
|
|
2182
|
-
if (parsedOptions.isDisabled) return;
|
|
2183
2243
|
if (typeof document !== 'undefined' && !styleEl) {
|
|
2184
2244
|
const el = document.createElement('style');
|
|
2185
2245
|
el.type = 'text/css';
|
|
@@ -4266,7 +4326,7 @@ const VIcon = genericComponent()({
|
|
|
4266
4326
|
useRender(() => {
|
|
4267
4327
|
const slotValue = slots.default?.();
|
|
4268
4328
|
if (slotValue) {
|
|
4269
|
-
slotIcon.value = slotValue.filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4329
|
+
slotIcon.value = flattenFragments(slotValue).filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4270
4330
|
}
|
|
4271
4331
|
return createVNode(iconData.value.component, {
|
|
4272
4332
|
"tag": props.tag,
|
|
@@ -5103,7 +5163,7 @@ const makeVBtnProps = propsFactory({
|
|
|
5103
5163
|
block: Boolean,
|
|
5104
5164
|
stacked: Boolean,
|
|
5105
5165
|
ripple: {
|
|
5106
|
-
type: Boolean,
|
|
5166
|
+
type: [Boolean, Object],
|
|
5107
5167
|
default: true
|
|
5108
5168
|
},
|
|
5109
5169
|
text: String,
|
|
@@ -6386,6 +6446,7 @@ const VCheckbox = genericComponent()({
|
|
|
6386
6446
|
inheritAttrs: false,
|
|
6387
6447
|
props: makeVCheckboxProps(),
|
|
6388
6448
|
emits: {
|
|
6449
|
+
'update:modelValue': value => true,
|
|
6389
6450
|
'update:focused': focused => true
|
|
6390
6451
|
},
|
|
6391
6452
|
setup(props, _ref) {
|
|
@@ -6393,6 +6454,7 @@ const VCheckbox = genericComponent()({
|
|
|
6393
6454
|
attrs,
|
|
6394
6455
|
slots
|
|
6395
6456
|
} = _ref;
|
|
6457
|
+
const model = useProxiedModel(props, 'modelValue');
|
|
6396
6458
|
const {
|
|
6397
6459
|
isFocused,
|
|
6398
6460
|
focus,
|
|
@@ -6407,6 +6469,8 @@ const VCheckbox = genericComponent()({
|
|
|
6407
6469
|
return createVNode(VInput, mergeProps({
|
|
6408
6470
|
"class": ['v-checkbox', props.class]
|
|
6409
6471
|
}, inputAttrs, inputProps, {
|
|
6472
|
+
"modelValue": model.value,
|
|
6473
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
6410
6474
|
"id": id.value,
|
|
6411
6475
|
"focused": isFocused.value,
|
|
6412
6476
|
"style": props.style
|
|
@@ -6425,6 +6489,8 @@ const VCheckbox = genericComponent()({
|
|
|
6425
6489
|
"disabled": isDisabled.value,
|
|
6426
6490
|
"readonly": isReadonly.value
|
|
6427
6491
|
}, controlAttrs, {
|
|
6492
|
+
"modelValue": model.value,
|
|
6493
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
6428
6494
|
"onFocus": focus,
|
|
6429
6495
|
"onBlur": blur
|
|
6430
6496
|
}), slots);
|
|
@@ -6562,6 +6628,8 @@ const VChipGroup = genericComponent()({
|
|
|
6562
6628
|
}
|
|
6563
6629
|
});
|
|
6564
6630
|
|
|
6631
|
+
// Types
|
|
6632
|
+
|
|
6565
6633
|
const makeVChipProps = propsFactory({
|
|
6566
6634
|
activeClass: String,
|
|
6567
6635
|
appendAvatar: String,
|
|
@@ -6590,7 +6658,7 @@ const makeVChipProps = propsFactory({
|
|
|
6590
6658
|
prependAvatar: String,
|
|
6591
6659
|
prependIcon: IconValue,
|
|
6592
6660
|
ripple: {
|
|
6593
|
-
type: Boolean,
|
|
6661
|
+
type: [Boolean, Object],
|
|
6594
6662
|
default: true
|
|
6595
6663
|
},
|
|
6596
6664
|
text: String,
|
|
@@ -7406,7 +7474,7 @@ const makeVListItemProps = propsFactory({
|
|
|
7406
7474
|
prependAvatar: String,
|
|
7407
7475
|
prependIcon: IconValue,
|
|
7408
7476
|
ripple: {
|
|
7409
|
-
type: Boolean,
|
|
7477
|
+
type: [Boolean, Object],
|
|
7410
7478
|
default: true
|
|
7411
7479
|
},
|
|
7412
7480
|
subtitle: [String, Number, Boolean],
|
|
@@ -8779,29 +8847,29 @@ function useActivator(props, _ref) {
|
|
|
8779
8847
|
}
|
|
8780
8848
|
});
|
|
8781
8849
|
const availableEvents = {
|
|
8782
|
-
|
|
8850
|
+
onClick: e => {
|
|
8783
8851
|
e.stopPropagation();
|
|
8784
8852
|
activatorEl.value = e.currentTarget || e.target;
|
|
8785
8853
|
isActive.value = !isActive.value;
|
|
8786
8854
|
},
|
|
8787
|
-
|
|
8855
|
+
onMouseenter: e => {
|
|
8788
8856
|
if (e.sourceCapabilities?.firesTouchEvents) return;
|
|
8789
8857
|
isHovered = true;
|
|
8790
8858
|
activatorEl.value = e.currentTarget || e.target;
|
|
8791
8859
|
runOpenDelay();
|
|
8792
8860
|
},
|
|
8793
|
-
|
|
8861
|
+
onMouseleave: e => {
|
|
8794
8862
|
isHovered = false;
|
|
8795
8863
|
runCloseDelay();
|
|
8796
8864
|
},
|
|
8797
|
-
|
|
8865
|
+
onFocus: e => {
|
|
8798
8866
|
if (SUPPORTS_FOCUS_VISIBLE && !e.target.matches(':focus-visible')) return;
|
|
8799
8867
|
isFocused = true;
|
|
8800
8868
|
e.stopPropagation();
|
|
8801
8869
|
activatorEl.value = e.currentTarget || e.target;
|
|
8802
8870
|
runOpenDelay();
|
|
8803
8871
|
},
|
|
8804
|
-
|
|
8872
|
+
onBlur: e => {
|
|
8805
8873
|
isFocused = false;
|
|
8806
8874
|
e.stopPropagation();
|
|
8807
8875
|
runCloseDelay();
|
|
@@ -8810,33 +8878,43 @@ function useActivator(props, _ref) {
|
|
|
8810
8878
|
const activatorEvents = computed(() => {
|
|
8811
8879
|
const events = {};
|
|
8812
8880
|
if (openOnClick.value) {
|
|
8813
|
-
events.
|
|
8881
|
+
events.onClick = availableEvents.onClick;
|
|
8814
8882
|
}
|
|
8815
8883
|
if (props.openOnHover) {
|
|
8816
|
-
events.
|
|
8817
|
-
events.
|
|
8884
|
+
events.onMouseenter = availableEvents.onMouseenter;
|
|
8885
|
+
events.onMouseleave = availableEvents.onMouseleave;
|
|
8818
8886
|
}
|
|
8819
8887
|
if (openOnFocus.value) {
|
|
8820
|
-
events.
|
|
8821
|
-
events.
|
|
8888
|
+
events.onFocus = availableEvents.onFocus;
|
|
8889
|
+
events.onBlur = availableEvents.onBlur;
|
|
8822
8890
|
}
|
|
8823
8891
|
return events;
|
|
8824
8892
|
});
|
|
8825
8893
|
const contentEvents = computed(() => {
|
|
8826
8894
|
const events = {};
|
|
8827
8895
|
if (props.openOnHover) {
|
|
8828
|
-
events.
|
|
8896
|
+
events.onMouseenter = () => {
|
|
8829
8897
|
isHovered = true;
|
|
8830
8898
|
runOpenDelay();
|
|
8831
8899
|
};
|
|
8832
|
-
events.
|
|
8900
|
+
events.onMouseleave = () => {
|
|
8833
8901
|
isHovered = false;
|
|
8834
8902
|
runCloseDelay();
|
|
8835
8903
|
};
|
|
8836
8904
|
}
|
|
8905
|
+
if (openOnFocus.value) {
|
|
8906
|
+
events.onFocusin = () => {
|
|
8907
|
+
isFocused = true;
|
|
8908
|
+
runOpenDelay();
|
|
8909
|
+
};
|
|
8910
|
+
events.onFocusout = () => {
|
|
8911
|
+
isFocused = false;
|
|
8912
|
+
runCloseDelay();
|
|
8913
|
+
};
|
|
8914
|
+
}
|
|
8837
8915
|
if (props.closeOnContentClick) {
|
|
8838
8916
|
const menu = inject$1(VMenuSymbol, null);
|
|
8839
|
-
events.
|
|
8917
|
+
events.onClick = () => {
|
|
8840
8918
|
isActive.value = false;
|
|
8841
8919
|
menu?.closeParents();
|
|
8842
8920
|
};
|
|
@@ -8846,14 +8924,14 @@ function useActivator(props, _ref) {
|
|
|
8846
8924
|
const scrimEvents = computed(() => {
|
|
8847
8925
|
const events = {};
|
|
8848
8926
|
if (props.openOnHover) {
|
|
8849
|
-
events.
|
|
8927
|
+
events.onMouseenter = () => {
|
|
8850
8928
|
if (firstEnter) {
|
|
8851
8929
|
isHovered = true;
|
|
8852
8930
|
firstEnter = false;
|
|
8853
8931
|
runOpenDelay();
|
|
8854
8932
|
}
|
|
8855
8933
|
};
|
|
8856
|
-
events.
|
|
8934
|
+
events.onMouseleave = () => {
|
|
8857
8935
|
isHovered = false;
|
|
8858
8936
|
runCloseDelay();
|
|
8859
8937
|
};
|
|
@@ -8927,29 +9005,13 @@ function _useActivator(props, vm, _ref2) {
|
|
|
8927
9005
|
let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();
|
|
8928
9006
|
let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
|
|
8929
9007
|
if (!el) return;
|
|
8930
|
-
|
|
8931
|
-
let [name, cb] = _ref3;
|
|
8932
|
-
el.addEventListener(name, cb);
|
|
8933
|
-
});
|
|
8934
|
-
Object.keys(_props).forEach(k => {
|
|
8935
|
-
if (_props[k] == null) {
|
|
8936
|
-
el.removeAttribute(k);
|
|
8937
|
-
} else {
|
|
8938
|
-
el.setAttribute(k, _props[k]);
|
|
8939
|
-
}
|
|
8940
|
-
});
|
|
9008
|
+
bindProps(el, mergeProps(activatorEvents.value, _props));
|
|
8941
9009
|
}
|
|
8942
9010
|
function unbindActivatorProps() {
|
|
8943
9011
|
let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();
|
|
8944
9012
|
let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
|
|
8945
9013
|
if (!el) return;
|
|
8946
|
-
|
|
8947
|
-
let [name, cb] = _ref4;
|
|
8948
|
-
el.removeEventListener(name, cb);
|
|
8949
|
-
});
|
|
8950
|
-
Object.keys(_props).forEach(k => {
|
|
8951
|
-
el.removeAttribute(k);
|
|
8952
|
-
});
|
|
9014
|
+
unbindProps(el, mergeProps(activatorEvents.value, _props));
|
|
8953
9015
|
}
|
|
8954
9016
|
function getActivator() {
|
|
8955
9017
|
let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;
|
|
@@ -9476,6 +9538,9 @@ const VOverlay = genericComponent()({
|
|
|
9476
9538
|
if (e.key === 'Escape' && globalTop.value) {
|
|
9477
9539
|
if (!props.persistent) {
|
|
9478
9540
|
isActive.value = false;
|
|
9541
|
+
if (contentEl.value?.contains(document.activeElement)) {
|
|
9542
|
+
activatorEl.value?.focus();
|
|
9543
|
+
}
|
|
9479
9544
|
} else animateClick();
|
|
9480
9545
|
}
|
|
9481
9546
|
}
|
|
@@ -9518,7 +9583,7 @@ const VOverlay = genericComponent()({
|
|
|
9518
9583
|
isActive: isActive.value,
|
|
9519
9584
|
props: mergeProps({
|
|
9520
9585
|
ref: activatorRef
|
|
9521
|
-
},
|
|
9586
|
+
}, activatorEvents.value, props.activatorProps)
|
|
9522
9587
|
}), isMounted.value && createVNode(Teleport, {
|
|
9523
9588
|
"disabled": !teleportTarget.value,
|
|
9524
9589
|
"to": teleportTarget.value
|
|
@@ -9536,7 +9601,7 @@ const VOverlay = genericComponent()({
|
|
|
9536
9601
|
}, scopeId, attrs), [createVNode(Scrim, mergeProps({
|
|
9537
9602
|
"color": scrimColor,
|
|
9538
9603
|
"modelValue": isActive.value && !!props.scrim
|
|
9539
|
-
},
|
|
9604
|
+
}, scrimEvents.value), null), createVNode(MaybeTransition, {
|
|
9540
9605
|
"appear": true,
|
|
9541
9606
|
"persisted": true,
|
|
9542
9607
|
"transition": props.transition,
|
|
@@ -9550,7 +9615,7 @@ const VOverlay = genericComponent()({
|
|
|
9550
9615
|
"ref": contentEl,
|
|
9551
9616
|
"class": ['v-overlay__content', props.contentClass],
|
|
9552
9617
|
"style": [dimensionStyles.value, contentStyles.value]
|
|
9553
|
-
},
|
|
9618
|
+
}, contentEvents.value, props.contentProps), [slots.default?.({
|
|
9554
9619
|
isActive
|
|
9555
9620
|
})]), [[vShow, isActive.value], [resolveDirective("click-outside"), {
|
|
9556
9621
|
handler: onClickOutside,
|
|
@@ -9710,10 +9775,35 @@ const VMenu = genericComponent()({
|
|
|
9710
9775
|
function onClickOutside() {
|
|
9711
9776
|
parent?.closeParents();
|
|
9712
9777
|
}
|
|
9778
|
+
function onKeydown(e) {
|
|
9779
|
+
if (props.disabled) return;
|
|
9780
|
+
if (e.key === 'Tab') {
|
|
9781
|
+
isActive.value = false;
|
|
9782
|
+
overlay.value?.activatorEl?.focus();
|
|
9783
|
+
}
|
|
9784
|
+
}
|
|
9785
|
+
function onActivatorKeydown(e) {
|
|
9786
|
+
if (props.disabled) return;
|
|
9787
|
+
const el = overlay.value?.contentEl;
|
|
9788
|
+
if (el && isActive.value) {
|
|
9789
|
+
if (e.key === 'ArrowDown') {
|
|
9790
|
+
e.preventDefault();
|
|
9791
|
+
focusChild(el, 'next');
|
|
9792
|
+
} else if (e.key === 'ArrowUp') {
|
|
9793
|
+
e.preventDefault();
|
|
9794
|
+
focusChild(el, 'prev');
|
|
9795
|
+
}
|
|
9796
|
+
} else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {
|
|
9797
|
+
isActive.value = true;
|
|
9798
|
+
e.preventDefault();
|
|
9799
|
+
setTimeout(() => setTimeout(() => onActivatorKeydown(e)));
|
|
9800
|
+
}
|
|
9801
|
+
}
|
|
9713
9802
|
const activatorProps = computed(() => mergeProps({
|
|
9714
9803
|
'aria-haspopup': 'menu',
|
|
9715
9804
|
'aria-expanded': String(isActive.value),
|
|
9716
|
-
'aria-owns': id.value
|
|
9805
|
+
'aria-owns': id.value,
|
|
9806
|
+
onKeydown: onActivatorKeydown
|
|
9717
9807
|
}, props.activatorProps));
|
|
9718
9808
|
useRender(() => {
|
|
9719
9809
|
const [overlayProps] = VOverlay.filterProps(props);
|
|
@@ -9726,7 +9816,8 @@ const VMenu = genericComponent()({
|
|
|
9726
9816
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
9727
9817
|
"absolute": true,
|
|
9728
9818
|
"activatorProps": activatorProps.value,
|
|
9729
|
-
"onClick:outside": onClickOutside
|
|
9819
|
+
"onClick:outside": onClickOutside,
|
|
9820
|
+
"onKeydown": onKeydown
|
|
9730
9821
|
}, scopeId), {
|
|
9731
9822
|
activator: slots.activator,
|
|
9732
9823
|
default: function () {
|
|
@@ -10370,6 +10461,7 @@ const VSelect = genericComponent()({
|
|
|
10370
10461
|
}
|
|
10371
10462
|
return items.value;
|
|
10372
10463
|
});
|
|
10464
|
+
const menuDisabled = computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
|
|
10373
10465
|
const listRef = ref();
|
|
10374
10466
|
function onClear(e) {
|
|
10375
10467
|
if (props.openOnClear) {
|
|
@@ -10377,7 +10469,7 @@ const VSelect = genericComponent()({
|
|
|
10377
10469
|
}
|
|
10378
10470
|
}
|
|
10379
10471
|
function onMousedownControl() {
|
|
10380
|
-
if (
|
|
10472
|
+
if (menuDisabled.value) return;
|
|
10381
10473
|
menu.value = !menu.value;
|
|
10382
10474
|
}
|
|
10383
10475
|
function onKeydown(e) {
|
|
@@ -10391,11 +10483,7 @@ const VSelect = genericComponent()({
|
|
|
10391
10483
|
if (['Escape', 'Tab'].includes(e.key)) {
|
|
10392
10484
|
menu.value = false;
|
|
10393
10485
|
}
|
|
10394
|
-
if (e.key === '
|
|
10395
|
-
listRef.value?.focus('next');
|
|
10396
|
-
} else if (e.key === 'ArrowUp') {
|
|
10397
|
-
listRef.value?.focus('prev');
|
|
10398
|
-
} else if (e.key === 'Home') {
|
|
10486
|
+
if (e.key === 'Home') {
|
|
10399
10487
|
listRef.value?.focus('first');
|
|
10400
10488
|
} else if (e.key === 'End') {
|
|
10401
10489
|
listRef.value?.focus('last');
|
|
@@ -10421,6 +10509,11 @@ const VSelect = genericComponent()({
|
|
|
10421
10509
|
model.value = [item];
|
|
10422
10510
|
}
|
|
10423
10511
|
}
|
|
10512
|
+
function onListKeydown(e) {
|
|
10513
|
+
if (e.key === 'Tab') {
|
|
10514
|
+
vTextFieldRef.value?.focus();
|
|
10515
|
+
}
|
|
10516
|
+
}
|
|
10424
10517
|
function select(item) {
|
|
10425
10518
|
if (props.multiple) {
|
|
10426
10519
|
const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
|
|
@@ -10451,7 +10544,7 @@ const VSelect = genericComponent()({
|
|
|
10451
10544
|
}
|
|
10452
10545
|
useRender(() => {
|
|
10453
10546
|
const hasChips = !!(props.chips || slots.chip);
|
|
10454
|
-
const hasList = !!(!props.hideNoData || displayItems.value.length || slots
|
|
10547
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
10455
10548
|
const isDirty = model.value.length > 0;
|
|
10456
10549
|
const [textFieldProps] = VTextField.filterProps(props);
|
|
10457
10550
|
const placeholder = isDirty || !isFocused.value && props.label && !props.persistentPlaceholder ? undefined : props.placeholder;
|
|
@@ -10488,6 +10581,7 @@ const VSelect = genericComponent()({
|
|
|
10488
10581
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
10489
10582
|
"activator": "parent",
|
|
10490
10583
|
"contentClass": "v-select__content",
|
|
10584
|
+
"disabled": menuDisabled.value,
|
|
10491
10585
|
"eager": props.eager,
|
|
10492
10586
|
"maxHeight": 310,
|
|
10493
10587
|
"openOnClick": false,
|
|
@@ -10500,11 +10594,13 @@ const VSelect = genericComponent()({
|
|
|
10500
10594
|
"selected": selected.value,
|
|
10501
10595
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
10502
10596
|
"onMousedown": e => e.preventDefault(),
|
|
10503
|
-
"
|
|
10597
|
+
"onKeydown": onListKeydown,
|
|
10598
|
+
"onFocusin": onFocusin,
|
|
10599
|
+
"tabindex": "-1"
|
|
10504
10600
|
}, {
|
|
10505
|
-
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
10601
|
+
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
10506
10602
|
"title": t(props.noDataText)
|
|
10507
|
-
}, null)),
|
|
10603
|
+
}, null)), displayItems.value.map((item, index) => {
|
|
10508
10604
|
const itemProps = mergeProps(item.props, {
|
|
10509
10605
|
key: index,
|
|
10510
10606
|
onClick: () => select(item)
|
|
@@ -10796,6 +10892,7 @@ const VAutocomplete = genericComponent()({
|
|
|
10796
10892
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
10797
10893
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
10798
10894
|
});
|
|
10895
|
+
const menuDisabled = computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
|
|
10799
10896
|
const listRef = ref();
|
|
10800
10897
|
function onClear(e) {
|
|
10801
10898
|
if (props.openOnClear) {
|
|
@@ -10804,10 +10901,11 @@ const VAutocomplete = genericComponent()({
|
|
|
10804
10901
|
search.value = '';
|
|
10805
10902
|
}
|
|
10806
10903
|
function onMousedownControl() {
|
|
10807
|
-
if (
|
|
10904
|
+
if (menuDisabled.value) return;
|
|
10808
10905
|
menu.value = true;
|
|
10809
10906
|
}
|
|
10810
10907
|
function onMousedownMenuIcon(e) {
|
|
10908
|
+
if (menuDisabled.value) return;
|
|
10811
10909
|
if (isFocused.value) {
|
|
10812
10910
|
e.preventDefault();
|
|
10813
10911
|
e.stopPropagation();
|
|
@@ -10833,13 +10931,8 @@ const VAutocomplete = genericComponent()({
|
|
|
10833
10931
|
}
|
|
10834
10932
|
isPristine.value = true;
|
|
10835
10933
|
}
|
|
10836
|
-
if (e.key === 'ArrowDown') {
|
|
10934
|
+
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
10837
10935
|
listRef.value?.focus('next');
|
|
10838
|
-
if (highlightFirst.value) {
|
|
10839
|
-
listRef.value?.focus('next');
|
|
10840
|
-
}
|
|
10841
|
-
} else if (e.key === 'ArrowUp') {
|
|
10842
|
-
listRef.value?.focus('prev');
|
|
10843
10936
|
}
|
|
10844
10937
|
if (!props.multiple) return;
|
|
10845
10938
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
@@ -10874,6 +10967,11 @@ const VAutocomplete = genericComponent()({
|
|
|
10874
10967
|
}
|
|
10875
10968
|
}
|
|
10876
10969
|
}
|
|
10970
|
+
function onListKeydown(e) {
|
|
10971
|
+
if (e.key === 'Tab') {
|
|
10972
|
+
vTextFieldRef.value?.focus();
|
|
10973
|
+
}
|
|
10974
|
+
}
|
|
10877
10975
|
function onInput(e) {
|
|
10878
10976
|
search.value = e.target.value;
|
|
10879
10977
|
}
|
|
@@ -10943,7 +11041,7 @@ const VAutocomplete = genericComponent()({
|
|
|
10943
11041
|
});
|
|
10944
11042
|
useRender(() => {
|
|
10945
11043
|
const hasChips = !!(props.chips || slots.chip);
|
|
10946
|
-
const hasList = !!(!props.hideNoData || displayItems.value.length || slots
|
|
11044
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
10947
11045
|
const isDirty = model.value.length > 0;
|
|
10948
11046
|
const [textFieldProps] = VTextField.filterProps(props);
|
|
10949
11047
|
return createVNode(VTextField, mergeProps({
|
|
@@ -10976,6 +11074,7 @@ const VAutocomplete = genericComponent()({
|
|
|
10976
11074
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
10977
11075
|
"activator": "parent",
|
|
10978
11076
|
"contentClass": "v-autocomplete__content",
|
|
11077
|
+
"disabled": menuDisabled.value,
|
|
10979
11078
|
"eager": props.eager,
|
|
10980
11079
|
"maxHeight": 310,
|
|
10981
11080
|
"openOnClick": false,
|
|
@@ -10988,12 +11087,14 @@ const VAutocomplete = genericComponent()({
|
|
|
10988
11087
|
"selected": selected.value,
|
|
10989
11088
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
10990
11089
|
"onMousedown": e => e.preventDefault(),
|
|
11090
|
+
"onKeydown": onListKeydown,
|
|
10991
11091
|
"onFocusin": onFocusin,
|
|
10992
|
-
"onFocusout": onFocusout
|
|
11092
|
+
"onFocusout": onFocusout,
|
|
11093
|
+
"tabindex": "-1"
|
|
10993
11094
|
}, {
|
|
10994
|
-
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
11095
|
+
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
10995
11096
|
"title": t(props.noDataText)
|
|
10996
|
-
}, null)),
|
|
11097
|
+
}, null)), displayItems.value.map((item, index) => {
|
|
10997
11098
|
const itemProps = mergeProps(item.props, {
|
|
10998
11099
|
key: index,
|
|
10999
11100
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
|
@@ -11743,7 +11844,7 @@ const makeVCardProps = propsFactory({
|
|
|
11743
11844
|
prependAvatar: String,
|
|
11744
11845
|
prependIcon: IconValue,
|
|
11745
11846
|
ripple: {
|
|
11746
|
-
type: Boolean,
|
|
11847
|
+
type: [Boolean, Object],
|
|
11747
11848
|
default: true
|
|
11748
11849
|
},
|
|
11749
11850
|
subtitle: String,
|
|
@@ -13148,6 +13249,8 @@ const useSlider = _ref => {
|
|
|
13148
13249
|
return data;
|
|
13149
13250
|
};
|
|
13150
13251
|
|
|
13252
|
+
// Types
|
|
13253
|
+
|
|
13151
13254
|
const makeVSliderThumbProps = propsFactory({
|
|
13152
13255
|
focused: Boolean,
|
|
13153
13256
|
max: {
|
|
@@ -13167,7 +13270,7 @@ const makeVSliderThumbProps = propsFactory({
|
|
|
13167
13270
|
required: true
|
|
13168
13271
|
},
|
|
13169
13272
|
ripple: {
|
|
13170
|
-
type: Boolean,
|
|
13273
|
+
type: [Boolean, Object],
|
|
13171
13274
|
default: true
|
|
13172
13275
|
},
|
|
13173
13276
|
...makeComponentProps()
|
|
@@ -14326,6 +14429,7 @@ const VCombobox = genericComponent()({
|
|
|
14326
14429
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
14327
14430
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
14328
14431
|
});
|
|
14432
|
+
const menuDisabled = computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
|
|
14329
14433
|
const listRef = ref();
|
|
14330
14434
|
function onClear(e) {
|
|
14331
14435
|
cleared = true;
|
|
@@ -14334,10 +14438,11 @@ const VCombobox = genericComponent()({
|
|
|
14334
14438
|
}
|
|
14335
14439
|
}
|
|
14336
14440
|
function onMousedownControl() {
|
|
14337
|
-
if (
|
|
14441
|
+
if (menuDisabled.value) return;
|
|
14338
14442
|
menu.value = true;
|
|
14339
14443
|
}
|
|
14340
14444
|
function onMousedownMenuIcon(e) {
|
|
14445
|
+
if (menuDisabled.value) return;
|
|
14341
14446
|
if (isFocused.value) {
|
|
14342
14447
|
e.preventDefault();
|
|
14343
14448
|
e.stopPropagation();
|
|
@@ -14363,10 +14468,8 @@ const VCombobox = genericComponent()({
|
|
|
14363
14468
|
}
|
|
14364
14469
|
isPristine.value = true;
|
|
14365
14470
|
}
|
|
14366
|
-
if (e.key === 'ArrowDown') {
|
|
14471
|
+
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
14367
14472
|
listRef.value?.focus('next');
|
|
14368
|
-
} else if (e.key === 'ArrowUp') {
|
|
14369
|
-
listRef.value?.focus('prev');
|
|
14370
14473
|
}
|
|
14371
14474
|
if (!props.multiple) return;
|
|
14372
14475
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
@@ -14405,6 +14508,11 @@ const VCombobox = genericComponent()({
|
|
|
14405
14508
|
search.value = '';
|
|
14406
14509
|
}
|
|
14407
14510
|
}
|
|
14511
|
+
function onListKeydown(e) {
|
|
14512
|
+
if (e.key === 'Tab') {
|
|
14513
|
+
vTextFieldRef.value?.focus();
|
|
14514
|
+
}
|
|
14515
|
+
}
|
|
14408
14516
|
function onAfterLeave() {
|
|
14409
14517
|
if (isFocused.value) {
|
|
14410
14518
|
isPristine.value = true;
|
|
@@ -14466,7 +14574,7 @@ const VCombobox = genericComponent()({
|
|
|
14466
14574
|
});
|
|
14467
14575
|
useRender(() => {
|
|
14468
14576
|
const hasChips = !!(props.chips || slots.chip);
|
|
14469
|
-
const hasList = !!(!props.hideNoData || displayItems.value.length || slots
|
|
14577
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
14470
14578
|
const isDirty = model.value.length > 0;
|
|
14471
14579
|
const [textFieldProps] = VTextField.filterProps(props);
|
|
14472
14580
|
return createVNode(VTextField, mergeProps({
|
|
@@ -14499,6 +14607,7 @@ const VCombobox = genericComponent()({
|
|
|
14499
14607
|
"onUpdate:modelValue": $event => menu.value = $event,
|
|
14500
14608
|
"activator": "parent",
|
|
14501
14609
|
"contentClass": "v-combobox__content",
|
|
14610
|
+
"disabled": menuDisabled.value,
|
|
14502
14611
|
"eager": props.eager,
|
|
14503
14612
|
"maxHeight": 310,
|
|
14504
14613
|
"openOnClick": false,
|
|
@@ -14511,12 +14620,14 @@ const VCombobox = genericComponent()({
|
|
|
14511
14620
|
"selected": selected.value,
|
|
14512
14621
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
14513
14622
|
"onMousedown": e => e.preventDefault(),
|
|
14623
|
+
"onKeydown": onListKeydown,
|
|
14514
14624
|
"onFocusin": onFocusin,
|
|
14515
|
-
"onFocusout": onFocusout
|
|
14625
|
+
"onFocusout": onFocusout,
|
|
14626
|
+
"tabindex": "-1"
|
|
14516
14627
|
}, {
|
|
14517
|
-
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
14628
|
+
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
14518
14629
|
"title": t(props.noDataText)
|
|
14519
|
-
}, null)),
|
|
14630
|
+
}, null)), displayItems.value.map((item, index) => {
|
|
14520
14631
|
const itemProps = mergeProps(item.props, {
|
|
14521
14632
|
key: index,
|
|
14522
14633
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
|
@@ -14808,6 +14919,8 @@ const VExpansionPanelText = genericComponent()({
|
|
|
14808
14919
|
}
|
|
14809
14920
|
});
|
|
14810
14921
|
|
|
14922
|
+
// Types
|
|
14923
|
+
|
|
14811
14924
|
const makeVExpansionPanelTitleProps = propsFactory({
|
|
14812
14925
|
color: String,
|
|
14813
14926
|
expandIcon: {
|
|
@@ -19503,9 +19616,10 @@ const singleSelectStrategy = {
|
|
|
19503
19616
|
allSelected: () => [],
|
|
19504
19617
|
select: _ref => {
|
|
19505
19618
|
let {
|
|
19506
|
-
items
|
|
19619
|
+
items,
|
|
19620
|
+
value
|
|
19507
19621
|
} = _ref;
|
|
19508
|
-
return new Set([items[0]?.value]);
|
|
19622
|
+
return new Set(value ? [items[0]?.value] : []);
|
|
19509
19623
|
},
|
|
19510
19624
|
selectAll: _ref2 => {
|
|
19511
19625
|
let {
|
|
@@ -20393,11 +20507,11 @@ const VDataTableHeaders = genericComponent()({
|
|
|
20393
20507
|
"x": x,
|
|
20394
20508
|
"y": y
|
|
20395
20509
|
}, null))])), props.loading && createVNode("tr", {
|
|
20396
|
-
"class": "v-data-
|
|
20510
|
+
"class": "v-data-table-progress"
|
|
20397
20511
|
}, [createVNode("th", {
|
|
20398
20512
|
"colspan": columns.value.length
|
|
20399
20513
|
}, [createVNode(LoaderSlot, {
|
|
20400
|
-
"name": "v-data-table-
|
|
20514
|
+
"name": "v-data-table-progress",
|
|
20401
20515
|
"active": true,
|
|
20402
20516
|
"color": typeof props.loading === 'boolean' ? undefined : props.loading,
|
|
20403
20517
|
"indeterminate": true
|
|
@@ -22389,7 +22503,7 @@ function createVuetify$1() {
|
|
|
22389
22503
|
date
|
|
22390
22504
|
};
|
|
22391
22505
|
}
|
|
22392
|
-
const version$1 = "3.3.
|
|
22506
|
+
const version$1 = "3.3.3";
|
|
22393
22507
|
createVuetify$1.version = version$1;
|
|
22394
22508
|
|
|
22395
22509
|
// Vue's inject() can only be used in setup
|
|
@@ -22403,7 +22517,7 @@ function inject(key) {
|
|
|
22403
22517
|
|
|
22404
22518
|
/* eslint-disable local-rules/sort-imports */
|
|
22405
22519
|
|
|
22406
|
-
const version = "3.3.
|
|
22520
|
+
const version = "3.3.3";
|
|
22407
22521
|
|
|
22408
22522
|
/* eslint-disable local-rules/sort-imports */
|
|
22409
22523
|
|