UNPKG

vuetify

Version:

Vue Material Component Framework

82 lines 2.65 kB
import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue"; // Components import { VDivider } from "../VDivider/index.mjs"; import { filterListGroupProps, VListGroup } from "./VListGroup.mjs"; import { VListItem } from "./VListItem.mjs"; import { VListSubheader } from "./VListSubheader.mjs"; // Utilities import { createList } from "./list.mjs"; import { genericComponent } from "../../util/index.mjs"; // Types export const VListChildren = genericComponent()({ name: 'VListChildren', props: { items: Array }, setup(props, _ref) { let { slots } = _ref; createList(); return () => slots.default?.() ?? props.items?.map(_ref2 => { let { children, props: itemProps, type, raw: item } = _ref2; if (type === 'divider') { return slots.divider?.({ props: itemProps }) ?? _createVNode(VDivider, itemProps, null); } if (type === 'subheader') { return slots.subheader?.({ props: itemProps }) ?? _createVNode(VListSubheader, itemProps, { default: slots.subheader }); } const slotsWithItem = { subtitle: slots.subtitle ? slotProps => slots.subtitle?.({ ...slotProps, item }) : undefined, prepend: slots.prepend ? slotProps => slots.prepend?.({ ...slotProps, item }) : undefined, append: slots.append ? slotProps => slots.append?.({ ...slotProps, item }) : undefined, default: slots.default ? slotProps => slots.default?.({ ...slotProps, item }) : undefined, title: slots.title ? slotProps => slots.title?.({ ...slotProps, item }) : undefined }; const [listGroupProps, _1] = filterListGroupProps(itemProps); return children ? _createVNode(VListGroup, _mergeProps({ "value": itemProps?.value }, listGroupProps), { activator: _ref3 => { let { props: activatorProps } = _ref3; return slots.header ? slots.header({ props: { ...itemProps, ...activatorProps } }) : _createVNode(VListItem, _mergeProps(itemProps, activatorProps), slotsWithItem); }, default: () => _createVNode(VListChildren, { "items": children }, slots) }) : slots.item ? slots.item(itemProps) : _createVNode(VListItem, itemProps, slotsWithItem); }); } }); //# sourceMappingURL=VListChildren.mjs.map