@vuetify/nightly 3.9.1-dev.2025-07-17 → 3.9.2-master.2025-07-18
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/CHANGELOG.md +3 -14
- package/dist/json/attributes.json +3514 -3534
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +192 -192
- package/dist/json/tags.json +0 -5
- package/dist/json/web-types.json +19798 -6490
- package/dist/vuetify-labs.cjs +88 -278
- package/dist/vuetify-labs.css +4475 -4477
- package/dist/vuetify-labs.d.ts +64 -126
- package/dist/vuetify-labs.esm.js +88 -278
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +88 -278
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +79 -240
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2683 -2685
- package/dist/vuetify.d.ts +64 -116
- package/dist/vuetify.esm.js +79 -240
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +79 -240
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +702 -724
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +0 -1
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.js +0 -1
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.d.ts +0 -15
- package/lib/components/VFileInput/VFileInput.js +9 -38
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VList/VList.js +1 -2
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListItem.js +1 -7
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.d.ts +0 -75
- package/lib/components/VProgressLinear/VProgressLinear.js +6 -32
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +2 -2
- package/lib/components/VSelect/VSelect.js +0 -1
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VTreeview/VTreeview.js +2 -3
- package/lib/components/VTreeview/VTreeview.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewChildren.js +59 -59
- package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +64 -64
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.d.ts +0 -15
- package/lib/labs/VFileUpload/VFileUpload.js +9 -39
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/package.json +1 -1
- package/lib/components/VProgressLinear/chunks.d.ts +0 -55
- package/lib/components/VProgressLinear/chunks.js +0 -62
- package/lib/components/VProgressLinear/chunks.js.map +0 -1
- package/lib/composables/fileFilter.d.ts +0 -18
- package/lib/composables/fileFilter.js +0 -38
- package/lib/composables/fileFilter.js.map +0 -1
package/dist/vuetify.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.9.
|
2
|
+
* Vuetify v3.9.2-master.2025-07-18
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -5447,69 +5447,6 @@
|
|
5447
5447
|
};
|
5448
5448
|
}
|
5449
5449
|
|
5450
|
-
// Utilities
|
5451
|
-
|
5452
|
-
// Types
|
5453
|
-
|
5454
|
-
// Composables
|
5455
|
-
const makeChunksProps = propsFactory({
|
5456
|
-
chunkCount: {
|
5457
|
-
type: [Number, String],
|
5458
|
-
default: null
|
5459
|
-
},
|
5460
|
-
chunkWidth: {
|
5461
|
-
type: [Number, String],
|
5462
|
-
default: null
|
5463
|
-
},
|
5464
|
-
chunkGap: {
|
5465
|
-
type: [Number, String],
|
5466
|
-
default: 4
|
5467
|
-
}
|
5468
|
-
}, 'chunks');
|
5469
|
-
function useChunks(props, containerWidth) {
|
5470
|
-
const hasChunks = vue.toRef(() => !!props.chunkCount || !!props.chunkWidth);
|
5471
|
-
const chunkWidth = vue.computed(() => {
|
5472
|
-
const containerSize = vue.toValue(containerWidth);
|
5473
|
-
if (!containerSize) {
|
5474
|
-
return 0;
|
5475
|
-
}
|
5476
|
-
if (!props.chunkCount) {
|
5477
|
-
return Number(props.chunkWidth);
|
5478
|
-
}
|
5479
|
-
const count = Number(props.chunkCount);
|
5480
|
-
const availableWidth = containerSize - Number(props.chunkGap) * (count - 1);
|
5481
|
-
return availableWidth / count;
|
5482
|
-
});
|
5483
|
-
const chunkGap = vue.toRef(() => Number(props.chunkGap));
|
5484
|
-
const chunksMaskStyles = vue.computed(() => {
|
5485
|
-
if (!hasChunks.value) {
|
5486
|
-
return {};
|
5487
|
-
}
|
5488
|
-
const chunkGapPx = convertToUnit(chunkGap.value);
|
5489
|
-
const chunkWidthPx = convertToUnit(chunkWidth.value);
|
5490
|
-
return {
|
5491
|
-
maskRepeat: 'repeat-x',
|
5492
|
-
maskImage: `linear-gradient(90deg, #000, #000 ${chunkWidthPx}, transparent ${chunkWidthPx}, transparent)`,
|
5493
|
-
maskSize: `calc(${chunkWidthPx} + ${chunkGapPx}) 100%`
|
5494
|
-
};
|
5495
|
-
});
|
5496
|
-
function snapValueToChunk(val) {
|
5497
|
-
const containerSize = vue.toValue(containerWidth);
|
5498
|
-
if (!containerSize) {
|
5499
|
-
return val;
|
5500
|
-
}
|
5501
|
-
const gapRelativeSize = 100 * chunkGap.value / containerSize;
|
5502
|
-
const chunkRelativeSize = 100 * (chunkWidth.value + chunkGap.value) / containerSize;
|
5503
|
-
const filledChunks = Math.floor((val + gapRelativeSize) / chunkRelativeSize);
|
5504
|
-
return clamp(0, filledChunks * chunkRelativeSize - gapRelativeSize / 2, 100);
|
5505
|
-
}
|
5506
|
-
return {
|
5507
|
-
hasChunks,
|
5508
|
-
chunksMaskStyles,
|
5509
|
-
snapValueToChunk
|
5510
|
-
};
|
5511
|
-
}
|
5512
|
-
|
5513
5450
|
const makeVProgressLinearProps = propsFactory({
|
5514
5451
|
absolute: Boolean,
|
5515
5452
|
active: {
|
@@ -5544,7 +5481,6 @@
|
|
5544
5481
|
stream: Boolean,
|
5545
5482
|
striped: Boolean,
|
5546
5483
|
roundedBar: Boolean,
|
5547
|
-
...makeChunksProps(),
|
5548
5484
|
...makeComponentProps(),
|
5549
5485
|
...makeLocationProps({
|
5550
5486
|
location: 'top'
|
@@ -5563,7 +5499,6 @@
|
|
5563
5499
|
let {
|
5564
5500
|
slots
|
5565
5501
|
} = _ref;
|
5566
|
-
const root = vue.ref();
|
5567
5502
|
const progress = useProxiedModel(props, 'modelValue');
|
5568
5503
|
const {
|
5569
5504
|
isRtl,
|
@@ -5605,24 +5540,6 @@
|
|
5605
5540
|
const isReversed = vue.computed(() => isRtl.value !== props.reverse);
|
5606
5541
|
const transition = vue.computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition');
|
5607
5542
|
const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches;
|
5608
|
-
const containerWidth = vue.shallowRef(0);
|
5609
|
-
const {
|
5610
|
-
hasChunks,
|
5611
|
-
chunksMaskStyles,
|
5612
|
-
snapValueToChunk
|
5613
|
-
} = useChunks(props, containerWidth);
|
5614
|
-
useToggleScope(hasChunks, () => {
|
5615
|
-
const {
|
5616
|
-
resizeRef
|
5617
|
-
} = useResizeObserver(entries => containerWidth.value = entries[0].contentRect.width);
|
5618
|
-
vue.watchEffect(() => resizeRef.value = root.value);
|
5619
|
-
});
|
5620
|
-
const bufferWidth = vue.computed(() => {
|
5621
|
-
return hasChunks.value ? snapValueToChunk(normalizedBuffer.value) : normalizedBuffer.value;
|
5622
|
-
});
|
5623
|
-
const barWidth = vue.computed(() => {
|
5624
|
-
return hasChunks.value ? snapValueToChunk(normalizedValue.value) : normalizedValue.value;
|
5625
|
-
});
|
5626
5543
|
function handleClick(e) {
|
5627
5544
|
if (!intersectionRef.value) return;
|
5628
5545
|
const {
|
@@ -5633,11 +5550,8 @@
|
|
5633
5550
|
const value = isReversed.value ? width - e.clientX + (right - width) : e.clientX - left;
|
5634
5551
|
progress.value = Math.round(value / width * max.value);
|
5635
5552
|
}
|
5636
|
-
vue.watchEffect(() => {
|
5637
|
-
intersectionRef.value = root.value;
|
5638
|
-
});
|
5639
5553
|
useRender(() => vue.createVNode(props.tag, {
|
5640
|
-
"ref":
|
5554
|
+
"ref": intersectionRef,
|
5641
5555
|
"class": vue.normalizeClass(['v-progress-linear', {
|
5642
5556
|
'v-progress-linear--absolute': props.absolute,
|
5643
5557
|
'v-progress-linear--active': props.active && isIntersecting.value,
|
@@ -5652,7 +5566,7 @@
|
|
5652
5566
|
height: props.active ? convertToUnit(height.value) : 0,
|
5653
5567
|
'--v-progress-linear-height': convertToUnit(height.value),
|
5654
5568
|
...(props.absolute ? locationStyles.value : {})
|
5655
|
-
},
|
5569
|
+
}, props.style]),
|
5656
5570
|
"role": "progressbar",
|
5657
5571
|
"aria-hidden": props.active ? 'false' : 'true',
|
5658
5572
|
"aria-valuemin": "0",
|
@@ -5682,7 +5596,7 @@
|
|
5682
5596
|
"class": vue.normalizeClass(['v-progress-linear__buffer', !isForcedColorsModeActive ? bufferColorClasses.value : undefined]),
|
5683
5597
|
"style": vue.normalizeStyle([bufferColorStyles.value, {
|
5684
5598
|
opacity: parseFloat(props.bufferOpacity),
|
5685
|
-
width: convertToUnit(
|
5599
|
+
width: convertToUnit(normalizedBuffer.value, '%')
|
5686
5600
|
}])
|
5687
5601
|
}, null), vue.createVNode(vue.Transition, {
|
5688
5602
|
"name": transition.value
|
@@ -5690,7 +5604,7 @@
|
|
5690
5604
|
default: () => [!props.indeterminate ? vue.createElementVNode("div", {
|
5691
5605
|
"class": vue.normalizeClass(['v-progress-linear__determinate', !isForcedColorsModeActive ? barColorClasses.value : undefined]),
|
5692
5606
|
"style": vue.normalizeStyle([barColorStyles.value, {
|
5693
|
-
width: convertToUnit(
|
5607
|
+
width: convertToUnit(normalizedValue.value, '%')
|
5694
5608
|
}])
|
5695
5609
|
}, null) : vue.createElementVNode("div", {
|
5696
5610
|
"class": "v-progress-linear__indeterminate"
|
@@ -9908,11 +9822,6 @@
|
|
9908
9822
|
const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
|
9909
9823
|
const isSelectable = vue.computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
|
9910
9824
|
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
|
9911
|
-
const role = vue.computed(() => list ? isSelectable.value ? 'option' : 'listitem' : undefined);
|
9912
|
-
const ariaSelected = vue.computed(() => {
|
9913
|
-
if (!isSelectable.value) return undefined;
|
9914
|
-
return root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value;
|
9915
|
-
});
|
9916
9825
|
const roundedProps = vue.toRef(() => props.rounded || props.nav);
|
9917
9826
|
const color = vue.toRef(() => props.color ?? props.activeColor);
|
9918
9827
|
const variantProps = vue.toRef(() => ({
|
@@ -10016,8 +9925,7 @@
|
|
10016
9925
|
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
10017
9926
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
10018
9927
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
10019
|
-
"aria-selected":
|
10020
|
-
"role": role.value,
|
9928
|
+
"aria-selected": isSelectable.value ? root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value : undefined,
|
10021
9929
|
"onClick": onClick,
|
10022
9930
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
10023
9931
|
}, link.linkProps), {
|
@@ -10519,7 +10427,6 @@
|
|
10519
10427
|
const activeColor = vue.toRef(() => props.activeColor);
|
10520
10428
|
const baseColor = vue.toRef(() => props.baseColor);
|
10521
10429
|
const color = vue.toRef(() => props.color);
|
10522
|
-
const isSelectable = vue.toRef(() => props.selectable || props.activatable);
|
10523
10430
|
createList({
|
10524
10431
|
filterable: props.filterable
|
10525
10432
|
});
|
@@ -10591,7 +10498,7 @@
|
|
10591
10498
|
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class]),
|
10592
10499
|
"style": vue.normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style]),
|
10593
10500
|
"tabindex": props.disabled ? -1 : 0,
|
10594
|
-
"role":
|
10501
|
+
"role": "listbox",
|
10595
10502
|
"aria-activedescendant": undefined,
|
10596
10503
|
"onFocusin": onFocusin,
|
10597
10504
|
"onFocusout": onFocusout,
|
@@ -13661,7 +13568,6 @@
|
|
13661
13568
|
"onKeydown": onListKeydown,
|
13662
13569
|
"onFocusin": onFocusin,
|
13663
13570
|
"tabindex": "-1",
|
13664
|
-
"selectable": true,
|
13665
13571
|
"aria-live": "polite",
|
13666
13572
|
"aria-label": `${props.label}-list`,
|
13667
13573
|
"color": props.itemColor ?? props.color
|
@@ -14281,7 +14187,6 @@
|
|
14281
14187
|
"onFocusin": onFocusin,
|
14282
14188
|
"onFocusout": onFocusout,
|
14283
14189
|
"tabindex": "-1",
|
14284
|
-
"selectable": true,
|
14285
14190
|
"aria-live": "polite",
|
14286
14191
|
"color": props.itemColor ?? props.color
|
14287
14192
|
}, listEvents, props.listProps), {
|
@@ -19369,7 +19274,6 @@
|
|
19369
19274
|
"selected": selectedValues.value,
|
19370
19275
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
19371
19276
|
"onMousedown": e => e.preventDefault(),
|
19372
|
-
"selectable": true,
|
19373
19277
|
"onKeydown": onListKeydown,
|
19374
19278
|
"onFocusin": onFocusin,
|
19375
19279
|
"onFocusout": onFocusout,
|
@@ -24468,42 +24372,6 @@
|
|
24468
24372
|
return item.isDirectory ? `${path}/${item.name}` : path;
|
24469
24373
|
}
|
24470
24374
|
|
24471
|
-
// Utilities
|
24472
|
-
// Composables
|
24473
|
-
const makeFileFilterProps = propsFactory({
|
24474
|
-
filterByType: String
|
24475
|
-
}, 'file-accept');
|
24476
|
-
function useFileFilter(props) {
|
24477
|
-
const fileFilter = vue.computed(() => props.filterByType ? createFilter(props.filterByType) : null);
|
24478
|
-
function filterAccepted(files) {
|
24479
|
-
if (fileFilter.value) {
|
24480
|
-
const accepted = files.filter(fileFilter.value);
|
24481
|
-
return {
|
24482
|
-
accepted,
|
24483
|
-
rejected: files.filter(f => !accepted.includes(f))
|
24484
|
-
};
|
24485
|
-
}
|
24486
|
-
return {
|
24487
|
-
accepted: files,
|
24488
|
-
rejected: []
|
24489
|
-
};
|
24490
|
-
}
|
24491
|
-
return {
|
24492
|
-
filterAccepted
|
24493
|
-
};
|
24494
|
-
}
|
24495
|
-
function createFilter(v) {
|
24496
|
-
const types = v.split(',').map(x => x.trim().toLowerCase());
|
24497
|
-
const extensionsToMatch = types.filter(x => x.startsWith('.'));
|
24498
|
-
const wildcards = types.filter(x => x.endsWith('/*'));
|
24499
|
-
const typesToMatch = types.filter(x => !extensionsToMatch.includes(x) && !wildcards.includes(x));
|
24500
|
-
return file => {
|
24501
|
-
const extension = file.name.split('.').at(-1)?.toLowerCase() ?? '';
|
24502
|
-
const typeGroup = file.type.split('/').at(0)?.toLowerCase() ?? '';
|
24503
|
-
return typesToMatch.includes(file.type) || extensionsToMatch.includes(`.${extension}`) || wildcards.includes(`${typeGroup}/*`);
|
24504
|
-
};
|
24505
|
-
}
|
24506
|
-
|
24507
24375
|
// Types
|
24508
24376
|
|
24509
24377
|
const makeVFileInputProps = propsFactory({
|
@@ -24536,7 +24404,6 @@
|
|
24536
24404
|
return wrapInArray(val).every(v => v != null && typeof v === 'object');
|
24537
24405
|
}
|
24538
24406
|
},
|
24539
|
-
...makeFileFilterProps(),
|
24540
24407
|
...makeVFieldProps({
|
24541
24408
|
clearable: true
|
24542
24409
|
})
|
@@ -24549,8 +24416,7 @@
|
|
24549
24416
|
'click:control': e => true,
|
24550
24417
|
'mousedown:control': e => true,
|
24551
24418
|
'update:focused': focused => true,
|
24552
|
-
'update:modelValue': files => true
|
24553
|
-
rejected: files => true
|
24419
|
+
'update:modelValue': files => true
|
24554
24420
|
},
|
24555
24421
|
setup(props, _ref) {
|
24556
24422
|
let {
|
@@ -24561,9 +24427,6 @@
|
|
24561
24427
|
const {
|
24562
24428
|
t
|
24563
24429
|
} = useLocale();
|
24564
|
-
const {
|
24565
|
-
filterAccepted
|
24566
|
-
} = useFileFilter(props);
|
24567
24430
|
const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => !props.multiple && Array.isArray(val) ? val[0] : val);
|
24568
24431
|
const {
|
24569
24432
|
isFocused,
|
@@ -24637,38 +24500,14 @@
|
|
24637
24500
|
e.stopImmediatePropagation();
|
24638
24501
|
isDragging.value = false;
|
24639
24502
|
if (!inputRef.value || !hasFilesOrFolders(e)) return;
|
24640
|
-
const allDroppedFiles = await handleDrop(e);
|
24641
|
-
selectAccepted(allDroppedFiles);
|
24642
|
-
}
|
24643
|
-
function onFileSelection(e) {
|
24644
|
-
if (!e.target || e.repack) return; // prevent loop
|
24645
|
-
|
24646
|
-
if (!props.filterByType) {
|
24647
|
-
const target = e.target;
|
24648
|
-
model.value = [...(target.files ?? [])];
|
24649
|
-
} else {
|
24650
|
-
selectAccepted([...e.target.files]);
|
24651
|
-
}
|
24652
|
-
}
|
24653
|
-
function selectAccepted(files) {
|
24654
24503
|
const dataTransfer = new DataTransfer();
|
24655
|
-
const {
|
24656
|
-
accepted,
|
24657
|
-
rejected
|
24658
|
-
} = filterAccepted(files);
|
24659
|
-
if (rejected.length) {
|
24660
|
-
emit('rejected', rejected);
|
24661
|
-
}
|
24662
|
-
for (const file of accepted) {
|
24504
|
+
for (const file of await handleDrop(e)) {
|
24663
24505
|
dataTransfer.items.add(file);
|
24664
24506
|
}
|
24665
24507
|
inputRef.value.files = dataTransfer.files;
|
24666
|
-
|
24667
|
-
const event = new Event('change', {
|
24508
|
+
inputRef.value.dispatchEvent(new Event('change', {
|
24668
24509
|
bubbles: true
|
24669
|
-
});
|
24670
|
-
event.repack = true;
|
24671
|
-
inputRef.value.dispatchEvent(event);
|
24510
|
+
}));
|
24672
24511
|
}
|
24673
24512
|
vue.watch(model, newValue => {
|
24674
24513
|
const hasModelReset = !Array.isArray(newValue) || !newValue.length;
|
@@ -24685,8 +24524,6 @@
|
|
24685
24524
|
...inputProps
|
24686
24525
|
} = VInput.filterProps(props);
|
24687
24526
|
const fieldProps = VField.filterProps(props);
|
24688
|
-
const expectsDirectory = attrs.webkitdirectory !== undefined && attrs.webkitdirectory !== false;
|
24689
|
-
const inputAccept = expectsDirectory ? undefined : props.filterByType ?? String(attrs.accept);
|
24690
24527
|
return vue.createVNode(VInput, vue.mergeProps({
|
24691
24528
|
"ref": vInputRef,
|
24692
24529
|
"modelValue": props.multiple ? model.value : model.value[0],
|
@@ -24742,7 +24579,6 @@
|
|
24742
24579
|
return vue.createElementVNode(vue.Fragment, null, [vue.createElementVNode("input", vue.mergeProps({
|
24743
24580
|
"ref": inputRef,
|
24744
24581
|
"type": "file",
|
24745
|
-
"accept": inputAccept,
|
24746
24582
|
"readonly": isReadonly.value,
|
24747
24583
|
"disabled": isDisabled.value,
|
24748
24584
|
"multiple": props.multiple,
|
@@ -24752,7 +24588,11 @@
|
|
24752
24588
|
if (isReadonly.value) e.preventDefault();
|
24753
24589
|
onFocus();
|
24754
24590
|
},
|
24755
|
-
"onChange":
|
24591
|
+
"onChange": e => {
|
24592
|
+
if (!e.target) return;
|
24593
|
+
const target = e.target;
|
24594
|
+
model.value = [...(target.files ?? [])];
|
24595
|
+
},
|
24756
24596
|
"onDragleave": onDragleave,
|
24757
24597
|
"onFocus": onFocus,
|
24758
24598
|
"onBlur": blur
|
@@ -30787,51 +30627,48 @@
|
|
30787
30627
|
parentIndentLines: props.parentIndentLines,
|
30788
30628
|
variant: props.indentLinesVariant
|
30789
30629
|
});
|
30790
|
-
|
30791
|
-
|
30792
|
-
|
30793
|
-
|
30794
|
-
|
30795
|
-
|
30796
|
-
|
30797
|
-
|
30798
|
-
|
30799
|
-
|
30800
|
-
|
30801
|
-
|
30802
|
-
|
30803
|
-
|
30804
|
-
|
30805
|
-
|
30806
|
-
|
30807
|
-
|
30808
|
-
|
30809
|
-
|
30810
|
-
|
30811
|
-
|
30812
|
-
|
30813
|
-
|
30814
|
-
|
30815
|
-
|
30816
|
-
|
30817
|
-
|
30818
|
-
|
30819
|
-
|
30820
|
-
|
30821
|
-
|
30822
|
-
|
30823
|
-
|
30824
|
-
|
30825
|
-
|
30826
|
-
|
30827
|
-
|
30828
|
-
|
30829
|
-
|
30830
|
-
|
30831
|
-
|
30832
|
-
$stable: true
|
30833
|
-
});
|
30834
|
-
}
|
30630
|
+
const slotsWithItem = {
|
30631
|
+
prepend: slotProps => vue.createElementVNode(vue.Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && vue.createElementVNode("div", null, [vue.createVNode(VCheckboxBtn, {
|
30632
|
+
"key": item.value,
|
30633
|
+
"modelValue": slotProps.isSelected,
|
30634
|
+
"disabled": props.disabled,
|
30635
|
+
"loading": loading,
|
30636
|
+
"color": props.selectedColor,
|
30637
|
+
"density": props.density,
|
30638
|
+
"indeterminate": slotProps.isIndeterminate,
|
30639
|
+
"indeterminateIcon": props.indeterminateIcon,
|
30640
|
+
"falseIcon": props.falseIcon,
|
30641
|
+
"trueIcon": props.trueIcon,
|
30642
|
+
"onUpdate:modelValue": v => selectItem(slotProps.select, v),
|
30643
|
+
"onClick": e => e.stopPropagation(),
|
30644
|
+
"onKeydown": e => {
|
30645
|
+
if (!['Enter', 'Space'].includes(e.key)) return;
|
30646
|
+
e.stopPropagation();
|
30647
|
+
selectItem(slotProps.select, slotProps.isSelected);
|
30648
|
+
}
|
30649
|
+
}, null)]), slots.prepend?.({
|
30650
|
+
...slotProps,
|
30651
|
+
...treeItemProps,
|
30652
|
+
item: item.raw,
|
30653
|
+
internalItem: item
|
30654
|
+
})]),
|
30655
|
+
append: slots.append ? slotProps => slots.append?.({
|
30656
|
+
...slotProps,
|
30657
|
+
...treeItemProps,
|
30658
|
+
item: item.raw,
|
30659
|
+
internalItem: item
|
30660
|
+
}) : undefined,
|
30661
|
+
title: slots.title ? slotProps => slots.title?.({
|
30662
|
+
...slotProps,
|
30663
|
+
item: item.raw,
|
30664
|
+
internalItem: item
|
30665
|
+
}) : undefined,
|
30666
|
+
subtitle: slots.subtitle ? slotProps => slots.subtitle?.({
|
30667
|
+
...slotProps,
|
30668
|
+
item: item.raw,
|
30669
|
+
internalItem: item
|
30670
|
+
}) : undefined
|
30671
|
+
};
|
30835
30672
|
const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
|
30836
30673
|
const treeviewChildrenProps = VTreeviewChildren.filterProps({
|
30837
30674
|
...props,
|
@@ -30845,16 +30682,21 @@
|
|
30845
30682
|
let {
|
30846
30683
|
props: activatorProps
|
30847
30684
|
} = _ref2;
|
30848
|
-
|
30685
|
+
const listItemProps = {
|
30849
30686
|
...itemProps,
|
30850
30687
|
...activatorProps,
|
30851
|
-
|
30852
|
-
hideActions: props.hideActions,
|
30853
|
-
indentLines: indentLines.node,
|
30854
|
-
value: props.returnObject ? item.raw : itemProps.value,
|
30688
|
+
value: itemProps?.value,
|
30855
30689
|
onToggleExpand: [() => checkChildren(item), activatorProps.onClick],
|
30856
30690
|
onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected)
|
30857
|
-
}
|
30691
|
+
};
|
30692
|
+
return vue.createVNode(VTreeviewItem, vue.mergeProps({
|
30693
|
+
"ref": el => activatorItems.value[index] = el
|
30694
|
+
}, listItemProps, {
|
30695
|
+
"hideActions": props.hideActions,
|
30696
|
+
"indentLines": indentLines.node,
|
30697
|
+
"value": props.returnObject ? item.raw : itemProps.value,
|
30698
|
+
"loading": loading
|
30699
|
+
}), slotsWithItem);
|
30858
30700
|
},
|
30859
30701
|
default: () => vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
|
30860
30702
|
"items": children,
|
@@ -30862,8 +30704,7 @@
|
|
30862
30704
|
"parentIndentLines": indentLines.children,
|
30863
30705
|
"isLastGroup": nextItemHasChildren,
|
30864
30706
|
"returnObject": props.returnObject
|
30865
|
-
}), slots)
|
30866
|
-
$stable: true
|
30707
|
+
}), slots)
|
30867
30708
|
}) : renderSlot(slots.item, {
|
30868
30709
|
props: itemProps,
|
30869
30710
|
item: item.raw,
|
@@ -30879,12 +30720,11 @@
|
|
30879
30720
|
props: item.raw
|
30880
30721
|
}, () => vue.createVNode(VListSubheader, item.props, null));
|
30881
30722
|
}
|
30882
|
-
return
|
30883
|
-
|
30884
|
-
|
30885
|
-
|
30886
|
-
|
30887
|
-
});
|
30723
|
+
return vue.createVNode(VTreeviewItem, vue.mergeProps(itemProps, {
|
30724
|
+
"hideActions": props.hideActions,
|
30725
|
+
"indentLines": indentLines.leaf,
|
30726
|
+
"value": props.returnObject ? vue.toRaw(item.raw) : itemProps.value
|
30727
|
+
}), slotsWithItem);
|
30888
30728
|
});
|
30889
30729
|
});
|
30890
30730
|
}
|
@@ -31023,14 +30863,13 @@
|
|
31023
30863
|
"selected": selected.value,
|
31024
30864
|
"onUpdate:selected": $event => selected.value = $event
|
31025
30865
|
}), {
|
31026
|
-
default: () => vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
|
30866
|
+
default: () => [vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
|
31027
30867
|
"density": props.density,
|
31028
30868
|
"returnObject": props.returnObject,
|
31029
30869
|
"items": items.value,
|
31030
30870
|
"parentIndentLines": props.indentLines ? [] : undefined,
|
31031
30871
|
"indentLinesVariant": indentLinesVariant
|
31032
|
-
}), slots)
|
31033
|
-
$stable: true
|
30872
|
+
}), slots)]
|
31034
30873
|
});
|
31035
30874
|
});
|
31036
30875
|
return {};
|
@@ -31549,7 +31388,7 @@
|
|
31549
31388
|
};
|
31550
31389
|
});
|
31551
31390
|
}
|
31552
|
-
const version$1 = "3.9.
|
31391
|
+
const version$1 = "3.9.2-master.2025-07-18";
|
31553
31392
|
createVuetify$1.version = version$1;
|
31554
31393
|
|
31555
31394
|
// Vue's inject() can only be used in setup
|
@@ -31574,7 +31413,7 @@
|
|
31574
31413
|
...options
|
31575
31414
|
});
|
31576
31415
|
};
|
31577
|
-
const version = "3.9.
|
31416
|
+
const version = "3.9.2-master.2025-07-18";
|
31578
31417
|
createVuetify.version = version;
|
31579
31418
|
|
31580
31419
|
exports.blueprints = index;
|