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.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, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, 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, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, 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
|
// Types
|
|
10
10
|
// eslint-disable-line vue/prefer-import-from-vue
|
|
@@ -577,6 +577,9 @@ function checkPrintable(e) {
|
|
|
577
577
|
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
|
578
578
|
return isPrintableChar && noModifier;
|
|
579
579
|
}
|
|
580
|
+
function isPrimitive(value) {
|
|
581
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';
|
|
582
|
+
}
|
|
580
583
|
|
|
581
584
|
// Utilities
|
|
582
585
|
const block = ['top', 'bottom'];
|
|
@@ -5345,11 +5348,13 @@ const ripples = {
|
|
|
5345
5348
|
animation.classList.add('v-ripple__animation--visible');
|
|
5346
5349
|
transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
|
5347
5350
|
animation.dataset.activated = String(performance.now());
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5351
|
-
|
|
5352
|
-
|
|
5351
|
+
requestAnimationFrame(() => {
|
|
5352
|
+
requestAnimationFrame(() => {
|
|
5353
|
+
animation.classList.remove('v-ripple__animation--enter');
|
|
5354
|
+
animation.classList.add('v-ripple__animation--in');
|
|
5355
|
+
transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
|
5356
|
+
});
|
|
5357
|
+
});
|
|
5353
5358
|
},
|
|
5354
5359
|
hide(el) {
|
|
5355
5360
|
if (!el?._ripple?.enabled) return;
|
|
@@ -8344,12 +8349,12 @@ const independentSelectStrategy = mandatory => {
|
|
|
8344
8349
|
return selected;
|
|
8345
8350
|
},
|
|
8346
8351
|
in: (v, children, parents) => {
|
|
8347
|
-
|
|
8352
|
+
const map = new Map();
|
|
8348
8353
|
for (const id of v || []) {
|
|
8349
|
-
|
|
8354
|
+
strategy.select({
|
|
8350
8355
|
id,
|
|
8351
8356
|
value: true,
|
|
8352
|
-
selected:
|
|
8357
|
+
selected: map,
|
|
8353
8358
|
children,
|
|
8354
8359
|
parents
|
|
8355
8360
|
});
|
|
@@ -8384,11 +8389,10 @@ const independentSingleSelectStrategy = mandatory => {
|
|
|
8384
8389
|
});
|
|
8385
8390
|
},
|
|
8386
8391
|
in: (v, children, parents) => {
|
|
8387
|
-
let map = new Map();
|
|
8388
8392
|
if (v?.length) {
|
|
8389
|
-
|
|
8393
|
+
return parentStrategy.in(v.slice(0, 1), children, parents);
|
|
8390
8394
|
}
|
|
8391
|
-
return
|
|
8395
|
+
return new Map();
|
|
8392
8396
|
},
|
|
8393
8397
|
out: (v, children, parents) => {
|
|
8394
8398
|
return parentStrategy.out(v, children, parents);
|
|
@@ -8491,7 +8495,7 @@ const classicSelectStrategy = mandatory => {
|
|
|
8491
8495
|
map = strategy.select({
|
|
8492
8496
|
id,
|
|
8493
8497
|
value: true,
|
|
8494
|
-
selected:
|
|
8498
|
+
selected: map,
|
|
8495
8499
|
children,
|
|
8496
8500
|
parents
|
|
8497
8501
|
});
|
|
@@ -9375,10 +9379,7 @@ const makeItemsProps = propsFactory({
|
|
|
9375
9379
|
default: 'props'
|
|
9376
9380
|
},
|
|
9377
9381
|
returnObject: Boolean,
|
|
9378
|
-
valueComparator:
|
|
9379
|
-
type: Function,
|
|
9380
|
-
default: deepEqual
|
|
9381
|
-
}
|
|
9382
|
+
valueComparator: Function
|
|
9382
9383
|
}, 'list-items');
|
|
9383
9384
|
function transformItem$3(props, item) {
|
|
9384
9385
|
const title = getPropertyFromItem(item, props.itemTitle, item);
|
|
@@ -9399,29 +9400,85 @@ function transformItem$3(props, item) {
|
|
|
9399
9400
|
};
|
|
9400
9401
|
}
|
|
9401
9402
|
function transformItems$3(props, items) {
|
|
9403
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
|
9402
9404
|
const array = [];
|
|
9403
9405
|
for (const item of items) {
|
|
9404
|
-
array.push(transformItem$3(
|
|
9406
|
+
array.push(transformItem$3(_props, item));
|
|
9405
9407
|
}
|
|
9406
9408
|
return array;
|
|
9407
9409
|
}
|
|
9408
9410
|
function useItems(props) {
|
|
9409
9411
|
const items = computed(() => transformItems$3(props, props.items));
|
|
9410
9412
|
const hasNullItem = computed(() => items.value.some(item => item.value === null));
|
|
9413
|
+
const itemsMap = shallowRef(new Map());
|
|
9414
|
+
const keylessItems = shallowRef([]);
|
|
9415
|
+
watchEffect(() => {
|
|
9416
|
+
const _items = items.value;
|
|
9417
|
+
const map = new Map();
|
|
9418
|
+
const keyless = [];
|
|
9419
|
+
for (let i = 0; i < _items.length; i++) {
|
|
9420
|
+
const item = _items[i];
|
|
9421
|
+
if (isPrimitive(item.value) || item.value === null) {
|
|
9422
|
+
let values = map.get(item.value);
|
|
9423
|
+
if (!values) {
|
|
9424
|
+
values = [];
|
|
9425
|
+
map.set(item.value, values);
|
|
9426
|
+
}
|
|
9427
|
+
values.push(item);
|
|
9428
|
+
} else {
|
|
9429
|
+
keyless.push(item);
|
|
9430
|
+
}
|
|
9431
|
+
}
|
|
9432
|
+
itemsMap.value = map;
|
|
9433
|
+
keylessItems.value = keyless;
|
|
9434
|
+
});
|
|
9411
9435
|
function transformIn(value) {
|
|
9412
|
-
|
|
9436
|
+
// Cache unrefed values outside the loop,
|
|
9437
|
+
// proxy getters can be slow when you call them a billion times
|
|
9438
|
+
const _value = toRaw(value);
|
|
9439
|
+
const _items = itemsMap.value;
|
|
9440
|
+
const _allItems = items.value;
|
|
9441
|
+
const _keylessItems = keylessItems.value;
|
|
9442
|
+
const _hasNullItem = hasNullItem.value;
|
|
9443
|
+
const _returnObject = props.returnObject;
|
|
9444
|
+
const hasValueComparator = !!props.valueComparator;
|
|
9445
|
+
const valueComparator = props.valueComparator || deepEqual;
|
|
9446
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
|
9447
|
+
const returnValue = [];
|
|
9448
|
+
main: for (const v of _value) {
|
|
9413
9449
|
// When the model value is null, return an InternalItem
|
|
9414
9450
|
// based on null only if null is one of the items
|
|
9415
|
-
|
|
9416
|
-
|
|
9417
|
-
|
|
9418
|
-
if
|
|
9419
|
-
|
|
9420
|
-
|
|
9421
|
-
|
|
9451
|
+
if (!_hasNullItem && v === null) continue;
|
|
9452
|
+
|
|
9453
|
+
// String model value means value is a custom input value from combobox
|
|
9454
|
+
// Don't look up existing items if the model value is a string
|
|
9455
|
+
if (_returnObject && typeof v === 'string') {
|
|
9456
|
+
returnValue.push(transformItem$3(_props, v));
|
|
9457
|
+
continue;
|
|
9422
9458
|
}
|
|
9423
|
-
|
|
9424
|
-
|
|
9459
|
+
|
|
9460
|
+
// Fast path, items with primitive values and no
|
|
9461
|
+
// custom valueComparator can use a constant-time
|
|
9462
|
+
// map lookup instead of searching the items array
|
|
9463
|
+
const fastItems = _items.get(v);
|
|
9464
|
+
|
|
9465
|
+
// Slow path, always use valueComparator.
|
|
9466
|
+
// This is O(n^2) so we really don't want to
|
|
9467
|
+
// do it for more than a couple hundred items.
|
|
9468
|
+
if (hasValueComparator || !fastItems) {
|
|
9469
|
+
for (const item of hasValueComparator ? _allItems : _keylessItems) {
|
|
9470
|
+
if (valueComparator(v, item.value)) {
|
|
9471
|
+
returnValue.push(item);
|
|
9472
|
+
continue main;
|
|
9473
|
+
}
|
|
9474
|
+
}
|
|
9475
|
+
// Not an existing item, construct it from the model (#4000)
|
|
9476
|
+
returnValue.push(transformItem$3(_props, v));
|
|
9477
|
+
continue;
|
|
9478
|
+
}
|
|
9479
|
+
returnValue.push(...fastItems);
|
|
9480
|
+
}
|
|
9481
|
+
return returnValue;
|
|
9425
9482
|
}
|
|
9426
9483
|
function transformOut(value) {
|
|
9427
9484
|
return props.returnObject ? value.map(_ref => {
|
|
@@ -9445,9 +9502,6 @@ function useItems(props) {
|
|
|
9445
9502
|
|
|
9446
9503
|
// Types
|
|
9447
9504
|
|
|
9448
|
-
function isPrimitive(value) {
|
|
9449
|
-
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
|
9450
|
-
}
|
|
9451
9505
|
function transformItem$2(props, item) {
|
|
9452
9506
|
const type = getPropertyFromItem(item, props.itemType, 'item');
|
|
9453
9507
|
const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
|
|
@@ -12400,34 +12454,6 @@ function useScrolling(listRef, textFieldRef) {
|
|
|
12400
12454
|
}; // typescript doesn't know about vue's event merging
|
|
12401
12455
|
}
|
|
12402
12456
|
|
|
12403
|
-
// https://github.com/vuetifyjs/vuetify/issues/20003
|
|
12404
|
-
/**
|
|
12405
|
-
* This composable is designed to track whether the mouse is in a mousedown state at any given time. The original motivation is that
|
|
12406
|
-
* it is impossible to distinguish whether a blur event is triggered by mousedown, keydown, or via JavaScript.
|
|
12407
|
-
* This composable allows for conditional logic when a blur is triggered by mousedown.
|
|
12408
|
-
*/
|
|
12409
|
-
|
|
12410
|
-
function useIsMousedown() {
|
|
12411
|
-
const isMousedown = shallowRef(false);
|
|
12412
|
-
function mousedown() {
|
|
12413
|
-
isMousedown.value = true;
|
|
12414
|
-
}
|
|
12415
|
-
function mouseup() {
|
|
12416
|
-
isMousedown.value = false;
|
|
12417
|
-
}
|
|
12418
|
-
onMounted(() => {
|
|
12419
|
-
document.body.addEventListener('mousedown', mousedown);
|
|
12420
|
-
document.body.addEventListener('mouseup', mouseup);
|
|
12421
|
-
});
|
|
12422
|
-
onUnmounted(() => {
|
|
12423
|
-
document.body.removeEventListener('mousedown', mousedown);
|
|
12424
|
-
document.body.removeEventListener('mouseup', mouseup);
|
|
12425
|
-
});
|
|
12426
|
-
return {
|
|
12427
|
-
isMousedown
|
|
12428
|
-
};
|
|
12429
|
-
}
|
|
12430
|
-
|
|
12431
12457
|
// Types
|
|
12432
12458
|
|
|
12433
12459
|
const makeSelectProps = propsFactory({
|
|
@@ -12517,9 +12543,6 @@ const VSelect = genericComponent()({
|
|
|
12517
12543
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
|
|
12518
12544
|
});
|
|
12519
12545
|
const form = useForm(props);
|
|
12520
|
-
const {
|
|
12521
|
-
isMousedown
|
|
12522
|
-
} = useIsMousedown();
|
|
12523
12546
|
const selectedValues = computed(() => model.value.map(selection => selection.value));
|
|
12524
12547
|
const isFocused = shallowRef(false);
|
|
12525
12548
|
const label = computed(() => menu.value ? props.closeText : props.openText);
|
|
@@ -12527,7 +12550,7 @@ const VSelect = genericComponent()({
|
|
|
12527
12550
|
let keyboardLookupLastTime;
|
|
12528
12551
|
const displayItems = computed(() => {
|
|
12529
12552
|
if (props.hideSelected) {
|
|
12530
|
-
return items.value.filter(item => !model.value.some(s => props.valueComparator(s, item)));
|
|
12553
|
+
return items.value.filter(item => !model.value.some(s => (props.valueComparator || deepEqual)(s, item)));
|
|
12531
12554
|
}
|
|
12532
12555
|
return items.value;
|
|
12533
12556
|
});
|
|
@@ -12599,7 +12622,7 @@ const VSelect = genericComponent()({
|
|
|
12599
12622
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
12600
12623
|
if (item.props.disabled) return;
|
|
12601
12624
|
if (props.multiple) {
|
|
12602
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
12625
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
12603
12626
|
const add = set == null ? !~index : set;
|
|
12604
12627
|
if (~index) {
|
|
12605
12628
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -12617,7 +12640,7 @@ const VSelect = genericComponent()({
|
|
|
12617
12640
|
}
|
|
12618
12641
|
}
|
|
12619
12642
|
function onBlur(e) {
|
|
12620
|
-
if (!listRef.value?.$el.contains(e.relatedTarget)
|
|
12643
|
+
if (!listRef.value?.$el.contains(e.relatedTarget)) {
|
|
12621
12644
|
menu.value = false;
|
|
12622
12645
|
}
|
|
12623
12646
|
}
|
|
@@ -12646,7 +12669,7 @@ const VSelect = genericComponent()({
|
|
|
12646
12669
|
}
|
|
12647
12670
|
watch(menu, () => {
|
|
12648
12671
|
if (!props.hideSelected && menu.value && model.value.length) {
|
|
12649
|
-
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
12672
|
+
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
|
12650
12673
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
12651
12674
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
12652
12675
|
});
|
|
@@ -13029,9 +13052,6 @@ const VAutocomplete = genericComponent()({
|
|
|
13029
13052
|
textColorClasses,
|
|
13030
13053
|
textColorStyles
|
|
13031
13054
|
} = useTextColor(color);
|
|
13032
|
-
const {
|
|
13033
|
-
isMousedown
|
|
13034
|
-
} = useIsMousedown();
|
|
13035
13055
|
const search = useProxiedModel(props, 'search', '');
|
|
13036
13056
|
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
|
13037
13057
|
const transformed = transformOut(v);
|
|
@@ -13181,7 +13201,7 @@ const VAutocomplete = genericComponent()({
|
|
|
13181
13201
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
13182
13202
|
if (!item || item.props.disabled) return;
|
|
13183
13203
|
if (props.multiple) {
|
|
13184
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
13204
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
13185
13205
|
const add = set == null ? !~index : set;
|
|
13186
13206
|
if (~index) {
|
|
13187
13207
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -13205,11 +13225,6 @@ const VAutocomplete = genericComponent()({
|
|
|
13205
13225
|
});
|
|
13206
13226
|
}
|
|
13207
13227
|
}
|
|
13208
|
-
function onBlur(e) {
|
|
13209
|
-
if (!isMousedown.value) {
|
|
13210
|
-
menu.value = false;
|
|
13211
|
-
}
|
|
13212
|
-
}
|
|
13213
13228
|
watch(isFocused, (val, oldVal) => {
|
|
13214
13229
|
if (val === oldVal) return;
|
|
13215
13230
|
if (val) {
|
|
@@ -13219,6 +13234,7 @@ const VAutocomplete = genericComponent()({
|
|
|
13219
13234
|
nextTick(() => isSelecting.value = false);
|
|
13220
13235
|
} else {
|
|
13221
13236
|
if (!props.multiple && search.value == null) model.value = [];
|
|
13237
|
+
menu.value = false;
|
|
13222
13238
|
if (!model.value.some(_ref3 => {
|
|
13223
13239
|
let {
|
|
13224
13240
|
title
|
|
@@ -13272,7 +13288,6 @@ const VAutocomplete = genericComponent()({
|
|
|
13272
13288
|
"readonly": form.isReadonly.value,
|
|
13273
13289
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
13274
13290
|
"onClick:clear": onClear,
|
|
13275
|
-
"onBlur": onBlur,
|
|
13276
13291
|
"onMousedown:control": onMousedownControl,
|
|
13277
13292
|
"onKeydown": onKeydown
|
|
13278
13293
|
}), {
|
|
@@ -15575,6 +15590,8 @@ const useSlider = _ref => {
|
|
|
15575
15590
|
const trackContainerRef = ref();
|
|
15576
15591
|
const activeThumbRef = ref();
|
|
15577
15592
|
function parseMouseMove(e) {
|
|
15593
|
+
const el = trackContainerRef.value?.$el;
|
|
15594
|
+
if (!el) return;
|
|
15578
15595
|
const vertical = props.direction === 'vertical';
|
|
15579
15596
|
const start = vertical ? 'top' : 'left';
|
|
15580
15597
|
const length = vertical ? 'height' : 'width';
|
|
@@ -15582,7 +15599,7 @@ const useSlider = _ref => {
|
|
|
15582
15599
|
const {
|
|
15583
15600
|
[start]: trackStart,
|
|
15584
15601
|
[length]: trackLength
|
|
15585
|
-
} =
|
|
15602
|
+
} = el.getBoundingClientRect();
|
|
15586
15603
|
const clickOffset = getPosition(e, position);
|
|
15587
15604
|
|
|
15588
15605
|
// It is possible for left to be NaN, force to number
|
|
@@ -15591,13 +15608,17 @@ const useSlider = _ref => {
|
|
|
15591
15608
|
return roundValue(min.value + clickPos * (max.value - min.value));
|
|
15592
15609
|
}
|
|
15593
15610
|
const handleStop = e => {
|
|
15594
|
-
|
|
15595
|
-
|
|
15596
|
-
|
|
15611
|
+
const value = parseMouseMove(e);
|
|
15612
|
+
if (value != null) {
|
|
15613
|
+
onSliderEnd({
|
|
15614
|
+
value
|
|
15615
|
+
});
|
|
15616
|
+
}
|
|
15597
15617
|
mousePressed.value = false;
|
|
15598
15618
|
startOffset.value = 0;
|
|
15599
15619
|
};
|
|
15600
15620
|
const handleStart = e => {
|
|
15621
|
+
const value = parseMouseMove(e);
|
|
15601
15622
|
activeThumbRef.value = getActiveThumb(e);
|
|
15602
15623
|
if (!activeThumbRef.value) return;
|
|
15603
15624
|
mousePressed.value = true;
|
|
@@ -15605,13 +15626,17 @@ const useSlider = _ref => {
|
|
|
15605
15626
|
startOffset.value = getOffset(e, activeThumbRef.value, props.direction);
|
|
15606
15627
|
} else {
|
|
15607
15628
|
startOffset.value = 0;
|
|
15608
|
-
|
|
15609
|
-
|
|
15629
|
+
if (value != null) {
|
|
15630
|
+
onSliderMove({
|
|
15631
|
+
value
|
|
15632
|
+
});
|
|
15633
|
+
}
|
|
15634
|
+
}
|
|
15635
|
+
if (value != null) {
|
|
15636
|
+
onSliderStart({
|
|
15637
|
+
value
|
|
15610
15638
|
});
|
|
15611
15639
|
}
|
|
15612
|
-
onSliderStart({
|
|
15613
|
-
value: parseMouseMove(e)
|
|
15614
|
-
});
|
|
15615
15640
|
nextTick(() => activeThumbRef.value?.focus());
|
|
15616
15641
|
};
|
|
15617
15642
|
const moveListenerOptions = {
|
|
@@ -15619,9 +15644,12 @@ const useSlider = _ref => {
|
|
|
15619
15644
|
capture: true
|
|
15620
15645
|
};
|
|
15621
15646
|
function onMouseMove(e) {
|
|
15622
|
-
|
|
15623
|
-
|
|
15624
|
-
|
|
15647
|
+
const value = parseMouseMove(e);
|
|
15648
|
+
if (value != null) {
|
|
15649
|
+
onSliderMove({
|
|
15650
|
+
value
|
|
15651
|
+
});
|
|
15652
|
+
}
|
|
15625
15653
|
}
|
|
15626
15654
|
function onSliderMouseUp(e) {
|
|
15627
15655
|
e.stopPropagation();
|
|
@@ -16892,9 +16920,6 @@ const VCombobox = genericComponent()({
|
|
|
16892
16920
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
16893
16921
|
});
|
|
16894
16922
|
const form = useForm(props);
|
|
16895
|
-
const {
|
|
16896
|
-
isMousedown
|
|
16897
|
-
} = useIsMousedown();
|
|
16898
16923
|
const hasChips = computed(() => !!(props.chips || slots.chip));
|
|
16899
16924
|
const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);
|
|
16900
16925
|
const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
@@ -17058,18 +17083,12 @@ const VCombobox = genericComponent()({
|
|
|
17058
17083
|
vTextFieldRef.value?.focus();
|
|
17059
17084
|
}
|
|
17060
17085
|
}
|
|
17061
|
-
function onBlur(e) {
|
|
17062
|
-
if (!isMousedown.value) {
|
|
17063
|
-
menu.value = false;
|
|
17064
|
-
}
|
|
17065
|
-
}
|
|
17066
|
-
|
|
17067
17086
|
/** @param set - null means toggle */
|
|
17068
17087
|
function select(item) {
|
|
17069
17088
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
17070
17089
|
if (!item || item.props.disabled) return;
|
|
17071
17090
|
if (props.multiple) {
|
|
17072
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
17091
|
+
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
17073
17092
|
const add = set == null ? !~index : set;
|
|
17074
17093
|
if (~index) {
|
|
17075
17094
|
const value = add ? [...model.value, item] : [...model.value];
|
|
@@ -17108,6 +17127,7 @@ const VCombobox = genericComponent()({
|
|
|
17108
17127
|
watch(isFocused, (val, oldVal) => {
|
|
17109
17128
|
if (val || val === oldVal) return;
|
|
17110
17129
|
selectionIndex.value = -1;
|
|
17130
|
+
menu.value = false;
|
|
17111
17131
|
if (search.value) {
|
|
17112
17132
|
if (props.multiple) {
|
|
17113
17133
|
select(transformItem$3(props, search.value));
|
|
@@ -17128,7 +17148,7 @@ const VCombobox = genericComponent()({
|
|
|
17128
17148
|
});
|
|
17129
17149
|
watch(menu, () => {
|
|
17130
17150
|
if (!props.hideSelected && menu.value && model.value.length) {
|
|
17131
|
-
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
17151
|
+
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
|
17132
17152
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
17133
17153
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
17134
17154
|
});
|
|
@@ -17165,7 +17185,6 @@ const VCombobox = genericComponent()({
|
|
|
17165
17185
|
"readonly": form.isReadonly.value,
|
|
17166
17186
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
17167
17187
|
"onClick:clear": onClear,
|
|
17168
|
-
"onBlur": onBlur,
|
|
17169
17188
|
"onMousedown:control": onMousedownControl,
|
|
17170
17189
|
"onKeydown": onKeydown
|
|
17171
17190
|
}), {
|
|
@@ -21763,7 +21782,7 @@ const makeVDatePickerMonthProps = propsFactory({
|
|
|
21763
21782
|
type: String,
|
|
21764
21783
|
default: 'picker-reverse-transition'
|
|
21765
21784
|
},
|
|
21766
|
-
...makeCalendarProps()
|
|
21785
|
+
...omit(makeCalendarProps(), ['displayValue'])
|
|
21767
21786
|
}, 'VDatePickerMonth');
|
|
21768
21787
|
const VDatePickerMonth = genericComponent()({
|
|
21769
21788
|
name: 'VDatePickerMonth',
|
|
@@ -28172,7 +28191,7 @@ const makeVDateInputProps = propsFactory({
|
|
|
28172
28191
|
...omit(makeVDatePickerProps({
|
|
28173
28192
|
weeksInMonth: 'dynamic',
|
|
28174
28193
|
hideHeader: true
|
|
28175
|
-
}), ['active', 'location'])
|
|
28194
|
+
}), ['active', 'location', 'rounded'])
|
|
28176
28195
|
}, 'VDateInput');
|
|
28177
28196
|
const VDateInput = genericComponent()({
|
|
28178
28197
|
name: 'VDateInput',
|
|
@@ -28193,8 +28212,9 @@ const VDateInput = genericComponent()({
|
|
|
28193
28212
|
focus,
|
|
28194
28213
|
blur
|
|
28195
28214
|
} = useFocus(props);
|
|
28196
|
-
const model = useProxiedModel(props, 'modelValue', props.multiple ? [] : null);
|
|
28215
|
+
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);
|
|
28197
28216
|
const menu = shallowRef(false);
|
|
28217
|
+
const vDateInputRef = ref();
|
|
28198
28218
|
const display = computed(() => {
|
|
28199
28219
|
const value = wrapInArray(model.value);
|
|
28200
28220
|
if (!value.length) return null;
|
|
@@ -28216,7 +28236,7 @@ const VDateInput = genericComponent()({
|
|
|
28216
28236
|
return;
|
|
28217
28237
|
}
|
|
28218
28238
|
const target = e.target;
|
|
28219
|
-
model.value =
|
|
28239
|
+
model.value = target.value;
|
|
28220
28240
|
}
|
|
28221
28241
|
function onClick(e) {
|
|
28222
28242
|
e.preventDefault();
|
|
@@ -28226,11 +28246,17 @@ const VDateInput = genericComponent()({
|
|
|
28226
28246
|
function onSave() {
|
|
28227
28247
|
menu.value = false;
|
|
28228
28248
|
}
|
|
28249
|
+
function onUpdateModel(value) {
|
|
28250
|
+
if (value != null) return;
|
|
28251
|
+
model.value = null;
|
|
28252
|
+
}
|
|
28229
28253
|
useRender(() => {
|
|
28230
28254
|
const confirmEditProps = VConfirmEdit.filterProps(props);
|
|
28231
|
-
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location']));
|
|
28255
|
+
const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
|
|
28232
28256
|
const textFieldProps = VTextField.filterProps(props);
|
|
28233
|
-
return createVNode(VTextField, mergeProps(
|
|
28257
|
+
return createVNode(VTextField, mergeProps({
|
|
28258
|
+
"ref": vDateInputRef
|
|
28259
|
+
}, textFieldProps, {
|
|
28234
28260
|
"class": props.class,
|
|
28235
28261
|
"style": props.style,
|
|
28236
28262
|
"modelValue": display.value,
|
|
@@ -28239,7 +28265,8 @@ const VDateInput = genericComponent()({
|
|
|
28239
28265
|
"onFocus": focus,
|
|
28240
28266
|
"onBlur": blur,
|
|
28241
28267
|
"onClick:control": isInteractive.value ? onClick : undefined,
|
|
28242
|
-
"onClick:prepend": isInteractive.value ? onClick : undefined
|
|
28268
|
+
"onClick:prepend": isInteractive.value ? onClick : undefined,
|
|
28269
|
+
"onUpdate:modelValue": onUpdateModel
|
|
28243
28270
|
}), {
|
|
28244
28271
|
default: () => [createVNode(VMenu, {
|
|
28245
28272
|
"modelValue": menu.value,
|
|
@@ -28287,6 +28314,7 @@ const VDateInput = genericComponent()({
|
|
|
28287
28314
|
}), slots.default?.()]
|
|
28288
28315
|
});
|
|
28289
28316
|
});
|
|
28317
|
+
return forwardRefs({}, vDateInputRef);
|
|
28290
28318
|
}
|
|
28291
28319
|
});
|
|
28292
28320
|
|
|
@@ -30865,7 +30893,7 @@ function createVuetify$1() {
|
|
|
30865
30893
|
goTo
|
|
30866
30894
|
};
|
|
30867
30895
|
}
|
|
30868
|
-
const version$1 = "3.7.
|
|
30896
|
+
const version$1 = "3.7.12";
|
|
30869
30897
|
createVuetify$1.version = version$1;
|
|
30870
30898
|
|
|
30871
30899
|
// Vue's inject() can only be used in setup
|
|
@@ -31118,7 +31146,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
31118
31146
|
|
|
31119
31147
|
/* eslint-disable local-rules/sort-imports */
|
|
31120
31148
|
|
|
31121
|
-
const version = "3.7.
|
|
31149
|
+
const version = "3.7.12";
|
|
31122
31150
|
|
|
31123
31151
|
/* eslint-disable local-rules/sort-imports */
|
|
31124
31152
|
|