{"version":3,"file":"useColumns.cjs","sources":["../../../../../../../packages/components/table/src/hooks/useColumns.tsx"],"sourcesContent":["import type { Ref } from 'vue';\nimport type { ContextSlots, TableColumnsType, TransformColumns } from '../interface';\n\nimport { customRenderSlot, devWarning } from '@antdv/utils';\nimport { EXPAND_COLUMN } from '@antdv/vue-components';\nimport { SELECTION_COLUMN } from './useSelection';\n\nfunction fillSlots<RecordType>(columns: TableColumnsType<RecordType>, contextSlots: Ref<ContextSlots>) {\n  const $slots = contextSlots.value;\n  return columns.map((column) => {\n    if (column === SELECTION_COLUMN || column === EXPAND_COLUMN) return column;\n    const cloneColumn = { ...column };\n    const { slots = {} } = cloneColumn;\n    cloneColumn.__originColumn__ = column;\n    devWarning(\n      !('slots' in cloneColumn),\n      'Table',\n      '`column.slots` is deprecated. Please use `v-slot:headerCell` `v-slot:bodyCell` instead.',\n    );\n\n    Object.keys(slots).forEach((key) => {\n      const name = slots[key];\n      if (cloneColumn[key] === undefined && $slots[name])\n        cloneColumn[key] = $slots[name];\n    });\n\n    if (contextSlots.value.headerCell && !column.slots?.title) {\n      cloneColumn.title = customRenderSlot(\n        contextSlots.value,\n        'headerCell',\n        {\n          title: column.title,\n          column,\n        },\n        () => [column.title as any],\n      );\n    }\n    if ('children' in cloneColumn && Array.isArray(cloneColumn.children))\n      cloneColumn.children = fillSlots(cloneColumn.children, contextSlots);\n\n    return cloneColumn;\n  });\n}\n\nexport default function useColumns<RecordType>(\n  contextSlots: Ref<ContextSlots>,\n): [TransformColumns<RecordType>] {\n  const filledColumns = (columns: TableColumnsType<RecordType>) => fillSlots(columns, contextSlots);\n\n  return [filledColumns];\n}\n"],"names":["fillSlots","columns","contextSlots","$slots","value","map","column","SELECTION_COLUMN","EXPAND_COLUMN","cloneColumn","slots","__originColumn__","devWarning","Object","keys","forEach","key","name","undefined","headerCell","title","customRenderSlot","Array","isArray","children","useColumns","filledColumns"],"mappings":";;;;;;;;;;;AAOA,SAASA,SAAAA,CAAsBC,SAAuCC,YAAiC,EAAA;AACrG,EAAA,MAAMC,SAASD,YAAaE,CAAAA,KAAAA,CAAAA;AAC5B,EAAOH,OAAAA,OAAAA,CAAQI,IAAKC,CAAW,MAAA,KAAA;AANjC,IAAA,IAAA,EAAA,CAAA;AAOI,IAAIA,IAAAA,MAAAA,KAAWC,iCAAoBD,MAAWE,KAAAA,sBAAAA;AAAe,MAAOF,OAAAA,MAAAA,CAAAA;AACpE,IAAA,MAAMG,WAAc,GAAA;AAAA,MAAE,GAAGH,MAAAA;AAAAA,KAAO,CAAA;AAChC,IAAM,MAAA;AAAA,MAAEI,QAAQ,EAAC;AAAA,KAAMD,GAAAA,WAAAA,CAAAA;AACvBA,IAAAA,WAAAA,CAAYE,gBAAmBL,GAAAA,MAAAA,CAAAA;AAC/BM,IAAAA,cAAAA,CACE,EAAE,OAAA,IAAWH,WACb,CAAA,EAAA,OAAA,EACA,yFACF,CAAA,CAAA;AAEAI,IAAAA,MAAAA,CAAOC,IAAKJ,CAAAA,KAAK,CAAEK,CAAAA,OAAAA,CAASC,CAAQ,GAAA,KAAA;AAClC,MAAMC,MAAAA,IAAAA,GAAOP,MAAMM,GAAG,CAAA,CAAA;AACtB,MAAA,IAAIP,WAAYO,CAAAA,GAAG,CAAME,KAAAA,KAAAA,CAAAA,IAAaf,OAAOc,IAAI,CAAA;AAC/CR,QAAYO,WAAAA,CAAAA,GAAG,CAAIb,GAAAA,MAAAA,CAAOc,IAAI,CAAA,CAAA;AAAA,KACjC,CAAA,CAAA;AAED,IAAA,IAAIf,aAAaE,KAAMe,CAAAA,UAAAA,IAAc,GAACb,EAAOI,GAAAA,MAAAA,CAAAA,KAAAA,KAAPJ,mBAAcc,KAAO,CAAA,EAAA;AACzDX,MAAAA,WAAAA,CAAYW,KAAQC,GAAAA,sBAAAA,CAClBnB,YAAaE,CAAAA,KAAAA,EACb,YACA,EAAA;AAAA,QACEgB,OAAOd,MAAOc,CAAAA,KAAAA;AAAAA,QACdd,MAAAA;AAAAA,OAEF,EAAA,MAAM,CAACA,MAAAA,CAAOc,KAAK,CACrB,CAAA,CAAA;AAAA,KACF;AACA,IAAA,IAAI,UAAcX,IAAAA,WAAAA,IAAea,KAAMC,CAAAA,OAAAA,CAAQd,YAAYe,QAAQ,CAAA;AACjEf,MAAAA,WAAAA,CAAYe,QAAWxB,GAAAA,SAAAA,CAAUS,WAAYe,CAAAA,QAAAA,EAAUtB,YAAY,CAAA,CAAA;AAErE,IAAOO,OAAAA,WAAAA,CAAAA;AAAAA,GACR,CAAA,CAAA;AACH,CAAA;AAEA,SAAwBgB,WACtBvB,YACgC,EAAA;AAChC,EAAA,MAAMwB,aAAiBzB,GAAAA,CAAAA,OAAAA,KAA0CD,SAAUC,CAAAA,OAAAA,EAASC,YAAY,CAAA,CAAA;AAEhG,EAAA,OAAO,CAACwB,aAAa,CAAA,CAAA;AACvB;;;;"}