vuetify 3.7.10 → 3.7.12
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 +3092 -3104
- package/dist/json/importMap-labs.json +28 -28
- package/dist/json/importMap.json +168 -168
- package/dist/json/tags.json +0 -3
- package/dist/json/web-types.json +6174 -6201
- package/dist/vuetify-labs.css +4937 -4936
- package/dist/vuetify-labs.d.ts +90 -165
- package/dist/vuetify-labs.esm.js +138 -110
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +137 -109
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +5080 -5079
- package/dist/vuetify.d.ts +131 -191
- package/dist/vuetify.esm.js +123 -104
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +122 -103
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +935 -923
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -12
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +25 -47
- package/lib/components/VCombobox/VCombobox.mjs +4 -14
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +25 -47
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +2 -2
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +12 -24
- package/lib/components/VList/VList.mjs +1 -4
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +7 -16
- package/lib/components/VOverlay/VOverlay.css +2 -1
- package/lib/components/VOverlay/VOverlay.sass +2 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VSelect/VSelect.mjs +5 -9
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +25 -47
- package/lib/components/VSlider/slider.mjs +25 -12
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/index.d.mts +73 -133
- package/lib/composables/calendar.mjs.map +1 -1
- package/lib/composables/list-items.mjs +70 -17
- package/lib/composables/list-items.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +6 -7
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/directives/ripple/index.mjs +7 -5
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +58 -58
- package/lib/labs/VDateInput/VDateInput.mjs +17 -7
- package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
- package/lib/labs/VDateInput/index.d.mts +11 -17
- package/lib/labs/VTreeview/index.d.mts +7 -16
- package/lib/labs/components.d.mts +18 -33
- package/lib/util/helpers.mjs +3 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
- package/lib/composables/mousedown.mjs +0 -30
- package/lib/composables/mousedown.mjs.map +0 -1
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.7.
|
|
2
|
+
* Vuetify v3.7.12
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -504,6 +504,9 @@
|
|
|
504
504
|
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
|
505
505
|
return isPrintableChar && noModifier;
|
|
506
506
|
}
|
|
507
|
+
function isPrimitive(value) {
|
|
508
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';
|
|
509
|
+
}
|
|
507
510
|
|
|
508
511
|
// Utilities
|
|
509
512
|
const block = ['top', 'bottom'];
|
|
@@ -5582,11 +5585,13 @@
|
|
|
5582
5585
|
animation.classList.add('v-ripple__animation--visible');
|
|
5583
5586
|
transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
|
5584
5587
|
animation.dataset.activated = String(performance.now());
|
|
5585
|
-
|
|
5586
|
-
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
|
|
5588
|
+
requestAnimationFrame(() => {
|
|
5589
|
+
requestAnimationFrame(() => {
|
|
5590
|
+
animation.classList.remove('v-ripple__animation--enter');
|
|
5591
|
+
animation.classList.add('v-ripple__animation--in');
|
|
5592
|
+
transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
|
5593
|
+
});
|
|
5594
|
+
});
|
|
5590
5595
|
},
|
|
5591
5596
|
hide(el) {
|
|
5592
5597
|
if (!el?._ripple?.enabled) return;
|
|
@@ -8581,12 +8586,12 @@
|
|
|
8581
8586
|
return selected;
|
|
8582
8587
|
},
|
|
8583
8588
|
in: (v, children, parents) => {
|
|
8584
|
-
|
|
8589
|
+
const map = new Map();
|
|
8585
8590
|
for (const id of v || []) {
|
|
8586
|
-
|
|
8591
|
+
strategy.select({
|
|
8587
8592
|
id,
|
|
8588
8593
|
value: true,
|
|
8589
|
-
selected:
|
|
8594
|
+
selected: map,
|
|
8590
8595
|
children,
|
|
8591
8596
|
parents
|
|
8592
8597
|
});
|
|
@@ -8621,11 +8626,10 @@
|
|
|
8621
8626
|
});
|
|
8622
8627
|
},
|
|
8623
8628
|
in: (v, children, parents) => {
|
|
8624
|
-
let map = new Map();
|
|
8625
8629
|
if (v?.length) {
|
|
8626
|
-
|
|
8630
|
+
return parentStrategy.in(v.slice(0, 1), children, parents);
|
|
8627
8631
|
}
|
|
8628
|
-
return
|
|
8632
|
+
return new Map();
|
|
8629
8633
|
},
|
|
8630
8634
|
out: (v, children, parents) => {
|
|
8631
8635
|
return parentStrategy.out(v, children, parents);
|
|
@@ -8728,7 +8732,7 @@
|
|
|
8728
8732
|
map = strategy.select({
|
|
8729
8733
|
id,
|
|
8730
8734
|
value: true,
|
|
8731
|
-
selected:
|
|
8735
|
+
selected: map,
|
|
8732
8736
|
children,
|
|
8733
8737
|
parents
|
|
8734
8738
|
});
|
|
@@ -9612,10 +9616,7 @@
|
|
|
9612
9616
|
default: 'props'
|
|
9613
9617
|
},
|
|
9614
9618
|
returnObject: Boolean,
|
|
9615
|
-
valueComparator:
|
|
9616
|
-
type: Function,
|
|
9617
|
-
default: deepEqual
|
|
9618
|
-
}
|
|
9619
|
+
valueComparator: Function
|
|
9619
9620
|
}, 'list-items');
|
|
9620
9621
|
function transformItem$3(props, item) {
|
|
9621
9622
|
const title = getPropertyFromItem(item, props.itemTitle, item);
|
|
@@ -9636,29 +9637,85 @@
|
|
|
9636
9637
|
};
|
|
9637
9638
|
}
|
|
9638
9639
|
function transformItems$3(props, items) {
|
|
9640
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
|
9639
9641
|
const array = [];
|
|
9640
9642
|
for (const item of items) {
|
|
9641
|
-
array.push(transformItem$3(
|
|
9643
|
+
array.push(transformItem$3(_props, item));
|
|
9642
9644
|
}
|
|
9643
9645
|
return array;
|
|
9644
9646
|
}
|
|
9645
9647
|
function useItems(props) {
|
|
9646
9648
|
const items = vue.computed(() => transformItems$3(props, props.items));
|
|
9647
9649
|
const hasNullItem = vue.computed(() => items.value.some(item => item.value === null));
|
|
9650
|
+
const itemsMap = vue.shallowRef(new Map());
|
|
9651
|
+
const keylessItems = vue.shallowRef([]);
|
|
9652
|
+
vue.watchEffect(() => {
|
|
9653
|
+
const _items = items.value;
|
|
9654
|
+
const map = new Map();
|
|
9655
|
+
const keyless = [];
|
|
9656
|
+
for (let i = 0; i < _items.length; i++) {
|
|
9657
|
+
const item = _items[i];
|
|
9658
|
+
if (isPrimitive(item.value) || item.value === null) {
|
|
9659
|
+
let values = map.get(item.value);
|
|
9660
|
+
if (!values) {
|
|
9661
|
+
values = [];
|
|
9662
|
+
map.set(item.value, values);
|
|
9663
|
+
}
|
|
9664
|
+
values.push(item);
|
|
9665
|
+
} else {
|
|
9666
|
+
keyless.push(item);
|
|
9667
|
+
}
|
|
9668
|
+
}
|
|
9669
|
+
itemsMap.value = map;
|
|
9670
|
+
keylessItems.value = keyless;
|
|
9671
|
+
});
|
|
9648
9672
|
function transformIn(value) {
|
|
9649
|
-
|
|
9673
|
+
// Cache unrefed values outside the loop,
|
|
9674
|
+
// proxy getters can be slow when you call them a billion times
|
|
9675
|
+
const _value = vue.toRaw(value);
|
|
9676
|
+
const _items = itemsMap.value;
|
|
9677
|
+
const _allItems = items.value;
|
|
9678
|
+
const _keylessItems = keylessItems.value;
|
|
9679
|
+
const _hasNullItem = hasNullItem.value;
|
|
9680
|
+
const _returnObject = props.returnObject;
|
|
9681
|
+
const hasValueComparator = !!props.valueComparator;
|
|
9682
|
+
const valueComparator = props.valueComparator || deepEqual;
|
|
9683
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
|
9684
|
+
const returnValue = [];
|
|
9685
|
+
main: for (const v of _value) {
|
|
9650
9686
|
// When the model value is null, return an InternalItem
|
|
9651
9687
|
// based on null only if null is one of the items
|
|
9652
|
-
|
|
9653
|
-
|
|
9654
|
-
|
|
9655
|
-
if
|
|
9656
|
-
|
|
9657
|
-
|
|
9658
|
-
|
|
9688
|
+
if (!_hasNullItem && v === null) continue;
|
|
9689
|
+
|
|
9690
|
+
// String model value means value is a custom input value from combobox
|
|
9691
|
+
// Don't look up existing items if the model value is a string
|
|
9692
|
+
if (_returnObject && typeof v === 'string') {
|
|
9693
|
+
returnValue.push(transformItem$3(_props, v));
|
|
9694
|
+
continue;
|
|
9659
9695
|
}
|
|
9660
|
-
|
|
9661
|
-
|
|
9696
|
+
|
|
9697
|
+
// Fast path, items with primitive values and no
|
|
9698
|
+
// custom valueComparator can use a constant-time
|
|
9699
|
+
// map lookup instead of searching the items array
|
|
9700
|
+
const fastItems = _items.get(v);
|
|
9701
|
+
|
|
9702
|
+
// Slow path, always use valueComparator.
|
|
9703
|
+
// This is O(n^2) so we really don't want to
|
|
9704
|
+
// do it for more than a couple hundred items.
|
|
9705
|
+
if (hasValueComparator || !fastItems) {
|
|
9706
|
+
for (const item of hasValueComparator ? _allItems : _keylessItems) {
|
|
9707
|
+
if (valueComparator(v, item.value)) {
|
|
9708
|
+
returnValue.push(item);
|
|
9709
|
+
continue main;
|
|
9710
|
+
}
|
|
9711
|
+
}
|
|
9712
|
+
// Not an existing item, construct it from the model (#4000)
|
|
9713
|
+
returnValue.push(transformItem$3(_props, v));
|
|
9714
|
+
continue;
|
|
9715
|
+
}
|
|
9716
|
+
returnValue.push(...fastItems);
|
|
9717
|
+
}
|
|
9718
|
+
return returnValue;
|
|
9662
9719
|
}
|
|
9663
9720
|
function transformOut(value) {
|
|
9664
9721
|
return props.returnObject ? value.map(_ref => {
|
|
@@ -9682,9 +9739,6 @@
|
|
|
9682
9739
|
|
|
9683
9740
|
// Types
|
|
9684
9741
|
|
|
9685
|
-
function isPrimitive(value) {
|
|
9686
|
-
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
|
9687
|
-
}
|
|
9688
9742
|
function transformItem$2(props, item) {
|
|
9689
9743
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
|
9690
9744
|
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
|
@@ -12637,34 +12691,6 @@
|
|
|
12637
12691
|
}; // typescript doesn't know about vue's event merging
|
|
12638
12692
|
}
|
|
12639
12693
|
|
|
12640
|
-
// https://github.com/vuetifyjs/vuetify/issues/20003
|
|
12641
|
-
/**
|
|
12642
|
-
* This composable is designed to track whether the mouse is in a mousedown state at any given time. The original motivation is that
|
|
12643
|
-
* it is impossible to distinguish whether a blur event is triggered by mousedown, keydown, or via JavaScript.
|
|
12644
|
-
* This composable allows for conditional logic when a blur is triggered by mousedown.
|
|
12645
|
-
*/
|
|
12646
|
-
|
|
12647
|
-
function useIsMousedown() {
|
|
12648
|
-
const isMousedown = vue.shallowRef(false);
|
|
12649
|
-
function mousedown() {
|
|
12650
|
-
isMousedown.value = true;
|
|
12651
|
-
}
|
|
12652
|
-
function mouseup() {
|
|
12653
|
-
isMousedown.value = false;
|
|
12654
|
-
}
|
|
12655
|
-
vue.onMounted(() => {
|
|
12656
|
-
document.body.addEventListener('mousedown', mousedown);
|
|
12657
|
-
document.body.addEventListener('mouseup', mouseup);
|
|
12658
|
-
});
|
|
12659
|
-
vue.onUnmounted(() => {
|
|
12660
|
-
document.body.removeEventListener('mousedown', mousedown);
|
|
12661
|
-
document.body.removeEventListener('mouseup', mouseup);
|
|
12662
|
-
});
|
|
12663
|
-
return {
|
|
12664
|
-
isMousedown
|
|
12665
|
-
};
|
|
12666
|
-
}
|
|
12667
|
-
|
|
12668
12694
|
// Types
|
|
12669
12695
|
|
|
12670
12696
|
const makeSelectProps = propsFactory({
|
|
@@ -12754,9 +12780,6 @@
|
|
|
12754
12780
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
|
|
12755
12781
|
});
|
|
12756
12782
|
const form = useForm(props);
|
|
12757
|
-
const {
|
|
12758
|
-
isMousedown
|
|
12759
|
-
} = useIsMousedown();
|
|
12760
12783
|
const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
|
|
12761
12784
|
const isFocused = vue.shallowRef(false);
|
|
12762
12785
|
const label = vue.computed(() => menu.value ? props.closeText : props.openText);
|
|
@@ -12764,7 +12787,7 @@
|
|
|
12764
12787
|
let keyboardLookupLastTime;
|
|
12765
12788
|
const displayItems = vue.computed(() => {
|
|
12766
12789
|
if (props.hideSelected) {
|
|
12767
|
-
return items.value.filter(item => !model.value.some(s => props.valueComparator(s, item)));
|
|
12790
|
+
return items.value.filter(item => !model.value.some(s => (props.valueComparator || deepEqual)(s, item)));
|
|
12768
12791
|
}
|
|
12769
12792
|
return items.value;
|
|
12770
12793
|
});
|
|
@@ -12836,7 +12859,7 @@
|
|
|
12836
12859
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
12837
12860
|
if (item.props.disabled) return;
|
|
12838
12861
|
if (props.multiple) {
|
|
12839
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
12862
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
12840
12863
|
const add = set == null ? !~index : set;
|
|
12841
12864
|
if (~index) {
|
|
12842
12865
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -12854,7 +12877,7 @@
|
|
|
12854
12877
|
}
|
|
12855
12878
|
}
|
|
12856
12879
|
function onBlur(e) {
|
|
12857
|
-
if (!listRef.value?.$el.contains(e.relatedTarget)
|
|
12880
|
+
if (!listRef.value?.$el.contains(e.relatedTarget)) {
|
|
12858
12881
|
menu.value = false;
|
|
12859
12882
|
}
|
|
12860
12883
|
}
|
|
@@ -12883,7 +12906,7 @@
|
|
|
12883
12906
|
}
|
|
12884
12907
|
vue.watch(menu, () => {
|
|
12885
12908
|
if (!props.hideSelected && menu.value && model.value.length) {
|
|
12886
|
-
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
12909
|
+
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
|
12887
12910
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
12888
12911
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
12889
12912
|
});
|
|
@@ -13266,9 +13289,6 @@
|
|
|
13266
13289
|
textColorClasses,
|
|
13267
13290
|
textColorStyles
|
|
13268
13291
|
} = useTextColor(color);
|
|
13269
|
-
const {
|
|
13270
|
-
isMousedown
|
|
13271
|
-
} = useIsMousedown();
|
|
13272
13292
|
const search = useProxiedModel(props, 'search', '');
|
|
13273
13293
|
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
|
13274
13294
|
const transformed = transformOut(v);
|
|
@@ -13418,7 +13438,7 @@
|
|
|
13418
13438
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
13419
13439
|
if (!item || item.props.disabled) return;
|
|
13420
13440
|
if (props.multiple) {
|
|
13421
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
13441
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
13422
13442
|
const add = set == null ? !~index : set;
|
|
13423
13443
|
if (~index) {
|
|
13424
13444
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -13442,11 +13462,6 @@
|
|
|
13442
13462
|
});
|
|
13443
13463
|
}
|
|
13444
13464
|
}
|
|
13445
|
-
function onBlur(e) {
|
|
13446
|
-
if (!isMousedown.value) {
|
|
13447
|
-
menu.value = false;
|
|
13448
|
-
}
|
|
13449
|
-
}
|
|
13450
13465
|
vue.watch(isFocused, (val, oldVal) => {
|
|
13451
13466
|
if (val === oldVal) return;
|
|
13452
13467
|
if (val) {
|
|
@@ -13456,6 +13471,7 @@
|
|
|
13456
13471
|
vue.nextTick(() => isSelecting.value = false);
|
|
13457
13472
|
} else {
|
|
13458
13473
|
if (!props.multiple && search.value == null) model.value = [];
|
|
13474
|
+
menu.value = false;
|
|
13459
13475
|
if (!model.value.some(_ref3 => {
|
|
13460
13476
|
let {
|
|
13461
13477
|
title
|
|
@@ -13509,7 +13525,6 @@
|
|
|
13509
13525
|
"readonly": form.isReadonly.value,
|
|
13510
13526
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
13511
13527
|
"onClick:clear": onClear,
|
|
13512
|
-
"onBlur": onBlur,
|
|
13513
13528
|
"onMousedown:control": onMousedownControl,
|
|
13514
13529
|
"onKeydown": onKeydown
|
|
13515
13530
|
}), {
|
|
@@ -15812,6 +15827,8 @@
|
|
|
15812
15827
|
const trackContainerRef = vue.ref();
|
|
15813
15828
|
const activeThumbRef = vue.ref();
|
|
15814
15829
|
function parseMouseMove(e) {
|
|
15830
|
+
const el = trackContainerRef.value?.$el;
|
|
15831
|
+
if (!el) return;
|
|
15815
15832
|
const vertical = props.direction === 'vertical';
|
|
15816
15833
|
const start = vertical ? 'top' : 'left';
|
|
15817
15834
|
const length = vertical ? 'height' : 'width';
|
|
@@ -15819,7 +15836,7 @@
|
|
|
15819
15836
|
const {
|
|
15820
15837
|
[start]: trackStart,
|
|
15821
15838
|
[length]: trackLength
|
|
15822
|
-
} =
|
|
15839
|
+
} = el.getBoundingClientRect();
|
|
15823
15840
|
const clickOffset = getPosition(e, position);
|
|
15824
15841
|
|
|
15825
15842
|
// It is possible for left to be NaN, force to number
|
|
@@ -15828,13 +15845,17 @@
|
|
|
15828
15845
|
return roundValue(min.value + clickPos * (max.value - min.value));
|
|
15829
15846
|
}
|
|
15830
15847
|
const handleStop = e => {
|
|
15831
|
-
|
|
15832
|
-
|
|
15833
|
-
|
|
15848
|
+
const value = parseMouseMove(e);
|
|
15849
|
+
if (value != null) {
|
|
15850
|
+
onSliderEnd({
|
|
15851
|
+
value
|
|
15852
|
+
});
|
|
15853
|
+
}
|
|
15834
15854
|
mousePressed.value = false;
|
|
15835
15855
|
startOffset.value = 0;
|
|
15836
15856
|
};
|
|
15837
15857
|
const handleStart = e => {
|
|
15858
|
+
const value = parseMouseMove(e);
|
|
15838
15859
|
activeThumbRef.value = getActiveThumb(e);
|
|
15839
15860
|
if (!activeThumbRef.value) return;
|
|
15840
15861
|
mousePressed.value = true;
|
|
@@ -15842,13 +15863,17 @@
|
|
|
15842
15863
|
startOffset.value = getOffset(e, activeThumbRef.value, props.direction);
|
|
15843
15864
|
} else {
|
|
15844
15865
|
startOffset.value = 0;
|
|
15845
|
-
|
|
15846
|
-
|
|
15866
|
+
if (value != null) {
|
|
15867
|
+
onSliderMove({
|
|
15868
|
+
value
|
|
15869
|
+
});
|
|
15870
|
+
}
|
|
15871
|
+
}
|
|
15872
|
+
if (value != null) {
|
|
15873
|
+
onSliderStart({
|
|
15874
|
+
value
|
|
15847
15875
|
});
|
|
15848
15876
|
}
|
|
15849
|
-
onSliderStart({
|
|
15850
|
-
value: parseMouseMove(e)
|
|
15851
|
-
});
|
|
15852
15877
|
vue.nextTick(() => activeThumbRef.value?.focus());
|
|
15853
15878
|
};
|
|
15854
15879
|
const moveListenerOptions = {
|
|
@@ -15856,9 +15881,12 @@
|
|
|
15856
15881
|
capture: true
|
|
15857
15882
|
};
|
|
15858
15883
|
function onMouseMove(e) {
|
|
15859
|
-
|
|
15860
|
-
|
|
15861
|
-
|
|
15884
|
+
const value = parseMouseMove(e);
|
|
15885
|
+
if (value != null) {
|
|
15886
|
+
onSliderMove({
|
|
15887
|
+
value
|
|
15888
|
+
});
|
|
15889
|
+
}
|
|
15862
15890
|
}
|
|
15863
15891
|
function onSliderMouseUp(e) {
|
|
15864
15892
|
e.stopPropagation();
|
|
@@ -17129,9 +17157,6 @@
|
|
|
17129
17157
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
17130
17158
|
});
|
|
17131
17159
|
const form = useForm(props);
|
|
17132
|
-
const {
|
|
17133
|
-
isMousedown
|
|
17134
|
-
} = useIsMousedown();
|
|
17135
17160
|
const hasChips = vue.computed(() => !!(props.chips || slots.chip));
|
|
17136
17161
|
const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
|
|
17137
17162
|
const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
@@ -17295,18 +17320,12 @@
|
|
|
17295
17320
|
vTextFieldRef.value?.focus();
|
|
17296
17321
|
}
|
|
17297
17322
|
}
|
|
17298
|
-
function onBlur(e) {
|
|
17299
|
-
if (!isMousedown.value) {
|
|
17300
|
-
menu.value = false;
|
|
17301
|
-
}
|
|
17302
|
-
}
|
|
17303
|
-
|
|
17304
17323
|
/** @param set - null means toggle */
|
|
17305
17324
|
function select(item) {
|
|
17306
17325
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
17307
17326
|
if (!item || item.props.disabled) return;
|
|
17308
17327
|
if (props.multiple) {
|
|
17309
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
17328
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
17310
17329
|
const add = set == null ? !~index : set;
|
|
17311
17330
|
if (~index) {
|
|
17312
17331
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -17345,6 +17364,7 @@
|
|
|
17345
17364
|
vue.watch(isFocused, (val, oldVal) => {
|
|
17346
17365
|
if (val || val === oldVal) return;
|
|
17347
17366
|
selectionIndex.value = -1;
|
|
17367
|
+
menu.value = false;
|
|
17348
17368
|
if (search.value) {
|
|
17349
17369
|
if (props.multiple) {
|
|
17350
17370
|
select(transformItem$3(props, search.value));
|
|
@@ -17365,7 +17385,7 @@
|
|
|
17365
17385
|
});
|
|
17366
17386
|
vue.watch(menu, () => {
|
|
17367
17387
|
if (!props.hideSelected && menu.value && model.value.length) {
|
|
17368
|
-
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
17388
|
+
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
|
17369
17389
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
17370
17390
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
17371
17391
|
});
|
|
@@ -17402,7 +17422,6 @@
|
|
|
17402
17422
|
"readonly": form.isReadonly.value,
|
|
17403
17423
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
17404
17424
|
"onClick:clear": onClear,
|
|
17405
|
-
"onBlur": onBlur,
|
|
17406
17425
|
"onMousedown:control": onMousedownControl,
|
|
17407
17426
|
"onKeydown": onKeydown
|
|
17408
17427
|
}), {
|
|
@@ -22000,7 +22019,7 @@
|
|
|
22000
22019
|
type: String,
|
|
22001
22020
|
default: 'picker-reverse-transition'
|
|
22002
22021
|
},
|
|
22003
|
-
...makeCalendarProps()
|
|
22022
|
+
...omit(makeCalendarProps(), ['displayValue'])
|
|
22004
22023
|
}, 'VDatePickerMonth');
|
|
22005
22024
|
const VDatePickerMonth = genericComponent()({
|
|
22006
22025
|
name: 'VDatePickerMonth',
|
|
@@ -28381,7 +28400,7 @@
|
|
|
28381
28400
|
goTo
|
|
28382
28401
|
};
|
|
28383
28402
|
}
|
|
28384
|
-
const version$1 = "3.7.
|
|
28403
|
+
const version$1 = "3.7.12";
|
|
28385
28404
|
createVuetify$1.version = version$1;
|
|
28386
28405
|
|
|
28387
28406
|
// Vue's inject() can only be used in setup
|
|
@@ -28406,7 +28425,7 @@
|
|
|
28406
28425
|
...options
|
|
28407
28426
|
});
|
|
28408
28427
|
};
|
|
28409
|
-
const version = "3.7.
|
|
28428
|
+
const version = "3.7.12";
|
|
28410
28429
|
createVuetify.version = version;
|
|
28411
28430
|
|
|
28412
28431
|
exports.blueprints = index;
|