@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-labs.esm.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
|
*/
|
@@ -5165,69 +5165,6 @@ function useLocation(props) {
|
|
5165
5165
|
};
|
5166
5166
|
}
|
5167
5167
|
|
5168
|
-
// Utilities
|
5169
|
-
|
5170
|
-
// Types
|
5171
|
-
|
5172
|
-
// Composables
|
5173
|
-
const makeChunksProps = propsFactory({
|
5174
|
-
chunkCount: {
|
5175
|
-
type: [Number, String],
|
5176
|
-
default: null
|
5177
|
-
},
|
5178
|
-
chunkWidth: {
|
5179
|
-
type: [Number, String],
|
5180
|
-
default: null
|
5181
|
-
},
|
5182
|
-
chunkGap: {
|
5183
|
-
type: [Number, String],
|
5184
|
-
default: 4
|
5185
|
-
}
|
5186
|
-
}, 'chunks');
|
5187
|
-
function useChunks(props, containerWidth) {
|
5188
|
-
const hasChunks = toRef(() => !!props.chunkCount || !!props.chunkWidth);
|
5189
|
-
const chunkWidth = computed(() => {
|
5190
|
-
const containerSize = toValue(containerWidth);
|
5191
|
-
if (!containerSize) {
|
5192
|
-
return 0;
|
5193
|
-
}
|
5194
|
-
if (!props.chunkCount) {
|
5195
|
-
return Number(props.chunkWidth);
|
5196
|
-
}
|
5197
|
-
const count = Number(props.chunkCount);
|
5198
|
-
const availableWidth = containerSize - Number(props.chunkGap) * (count - 1);
|
5199
|
-
return availableWidth / count;
|
5200
|
-
});
|
5201
|
-
const chunkGap = toRef(() => Number(props.chunkGap));
|
5202
|
-
const chunksMaskStyles = computed(() => {
|
5203
|
-
if (!hasChunks.value) {
|
5204
|
-
return {};
|
5205
|
-
}
|
5206
|
-
const chunkGapPx = convertToUnit(chunkGap.value);
|
5207
|
-
const chunkWidthPx = convertToUnit(chunkWidth.value);
|
5208
|
-
return {
|
5209
|
-
maskRepeat: 'repeat-x',
|
5210
|
-
maskImage: `linear-gradient(90deg, #000, #000 ${chunkWidthPx}, transparent ${chunkWidthPx}, transparent)`,
|
5211
|
-
maskSize: `calc(${chunkWidthPx} + ${chunkGapPx}) 100%`
|
5212
|
-
};
|
5213
|
-
});
|
5214
|
-
function snapValueToChunk(val) {
|
5215
|
-
const containerSize = toValue(containerWidth);
|
5216
|
-
if (!containerSize) {
|
5217
|
-
return val;
|
5218
|
-
}
|
5219
|
-
const gapRelativeSize = 100 * chunkGap.value / containerSize;
|
5220
|
-
const chunkRelativeSize = 100 * (chunkWidth.value + chunkGap.value) / containerSize;
|
5221
|
-
const filledChunks = Math.floor((val + gapRelativeSize) / chunkRelativeSize);
|
5222
|
-
return clamp(0, filledChunks * chunkRelativeSize - gapRelativeSize / 2, 100);
|
5223
|
-
}
|
5224
|
-
return {
|
5225
|
-
hasChunks,
|
5226
|
-
chunksMaskStyles,
|
5227
|
-
snapValueToChunk
|
5228
|
-
};
|
5229
|
-
}
|
5230
|
-
|
5231
5168
|
const makeVProgressLinearProps = propsFactory({
|
5232
5169
|
absolute: Boolean,
|
5233
5170
|
active: {
|
@@ -5262,7 +5199,6 @@ const makeVProgressLinearProps = propsFactory({
|
|
5262
5199
|
stream: Boolean,
|
5263
5200
|
striped: Boolean,
|
5264
5201
|
roundedBar: Boolean,
|
5265
|
-
...makeChunksProps(),
|
5266
5202
|
...makeComponentProps(),
|
5267
5203
|
...makeLocationProps({
|
5268
5204
|
location: 'top'
|
@@ -5281,7 +5217,6 @@ const VProgressLinear = genericComponent()({
|
|
5281
5217
|
let {
|
5282
5218
|
slots
|
5283
5219
|
} = _ref;
|
5284
|
-
const root = ref();
|
5285
5220
|
const progress = useProxiedModel(props, 'modelValue');
|
5286
5221
|
const {
|
5287
5222
|
isRtl,
|
@@ -5323,24 +5258,6 @@ const VProgressLinear = genericComponent()({
|
|
5323
5258
|
const isReversed = computed(() => isRtl.value !== props.reverse);
|
5324
5259
|
const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition');
|
5325
5260
|
const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches;
|
5326
|
-
const containerWidth = shallowRef(0);
|
5327
|
-
const {
|
5328
|
-
hasChunks,
|
5329
|
-
chunksMaskStyles,
|
5330
|
-
snapValueToChunk
|
5331
|
-
} = useChunks(props, containerWidth);
|
5332
|
-
useToggleScope(hasChunks, () => {
|
5333
|
-
const {
|
5334
|
-
resizeRef
|
5335
|
-
} = useResizeObserver(entries => containerWidth.value = entries[0].contentRect.width);
|
5336
|
-
watchEffect(() => resizeRef.value = root.value);
|
5337
|
-
});
|
5338
|
-
const bufferWidth = computed(() => {
|
5339
|
-
return hasChunks.value ? snapValueToChunk(normalizedBuffer.value) : normalizedBuffer.value;
|
5340
|
-
});
|
5341
|
-
const barWidth = computed(() => {
|
5342
|
-
return hasChunks.value ? snapValueToChunk(normalizedValue.value) : normalizedValue.value;
|
5343
|
-
});
|
5344
5261
|
function handleClick(e) {
|
5345
5262
|
if (!intersectionRef.value) return;
|
5346
5263
|
const {
|
@@ -5351,11 +5268,8 @@ const VProgressLinear = genericComponent()({
|
|
5351
5268
|
const value = isReversed.value ? width - e.clientX + (right - width) : e.clientX - left;
|
5352
5269
|
progress.value = Math.round(value / width * max.value);
|
5353
5270
|
}
|
5354
|
-
watchEffect(() => {
|
5355
|
-
intersectionRef.value = root.value;
|
5356
|
-
});
|
5357
5271
|
useRender(() => createVNode(props.tag, {
|
5358
|
-
"ref":
|
5272
|
+
"ref": intersectionRef,
|
5359
5273
|
"class": normalizeClass(['v-progress-linear', {
|
5360
5274
|
'v-progress-linear--absolute': props.absolute,
|
5361
5275
|
'v-progress-linear--active': props.active && isIntersecting.value,
|
@@ -5370,7 +5284,7 @@ const VProgressLinear = genericComponent()({
|
|
5370
5284
|
height: props.active ? convertToUnit(height.value) : 0,
|
5371
5285
|
'--v-progress-linear-height': convertToUnit(height.value),
|
5372
5286
|
...(props.absolute ? locationStyles.value : {})
|
5373
|
-
},
|
5287
|
+
}, props.style]),
|
5374
5288
|
"role": "progressbar",
|
5375
5289
|
"aria-hidden": props.active ? 'false' : 'true',
|
5376
5290
|
"aria-valuemin": "0",
|
@@ -5400,7 +5314,7 @@ const VProgressLinear = genericComponent()({
|
|
5400
5314
|
"class": normalizeClass(['v-progress-linear__buffer', !isForcedColorsModeActive ? bufferColorClasses.value : undefined]),
|
5401
5315
|
"style": normalizeStyle([bufferColorStyles.value, {
|
5402
5316
|
opacity: parseFloat(props.bufferOpacity),
|
5403
|
-
width: convertToUnit(
|
5317
|
+
width: convertToUnit(normalizedBuffer.value, '%')
|
5404
5318
|
}])
|
5405
5319
|
}, null), createVNode(Transition, {
|
5406
5320
|
"name": transition.value
|
@@ -5408,7 +5322,7 @@ const VProgressLinear = genericComponent()({
|
|
5408
5322
|
default: () => [!props.indeterminate ? createElementVNode("div", {
|
5409
5323
|
"class": normalizeClass(['v-progress-linear__determinate', !isForcedColorsModeActive ? barColorClasses.value : undefined]),
|
5410
5324
|
"style": normalizeStyle([barColorStyles.value, {
|
5411
|
-
width: convertToUnit(
|
5325
|
+
width: convertToUnit(normalizedValue.value, '%')
|
5412
5326
|
}])
|
5413
5327
|
}, null) : createElementVNode("div", {
|
5414
5328
|
"class": "v-progress-linear__indeterminate"
|
@@ -9626,11 +9540,6 @@ const VListItem = genericComponent()({
|
|
9626
9540
|
const isLink = toRef(() => props.link !== false && link.isLink.value);
|
9627
9541
|
const isSelectable = computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
|
9628
9542
|
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
|
9629
|
-
const role = computed(() => list ? isSelectable.value ? 'option' : 'listitem' : undefined);
|
9630
|
-
const ariaSelected = computed(() => {
|
9631
|
-
if (!isSelectable.value) return undefined;
|
9632
|
-
return root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value;
|
9633
|
-
});
|
9634
9543
|
const roundedProps = toRef(() => props.rounded || props.nav);
|
9635
9544
|
const color = toRef(() => props.color ?? props.activeColor);
|
9636
9545
|
const variantProps = toRef(() => ({
|
@@ -9734,8 +9643,7 @@ const VListItem = genericComponent()({
|
|
9734
9643
|
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
9735
9644
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
9736
9645
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
9737
|
-
"aria-selected":
|
9738
|
-
"role": role.value,
|
9646
|
+
"aria-selected": isSelectable.value ? root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value : undefined,
|
9739
9647
|
"onClick": onClick,
|
9740
9648
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
9741
9649
|
}, link.linkProps), {
|
@@ -10237,7 +10145,6 @@ const VList = genericComponent()({
|
|
10237
10145
|
const activeColor = toRef(() => props.activeColor);
|
10238
10146
|
const baseColor = toRef(() => props.baseColor);
|
10239
10147
|
const color = toRef(() => props.color);
|
10240
|
-
const isSelectable = toRef(() => props.selectable || props.activatable);
|
10241
10148
|
createList({
|
10242
10149
|
filterable: props.filterable
|
10243
10150
|
});
|
@@ -10309,7 +10216,7 @@ const VList = genericComponent()({
|
|
10309
10216
|
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class]),
|
10310
10217
|
"style": normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style]),
|
10311
10218
|
"tabindex": props.disabled ? -1 : 0,
|
10312
|
-
"role":
|
10219
|
+
"role": "listbox",
|
10313
10220
|
"aria-activedescendant": undefined,
|
10314
10221
|
"onFocusin": onFocusin,
|
10315
10222
|
"onFocusout": onFocusout,
|
@@ -13379,7 +13286,6 @@ const VSelect = genericComponent()({
|
|
13379
13286
|
"onKeydown": onListKeydown,
|
13380
13287
|
"onFocusin": onFocusin,
|
13381
13288
|
"tabindex": "-1",
|
13382
|
-
"selectable": true,
|
13383
13289
|
"aria-live": "polite",
|
13384
13290
|
"aria-label": `${props.label}-list`,
|
13385
13291
|
"color": props.itemColor ?? props.color
|
@@ -13999,7 +13905,6 @@ const VAutocomplete = genericComponent()({
|
|
13999
13905
|
"onFocusin": onFocusin,
|
14000
13906
|
"onFocusout": onFocusout,
|
14001
13907
|
"tabindex": "-1",
|
14002
|
-
"selectable": true,
|
14003
13908
|
"aria-live": "polite",
|
14004
13909
|
"color": props.itemColor ?? props.color
|
14005
13910
|
}, listEvents, props.listProps), {
|
@@ -19087,7 +18992,6 @@ const VCombobox = genericComponent()({
|
|
19087
18992
|
"selected": selectedValues.value,
|
19088
18993
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
19089
18994
|
"onMousedown": e => e.preventDefault(),
|
19090
|
-
"selectable": true,
|
19091
18995
|
"onKeydown": onListKeydown,
|
19092
18996
|
"onFocusin": onFocusin,
|
19093
18997
|
"onFocusout": onFocusout,
|
@@ -24186,42 +24090,6 @@ function appendIfDirectory(path, item) {
|
|
24186
24090
|
return item.isDirectory ? `${path}/${item.name}` : path;
|
24187
24091
|
}
|
24188
24092
|
|
24189
|
-
// Utilities
|
24190
|
-
// Composables
|
24191
|
-
const makeFileFilterProps = propsFactory({
|
24192
|
-
filterByType: String
|
24193
|
-
}, 'file-accept');
|
24194
|
-
function useFileFilter(props) {
|
24195
|
-
const fileFilter = computed(() => props.filterByType ? createFilter(props.filterByType) : null);
|
24196
|
-
function filterAccepted(files) {
|
24197
|
-
if (fileFilter.value) {
|
24198
|
-
const accepted = files.filter(fileFilter.value);
|
24199
|
-
return {
|
24200
|
-
accepted,
|
24201
|
-
rejected: files.filter(f => !accepted.includes(f))
|
24202
|
-
};
|
24203
|
-
}
|
24204
|
-
return {
|
24205
|
-
accepted: files,
|
24206
|
-
rejected: []
|
24207
|
-
};
|
24208
|
-
}
|
24209
|
-
return {
|
24210
|
-
filterAccepted
|
24211
|
-
};
|
24212
|
-
}
|
24213
|
-
function createFilter(v) {
|
24214
|
-
const types = v.split(',').map(x => x.trim().toLowerCase());
|
24215
|
-
const extensionsToMatch = types.filter(x => x.startsWith('.'));
|
24216
|
-
const wildcards = types.filter(x => x.endsWith('/*'));
|
24217
|
-
const typesToMatch = types.filter(x => !extensionsToMatch.includes(x) && !wildcards.includes(x));
|
24218
|
-
return file => {
|
24219
|
-
const extension = file.name.split('.').at(-1)?.toLowerCase() ?? '';
|
24220
|
-
const typeGroup = file.type.split('/').at(0)?.toLowerCase() ?? '';
|
24221
|
-
return typesToMatch.includes(file.type) || extensionsToMatch.includes(`.${extension}`) || wildcards.includes(`${typeGroup}/*`);
|
24222
|
-
};
|
24223
|
-
}
|
24224
|
-
|
24225
24093
|
// Types
|
24226
24094
|
|
24227
24095
|
const makeVFileInputProps = propsFactory({
|
@@ -24254,7 +24122,6 @@ const makeVFileInputProps = propsFactory({
|
|
24254
24122
|
return wrapInArray(val).every(v => v != null && typeof v === 'object');
|
24255
24123
|
}
|
24256
24124
|
},
|
24257
|
-
...makeFileFilterProps(),
|
24258
24125
|
...makeVFieldProps({
|
24259
24126
|
clearable: true
|
24260
24127
|
})
|
@@ -24267,8 +24134,7 @@ const VFileInput = genericComponent()({
|
|
24267
24134
|
'click:control': e => true,
|
24268
24135
|
'mousedown:control': e => true,
|
24269
24136
|
'update:focused': focused => true,
|
24270
|
-
'update:modelValue': files => true
|
24271
|
-
rejected: files => true
|
24137
|
+
'update:modelValue': files => true
|
24272
24138
|
},
|
24273
24139
|
setup(props, _ref) {
|
24274
24140
|
let {
|
@@ -24279,9 +24145,6 @@ const VFileInput = genericComponent()({
|
|
24279
24145
|
const {
|
24280
24146
|
t
|
24281
24147
|
} = useLocale();
|
24282
|
-
const {
|
24283
|
-
filterAccepted
|
24284
|
-
} = useFileFilter(props);
|
24285
24148
|
const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => !props.multiple && Array.isArray(val) ? val[0] : val);
|
24286
24149
|
const {
|
24287
24150
|
isFocused,
|
@@ -24355,38 +24218,14 @@ const VFileInput = genericComponent()({
|
|
24355
24218
|
e.stopImmediatePropagation();
|
24356
24219
|
isDragging.value = false;
|
24357
24220
|
if (!inputRef.value || !hasFilesOrFolders(e)) return;
|
24358
|
-
const allDroppedFiles = await handleDrop(e);
|
24359
|
-
selectAccepted(allDroppedFiles);
|
24360
|
-
}
|
24361
|
-
function onFileSelection(e) {
|
24362
|
-
if (!e.target || e.repack) return; // prevent loop
|
24363
|
-
|
24364
|
-
if (!props.filterByType) {
|
24365
|
-
const target = e.target;
|
24366
|
-
model.value = [...(target.files ?? [])];
|
24367
|
-
} else {
|
24368
|
-
selectAccepted([...e.target.files]);
|
24369
|
-
}
|
24370
|
-
}
|
24371
|
-
function selectAccepted(files) {
|
24372
24221
|
const dataTransfer = new DataTransfer();
|
24373
|
-
const {
|
24374
|
-
accepted,
|
24375
|
-
rejected
|
24376
|
-
} = filterAccepted(files);
|
24377
|
-
if (rejected.length) {
|
24378
|
-
emit('rejected', rejected);
|
24379
|
-
}
|
24380
|
-
for (const file of accepted) {
|
24222
|
+
for (const file of await handleDrop(e)) {
|
24381
24223
|
dataTransfer.items.add(file);
|
24382
24224
|
}
|
24383
24225
|
inputRef.value.files = dataTransfer.files;
|
24384
|
-
|
24385
|
-
const event = new Event('change', {
|
24226
|
+
inputRef.value.dispatchEvent(new Event('change', {
|
24386
24227
|
bubbles: true
|
24387
|
-
});
|
24388
|
-
event.repack = true;
|
24389
|
-
inputRef.value.dispatchEvent(event);
|
24228
|
+
}));
|
24390
24229
|
}
|
24391
24230
|
watch(model, newValue => {
|
24392
24231
|
const hasModelReset = !Array.isArray(newValue) || !newValue.length;
|
@@ -24403,8 +24242,6 @@ const VFileInput = genericComponent()({
|
|
24403
24242
|
...inputProps
|
24404
24243
|
} = VInput.filterProps(props);
|
24405
24244
|
const fieldProps = VField.filterProps(props);
|
24406
|
-
const expectsDirectory = attrs.webkitdirectory !== undefined && attrs.webkitdirectory !== false;
|
24407
|
-
const inputAccept = expectsDirectory ? undefined : props.filterByType ?? String(attrs.accept);
|
24408
24245
|
return createVNode(VInput, mergeProps({
|
24409
24246
|
"ref": vInputRef,
|
24410
24247
|
"modelValue": props.multiple ? model.value : model.value[0],
|
@@ -24460,7 +24297,6 @@ const VFileInput = genericComponent()({
|
|
24460
24297
|
return createElementVNode(Fragment, null, [createElementVNode("input", mergeProps({
|
24461
24298
|
"ref": inputRef,
|
24462
24299
|
"type": "file",
|
24463
|
-
"accept": inputAccept,
|
24464
24300
|
"readonly": isReadonly.value,
|
24465
24301
|
"disabled": isDisabled.value,
|
24466
24302
|
"multiple": props.multiple,
|
@@ -24470,7 +24306,11 @@ const VFileInput = genericComponent()({
|
|
24470
24306
|
if (isReadonly.value) e.preventDefault();
|
24471
24307
|
onFocus();
|
24472
24308
|
},
|
24473
|
-
"onChange":
|
24309
|
+
"onChange": e => {
|
24310
|
+
if (!e.target) return;
|
24311
|
+
const target = e.target;
|
24312
|
+
model.value = [...(target.files ?? [])];
|
24313
|
+
},
|
24474
24314
|
"onDragleave": onDragleave,
|
24475
24315
|
"onFocus": onFocus,
|
24476
24316
|
"onBlur": blur
|
@@ -30505,51 +30345,48 @@ const VTreeviewChildren = genericComponent()({
|
|
30505
30345
|
parentIndentLines: props.parentIndentLines,
|
30506
30346
|
variant: props.indentLinesVariant
|
30507
30347
|
});
|
30508
|
-
|
30509
|
-
|
30510
|
-
|
30511
|
-
|
30512
|
-
|
30513
|
-
|
30514
|
-
|
30515
|
-
|
30516
|
-
|
30517
|
-
|
30518
|
-
|
30519
|
-
|
30520
|
-
|
30521
|
-
|
30522
|
-
|
30523
|
-
|
30524
|
-
|
30525
|
-
|
30526
|
-
|
30527
|
-
|
30528
|
-
|
30529
|
-
|
30530
|
-
|
30531
|
-
|
30532
|
-
|
30533
|
-
|
30534
|
-
|
30535
|
-
|
30536
|
-
|
30537
|
-
|
30538
|
-
|
30539
|
-
|
30540
|
-
|
30541
|
-
|
30542
|
-
|
30543
|
-
|
30544
|
-
|
30545
|
-
|
30546
|
-
|
30547
|
-
|
30548
|
-
|
30549
|
-
|
30550
|
-
$stable: true
|
30551
|
-
});
|
30552
|
-
}
|
30348
|
+
const slotsWithItem = {
|
30349
|
+
prepend: slotProps => createElementVNode(Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && createElementVNode("div", null, [createVNode(VCheckboxBtn, {
|
30350
|
+
"key": item.value,
|
30351
|
+
"modelValue": slotProps.isSelected,
|
30352
|
+
"disabled": props.disabled,
|
30353
|
+
"loading": loading,
|
30354
|
+
"color": props.selectedColor,
|
30355
|
+
"density": props.density,
|
30356
|
+
"indeterminate": slotProps.isIndeterminate,
|
30357
|
+
"indeterminateIcon": props.indeterminateIcon,
|
30358
|
+
"falseIcon": props.falseIcon,
|
30359
|
+
"trueIcon": props.trueIcon,
|
30360
|
+
"onUpdate:modelValue": v => selectItem(slotProps.select, v),
|
30361
|
+
"onClick": e => e.stopPropagation(),
|
30362
|
+
"onKeydown": e => {
|
30363
|
+
if (!['Enter', 'Space'].includes(e.key)) return;
|
30364
|
+
e.stopPropagation();
|
30365
|
+
selectItem(slotProps.select, slotProps.isSelected);
|
30366
|
+
}
|
30367
|
+
}, null)]), slots.prepend?.({
|
30368
|
+
...slotProps,
|
30369
|
+
...treeItemProps,
|
30370
|
+
item: item.raw,
|
30371
|
+
internalItem: item
|
30372
|
+
})]),
|
30373
|
+
append: slots.append ? slotProps => slots.append?.({
|
30374
|
+
...slotProps,
|
30375
|
+
...treeItemProps,
|
30376
|
+
item: item.raw,
|
30377
|
+
internalItem: item
|
30378
|
+
}) : undefined,
|
30379
|
+
title: slots.title ? slotProps => slots.title?.({
|
30380
|
+
...slotProps,
|
30381
|
+
item: item.raw,
|
30382
|
+
internalItem: item
|
30383
|
+
}) : undefined,
|
30384
|
+
subtitle: slots.subtitle ? slotProps => slots.subtitle?.({
|
30385
|
+
...slotProps,
|
30386
|
+
item: item.raw,
|
30387
|
+
internalItem: item
|
30388
|
+
}) : undefined
|
30389
|
+
};
|
30553
30390
|
const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
|
30554
30391
|
const treeviewChildrenProps = VTreeviewChildren.filterProps({
|
30555
30392
|
...props,
|
@@ -30563,16 +30400,21 @@ const VTreeviewChildren = genericComponent()({
|
|
30563
30400
|
let {
|
30564
30401
|
props: activatorProps
|
30565
30402
|
} = _ref2;
|
30566
|
-
|
30403
|
+
const listItemProps = {
|
30567
30404
|
...itemProps,
|
30568
30405
|
...activatorProps,
|
30569
|
-
|
30570
|
-
hideActions: props.hideActions,
|
30571
|
-
indentLines: indentLines.node,
|
30572
|
-
value: props.returnObject ? item.raw : itemProps.value,
|
30406
|
+
value: itemProps?.value,
|
30573
30407
|
onToggleExpand: [() => checkChildren(item), activatorProps.onClick],
|
30574
30408
|
onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected)
|
30575
|
-
}
|
30409
|
+
};
|
30410
|
+
return createVNode(VTreeviewItem, mergeProps({
|
30411
|
+
"ref": el => activatorItems.value[index] = el
|
30412
|
+
}, listItemProps, {
|
30413
|
+
"hideActions": props.hideActions,
|
30414
|
+
"indentLines": indentLines.node,
|
30415
|
+
"value": props.returnObject ? item.raw : itemProps.value,
|
30416
|
+
"loading": loading
|
30417
|
+
}), slotsWithItem);
|
30576
30418
|
},
|
30577
30419
|
default: () => createVNode(VTreeviewChildren, mergeProps(treeviewChildrenProps, {
|
30578
30420
|
"items": children,
|
@@ -30580,8 +30422,7 @@ const VTreeviewChildren = genericComponent()({
|
|
30580
30422
|
"parentIndentLines": indentLines.children,
|
30581
30423
|
"isLastGroup": nextItemHasChildren,
|
30582
30424
|
"returnObject": props.returnObject
|
30583
|
-
}), slots)
|
30584
|
-
$stable: true
|
30425
|
+
}), slots)
|
30585
30426
|
}) : renderSlot(slots.item, {
|
30586
30427
|
props: itemProps,
|
30587
30428
|
item: item.raw,
|
@@ -30597,12 +30438,11 @@ const VTreeviewChildren = genericComponent()({
|
|
30597
30438
|
props: item.raw
|
30598
30439
|
}, () => createVNode(VListSubheader, item.props, null));
|
30599
30440
|
}
|
30600
|
-
return
|
30601
|
-
|
30602
|
-
|
30603
|
-
|
30604
|
-
|
30605
|
-
});
|
30441
|
+
return createVNode(VTreeviewItem, mergeProps(itemProps, {
|
30442
|
+
"hideActions": props.hideActions,
|
30443
|
+
"indentLines": indentLines.leaf,
|
30444
|
+
"value": props.returnObject ? toRaw(item.raw) : itemProps.value
|
30445
|
+
}), slotsWithItem);
|
30606
30446
|
});
|
30607
30447
|
});
|
30608
30448
|
}
|
@@ -30741,14 +30581,13 @@ const VTreeview = genericComponent()({
|
|
30741
30581
|
"selected": selected.value,
|
30742
30582
|
"onUpdate:selected": $event => selected.value = $event
|
30743
30583
|
}), {
|
30744
|
-
default: () => createVNode(VTreeviewChildren, mergeProps(treeviewChildrenProps, {
|
30584
|
+
default: () => [createVNode(VTreeviewChildren, mergeProps(treeviewChildrenProps, {
|
30745
30585
|
"density": props.density,
|
30746
30586
|
"returnObject": props.returnObject,
|
30747
30587
|
"items": items.value,
|
30748
30588
|
"parentIndentLines": props.indentLines ? [] : undefined,
|
30749
30589
|
"indentLinesVariant": indentLinesVariant
|
30750
|
-
}), slots)
|
30751
|
-
$stable: true
|
30590
|
+
}), slots)]
|
30752
30591
|
});
|
30753
30592
|
});
|
30754
30593
|
return {};
|
@@ -31989,7 +31828,6 @@ const makeVFileUploadProps = propsFactory({
|
|
31989
31828
|
},
|
31990
31829
|
showSize: Boolean,
|
31991
31830
|
name: String,
|
31992
|
-
...makeFileFilterProps(),
|
31993
31831
|
...makeDelayProps(),
|
31994
31832
|
...makeDensityProps(),
|
31995
31833
|
...pick(makeVDividerProps({
|
@@ -32002,13 +31840,11 @@ const VFileUpload = genericComponent()({
|
|
32002
31840
|
inheritAttrs: false,
|
32003
31841
|
props: makeVFileUploadProps(),
|
32004
31842
|
emits: {
|
32005
|
-
'update:modelValue': files => true
|
32006
|
-
rejected: files => true
|
31843
|
+
'update:modelValue': files => true
|
32007
31844
|
},
|
32008
31845
|
setup(props, _ref) {
|
32009
31846
|
let {
|
32010
31847
|
attrs,
|
32011
|
-
emit,
|
32012
31848
|
slots
|
32013
31849
|
} = _ref;
|
32014
31850
|
const {
|
@@ -32017,9 +31853,6 @@ const VFileUpload = genericComponent()({
|
|
32017
31853
|
const {
|
32018
31854
|
densityClasses
|
32019
31855
|
} = useDensity(props);
|
32020
|
-
const {
|
32021
|
-
filterAccepted
|
32022
|
-
} = useFileFilter(props);
|
32023
31856
|
const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => props.multiple || Array.isArray(props.modelValue) ? val : val[0]);
|
32024
31857
|
const isDragging = shallowRef(false);
|
32025
31858
|
const vSheetRef = ref(null);
|
@@ -32041,38 +31874,14 @@ const VFileUpload = genericComponent()({
|
|
32041
31874
|
e.stopImmediatePropagation();
|
32042
31875
|
isDragging.value = false;
|
32043
31876
|
if (!inputRef.value) return;
|
32044
|
-
const allDroppedFiles = await handleDrop(e);
|
32045
|
-
selectAccepted(allDroppedFiles);
|
32046
|
-
}
|
32047
|
-
function onFileSelection(e) {
|
32048
|
-
if (!e.target || e.repack) return; // prevent loop
|
32049
|
-
|
32050
|
-
if (!props.filterByType) {
|
32051
|
-
const target = e.target;
|
32052
|
-
model.value = [...(target.files ?? [])];
|
32053
|
-
} else {
|
32054
|
-
selectAccepted([...e.target.files]);
|
32055
|
-
}
|
32056
|
-
}
|
32057
|
-
function selectAccepted(files) {
|
32058
31877
|
const dataTransfer = new DataTransfer();
|
32059
|
-
const {
|
32060
|
-
accepted,
|
32061
|
-
rejected
|
32062
|
-
} = filterAccepted(files);
|
32063
|
-
if (rejected.length) {
|
32064
|
-
emit('rejected', rejected);
|
32065
|
-
}
|
32066
|
-
for (const file of accepted) {
|
31878
|
+
for (const file of await handleDrop(e)) {
|
32067
31879
|
dataTransfer.items.add(file);
|
32068
31880
|
}
|
32069
31881
|
inputRef.value.files = dataTransfer.files;
|
32070
|
-
|
32071
|
-
const event = new Event('change', {
|
31882
|
+
inputRef.value.dispatchEvent(new Event('change', {
|
32072
31883
|
bubbles: true
|
32073
|
-
});
|
32074
|
-
event.repack = true;
|
32075
|
-
inputRef.value.dispatchEvent(event);
|
31884
|
+
}));
|
32076
31885
|
}
|
32077
31886
|
function onClick() {
|
32078
31887
|
inputRef.value?.click();
|
@@ -32090,16 +31899,17 @@ const VFileUpload = genericComponent()({
|
|
32090
31899
|
const cardProps = VSheet.filterProps(props);
|
32091
31900
|
const dividerProps = VDivider.filterProps(props);
|
32092
31901
|
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
32093
|
-
const expectsDirectory = attrs.webkitdirectory !== undefined && attrs.webkitdirectory !== false;
|
32094
|
-
const inputAccept = expectsDirectory ? undefined : props.filterByType ?? String(attrs.accept);
|
32095
31902
|
const inputNode = createElementVNode("input", mergeProps({
|
32096
31903
|
"ref": inputRef,
|
32097
31904
|
"type": "file",
|
32098
|
-
"accept": inputAccept,
|
32099
31905
|
"disabled": props.disabled,
|
32100
31906
|
"multiple": props.multiple,
|
32101
31907
|
"name": props.name,
|
32102
|
-
"onChange":
|
31908
|
+
"onChange": e => {
|
31909
|
+
if (!e.target) return;
|
31910
|
+
const target = e.target;
|
31911
|
+
model.value = [...(target.files ?? [])];
|
31912
|
+
}
|
32103
31913
|
}, inputAttrs), null);
|
32104
31914
|
return createElementVNode(Fragment, null, [createVNode(VSheet, mergeProps({
|
32105
31915
|
"ref": vSheetRef
|
@@ -33878,7 +33688,7 @@ function createVuetify$1() {
|
|
33878
33688
|
};
|
33879
33689
|
});
|
33880
33690
|
}
|
33881
|
-
const version$1 = "3.9.
|
33691
|
+
const version$1 = "3.9.2-master.2025-07-18";
|
33882
33692
|
createVuetify$1.version = version$1;
|
33883
33693
|
|
33884
33694
|
// Vue's inject() can only be used in setup
|
@@ -34176,7 +33986,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
34176
33986
|
|
34177
33987
|
/* eslint-disable local-rules/sort-imports */
|
34178
33988
|
|
34179
|
-
const version = "3.9.
|
33989
|
+
const version = "3.9.2-master.2025-07-18";
|
34180
33990
|
|
34181
33991
|
/* eslint-disable local-rules/sort-imports */
|
34182
33992
|
|