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-labs.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
|
*/
|
|
@@ -581,6 +581,9 @@
|
|
|
581
581
|
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
|
582
582
|
return isPrintableChar && noModifier;
|
|
583
583
|
}
|
|
584
|
+
function isPrimitive(value) {
|
|
585
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';
|
|
586
|
+
}
|
|
584
587
|
|
|
585
588
|
// Utilities
|
|
586
589
|
const block = ['top', 'bottom'];
|
|
@@ -5349,11 +5352,13 @@
|
|
|
5349
5352
|
animation.classList.add('v-ripple__animation--visible');
|
|
5350
5353
|
transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
|
5351
5354
|
animation.dataset.activated = String(performance.now());
|
|
5352
|
-
|
|
5353
|
-
|
|
5354
|
-
|
|
5355
|
-
|
|
5356
|
-
|
|
5355
|
+
requestAnimationFrame(() => {
|
|
5356
|
+
requestAnimationFrame(() => {
|
|
5357
|
+
animation.classList.remove('v-ripple__animation--enter');
|
|
5358
|
+
animation.classList.add('v-ripple__animation--in');
|
|
5359
|
+
transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
|
5360
|
+
});
|
|
5361
|
+
});
|
|
5357
5362
|
},
|
|
5358
5363
|
hide(el) {
|
|
5359
5364
|
if (!el?._ripple?.enabled) return;
|
|
@@ -8348,12 +8353,12 @@
|
|
|
8348
8353
|
return selected;
|
|
8349
8354
|
},
|
|
8350
8355
|
in: (v, children, parents) => {
|
|
8351
|
-
|
|
8356
|
+
const map = new Map();
|
|
8352
8357
|
for (const id of v || []) {
|
|
8353
|
-
|
|
8358
|
+
strategy.select({
|
|
8354
8359
|
id,
|
|
8355
8360
|
value: true,
|
|
8356
|
-
selected:
|
|
8361
|
+
selected: map,
|
|
8357
8362
|
children,
|
|
8358
8363
|
parents
|
|
8359
8364
|
});
|
|
@@ -8388,11 +8393,10 @@
|
|
|
8388
8393
|
});
|
|
8389
8394
|
},
|
|
8390
8395
|
in: (v, children, parents) => {
|
|
8391
|
-
let map = new Map();
|
|
8392
8396
|
if (v?.length) {
|
|
8393
|
-
|
|
8397
|
+
return parentStrategy.in(v.slice(0, 1), children, parents);
|
|
8394
8398
|
}
|
|
8395
|
-
return
|
|
8399
|
+
return new Map();
|
|
8396
8400
|
},
|
|
8397
8401
|
out: (v, children, parents) => {
|
|
8398
8402
|
return parentStrategy.out(v, children, parents);
|
|
@@ -8495,7 +8499,7 @@
|
|
|
8495
8499
|
map = strategy.select({
|
|
8496
8500
|
id,
|
|
8497
8501
|
value: true,
|
|
8498
|
-
selected:
|
|
8502
|
+
selected: map,
|
|
8499
8503
|
children,
|
|
8500
8504
|
parents
|
|
8501
8505
|
});
|
|
@@ -9379,10 +9383,7 @@
|
|
|
9379
9383
|
default: 'props'
|
|
9380
9384
|
},
|
|
9381
9385
|
returnObject: Boolean,
|
|
9382
|
-
valueComparator:
|
|
9383
|
-
type: Function,
|
|
9384
|
-
default: deepEqual
|
|
9385
|
-
}
|
|
9386
|
+
valueComparator: Function
|
|
9386
9387
|
}, 'list-items');
|
|
9387
9388
|
function transformItem$3(props, item) {
|
|
9388
9389
|
const title = getPropertyFromItem(item, props.itemTitle, item);
|
|
@@ -9403,29 +9404,85 @@
|
|
|
9403
9404
|
};
|
|
9404
9405
|
}
|
|
9405
9406
|
function transformItems$3(props, items) {
|
|
9407
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
|
9406
9408
|
const array = [];
|
|
9407
9409
|
for (const item of items) {
|
|
9408
|
-
array.push(transformItem$3(
|
|
9410
|
+
array.push(transformItem$3(_props, item));
|
|
9409
9411
|
}
|
|
9410
9412
|
return array;
|
|
9411
9413
|
}
|
|
9412
9414
|
function useItems(props) {
|
|
9413
9415
|
const items = vue.computed(() => transformItems$3(props, props.items));
|
|
9414
9416
|
const hasNullItem = vue.computed(() => items.value.some(item => item.value === null));
|
|
9417
|
+
const itemsMap = vue.shallowRef(new Map());
|
|
9418
|
+
const keylessItems = vue.shallowRef([]);
|
|
9419
|
+
vue.watchEffect(() => {
|
|
9420
|
+
const _items = items.value;
|
|
9421
|
+
const map = new Map();
|
|
9422
|
+
const keyless = [];
|
|
9423
|
+
for (let i = 0; i < _items.length; i++) {
|
|
9424
|
+
const item = _items[i];
|
|
9425
|
+
if (isPrimitive(item.value) || item.value === null) {
|
|
9426
|
+
let values = map.get(item.value);
|
|
9427
|
+
if (!values) {
|
|
9428
|
+
values = [];
|
|
9429
|
+
map.set(item.value, values);
|
|
9430
|
+
}
|
|
9431
|
+
values.push(item);
|
|
9432
|
+
} else {
|
|
9433
|
+
keyless.push(item);
|
|
9434
|
+
}
|
|
9435
|
+
}
|
|
9436
|
+
itemsMap.value = map;
|
|
9437
|
+
keylessItems.value = keyless;
|
|
9438
|
+
});
|
|
9415
9439
|
function transformIn(value) {
|
|
9416
|
-
|
|
9440
|
+
// Cache unrefed values outside the loop,
|
|
9441
|
+
// proxy getters can be slow when you call them a billion times
|
|
9442
|
+
const _value = vue.toRaw(value);
|
|
9443
|
+
const _items = itemsMap.value;
|
|
9444
|
+
const _allItems = items.value;
|
|
9445
|
+
const _keylessItems = keylessItems.value;
|
|
9446
|
+
const _hasNullItem = hasNullItem.value;
|
|
9447
|
+
const _returnObject = props.returnObject;
|
|
9448
|
+
const hasValueComparator = !!props.valueComparator;
|
|
9449
|
+
const valueComparator = props.valueComparator || deepEqual;
|
|
9450
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
|
9451
|
+
const returnValue = [];
|
|
9452
|
+
main: for (const v of _value) {
|
|
9417
9453
|
// When the model value is null, return an InternalItem
|
|
9418
9454
|
// based on null only if null is one of the items
|
|
9419
|
-
|
|
9420
|
-
|
|
9421
|
-
|
|
9422
|
-
if
|
|
9423
|
-
|
|
9424
|
-
|
|
9425
|
-
|
|
9455
|
+
if (!_hasNullItem && v === null) continue;
|
|
9456
|
+
|
|
9457
|
+
// String model value means value is a custom input value from combobox
|
|
9458
|
+
// Don't look up existing items if the model value is a string
|
|
9459
|
+
if (_returnObject && typeof v === 'string') {
|
|
9460
|
+
returnValue.push(transformItem$3(_props, v));
|
|
9461
|
+
continue;
|
|
9426
9462
|
}
|
|
9427
|
-
|
|
9428
|
-
|
|
9463
|
+
|
|
9464
|
+
// Fast path, items with primitive values and no
|
|
9465
|
+
// custom valueComparator can use a constant-time
|
|
9466
|
+
// map lookup instead of searching the items array
|
|
9467
|
+
const fastItems = _items.get(v);
|
|
9468
|
+
|
|
9469
|
+
// Slow path, always use valueComparator.
|
|
9470
|
+
// This is O(n^2) so we really don't want to
|
|
9471
|
+
// do it for more than a couple hundred items.
|
|
9472
|
+
if (hasValueComparator || !fastItems) {
|
|
9473
|
+
for (const item of hasValueComparator ? _allItems : _keylessItems) {
|
|
9474
|
+
if (valueComparator(v, item.value)) {
|
|
9475
|
+
returnValue.push(item);
|
|
9476
|
+
continue main;
|
|
9477
|
+
}
|
|
9478
|
+
}
|
|
9479
|
+
// Not an existing item, construct it from the model (#4000)
|
|
9480
|
+
returnValue.push(transformItem$3(_props, v));
|
|
9481
|
+
continue;
|
|
9482
|
+
}
|
|
9483
|
+
returnValue.push(...fastItems);
|
|
9484
|
+
}
|
|
9485
|
+
return returnValue;
|
|
9429
9486
|
}
|
|
9430
9487
|
function transformOut(value) {
|
|
9431
9488
|
return props.returnObject ? value.map(_ref => {
|
|
@@ -9449,9 +9506,6 @@
|
|
|
9449
9506
|
|
|
9450
9507
|
// Types
|
|
9451
9508
|
|
|
9452
|
-
function isPrimitive(value) {
|
|
9453
|
-
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
|
9454
|
-
}
|
|
9455
9509
|
function transformItem$2(props, item) {
|
|
9456
9510
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
|
9457
9511
|
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
|
@@ -12404,34 +12458,6 @@
|
|
|
12404
12458
|
}; // typescript doesn't know about vue's event merging
|
|
12405
12459
|
}
|
|
12406
12460
|
|
|
12407
|
-
// https://github.com/vuetifyjs/vuetify/issues/20003
|
|
12408
|
-
/**
|
|
12409
|
-
* This composable is designed to track whether the mouse is in a mousedown state at any given time. The original motivation is that
|
|
12410
|
-
* it is impossible to distinguish whether a blur event is triggered by mousedown, keydown, or via JavaScript.
|
|
12411
|
-
* This composable allows for conditional logic when a blur is triggered by mousedown.
|
|
12412
|
-
*/
|
|
12413
|
-
|
|
12414
|
-
function useIsMousedown() {
|
|
12415
|
-
const isMousedown = vue.shallowRef(false);
|
|
12416
|
-
function mousedown() {
|
|
12417
|
-
isMousedown.value = true;
|
|
12418
|
-
}
|
|
12419
|
-
function mouseup() {
|
|
12420
|
-
isMousedown.value = false;
|
|
12421
|
-
}
|
|
12422
|
-
vue.onMounted(() => {
|
|
12423
|
-
document.body.addEventListener('mousedown', mousedown);
|
|
12424
|
-
document.body.addEventListener('mouseup', mouseup);
|
|
12425
|
-
});
|
|
12426
|
-
vue.onUnmounted(() => {
|
|
12427
|
-
document.body.removeEventListener('mousedown', mousedown);
|
|
12428
|
-
document.body.removeEventListener('mouseup', mouseup);
|
|
12429
|
-
});
|
|
12430
|
-
return {
|
|
12431
|
-
isMousedown
|
|
12432
|
-
};
|
|
12433
|
-
}
|
|
12434
|
-
|
|
12435
12461
|
// Types
|
|
12436
12462
|
|
|
12437
12463
|
const makeSelectProps = propsFactory({
|
|
@@ -12521,9 +12547,6 @@
|
|
|
12521
12547
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
|
|
12522
12548
|
});
|
|
12523
12549
|
const form = useForm(props);
|
|
12524
|
-
const {
|
|
12525
|
-
isMousedown
|
|
12526
|
-
} = useIsMousedown();
|
|
12527
12550
|
const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
|
|
12528
12551
|
const isFocused = vue.shallowRef(false);
|
|
12529
12552
|
const label = vue.computed(() => menu.value ? props.closeText : props.openText);
|
|
@@ -12531,7 +12554,7 @@
|
|
|
12531
12554
|
let keyboardLookupLastTime;
|
|
12532
12555
|
const displayItems = vue.computed(() => {
|
|
12533
12556
|
if (props.hideSelected) {
|
|
12534
|
-
return items.value.filter(item => !model.value.some(s => props.valueComparator(s, item)));
|
|
12557
|
+
return items.value.filter(item => !model.value.some(s => (props.valueComparator || deepEqual)(s, item)));
|
|
12535
12558
|
}
|
|
12536
12559
|
return items.value;
|
|
12537
12560
|
});
|
|
@@ -12603,7 +12626,7 @@
|
|
|
12603
12626
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
12604
12627
|
if (item.props.disabled) return;
|
|
12605
12628
|
if (props.multiple) {
|
|
12606
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
12629
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
12607
12630
|
const add = set == null ? !~index : set;
|
|
12608
12631
|
if (~index) {
|
|
12609
12632
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -12621,7 +12644,7 @@
|
|
|
12621
12644
|
}
|
|
12622
12645
|
}
|
|
12623
12646
|
function onBlur(e) {
|
|
12624
|
-
if (!listRef.value?.$el.contains(e.relatedTarget)
|
|
12647
|
+
if (!listRef.value?.$el.contains(e.relatedTarget)) {
|
|
12625
12648
|
menu.value = false;
|
|
12626
12649
|
}
|
|
12627
12650
|
}
|
|
@@ -12650,7 +12673,7 @@
|
|
|
12650
12673
|
}
|
|
12651
12674
|
vue.watch(menu, () => {
|
|
12652
12675
|
if (!props.hideSelected && menu.value && model.value.length) {
|
|
12653
|
-
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
12676
|
+
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
|
12654
12677
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
12655
12678
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
12656
12679
|
});
|
|
@@ -13033,9 +13056,6 @@
|
|
|
13033
13056
|
textColorClasses,
|
|
13034
13057
|
textColorStyles
|
|
13035
13058
|
} = useTextColor(color);
|
|
13036
|
-
const {
|
|
13037
|
-
isMousedown
|
|
13038
|
-
} = useIsMousedown();
|
|
13039
13059
|
const search = useProxiedModel(props, 'search', '');
|
|
13040
13060
|
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
|
13041
13061
|
const transformed = transformOut(v);
|
|
@@ -13185,7 +13205,7 @@
|
|
|
13185
13205
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
13186
13206
|
if (!item || item.props.disabled) return;
|
|
13187
13207
|
if (props.multiple) {
|
|
13188
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
13208
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
13189
13209
|
const add = set == null ? !~index : set;
|
|
13190
13210
|
if (~index) {
|
|
13191
13211
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -13209,11 +13229,6 @@
|
|
|
13209
13229
|
});
|
|
13210
13230
|
}
|
|
13211
13231
|
}
|
|
13212
|
-
function onBlur(e) {
|
|
13213
|
-
if (!isMousedown.value) {
|
|
13214
|
-
menu.value = false;
|
|
13215
|
-
}
|
|
13216
|
-
}
|
|
13217
13232
|
vue.watch(isFocused, (val, oldVal) => {
|
|
13218
13233
|
if (val === oldVal) return;
|
|
13219
13234
|
if (val) {
|
|
@@ -13223,6 +13238,7 @@
|
|
|
13223
13238
|
vue.nextTick(() => isSelecting.value = false);
|
|
13224
13239
|
} else {
|
|
13225
13240
|
if (!props.multiple && search.value == null) model.value = [];
|
|
13241
|
+
menu.value = false;
|
|
13226
13242
|
if (!model.value.some(_ref3 => {
|
|
13227
13243
|
let {
|
|
13228
13244
|
title
|
|
@@ -13276,7 +13292,6 @@
|
|
|
13276
13292
|
"readonly": form.isReadonly.value,
|
|
13277
13293
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
13278
13294
|
"onClick:clear": onClear,
|
|
13279
|
-
"onBlur": onBlur,
|
|
13280
13295
|
"onMousedown:control": onMousedownControl,
|
|
13281
13296
|
"onKeydown": onKeydown
|
|
13282
13297
|
}), {
|
|
@@ -15579,6 +15594,8 @@
|
|
|
15579
15594
|
const trackContainerRef = vue.ref();
|
|
15580
15595
|
const activeThumbRef = vue.ref();
|
|
15581
15596
|
function parseMouseMove(e) {
|
|
15597
|
+
const el = trackContainerRef.value?.$el;
|
|
15598
|
+
if (!el) return;
|
|
15582
15599
|
const vertical = props.direction === 'vertical';
|
|
15583
15600
|
const start = vertical ? 'top' : 'left';
|
|
15584
15601
|
const length = vertical ? 'height' : 'width';
|
|
@@ -15586,7 +15603,7 @@
|
|
|
15586
15603
|
const {
|
|
15587
15604
|
[start]: trackStart,
|
|
15588
15605
|
[length]: trackLength
|
|
15589
|
-
} =
|
|
15606
|
+
} = el.getBoundingClientRect();
|
|
15590
15607
|
const clickOffset = getPosition(e, position);
|
|
15591
15608
|
|
|
15592
15609
|
// It is possible for left to be NaN, force to number
|
|
@@ -15595,13 +15612,17 @@
|
|
|
15595
15612
|
return roundValue(min.value + clickPos * (max.value - min.value));
|
|
15596
15613
|
}
|
|
15597
15614
|
const handleStop = e => {
|
|
15598
|
-
|
|
15599
|
-
|
|
15600
|
-
|
|
15615
|
+
const value = parseMouseMove(e);
|
|
15616
|
+
if (value != null) {
|
|
15617
|
+
onSliderEnd({
|
|
15618
|
+
value
|
|
15619
|
+
});
|
|
15620
|
+
}
|
|
15601
15621
|
mousePressed.value = false;
|
|
15602
15622
|
startOffset.value = 0;
|
|
15603
15623
|
};
|
|
15604
15624
|
const handleStart = e => {
|
|
15625
|
+
const value = parseMouseMove(e);
|
|
15605
15626
|
activeThumbRef.value = getActiveThumb(e);
|
|
15606
15627
|
if (!activeThumbRef.value) return;
|
|
15607
15628
|
mousePressed.value = true;
|
|
@@ -15609,13 +15630,17 @@
|
|
|
15609
15630
|
startOffset.value = getOffset(e, activeThumbRef.value, props.direction);
|
|
15610
15631
|
} else {
|
|
15611
15632
|
startOffset.value = 0;
|
|
15612
|
-
|
|
15613
|
-
|
|
15633
|
+
if (value != null) {
|
|
15634
|
+
onSliderMove({
|
|
15635
|
+
value
|
|
15636
|
+
});
|
|
15637
|
+
}
|
|
15638
|
+
}
|
|
15639
|
+
if (value != null) {
|
|
15640
|
+
onSliderStart({
|
|
15641
|
+
value
|
|
15614
15642
|
});
|
|
15615
15643
|
}
|
|
15616
|
-
onSliderStart({
|
|
15617
|
-
value: parseMouseMove(e)
|
|
15618
|
-
});
|
|
15619
15644
|
vue.nextTick(() => activeThumbRef.value?.focus());
|
|
15620
15645
|
};
|
|
15621
15646
|
const moveListenerOptions = {
|
|
@@ -15623,9 +15648,12 @@
|
|
|
15623
15648
|
capture: true
|
|
15624
15649
|
};
|
|
15625
15650
|
function onMouseMove(e) {
|
|
15626
|
-
|
|
15627
|
-
|
|
15628
|
-
|
|
15651
|
+
const value = parseMouseMove(e);
|
|
15652
|
+
if (value != null) {
|
|
15653
|
+
onSliderMove({
|
|
15654
|
+
value
|
|
15655
|
+
});
|
|
15656
|
+
}
|
|
15629
15657
|
}
|
|
15630
15658
|
function onSliderMouseUp(e) {
|
|
15631
15659
|
e.stopPropagation();
|
|
@@ -16896,9 +16924,6 @@
|
|
|
16896
16924
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
16897
16925
|
});
|
|
16898
16926
|
const form = useForm(props);
|
|
16899
|
-
const {
|
|
16900
|
-
isMousedown
|
|
16901
|
-
} = useIsMousedown();
|
|
16902
16927
|
const hasChips = vue.computed(() => !!(props.chips || slots.chip));
|
|
16903
16928
|
const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
|
|
16904
16929
|
const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
@@ -17062,18 +17087,12 @@
|
|
|
17062
17087
|
vTextFieldRef.value?.focus();
|
|
17063
17088
|
}
|
|
17064
17089
|
}
|
|
17065
|
-
function onBlur(e) {
|
|
17066
|
-
if (!isMousedown.value) {
|
|
17067
|
-
menu.value = false;
|
|
17068
|
-
}
|
|
17069
|
-
}
|
|
17070
|
-
|
|
17071
17090
|
/** @param set - null means toggle */
|
|
17072
17091
|
function select(item) {
|
|
17073
17092
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
17074
17093
|
if (!item || item.props.disabled) return;
|
|
17075
17094
|
if (props.multiple) {
|
|
17076
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
17095
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
17077
17096
|
const add = set == null ? !~index : set;
|
|
17078
17097
|
if (~index) {
|
|
17079
17098
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -17112,6 +17131,7 @@
|
|
|
17112
17131
|
vue.watch(isFocused, (val, oldVal) => {
|
|
17113
17132
|
if (val || val === oldVal) return;
|
|
17114
17133
|
selectionIndex.value = -1;
|
|
17134
|
+
menu.value = false;
|
|
17115
17135
|
if (search.value) {
|
|
17116
17136
|
if (props.multiple) {
|
|
17117
17137
|
select(transformItem$3(props, search.value));
|
|
@@ -17132,7 +17152,7 @@
|
|
|
17132
17152
|
});
|
|
17133
17153
|
vue.watch(menu, () => {
|
|
17134
17154
|
if (!props.hideSelected && menu.value && model.value.length) {
|
|
17135
|
-
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
17155
|
+
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
|
17136
17156
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
17137
17157
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
17138
17158
|
});
|
|
@@ -17169,7 +17189,6 @@
|
|
|
17169
17189
|
"readonly": form.isReadonly.value,
|
|
17170
17190
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
17171
17191
|
"onClick:clear": onClear,
|
|
17172
|
-
"onBlur": onBlur,
|
|
17173
17192
|
"onMousedown:control": onMousedownControl,
|
|
17174
17193
|
"onKeydown": onKeydown
|
|
17175
17194
|
}), {
|
|
@@ -21767,7 +21786,7 @@
|
|
|
21767
21786
|
type: String,
|
|
21768
21787
|
default: 'picker-reverse-transition'
|
|
21769
21788
|
},
|
|
21770
|
-
...makeCalendarProps()
|
|
21789
|
+
...omit(makeCalendarProps(), ['displayValue'])
|
|
21771
21790
|
}, 'VDatePickerMonth');
|
|
21772
21791
|
const VDatePickerMonth = genericComponent()({
|
|
21773
21792
|
name: 'VDatePickerMonth',
|
|
@@ -28176,7 +28195,7 @@
|
|
|
28176
28195
|
...omit(makeVDatePickerProps({
|
|
28177
28196
|
weeksInMonth: 'dynamic',
|
|
28178
28197
|
hideHeader: true
|
|
28179
|
-
}), ['active', 'location'])
|
|
28198
|
+
}), ['active', 'location', 'rounded'])
|
|
28180
28199
|
}, 'VDateInput');
|
|
28181
28200
|
const VDateInput = genericComponent()({
|
|
28182
28201
|
name: 'VDateInput',
|
|
@@ -28197,8 +28216,9 @@
|
|
|
28197
28216
|
focus,
|
|
28198
28217
|
blur
|
|
28199
28218
|
} = useFocus(props);
|
|
28200
|
-
const model = useProxiedModel(props, 'modelValue', props.multiple ? [] : null);
|
|
28219
|
+
const model = useProxiedModel(props, 'modelValue', props.multiple ? [] : null, val => Array.isArray(val) ? val.map(item => adapter.toJsDate(item)) : val ? adapter.toJsDate(val) : val, val => Array.isArray(val) ? val.map(item => adapter.date(item)) : val ? adapter.date(val) : val);
|
|
28201
28220
|
const menu = vue.shallowRef(false);
|
|
28221
|
+
const vDateInputRef = vue.ref();
|
|
28202
28222
|
const display = vue.computed(() => {
|
|
28203
28223
|
const value = wrapInArray(model.value);
|
|
28204
28224
|
if (!value.length) return null;
|
|
@@ -28220,7 +28240,7 @@
|
|
|
28220
28240
|
return;
|
|
28221
28241
|
}
|
|
28222
28242
|
const target = e.target;
|
|
28223
|
-
model.value =
|
|
28243
|
+
model.value = target.value;
|
|
28224
28244
|
}
|
|
28225
28245
|
function onClick(e) {
|
|
28226
28246
|
e.preventDefault();
|
|
@@ -28230,11 +28250,17 @@
|
|
|
28230
28250
|
function onSave() {
|
|
28231
28251
|
menu.value = false;
|
|
28232
28252
|
}
|
|
28253
|
+
function onUpdateModel(value) {
|
|
28254
|
+
if (value != null) return;
|
|
28255
|
+
model.value = null;
|
|
28256
|
+
}
|
|
28233
28257
|
useRender(() => {
|
|
28234
28258
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
|
28235
|
-
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location']));
|
|
28259
|
+
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
|
28236
28260
|
const textFieldProps = VTextField.filterProps(props);
|
|
28237
|
-
return vue.createVNode(VTextField, vue.mergeProps(
|
|
28261
|
+
return vue.createVNode(VTextField, vue.mergeProps({
|
|
28262
|
+
"ref": vDateInputRef
|
|
28263
|
+
}, textFieldProps, {
|
|
28238
28264
|
"class": props.class,
|
|
28239
28265
|
"style": props.style,
|
|
28240
28266
|
"modelValue": display.value,
|
|
@@ -28243,7 +28269,8 @@
|
|
|
28243
28269
|
"onFocus": focus,
|
|
28244
28270
|
"onBlur": blur,
|
|
28245
28271
|
"onClick:control": isInteractive.value ? onClick : undefined,
|
|
28246
|
-
"onClick:prepend": isInteractive.value ? onClick : undefined
|
|
28272
|
+
"onClick:prepend": isInteractive.value ? onClick : undefined,
|
|
28273
|
+
"onUpdate:modelValue": onUpdateModel
|
|
28247
28274
|
}), {
|
|
28248
28275
|
default: () => [vue.createVNode(VMenu, {
|
|
28249
28276
|
"modelValue": menu.value,
|
|
@@ -28291,6 +28318,7 @@
|
|
|
28291
28318
|
}), slots.default?.()]
|
|
28292
28319
|
});
|
|
28293
28320
|
});
|
|
28321
|
+
return forwardRefs({}, vDateInputRef);
|
|
28294
28322
|
}
|
|
28295
28323
|
});
|
|
28296
28324
|
|
|
@@ -30869,7 +30897,7 @@
|
|
|
30869
30897
|
goTo
|
|
30870
30898
|
};
|
|
30871
30899
|
}
|
|
30872
|
-
const version$1 = "3.7.
|
|
30900
|
+
const version$1 = "3.7.12";
|
|
30873
30901
|
createVuetify$1.version = version$1;
|
|
30874
30902
|
|
|
30875
30903
|
// Vue's inject() can only be used in setup
|
|
@@ -31122,7 +31150,7 @@
|
|
|
31122
31150
|
|
|
31123
31151
|
/* eslint-disable local-rules/sort-imports */
|
|
31124
31152
|
|
|
31125
|
-
const version = "3.7.
|
|
31153
|
+
const version = "3.7.12";
|
|
31126
31154
|
|
|
31127
31155
|
/* eslint-disable local-rules/sort-imports */
|
|
31128
31156
|
|