{"version":3,"file":"utils-helper.mjs","sources":["../../../../../../../packages/components/table/src/table-header/utils-helper.ts"],"sourcesContent":["// @ts-nocheck\nimport { computed, inject } from 'vue'\nimport { TABLE_INJECTION_KEY } from '../tokens'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type { TableHeaderProps } from '.'\n\nconst getAllColumns = <T>(\n  columns: TableColumnCtx<T>[]\n): TableColumnCtx<T>[] => {\n  const result: TableColumnCtx<T>[] = []\n  columns.forEach((column) => {\n    if (column.children) {\n      result.push(column)\n      // eslint-disable-next-line prefer-spread\n      result.push.apply(result, getAllColumns(column.children))\n    } else {\n      result.push(column)\n    }\n  })\n  return result\n}\n\nconst convertToRows = <T>(\n  originColumns: TableColumnCtx<T>[]\n): TableColumnCtx<T>[] => {\n  let maxLevel = 1\n  const traverse = (column: TableColumnCtx<T>, parent: TableColumnCtx<T>) => {\n    if (parent) {\n      column.level = parent.level + 1\n      if (maxLevel < column.level) {\n        maxLevel = column.level\n      }\n    }\n    if (column.children) {\n      let colSpan = 0\n      column.children.forEach((subColumn) => {\n        traverse(subColumn, column)\n        colSpan += subColumn.colSpan\n      })\n      column.colSpan = colSpan\n    } else {\n      column.colSpan = 1\n    }\n  }\n\n  originColumns.forEach((column) => {\n    column.level = 1\n    traverse(column, undefined)\n  })\n\n  const rows = []\n  for (let i = 0; i < maxLevel; i++) {\n    rows.push([])\n  }\n\n  const allColumns: TableColumnCtx<T>[] = getAllColumns(originColumns)\n\n  allColumns.forEach((column) => {\n    if (!column.children) {\n      column.rowSpan = maxLevel - column.level + 1\n    } else {\n      column.rowSpan = 1\n      column.children.forEach((col) => (col.isSubColumn = true))\n    }\n    rows[column.level - 1].push(column)\n  })\n\n  return rows\n}\n\nfunction useUtils<T>(props: TableHeaderProps<T>) {\n  const parent = inject(TABLE_INJECTION_KEY)\n  const columnRows = computed(() => {\n    return convertToRows(props.store.states.originColumns.value)\n  })\n  const isGroup = computed(() => {\n    const result = columnRows.value.length > 1\n    if (result && parent) {\n      parent.state.isGroup.value = true\n    }\n    return result\n  })\n  const toggleAllSelection = (event: Event) => {\n    event.stopPropagation()\n    parent?.store.commit('toggleAllSelection')\n  }\n  return {\n    isGroup,\n    toggleAllSelection,\n    columnRows,\n  }\n}\n\nexport default useUtils\n"],"names":[],"mappings":"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"}