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.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
|
*/
|
|
@@ -579,6 +579,11 @@
|
|
|
579
579
|
});
|
|
580
580
|
return fn;
|
|
581
581
|
}
|
|
582
|
+
function checkPrintable(e) {
|
|
583
|
+
const isPrintableChar = e.key.length === 1;
|
|
584
|
+
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
|
585
|
+
return isPrintableChar && noModifier;
|
|
586
|
+
}
|
|
582
587
|
|
|
583
588
|
// Utilities
|
|
584
589
|
const block = ['top', 'bottom'];
|
|
@@ -3252,6 +3257,7 @@
|
|
|
3252
3257
|
// not intended for public use, this is passed in by vuetify-loader
|
|
3253
3258
|
|
|
3254
3259
|
const makeVImgProps = propsFactory({
|
|
3260
|
+
absolute: Boolean,
|
|
3255
3261
|
alt: String,
|
|
3256
3262
|
cover: Boolean,
|
|
3257
3263
|
color: String,
|
|
@@ -3508,6 +3514,7 @@
|
|
|
3508
3514
|
const responsiveProps = VResponsive.filterProps(props);
|
|
3509
3515
|
return vue.withDirectives(vue.createVNode(VResponsive, vue.mergeProps({
|
|
3510
3516
|
"class": ['v-img', {
|
|
3517
|
+
'v-img--absolute': props.absolute,
|
|
3511
3518
|
'v-img--booting': !isBooted.value
|
|
3512
3519
|
}, backgroundColorClasses.value, roundedClasses.value, props.class],
|
|
3513
3520
|
"style": [{
|
|
@@ -5515,6 +5522,7 @@
|
|
|
5515
5522
|
type: Boolean,
|
|
5516
5523
|
default: undefined
|
|
5517
5524
|
},
|
|
5525
|
+
activeColor: String,
|
|
5518
5526
|
baseColor: String,
|
|
5519
5527
|
symbol: {
|
|
5520
5528
|
type: null,
|
|
@@ -5606,10 +5614,11 @@
|
|
|
5606
5614
|
}
|
|
5607
5615
|
return group?.isSelected.value;
|
|
5608
5616
|
});
|
|
5617
|
+
const color = vue.computed(() => isActive.value ? props.activeColor ?? props.color : props.color);
|
|
5609
5618
|
const variantProps = vue.computed(() => {
|
|
5610
5619
|
const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;
|
|
5611
5620
|
return {
|
|
5612
|
-
color: showColor ?
|
|
5621
|
+
color: showColor ? color.value ?? props.baseColor : props.baseColor,
|
|
5613
5622
|
variant: props.variant
|
|
5614
5623
|
};
|
|
5615
5624
|
});
|
|
@@ -5950,6 +5959,7 @@
|
|
|
5950
5959
|
icon: IconValue,
|
|
5951
5960
|
image: String,
|
|
5952
5961
|
text: String,
|
|
5962
|
+
...makeBorderProps(),
|
|
5953
5963
|
...makeComponentProps(),
|
|
5954
5964
|
...makeDensityProps(),
|
|
5955
5965
|
...makeRoundedProps(),
|
|
@@ -5970,6 +5980,9 @@
|
|
|
5970
5980
|
const {
|
|
5971
5981
|
themeClasses
|
|
5972
5982
|
} = provideTheme(props);
|
|
5983
|
+
const {
|
|
5984
|
+
borderClasses
|
|
5985
|
+
} = useBorder(props);
|
|
5973
5986
|
const {
|
|
5974
5987
|
colorClasses,
|
|
5975
5988
|
colorStyles,
|
|
@@ -5989,7 +6002,7 @@
|
|
|
5989
6002
|
"class": ['v-avatar', {
|
|
5990
6003
|
'v-avatar--start': props.start,
|
|
5991
6004
|
'v-avatar--end': props.end
|
|
5992
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
6005
|
+
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
5993
6006
|
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
5994
6007
|
}, {
|
|
5995
6008
|
default: () => [!slots.default ? props.image ? vue.createVNode(VImg, {
|
|
@@ -6689,12 +6702,14 @@
|
|
|
6689
6702
|
const validateOn = vue.computed(() => {
|
|
6690
6703
|
let value = (props.validateOn ?? form?.validateOn.value) || 'input';
|
|
6691
6704
|
if (value === 'lazy') value = 'input lazy';
|
|
6705
|
+
if (value === 'eager') value = 'input eager';
|
|
6692
6706
|
const set = new Set(value?.split(' ') ?? []);
|
|
6693
6707
|
return {
|
|
6694
|
-
blur: set.has('blur') || set.has('input'),
|
|
6695
6708
|
input: set.has('input'),
|
|
6696
|
-
|
|
6697
|
-
|
|
6709
|
+
blur: set.has('blur') || set.has('input') || set.has('invalid-input'),
|
|
6710
|
+
invalidInput: set.has('invalid-input'),
|
|
6711
|
+
lazy: set.has('lazy'),
|
|
6712
|
+
eager: set.has('eager')
|
|
6698
6713
|
};
|
|
6699
6714
|
});
|
|
6700
6715
|
const isValid = vue.computed(() => {
|
|
@@ -6731,11 +6746,11 @@
|
|
|
6731
6746
|
});
|
|
6732
6747
|
vue.onMounted(async () => {
|
|
6733
6748
|
if (!validateOn.value.lazy) {
|
|
6734
|
-
await validate(
|
|
6749
|
+
await validate(!validateOn.value.eager);
|
|
6735
6750
|
}
|
|
6736
6751
|
form?.update(uid.value, isValid.value, errorMessages.value);
|
|
6737
6752
|
});
|
|
6738
|
-
useToggleScope(() => validateOn.value.input, () => {
|
|
6753
|
+
useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {
|
|
6739
6754
|
vue.watch(validationModel, () => {
|
|
6740
6755
|
if (validationModel.value != null) {
|
|
6741
6756
|
validate();
|
|
@@ -6763,7 +6778,7 @@
|
|
|
6763
6778
|
async function resetValidation() {
|
|
6764
6779
|
isPristine.value = true;
|
|
6765
6780
|
if (!validateOn.value.lazy) {
|
|
6766
|
-
await validate(
|
|
6781
|
+
await validate(!validateOn.value.eager);
|
|
6767
6782
|
} else {
|
|
6768
6783
|
internalErrorMessages.value = [];
|
|
6769
6784
|
}
|
|
@@ -7703,7 +7718,9 @@
|
|
|
7703
7718
|
selected: group.selected,
|
|
7704
7719
|
scrollTo,
|
|
7705
7720
|
scrollOffset,
|
|
7706
|
-
focus
|
|
7721
|
+
focus,
|
|
7722
|
+
hasPrev,
|
|
7723
|
+
hasNext
|
|
7707
7724
|
};
|
|
7708
7725
|
}
|
|
7709
7726
|
});
|
|
@@ -8173,6 +8190,7 @@
|
|
|
8173
8190
|
return strategy;
|
|
8174
8191
|
};
|
|
8175
8192
|
|
|
8193
|
+
// Utilities
|
|
8176
8194
|
const singleOpenStrategy = {
|
|
8177
8195
|
open: _ref => {
|
|
8178
8196
|
let {
|
|
@@ -8206,11 +8224,11 @@
|
|
|
8206
8224
|
parents
|
|
8207
8225
|
} = _ref2;
|
|
8208
8226
|
if (value) {
|
|
8209
|
-
let parent = parents.get(id);
|
|
8227
|
+
let parent = vue.toRaw(parents.get(id));
|
|
8210
8228
|
opened.add(id);
|
|
8211
8229
|
while (parent != null && parent !== id) {
|
|
8212
8230
|
opened.add(parent);
|
|
8213
|
-
parent = parents.get(parent);
|
|
8231
|
+
parent = vue.toRaw(parents.get(parent));
|
|
8214
8232
|
}
|
|
8215
8233
|
return opened;
|
|
8216
8234
|
} else {
|
|
@@ -8381,18 +8399,18 @@
|
|
|
8381
8399
|
const items = [id];
|
|
8382
8400
|
while (items.length) {
|
|
8383
8401
|
const item = items.shift();
|
|
8384
|
-
selected.set(item, value ? 'on' : 'off');
|
|
8402
|
+
selected.set(vue.toRaw(item), value ? 'on' : 'off');
|
|
8385
8403
|
if (children.has(item)) {
|
|
8386
8404
|
items.push(...children.get(item));
|
|
8387
8405
|
}
|
|
8388
8406
|
}
|
|
8389
|
-
let parent = parents.get(id);
|
|
8407
|
+
let parent = vue.toRaw(parents.get(id));
|
|
8390
8408
|
while (parent) {
|
|
8391
8409
|
const childrenIds = children.get(parent);
|
|
8392
|
-
const everySelected = childrenIds.every(cid => selected.get(cid) === 'on');
|
|
8393
|
-
const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off');
|
|
8410
|
+
const everySelected = childrenIds.every(cid => selected.get(vue.toRaw(cid)) === 'on');
|
|
8411
|
+
const noneSelected = childrenIds.every(cid => !selected.has(vue.toRaw(cid)) || selected.get(vue.toRaw(cid)) === 'off');
|
|
8394
8412
|
selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
|
|
8395
|
-
parent = parents.get(parent);
|
|
8413
|
+
parent = vue.toRaw(parents.get(parent));
|
|
8396
8414
|
}
|
|
8397
8415
|
|
|
8398
8416
|
// If mandatory and planned deselect results in no selected
|
|
@@ -8470,7 +8488,7 @@
|
|
|
8470
8488
|
let isUnmounted = false;
|
|
8471
8489
|
const children = vue.ref(new Map());
|
|
8472
8490
|
const parents = vue.ref(new Map());
|
|
8473
|
-
const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
|
|
8491
|
+
const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(vue.toRaw(v)), v => [...v.values()]);
|
|
8474
8492
|
const activeStrategy = vue.computed(() => {
|
|
8475
8493
|
if (typeof props.activeStrategy === 'object') return props.activeStrategy;
|
|
8476
8494
|
if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
|
|
@@ -8561,7 +8579,6 @@
|
|
|
8561
8579
|
children.value.set(parent, list.filter(child => child !== id));
|
|
8562
8580
|
}
|
|
8563
8581
|
parents.value.delete(id);
|
|
8564
|
-
opened.value.delete(id);
|
|
8565
8582
|
},
|
|
8566
8583
|
open: (id, value, event) => {
|
|
8567
8584
|
vm.emit('click:open', {
|
|
@@ -8644,9 +8661,9 @@
|
|
|
8644
8661
|
const item = {
|
|
8645
8662
|
...parent,
|
|
8646
8663
|
id: computedId,
|
|
8647
|
-
open: (open, e) => parent.root.open(computedId.value, open, e),
|
|
8664
|
+
open: (open, e) => parent.root.open(vue.toRaw(computedId.value), open, e),
|
|
8648
8665
|
openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
|
|
8649
|
-
isOpen: vue.computed(() => parent.root.opened.value.has(computedId.value)),
|
|
8666
|
+
isOpen: vue.computed(() => parent.root.opened.value.has(vue.toRaw(computedId.value))),
|
|
8650
8667
|
parent: vue.computed(() => parent.root.parents.value.get(computedId.value)),
|
|
8651
8668
|
activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
|
|
8652
8669
|
isActivated: vue.computed(() => parent.root.activated.value.has(vue.toRaw(computedId.value))),
|
|
@@ -8870,6 +8887,7 @@
|
|
|
8870
8887
|
activate,
|
|
8871
8888
|
isActivated,
|
|
8872
8889
|
select,
|
|
8890
|
+
isOpen,
|
|
8873
8891
|
isSelected,
|
|
8874
8892
|
isIndeterminate,
|
|
8875
8893
|
isGroupActivator,
|
|
@@ -8924,6 +8942,7 @@
|
|
|
8924
8942
|
const slotProps = vue.computed(() => ({
|
|
8925
8943
|
isActive: isActive.value,
|
|
8926
8944
|
select,
|
|
8945
|
+
isOpen: isOpen.value,
|
|
8927
8946
|
isSelected: isSelected.value,
|
|
8928
8947
|
isIndeterminate: isIndeterminate.value
|
|
8929
8948
|
}));
|
|
@@ -9733,12 +9752,6 @@
|
|
|
9733
9752
|
// el.style.removeProperty('max-width')
|
|
9734
9753
|
// el.style.removeProperty('max-height')
|
|
9735
9754
|
|
|
9736
|
-
if (isRtl) {
|
|
9737
|
-
el.style.removeProperty('left');
|
|
9738
|
-
} else {
|
|
9739
|
-
el.style.removeProperty('right');
|
|
9740
|
-
}
|
|
9741
|
-
|
|
9742
9755
|
/* eslint-disable-next-line sonarjs/prefer-immediate-return */
|
|
9743
9756
|
const contentBox = nullifyTransforms(el);
|
|
9744
9757
|
if (isRtl) {
|
|
@@ -11130,23 +11143,25 @@
|
|
|
11130
11143
|
const id = vue.computed(() => props.id || `v-menu-${uid}`);
|
|
11131
11144
|
const overlay = vue.ref();
|
|
11132
11145
|
const parent = vue.inject(VMenuSymbol, null);
|
|
11133
|
-
const openChildren = vue.shallowRef(
|
|
11146
|
+
const openChildren = vue.shallowRef(new Set());
|
|
11134
11147
|
vue.provide(VMenuSymbol, {
|
|
11135
11148
|
register() {
|
|
11136
|
-
|
|
11149
|
+
openChildren.value.add(uid);
|
|
11137
11150
|
},
|
|
11138
11151
|
unregister() {
|
|
11139
|
-
|
|
11152
|
+
openChildren.value.delete(uid);
|
|
11140
11153
|
},
|
|
11141
11154
|
closeParents(e) {
|
|
11142
11155
|
setTimeout(() => {
|
|
11143
|
-
if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
|
|
11156
|
+
if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
|
|
11144
11157
|
isActive.value = false;
|
|
11145
11158
|
parent?.closeParents();
|
|
11146
11159
|
}
|
|
11147
11160
|
}, 40);
|
|
11148
11161
|
}
|
|
11149
11162
|
});
|
|
11163
|
+
vue.onBeforeUnmount(() => parent?.unregister());
|
|
11164
|
+
vue.onDeactivated(() => isActive.value = false);
|
|
11150
11165
|
async function onFocusIn(e) {
|
|
11151
11166
|
const before = e.relatedTarget;
|
|
11152
11167
|
const after = e.target;
|
|
@@ -12058,6 +12073,7 @@
|
|
|
12058
12073
|
deep: true
|
|
12059
12074
|
});
|
|
12060
12075
|
return {
|
|
12076
|
+
calculateVisibleItems,
|
|
12061
12077
|
containerRef,
|
|
12062
12078
|
markerRef,
|
|
12063
12079
|
computedItems,
|
|
@@ -12121,6 +12137,7 @@
|
|
|
12121
12137
|
dimensionStyles
|
|
12122
12138
|
} = useDimension(props);
|
|
12123
12139
|
const {
|
|
12140
|
+
calculateVisibleItems,
|
|
12124
12141
|
containerRef,
|
|
12125
12142
|
markerRef,
|
|
12126
12143
|
handleScroll,
|
|
@@ -12192,6 +12209,7 @@
|
|
|
12192
12209
|
}, [children])]);
|
|
12193
12210
|
});
|
|
12194
12211
|
return {
|
|
12212
|
+
calculateVisibleItems,
|
|
12195
12213
|
scrollToIndex
|
|
12196
12214
|
};
|
|
12197
12215
|
}
|
|
@@ -12260,9 +12278,9 @@
|
|
|
12260
12278
|
}
|
|
12261
12279
|
}
|
|
12262
12280
|
return {
|
|
12263
|
-
onListScroll,
|
|
12264
|
-
onListKeydown
|
|
12265
|
-
};
|
|
12281
|
+
onScrollPassive: onListScroll,
|
|
12282
|
+
onKeydown: onListKeydown
|
|
12283
|
+
}; // typescript doesn't know about vue's event merging
|
|
12266
12284
|
}
|
|
12267
12285
|
|
|
12268
12286
|
// Types
|
|
@@ -12337,7 +12355,7 @@
|
|
|
12337
12355
|
const menu = vue.computed({
|
|
12338
12356
|
get: () => _menu.value,
|
|
12339
12357
|
set: v => {
|
|
12340
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
|
12358
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
|
12341
12359
|
_menu.value = v;
|
|
12342
12360
|
}
|
|
12343
12361
|
});
|
|
@@ -12376,10 +12394,7 @@
|
|
|
12376
12394
|
};
|
|
12377
12395
|
});
|
|
12378
12396
|
const listRef = vue.ref();
|
|
12379
|
-
const
|
|
12380
|
-
onListScroll,
|
|
12381
|
-
onListKeydown
|
|
12382
|
-
} = useScrolling(listRef, vTextFieldRef);
|
|
12397
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
|
12383
12398
|
function onClear(e) {
|
|
12384
12399
|
if (props.openOnClear) {
|
|
12385
12400
|
menu.value = true;
|
|
@@ -12389,6 +12404,11 @@
|
|
|
12389
12404
|
if (menuDisabled.value) return;
|
|
12390
12405
|
menu.value = !menu.value;
|
|
12391
12406
|
}
|
|
12407
|
+
function onListKeydown(e) {
|
|
12408
|
+
if (checkPrintable(e)) {
|
|
12409
|
+
onKeydown(e);
|
|
12410
|
+
}
|
|
12411
|
+
}
|
|
12392
12412
|
function onKeydown(e) {
|
|
12393
12413
|
if (!e.key || props.readonly || form?.isReadonly.value) return;
|
|
12394
12414
|
if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
|
|
@@ -12409,11 +12429,6 @@
|
|
|
12409
12429
|
// html select hotkeys
|
|
12410
12430
|
const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
|
|
12411
12431
|
|
|
12412
|
-
function checkPrintable(e) {
|
|
12413
|
-
const isPrintableChar = e.key.length === 1;
|
|
12414
|
-
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
|
12415
|
-
return isPrintableChar && noModifier;
|
|
12416
|
-
}
|
|
12417
12432
|
if (props.multiple || !checkPrintable(e)) return;
|
|
12418
12433
|
const now = performance.now();
|
|
12419
12434
|
if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
|
|
@@ -12458,6 +12473,11 @@
|
|
|
12458
12473
|
menu.value = false;
|
|
12459
12474
|
}
|
|
12460
12475
|
}
|
|
12476
|
+
function onAfterEnter() {
|
|
12477
|
+
if (props.eager) {
|
|
12478
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
|
12479
|
+
}
|
|
12480
|
+
}
|
|
12461
12481
|
function onAfterLeave() {
|
|
12462
12482
|
if (isFocused.value) {
|
|
12463
12483
|
vTextFieldRef.value?.focus();
|
|
@@ -12536,6 +12556,7 @@
|
|
|
12536
12556
|
"openOnClick": false,
|
|
12537
12557
|
"closeOnContentClick": false,
|
|
12538
12558
|
"transition": props.transition,
|
|
12559
|
+
"onAfterEnter": onAfterEnter,
|
|
12539
12560
|
"onAfterLeave": onAfterLeave
|
|
12540
12561
|
}, computedMenuProps.value), {
|
|
12541
12562
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
|
@@ -12545,11 +12566,10 @@
|
|
|
12545
12566
|
"onMousedown": e => e.preventDefault(),
|
|
12546
12567
|
"onKeydown": onListKeydown,
|
|
12547
12568
|
"onFocusin": onFocusin,
|
|
12548
|
-
"onScrollPassive": onListScroll,
|
|
12549
12569
|
"tabindex": "-1",
|
|
12550
12570
|
"aria-live": "polite",
|
|
12551
12571
|
"color": props.itemColor ?? props.color
|
|
12552
|
-
}, props.listProps), {
|
|
12572
|
+
}, listEvents, props.listProps), {
|
|
12553
12573
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
12554
12574
|
"title": t(props.noDataText)
|
|
12555
12575
|
}, null)), vue.createVNode(VVirtualScroll, {
|
|
@@ -12844,7 +12864,7 @@
|
|
|
12844
12864
|
const menu = vue.computed({
|
|
12845
12865
|
get: () => _menu.value,
|
|
12846
12866
|
set: v => {
|
|
12847
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
|
12867
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
|
12848
12868
|
_menu.value = v;
|
|
12849
12869
|
}
|
|
12850
12870
|
});
|
|
@@ -12888,10 +12908,7 @@
|
|
|
12888
12908
|
});
|
|
12889
12909
|
const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
|
12890
12910
|
const listRef = vue.ref();
|
|
12891
|
-
const
|
|
12892
|
-
onListScroll,
|
|
12893
|
-
onListKeydown
|
|
12894
|
-
} = useScrolling(listRef, vTextFieldRef);
|
|
12911
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
|
12895
12912
|
function onClear(e) {
|
|
12896
12913
|
if (props.openOnClear) {
|
|
12897
12914
|
menu.value = true;
|
|
@@ -12910,6 +12927,11 @@
|
|
|
12910
12927
|
}
|
|
12911
12928
|
menu.value = !menu.value;
|
|
12912
12929
|
}
|
|
12930
|
+
function onListKeydown(e) {
|
|
12931
|
+
if (checkPrintable(e)) {
|
|
12932
|
+
vTextFieldRef.value?.focus();
|
|
12933
|
+
}
|
|
12934
|
+
}
|
|
12913
12935
|
function onKeydown(e) {
|
|
12914
12936
|
if (props.readonly || form?.isReadonly.value) return;
|
|
12915
12937
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
@@ -12974,6 +12996,11 @@
|
|
|
12974
12996
|
}
|
|
12975
12997
|
}
|
|
12976
12998
|
}
|
|
12999
|
+
function onAfterEnter() {
|
|
13000
|
+
if (props.eager) {
|
|
13001
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
|
13002
|
+
}
|
|
13003
|
+
}
|
|
12977
13004
|
function onAfterLeave() {
|
|
12978
13005
|
if (isFocused.value) {
|
|
12979
13006
|
isPristine.value = true;
|
|
@@ -13102,6 +13129,7 @@
|
|
|
13102
13129
|
"openOnClick": false,
|
|
13103
13130
|
"closeOnContentClick": false,
|
|
13104
13131
|
"transition": props.transition,
|
|
13132
|
+
"onAfterEnter": onAfterEnter,
|
|
13105
13133
|
"onAfterLeave": onAfterLeave
|
|
13106
13134
|
}, props.menuProps), {
|
|
13107
13135
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
|
@@ -13112,11 +13140,10 @@
|
|
|
13112
13140
|
"onKeydown": onListKeydown,
|
|
13113
13141
|
"onFocusin": onFocusin,
|
|
13114
13142
|
"onFocusout": onFocusout,
|
|
13115
|
-
"onScrollPassive": onListScroll,
|
|
13116
13143
|
"tabindex": "-1",
|
|
13117
13144
|
"aria-live": "polite",
|
|
13118
13145
|
"color": props.itemColor ?? props.color
|
|
13119
|
-
}, props.listProps), {
|
|
13146
|
+
}, listEvents, props.listProps), {
|
|
13120
13147
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
13121
13148
|
"title": t(props.noDataText)
|
|
13122
13149
|
}, null)), vue.createVNode(VVirtualScroll, {
|
|
@@ -16677,7 +16704,7 @@
|
|
|
16677
16704
|
const menu = vue.computed({
|
|
16678
16705
|
get: () => _menu.value,
|
|
16679
16706
|
set: v => {
|
|
16680
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
|
16707
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
|
16681
16708
|
_menu.value = v;
|
|
16682
16709
|
}
|
|
16683
16710
|
});
|
|
@@ -16760,10 +16787,7 @@
|
|
|
16760
16787
|
});
|
|
16761
16788
|
const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
|
16762
16789
|
const listRef = vue.ref();
|
|
16763
|
-
const
|
|
16764
|
-
onListScroll,
|
|
16765
|
-
onListKeydown
|
|
16766
|
-
} = useScrolling(listRef, vTextFieldRef);
|
|
16790
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
|
16767
16791
|
function onClear(e) {
|
|
16768
16792
|
cleared = true;
|
|
16769
16793
|
if (props.openOnClear) {
|
|
@@ -16782,6 +16806,11 @@
|
|
|
16782
16806
|
}
|
|
16783
16807
|
menu.value = !menu.value;
|
|
16784
16808
|
}
|
|
16809
|
+
function onListKeydown(e) {
|
|
16810
|
+
if (checkPrintable(e)) {
|
|
16811
|
+
vTextFieldRef.value?.focus();
|
|
16812
|
+
}
|
|
16813
|
+
}
|
|
16785
16814
|
// eslint-disable-next-line complexity
|
|
16786
16815
|
function onKeydown(e) {
|
|
16787
16816
|
if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
|
|
@@ -16846,6 +16875,11 @@
|
|
|
16846
16875
|
}
|
|
16847
16876
|
}
|
|
16848
16877
|
}
|
|
16878
|
+
function onAfterEnter() {
|
|
16879
|
+
if (props.eager) {
|
|
16880
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
|
16881
|
+
}
|
|
16882
|
+
}
|
|
16849
16883
|
function onAfterLeave() {
|
|
16850
16884
|
if (isFocused.value) {
|
|
16851
16885
|
isPristine.value = true;
|
|
@@ -16970,6 +17004,7 @@
|
|
|
16970
17004
|
"openOnClick": false,
|
|
16971
17005
|
"closeOnContentClick": false,
|
|
16972
17006
|
"transition": props.transition,
|
|
17007
|
+
"onAfterEnter": onAfterEnter,
|
|
16973
17008
|
"onAfterLeave": onAfterLeave
|
|
16974
17009
|
}, props.menuProps), {
|
|
16975
17010
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
|
@@ -16980,11 +17015,10 @@
|
|
|
16980
17015
|
"onKeydown": onListKeydown,
|
|
16981
17016
|
"onFocusin": onFocusin,
|
|
16982
17017
|
"onFocusout": onFocusout,
|
|
16983
|
-
"onScrollPassive": onListScroll,
|
|
16984
17018
|
"tabindex": "-1",
|
|
16985
17019
|
"aria-live": "polite",
|
|
16986
17020
|
"color": props.itemColor ?? props.color
|
|
16987
|
-
}, props.listProps), {
|
|
17021
|
+
}, listEvents, props.listProps), {
|
|
16988
17022
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
16989
17023
|
"title": t(props.noDataText)
|
|
16990
17024
|
}, null)), vue.createVNode(VVirtualScroll, {
|
|
@@ -20928,6 +20962,7 @@
|
|
|
20928
20962
|
default: false
|
|
20929
20963
|
},
|
|
20930
20964
|
...makeComponentProps(),
|
|
20965
|
+
...makeDimensionProps(),
|
|
20931
20966
|
...makeTagProps()
|
|
20932
20967
|
}, 'VContainer');
|
|
20933
20968
|
const VContainer = genericComponent()({
|
|
@@ -20940,11 +20975,14 @@
|
|
|
20940
20975
|
const {
|
|
20941
20976
|
rtlClasses
|
|
20942
20977
|
} = useRtl();
|
|
20978
|
+
const {
|
|
20979
|
+
dimensionStyles
|
|
20980
|
+
} = useDimension(props);
|
|
20943
20981
|
useRender(() => vue.createVNode(props.tag, {
|
|
20944
20982
|
"class": ['v-container', {
|
|
20945
20983
|
'v-container--fluid': props.fluid
|
|
20946
20984
|
}, rtlClasses.value, props.class],
|
|
20947
|
-
"style": props.style
|
|
20985
|
+
"style": [dimensionStyles.value, props.style]
|
|
20948
20986
|
}, slots));
|
|
20949
20987
|
return {};
|
|
20950
20988
|
}
|
|
@@ -22366,7 +22404,8 @@
|
|
|
22366
22404
|
default: false
|
|
22367
22405
|
},
|
|
22368
22406
|
readonly: Boolean,
|
|
22369
|
-
...makeComponentProps()
|
|
22407
|
+
...makeComponentProps(),
|
|
22408
|
+
...makeDimensionProps()
|
|
22370
22409
|
}, 'VExpansionPanelTitle');
|
|
22371
22410
|
const VExpansionPanelTitle = genericComponent()({
|
|
22372
22411
|
name: 'VExpansionPanelTitle',
|
|
@@ -22384,6 +22423,9 @@
|
|
|
22384
22423
|
backgroundColorClasses,
|
|
22385
22424
|
backgroundColorStyles
|
|
22386
22425
|
} = useBackgroundColor(props, 'color');
|
|
22426
|
+
const {
|
|
22427
|
+
dimensionStyles
|
|
22428
|
+
} = useDimension(props);
|
|
22387
22429
|
const slotProps = vue.computed(() => ({
|
|
22388
22430
|
collapseIcon: props.collapseIcon,
|
|
22389
22431
|
disabled: expansionPanel.disabled.value,
|
|
@@ -22398,7 +22440,7 @@
|
|
|
22398
22440
|
'v-expansion-panel-title--focusable': props.focusable,
|
|
22399
22441
|
'v-expansion-panel-title--static': props.static
|
|
22400
22442
|
}, backgroundColorClasses.value, props.class],
|
|
22401
|
-
"style": [backgroundColorStyles.value, props.style],
|
|
22443
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
|
22402
22444
|
"type": "button",
|
|
22403
22445
|
"tabindex": expansionPanel.disabled.value ? -1 : undefined,
|
|
22404
22446
|
"disabled": expansionPanel.disabled.value,
|
|
@@ -29435,6 +29477,7 @@
|
|
|
29435
29477
|
|
|
29436
29478
|
const makeVTreeviewItemProps = propsFactory({
|
|
29437
29479
|
loading: Boolean,
|
|
29480
|
+
onToggleExpand: EventProp(),
|
|
29438
29481
|
toggleIcon: IconValue,
|
|
29439
29482
|
...makeVListItemProps({
|
|
29440
29483
|
slim: true
|
|
@@ -29455,24 +29498,12 @@
|
|
|
29455
29498
|
const {
|
|
29456
29499
|
activate,
|
|
29457
29500
|
isActivated,
|
|
29458
|
-
select,
|
|
29459
|
-
isSelected,
|
|
29460
|
-
isIndeterminate,
|
|
29461
29501
|
isGroupActivator,
|
|
29462
29502
|
root,
|
|
29463
29503
|
id
|
|
29464
29504
|
} = useNestedItem(rawId, false);
|
|
29465
29505
|
const isActivatableGroupActivator = vue.computed(() => root.activatable.value && isGroupActivator);
|
|
29466
|
-
const
|
|
29467
|
-
densityClasses
|
|
29468
|
-
} = useDensity(props, 'v-list-item');
|
|
29469
|
-
const slotProps = vue.computed(() => ({
|
|
29470
|
-
isActive: isActivated.value,
|
|
29471
|
-
select,
|
|
29472
|
-
isSelected: isSelected.value,
|
|
29473
|
-
isIndeterminate: isIndeterminate.value
|
|
29474
|
-
}));
|
|
29475
|
-
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list));
|
|
29506
|
+
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list || isActivatableGroupActivator.value));
|
|
29476
29507
|
function activateItem(e) {
|
|
29477
29508
|
if (!isClickable.value || !isActivatableGroupActivator.value && isGroupActivator) return;
|
|
29478
29509
|
if (root.activatable.value) {
|
|
@@ -29483,68 +29514,20 @@
|
|
|
29483
29514
|
}
|
|
29484
29515
|
}
|
|
29485
29516
|
}
|
|
29486
|
-
function onKeyDown(e) {
|
|
29487
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
29488
|
-
e.preventDefault();
|
|
29489
|
-
activateItem(e);
|
|
29490
|
-
}
|
|
29491
|
-
}
|
|
29492
29517
|
const visibleIds = vue.inject(VTreeviewSymbol, {
|
|
29493
29518
|
visibleIds: vue.ref()
|
|
29494
29519
|
}).visibleIds;
|
|
29495
29520
|
useRender(() => {
|
|
29496
|
-
const
|
|
29497
|
-
const hasSubtitle = slots.subtitle || props.subtitle != null;
|
|
29498
|
-
const listItemProps = VListItem.filterProps(props);
|
|
29521
|
+
const listItemProps = omit(VListItem.filterProps(props), ['onClick']);
|
|
29499
29522
|
const hasPrepend = slots.prepend || props.toggleIcon;
|
|
29500
|
-
return
|
|
29501
|
-
"
|
|
29502
|
-
'v-list-item--active': isActivated.value || isSelected.value,
|
|
29503
|
-
'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
|
|
29504
|
-
}, densityClasses.value, props.class],
|
|
29505
|
-
"onClick": activateItem
|
|
29506
|
-
}, [vue.createVNode(vue.Fragment, null, [genOverlays(isActivated.value || isSelected.value, 'v-list-item'), props.toggleIcon && vue.createVNode(VListItemAction, {
|
|
29507
|
-
"start": false
|
|
29508
|
-
}, {
|
|
29509
|
-
default: () => [vue.createVNode(VBtn, {
|
|
29510
|
-
"density": "compact",
|
|
29511
|
-
"icon": props.toggleIcon,
|
|
29512
|
-
"loading": props.loading,
|
|
29513
|
-
"variant": "text",
|
|
29514
|
-
"onClick": props.onClick
|
|
29515
|
-
}, {
|
|
29516
|
-
loader() {
|
|
29517
|
-
return vue.createVNode(VProgressCircular, {
|
|
29518
|
-
"indeterminate": "disable-shrink",
|
|
29519
|
-
"size": "20",
|
|
29520
|
-
"width": "2"
|
|
29521
|
-
}, null);
|
|
29522
|
-
}
|
|
29523
|
-
})]
|
|
29524
|
-
})]), vue.createVNode("div", {
|
|
29525
|
-
"class": "v-list-item__content",
|
|
29526
|
-
"data-no-activator": ""
|
|
29527
|
-
}, [hasTitle && vue.createVNode(VListItemTitle, {
|
|
29528
|
-
"key": "title"
|
|
29529
|
-
}, {
|
|
29530
|
-
default: () => [slots.title?.({
|
|
29531
|
-
title: props.title
|
|
29532
|
-
}) ?? props.title]
|
|
29533
|
-
}), hasSubtitle && vue.createVNode(VListItemSubtitle, {
|
|
29534
|
-
"key": "subtitle"
|
|
29535
|
-
}, {
|
|
29536
|
-
default: () => [slots.subtitle?.({
|
|
29537
|
-
subtitle: props.subtitle
|
|
29538
|
-
}) ?? props.subtitle]
|
|
29539
|
-
}), slots.default?.(slotProps.value)])]), [[vue.resolveDirective("ripple"), isClickable.value && props.ripple]]) : vue.createVNode(VListItem, vue.mergeProps({
|
|
29540
|
-
"ref": vListItemRef
|
|
29541
|
-
}, listItemProps, {
|
|
29523
|
+
return vue.createVNode(VListItem, vue.mergeProps(listItemProps, {
|
|
29524
|
+
"active": isActivated.value,
|
|
29542
29525
|
"class": ['v-treeview-item', {
|
|
29526
|
+
'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,
|
|
29543
29527
|
'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
|
|
29544
29528
|
}, props.class],
|
|
29545
|
-
"
|
|
29546
|
-
"onClick": activateItem
|
|
29547
|
-
"onKeydown": isClickable.value && onKeyDown
|
|
29529
|
+
"ripple": false,
|
|
29530
|
+
"onClick": props.onClick ?? activateItem
|
|
29548
29531
|
}), {
|
|
29549
29532
|
...slots,
|
|
29550
29533
|
prepend: hasPrepend ? slotProps => {
|
|
@@ -29555,7 +29538,8 @@
|
|
|
29555
29538
|
"density": "compact",
|
|
29556
29539
|
"icon": props.toggleIcon,
|
|
29557
29540
|
"loading": props.loading,
|
|
29558
|
-
"variant": "text"
|
|
29541
|
+
"variant": "text",
|
|
29542
|
+
"onClick": props.onToggleExpand
|
|
29559
29543
|
}, {
|
|
29560
29544
|
loader() {
|
|
29561
29545
|
return vue.createVNode(VProgressCircular, {
|
|
@@ -29582,7 +29566,19 @@
|
|
|
29582
29566
|
default: '$loading'
|
|
29583
29567
|
},
|
|
29584
29568
|
items: Array,
|
|
29569
|
+
openOnClick: {
|
|
29570
|
+
type: Boolean,
|
|
29571
|
+
default: undefined
|
|
29572
|
+
},
|
|
29573
|
+
indeterminateIcon: {
|
|
29574
|
+
type: IconValue,
|
|
29575
|
+
default: '$checkboxIndeterminate'
|
|
29576
|
+
},
|
|
29577
|
+
falseIcon: IconValue,
|
|
29578
|
+
trueIcon: IconValue,
|
|
29579
|
+
returnObject: Boolean,
|
|
29585
29580
|
selectable: Boolean,
|
|
29581
|
+
selectedColor: String,
|
|
29586
29582
|
selectStrategy: [String, Function, Object]
|
|
29587
29583
|
}, 'VTreeviewChildren');
|
|
29588
29584
|
const VTreeviewChildren = genericComponent()({
|
|
@@ -29594,6 +29590,7 @@
|
|
|
29594
29590
|
slots
|
|
29595
29591
|
} = _ref;
|
|
29596
29592
|
const isLoading = vue.shallowRef(null);
|
|
29593
|
+
const isClickOnOpen = vue.computed(() => props.openOnClick != null ? props.openOnClick : props.selectable);
|
|
29597
29594
|
function checkChildren(item) {
|
|
29598
29595
|
return new Promise(resolve => {
|
|
29599
29596
|
if (!props.items?.length || !props.loadChildren) return resolve();
|
|
@@ -29624,7 +29621,11 @@
|
|
|
29624
29621
|
"key": item.value,
|
|
29625
29622
|
"modelValue": slotProps.isSelected,
|
|
29626
29623
|
"loading": loading,
|
|
29624
|
+
"color": props.selectedColor,
|
|
29627
29625
|
"indeterminate": slotProps.isIndeterminate,
|
|
29626
|
+
"indeterminateIcon": props.indeterminateIcon,
|
|
29627
|
+
"falseIcon": props.falseIcon,
|
|
29628
|
+
"trueIcon": props.trueIcon,
|
|
29628
29629
|
"onClick": vue.withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']),
|
|
29629
29630
|
"onKeydown": e => {
|
|
29630
29631
|
if (!['Enter', 'Space'].includes(e.key)) return;
|
|
@@ -29646,9 +29647,9 @@
|
|
|
29646
29647
|
};
|
|
29647
29648
|
const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
|
|
29648
29649
|
const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
|
|
29649
|
-
return children ? vue.createVNode(VTreeviewGroup, vue.mergeProps({
|
|
29650
|
-
"value":
|
|
29651
|
-
}
|
|
29650
|
+
return children ? vue.createVNode(VTreeviewGroup, vue.mergeProps(treeviewGroupProps, {
|
|
29651
|
+
"value": props.returnObject ? item : treeviewGroupProps?.value
|
|
29652
|
+
}), {
|
|
29652
29653
|
activator: _ref3 => {
|
|
29653
29654
|
let {
|
|
29654
29655
|
props: activatorProps
|
|
@@ -29656,19 +29657,24 @@
|
|
|
29656
29657
|
const listItemProps = {
|
|
29657
29658
|
...itemProps,
|
|
29658
29659
|
...activatorProps,
|
|
29659
|
-
value: itemProps?.value
|
|
29660
|
+
value: itemProps?.value,
|
|
29661
|
+
onToggleExpand: activatorProps.onClick,
|
|
29662
|
+
onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : undefined
|
|
29660
29663
|
};
|
|
29661
29664
|
return vue.createVNode(VTreeviewItem, vue.mergeProps(listItemProps, {
|
|
29662
|
-
"
|
|
29663
|
-
"
|
|
29665
|
+
"value": props.returnObject ? vue.toRaw(item) : itemProps.value,
|
|
29666
|
+
"loading": loading
|
|
29664
29667
|
}), slotsWithItem);
|
|
29665
29668
|
},
|
|
29666
29669
|
default: () => vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
|
|
29667
|
-
"items": children
|
|
29670
|
+
"items": children,
|
|
29671
|
+
"returnObject": props.returnObject
|
|
29668
29672
|
}), slots)
|
|
29669
29673
|
}) : slots.item?.({
|
|
29670
29674
|
props: itemProps
|
|
29671
|
-
}) ?? vue.createVNode(VTreeviewItem, itemProps,
|
|
29675
|
+
}) ?? vue.createVNode(VTreeviewItem, vue.mergeProps(itemProps, {
|
|
29676
|
+
"value": props.returnObject ? vue.toRaw(item) : itemProps.value
|
|
29677
|
+
}), slotsWithItem);
|
|
29672
29678
|
});
|
|
29673
29679
|
}
|
|
29674
29680
|
});
|
|
@@ -29692,7 +29698,7 @@
|
|
|
29692
29698
|
collapseIcon: '$treeviewCollapse',
|
|
29693
29699
|
expandIcon: '$treeviewExpand',
|
|
29694
29700
|
slim: true
|
|
29695
|
-
}), ['nav'])
|
|
29701
|
+
}), ['nav', 'openStrategy'])
|
|
29696
29702
|
}, 'VTreeview');
|
|
29697
29703
|
const VTreeview = genericComponent()({
|
|
29698
29704
|
name: 'VTreeview',
|
|
@@ -29751,11 +29757,11 @@
|
|
|
29751
29757
|
}
|
|
29752
29758
|
return arr;
|
|
29753
29759
|
}
|
|
29754
|
-
function openAll(
|
|
29760
|
+
function openAll(items) {
|
|
29755
29761
|
let ids = [];
|
|
29756
|
-
for (const i of
|
|
29762
|
+
for (const i of items) {
|
|
29757
29763
|
if (!i.children) continue;
|
|
29758
|
-
ids.push(i.value);
|
|
29764
|
+
ids.push(props.returnObject ? vue.toRaw(i.raw) : i.value);
|
|
29759
29765
|
if (i.children) {
|
|
29760
29766
|
ids = ids.concat(openAll(i.children));
|
|
29761
29767
|
}
|
|
@@ -29791,6 +29797,7 @@
|
|
|
29791
29797
|
"ref": vListRef
|
|
29792
29798
|
}, listProps, {
|
|
29793
29799
|
"class": ['v-treeview', props.class],
|
|
29800
|
+
"open-strategy": "multiple",
|
|
29794
29801
|
"style": props.style,
|
|
29795
29802
|
"opened": opened.value,
|
|
29796
29803
|
"activated": activated.value,
|
|
@@ -29799,6 +29806,7 @@
|
|
|
29799
29806
|
"onUpdate:selected": $event => selected.value = $event
|
|
29800
29807
|
}), {
|
|
29801
29808
|
default: () => [vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
|
|
29809
|
+
"returnObject": props.returnObject,
|
|
29802
29810
|
"items": items.value
|
|
29803
29811
|
}), slots)]
|
|
29804
29812
|
});
|
|
@@ -30304,7 +30312,7 @@
|
|
|
30304
30312
|
goTo
|
|
30305
30313
|
};
|
|
30306
30314
|
}
|
|
30307
|
-
const version$1 = "3.
|
|
30315
|
+
const version$1 = "3.7.0-beta.1";
|
|
30308
30316
|
createVuetify$1.version = version$1;
|
|
30309
30317
|
|
|
30310
30318
|
// Vue's inject() can only be used in setup
|
|
@@ -30557,7 +30565,7 @@
|
|
|
30557
30565
|
|
|
30558
30566
|
/* eslint-disable local-rules/sort-imports */
|
|
30559
30567
|
|
|
30560
|
-
const version = "3.
|
|
30568
|
+
const version = "3.7.0-beta.1";
|
|
30561
30569
|
|
|
30562
30570
|
/* eslint-disable local-rules/sort-imports */
|
|
30563
30571
|
|