{"version":3,"file":"table.mjs","sources":["../../../../../packages/components/table/src/table.jsx"],"sourcesContent":["import { defineComponent, ref, computed } from \"vue\";\r\nimport { setColumn } from \"./column\";\r\nimport { useNamespace } from \"@ui-library/hook\";\r\n\r\nexport default defineComponent({\r\n  name: \"x-table\",\r\n  props: {\r\n    data: {\r\n      type: Array,\r\n      required: true,\r\n    },\r\n    stripe: {\r\n      type: Boolean,\r\n      default: false,\r\n    },\r\n    border: {\r\n      type: Boolean,\r\n      default: false,\r\n    },\r\n    height: {\r\n      type: [String, Number],\r\n      default: \"auto\",\r\n    },\r\n  },\r\n  setup(props, { slots, emit }) {\r\n    const ns = useNamespace(\"table\");\r\n    const columns = ref([]);\r\n    const selectedRows = ref(new Set());\r\n    const expandedRows = ref(new Set());\r\n    const indeterminateValue = ref(false);\r\n\r\n    const getAllChildren = (row) => {\r\n      const children = [];\r\n      const stack = [row];\r\n\r\n      while (stack.length) {\r\n        const current = stack.pop();\r\n        if (current.children?.length) {\r\n          stack.push(...current.children);\r\n          children.push(...current.children);\r\n        }\r\n      }\r\n\r\n      return children;\r\n    };\r\n\r\n    const getParentRow = (row, data = props.data) => {\r\n      for (const item of data) {\r\n        if (item.children?.find((child) => child.id === row.id)) {\r\n          return item;\r\n        }\r\n        if (item.children?.length) {\r\n          const parent = getParentRow(row, item.children);\r\n          if (parent) return parent;\r\n        }\r\n      }\r\n      return null;\r\n    };\r\n\r\n    const handleSelect = (row) => {\r\n      const children = getAllChildren(row);\r\n\r\n      if (selectedRows.value.has(row)) {\r\n        selectedRows.value.delete(row);\r\n        children.forEach((child) => selectedRows.value.delete(child));\r\n      } else {\r\n        selectedRows.value.add(row);\r\n        children.forEach((child) => selectedRows.value.add(child));\r\n      }\r\n\r\n      let parent = getParentRow(row);\r\n      while (parent) {\r\n        const allChildren = getAllChildren(parent);\r\n        const allSelected = allChildren.every((child) =>\r\n          selectedRows.value.has(child)\r\n        );\r\n\r\n        if (allSelected) {\r\n          selectedRows.value.add(parent);\r\n        } else {\r\n          selectedRows.value.delete(parent);\r\n        }\r\n        parent = getParentRow(parent);\r\n      }\r\n\r\n      indeterminateValue.value =\r\n        selectedRows.value.size > 0 && !isAllSelected.value;\r\n      emit(\"selection-change\", Array.from(selectedRows.value));\r\n    };\r\n\r\n    const isSelected = (row) => {\r\n      return selectedRows.value.has(row);\r\n    };\r\n\r\n    if (slots.default) {\r\n      const children = slots.default();\r\n      columns.value = children.map((child) => ({\r\n        prop: child.props.prop,\r\n        label: child.props.label,\r\n        width: child.props.width || \"auto\",\r\n        slots: child?.children?.default,\r\n        align: child.props.align || \"left\",\r\n        type: child.props.type,\r\n        selectable: child.props.selectable || (() => true),\r\n      }));\r\n    }\r\n\r\n    const isAllSelected = computed(() => {\r\n      const selectionColumn = columns.value.find(\r\n        (col) => col.type === \"selection\"\r\n      );\r\n\r\n      // 获取所有可选行（包括子节点）\r\n      const getAllSelectableRows = (data) => {\r\n        let rows = [];\r\n        data.forEach((row) => {\r\n          if (selectionColumn?.selectable?.(row) ?? true) {\r\n            rows.push(row);\r\n          }\r\n          if (row.children?.length) {\r\n            rows = rows.concat(getAllSelectableRows(row.children));\r\n          }\r\n        });\r\n        return rows;\r\n      };\r\n\r\n      const selectableRows = getAllSelectableRows(props.data);\r\n      const selectedSelectableRows = Array.from(selectedRows.value).filter(\r\n        (row) => selectionColumn?.selectable?.(row) ?? true\r\n      );\r\n\r\n      return (\r\n        selectableRows.length > 0 &&\r\n        selectedSelectableRows.length === selectableRows.length\r\n      );\r\n    });\r\n\r\n    const handleSelectAll = (checked) => {\r\n      const processRow = (row) => {\r\n        if (checked) {\r\n          selectedRows.value.add(row);\r\n        } else {\r\n          selectedRows.value.delete(row);\r\n        }\r\n        row.children?.forEach(processRow);\r\n      };\r\n\r\n      props.data.forEach(processRow);\r\n      indeterminateValue.value = false;\r\n      emit(\"selection-change\", Array.from(selectedRows.value));\r\n    };\r\n\r\n    const handleExpand = (row) => {\r\n      if (expandedRows.value.has(row.id)) {\r\n        expandedRows.value.delete(row.id);\r\n      } else {\r\n        expandedRows.value.add(row.id);\r\n      }\r\n    };\r\n\r\n    const isExpanded = (rowId) => expandedRows.value.has(rowId);\r\n\r\n    const renderRows = (data, level = 0) => {\r\n      const rows = [];\r\n\r\n      data.forEach((row, rowIndex) => {\r\n        rows.push(\r\n          <tr\r\n            key={row.id}\r\n            class={[\r\n              ns.e(\"row\"),\r\n              ns.is(\"stripe\", props.stripe && rowIndex % 2 === 0),\r\n            ]}\r\n          >\r\n            {columns.value.map((column) => {\r\n              const Column = setColumn({\r\n                column,\r\n                row,\r\n                level,\r\n                columns: columns.value,\r\n                hasChildren: !!row.children?.length,\r\n                isExpanded: isExpanded(row.id),\r\n                onExpand: () => handleExpand(row),\r\n                getAllChildren,\r\n                isSelected,\r\n                onSelect: handleSelect,\r\n                isAllSelected,\r\n                onSelectAll: handleSelectAll,\r\n                indeterminate: indeterminateValue,\r\n              });\r\n              return (\r\n                <td class={[ns.e(\"cell\"), ns.is(\"border\", props.border)]}>\r\n                  <Column />\r\n                </td>\r\n              );\r\n            })}\r\n          </tr>\r\n        );\r\n\r\n        if (row.children?.length && isExpanded(row.id)) {\r\n          rows.push(...renderRows(row.children, level + 1));\r\n        }\r\n      });\r\n\r\n      return rows;\r\n    };\r\n\r\n    return () => (\r\n      <div\r\n        class={[ns.b(), ns.is(\"border\", props.border)]}\r\n        style={{\r\n          height:\r\n            typeof props.height == \"number\"\r\n              ? `${props.height}px`\r\n              : props.height,\r\n        }}\r\n      >\r\n        <table class={[ns.e(\"container\")]}>\r\n          <thead class={[ns.e(\"header\")]}>\r\n            <tr>\r\n              {columns.value.map((column) => {\r\n                const Column = setColumn({\r\n                  column,\r\n                  row: null,\r\n                  columns: columns.value,\r\n                  isAllSelected,\r\n                  onSelectAll: handleSelectAll,\r\n                  indeterminate: indeterminateValue,\r\n                });\r\n                return (\r\n                  <th\r\n                    style={{\r\n                      width: column.width + \"px\",\r\n                      textAlign: column.align,\r\n                    }}\r\n                    class={[ns.e(\"cell\"), ns.is(\"border\", props.border)]}\r\n                    key={column.prop}\r\n                  >\r\n                    {column.type === \"selection\" ? <Column /> : column.label}\r\n                  </th>\r\n                );\r\n              })}\r\n            </tr>\r\n          </thead>\r\n          <tbody>{renderRows(props.data)}</tbody>\r\n        </table>\r\n      </div>\r\n    );\r\n  },\r\n});\r\n"],"names":["name","props","data","type","Array","required","stripe","Boolean","default","border","height","String","Number","setup","slots","emit","ns","useNamespace","columns","ref","selectedRows","Set","expandedRows","indeterminateValue","getAllChildren","row","children","stack","length","current","pop","push","getParentRow","item","find","child","id","parent","handleSelect","value","has","delete","forEach","add","allChildren","allSelected","every","size","isAllSelected","from","isSelected","map","prop","label","width","align","selectable","computed","selectionColumn","col","getAllSelectableRows","rows","concat","selectableRows","selectedSelectableRows","filter","handleSelectAll","checked","processRow","handleExpand","isExpanded","rowId","renderRows","level","rowIndex","_createVNode","e","is","column","Column","setColumn","hasChildren","onExpand","onSelect","onSelectAll","indeterminate","b","textAlign"],"mappings":"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"}