hongluan-ui
Version:
Hongluan Component Library for Vue 3
1 lines • 3.85 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/simple-table/src/utils.ts"],"sourcesContent":["import type { ColumnType, RealCols } from './simple-table'\n\nlet columnIdSeed = 1\n\nexport const convertCols = (originColumns: ColumnType[]): RealCols => {\n let maxLevel = 1\n const traverse = (column: ColumnType, parent: ColumnType | undefined) => {\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 column.id = `${columnIdSeed++}`\n traverse(column, undefined)\n })\n\n const rows: Array<ColumnType[]> = []\n for (let i = 0; i < maxLevel; i++) {\n rows.push([] as ColumnType[])\n }\n\n const allColumns = 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 }\n rows[column.level! - 1].push(column)\n })\n\n return { headerRows: rows, realCols: allColumns.filter(c => c.colSpan === 1) }\n}\n\nexport const getAllColumns = (columns: ColumnType[]): ColumnType[] => {\n const result: ColumnType[] = []\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"],"names":[],"mappings":"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"}