{"version":3,"file":"util.cjs","sources":["../../../../../../packages/components/table/src/util.ts"],"sourcesContent":["import type { Key } from '@antdv/types';\nimport type { ColumnTitle, ColumnTitleProps, TableColumnsType, TableColumnType } from './interface';\nimport { camelize, flattenChildren } from '@antdv/utils';\n\nexport function getColumnKey<RecordType>(column: TableColumnType<RecordType>, defaultKey: string): Key {\n  if ('key' in column && column.key !== undefined && column.key !== null)\n    return column.key;\n\n  if (column.dataIndex)\n    return (Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex) as Key;\n\n  return defaultKey;\n}\n\nexport function getColumnPos(index: number, pos?: string) {\n  return pos ? `${pos}-${index}` : `${index}`;\n}\n\nexport function renderColumnTitle<RecordType>(\n  title: ColumnTitle<RecordType>,\n  props: ColumnTitleProps<RecordType>,\n) {\n  if (typeof title === 'function')\n    return title(props);\n\n  return title;\n}\n\nexport function convertChildrenToColumns<RecordType>(\n  elements: any[] = [],\n): TableColumnsType<RecordType> {\n  const flattenElements = flattenChildren(elements);\n  const columns = [];\n  flattenElements.forEach((element) => {\n    if (!element)\n      return;\n\n    const key = element.key;\n    const style = element.props?.style || {};\n    const cls = element.props?.class || '';\n    const props = element.props || {};\n    for (const [k, v] of Object.entries(props))\n      props[camelize(k)] = v;\n\n    const { default: children, ...restSlots } = element.children || {};\n    const column = { ...restSlots, ...props, style, class: cls };\n    if (key)\n      column.key = key;\n\n    if (element.type?.__ANT_TABLE_COLUMN_GROUP) {\n      column.children = convertChildrenToColumns(\n        typeof children === 'function' ? children() : children,\n      );\n    } else {\n      const customRender = element.children?.default;\n      column.customRender = column.customRender || customRender;\n    }\n    columns.push(column);\n  });\n  return columns;\n}\n"],"names":["flattenChildren","camelize"],"mappings":"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"}