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