@@ -105,7 +105,16 @@ export interface TreeProps<T extends TreeItem[] = TreeItem[], M extends boolean
105105
106106export type TreeEmits <T extends TreeItem [] = TreeItem [], M extends boolean = false > = TreeRootEmits <T [number ], M >
107107
108- type SlotProps <T extends TreeItem > = (props : { item: T , index: number , level: number , expanded: boolean , selected: boolean }) => any
108+ type SlotProps <T extends TreeItem > = (props : {
109+ item: T
110+ index: number
111+ level: number
112+ expanded: boolean
113+ selected: boolean
114+ indeterminate: boolean | undefined
115+ handleSelect: () => void
116+ handleToggle: () => void
117+ }) => any
109118
110119export type TreeSlots <
111120 T extends TreeItem [] = TreeItem []
@@ -115,7 +124,15 @@ export type TreeSlots<
115124 ' item-leading' : SlotProps <T [number ]>
116125 ' item-label' : SlotProps <T [number ]>
117126 ' item-trailing' : SlotProps <T [number ]>
118- } & DynamicSlots <T [number ], undefined , { index: number , level: number , expanded: boolean , selected: boolean }>
127+ } & DynamicSlots <T [number ], undefined , {
128+ index: number
129+ level: number
130+ expanded: boolean
131+ selected: boolean
132+ indeterminate: boolean | undefined
133+ handleSelect: () => void
134+ handleToggle: () => void
135+ }>
119136
120137 </script >
121138
@@ -217,7 +234,7 @@ const defaultExpanded = computed(() =>
217234<template >
218235 <DefineItemTemplate v-slot =" { item, index, level }" >
219236 <TreeItem
220- v-slot =" { isExpanded, isSelected }"
237+ v-slot =" { isExpanded, isSelected, isIndeterminate, handleSelect, handleToggle }"
221238 :level =" level"
222239 :value =" item"
223240 :class =" !!nested && level > 1 ? ui.itemWithChildren({ class: [props.ui?.itemWithChildren, item.ui?.itemWithChildren] }) : ui.item({ class: [props.ui?.item, item.ui?.item] })"
@@ -226,7 +243,7 @@ const defaultExpanded = computed(() =>
226243 >
227244 <slot
228245 :name =" ((item.slot ? `${item.slot}-wrapper` : 'item-wrapper') as keyof TreeSlots<T>)"
229- v-bind =" { index, level, expanded: isExpanded, selected: isSelected }"
246+ v-bind =" { index, level, expanded: isExpanded, selected: isSelected, indeterminate: isIndeterminate, handleSelect, handleToggle }"
230247 :item =" (item as Extract<T[number], { slot: string; }>)"
231248 >
232249 <button
@@ -238,12 +255,12 @@ const defaultExpanded = computed(() =>
238255 >
239256 <slot
240257 :name =" ((item.slot || 'item') as keyof TreeSlots<T>)"
241- v-bind =" { index, level, expanded: isExpanded, selected: isSelected }"
258+ v-bind =" { index, level, expanded: isExpanded, selected: isSelected, indeterminate: isIndeterminate, handleSelect, handleToggle }"
242259 :item =" (item as Extract<T[number], { slot: string; }>)"
243260 >
244261 <slot
245262 :name =" ((item.slot ? `${item.slot}-leading`: 'item-leading') as keyof TreeSlots<T>)"
246- v-bind =" { index, level, expanded: isExpanded, selected: isSelected }"
263+ v-bind =" { index, level, expanded: isExpanded, selected: isSelected, indeterminate: isIndeterminate, handleSelect, handleToggle }"
247264 :item =" (item as Extract<T[number], { slot: string; }>)"
248265 >
249266 <UIcon
@@ -264,7 +281,7 @@ const defaultExpanded = computed(() =>
264281 >
265282 <slot
266283 :name =" ((item.slot ? `${item.slot}-label`: 'item-label') as keyof TreeSlots<T>)"
267- v-bind =" { index, level, expanded: isExpanded, selected: isSelected }"
284+ v-bind =" { index, level, expanded: isExpanded, selected: isSelected, indeterminate: isIndeterminate, handleSelect, handleToggle }"
268285 :item =" (item as Extract<T[number], { slot: string; }>)"
269286 >
270287 {{ getItemLabel(item) }}
@@ -277,7 +294,7 @@ const defaultExpanded = computed(() =>
277294 >
278295 <slot
279296 :name =" ((item.slot ? `${item.slot}-trailing`: 'item-trailing') as keyof TreeSlots<T>)"
280- v-bind =" { index, level, expanded: isExpanded, selected: isSelected }"
297+ v-bind =" { index, level, expanded: isExpanded, selected: isSelected, indeterminate: isIndeterminate, handleSelect, handleToggle }"
281298 :item =" (item as Extract<T[number], { slot: string; }>)"
282299 >
283300 <UIcon
0 commit comments