{"version":3,"file":"useColumns.cjs","sources":["../../../../../../../packages/vue-components/vc-table/src/hooks/useColumns.tsx"],"sourcesContent":["import type { ComputedRef, Ref } from 'vue';\nimport type {\n  ColumnGroupType,\n  ColumnsType,\n  ColumnType,\n  FixedType,\n  GetRowKey,\n  Key,\n  RenderExpandIcon,\n  TriggerEventHandler,\n} from '../interface';\nimport { useInjectSlots } from '@antdv/components/table/src/context';\nimport { customRenderSlot, warning } from '@antdv/utils';\nimport { computed, watchEffect } from 'vue';\nimport { EXPAND_COLUMN } from '../constant';\nimport { INTERNAL_COL_DEFINE } from '../utils/legacyUtil';\n\nfunction flatColumns<RecordType>(columns: ColumnsType<RecordType>): Array<ColumnType<RecordType>> {\n  return columns.reduce((list, column) => {\n    const { fixed } = column;\n\n    // Convert `fixed='true'` to `fixed='left'` instead\n    const parsedFixed = fixed === true ? 'left' : fixed;\n\n    const subColumns = (column as ColumnGroupType<RecordType>).children;\n    if (subColumns && subColumns.length > 0) {\n      return [\n        ...list,\n        ...flatColumns(subColumns).map(subColum => ({\n          fixed: parsedFixed,\n          ...subColum,\n        })),\n      ];\n    }\n    return [\n      ...list,\n      {\n        ...column,\n        fixed: parsedFixed,\n      },\n    ];\n  }, []);\n}\n\nfunction warningFixed(flattenColumns: ReadonlyArray<{ fixed?: FixedType }>) {\n  let allFixLeft = true;\n  for (let i = 0; i < flattenColumns.length; i += 1) {\n    const col = flattenColumns[i];\n    if (allFixLeft && col.fixed !== 'left') {\n      allFixLeft = false;\n    } else if (!allFixLeft && col.fixed === 'left') {\n      warning(false, `Index ${i - 1} of \\`columns\\` missing \\`fixed='left'\\` prop.`);\n      break;\n    }\n  }\n\n  let allFixRight = true;\n  for (let i = flattenColumns.length - 1; i >= 0; i -= 1) {\n    const col = flattenColumns[i];\n    if (allFixRight && col.fixed !== 'right') {\n      allFixRight = false;\n    } else if (!allFixRight && col.fixed === 'right') {\n      warning(false, `Index ${i + 1} of \\`columns\\` missing \\`fixed='right'\\` prop.`);\n      break;\n    }\n  }\n}\n\nfunction revertForRtl<RecordType>(columns: ColumnsType<RecordType>): ColumnsType<RecordType> {\n  return columns.map((column) => {\n    const { fixed, ...restProps } = column;\n\n    // Convert `fixed='left'` to `fixed='right'` instead\n    let parsedFixed = fixed;\n    if (fixed === 'left')\n      parsedFixed = 'right';\n    else if (fixed === 'right')\n      parsedFixed = 'left';\n\n    return {\n      fixed: parsedFixed,\n      ...restProps,\n    };\n  });\n}\n\n/**\n * Parse `columns` & `children` into `columns`.\n */\nfunction useColumns<RecordType>(\n  {\n    prefixCls,\n    columns: baseColumns,\n    // children,\n    expandable,\n    expandedKeys,\n    getRowKey,\n    onTriggerExpand,\n    expandIcon,\n    rowExpandable,\n    expandIconColumnIndex,\n    direction,\n    expandRowByClick,\n    expandColumnWidth,\n    expandFixed,\n  }: {\n    prefixCls?: Ref<string>;\n    columns?: Ref<ColumnsType<RecordType>>;\n    expandable: Ref<boolean>;\n    expandedKeys: ComputedRef<Set<Key>>;\n    getRowKey: Ref<GetRowKey<RecordType>>;\n    onTriggerExpand: TriggerEventHandler<RecordType>;\n    expandIcon?: Ref<RenderExpandIcon<RecordType>>;\n    rowExpandable?: Ref<(record: RecordType) => boolean>;\n    expandIconColumnIndex?: Ref<number>;\n    direction?: Ref<'ltr' | 'rtl'>;\n    expandRowByClick?: Ref<boolean>;\n    expandColumnWidth?: Ref<number | string>;\n    expandFixed?: Ref<FixedType>;\n  },\n  transformColumns: Ref<(columns: ColumnsType<RecordType>) => ColumnsType<RecordType>>,\n): [ComputedRef<ColumnsType<RecordType>>, ComputedRef<ReadonlyArray<ColumnType<RecordType>>>] {\n  const contextSlots = useInjectSlots();\n  // Add expand column\n  const withExpandColumns = computed<ColumnsType<RecordType>>(() => {\n    if (expandable.value) {\n      let cloneColumns = baseColumns.value.slice();\n\n      // >>> Warning if use `expandIconColumnIndex`\n      if (process.env.NODE_ENV !== 'production' && expandIconColumnIndex.value >= 0) {\n        warning(\n          false,\n          '`expandIconColumnIndex` is deprecated. Please use `Table.EXPAND_COLUMN` in `columns` instead.',\n        );\n      }\n\n      // >>> Insert expand column if not exist\n      if (!cloneColumns.includes(EXPAND_COLUMN)) {\n        const expandColIndex = expandIconColumnIndex.value || 0;\n        if (expandColIndex >= 0)\n          cloneColumns.splice(expandColIndex, 0, EXPAND_COLUMN);\n      }\n\n      // >>> Deduplicate additional expand column\n      if (\n        process.env.NODE_ENV !== 'production'\n        && cloneColumns.filter(c => c === EXPAND_COLUMN).length > 1\n      ) {\n        warning(false, 'There exist more than one `EXPAND_COLUMN` in `columns`.');\n      }\n\n      const expandColumnIndex = cloneColumns.indexOf(EXPAND_COLUMN);\n      cloneColumns = cloneColumns.filter(\n        (column, index) => column !== EXPAND_COLUMN || index === expandColumnIndex,\n      );\n\n      // >>> Check if expand column need to fixed\n      const prevColumn = baseColumns.value[expandColumnIndex];\n\n      let fixedColumn: FixedType | null;\n      if ((expandFixed.value === 'left' || expandFixed.value) && !expandIconColumnIndex.value) {\n        fixedColumn = 'left';\n      }\n      else if (\n        (expandFixed.value === 'right' || expandFixed.value)\n        && expandIconColumnIndex.value === baseColumns.value.length\n      ) {\n        fixedColumn = 'right';\n      }\n      else {\n        fixedColumn = prevColumn ? prevColumn.fixed : null;\n      }\n\n      const expandedKeysValue = expandedKeys.value;\n      const rowExpandableValue = rowExpandable.value;\n      const expandIconValue = expandIcon.value;\n      const prefixClsValue = prefixCls.value;\n      const expandRowByClickValue = expandRowByClick.value;\n      // >>> Create expandable column\n      const expandColumn = {\n        [INTERNAL_COL_DEFINE]: {\n          class: `${prefixCls.value}-expand-icon-col`,\n          columnType: 'EXPAND_COLUMN',\n        },\n        title: customRenderSlot(contextSlots.value, 'expandColumnTitle', {}, () => ['']),\n        fixed: fixedColumn,\n        class: `${prefixCls.value}-row-expand-icon-cell`,\n        width: expandColumnWidth.value,\n        customRender: ({ record, index }) => {\n          const rowKey = getRowKey.value(record, index);\n          const expanded = expandedKeysValue.has(rowKey);\n          const recordExpandable = rowExpandableValue ? rowExpandableValue(record) : true;\n\n          const icon = expandIconValue({\n            prefixCls: prefixClsValue,\n            expanded,\n            expandable: recordExpandable,\n            record,\n            onExpand: onTriggerExpand,\n          });\n\n          if (expandRowByClickValue)\n            return <span onClick={e => e.stopPropagation()}>{icon}</span>;\n\n          return icon;\n        },\n      };\n\n      return cloneColumns.map(col => (col === EXPAND_COLUMN ? expandColumn : col));\n    }\n    if (process.env.NODE_ENV !== 'production' && baseColumns.value.includes(EXPAND_COLUMN))\n      warning(false, '`expandable` is not config but there exist `EXPAND_COLUMN` in `columns`.');\n\n    return baseColumns.value.filter(col => col !== EXPAND_COLUMN);\n  });\n\n  const mergedColumns = computed(() => {\n    let finalColumns = withExpandColumns.value;\n    if (transformColumns.value)\n      finalColumns = transformColumns.value(finalColumns);\n\n    // Always provides at least one column for table display\n    if (!finalColumns.length) {\n      finalColumns = [\n        {\n          customRender: () => null,\n        },\n      ];\n    }\n    return finalColumns;\n  });\n\n  const flattenColumns = computed(() => {\n    if (direction.value === 'rtl')\n      return revertForRtl(flatColumns(mergedColumns.value));\n\n    return flatColumns(mergedColumns.value);\n  });\n  // Only check out of production since it's waste for each render\n  if (process.env.NODE_ENV !== 'production') {\n    watchEffect(() => {\n      setTimeout(() => {\n        warningFixed(flattenColumns.value);\n      });\n    });\n  }\n  return [mergedColumns, flattenColumns];\n}\n\nexport default useColumns;\n"],"names":["flatColumns","columns","reduce","list","column","fixed","parsedFixed","subColumns","children","length","map","subColum","warningFixed","flattenColumns","allFixLeft","i","col","warning","allFixRight","revertForRtl","restProps","useColumns","prefixCls","baseColumns","expandable","expandedKeys","getRowKey","onTriggerExpand","expandIcon","rowExpandable","expandIconColumnIndex","direction","expandRowByClick","expandColumnWidth","expandFixed","transformColumns","contextSlots","useInjectSlots","withExpandColumns","computed","value","cloneColumns","slice","process","env","NODE_ENV","includes","EXPAND_COLUMN","expandColIndex","splice","filter","c","expandColumnIndex","indexOf","index","prevColumn","fixedColumn","expandedKeysValue","rowExpandableValue","expandIconValue","prefixClsValue","expandRowByClickValue","expandColumn","INTERNAL_COL_DEFINE","class","columnType","title","customRenderSlot","width","customRender","record","rowKey","expanded","has","recordExpandable","icon","onExpand","_createVNode","e","stopPropagation","mergedColumns","finalColumns","watchEffect","setTimeout"],"mappings":"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"}