{"version":3,"file":"column.mjs","sources":["../../../../../packages/components/table/src/column.jsx"],"sourcesContent":["import { defineComponent, inject } from \"vue\";\r\nimport { XCheckbox, XIcon } from \"@ui-library/components\";\r\nimport { ChevronRight, ChevronDown } from \"song-ui-pro-icon\";\r\n\r\nexport const setColumn = (column) => {\r\n  return defineComponent({\r\n    name: \"x-column\",\r\n    setup(props, { slots }) {\r\n      const renderSelection = () => {\r\n        if (!column.row) {\r\n          return (\r\n            <XCheckbox\r\n              size=\"small\"\r\n              checked={column.isAllSelected?.value}\r\n              onChange={(e) => column.onSelectAll?.(e)}\r\n              indeterminate={column.indeterminate?.value}\r\n            />\r\n          );\r\n        }\r\n\r\n        const children = column.getAllChildren?.(column.row) || [];\r\n        const hasSelectedChildren = children.some((child) =>\r\n          column.isSelected?.(child)\r\n        );\r\n        const allChildrenSelected =\r\n          children.length > 0 &&\r\n          children.every((child) => column.isSelected?.(child));\r\n\r\n        return (\r\n          <XCheckbox\r\n            size=\"small\"\r\n            checked={column.isSelected?.(column.row)}\r\n            onChange={() => column.onSelect?.(column.row)}\r\n            disabled={!column.column.selectable?.(column.row)}\r\n            indeterminate={\r\n              children.length > 0 && hasSelectedChildren && !allChildrenSelected\r\n            }\r\n          />\r\n        );\r\n      };\r\n\r\n      const renderContent = () => {\r\n        if (column.column.type === \"selection\") {\r\n          return renderSelection();\r\n        }\r\n\r\n        const content = column.column.slots\r\n          ? column.column.slots({ row: column.row })\r\n          : column.row[column.column.prop];\r\n\r\n        const firstNonSelectionColumn = column.columns.find(\r\n          (col) => col.type !== \"selection\"\r\n        );\r\n        if (column.column.prop === firstNonSelectionColumn?.prop) {\r\n          return (\r\n            <div\r\n              style={{\r\n                display: \"flex\",\r\n                alignItems: \"center\",\r\n                paddingLeft: `${column.level * 6}px`,\r\n              }}\r\n            >\r\n              {!column.hasChildren && column.level > 0 && <span></span>}\r\n              {content}\r\n              {column.hasChildren && (\r\n                <>\r\n                  {column.isExpanded ? (\r\n                    <XIcon\r\n                      onClick={(e) => {\r\n                        e.stopPropagation();\r\n                        column.onExpand();\r\n                      }}\r\n                    >\r\n                      <ChevronDown />\r\n                    </XIcon>\r\n                  ) : (\r\n                    <XIcon\r\n                      onClick={(e) => {\r\n                        e.stopPropagation();\r\n                        column.onExpand();\r\n                      }}\r\n                    >\r\n                      <ChevronRight />\r\n                    </XIcon>\r\n                  )}\r\n                </>\r\n              )}\r\n            </div>\r\n          );\r\n        }\r\n\r\n        return content;\r\n      };\r\n\r\n      return () => renderContent();\r\n    },\r\n  });\r\n};\r\n"],"names":["setColumn","column","name","setup","props","slots","renderSelection","row","_createVNode","XCheckbox","isAllSelected","value","e","onSelectAll","indeterminate","children","getAllChildren","hasSelectedChildren","some","child","isSelected","allChildrenSelected","length","every","onChange","onSelect","selectable","renderContent","type","content","prop","firstNonSelectionColumn","columns","find","col","display","alignItems","paddingLeft","level","hasChildren","_Fragment","isExpanded","XIcon","stopPropagation","onExpand","default","ChevronDown","ChevronRight"],"mappings":"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"}