ul.w-list(:class="classes")
li.w-list__item(
v-for="(li, i) in listItems"
:key="i"
:class="{ 'w-list__item--parent': (li.children || []).length }")
w-icon.w-list__item-bullet(v-if="icon") {{ icon }}
//- List items.
component.w-list__item-label(
v-if="$slots[`item.${i + 1}`] || $slots.item || $slots.default"
:is="checklist ? 'w-checkbox' : (nav && !li.disabled && li.route ? (hasRouter ? 'router-link' : 'a') : 'div')"
v-bind="liLabelProps(li, i, li._selected)")
slot(v-if="$slots[`item.${i + 1}`]" :name="`item.${i + 1}`" :item="cleanLi(li)" :index="i + 1" :selected="li._selected")
slot(v-else-if="$slots.item" name="item" :item="cleanLi(li)" :index="i + 1" :selected="li._selected")
slot(v-else :item="cleanLi(li)" :index="i + 1" :selected="li._selected") {{ li._label }}
component.w-list__item-label(
v-else
:is="checklist ? 'w-checkbox' : (nav && !li.disabled && li.route ? (hasRouter ? 'router-link' : 'a') : 'div')"
v-bind="liLabelProps(li, i, li._selected)")
//- Children lists.
w-list(
v-if="(li.children || []).length"
v-bind="$props"
:items="li.children"
:depth="depth + 1"
@update:model-value="$emit('update:modelValue', $event)"
@input="$emit('input', $event)"
@item-click="$emit('item-click', $event)"
@item-select="$emit('item-select', $event)")
//- template(#item[`${depth}-x`]="{ item, index, selected }")
slot(
v-if="$slots[`item.${i + 1}`]"
:name="`item.${i + 1}`"
:item="cleanLi(item)"
:index="index"
:selected="selected")
template(v-if="$slots.item" #item="{ item, index, selected }")
slot(name="item" :item="cleanLi(item)" :index="index" :selected="selected")
template(v-else #default="{ item, index, selected }")
slot(:item="cleanLi(item)" :index="index" :selected="selected") {{ item[itemLabelKey] }}