vuetify 3.6.13 → 3.7.0-beta.1
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 +166 -26
- package/dist/json/importMap-labs.json +16 -16
- package/dist/json/importMap.json +138 -138
- package/dist/json/tags.json +40 -5
- package/dist/json/web-types.json +394 -41
- package/dist/vuetify-labs.css +2300 -2284
- package/dist/vuetify-labs.d.ts +12763 -12509
- package/dist/vuetify-labs.esm.js +153 -145
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +153 -145
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +887 -871
- package/dist/vuetify.d.ts +11161 -10982
- package/dist/vuetify.esm.js +107 -65
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +107 -65
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1076 -1078
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/index.d.mts +55 -55
- package/lib/components/VAppBar/index.d.mts +175 -169
- package/lib/components/VAutocomplete/VAutocomplete.mjs +15 -8
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +635 -634
- package/lib/components/VAvatar/VAvatar.css +7 -0
- package/lib/components/VAvatar/VAvatar.mjs +6 -1
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +1 -0
- package/lib/components/VAvatar/_variables.scss +13 -0
- package/lib/components/VAvatar/index.d.mts +36 -30
- package/lib/components/VBadge/index.d.mts +58 -58
- package/lib/components/VBanner/index.d.mts +59 -59
- package/lib/components/VBottomNavigation/index.d.mts +58 -58
- package/lib/components/VBottomSheet/index.d.mts +125 -125
- package/lib/components/VBreadcrumbs/index.d.mts +42 -42
- package/lib/components/VBtn/VBtn.mjs +3 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.mts +113 -107
- package/lib/components/VBtnGroup/index.d.mts +23 -23
- package/lib/components/VBtnToggle/index.d.mts +40 -40
- package/lib/components/VCard/index.d.mts +93 -93
- package/lib/components/VCarousel/index.d.mts +130 -121
- package/lib/components/VCheckbox/index.d.mts +166 -166
- package/lib/components/VChip/index.d.mts +86 -86
- package/lib/components/VChipGroup/index.d.mts +46 -46
- package/lib/components/VColorPicker/index.d.mts +96 -96
- package/lib/components/VCombobox/VCombobox.mjs +15 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +635 -634
- package/lib/components/VConfirmEdit/index.d.mts +2 -2
- package/lib/components/VCounter/index.d.mts +27 -27
- package/lib/components/VDataIterator/index.d.mts +50 -50
- package/lib/components/VDataTable/index.d.mts +253 -253
- package/lib/components/VDatePicker/index.d.mts +134 -134
- package/lib/components/VDialog/index.d.mts +378 -378
- package/lib/components/VDivider/index.d.mts +15 -15
- package/lib/components/VEmptyState/index.d.mts +47 -47
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +7 -2
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +196 -124
- package/lib/components/VFab/index.d.mts +233 -227
- package/lib/components/VField/index.d.mts +46 -46
- package/lib/components/VFileInput/index.d.mts +243 -243
- package/lib/components/VFooter/index.d.mts +50 -50
- package/lib/components/VForm/index.d.mts +9 -9
- package/lib/components/VGrid/VContainer.mjs +6 -1
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/index.d.mts +178 -142
- package/lib/components/VIcon/index.d.mts +24 -24
- package/lib/components/VImg/VImg.css +9 -0
- package/lib/components/VImg/VImg.mjs +2 -0
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +9 -0
- package/lib/components/VImg/index.d.mts +101 -92
- package/lib/components/VInfiniteScroll/index.d.mts +22 -22
- package/lib/components/VInput/index.d.mts +53 -53
- package/lib/components/VItemGroup/index.d.mts +17 -17
- package/lib/components/VLabel/index.d.mts +8 -8
- package/lib/components/VLayout/index.d.mts +36 -36
- package/lib/components/VLazy/index.d.mts +31 -31
- package/lib/components/VList/VListItem.css +2 -2
- package/lib/components/VList/VListItem.mjs +2 -0
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +1 -1
- package/lib/components/VList/index.d.mts +191 -190
- package/lib/components/VLocaleProvider/index.d.mts +7 -7
- package/lib/components/VMain/index.d.mts +10 -10
- package/lib/components/VMenu/VMenu.mjs +7 -5
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +423 -423
- package/lib/components/VMessages/index.d.mts +20 -20
- package/lib/components/VNavigationDrawer/index.d.mts +72 -72
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
- package/lib/components/VOtpInput/index.d.mts +88 -88
- package/lib/components/VOverlay/index.d.mts +104 -104
- package/lib/components/VOverlay/locationStrategies.mjs +0 -6
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VPagination/index.d.mts +55 -55
- package/lib/components/VParallax/index.d.mts +7 -7
- package/lib/components/VProgressCircular/index.d.mts +24 -24
- package/lib/components/VProgressLinear/index.d.mts +52 -52
- package/lib/components/VRadio/index.d.mts +41 -41
- package/lib/components/VRadioGroup/index.d.mts +97 -97
- package/lib/components/VRangeSlider/index.d.mts +94 -94
- package/lib/components/VRating/index.d.mts +22 -22
- package/lib/components/VResponsive/index.d.mts +23 -23
- package/lib/components/VSelect/VSelect.mjs +15 -13
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +635 -634
- package/lib/components/VSelect/useScrolling.mjs +3 -3
- package/lib/components/VSelect/useScrolling.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +43 -43
- package/lib/components/VSelectionControlGroup/index.d.mts +39 -39
- package/lib/components/VSheet/index.d.mts +34 -34
- package/lib/components/VSkeletonLoader/index.d.mts +17 -17
- package/lib/components/VSlideGroup/VSlideGroup.mjs +3 -1
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +39 -33
- package/lib/components/VSlider/index.d.mts +87 -87
- package/lib/components/VSnackbar/index.d.mts +436 -436
- package/lib/components/VSparkline/index.d.mts +38 -38
- package/lib/components/VSpeedDial/index.d.mts +185 -185
- package/lib/components/VStepper/index.d.mts +119 -119
- package/lib/components/VSwitch/index.d.mts +100 -100
- package/lib/components/VSystemBar/index.d.mts +39 -39
- package/lib/components/VTable/index.d.mts +4 -4
- package/lib/components/VTabs/index.d.mts +530 -512
- package/lib/components/VTextField/index.d.mts +397 -397
- package/lib/components/VTextarea/index.d.mts +274 -274
- package/lib/components/VTimeline/index.d.mts +26 -26
- package/lib/components/VToolbar/index.d.mts +53 -53
- package/lib/components/VTooltip/index.d.mts +451 -451
- package/lib/components/VValidation/index.d.mts +22 -21
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +2 -0
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.d.mts +13 -10
- package/lib/components/VWindow/index.d.mts +31 -31
- package/lib/components/index.d.mts +11225 -11046
- package/lib/components/transitions/index.d.mts +200 -200
- package/lib/composables/nested/nested.mjs +3 -4
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +4 -2
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +5 -5
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/validation.mjs +8 -6
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/virtual.mjs +1 -0
- package/lib/composables/virtual.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.mts +44 -44
- package/lib/labs/VCalendar/index.d.mts +52 -52
- package/lib/labs/VDateInput/index.d.mts +244 -244
- package/lib/labs/VNumberInput/index.d.mts +235 -235
- package/lib/labs/VPicker/index.d.mts +45 -45
- package/lib/labs/VSnackbarQueue/index.d.mts +642 -642
- package/lib/labs/VStepperVertical/index.d.mts +224 -188
- package/lib/labs/VTimePicker/VTimePickerClock.mjs +0 -1
- package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
- package/lib/labs/VTimePicker/index.d.mts +115 -115
- package/lib/labs/VTreeview/VTreeview.mjs +7 -5
- package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.mjs +33 -10
- package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.css +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.mjs +14 -74
- package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.sass +2 -5
- package/lib/labs/VTreeview/index.d.mts +270 -253
- package/lib/labs/components.d.mts +1835 -1782
- package/lib/util/helpers.mjs +5 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +10 -5
package/dist/vuetify-labs.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.
|
|
2
|
+
* Vuetify v3.7.0-beta.1
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -575,6 +575,11 @@ function templateRef() {
|
|
|
575
575
|
});
|
|
576
576
|
return fn;
|
|
577
577
|
}
|
|
578
|
+
function checkPrintable(e) {
|
|
579
|
+
const isPrintableChar = e.key.length === 1;
|
|
580
|
+
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
|
581
|
+
return isPrintableChar && noModifier;
|
|
582
|
+
}
|
|
578
583
|
|
|
579
584
|
// Utilities
|
|
580
585
|
const block = ['top', 'bottom'];
|
|
@@ -3248,6 +3253,7 @@ const Intersect = {
|
|
|
3248
3253
|
// not intended for public use, this is passed in by vuetify-loader
|
|
3249
3254
|
|
|
3250
3255
|
const makeVImgProps = propsFactory({
|
|
3256
|
+
absolute: Boolean,
|
|
3251
3257
|
alt: String,
|
|
3252
3258
|
cover: Boolean,
|
|
3253
3259
|
color: String,
|
|
@@ -3504,6 +3510,7 @@ const VImg = genericComponent()({
|
|
|
3504
3510
|
const responsiveProps = VResponsive.filterProps(props);
|
|
3505
3511
|
return withDirectives(createVNode(VResponsive, mergeProps({
|
|
3506
3512
|
"class": ['v-img', {
|
|
3513
|
+
'v-img--absolute': props.absolute,
|
|
3507
3514
|
'v-img--booting': !isBooted.value
|
|
3508
3515
|
}, backgroundColorClasses.value, roundedClasses.value, props.class],
|
|
3509
3516
|
"style": [{
|
|
@@ -5511,6 +5518,7 @@ const makeVBtnProps = propsFactory({
|
|
|
5511
5518
|
type: Boolean,
|
|
5512
5519
|
default: undefined
|
|
5513
5520
|
},
|
|
5521
|
+
activeColor: String,
|
|
5514
5522
|
baseColor: String,
|
|
5515
5523
|
symbol: {
|
|
5516
5524
|
type: null,
|
|
@@ -5602,10 +5610,11 @@ const VBtn = genericComponent()({
|
|
|
5602
5610
|
}
|
|
5603
5611
|
return group?.isSelected.value;
|
|
5604
5612
|
});
|
|
5613
|
+
const color = computed(() => isActive.value ? props.activeColor ?? props.color : props.color);
|
|
5605
5614
|
const variantProps = computed(() => {
|
|
5606
5615
|
const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;
|
|
5607
5616
|
return {
|
|
5608
|
-
color: showColor ?
|
|
5617
|
+
color: showColor ? color.value ?? props.baseColor : props.baseColor,
|
|
5609
5618
|
variant: props.variant
|
|
5610
5619
|
};
|
|
5611
5620
|
});
|
|
@@ -5946,6 +5955,7 @@ const makeVAvatarProps = propsFactory({
|
|
|
5946
5955
|
icon: IconValue,
|
|
5947
5956
|
image: String,
|
|
5948
5957
|
text: String,
|
|
5958
|
+
...makeBorderProps(),
|
|
5949
5959
|
...makeComponentProps(),
|
|
5950
5960
|
...makeDensityProps(),
|
|
5951
5961
|
...makeRoundedProps(),
|
|
@@ -5966,6 +5976,9 @@ const VAvatar = genericComponent()({
|
|
|
5966
5976
|
const {
|
|
5967
5977
|
themeClasses
|
|
5968
5978
|
} = provideTheme(props);
|
|
5979
|
+
const {
|
|
5980
|
+
borderClasses
|
|
5981
|
+
} = useBorder(props);
|
|
5969
5982
|
const {
|
|
5970
5983
|
colorClasses,
|
|
5971
5984
|
colorStyles,
|
|
@@ -5985,7 +5998,7 @@ const VAvatar = genericComponent()({
|
|
|
5985
5998
|
"class": ['v-avatar', {
|
|
5986
5999
|
'v-avatar--start': props.start,
|
|
5987
6000
|
'v-avatar--end': props.end
|
|
5988
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
6001
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
5989
6002
|
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
5990
6003
|
}, {
|
|
5991
6004
|
default: () => [!slots.default ? props.image ? createVNode(VImg, {
|
|
@@ -6685,12 +6698,14 @@ function useValidation(props) {
|
|
|
6685
6698
|
const validateOn = computed(() => {
|
|
6686
6699
|
let value = (props.validateOn ?? form?.validateOn.value) || 'input';
|
|
6687
6700
|
if (value === 'lazy') value = 'input lazy';
|
|
6701
|
+
if (value === 'eager') value = 'input eager';
|
|
6688
6702
|
const set = new Set(value?.split(' ') ?? []);
|
|
6689
6703
|
return {
|
|
6690
|
-
blur: set.has('blur') || set.has('input'),
|
|
6691
6704
|
input: set.has('input'),
|
|
6692
|
-
|
|
6693
|
-
|
|
6705
|
+
blur: set.has('blur') || set.has('input') || set.has('invalid-input'),
|
|
6706
|
+
invalidInput: set.has('invalid-input'),
|
|
6707
|
+
lazy: set.has('lazy'),
|
|
6708
|
+
eager: set.has('eager')
|
|
6694
6709
|
};
|
|
6695
6710
|
});
|
|
6696
6711
|
const isValid = computed(() => {
|
|
@@ -6727,11 +6742,11 @@ function useValidation(props) {
|
|
|
6727
6742
|
});
|
|
6728
6743
|
onMounted(async () => {
|
|
6729
6744
|
if (!validateOn.value.lazy) {
|
|
6730
|
-
await validate(
|
|
6745
|
+
await validate(!validateOn.value.eager);
|
|
6731
6746
|
}
|
|
6732
6747
|
form?.update(uid.value, isValid.value, errorMessages.value);
|
|
6733
6748
|
});
|
|
6734
|
-
useToggleScope(() => validateOn.value.input, () => {
|
|
6749
|
+
useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {
|
|
6735
6750
|
watch(validationModel, () => {
|
|
6736
6751
|
if (validationModel.value != null) {
|
|
6737
6752
|
validate();
|
|
@@ -6759,7 +6774,7 @@ function useValidation(props) {
|
|
|
6759
6774
|
async function resetValidation() {
|
|
6760
6775
|
isPristine.value = true;
|
|
6761
6776
|
if (!validateOn.value.lazy) {
|
|
6762
|
-
await validate(
|
|
6777
|
+
await validate(!validateOn.value.eager);
|
|
6763
6778
|
} else {
|
|
6764
6779
|
internalErrorMessages.value = [];
|
|
6765
6780
|
}
|
|
@@ -7699,7 +7714,9 @@ const VSlideGroup = genericComponent()({
|
|
|
7699
7714
|
selected: group.selected,
|
|
7700
7715
|
scrollTo,
|
|
7701
7716
|
scrollOffset,
|
|
7702
|
-
focus
|
|
7717
|
+
focus,
|
|
7718
|
+
hasPrev,
|
|
7719
|
+
hasNext
|
|
7703
7720
|
};
|
|
7704
7721
|
}
|
|
7705
7722
|
});
|
|
@@ -8169,6 +8186,7 @@ const leafSingleActiveStrategy = mandatory => {
|
|
|
8169
8186
|
return strategy;
|
|
8170
8187
|
};
|
|
8171
8188
|
|
|
8189
|
+
// Utilities
|
|
8172
8190
|
const singleOpenStrategy = {
|
|
8173
8191
|
open: _ref => {
|
|
8174
8192
|
let {
|
|
@@ -8202,11 +8220,11 @@ const multipleOpenStrategy = {
|
|
|
8202
8220
|
parents
|
|
8203
8221
|
} = _ref2;
|
|
8204
8222
|
if (value) {
|
|
8205
|
-
let parent = parents.get(id);
|
|
8223
|
+
let parent = toRaw(parents.get(id));
|
|
8206
8224
|
opened.add(id);
|
|
8207
8225
|
while (parent != null && parent !== id) {
|
|
8208
8226
|
opened.add(parent);
|
|
8209
|
-
parent = parents.get(parent);
|
|
8227
|
+
parent = toRaw(parents.get(parent));
|
|
8210
8228
|
}
|
|
8211
8229
|
return opened;
|
|
8212
8230
|
} else {
|
|
@@ -8377,18 +8395,18 @@ const classicSelectStrategy = mandatory => {
|
|
|
8377
8395
|
const items = [id];
|
|
8378
8396
|
while (items.length) {
|
|
8379
8397
|
const item = items.shift();
|
|
8380
|
-
selected.set(item, value ? 'on' : 'off');
|
|
8398
|
+
selected.set(toRaw(item), value ? 'on' : 'off');
|
|
8381
8399
|
if (children.has(item)) {
|
|
8382
8400
|
items.push(...children.get(item));
|
|
8383
8401
|
}
|
|
8384
8402
|
}
|
|
8385
|
-
let parent = parents.get(id);
|
|
8403
|
+
let parent = toRaw(parents.get(id));
|
|
8386
8404
|
while (parent) {
|
|
8387
8405
|
const childrenIds = children.get(parent);
|
|
8388
|
-
const everySelected = childrenIds.every(cid => selected.get(cid) === 'on');
|
|
8389
|
-
const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off');
|
|
8406
|
+
const everySelected = childrenIds.every(cid => selected.get(toRaw(cid)) === 'on');
|
|
8407
|
+
const noneSelected = childrenIds.every(cid => !selected.has(toRaw(cid)) || selected.get(toRaw(cid)) === 'off');
|
|
8390
8408
|
selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
|
|
8391
|
-
parent = parents.get(parent);
|
|
8409
|
+
parent = toRaw(parents.get(parent));
|
|
8392
8410
|
}
|
|
8393
8411
|
|
|
8394
8412
|
// If mandatory and planned deselect results in no selected
|
|
@@ -8466,7 +8484,7 @@ const useNested = props => {
|
|
|
8466
8484
|
let isUnmounted = false;
|
|
8467
8485
|
const children = ref(new Map());
|
|
8468
8486
|
const parents = ref(new Map());
|
|
8469
|
-
const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
|
|
8487
|
+
const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(toRaw(v)), v => [...v.values()]);
|
|
8470
8488
|
const activeStrategy = computed(() => {
|
|
8471
8489
|
if (typeof props.activeStrategy === 'object') return props.activeStrategy;
|
|
8472
8490
|
if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
|
|
@@ -8557,7 +8575,6 @@ const useNested = props => {
|
|
|
8557
8575
|
children.value.set(parent, list.filter(child => child !== id));
|
|
8558
8576
|
}
|
|
8559
8577
|
parents.value.delete(id);
|
|
8560
|
-
opened.value.delete(id);
|
|
8561
8578
|
},
|
|
8562
8579
|
open: (id, value, event) => {
|
|
8563
8580
|
vm.emit('click:open', {
|
|
@@ -8640,9 +8657,9 @@ const useNestedItem = (id, isGroup) => {
|
|
|
8640
8657
|
const item = {
|
|
8641
8658
|
...parent,
|
|
8642
8659
|
id: computedId,
|
|
8643
|
-
open: (open, e) => parent.root.open(computedId.value, open, e),
|
|
8660
|
+
open: (open, e) => parent.root.open(toRaw(computedId.value), open, e),
|
|
8644
8661
|
openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
|
|
8645
|
-
isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
|
|
8662
|
+
isOpen: computed(() => parent.root.opened.value.has(toRaw(computedId.value))),
|
|
8646
8663
|
parent: computed(() => parent.root.parents.value.get(computedId.value)),
|
|
8647
8664
|
activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
|
|
8648
8665
|
isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),
|
|
@@ -8866,6 +8883,7 @@ const VListItem = genericComponent()({
|
|
|
8866
8883
|
activate,
|
|
8867
8884
|
isActivated,
|
|
8868
8885
|
select,
|
|
8886
|
+
isOpen,
|
|
8869
8887
|
isSelected,
|
|
8870
8888
|
isIndeterminate,
|
|
8871
8889
|
isGroupActivator,
|
|
@@ -8920,6 +8938,7 @@ const VListItem = genericComponent()({
|
|
|
8920
8938
|
const slotProps = computed(() => ({
|
|
8921
8939
|
isActive: isActive.value,
|
|
8922
8940
|
select,
|
|
8941
|
+
isOpen: isOpen.value,
|
|
8923
8942
|
isSelected: isSelected.value,
|
|
8924
8943
|
isIndeterminate: isIndeterminate.value
|
|
8925
8944
|
}));
|
|
@@ -9729,12 +9748,6 @@ function getIntrinsicSize(el, isRtl) {
|
|
|
9729
9748
|
// el.style.removeProperty('max-width')
|
|
9730
9749
|
// el.style.removeProperty('max-height')
|
|
9731
9750
|
|
|
9732
|
-
if (isRtl) {
|
|
9733
|
-
el.style.removeProperty('left');
|
|
9734
|
-
} else {
|
|
9735
|
-
el.style.removeProperty('right');
|
|
9736
|
-
}
|
|
9737
|
-
|
|
9738
9751
|
/* eslint-disable-next-line sonarjs/prefer-immediate-return */
|
|
9739
9752
|
const contentBox = nullifyTransforms(el);
|
|
9740
9753
|
if (isRtl) {
|
|
@@ -11126,23 +11139,25 @@ const VMenu = genericComponent()({
|
|
|
11126
11139
|
const id = computed(() => props.id || `v-menu-${uid}`);
|
|
11127
11140
|
const overlay = ref();
|
|
11128
11141
|
const parent = inject$1(VMenuSymbol, null);
|
|
11129
|
-
const openChildren = shallowRef(
|
|
11142
|
+
const openChildren = shallowRef(new Set());
|
|
11130
11143
|
provide(VMenuSymbol, {
|
|
11131
11144
|
register() {
|
|
11132
|
-
|
|
11145
|
+
openChildren.value.add(uid);
|
|
11133
11146
|
},
|
|
11134
11147
|
unregister() {
|
|
11135
|
-
|
|
11148
|
+
openChildren.value.delete(uid);
|
|
11136
11149
|
},
|
|
11137
11150
|
closeParents(e) {
|
|
11138
11151
|
setTimeout(() => {
|
|
11139
|
-
if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
|
|
11152
|
+
if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
|
|
11140
11153
|
isActive.value = false;
|
|
11141
11154
|
parent?.closeParents();
|
|
11142
11155
|
}
|
|
11143
11156
|
}, 40);
|
|
11144
11157
|
}
|
|
11145
11158
|
});
|
|
11159
|
+
onBeforeUnmount(() => parent?.unregister());
|
|
11160
|
+
onDeactivated(() => isActive.value = false);
|
|
11146
11161
|
async function onFocusIn(e) {
|
|
11147
11162
|
const before = e.relatedTarget;
|
|
11148
11163
|
const after = e.target;
|
|
@@ -12054,6 +12069,7 @@ function useVirtual(props, items) {
|
|
|
12054
12069
|
deep: true
|
|
12055
12070
|
});
|
|
12056
12071
|
return {
|
|
12072
|
+
calculateVisibleItems,
|
|
12057
12073
|
containerRef,
|
|
12058
12074
|
markerRef,
|
|
12059
12075
|
computedItems,
|
|
@@ -12117,6 +12133,7 @@ const VVirtualScroll = genericComponent()({
|
|
|
12117
12133
|
dimensionStyles
|
|
12118
12134
|
} = useDimension(props);
|
|
12119
12135
|
const {
|
|
12136
|
+
calculateVisibleItems,
|
|
12120
12137
|
containerRef,
|
|
12121
12138
|
markerRef,
|
|
12122
12139
|
handleScroll,
|
|
@@ -12188,6 +12205,7 @@ const VVirtualScroll = genericComponent()({
|
|
|
12188
12205
|
}, [children])]);
|
|
12189
12206
|
});
|
|
12190
12207
|
return {
|
|
12208
|
+
calculateVisibleItems,
|
|
12191
12209
|
scrollToIndex
|
|
12192
12210
|
};
|
|
12193
12211
|
}
|
|
@@ -12256,9 +12274,9 @@ function useScrolling(listRef, textFieldRef) {
|
|
|
12256
12274
|
}
|
|
12257
12275
|
}
|
|
12258
12276
|
return {
|
|
12259
|
-
onListScroll,
|
|
12260
|
-
onListKeydown
|
|
12261
|
-
};
|
|
12277
|
+
onScrollPassive: onListScroll,
|
|
12278
|
+
onKeydown: onListKeydown
|
|
12279
|
+
}; // typescript doesn't know about vue's event merging
|
|
12262
12280
|
}
|
|
12263
12281
|
|
|
12264
12282
|
// Types
|
|
@@ -12333,7 +12351,7 @@ const VSelect = genericComponent()({
|
|
|
12333
12351
|
const menu = computed({
|
|
12334
12352
|
get: () => _menu.value,
|
|
12335
12353
|
set: v => {
|
|
12336
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
|
12354
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
|
12337
12355
|
_menu.value = v;
|
|
12338
12356
|
}
|
|
12339
12357
|
});
|
|
@@ -12372,10 +12390,7 @@ const VSelect = genericComponent()({
|
|
|
12372
12390
|
};
|
|
12373
12391
|
});
|
|
12374
12392
|
const listRef = ref();
|
|
12375
|
-
const
|
|
12376
|
-
onListScroll,
|
|
12377
|
-
onListKeydown
|
|
12378
|
-
} = useScrolling(listRef, vTextFieldRef);
|
|
12393
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
|
12379
12394
|
function onClear(e) {
|
|
12380
12395
|
if (props.openOnClear) {
|
|
12381
12396
|
menu.value = true;
|
|
@@ -12385,6 +12400,11 @@ const VSelect = genericComponent()({
|
|
|
12385
12400
|
if (menuDisabled.value) return;
|
|
12386
12401
|
menu.value = !menu.value;
|
|
12387
12402
|
}
|
|
12403
|
+
function onListKeydown(e) {
|
|
12404
|
+
if (checkPrintable(e)) {
|
|
12405
|
+
onKeydown(e);
|
|
12406
|
+
}
|
|
12407
|
+
}
|
|
12388
12408
|
function onKeydown(e) {
|
|
12389
12409
|
if (!e.key || props.readonly || form?.isReadonly.value) return;
|
|
12390
12410
|
if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
|
|
@@ -12405,11 +12425,6 @@ const VSelect = genericComponent()({
|
|
|
12405
12425
|
// html select hotkeys
|
|
12406
12426
|
const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
|
|
12407
12427
|
|
|
12408
|
-
function checkPrintable(e) {
|
|
12409
|
-
const isPrintableChar = e.key.length === 1;
|
|
12410
|
-
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
|
12411
|
-
return isPrintableChar && noModifier;
|
|
12412
|
-
}
|
|
12413
12428
|
if (props.multiple || !checkPrintable(e)) return;
|
|
12414
12429
|
const now = performance.now();
|
|
12415
12430
|
if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
|
|
@@ -12454,6 +12469,11 @@ const VSelect = genericComponent()({
|
|
|
12454
12469
|
menu.value = false;
|
|
12455
12470
|
}
|
|
12456
12471
|
}
|
|
12472
|
+
function onAfterEnter() {
|
|
12473
|
+
if (props.eager) {
|
|
12474
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
|
12475
|
+
}
|
|
12476
|
+
}
|
|
12457
12477
|
function onAfterLeave() {
|
|
12458
12478
|
if (isFocused.value) {
|
|
12459
12479
|
vTextFieldRef.value?.focus();
|
|
@@ -12532,6 +12552,7 @@ const VSelect = genericComponent()({
|
|
|
12532
12552
|
"openOnClick": false,
|
|
12533
12553
|
"closeOnContentClick": false,
|
|
12534
12554
|
"transition": props.transition,
|
|
12555
|
+
"onAfterEnter": onAfterEnter,
|
|
12535
12556
|
"onAfterLeave": onAfterLeave
|
|
12536
12557
|
}, computedMenuProps.value), {
|
|
12537
12558
|
default: () => [hasList && createVNode(VList, mergeProps({
|
|
@@ -12541,11 +12562,10 @@ const VSelect = genericComponent()({
|
|
|
12541
12562
|
"onMousedown": e => e.preventDefault(),
|
|
12542
12563
|
"onKeydown": onListKeydown,
|
|
12543
12564
|
"onFocusin": onFocusin,
|
|
12544
|
-
"onScrollPassive": onListScroll,
|
|
12545
12565
|
"tabindex": "-1",
|
|
12546
12566
|
"aria-live": "polite",
|
|
12547
12567
|
"color": props.itemColor ?? props.color
|
|
12548
|
-
}, props.listProps), {
|
|
12568
|
+
}, listEvents, props.listProps), {
|
|
12549
12569
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
12550
12570
|
"title": t(props.noDataText)
|
|
12551
12571
|
}, null)), createVNode(VVirtualScroll, {
|
|
@@ -12840,7 +12860,7 @@ const VAutocomplete = genericComponent()({
|
|
|
12840
12860
|
const menu = computed({
|
|
12841
12861
|
get: () => _menu.value,
|
|
12842
12862
|
set: v => {
|
|
12843
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
|
12863
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
|
12844
12864
|
_menu.value = v;
|
|
12845
12865
|
}
|
|
12846
12866
|
});
|
|
@@ -12884,10 +12904,7 @@ const VAutocomplete = genericComponent()({
|
|
|
12884
12904
|
});
|
|
12885
12905
|
const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
|
12886
12906
|
const listRef = ref();
|
|
12887
|
-
const
|
|
12888
|
-
onListScroll,
|
|
12889
|
-
onListKeydown
|
|
12890
|
-
} = useScrolling(listRef, vTextFieldRef);
|
|
12907
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
|
12891
12908
|
function onClear(e) {
|
|
12892
12909
|
if (props.openOnClear) {
|
|
12893
12910
|
menu.value = true;
|
|
@@ -12906,6 +12923,11 @@ const VAutocomplete = genericComponent()({
|
|
|
12906
12923
|
}
|
|
12907
12924
|
menu.value = !menu.value;
|
|
12908
12925
|
}
|
|
12926
|
+
function onListKeydown(e) {
|
|
12927
|
+
if (checkPrintable(e)) {
|
|
12928
|
+
vTextFieldRef.value?.focus();
|
|
12929
|
+
}
|
|
12930
|
+
}
|
|
12909
12931
|
function onKeydown(e) {
|
|
12910
12932
|
if (props.readonly || form?.isReadonly.value) return;
|
|
12911
12933
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
@@ -12970,6 +12992,11 @@ const VAutocomplete = genericComponent()({
|
|
|
12970
12992
|
}
|
|
12971
12993
|
}
|
|
12972
12994
|
}
|
|
12995
|
+
function onAfterEnter() {
|
|
12996
|
+
if (props.eager) {
|
|
12997
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
|
12998
|
+
}
|
|
12999
|
+
}
|
|
12973
13000
|
function onAfterLeave() {
|
|
12974
13001
|
if (isFocused.value) {
|
|
12975
13002
|
isPristine.value = true;
|
|
@@ -13098,6 +13125,7 @@ const VAutocomplete = genericComponent()({
|
|
|
13098
13125
|
"openOnClick": false,
|
|
13099
13126
|
"closeOnContentClick": false,
|
|
13100
13127
|
"transition": props.transition,
|
|
13128
|
+
"onAfterEnter": onAfterEnter,
|
|
13101
13129
|
"onAfterLeave": onAfterLeave
|
|
13102
13130
|
}, props.menuProps), {
|
|
13103
13131
|
default: () => [hasList && createVNode(VList, mergeProps({
|
|
@@ -13108,11 +13136,10 @@ const VAutocomplete = genericComponent()({
|
|
|
13108
13136
|
"onKeydown": onListKeydown,
|
|
13109
13137
|
"onFocusin": onFocusin,
|
|
13110
13138
|
"onFocusout": onFocusout,
|
|
13111
|
-
"onScrollPassive": onListScroll,
|
|
13112
13139
|
"tabindex": "-1",
|
|
13113
13140
|
"aria-live": "polite",
|
|
13114
13141
|
"color": props.itemColor ?? props.color
|
|
13115
|
-
}, props.listProps), {
|
|
13142
|
+
}, listEvents, props.listProps), {
|
|
13116
13143
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
13117
13144
|
"title": t(props.noDataText)
|
|
13118
13145
|
}, null)), createVNode(VVirtualScroll, {
|
|
@@ -16673,7 +16700,7 @@ const VCombobox = genericComponent()({
|
|
|
16673
16700
|
const menu = computed({
|
|
16674
16701
|
get: () => _menu.value,
|
|
16675
16702
|
set: v => {
|
|
16676
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
|
16703
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
|
16677
16704
|
_menu.value = v;
|
|
16678
16705
|
}
|
|
16679
16706
|
});
|
|
@@ -16756,10 +16783,7 @@ const VCombobox = genericComponent()({
|
|
|
16756
16783
|
});
|
|
16757
16784
|
const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
|
16758
16785
|
const listRef = ref();
|
|
16759
|
-
const
|
|
16760
|
-
onListScroll,
|
|
16761
|
-
onListKeydown
|
|
16762
|
-
} = useScrolling(listRef, vTextFieldRef);
|
|
16786
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
|
16763
16787
|
function onClear(e) {
|
|
16764
16788
|
cleared = true;
|
|
16765
16789
|
if (props.openOnClear) {
|
|
@@ -16778,6 +16802,11 @@ const VCombobox = genericComponent()({
|
|
|
16778
16802
|
}
|
|
16779
16803
|
menu.value = !menu.value;
|
|
16780
16804
|
}
|
|
16805
|
+
function onListKeydown(e) {
|
|
16806
|
+
if (checkPrintable(e)) {
|
|
16807
|
+
vTextFieldRef.value?.focus();
|
|
16808
|
+
}
|
|
16809
|
+
}
|
|
16781
16810
|
// eslint-disable-next-line complexity
|
|
16782
16811
|
function onKeydown(e) {
|
|
16783
16812
|
if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
|
|
@@ -16842,6 +16871,11 @@ const VCombobox = genericComponent()({
|
|
|
16842
16871
|
}
|
|
16843
16872
|
}
|
|
16844
16873
|
}
|
|
16874
|
+
function onAfterEnter() {
|
|
16875
|
+
if (props.eager) {
|
|
16876
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
|
16877
|
+
}
|
|
16878
|
+
}
|
|
16845
16879
|
function onAfterLeave() {
|
|
16846
16880
|
if (isFocused.value) {
|
|
16847
16881
|
isPristine.value = true;
|
|
@@ -16966,6 +17000,7 @@ const VCombobox = genericComponent()({
|
|
|
16966
17000
|
"openOnClick": false,
|
|
16967
17001
|
"closeOnContentClick": false,
|
|
16968
17002
|
"transition": props.transition,
|
|
17003
|
+
"onAfterEnter": onAfterEnter,
|
|
16969
17004
|
"onAfterLeave": onAfterLeave
|
|
16970
17005
|
}, props.menuProps), {
|
|
16971
17006
|
default: () => [hasList && createVNode(VList, mergeProps({
|
|
@@ -16976,11 +17011,10 @@ const VCombobox = genericComponent()({
|
|
|
16976
17011
|
"onKeydown": onListKeydown,
|
|
16977
17012
|
"onFocusin": onFocusin,
|
|
16978
17013
|
"onFocusout": onFocusout,
|
|
16979
|
-
"onScrollPassive": onListScroll,
|
|
16980
17014
|
"tabindex": "-1",
|
|
16981
17015
|
"aria-live": "polite",
|
|
16982
17016
|
"color": props.itemColor ?? props.color
|
|
16983
|
-
}, props.listProps), {
|
|
17017
|
+
}, listEvents, props.listProps), {
|
|
16984
17018
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
16985
17019
|
"title": t(props.noDataText)
|
|
16986
17020
|
}, null)), createVNode(VVirtualScroll, {
|
|
@@ -20924,6 +20958,7 @@ const makeVContainerProps = propsFactory({
|
|
|
20924
20958
|
default: false
|
|
20925
20959
|
},
|
|
20926
20960
|
...makeComponentProps(),
|
|
20961
|
+
...makeDimensionProps(),
|
|
20927
20962
|
...makeTagProps()
|
|
20928
20963
|
}, 'VContainer');
|
|
20929
20964
|
const VContainer = genericComponent()({
|
|
@@ -20936,11 +20971,14 @@ const VContainer = genericComponent()({
|
|
|
20936
20971
|
const {
|
|
20937
20972
|
rtlClasses
|
|
20938
20973
|
} = useRtl();
|
|
20974
|
+
const {
|
|
20975
|
+
dimensionStyles
|
|
20976
|
+
} = useDimension(props);
|
|
20939
20977
|
useRender(() => createVNode(props.tag, {
|
|
20940
20978
|
"class": ['v-container', {
|
|
20941
20979
|
'v-container--fluid': props.fluid
|
|
20942
20980
|
}, rtlClasses.value, props.class],
|
|
20943
|
-
"style": props.style
|
|
20981
|
+
"style": [dimensionStyles.value, props.style]
|
|
20944
20982
|
}, slots));
|
|
20945
20983
|
return {};
|
|
20946
20984
|
}
|
|
@@ -22362,7 +22400,8 @@ const makeVExpansionPanelTitleProps = propsFactory({
|
|
|
22362
22400
|
default: false
|
|
22363
22401
|
},
|
|
22364
22402
|
readonly: Boolean,
|
|
22365
|
-
...makeComponentProps()
|
|
22403
|
+
...makeComponentProps(),
|
|
22404
|
+
...makeDimensionProps()
|
|
22366
22405
|
}, 'VExpansionPanelTitle');
|
|
22367
22406
|
const VExpansionPanelTitle = genericComponent()({
|
|
22368
22407
|
name: 'VExpansionPanelTitle',
|
|
@@ -22380,6 +22419,9 @@ const VExpansionPanelTitle = genericComponent()({
|
|
|
22380
22419
|
backgroundColorClasses,
|
|
22381
22420
|
backgroundColorStyles
|
|
22382
22421
|
} = useBackgroundColor(props, 'color');
|
|
22422
|
+
const {
|
|
22423
|
+
dimensionStyles
|
|
22424
|
+
} = useDimension(props);
|
|
22383
22425
|
const slotProps = computed(() => ({
|
|
22384
22426
|
collapseIcon: props.collapseIcon,
|
|
22385
22427
|
disabled: expansionPanel.disabled.value,
|
|
@@ -22394,7 +22436,7 @@ const VExpansionPanelTitle = genericComponent()({
|
|
|
22394
22436
|
'v-expansion-panel-title--focusable': props.focusable,
|
|
22395
22437
|
'v-expansion-panel-title--static': props.static
|
|
22396
22438
|
}, backgroundColorClasses.value, props.class],
|
|
22397
|
-
"style": [backgroundColorStyles.value, props.style],
|
|
22439
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
|
22398
22440
|
"type": "button",
|
|
22399
22441
|
"tabindex": expansionPanel.disabled.value ? -1 : undefined,
|
|
22400
22442
|
"disabled": expansionPanel.disabled.value,
|
|
@@ -29431,6 +29473,7 @@ const VTreeviewSymbol = Symbol.for('vuetify:v-treeview');
|
|
|
29431
29473
|
|
|
29432
29474
|
const makeVTreeviewItemProps = propsFactory({
|
|
29433
29475
|
loading: Boolean,
|
|
29476
|
+
onToggleExpand: EventProp(),
|
|
29434
29477
|
toggleIcon: IconValue,
|
|
29435
29478
|
...makeVListItemProps({
|
|
29436
29479
|
slim: true
|
|
@@ -29451,24 +29494,12 @@ const VTreeviewItem = genericComponent()({
|
|
|
29451
29494
|
const {
|
|
29452
29495
|
activate,
|
|
29453
29496
|
isActivated,
|
|
29454
|
-
select,
|
|
29455
|
-
isSelected,
|
|
29456
|
-
isIndeterminate,
|
|
29457
29497
|
isGroupActivator,
|
|
29458
29498
|
root,
|
|
29459
29499
|
id
|
|
29460
29500
|
} = useNestedItem(rawId, false);
|
|
29461
29501
|
const isActivatableGroupActivator = computed(() => root.activatable.value && isGroupActivator);
|
|
29462
|
-
const
|
|
29463
|
-
densityClasses
|
|
29464
|
-
} = useDensity(props, 'v-list-item');
|
|
29465
|
-
const slotProps = computed(() => ({
|
|
29466
|
-
isActive: isActivated.value,
|
|
29467
|
-
select,
|
|
29468
|
-
isSelected: isSelected.value,
|
|
29469
|
-
isIndeterminate: isIndeterminate.value
|
|
29470
|
-
}));
|
|
29471
|
-
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list));
|
|
29502
|
+
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list || isActivatableGroupActivator.value));
|
|
29472
29503
|
function activateItem(e) {
|
|
29473
29504
|
if (!isClickable.value || !isActivatableGroupActivator.value && isGroupActivator) return;
|
|
29474
29505
|
if (root.activatable.value) {
|
|
@@ -29479,68 +29510,20 @@ const VTreeviewItem = genericComponent()({
|
|
|
29479
29510
|
}
|
|
29480
29511
|
}
|
|
29481
29512
|
}
|
|
29482
|
-
function onKeyDown(e) {
|
|
29483
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
29484
|
-
e.preventDefault();
|
|
29485
|
-
activateItem(e);
|
|
29486
|
-
}
|
|
29487
|
-
}
|
|
29488
29513
|
const visibleIds = inject$1(VTreeviewSymbol, {
|
|
29489
29514
|
visibleIds: ref()
|
|
29490
29515
|
}).visibleIds;
|
|
29491
29516
|
useRender(() => {
|
|
29492
|
-
const
|
|
29493
|
-
const hasSubtitle = slots.subtitle || props.subtitle != null;
|
|
29494
|
-
const listItemProps = VListItem.filterProps(props);
|
|
29517
|
+
const listItemProps = omit(VListItem.filterProps(props), ['onClick']);
|
|
29495
29518
|
const hasPrepend = slots.prepend || props.toggleIcon;
|
|
29496
|
-
return
|
|
29497
|
-
"
|
|
29498
|
-
'v-list-item--active': isActivated.value || isSelected.value,
|
|
29499
|
-
'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
|
|
29500
|
-
}, densityClasses.value, props.class],
|
|
29501
|
-
"onClick": activateItem
|
|
29502
|
-
}, [createVNode(Fragment, null, [genOverlays(isActivated.value || isSelected.value, 'v-list-item'), props.toggleIcon && createVNode(VListItemAction, {
|
|
29503
|
-
"start": false
|
|
29504
|
-
}, {
|
|
29505
|
-
default: () => [createVNode(VBtn, {
|
|
29506
|
-
"density": "compact",
|
|
29507
|
-
"icon": props.toggleIcon,
|
|
29508
|
-
"loading": props.loading,
|
|
29509
|
-
"variant": "text",
|
|
29510
|
-
"onClick": props.onClick
|
|
29511
|
-
}, {
|
|
29512
|
-
loader() {
|
|
29513
|
-
return createVNode(VProgressCircular, {
|
|
29514
|
-
"indeterminate": "disable-shrink",
|
|
29515
|
-
"size": "20",
|
|
29516
|
-
"width": "2"
|
|
29517
|
-
}, null);
|
|
29518
|
-
}
|
|
29519
|
-
})]
|
|
29520
|
-
})]), createVNode("div", {
|
|
29521
|
-
"class": "v-list-item__content",
|
|
29522
|
-
"data-no-activator": ""
|
|
29523
|
-
}, [hasTitle && createVNode(VListItemTitle, {
|
|
29524
|
-
"key": "title"
|
|
29525
|
-
}, {
|
|
29526
|
-
default: () => [slots.title?.({
|
|
29527
|
-
title: props.title
|
|
29528
|
-
}) ?? props.title]
|
|
29529
|
-
}), hasSubtitle && createVNode(VListItemSubtitle, {
|
|
29530
|
-
"key": "subtitle"
|
|
29531
|
-
}, {
|
|
29532
|
-
default: () => [slots.subtitle?.({
|
|
29533
|
-
subtitle: props.subtitle
|
|
29534
|
-
}) ?? props.subtitle]
|
|
29535
|
-
}), slots.default?.(slotProps.value)])]), [[resolveDirective("ripple"), isClickable.value && props.ripple]]) : createVNode(VListItem, mergeProps({
|
|
29536
|
-
"ref": vListItemRef
|
|
29537
|
-
}, listItemProps, {
|
|
29519
|
+
return createVNode(VListItem, mergeProps(listItemProps, {
|
|
29520
|
+
"active": isActivated.value,
|
|
29538
29521
|
"class": ['v-treeview-item', {
|
|
29522
|
+
'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,
|
|
29539
29523
|
'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
|
|
29540
29524
|
}, props.class],
|
|
29541
|
-
"
|
|
29542
|
-
"onClick": activateItem
|
|
29543
|
-
"onKeydown": isClickable.value && onKeyDown
|
|
29525
|
+
"ripple": false,
|
|
29526
|
+
"onClick": props.onClick ?? activateItem
|
|
29544
29527
|
}), {
|
|
29545
29528
|
...slots,
|
|
29546
29529
|
prepend: hasPrepend ? slotProps => {
|
|
@@ -29551,7 +29534,8 @@ const VTreeviewItem = genericComponent()({
|
|
|
29551
29534
|
"density": "compact",
|
|
29552
29535
|
"icon": props.toggleIcon,
|
|
29553
29536
|
"loading": props.loading,
|
|
29554
|
-
"variant": "text"
|
|
29537
|
+
"variant": "text",
|
|
29538
|
+
"onClick": props.onToggleExpand
|
|
29555
29539
|
}, {
|
|
29556
29540
|
loader() {
|
|
29557
29541
|
return createVNode(VProgressCircular, {
|
|
@@ -29578,7 +29562,19 @@ const makeVTreeviewChildrenProps = propsFactory({
|
|
|
29578
29562
|
default: '$loading'
|
|
29579
29563
|
},
|
|
29580
29564
|
items: Array,
|
|
29565
|
+
openOnClick: {
|
|
29566
|
+
type: Boolean,
|
|
29567
|
+
default: undefined
|
|
29568
|
+
},
|
|
29569
|
+
indeterminateIcon: {
|
|
29570
|
+
type: IconValue,
|
|
29571
|
+
default: '$checkboxIndeterminate'
|
|
29572
|
+
},
|
|
29573
|
+
falseIcon: IconValue,
|
|
29574
|
+
trueIcon: IconValue,
|
|
29575
|
+
returnObject: Boolean,
|
|
29581
29576
|
selectable: Boolean,
|
|
29577
|
+
selectedColor: String,
|
|
29582
29578
|
selectStrategy: [String, Function, Object]
|
|
29583
29579
|
}, 'VTreeviewChildren');
|
|
29584
29580
|
const VTreeviewChildren = genericComponent()({
|
|
@@ -29590,6 +29586,7 @@ const VTreeviewChildren = genericComponent()({
|
|
|
29590
29586
|
slots
|
|
29591
29587
|
} = _ref;
|
|
29592
29588
|
const isLoading = shallowRef(null);
|
|
29589
|
+
const isClickOnOpen = computed(() => props.openOnClick != null ? props.openOnClick : props.selectable);
|
|
29593
29590
|
function checkChildren(item) {
|
|
29594
29591
|
return new Promise(resolve => {
|
|
29595
29592
|
if (!props.items?.length || !props.loadChildren) return resolve();
|
|
@@ -29620,7 +29617,11 @@ const VTreeviewChildren = genericComponent()({
|
|
|
29620
29617
|
"key": item.value,
|
|
29621
29618
|
"modelValue": slotProps.isSelected,
|
|
29622
29619
|
"loading": loading,
|
|
29620
|
+
"color": props.selectedColor,
|
|
29623
29621
|
"indeterminate": slotProps.isIndeterminate,
|
|
29622
|
+
"indeterminateIcon": props.indeterminateIcon,
|
|
29623
|
+
"falseIcon": props.falseIcon,
|
|
29624
|
+
"trueIcon": props.trueIcon,
|
|
29624
29625
|
"onClick": withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']),
|
|
29625
29626
|
"onKeydown": e => {
|
|
29626
29627
|
if (!['Enter', 'Space'].includes(e.key)) return;
|
|
@@ -29642,9 +29643,9 @@ const VTreeviewChildren = genericComponent()({
|
|
|
29642
29643
|
};
|
|
29643
29644
|
const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
|
|
29644
29645
|
const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
|
|
29645
|
-
return children ? createVNode(VTreeviewGroup, mergeProps({
|
|
29646
|
-
"value":
|
|
29647
|
-
}
|
|
29646
|
+
return children ? createVNode(VTreeviewGroup, mergeProps(treeviewGroupProps, {
|
|
29647
|
+
"value": props.returnObject ? item : treeviewGroupProps?.value
|
|
29648
|
+
}), {
|
|
29648
29649
|
activator: _ref3 => {
|
|
29649
29650
|
let {
|
|
29650
29651
|
props: activatorProps
|
|
@@ -29652,19 +29653,24 @@ const VTreeviewChildren = genericComponent()({
|
|
|
29652
29653
|
const listItemProps = {
|
|
29653
29654
|
...itemProps,
|
|
29654
29655
|
...activatorProps,
|
|
29655
|
-
value: itemProps?.value
|
|
29656
|
+
value: itemProps?.value,
|
|
29657
|
+
onToggleExpand: activatorProps.onClick,
|
|
29658
|
+
onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : undefined
|
|
29656
29659
|
};
|
|
29657
29660
|
return createVNode(VTreeviewItem, mergeProps(listItemProps, {
|
|
29658
|
-
"
|
|
29659
|
-
"
|
|
29661
|
+
"value": props.returnObject ? toRaw(item) : itemProps.value,
|
|
29662
|
+
"loading": loading
|
|
29660
29663
|
}), slotsWithItem);
|
|
29661
29664
|
},
|
|
29662
29665
|
default: () => createVNode(VTreeviewChildren, mergeProps(treeviewChildrenProps, {
|
|
29663
|
-
"items": children
|
|
29666
|
+
"items": children,
|
|
29667
|
+
"returnObject": props.returnObject
|
|
29664
29668
|
}), slots)
|
|
29665
29669
|
}) : slots.item?.({
|
|
29666
29670
|
props: itemProps
|
|
29667
|
-
}) ?? createVNode(VTreeviewItem, itemProps,
|
|
29671
|
+
}) ?? createVNode(VTreeviewItem, mergeProps(itemProps, {
|
|
29672
|
+
"value": props.returnObject ? toRaw(item) : itemProps.value
|
|
29673
|
+
}), slotsWithItem);
|
|
29668
29674
|
});
|
|
29669
29675
|
}
|
|
29670
29676
|
});
|
|
@@ -29688,7 +29694,7 @@ const makeVTreeviewProps = propsFactory({
|
|
|
29688
29694
|
collapseIcon: '$treeviewCollapse',
|
|
29689
29695
|
expandIcon: '$treeviewExpand',
|
|
29690
29696
|
slim: true
|
|
29691
|
-
}), ['nav'])
|
|
29697
|
+
}), ['nav', 'openStrategy'])
|
|
29692
29698
|
}, 'VTreeview');
|
|
29693
29699
|
const VTreeview = genericComponent()({
|
|
29694
29700
|
name: 'VTreeview',
|
|
@@ -29747,11 +29753,11 @@ const VTreeview = genericComponent()({
|
|
|
29747
29753
|
}
|
|
29748
29754
|
return arr;
|
|
29749
29755
|
}
|
|
29750
|
-
function openAll(
|
|
29756
|
+
function openAll(items) {
|
|
29751
29757
|
let ids = [];
|
|
29752
|
-
for (const i of
|
|
29758
|
+
for (const i of items) {
|
|
29753
29759
|
if (!i.children) continue;
|
|
29754
|
-
ids.push(i.value);
|
|
29760
|
+
ids.push(props.returnObject ? toRaw(i.raw) : i.value);
|
|
29755
29761
|
if (i.children) {
|
|
29756
29762
|
ids = ids.concat(openAll(i.children));
|
|
29757
29763
|
}
|
|
@@ -29787,6 +29793,7 @@ const VTreeview = genericComponent()({
|
|
|
29787
29793
|
"ref": vListRef
|
|
29788
29794
|
}, listProps, {
|
|
29789
29795
|
"class": ['v-treeview', props.class],
|
|
29796
|
+
"open-strategy": "multiple",
|
|
29790
29797
|
"style": props.style,
|
|
29791
29798
|
"opened": opened.value,
|
|
29792
29799
|
"activated": activated.value,
|
|
@@ -29795,6 +29802,7 @@ const VTreeview = genericComponent()({
|
|
|
29795
29802
|
"onUpdate:selected": $event => selected.value = $event
|
|
29796
29803
|
}), {
|
|
29797
29804
|
default: () => [createVNode(VTreeviewChildren, mergeProps(treeviewChildrenProps, {
|
|
29805
|
+
"returnObject": props.returnObject,
|
|
29798
29806
|
"items": items.value
|
|
29799
29807
|
}), slots)]
|
|
29800
29808
|
});
|
|
@@ -30300,7 +30308,7 @@ function createVuetify$1() {
|
|
|
30300
30308
|
goTo
|
|
30301
30309
|
};
|
|
30302
30310
|
}
|
|
30303
|
-
const version$1 = "3.
|
|
30311
|
+
const version$1 = "3.7.0-beta.1";
|
|
30304
30312
|
createVuetify$1.version = version$1;
|
|
30305
30313
|
|
|
30306
30314
|
// Vue's inject() can only be used in setup
|
|
@@ -30553,7 +30561,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
30553
30561
|
|
|
30554
30562
|
/* eslint-disable local-rules/sort-imports */
|
|
30555
30563
|
|
|
30556
|
-
const version = "3.
|
|
30564
|
+
const version = "3.7.0-beta.1";
|
|
30557
30565
|
|
|
30558
30566
|
/* eslint-disable local-rules/sort-imports */
|
|
30559
30567
|
|