{"version":3,"file":"useTitleColumns.cjs","sources":["../../../../../../../packages/components/table/src/hooks/useTitleColumns.tsx"],"sourcesContent":["import type { Ref } from 'vue';\nimport type { ColumnTitleProps, TableColumnsType, TransformColumns } from '../interface';\nimport { renderColumnTitle } from '../util';\n\nfunction fillTitle<RecordType>(\n  columns: TableColumnsType<RecordType>,\n  columnTitleProps: ColumnTitleProps<RecordType>,\n) {\n  return columns.map((column) => {\n    const cloneColumn = { ...column };\n\n    cloneColumn.title = renderColumnTitle(cloneColumn.title, columnTitleProps);\n\n    if ('children' in cloneColumn)\n      cloneColumn.children = fillTitle(cloneColumn.children, columnTitleProps);\n\n    return cloneColumn;\n  });\n}\n\nexport default function useTitleColumns<RecordType>(\n  columnTitleProps: Ref<ColumnTitleProps<RecordType>>,\n): [TransformColumns<RecordType>] {\n  const filledColumns = (columns: TableColumnsType<RecordType>) =>\n    fillTitle(columns, columnTitleProps.value);\n\n  return [filledColumns];\n}\n"],"names":["fillTitle","columns","columnTitleProps","map","column","cloneColumn","title","renderColumnTitle","children","useTitleColumns","filledColumns","value"],"mappings":";;;;;;AAIA,SAASA,SAAAA,CACPC,SACAC,gBACA,EAAA;AACA,EAAOD,OAAAA,OAAAA,CAAQE,IAAKC,CAAW,MAAA,KAAA;AAC7B,IAAA,MAAMC,WAAc,GAAA;AAAA,MAAE,GAAGD,MAAAA;AAAAA,KAAO,CAAA;AAEhCC,IAAAA,WAAAA,CAAYC,KAAQC,GAAAA,sBAAAA,CAAkBF,WAAYC,CAAAA,KAAAA,EAAOJ,gBAAgB,CAAA,CAAA;AAEzE,IAAA,IAAI,UAAcG,IAAAA,WAAAA;AAChBA,MAAAA,WAAAA,CAAYG,QAAWR,GAAAA,SAAAA,CAAUK,WAAYG,CAAAA,QAAAA,EAAUN,gBAAgB,CAAA,CAAA;AAEzE,IAAOG,OAAAA,WAAAA,CAAAA;AAAAA,GACR,CAAA,CAAA;AACH,CAAA;AAEA,SAAwBI,gBACtBP,gBACgC,EAAA;AAChC,EAAA,MAAMQ,aAAiBT,GAAAA,CAAAA,OAAAA,KACrBD,SAAUC,CAAAA,OAAAA,EAASC,iBAAiBS,KAAK,CAAA,CAAA;AAE3C,EAAA,OAAO,CAACD,aAAa,CAAA,CAAA;AACvB;;;;"}