UNPKG

song-ui-u

Version:

vue3 + js的PC前端组件库

114 lines (110 loc) 4.2 kB
'use strict'; var vue = require('vue'); require('../../button/index.cjs'); require('../../buttonGroup/index.cjs'); var index = require('../../icon/index.cjs'); require('../../input/index.cjs'); require('../../textarea/index.cjs'); require('../../row/index.cjs'); require('../../col/index.cjs'); require('../../container/index.cjs'); var index$1 = require('../../checkbox/index.cjs'); require('../../switch/index.cjs'); require('../../form/index.cjs'); require('../../message/index.cjs'); require('../../mask/src/mask.cjs'); require('../../modal/index.cjs'); require('../../messageBox/index.cjs'); require('../../drawer/index.cjs'); require('../../badge/index.cjs'); require('../../space/index.cjs'); require('../../image/index.cjs'); require('../../radio/index.cjs'); require('../../divider/index.cjs'); require('../../chat/index.cjs'); require('../../progress/index.cjs'); require('../../upload/index.cjs'); require('../../vTree/index.cjs'); require('../index.cjs'); require('../../tabs/index.cjs'); require('../../menu/index.cjs'); require('../../steps/index.cjs'); require('../../header/index.cjs'); require('../../breadcrumble/index.cjs'); require('../../datePicker/index.cjs'); require('../../tooltip/index.cjs'); require('../../popover/index.cjs'); require('../../timePicker/index.cjs'); require('../../select/index.cjs'); require('../../collapse/index.cjs'); require('../../card/index.cjs'); require('../../timeline/index.cjs'); require('../../tag/index.cjs'); require('../../result/index.cjs'); require('../../sender/index.cjs'); var icons = require('song-ui-pro-icon'); const setColumn = (column) => { return /* @__PURE__ */ vue.defineComponent({ name: "x-column", setup(props, { slots }) { const renderSelection = () => { if (!column.row) { return vue.createVNode(index$1.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 vue.createVNode(index$1.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 vue.createVNode("div", { "style": { display: "flex", alignItems: "center", paddingLeft: `${column.level * 6}px` } }, [!column.hasChildren && column.level > 0 && vue.createVNode("span", null, null), content, column.hasChildren && vue.createVNode(vue.Fragment, null, [column.isExpanded ? vue.createVNode(index.XIcon, { "onClick": (e) => { e.stopPropagation(); column.onExpand(); } }, { default: () => [vue.createVNode(icons.ChevronDown, null, null)] }) : vue.createVNode(index.XIcon, { "onClick": (e) => { e.stopPropagation(); column.onExpand(); } }, { default: () => [vue.createVNode(icons.ChevronRight, null, null)] })])]); } return content; }; return () => renderContent(); } }); }; exports.setColumn = setColumn; //# sourceMappingURL=column.cjs.map