UNPKG

song-ui-u

Version:

vue3 + js的PC前端组件库

112 lines (109 loc) 4.07 kB
import { defineComponent, createVNode, Fragment } from 'vue'; import '../../button/index.mjs'; import '../../buttonGroup/index.mjs'; import { XIcon } from '../../icon/index.mjs'; import '../../input/index.mjs'; import '../../textarea/index.mjs'; import '../../row/index.mjs'; import '../../col/index.mjs'; import '../../container/index.mjs'; import { XCheckbox } from '../../checkbox/index.mjs'; import '../../switch/index.mjs'; import '../../form/index.mjs'; import '../../message/index.mjs'; import '../../mask/src/mask.mjs'; import '../../modal/index.mjs'; import '../../messageBox/index.mjs'; import '../../drawer/index.mjs'; import '../../badge/index.mjs'; import '../../space/index.mjs'; import '../../image/index.mjs'; import '../../radio/index.mjs'; import '../../divider/index.mjs'; import '../../chat/index.mjs'; import '../../progress/index.mjs'; import '../../upload/index.mjs'; import '../../vTree/index.mjs'; import '../index.mjs'; import '../../tabs/index.mjs'; import '../../menu/index.mjs'; import '../../steps/index.mjs'; import '../../header/index.mjs'; import '../../breadcrumble/index.mjs'; import '../../datePicker/index.mjs'; import '../../tooltip/index.mjs'; import '../../popover/index.mjs'; import '../../timePicker/index.mjs'; import '../../select/index.mjs'; import '../../collapse/index.mjs'; import '../../card/index.mjs'; import '../../timeline/index.mjs'; import '../../tag/index.mjs'; import '../../result/index.mjs'; import '../../sender/index.mjs'; import { ChevronDown, ChevronRight } from 'song-ui-pro-icon'; const setColumn = (column) => { return /* @__PURE__ */ defineComponent({ name: "x-column", setup(props, { slots }) { const renderSelection = () => { if (!column.row) { return createVNode(XCheckbox, { "size": "small", "checked": column.isAllSelected?.value, "onChange": (e) => column.onSelectAll?.(e), "indeterminate": column.indeterminate?.value }, null); } const children = column.getAllChildren?.(column.row) || []; const hasSelectedChildren = children.some((child) => column.isSelected?.(child)); const allChildrenSelected = children.length > 0 && children.every((child) => column.isSelected?.(child)); return createVNode(XCheckbox, { "size": "small", "checked": column.isSelected?.(column.row), "onChange": () => column.onSelect?.(column.row), "disabled": !column.column.selectable?.(column.row), "indeterminate": children.length > 0 && hasSelectedChildren && !allChildrenSelected }, null); }; const renderContent = () => { if (column.column.type === "selection") { return renderSelection(); } const content = column.column.slots ? column.column.slots({ row: column.row }) : column.row[column.column.prop]; const firstNonSelectionColumn = column.columns.find((col) => col.type !== "selection"); if (column.column.prop === firstNonSelectionColumn?.prop) { return createVNode("div", { "style": { display: "flex", alignItems: "center", paddingLeft: `${column.level * 6}px` } }, [!column.hasChildren && column.level > 0 && createVNode("span", null, null), content, column.hasChildren && createVNode(Fragment, null, [column.isExpanded ? createVNode(XIcon, { "onClick": (e) => { e.stopPropagation(); column.onExpand(); } }, { default: () => [createVNode(ChevronDown, null, null)] }) : createVNode(XIcon, { "onClick": (e) => { e.stopPropagation(); column.onExpand(); } }, { default: () => [createVNode(ChevronRight, null, null)] })])]); } return content; }; return () => renderContent(); } }); }; export { setColumn }; //# sourceMappingURL=column.mjs.map