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.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
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
|
*/
|
|
6
6
|
|
|
7
|
-
import { shallowRef, Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, unref, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode,
|
|
7
|
+
import { shallowRef, Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, unref, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, toDisplayString, vModelText, resolveComponent, render } from 'vue';
|
|
8
8
|
|
|
9
9
|
const IN_BROWSER = typeof window !== 'undefined';
|
|
10
10
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
@@ -500,6 +500,9 @@ function checkPrintable(e) {
|
|
|
500
500
|
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
|
501
501
|
return isPrintableChar && noModifier;
|
|
502
502
|
}
|
|
503
|
+
function isPrimitive(value) {
|
|
504
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';
|
|
505
|
+
}
|
|
503
506
|
|
|
504
507
|
// Utilities
|
|
505
508
|
const block = ['top', 'bottom'];
|
|
@@ -5578,11 +5581,13 @@ const ripples = {
|
|
|
5578
5581
|
animation.classList.add('v-ripple__animation--visible');
|
|
5579
5582
|
transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
|
5580
5583
|
animation.dataset.activated = String(performance.now());
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
5585
|
-
|
|
5584
|
+
requestAnimationFrame(() => {
|
|
5585
|
+
requestAnimationFrame(() => {
|
|
5586
|
+
animation.classList.remove('v-ripple__animation--enter');
|
|
5587
|
+
animation.classList.add('v-ripple__animation--in');
|
|
5588
|
+
transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
|
5589
|
+
});
|
|
5590
|
+
});
|
|
5586
5591
|
},
|
|
5587
5592
|
hide(el) {
|
|
5588
5593
|
if (!el?._ripple?.enabled) return;
|
|
@@ -8577,12 +8582,12 @@ const independentSelectStrategy = mandatory => {
|
|
|
8577
8582
|
return selected;
|
|
8578
8583
|
},
|
|
8579
8584
|
in: (v, children, parents) => {
|
|
8580
|
-
|
|
8585
|
+
const map = new Map();
|
|
8581
8586
|
for (const id of v || []) {
|
|
8582
|
-
|
|
8587
|
+
strategy.select({
|
|
8583
8588
|
id,
|
|
8584
8589
|
value: true,
|
|
8585
|
-
selected:
|
|
8590
|
+
selected: map,
|
|
8586
8591
|
children,
|
|
8587
8592
|
parents
|
|
8588
8593
|
});
|
|
@@ -8617,11 +8622,10 @@ const independentSingleSelectStrategy = mandatory => {
|
|
|
8617
8622
|
});
|
|
8618
8623
|
},
|
|
8619
8624
|
in: (v, children, parents) => {
|
|
8620
|
-
let map = new Map();
|
|
8621
8625
|
if (v?.length) {
|
|
8622
|
-
|
|
8626
|
+
return parentStrategy.in(v.slice(0, 1), children, parents);
|
|
8623
8627
|
}
|
|
8624
|
-
return
|
|
8628
|
+
return new Map();
|
|
8625
8629
|
},
|
|
8626
8630
|
out: (v, children, parents) => {
|
|
8627
8631
|
return parentStrategy.out(v, children, parents);
|
|
@@ -8724,7 +8728,7 @@ const classicSelectStrategy = mandatory => {
|
|
|
8724
8728
|
map = strategy.select({
|
|
8725
8729
|
id,
|
|
8726
8730
|
value: true,
|
|
8727
|
-
selected:
|
|
8731
|
+
selected: map,
|
|
8728
8732
|
children,
|
|
8729
8733
|
parents
|
|
8730
8734
|
});
|
|
@@ -9608,10 +9612,7 @@ const makeItemsProps = propsFactory({
|
|
|
9608
9612
|
default: 'props'
|
|
9609
9613
|
},
|
|
9610
9614
|
returnObject: Boolean,
|
|
9611
|
-
valueComparator:
|
|
9612
|
-
type: Function,
|
|
9613
|
-
default: deepEqual
|
|
9614
|
-
}
|
|
9615
|
+
valueComparator: Function
|
|
9615
9616
|
}, 'list-items');
|
|
9616
9617
|
function transformItem$3(props, item) {
|
|
9617
9618
|
const title = getPropertyFromItem(item, props.itemTitle, item);
|
|
@@ -9632,29 +9633,85 @@ function transformItem$3(props, item) {
|
|
|
9632
9633
|
};
|
|
9633
9634
|
}
|
|
9634
9635
|
function transformItems$3(props, items) {
|
|
9636
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
|
9635
9637
|
const array = [];
|
|
9636
9638
|
for (const item of items) {
|
|
9637
|
-
array.push(transformItem$3(
|
|
9639
|
+
array.push(transformItem$3(_props, item));
|
|
9638
9640
|
}
|
|
9639
9641
|
return array;
|
|
9640
9642
|
}
|
|
9641
9643
|
function useItems(props) {
|
|
9642
9644
|
const items = computed(() => transformItems$3(props, props.items));
|
|
9643
9645
|
const hasNullItem = computed(() => items.value.some(item => item.value === null));
|
|
9646
|
+
const itemsMap = shallowRef(new Map());
|
|
9647
|
+
const keylessItems = shallowRef([]);
|
|
9648
|
+
watchEffect(() => {
|
|
9649
|
+
const _items = items.value;
|
|
9650
|
+
const map = new Map();
|
|
9651
|
+
const keyless = [];
|
|
9652
|
+
for (let i = 0; i < _items.length; i++) {
|
|
9653
|
+
const item = _items[i];
|
|
9654
|
+
if (isPrimitive(item.value) || item.value === null) {
|
|
9655
|
+
let values = map.get(item.value);
|
|
9656
|
+
if (!values) {
|
|
9657
|
+
values = [];
|
|
9658
|
+
map.set(item.value, values);
|
|
9659
|
+
}
|
|
9660
|
+
values.push(item);
|
|
9661
|
+
} else {
|
|
9662
|
+
keyless.push(item);
|
|
9663
|
+
}
|
|
9664
|
+
}
|
|
9665
|
+
itemsMap.value = map;
|
|
9666
|
+
keylessItems.value = keyless;
|
|
9667
|
+
});
|
|
9644
9668
|
function transformIn(value) {
|
|
9645
|
-
|
|
9669
|
+
// Cache unrefed values outside the loop,
|
|
9670
|
+
// proxy getters can be slow when you call them a billion times
|
|
9671
|
+
const _value = toRaw(value);
|
|
9672
|
+
const _items = itemsMap.value;
|
|
9673
|
+
const _allItems = items.value;
|
|
9674
|
+
const _keylessItems = keylessItems.value;
|
|
9675
|
+
const _hasNullItem = hasNullItem.value;
|
|
9676
|
+
const _returnObject = props.returnObject;
|
|
9677
|
+
const hasValueComparator = !!props.valueComparator;
|
|
9678
|
+
const valueComparator = props.valueComparator || deepEqual;
|
|
9679
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
|
9680
|
+
const returnValue = [];
|
|
9681
|
+
main: for (const v of _value) {
|
|
9646
9682
|
// When the model value is null, return an InternalItem
|
|
9647
9683
|
// based on null only if null is one of the items
|
|
9648
|
-
|
|
9649
|
-
|
|
9650
|
-
|
|
9651
|
-
if
|
|
9652
|
-
|
|
9653
|
-
|
|
9654
|
-
|
|
9684
|
+
if (!_hasNullItem && v === null) continue;
|
|
9685
|
+
|
|
9686
|
+
// String model value means value is a custom input value from combobox
|
|
9687
|
+
// Don't look up existing items if the model value is a string
|
|
9688
|
+
if (_returnObject && typeof v === 'string') {
|
|
9689
|
+
returnValue.push(transformItem$3(_props, v));
|
|
9690
|
+
continue;
|
|
9655
9691
|
}
|
|
9656
|
-
|
|
9657
|
-
|
|
9692
|
+
|
|
9693
|
+
// Fast path, items with primitive values and no
|
|
9694
|
+
// custom valueComparator can use a constant-time
|
|
9695
|
+
// map lookup instead of searching the items array
|
|
9696
|
+
const fastItems = _items.get(v);
|
|
9697
|
+
|
|
9698
|
+
// Slow path, always use valueComparator.
|
|
9699
|
+
// This is O(n^2) so we really don't want to
|
|
9700
|
+
// do it for more than a couple hundred items.
|
|
9701
|
+
if (hasValueComparator || !fastItems) {
|
|
9702
|
+
for (const item of hasValueComparator ? _allItems : _keylessItems) {
|
|
9703
|
+
if (valueComparator(v, item.value)) {
|
|
9704
|
+
returnValue.push(item);
|
|
9705
|
+
continue main;
|
|
9706
|
+
}
|
|
9707
|
+
}
|
|
9708
|
+
// Not an existing item, construct it from the model (#4000)
|
|
9709
|
+
returnValue.push(transformItem$3(_props, v));
|
|
9710
|
+
continue;
|
|
9711
|
+
}
|
|
9712
|
+
returnValue.push(...fastItems);
|
|
9713
|
+
}
|
|
9714
|
+
return returnValue;
|
|
9658
9715
|
}
|
|
9659
9716
|
function transformOut(value) {
|
|
9660
9717
|
return props.returnObject ? value.map(_ref => {
|
|
@@ -9678,9 +9735,6 @@ function useItems(props) {
|
|
|
9678
9735
|
|
|
9679
9736
|
// Types
|
|
9680
9737
|
|
|
9681
|
-
function isPrimitive(value) {
|
|
9682
|
-
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
|
9683
|
-
}
|
|
9684
9738
|
function transformItem$2(props, item) {
|
|
9685
9739
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
|
9686
9740
|
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
|
@@ -12633,34 +12687,6 @@ function useScrolling(listRef, textFieldRef) {
|
|
|
12633
12687
|
}; // typescript doesn't know about vue's event merging
|
|
12634
12688
|
}
|
|
12635
12689
|
|
|
12636
|
-
// https://github.com/vuetifyjs/vuetify/issues/20003
|
|
12637
|
-
/**
|
|
12638
|
-
* This composable is designed to track whether the mouse is in a mousedown state at any given time. The original motivation is that
|
|
12639
|
-
* it is impossible to distinguish whether a blur event is triggered by mousedown, keydown, or via JavaScript.
|
|
12640
|
-
* This composable allows for conditional logic when a blur is triggered by mousedown.
|
|
12641
|
-
*/
|
|
12642
|
-
|
|
12643
|
-
function useIsMousedown() {
|
|
12644
|
-
const isMousedown = shallowRef(false);
|
|
12645
|
-
function mousedown() {
|
|
12646
|
-
isMousedown.value = true;
|
|
12647
|
-
}
|
|
12648
|
-
function mouseup() {
|
|
12649
|
-
isMousedown.value = false;
|
|
12650
|
-
}
|
|
12651
|
-
onMounted(() => {
|
|
12652
|
-
document.body.addEventListener('mousedown', mousedown);
|
|
12653
|
-
document.body.addEventListener('mouseup', mouseup);
|
|
12654
|
-
});
|
|
12655
|
-
onUnmounted(() => {
|
|
12656
|
-
document.body.removeEventListener('mousedown', mousedown);
|
|
12657
|
-
document.body.removeEventListener('mouseup', mouseup);
|
|
12658
|
-
});
|
|
12659
|
-
return {
|
|
12660
|
-
isMousedown
|
|
12661
|
-
};
|
|
12662
|
-
}
|
|
12663
|
-
|
|
12664
12690
|
// Types
|
|
12665
12691
|
|
|
12666
12692
|
const makeSelectProps = propsFactory({
|
|
@@ -12750,9 +12776,6 @@ const VSelect = genericComponent()({
|
|
|
12750
12776
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
|
|
12751
12777
|
});
|
|
12752
12778
|
const form = useForm(props);
|
|
12753
|
-
const {
|
|
12754
|
-
isMousedown
|
|
12755
|
-
} = useIsMousedown();
|
|
12756
12779
|
const selectedValues = computed(() => model.value.map(selection => selection.value));
|
|
12757
12780
|
const isFocused = shallowRef(false);
|
|
12758
12781
|
const label = computed(() => menu.value ? props.closeText : props.openText);
|
|
@@ -12760,7 +12783,7 @@ const VSelect = genericComponent()({
|
|
|
12760
12783
|
let keyboardLookupLastTime;
|
|
12761
12784
|
const displayItems = computed(() => {
|
|
12762
12785
|
if (props.hideSelected) {
|
|
12763
|
-
return items.value.filter(item => !model.value.some(s => props.valueComparator(s, item)));
|
|
12786
|
+
return items.value.filter(item => !model.value.some(s => (props.valueComparator || deepEqual)(s, item)));
|
|
12764
12787
|
}
|
|
12765
12788
|
return items.value;
|
|
12766
12789
|
});
|
|
@@ -12832,7 +12855,7 @@ const VSelect = genericComponent()({
|
|
|
12832
12855
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
12833
12856
|
if (item.props.disabled) return;
|
|
12834
12857
|
if (props.multiple) {
|
|
12835
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
12858
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
12836
12859
|
const add = set == null ? !~index : set;
|
|
12837
12860
|
if (~index) {
|
|
12838
12861
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -12850,7 +12873,7 @@ const VSelect = genericComponent()({
|
|
|
12850
12873
|
}
|
|
12851
12874
|
}
|
|
12852
12875
|
function onBlur(e) {
|
|
12853
|
-
if (!listRef.value?.$el.contains(e.relatedTarget)
|
|
12876
|
+
if (!listRef.value?.$el.contains(e.relatedTarget)) {
|
|
12854
12877
|
menu.value = false;
|
|
12855
12878
|
}
|
|
12856
12879
|
}
|
|
@@ -12879,7 +12902,7 @@ const VSelect = genericComponent()({
|
|
|
12879
12902
|
}
|
|
12880
12903
|
watch(menu, () => {
|
|
12881
12904
|
if (!props.hideSelected && menu.value && model.value.length) {
|
|
12882
|
-
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
12905
|
+
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
|
12883
12906
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
12884
12907
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
12885
12908
|
});
|
|
@@ -13262,9 +13285,6 @@ const VAutocomplete = genericComponent()({
|
|
|
13262
13285
|
textColorClasses,
|
|
13263
13286
|
textColorStyles
|
|
13264
13287
|
} = useTextColor(color);
|
|
13265
|
-
const {
|
|
13266
|
-
isMousedown
|
|
13267
|
-
} = useIsMousedown();
|
|
13268
13288
|
const search = useProxiedModel(props, 'search', '');
|
|
13269
13289
|
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
|
13270
13290
|
const transformed = transformOut(v);
|
|
@@ -13414,7 +13434,7 @@ const VAutocomplete = genericComponent()({
|
|
|
13414
13434
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
13415
13435
|
if (!item || item.props.disabled) return;
|
|
13416
13436
|
if (props.multiple) {
|
|
13417
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
13437
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
13418
13438
|
const add = set == null ? !~index : set;
|
|
13419
13439
|
if (~index) {
|
|
13420
13440
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -13438,11 +13458,6 @@ const VAutocomplete = genericComponent()({
|
|
|
13438
13458
|
});
|
|
13439
13459
|
}
|
|
13440
13460
|
}
|
|
13441
|
-
function onBlur(e) {
|
|
13442
|
-
if (!isMousedown.value) {
|
|
13443
|
-
menu.value = false;
|
|
13444
|
-
}
|
|
13445
|
-
}
|
|
13446
13461
|
watch(isFocused, (val, oldVal) => {
|
|
13447
13462
|
if (val === oldVal) return;
|
|
13448
13463
|
if (val) {
|
|
@@ -13452,6 +13467,7 @@ const VAutocomplete = genericComponent()({
|
|
|
13452
13467
|
nextTick(() => isSelecting.value = false);
|
|
13453
13468
|
} else {
|
|
13454
13469
|
if (!props.multiple && search.value == null) model.value = [];
|
|
13470
|
+
menu.value = false;
|
|
13455
13471
|
if (!model.value.some(_ref3 => {
|
|
13456
13472
|
let {
|
|
13457
13473
|
title
|
|
@@ -13505,7 +13521,6 @@ const VAutocomplete = genericComponent()({
|
|
|
13505
13521
|
"readonly": form.isReadonly.value,
|
|
13506
13522
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
13507
13523
|
"onClick:clear": onClear,
|
|
13508
|
-
"onBlur": onBlur,
|
|
13509
13524
|
"onMousedown:control": onMousedownControl,
|
|
13510
13525
|
"onKeydown": onKeydown
|
|
13511
13526
|
}), {
|
|
@@ -15808,6 +15823,8 @@ const useSlider = _ref => {
|
|
|
15808
15823
|
const trackContainerRef = ref();
|
|
15809
15824
|
const activeThumbRef = ref();
|
|
15810
15825
|
function parseMouseMove(e) {
|
|
15826
|
+
const el = trackContainerRef.value?.$el;
|
|
15827
|
+
if (!el) return;
|
|
15811
15828
|
const vertical = props.direction === 'vertical';
|
|
15812
15829
|
const start = vertical ? 'top' : 'left';
|
|
15813
15830
|
const length = vertical ? 'height' : 'width';
|
|
@@ -15815,7 +15832,7 @@ const useSlider = _ref => {
|
|
|
15815
15832
|
const {
|
|
15816
15833
|
[start]: trackStart,
|
|
15817
15834
|
[length]: trackLength
|
|
15818
|
-
} =
|
|
15835
|
+
} = el.getBoundingClientRect();
|
|
15819
15836
|
const clickOffset = getPosition(e, position);
|
|
15820
15837
|
|
|
15821
15838
|
// It is possible for left to be NaN, force to number
|
|
@@ -15824,13 +15841,17 @@ const useSlider = _ref => {
|
|
|
15824
15841
|
return roundValue(min.value + clickPos * (max.value - min.value));
|
|
15825
15842
|
}
|
|
15826
15843
|
const handleStop = e => {
|
|
15827
|
-
|
|
15828
|
-
|
|
15829
|
-
|
|
15844
|
+
const value = parseMouseMove(e);
|
|
15845
|
+
if (value != null) {
|
|
15846
|
+
onSliderEnd({
|
|
15847
|
+
value
|
|
15848
|
+
});
|
|
15849
|
+
}
|
|
15830
15850
|
mousePressed.value = false;
|
|
15831
15851
|
startOffset.value = 0;
|
|
15832
15852
|
};
|
|
15833
15853
|
const handleStart = e => {
|
|
15854
|
+
const value = parseMouseMove(e);
|
|
15834
15855
|
activeThumbRef.value = getActiveThumb(e);
|
|
15835
15856
|
if (!activeThumbRef.value) return;
|
|
15836
15857
|
mousePressed.value = true;
|
|
@@ -15838,13 +15859,17 @@ const useSlider = _ref => {
|
|
|
15838
15859
|
startOffset.value = getOffset(e, activeThumbRef.value, props.direction);
|
|
15839
15860
|
} else {
|
|
15840
15861
|
startOffset.value = 0;
|
|
15841
|
-
|
|
15842
|
-
|
|
15862
|
+
if (value != null) {
|
|
15863
|
+
onSliderMove({
|
|
15864
|
+
value
|
|
15865
|
+
});
|
|
15866
|
+
}
|
|
15867
|
+
}
|
|
15868
|
+
if (value != null) {
|
|
15869
|
+
onSliderStart({
|
|
15870
|
+
value
|
|
15843
15871
|
});
|
|
15844
15872
|
}
|
|
15845
|
-
onSliderStart({
|
|
15846
|
-
value: parseMouseMove(e)
|
|
15847
|
-
});
|
|
15848
15873
|
nextTick(() => activeThumbRef.value?.focus());
|
|
15849
15874
|
};
|
|
15850
15875
|
const moveListenerOptions = {
|
|
@@ -15852,9 +15877,12 @@ const useSlider = _ref => {
|
|
|
15852
15877
|
capture: true
|
|
15853
15878
|
};
|
|
15854
15879
|
function onMouseMove(e) {
|
|
15855
|
-
|
|
15856
|
-
|
|
15857
|
-
|
|
15880
|
+
const value = parseMouseMove(e);
|
|
15881
|
+
if (value != null) {
|
|
15882
|
+
onSliderMove({
|
|
15883
|
+
value
|
|
15884
|
+
});
|
|
15885
|
+
}
|
|
15858
15886
|
}
|
|
15859
15887
|
function onSliderMouseUp(e) {
|
|
15860
15888
|
e.stopPropagation();
|
|
@@ -17125,9 +17153,6 @@ const VCombobox = genericComponent()({
|
|
|
17125
17153
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
17126
17154
|
});
|
|
17127
17155
|
const form = useForm(props);
|
|
17128
|
-
const {
|
|
17129
|
-
isMousedown
|
|
17130
|
-
} = useIsMousedown();
|
|
17131
17156
|
const hasChips = computed(() => !!(props.chips || slots.chip));
|
|
17132
17157
|
const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);
|
|
17133
17158
|
const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
@@ -17291,18 +17316,12 @@ const VCombobox = genericComponent()({
|
|
|
17291
17316
|
vTextFieldRef.value?.focus();
|
|
17292
17317
|
}
|
|
17293
17318
|
}
|
|
17294
|
-
function onBlur(e) {
|
|
17295
|
-
if (!isMousedown.value) {
|
|
17296
|
-
menu.value = false;
|
|
17297
|
-
}
|
|
17298
|
-
}
|
|
17299
|
-
|
|
17300
17319
|
/** @param set - null means toggle */
|
|
17301
17320
|
function select(item) {
|
|
17302
17321
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
17303
17322
|
if (!item || item.props.disabled) return;
|
|
17304
17323
|
if (props.multiple) {
|
|
17305
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
17324
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
17306
17325
|
const add = set == null ? !~index : set;
|
|
17307
17326
|
if (~index) {
|
|
17308
17327
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -17341,6 +17360,7 @@ const VCombobox = genericComponent()({
|
|
|
17341
17360
|
watch(isFocused, (val, oldVal) => {
|
|
17342
17361
|
if (val || val === oldVal) return;
|
|
17343
17362
|
selectionIndex.value = -1;
|
|
17363
|
+
menu.value = false;
|
|
17344
17364
|
if (search.value) {
|
|
17345
17365
|
if (props.multiple) {
|
|
17346
17366
|
select(transformItem$3(props, search.value));
|
|
@@ -17361,7 +17381,7 @@ const VCombobox = genericComponent()({
|
|
|
17361
17381
|
});
|
|
17362
17382
|
watch(menu, () => {
|
|
17363
17383
|
if (!props.hideSelected && menu.value && model.value.length) {
|
|
17364
|
-
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
17384
|
+
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
|
17365
17385
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
17366
17386
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
17367
17387
|
});
|
|
@@ -17398,7 +17418,6 @@ const VCombobox = genericComponent()({
|
|
|
17398
17418
|
"readonly": form.isReadonly.value,
|
|
17399
17419
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
17400
17420
|
"onClick:clear": onClear,
|
|
17401
|
-
"onBlur": onBlur,
|
|
17402
17421
|
"onMousedown:control": onMousedownControl,
|
|
17403
17422
|
"onKeydown": onKeydown
|
|
17404
17423
|
}), {
|
|
@@ -21996,7 +22015,7 @@ const makeVDatePickerMonthProps = propsFactory({
|
|
|
21996
22015
|
type: String,
|
|
21997
22016
|
default: 'picker-reverse-transition'
|
|
21998
22017
|
},
|
|
21999
|
-
...makeCalendarProps()
|
|
22018
|
+
...omit(makeCalendarProps(), ['displayValue'])
|
|
22000
22019
|
}, 'VDatePickerMonth');
|
|
22001
22020
|
const VDatePickerMonth = genericComponent()({
|
|
22002
22021
|
name: 'VDatePickerMonth',
|
|
@@ -28377,7 +28396,7 @@ function createVuetify$1() {
|
|
|
28377
28396
|
goTo
|
|
28378
28397
|
};
|
|
28379
28398
|
}
|
|
28380
|
-
const version$1 = "3.7.
|
|
28399
|
+
const version$1 = "3.7.12";
|
|
28381
28400
|
createVuetify$1.version = version$1;
|
|
28382
28401
|
|
|
28383
28402
|
// Vue's inject() can only be used in setup
|
|
@@ -28402,7 +28421,7 @@ const createVuetify = function () {
|
|
|
28402
28421
|
...options
|
|
28403
28422
|
});
|
|
28404
28423
|
};
|
|
28405
|
-
const version = "3.7.
|
|
28424
|
+
const version = "3.7.12";
|
|
28406
28425
|
createVuetify.version = version;
|
|
28407
28426
|
|
|
28408
28427
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|