vuetify 3.1.0 → 3.1.2
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 +46 -34
- package/dist/json/importMap.json +46 -46
- package/dist/json/tags.json +3 -0
- package/dist/json/web-types.json +144 -37
- package/dist/vuetify-labs.css +25749 -0
- package/dist/vuetify-labs.d.ts +25980 -38
- package/dist/vuetify-labs.esm.js +20181 -0
- package/dist/vuetify-labs.esm.js.map +1 -0
- package/dist/vuetify-labs.js +17271 -6823
- package/dist/vuetify-labs.min.css +12 -0
- package/dist/vuetify.css +8 -2
- package/dist/vuetify.d.ts +65 -17
- package/dist/vuetify.esm.js +203 -119
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +203 -119
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +410 -408
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +4 -4
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +17 -7
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +1 -0
- package/lib/components/VBtn/VBtn.mjs +9 -3
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VCard/VCard.mjs +5 -2
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +8 -2
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -0
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VChip/VChip.mjs +18 -4
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.ts +15 -2
- package/lib/components/VChipGroup/VChipGroup.mjs +1 -0
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +18 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +1 -0
- package/lib/components/VField/VField.mjs +3 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/index.d.ts +1 -0
- package/lib/components/VFileInput/VFileInput.css +1 -0
- package/lib/components/VFileInput/VFileInput.mjs +2 -0
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +1 -0
- package/lib/components/VFileInput/index.d.ts +1 -0
- package/lib/components/VGrid/VGrid.css +5 -0
- package/lib/components/VGrid/VGrid.sass +5 -0
- package/lib/components/VInput/VInput.mjs +3 -0
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +1 -0
- package/lib/components/VList/VListItem.css +1 -1
- package/lib/components/VList/VListItem.mjs +5 -1
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +1 -1
- package/lib/components/VList/index.d.ts +20 -1
- package/lib/components/VMessages/VMessages.mjs +3 -1
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs +13 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +18 -0
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -0
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +19 -9
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +1 -0
- package/lib/components/VSlider/VSlider.mjs +4 -1
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +5 -1
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.mjs +2 -0
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VTextField/index.d.ts +1 -0
- package/lib/components/VTextarea/index.d.ts +1 -0
- package/lib/components/index.d.ts +53 -5
- package/lib/components/transitions/dialog-transition.mjs +3 -9
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/composables/filter.mjs +3 -3
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/teleport.mjs +6 -7
- package/lib/composables/teleport.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +12 -12
- package/lib/labs/VDataTable/VDataTable.mjs +8 -5
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +3 -3
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +36 -8
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +4 -4
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +4 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/group.mjs +9 -4
- package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/sort.mjs +3 -5
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/allComponents.mjs +3 -0
- package/lib/labs/allComponents.mjs.map +1 -0
- package/lib/labs/entry-bundler.mjs +14 -0
- package/lib/labs/entry-bundler.mjs.map +1 -0
- package/lib/util/defineComponent.mjs +1 -1
- package/lib/util/defineComponent.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.1.
|
|
2
|
+
* Vuetify v3.1.2
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -994,7 +994,7 @@
|
|
|
994
994
|
// Utils
|
|
995
995
|
function propIsDefined(vnode, prop) {
|
|
996
996
|
var _vnode$props, _vnode$props2;
|
|
997
|
-
return ((_vnode$props = vnode.props) == null ? void 0 : _vnode$props
|
|
997
|
+
return typeof ((_vnode$props = vnode.props) == null ? void 0 : _vnode$props[prop]) !== 'undefined' || typeof ((_vnode$props2 = vnode.props) == null ? void 0 : _vnode$props2[toKebabCase(prop)]) !== 'undefined';
|
|
998
998
|
}
|
|
999
999
|
const defineComponent = function defineComponent(options) {
|
|
1000
1000
|
options._setup = options._setup ?? options.setup;
|
|
@@ -2370,9 +2370,7 @@
|
|
|
2370
2370
|
const animation = animate(el, [{
|
|
2371
2371
|
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
|
|
2372
2372
|
opacity: 0
|
|
2373
|
-
}, {
|
|
2374
|
-
transform: ''
|
|
2375
|
-
}], {
|
|
2373
|
+
}, {}], {
|
|
2376
2374
|
duration: 225 * speed,
|
|
2377
2375
|
easing: deceleratedEasing
|
|
2378
2376
|
});
|
|
@@ -2382,9 +2380,7 @@
|
|
|
2382
2380
|
}, {
|
|
2383
2381
|
opacity: 0,
|
|
2384
2382
|
offset: 0.33
|
|
2385
|
-
}, {
|
|
2386
|
-
opacity: 1
|
|
2387
|
-
}], {
|
|
2383
|
+
}, {}], {
|
|
2388
2384
|
duration: 225 * 2 * speed,
|
|
2389
2385
|
easing: standardEasing
|
|
2390
2386
|
});
|
|
@@ -2407,9 +2403,7 @@
|
|
|
2407
2403
|
sy,
|
|
2408
2404
|
speed
|
|
2409
2405
|
} = getDimensions(props.target, el);
|
|
2410
|
-
const animation = animate(el, [{
|
|
2411
|
-
transform: ''
|
|
2412
|
-
}, {
|
|
2406
|
+
const animation = animate(el, [{}, {
|
|
2413
2407
|
transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,
|
|
2414
2408
|
opacity: 0
|
|
2415
2409
|
}], {
|
|
@@ -4390,9 +4384,69 @@
|
|
|
4390
4384
|
updated: updated$1
|
|
4391
4385
|
};
|
|
4392
4386
|
|
|
4387
|
+
// Composables
|
|
4388
|
+
|
|
4389
|
+
// Types
|
|
4390
|
+
|
|
4391
|
+
const oppositeMap = {
|
|
4392
|
+
center: 'center',
|
|
4393
|
+
top: 'bottom',
|
|
4394
|
+
bottom: 'top',
|
|
4395
|
+
left: 'right',
|
|
4396
|
+
right: 'left'
|
|
4397
|
+
};
|
|
4398
|
+
const makeLocationProps = propsFactory({
|
|
4399
|
+
location: String
|
|
4400
|
+
}, 'location');
|
|
4401
|
+
function useLocation(props) {
|
|
4402
|
+
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
4403
|
+
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
4404
|
+
const {
|
|
4405
|
+
isRtl
|
|
4406
|
+
} = useRtl();
|
|
4407
|
+
const locationStyles = vue.computed(() => {
|
|
4408
|
+
if (!props.location) return {};
|
|
4409
|
+
const {
|
|
4410
|
+
side,
|
|
4411
|
+
align
|
|
4412
|
+
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
|
4413
|
+
function getOffset(side) {
|
|
4414
|
+
return offset ? offset(side) : 0;
|
|
4415
|
+
}
|
|
4416
|
+
const styles = {};
|
|
4417
|
+
if (side !== 'center') {
|
|
4418
|
+
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
|
4419
|
+
}
|
|
4420
|
+
if (align !== 'center') {
|
|
4421
|
+
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
|
4422
|
+
} else {
|
|
4423
|
+
if (side === 'center') styles.top = styles.left = '50%';else {
|
|
4424
|
+
styles[{
|
|
4425
|
+
top: 'left',
|
|
4426
|
+
bottom: 'left',
|
|
4427
|
+
left: 'top',
|
|
4428
|
+
right: 'top'
|
|
4429
|
+
}[side]] = '50%';
|
|
4430
|
+
}
|
|
4431
|
+
styles.transform = {
|
|
4432
|
+
top: 'translateX(-50%)',
|
|
4433
|
+
bottom: 'translateX(-50%)',
|
|
4434
|
+
left: 'translateY(-50%)',
|
|
4435
|
+
right: 'translateY(-50%)',
|
|
4436
|
+
center: 'translate(-50%, -50%)'
|
|
4437
|
+
}[side];
|
|
4438
|
+
}
|
|
4439
|
+
return styles;
|
|
4440
|
+
});
|
|
4441
|
+
return {
|
|
4442
|
+
locationStyles
|
|
4443
|
+
};
|
|
4444
|
+
}
|
|
4445
|
+
|
|
4393
4446
|
const VProgressLinear = defineComponent({
|
|
4394
4447
|
name: 'VProgressLinear',
|
|
4395
4448
|
props: {
|
|
4449
|
+
absolute: Boolean,
|
|
4396
4450
|
active: {
|
|
4397
4451
|
type: Boolean,
|
|
4398
4452
|
default: true
|
|
@@ -4422,6 +4476,9 @@
|
|
|
4422
4476
|
stream: Boolean,
|
|
4423
4477
|
striped: Boolean,
|
|
4424
4478
|
roundedBar: Boolean,
|
|
4479
|
+
...makeLocationProps({
|
|
4480
|
+
location: 'top'
|
|
4481
|
+
}),
|
|
4425
4482
|
...makeRoundedProps(),
|
|
4426
4483
|
...makeTagProps(),
|
|
4427
4484
|
...makeThemeProps()
|
|
@@ -4440,6 +4497,9 @@
|
|
|
4440
4497
|
const {
|
|
4441
4498
|
themeClasses
|
|
4442
4499
|
} = provideTheme(props);
|
|
4500
|
+
const {
|
|
4501
|
+
locationStyles
|
|
4502
|
+
} = useLocation(props);
|
|
4443
4503
|
const {
|
|
4444
4504
|
textColorClasses,
|
|
4445
4505
|
textColorStyles
|
|
@@ -4481,6 +4541,7 @@
|
|
|
4481
4541
|
useRender(() => vue.createVNode(props.tag, {
|
|
4482
4542
|
"ref": intersectionRef,
|
|
4483
4543
|
"class": ['v-progress-linear', {
|
|
4544
|
+
'v-progress-linear--absolute': props.absolute,
|
|
4484
4545
|
'v-progress-linear--active': props.active && isIntersecting.value,
|
|
4485
4546
|
'v-progress-linear--reverse': isReversed.value,
|
|
4486
4547
|
'v-progress-linear--rounded': props.rounded,
|
|
@@ -4488,8 +4549,11 @@
|
|
|
4488
4549
|
'v-progress-linear--striped': props.striped
|
|
4489
4550
|
}, roundedClasses.value, themeClasses.value],
|
|
4490
4551
|
"style": {
|
|
4552
|
+
bottom: props.location === 'bottom' ? 0 : undefined,
|
|
4553
|
+
top: props.location === 'top' ? 0 : undefined,
|
|
4491
4554
|
height: props.active ? convertToUnit(height.value) : 0,
|
|
4492
|
-
'--v-progress-linear-height': convertToUnit(height.value)
|
|
4555
|
+
'--v-progress-linear-height': convertToUnit(height.value),
|
|
4556
|
+
...locationStyles.value
|
|
4493
4557
|
},
|
|
4494
4558
|
"role": "progressbar",
|
|
4495
4559
|
"aria-hidden": props.active ? 'false' : 'true',
|
|
@@ -4575,65 +4639,6 @@
|
|
|
4575
4639
|
}, null)]);
|
|
4576
4640
|
}
|
|
4577
4641
|
|
|
4578
|
-
// Composables
|
|
4579
|
-
|
|
4580
|
-
// Types
|
|
4581
|
-
|
|
4582
|
-
const oppositeMap = {
|
|
4583
|
-
center: 'center',
|
|
4584
|
-
top: 'bottom',
|
|
4585
|
-
bottom: 'top',
|
|
4586
|
-
left: 'right',
|
|
4587
|
-
right: 'left'
|
|
4588
|
-
};
|
|
4589
|
-
const makeLocationProps = propsFactory({
|
|
4590
|
-
location: String
|
|
4591
|
-
}, 'location');
|
|
4592
|
-
function useLocation(props) {
|
|
4593
|
-
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
4594
|
-
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
4595
|
-
const {
|
|
4596
|
-
isRtl
|
|
4597
|
-
} = useRtl();
|
|
4598
|
-
const locationStyles = vue.computed(() => {
|
|
4599
|
-
if (!props.location) return {};
|
|
4600
|
-
const {
|
|
4601
|
-
side,
|
|
4602
|
-
align
|
|
4603
|
-
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
|
4604
|
-
function getOffset(side) {
|
|
4605
|
-
return offset ? offset(side) : 0;
|
|
4606
|
-
}
|
|
4607
|
-
const styles = {};
|
|
4608
|
-
if (side !== 'center') {
|
|
4609
|
-
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
|
4610
|
-
}
|
|
4611
|
-
if (align !== 'center') {
|
|
4612
|
-
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
|
4613
|
-
} else {
|
|
4614
|
-
if (side === 'center') styles.top = styles.left = '50%';else {
|
|
4615
|
-
styles[{
|
|
4616
|
-
top: 'left',
|
|
4617
|
-
bottom: 'left',
|
|
4618
|
-
left: 'top',
|
|
4619
|
-
right: 'top'
|
|
4620
|
-
}[side]] = '50%';
|
|
4621
|
-
}
|
|
4622
|
-
styles.transform = {
|
|
4623
|
-
top: 'translateX(-50%)',
|
|
4624
|
-
bottom: 'translateX(-50%)',
|
|
4625
|
-
left: 'translateY(-50%)',
|
|
4626
|
-
right: 'translateY(-50%)',
|
|
4627
|
-
center: 'translate(-50%, -50%)'
|
|
4628
|
-
}[side];
|
|
4629
|
-
}
|
|
4630
|
-
return styles;
|
|
4631
|
-
});
|
|
4632
|
-
return {
|
|
4633
|
-
locationStyles
|
|
4634
|
-
};
|
|
4635
|
-
}
|
|
4636
|
-
|
|
4637
4642
|
// Utilities
|
|
4638
4643
|
|
|
4639
4644
|
// Types
|
|
@@ -4839,8 +4844,14 @@
|
|
|
4839
4844
|
const group = useGroupItem(props, props.symbol, false);
|
|
4840
4845
|
const link = useLink(props, attrs);
|
|
4841
4846
|
const isActive = vue.computed(() => {
|
|
4842
|
-
|
|
4843
|
-
|
|
4847
|
+
if (props.active !== undefined) {
|
|
4848
|
+
return props.active;
|
|
4849
|
+
}
|
|
4850
|
+
if (link.isLink.value) {
|
|
4851
|
+
var _link$isActive;
|
|
4852
|
+
return (_link$isActive = link.isActive) == null ? void 0 : _link$isActive.value;
|
|
4853
|
+
}
|
|
4854
|
+
return group == null ? void 0 : group.isSelected.value;
|
|
4844
4855
|
});
|
|
4845
4856
|
const isDisabled = vue.computed(() => (group == null ? void 0 : group.disabled.value) || props.disabled);
|
|
4846
4857
|
const isElevated = vue.computed(() => {
|
|
@@ -4850,7 +4861,7 @@
|
|
|
4850
4861
|
useRender(() => {
|
|
4851
4862
|
var _slots$prepend, _slots$default, _slots$append, _slots$loader;
|
|
4852
4863
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
4853
|
-
const hasColor = !group ||
|
|
4864
|
+
const hasColor = !group || isActive.value;
|
|
4854
4865
|
const hasPrepend = !!(props.prependIcon || slots.prepend);
|
|
4855
4866
|
const hasAppend = !!(props.appendIcon || slots.append);
|
|
4856
4867
|
const hasIcon = !!(props.icon && props.icon !== true);
|
|
@@ -4978,13 +4989,13 @@
|
|
|
4978
4989
|
props: {
|
|
4979
4990
|
...VToolbarTitle.props
|
|
4980
4991
|
},
|
|
4981
|
-
setup(
|
|
4992
|
+
setup(props, _ref) {
|
|
4982
4993
|
let {
|
|
4983
4994
|
slots
|
|
4984
4995
|
} = _ref;
|
|
4985
|
-
useRender(() => vue.createVNode(VToolbarTitle, {
|
|
4996
|
+
useRender(() => vue.createVNode(VToolbarTitle, vue.mergeProps(props, {
|
|
4986
4997
|
"class": "v-app-bar-title"
|
|
4987
|
-
}, slots));
|
|
4998
|
+
}), slots));
|
|
4988
4999
|
return {};
|
|
4989
5000
|
}
|
|
4990
5001
|
});
|
|
@@ -5330,6 +5341,7 @@
|
|
|
5330
5341
|
const hasLabel = vue.computed(() => !props.singleLine && !!(props.label || slots.label));
|
|
5331
5342
|
const uid = getUid();
|
|
5332
5343
|
const id = vue.computed(() => props.id || `input-${uid}`);
|
|
5344
|
+
const messagesId = vue.computed(() => `${id.value}-messages`);
|
|
5333
5345
|
const labelRef = vue.ref();
|
|
5334
5346
|
const floatingLabelRef = vue.ref();
|
|
5335
5347
|
const controlRef = vue.ref();
|
|
@@ -5454,7 +5466,8 @@
|
|
|
5454
5466
|
...slotProps.value,
|
|
5455
5467
|
props: {
|
|
5456
5468
|
id: id.value,
|
|
5457
|
-
class: 'v-field__input'
|
|
5469
|
+
class: 'v-field__input',
|
|
5470
|
+
'aria-describedby': messagesId.value
|
|
5458
5471
|
},
|
|
5459
5472
|
focus,
|
|
5460
5473
|
blur
|
|
@@ -5537,7 +5550,9 @@
|
|
|
5537
5550
|
"transition": props.transition,
|
|
5538
5551
|
"tag": "div",
|
|
5539
5552
|
"class": ['v-messages', textColorClasses.value],
|
|
5540
|
-
"style": textColorStyles.value
|
|
5553
|
+
"style": textColorStyles.value,
|
|
5554
|
+
"role": "alert",
|
|
5555
|
+
"aria-live": "polite"
|
|
5541
5556
|
}, {
|
|
5542
5557
|
default: () => [props.active && messages.value.map((message, i) => vue.createVNode("div", {
|
|
5543
5558
|
"class": "v-messages__message",
|
|
@@ -5855,6 +5870,7 @@
|
|
|
5855
5870
|
} = useInputIcon(props);
|
|
5856
5871
|
const uid = getUid();
|
|
5857
5872
|
const id = vue.computed(() => props.id || `input-${uid}`);
|
|
5873
|
+
const messagesId = vue.computed(() => `${id.value}-messages`);
|
|
5858
5874
|
const {
|
|
5859
5875
|
errorMessages,
|
|
5860
5876
|
isDirty,
|
|
@@ -5870,6 +5886,7 @@
|
|
|
5870
5886
|
} = useValidation(props, 'v-input', id);
|
|
5871
5887
|
const slotProps = vue.computed(() => ({
|
|
5872
5888
|
id,
|
|
5889
|
+
messagesId,
|
|
5873
5890
|
isDirty,
|
|
5874
5891
|
isDisabled,
|
|
5875
5892
|
isReadonly,
|
|
@@ -5905,6 +5922,7 @@
|
|
|
5905
5922
|
}, null), (_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots, slotProps.value)]), hasDetails && vue.createVNode("div", {
|
|
5906
5923
|
"class": "v-input__details"
|
|
5907
5924
|
}, [vue.createVNode(VMessages, {
|
|
5925
|
+
"id": messagesId.value,
|
|
5908
5926
|
"active": hasMessages,
|
|
5909
5927
|
"messages": errorMessages.value.length > 0 ? errorMessages.value : props.messages
|
|
5910
5928
|
}, {
|
|
@@ -6576,11 +6594,13 @@
|
|
|
6576
6594
|
default: _ref2 => {
|
|
6577
6595
|
let {
|
|
6578
6596
|
id,
|
|
6597
|
+
messagesId,
|
|
6579
6598
|
isDisabled,
|
|
6580
6599
|
isReadonly
|
|
6581
6600
|
} = _ref2;
|
|
6582
6601
|
return vue.createVNode(VCheckboxBtn, vue.mergeProps(checkboxProps, {
|
|
6583
6602
|
"id": id.value,
|
|
6603
|
+
"aria-describedby": messagesId.value,
|
|
6584
6604
|
"disabled": isDisabled.value,
|
|
6585
6605
|
"readonly": isReadonly.value
|
|
6586
6606
|
}, controlAttrs, {
|
|
@@ -6698,6 +6718,7 @@
|
|
|
6698
6718
|
provideDefaults({
|
|
6699
6719
|
VChip: {
|
|
6700
6720
|
color: vue.toRef(props, 'color'),
|
|
6721
|
+
disabled: vue.toRef(props, 'disabled'),
|
|
6701
6722
|
filter: vue.toRef(props, 'filter'),
|
|
6702
6723
|
variant: vue.toRef(props, 'variant')
|
|
6703
6724
|
}
|
|
@@ -6747,7 +6768,10 @@
|
|
|
6747
6768
|
default: '$complete'
|
|
6748
6769
|
},
|
|
6749
6770
|
label: Boolean,
|
|
6750
|
-
link:
|
|
6771
|
+
link: {
|
|
6772
|
+
type: Boolean,
|
|
6773
|
+
default: undefined
|
|
6774
|
+
},
|
|
6751
6775
|
pill: Boolean,
|
|
6752
6776
|
prependAvatar: String,
|
|
6753
6777
|
prependIcon: IconValue,
|
|
@@ -6760,6 +6784,8 @@
|
|
|
6760
6784
|
type: Boolean,
|
|
6761
6785
|
default: true
|
|
6762
6786
|
},
|
|
6787
|
+
onClick: EventProp,
|
|
6788
|
+
onClickOnce: EventProp,
|
|
6763
6789
|
...makeBorderProps(),
|
|
6764
6790
|
...makeDensityProps(),
|
|
6765
6791
|
...makeElevationProps(),
|
|
@@ -6813,7 +6839,8 @@
|
|
|
6813
6839
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
6814
6840
|
const group = useGroupItem(props, VChipGroupSymbol, false);
|
|
6815
6841
|
const link = useLink(props, attrs);
|
|
6816
|
-
const
|
|
6842
|
+
const isLink = vue.computed(() => props.link !== false && link.isLink.value);
|
|
6843
|
+
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
|
|
6817
6844
|
function onCloseClick(e) {
|
|
6818
6845
|
isActive.value = false;
|
|
6819
6846
|
emit('click:close', e);
|
|
@@ -6825,6 +6852,12 @@
|
|
|
6825
6852
|
(_link$navigate = link.navigate) == null ? void 0 : _link$navigate.call(link, e);
|
|
6826
6853
|
group == null ? void 0 : group.toggle();
|
|
6827
6854
|
}
|
|
6855
|
+
function onKeyDown(e) {
|
|
6856
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
6857
|
+
e.preventDefault();
|
|
6858
|
+
onClick(e);
|
|
6859
|
+
}
|
|
6860
|
+
}
|
|
6828
6861
|
return () => {
|
|
6829
6862
|
var _slots$default;
|
|
6830
6863
|
const Tag = link.isLink.value ? 'a' : props.tag;
|
|
@@ -6845,7 +6878,9 @@
|
|
|
6845
6878
|
"disabled": props.disabled || undefined,
|
|
6846
6879
|
"draggable": props.draggable,
|
|
6847
6880
|
"href": link.href.value,
|
|
6848
|
-
"
|
|
6881
|
+
"tabindex": isClickable.value ? 0 : undefined,
|
|
6882
|
+
"onClick": onClick,
|
|
6883
|
+
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
6849
6884
|
}, {
|
|
6850
6885
|
default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && vue.createVNode(VDefaultsProvider, {
|
|
6851
6886
|
"key": "filter",
|
|
@@ -7561,6 +7596,10 @@
|
|
|
7561
7596
|
nav: Boolean,
|
|
7562
7597
|
prependAvatar: String,
|
|
7563
7598
|
prependIcon: IconValue,
|
|
7599
|
+
ripple: {
|
|
7600
|
+
type: Boolean,
|
|
7601
|
+
default: true
|
|
7602
|
+
},
|
|
7564
7603
|
subtitle: [String, Number, Boolean],
|
|
7565
7604
|
title: [String, Number, Boolean],
|
|
7566
7605
|
value: null,
|
|
@@ -7752,7 +7791,7 @@
|
|
|
7752
7791
|
"key": "append-avatar"
|
|
7753
7792
|
}, null)])]
|
|
7754
7793
|
})]
|
|
7755
|
-
}), [[vue.resolveDirective("ripple"), isClickable.value]]);
|
|
7794
|
+
}), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
7756
7795
|
});
|
|
7757
7796
|
return {};
|
|
7758
7797
|
}
|
|
@@ -9293,19 +9332,18 @@
|
|
|
9293
9332
|
vue.warn(`Unable to locate target ${_target}`);
|
|
9294
9333
|
return undefined;
|
|
9295
9334
|
}
|
|
9296
|
-
|
|
9297
|
-
|
|
9298
|
-
|
|
9299
|
-
|
|
9300
|
-
|
|
9335
|
+
let container = targetElement.querySelector('.v-overlay-container');
|
|
9336
|
+
if (!container) {
|
|
9337
|
+
container = document.createElement('div');
|
|
9338
|
+
container.className = 'v-overlay-container';
|
|
9339
|
+
targetElement.appendChild(container);
|
|
9301
9340
|
}
|
|
9302
|
-
return
|
|
9341
|
+
return container;
|
|
9303
9342
|
});
|
|
9304
9343
|
return {
|
|
9305
9344
|
teleportTarget
|
|
9306
9345
|
};
|
|
9307
9346
|
}
|
|
9308
|
-
useTeleport.cache = new WeakMap();
|
|
9309
9347
|
|
|
9310
9348
|
function defaultConditional() {
|
|
9311
9349
|
return true;
|
|
@@ -9809,12 +9847,19 @@
|
|
|
9809
9847
|
const transformed = transformOut(v);
|
|
9810
9848
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
9811
9849
|
});
|
|
9850
|
+
const form = useForm();
|
|
9812
9851
|
const selections = vue.computed(() => {
|
|
9813
9852
|
return model.value.map(v => {
|
|
9814
9853
|
return items.value.find(item => props.valueComparator(item.value, v.value)) || v;
|
|
9815
9854
|
});
|
|
9816
9855
|
});
|
|
9817
9856
|
const selected = vue.computed(() => selections.value.map(selection => selection.props.value));
|
|
9857
|
+
const displayItems = vue.computed(() => {
|
|
9858
|
+
if (props.hideSelected) {
|
|
9859
|
+
return items.value.filter(item => !selections.value.some(s => s === item));
|
|
9860
|
+
}
|
|
9861
|
+
return items.value;
|
|
9862
|
+
});
|
|
9818
9863
|
const listRef = vue.ref();
|
|
9819
9864
|
function onClear(e) {
|
|
9820
9865
|
model.value = [];
|
|
@@ -9823,11 +9868,11 @@
|
|
|
9823
9868
|
}
|
|
9824
9869
|
}
|
|
9825
9870
|
function onClickControl() {
|
|
9826
|
-
if (props.hideNoData && !items.value.length || props.readonly) return;
|
|
9871
|
+
if (props.hideNoData && !items.value.length || props.readonly || form != null && form.isReadonly.value) return;
|
|
9827
9872
|
menu.value = !menu.value;
|
|
9828
9873
|
}
|
|
9829
9874
|
function onKeydown(e) {
|
|
9830
|
-
if (props.readonly) return;
|
|
9875
|
+
if (props.readonly || form != null && form.isReadonly.value) return;
|
|
9831
9876
|
if (['Enter', 'ArrowDown', ' '].includes(e.key)) {
|
|
9832
9877
|
e.preventDefault();
|
|
9833
9878
|
menu.value = true;
|
|
@@ -9854,7 +9899,7 @@
|
|
|
9854
9899
|
}
|
|
9855
9900
|
function select(item) {
|
|
9856
9901
|
if (props.multiple) {
|
|
9857
|
-
const index = selected.value.findIndex(selection => selection
|
|
9902
|
+
const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
|
|
9858
9903
|
if (index === -1) {
|
|
9859
9904
|
model.value = [...model.value, item];
|
|
9860
9905
|
} else {
|
|
@@ -9881,6 +9926,7 @@
|
|
|
9881
9926
|
}
|
|
9882
9927
|
useRender(() => {
|
|
9883
9928
|
const hasChips = !!(props.chips || slots.chip);
|
|
9929
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
|
|
9884
9930
|
const [textFieldProps] = filterVTextFieldProps(props);
|
|
9885
9931
|
return vue.createVNode(VTextField, vue.mergeProps({
|
|
9886
9932
|
"ref": vTextFieldRef
|
|
@@ -9913,20 +9959,21 @@
|
|
|
9913
9959
|
"activator": "parent",
|
|
9914
9960
|
"contentClass": "v-select__content",
|
|
9915
9961
|
"eager": props.eager,
|
|
9962
|
+
"maxHeight": 310,
|
|
9916
9963
|
"openOnClick": false,
|
|
9917
9964
|
"closeOnContentClick": false,
|
|
9918
9965
|
"transition": props.transition
|
|
9919
9966
|
}, props.menuProps), {
|
|
9920
|
-
default: () => [vue.createVNode(VList, {
|
|
9967
|
+
default: () => [hasList && vue.createVNode(VList, {
|
|
9921
9968
|
"ref": listRef,
|
|
9922
9969
|
"selected": selected.value,
|
|
9923
9970
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
9924
9971
|
"onMousedown": e => e.preventDefault(),
|
|
9925
9972
|
"onFocusout": onFocusout
|
|
9926
9973
|
}, {
|
|
9927
|
-
default: () => [!
|
|
9974
|
+
default: () => [!displayItems.value.length && !props.hideNoData && (((_slots$noData = slots['no-data']) == null ? void 0 : _slots$noData.call(slots)) ?? vue.createVNode(VListItem, {
|
|
9928
9975
|
"title": t(props.noDataText)
|
|
9929
|
-
}, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots),
|
|
9976
|
+
}, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), displayItems.value.map((item, index) => {
|
|
9930
9977
|
if (slots.item) {
|
|
9931
9978
|
var _slots$item;
|
|
9932
9979
|
return (_slots$item = slots.item) == null ? void 0 : _slots$item.call(slots, {
|
|
@@ -10028,7 +10075,7 @@
|
|
|
10028
10075
|
const customFiltersLength = Object.keys((options == null ? void 0 : options.customKeyFilter) ?? {}).length;
|
|
10029
10076
|
if (!(items != null && items.length)) return array;
|
|
10030
10077
|
loop: for (let i = 0; i < items.length; i++) {
|
|
10031
|
-
const item = items[i]
|
|
10078
|
+
const item = items[i];
|
|
10032
10079
|
const customMatches = {};
|
|
10033
10080
|
const defaultMatches = {};
|
|
10034
10081
|
let match = -1;
|
|
@@ -10068,7 +10115,7 @@
|
|
|
10068
10115
|
}
|
|
10069
10116
|
return array;
|
|
10070
10117
|
}
|
|
10071
|
-
function useFilter(props, items, query) {
|
|
10118
|
+
function useFilter(props, items, query, options) {
|
|
10072
10119
|
const strQuery = vue.computed(() => typeof (query == null ? void 0 : query.value) !== 'string' && typeof (query == null ? void 0 : query.value) !== 'number' ? '' : String(query.value));
|
|
10073
10120
|
const filteredItems = vue.ref([]);
|
|
10074
10121
|
const filteredMatches = vue.ref(new Map());
|
|
@@ -10079,7 +10126,7 @@
|
|
|
10079
10126
|
const results = filterItems(transformedItems, strQuery.value, {
|
|
10080
10127
|
customKeyFilter: props.customKeyFilter,
|
|
10081
10128
|
default: props.customFilter,
|
|
10082
|
-
filterKeys: props.filterKeys,
|
|
10129
|
+
filterKeys: vue.unref(options == null ? void 0 : options.filterKeys) ?? props.filterKeys,
|
|
10083
10130
|
filterMode: props.filterMode,
|
|
10084
10131
|
noFilter: props.noFilter
|
|
10085
10132
|
});
|
|
@@ -10159,6 +10206,7 @@
|
|
|
10159
10206
|
const transformed = transformOut(v);
|
|
10160
10207
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
10161
10208
|
});
|
|
10209
|
+
const form = useForm();
|
|
10162
10210
|
const {
|
|
10163
10211
|
filteredItems,
|
|
10164
10212
|
getMatches
|
|
@@ -10168,6 +10216,12 @@
|
|
|
10168
10216
|
return items.value.find(item => props.valueComparator(item.value, v.value)) || v;
|
|
10169
10217
|
});
|
|
10170
10218
|
});
|
|
10219
|
+
const displayItems = vue.computed(() => {
|
|
10220
|
+
if (props.hideSelected) {
|
|
10221
|
+
return filteredItems.value.filter(filteredItem => !selections.value.some(s => s.value === filteredItem.value));
|
|
10222
|
+
}
|
|
10223
|
+
return filteredItems.value;
|
|
10224
|
+
});
|
|
10171
10225
|
const selected = vue.computed(() => selections.value.map(selection => selection.props.value));
|
|
10172
10226
|
const listRef = vue.ref();
|
|
10173
10227
|
function onClear(e) {
|
|
@@ -10178,11 +10232,11 @@
|
|
|
10178
10232
|
search.value = '';
|
|
10179
10233
|
}
|
|
10180
10234
|
function onClickControl() {
|
|
10181
|
-
if (props.hideNoData && !items.value.length || props.readonly) return;
|
|
10235
|
+
if (props.hideNoData && !items.value.length || props.readonly || form != null && form.isReadonly.value) return;
|
|
10182
10236
|
menu.value = true;
|
|
10183
10237
|
}
|
|
10184
10238
|
function onKeydown(e) {
|
|
10185
|
-
if (props.readonly) return;
|
|
10239
|
+
if (props.readonly || form != null && form.isReadonly.value) return;
|
|
10186
10240
|
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
|
10187
10241
|
menu.value = true;
|
|
10188
10242
|
}
|
|
@@ -10220,7 +10274,7 @@
|
|
|
10220
10274
|
const isSelecting = vue.ref(false);
|
|
10221
10275
|
function select(item) {
|
|
10222
10276
|
if (props.multiple) {
|
|
10223
|
-
const index = selected.value.findIndex(selection => selection
|
|
10277
|
+
const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
|
|
10224
10278
|
if (index === -1) {
|
|
10225
10279
|
model.value = [...model.value, item];
|
|
10226
10280
|
search.value = '';
|
|
@@ -10259,6 +10313,7 @@
|
|
|
10259
10313
|
});
|
|
10260
10314
|
useRender(() => {
|
|
10261
10315
|
const hasChips = !!(props.chips || slots.chip);
|
|
10316
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
|
|
10262
10317
|
const [textFieldProps] = filterVTextFieldProps(props);
|
|
10263
10318
|
return vue.createVNode(VTextField, vue.mergeProps({
|
|
10264
10319
|
"ref": vTextFieldRef
|
|
@@ -10294,12 +10349,13 @@
|
|
|
10294
10349
|
"activator": "parent",
|
|
10295
10350
|
"contentClass": "v-autocomplete__content",
|
|
10296
10351
|
"eager": props.eager,
|
|
10352
|
+
"maxHeight": 310,
|
|
10297
10353
|
"openOnClick": false,
|
|
10298
10354
|
"closeOnContentClick": false,
|
|
10299
10355
|
"transition": props.transition,
|
|
10300
10356
|
"onAfterLeave": onAfterLeave
|
|
10301
10357
|
}, props.menuProps), {
|
|
10302
|
-
default: () => [vue.createVNode(VList, {
|
|
10358
|
+
default: () => [hasList && vue.createVNode(VList, {
|
|
10303
10359
|
"ref": listRef,
|
|
10304
10360
|
"selected": selected.value,
|
|
10305
10361
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
@@ -10307,9 +10363,9 @@
|
|
|
10307
10363
|
"onFocusin": onFocusin,
|
|
10308
10364
|
"onFocusout": onFocusout
|
|
10309
10365
|
}, {
|
|
10310
|
-
default: () => [!
|
|
10366
|
+
default: () => [!displayItems.value.length && !props.hideNoData && (((_slots$noData = slots['no-data']) == null ? void 0 : _slots$noData.call(slots)) ?? vue.createVNode(VListItem, {
|
|
10311
10367
|
"title": t(props.noDataText)
|
|
10312
|
-
}, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots),
|
|
10368
|
+
}, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), displayItems.value.map((item, index) => {
|
|
10313
10369
|
var _slots$item;
|
|
10314
10370
|
return ((_slots$item = slots.item) == null ? void 0 : _slots$item.call(slots, {
|
|
10315
10371
|
item,
|
|
@@ -11002,7 +11058,10 @@
|
|
|
11002
11058
|
},
|
|
11003
11059
|
prependAvatar: String,
|
|
11004
11060
|
prependIcon: IconValue,
|
|
11005
|
-
ripple:
|
|
11061
|
+
ripple: {
|
|
11062
|
+
type: Boolean,
|
|
11063
|
+
default: true
|
|
11064
|
+
},
|
|
11006
11065
|
subtitle: String,
|
|
11007
11066
|
text: String,
|
|
11008
11067
|
title: String,
|
|
@@ -11123,7 +11182,7 @@
|
|
|
11123
11182
|
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), slots.actions && vue.createVNode(VCardActions, null, {
|
|
11124
11183
|
default: slots.actions
|
|
11125
11184
|
}), genOverlays(isClickable.value, 'v-card')]
|
|
11126
|
-
}), [[vue.resolveDirective("ripple"), isClickable.value]]);
|
|
11185
|
+
}), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
11127
11186
|
});
|
|
11128
11187
|
return {};
|
|
11129
11188
|
}
|
|
@@ -12416,6 +12475,10 @@
|
|
|
12416
12475
|
position: {
|
|
12417
12476
|
type: Number,
|
|
12418
12477
|
required: true
|
|
12478
|
+
},
|
|
12479
|
+
ripple: {
|
|
12480
|
+
type: Boolean,
|
|
12481
|
+
default: true
|
|
12419
12482
|
}
|
|
12420
12483
|
},
|
|
12421
12484
|
emits: {
|
|
@@ -12516,7 +12579,7 @@
|
|
|
12516
12579
|
}, null), vue.withDirectives(vue.createVNode("div", {
|
|
12517
12580
|
"class": ['v-slider-thumb__ripple', textColorClasses.value],
|
|
12518
12581
|
"style": textColorStyles.value
|
|
12519
|
-
}, null), [[vue.resolveDirective("ripple"),
|
|
12582
|
+
}, null), [[vue.resolveDirective("ripple"), props.ripple, null, {
|
|
12520
12583
|
circle: true,
|
|
12521
12584
|
center: true
|
|
12522
12585
|
}]]), vue.createVNode(VScaleTransition, {
|
|
@@ -12719,13 +12782,15 @@
|
|
|
12719
12782
|
prepend: hasPrepend ? slotProps => {
|
|
12720
12783
|
var _slots$label, _slots$prepend;
|
|
12721
12784
|
return vue.createVNode(vue.Fragment, null, [((_slots$label = slots.label) == null ? void 0 : _slots$label.call(slots, slotProps)) ?? props.label ? vue.createVNode(VLabel, {
|
|
12785
|
+
"id": slotProps.id,
|
|
12722
12786
|
"class": "v-slider__label",
|
|
12723
12787
|
"text": props.label
|
|
12724
12788
|
}, null) : undefined, (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps)]);
|
|
12725
12789
|
} : undefined,
|
|
12726
12790
|
default: _ref2 => {
|
|
12727
12791
|
let {
|
|
12728
|
-
id
|
|
12792
|
+
id,
|
|
12793
|
+
messagesId
|
|
12729
12794
|
} = _ref2;
|
|
12730
12795
|
return vue.createVNode("div", {
|
|
12731
12796
|
"class": "v-slider__container",
|
|
@@ -12746,6 +12811,7 @@
|
|
|
12746
12811
|
'tick-label': slots['tick-label']
|
|
12747
12812
|
}), vue.createVNode(VSliderThumb, {
|
|
12748
12813
|
"ref": thumbContainerRef,
|
|
12814
|
+
"aria-describedby": messagesId.value,
|
|
12749
12815
|
"focused": isFocused.value,
|
|
12750
12816
|
"min": min.value,
|
|
12751
12817
|
"max": max.value,
|
|
@@ -13447,6 +13513,7 @@
|
|
|
13447
13513
|
const transformed = transformOut(v);
|
|
13448
13514
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
13449
13515
|
});
|
|
13516
|
+
const form = useForm();
|
|
13450
13517
|
const _search = vue.ref(!props.multiple ? ((_model$value$ = model.value[0]) == null ? void 0 : _model$value$.title) ?? '' : '');
|
|
13451
13518
|
const search = vue.computed({
|
|
13452
13519
|
get: () => {
|
|
@@ -13491,6 +13558,12 @@
|
|
|
13491
13558
|
return items.value.find(item => props.valueComparator(item.value, v.value)) || v;
|
|
13492
13559
|
});
|
|
13493
13560
|
});
|
|
13561
|
+
const displayItems = vue.computed(() => {
|
|
13562
|
+
if (props.hideSelected) {
|
|
13563
|
+
return filteredItems.value.filter(filteredItem => !selections.value.some(s => s.value === filteredItem.value));
|
|
13564
|
+
}
|
|
13565
|
+
return filteredItems.value;
|
|
13566
|
+
});
|
|
13494
13567
|
const selected = vue.computed(() => selections.value.map(selection => selection.props.value));
|
|
13495
13568
|
const selection = vue.computed(() => selections.value[selectionIndex.value]);
|
|
13496
13569
|
const listRef = vue.ref();
|
|
@@ -13501,11 +13574,11 @@
|
|
|
13501
13574
|
}
|
|
13502
13575
|
}
|
|
13503
13576
|
function onClickControl() {
|
|
13504
|
-
if (props.hideNoData && !items.value.length || props.readonly) return;
|
|
13577
|
+
if (props.hideNoData && !items.value.length || props.readonly || form != null && form.isReadonly.value) return;
|
|
13505
13578
|
menu.value = true;
|
|
13506
13579
|
}
|
|
13507
13580
|
function onKeydown(e) {
|
|
13508
|
-
if (props.readonly) return;
|
|
13581
|
+
if (props.readonly || form != null && form.isReadonly.value) return;
|
|
13509
13582
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
13510
13583
|
const length = selected.value.length;
|
|
13511
13584
|
if (selectionIndex.value > -1) e.preventDefault();
|
|
@@ -13558,7 +13631,7 @@
|
|
|
13558
13631
|
vTextFieldRef.value.setSelectionRange(0, 0);
|
|
13559
13632
|
}
|
|
13560
13633
|
}
|
|
13561
|
-
if (e.key === 'Enter') {
|
|
13634
|
+
if (e.key === 'Enter' && search.value) {
|
|
13562
13635
|
select(transformItem$1(props, search.value));
|
|
13563
13636
|
search.value = '';
|
|
13564
13637
|
}
|
|
@@ -13568,7 +13641,7 @@
|
|
|
13568
13641
|
}
|
|
13569
13642
|
function select(item) {
|
|
13570
13643
|
if (props.multiple) {
|
|
13571
|
-
const index = selected.value.findIndex(selection => selection
|
|
13644
|
+
const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
|
|
13572
13645
|
if (index === -1) {
|
|
13573
13646
|
model.value = [...model.value, item];
|
|
13574
13647
|
} else {
|
|
@@ -13612,6 +13685,7 @@
|
|
|
13612
13685
|
});
|
|
13613
13686
|
useRender(() => {
|
|
13614
13687
|
const hasChips = !!(props.chips || slots.chip);
|
|
13688
|
+
const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
|
|
13615
13689
|
const [textFieldProps] = filterVTextFieldProps(props);
|
|
13616
13690
|
return vue.createVNode(VTextField, vue.mergeProps({
|
|
13617
13691
|
"ref": vTextFieldRef
|
|
@@ -13646,12 +13720,13 @@
|
|
|
13646
13720
|
"activator": "parent",
|
|
13647
13721
|
"contentClass": "v-combobox__content",
|
|
13648
13722
|
"eager": props.eager,
|
|
13723
|
+
"maxHeight": 310,
|
|
13649
13724
|
"openOnClick": false,
|
|
13650
13725
|
"closeOnContentClick": false,
|
|
13651
13726
|
"transition": props.transition,
|
|
13652
13727
|
"onAfterLeave": onAfterLeave
|
|
13653
13728
|
}, props.menuProps), {
|
|
13654
|
-
default: () => [vue.createVNode(VList, {
|
|
13729
|
+
default: () => [hasList && vue.createVNode(VList, {
|
|
13655
13730
|
"ref": listRef,
|
|
13656
13731
|
"selected": selected.value,
|
|
13657
13732
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
@@ -13659,9 +13734,9 @@
|
|
|
13659
13734
|
"onFocusin": onFocusin,
|
|
13660
13735
|
"onFocusout": onFocusout
|
|
13661
13736
|
}, {
|
|
13662
|
-
default: () => [!
|
|
13737
|
+
default: () => [!displayItems.value.length && !props.hideNoData && (((_slots$noData = slots['no-data']) == null ? void 0 : _slots$noData.call(slots)) ?? vue.createVNode(VListItem, {
|
|
13663
13738
|
"title": t(props.noDataText)
|
|
13664
|
-
}, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots),
|
|
13739
|
+
}, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), displayItems.value.map((item, index) => {
|
|
13665
13740
|
var _slots$item;
|
|
13666
13741
|
return ((_slots$item = slots.item) == null ? void 0 : _slots$item.call(slots, {
|
|
13667
13742
|
item,
|
|
@@ -14211,6 +14286,7 @@
|
|
|
14211
14286
|
...slots,
|
|
14212
14287
|
default: _ref3 => {
|
|
14213
14288
|
let {
|
|
14289
|
+
id,
|
|
14214
14290
|
isDisabled,
|
|
14215
14291
|
isDirty,
|
|
14216
14292
|
isReadonly,
|
|
@@ -14224,6 +14300,7 @@
|
|
|
14224
14300
|
"onClick:prependInner": props['onClick:prependInner'],
|
|
14225
14301
|
"onClick:appendInner": props['onClick:appendInner']
|
|
14226
14302
|
}, fieldProps, {
|
|
14303
|
+
"id": id.value,
|
|
14227
14304
|
"active": isDirty.value || isFocused.value,
|
|
14228
14305
|
"dirty": isDirty.value,
|
|
14229
14306
|
"focused": isFocused.value,
|
|
@@ -16004,6 +16081,7 @@
|
|
|
16004
16081
|
default: _ref2 => {
|
|
16005
16082
|
let {
|
|
16006
16083
|
id,
|
|
16084
|
+
messagesId,
|
|
16007
16085
|
isDisabled,
|
|
16008
16086
|
isReadonly
|
|
16009
16087
|
} = _ref2;
|
|
@@ -16013,6 +16091,7 @@
|
|
|
16013
16091
|
default: () => [label]
|
|
16014
16092
|
}), vue.createVNode(VSelectionControlGroup, vue.mergeProps(controlProps, {
|
|
16015
16093
|
"id": id.value,
|
|
16094
|
+
"aria-describedby": messagesId.value,
|
|
16016
16095
|
"defaultsTarget": "VRadio",
|
|
16017
16096
|
"trueIcon": props.trueIcon,
|
|
16018
16097
|
"falseIcon": props.falseIcon,
|
|
@@ -16136,7 +16215,8 @@
|
|
|
16136
16215
|
default: _ref2 => {
|
|
16137
16216
|
var _startThumbRef$value4, _stopThumbRef$value4;
|
|
16138
16217
|
let {
|
|
16139
|
-
id
|
|
16218
|
+
id,
|
|
16219
|
+
messagesId
|
|
16140
16220
|
} = _ref2;
|
|
16141
16221
|
return vue.createVNode("div", {
|
|
16142
16222
|
"class": "v-slider__container",
|
|
@@ -16164,6 +16244,7 @@
|
|
|
16164
16244
|
'tick-label': slots['tick-label']
|
|
16165
16245
|
}), vue.createVNode(VSliderThumb, {
|
|
16166
16246
|
"ref": startThumbRef,
|
|
16247
|
+
"aria-describedby": messagesId.value,
|
|
16167
16248
|
"focused": isFocused && activeThumbRef.value === ((_startThumbRef$value4 = startThumbRef.value) == null ? void 0 : _startThumbRef$value4.$el),
|
|
16168
16249
|
"modelValue": model.value[0],
|
|
16169
16250
|
"onUpdate:modelValue": v => model.value = [v, model.value[1]],
|
|
@@ -16193,6 +16274,7 @@
|
|
|
16193
16274
|
'thumb-label': slots['thumb-label']
|
|
16194
16275
|
}), vue.createVNode(VSliderThumb, {
|
|
16195
16276
|
"ref": stopThumbRef,
|
|
16277
|
+
"aria-describedby": messagesId.value,
|
|
16196
16278
|
"focused": isFocused && activeThumbRef.value === ((_stopThumbRef$value4 = stopThumbRef.value) == null ? void 0 : _stopThumbRef$value4.$el),
|
|
16197
16279
|
"modelValue": model.value[1],
|
|
16198
16280
|
"onUpdate:modelValue": v => model.value = [model.value[0], v],
|
|
@@ -17030,6 +17112,7 @@
|
|
|
17030
17112
|
default: _ref2 => {
|
|
17031
17113
|
let {
|
|
17032
17114
|
id,
|
|
17115
|
+
messagesId,
|
|
17033
17116
|
isDisabled,
|
|
17034
17117
|
isReadonly,
|
|
17035
17118
|
isValid
|
|
@@ -17040,6 +17123,7 @@
|
|
|
17040
17123
|
"modelValue": model.value,
|
|
17041
17124
|
"onUpdate:modelValue": [$event => model.value = $event, onChange],
|
|
17042
17125
|
"id": id.value,
|
|
17126
|
+
"aria-describedby": messagesId.value,
|
|
17043
17127
|
"type": "checkbox",
|
|
17044
17128
|
"aria-checked": indeterminate.value ? 'mixed' : undefined,
|
|
17045
17129
|
"disabled": isDisabled.value,
|
|
@@ -18310,7 +18394,7 @@
|
|
|
18310
18394
|
locale
|
|
18311
18395
|
};
|
|
18312
18396
|
}
|
|
18313
|
-
const version$1 = "3.1.
|
|
18397
|
+
const version$1 = "3.1.2";
|
|
18314
18398
|
createVuetify$1.version = version$1;
|
|
18315
18399
|
|
|
18316
18400
|
// Vue's inject() can only be used in setup
|
|
@@ -18331,7 +18415,7 @@
|
|
|
18331
18415
|
...options
|
|
18332
18416
|
});
|
|
18333
18417
|
};
|
|
18334
|
-
const version = "3.1.
|
|
18418
|
+
const version = "3.1.2";
|
|
18335
18419
|
createVuetify.version = version;
|
|
18336
18420
|
|
|
18337
18421
|
exports.components = components;
|