All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
package.lib.components.VList.VListChildren.mjs Maven / Gradle / Ivy
import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
// Components
import { VListGroup } from "./VListGroup.mjs";
import { VListItem } from "./VListItem.mjs";
import { VListSubheader } from "./VListSubheader.mjs";
import { VDivider } from "../VDivider/index.mjs"; // Utilities
import { createList } from "./list.mjs";
import { genericComponent, propsFactory } from "../../util/index.mjs"; // Types
export const makeVListChildrenProps = propsFactory({
items: Array,
returnObject: Boolean
}, 'VListChildren');
export const VListChildren = genericComponent()({
name: 'VListChildren',
props: makeVListChildrenProps(),
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, null);
}
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,
title: slots.title ? slotProps => slots.title?.({
...slotProps,
item
}) : undefined
};
const listGroupProps = VListGroup.filterProps(itemProps);
return children ? _createVNode(VListGroup, _mergeProps({
"value": itemProps?.value
}, listGroupProps), {
activator: _ref3 => {
let {
props: activatorProps
} = _ref3;
const listItemProps = {
...itemProps,
...activatorProps,
value: props.returnObject ? item : itemProps.value
};
return slots.header ? slots.header({
props: listItemProps
}) : _createVNode(VListItem, listItemProps, slotsWithItem);
},
default: () => _createVNode(VListChildren, {
"items": children,
"returnObject": props.returnObject
}, slots)
}) : slots.item ? slots.item({
props: itemProps
}) : _createVNode(VListItem, _mergeProps(itemProps, {
"value": props.returnObject ? item : itemProps.value
}), slotsWithItem);
});
}
});
//# sourceMappingURL=VListChildren.mjs.map