{"version":3,"file":"tbody.mjs","sources":["../../../../components/table/components/tbody.tsx"],"sourcesContent":["import { defineComponent, computed, PropType, toRefs } from 'vue';\nimport { camelCase, get, pick } from 'lodash-es';\nimport TrElement, { ROW_LISTENERS, TABLE_PROPS } from './tr';\n\nimport { useConfig, useTNodeJSX } from '@tdesign/shared-hooks';\n\nimport useClassName from '../hooks/useClassName';\nimport baseTableProps from '../base-table-props';\nimport { TNodeReturnValue } from '../../common';\nimport useRowspanAndColspan from '../hooks/useRowspanAndColspan';\nimport { BaseTableProps, RowAndColFixedPosition } from '../types';\nimport { TdBaseTableProps } from '../type';\nimport type { VirtualScrollConfig } from '@tdesign/shared-hooks';\nimport type { CamelCase } from '@tdesign/common-js/utils/types';\n\nexport const ROW_AND_TD_LISTENERS = [...ROW_LISTENERS, 'cell-click'];\nexport interface TableBodyProps extends BaseTableProps {\n  classPrefix: string;\n  ellipsisOverlayClassName: string;\n  // 固定列 left/right 具体值\n  rowAndColFixedPosition: RowAndColFixedPosition;\n  showColumnShadow: { left: boolean; right: boolean };\n  tableElm: any;\n  tableWidth: number;\n  isWidthOverflow: boolean;\n  virtualConfig: VirtualScrollConfig;\n  // HTMLDivElement\n  tableContentElm: any;\n  cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n  handleRowMounted: (rowData: any) => void;\n}\n\n// table 到 body 的相同属性\nexport const extendTableProps = [\n  'bordered',\n  'rowKey',\n  'rowClassName',\n  'rowAttributes',\n  'loading',\n  'empty',\n  'fixedRows',\n  'firstFullRow',\n  'lastFullRow',\n  'rowspanAndColspan',\n  'scroll',\n  'cellEmptyContent',\n  'pagination',\n  'attach',\n  'onCellClick',\n  'onPageChange',\n  'onRowClick',\n  'onRowDblclick',\n  'onRowMouseover',\n  'onRowMousedown',\n  'onRowMouseenter',\n  'onRowMouseleave',\n  'onRowMouseup',\n  'onScroll',\n  'onScrollX',\n  'onScrollY',\n];\n\nexport default defineComponent({\n  name: 'TBody',\n  props: {\n    classPrefix: String,\n    data: Array as PropType<TableBodyProps['data']>,\n    columns: Array as PropType<TableBodyProps['columns']>,\n    ellipsisOverlayClassName: String,\n    rowAndColFixedPosition: Map as PropType<TableBodyProps['rowAndColFixedPosition']>,\n    showColumnShadow: Object as PropType<TableBodyProps['showColumnShadow']>,\n    // eslint-disable-next-line\n    tableElm: {},\n    tableWidth: Number,\n    isWidthOverflow: Boolean,\n    virtualConfig: Object as PropType<VirtualScrollConfig>,\n    // eslint-disable-next-line\n    tableContentElm: {},\n    handleRowMounted: Function as PropType<TableBodyProps['handleRowMounted']>,\n    renderExpandedRow: Function as PropType<TableBodyProps['renderExpandedRow']>,\n    firstFullRow: [String, Function] as PropType<TableBodyProps['firstFullRow']>,\n    lastFullRow: [String, Function] as PropType<TableBodyProps['lastFullRow']>,\n    activeRow: [Array] as PropType<Array<string | number>>,\n    hoverRow: [String, Number],\n    ...pick(baseTableProps, extendTableProps),\n  },\n  setup(props, { slots }) {\n    const renderTNode = useTNodeJSX();\n    const { data, columns, rowKey, rowspanAndColspan } = toRefs(props);\n    const { t, globalConfig } = useConfig('table', props.locale);\n    const { tableFullRowClasses, tableBaseClass } = useClassName();\n    const { skipSpansMap } = useRowspanAndColspan(data, columns, rowKey, rowspanAndColspan);\n\n    const tbodyClasses = computed(() => [tableBaseClass.body]);\n\n    return () => {\n      const renderEmpty = (columns: TableBodyProps['columns']) => {\n        const tableWidth = props.bordered ? props.tableWidth - 2 : props.tableWidth;\n        return (\n          <tr class={[tableBaseClass.emptyRow, { [tableFullRowClasses.base]: props.isWidthOverflow }]}>\n            <td colspan={columns.length}>\n              <div\n                class={[tableBaseClass.empty, { [tableFullRowClasses.innerFullRow]: props.isWidthOverflow }]}\n                style={props.isWidthOverflow ? { width: `${tableWidth}px` } : {}}\n              >\n                {renderTNode('empty') || t(globalConfig.value.empty)}\n              </div>\n            </td>\n          </tr>\n        );\n      };\n\n      const getFullRow = (columnLength: number, type: 'first-full-row' | 'last-full-row') => {\n        const tType = camelCase(type) as CamelCase<typeof type, '-'>;\n        const fullRowNode = renderTNode(tType);\n        if (['', null, undefined, false].includes(fullRowNode)) return null;\n        const isFixedToLeft = props.isWidthOverflow && columns.value.find((col) => col.fixed === 'left');\n        const classes = [tableFullRowClasses.base, tableFullRowClasses[tType]];\n        const tableWidth = props.bordered ? props.tableWidth - 2 : props.tableWidth;\n        /** innerFullRow 和 innerFullElement 同时存在，是为了保证 固定列时，当前行不随内容进行横向滚动 */\n        return (\n          <tr class={classes} key={`key-full-row-${type}`}>\n            <td colspan={columnLength}>\n              <div\n                class={{ [tableFullRowClasses.innerFullRow]: isFixedToLeft }}\n                style={isFixedToLeft ? { width: `${tableWidth}px` } : {}}\n              >\n                <div class={tableFullRowClasses.innerFullElement}>{fullRowNode}</div>\n              </div>\n            </td>\n          </tr>\n        );\n      };\n\n      const columnLength = columns.value.length;\n      const dataLength = data.value?.length;\n      const trNodeList: TNodeReturnValue[] = [];\n\n      const properties = [\n        'classPrefix',\n        'ellipsisOverlayClassName',\n        'rowAndColFixedPosition',\n        'scroll',\n        'tableElm',\n        'tableContentElm',\n        'pagination',\n        'attach',\n      ];\n\n      const renderData = props.virtualConfig.isVirtualScroll.value ? props.virtualConfig.visibleData.value : data.value;\n\n      renderData?.forEach((row, rowIndex) => {\n        const rowKey = props.rowKey || 'id';\n        const rowValue = get(row, rowKey);\n        const trProps = {\n          ...pick(props, TABLE_PROPS),\n          rowKey,\n          row,\n          columns: columns.value,\n          rowIndex: row.VIRTUAL_SCROLL_INDEX || rowIndex,\n          dataLength,\n          skipSpansMap: skipSpansMap.value,\n          virtualConfig: props.virtualConfig,\n          active: props.activeRow?.includes(rowValue),\n          isHover: props.hoverRow === rowValue,\n          ...pick(props, properties),\n          // 遍历的同时，计算后面的节点，是否会因为合并单元格跳过渲染\n        };\n        if (props.onCellClick) {\n          trProps.onCellClick = props.onCellClick;\n        }\n\n        const trNode = (\n          <TrElement\n            v-slots={slots}\n            key={get(row, rowKey || 'id') || rowIndex}\n            {...trProps}\n            onRowMounted={props.handleRowMounted}\n          />\n        );\n        trNodeList.push(trNode);\n\n        // 执行展开行渲染\n        if (props.renderExpandedRow) {\n          const p = {\n            row,\n            index: rowIndex,\n            columns: columns.value,\n            tableWidth: props.tableWidth,\n            isWidthOverflow: props.isWidthOverflow,\n          };\n          const expandedContent = props.renderExpandedRow(p);\n          expandedContent && trNodeList.push(expandedContent);\n        }\n      });\n\n      const list = [\n        getFullRow(columnLength, 'first-full-row'),\n        ...trNodeList,\n        getFullRow(columnLength, 'last-full-row'),\n      ];\n\n      const isEmpty = !data.value?.length && !props.loading && !props.firstFullRow && !props.lastFullRow;\n\n      // 垫上隐藏的 tr 元素高度\n      const translate = `translateY(${props.virtualConfig?.translateY.value}px)`;\n      const posStyle = props.virtualConfig?.isVirtualScroll.value\n        ? {\n            transform: translate,\n            '-ms-transform': translate,\n            '-moz-transform': translate,\n            '-webkit-transform': translate,\n          }\n        : undefined;\n\n      return (\n        <tbody class={tbodyClasses.value} style={{ ...posStyle }}>\n          {isEmpty ? renderEmpty(columns.value) : list}\n        </tbody>\n      );\n    };\n  },\n});\n"],"names":["ROW_AND_TD_LISTENERS","concat","_toConsumableArray","ROW_LISTENERS","extendTableProps","defineComponent","name","props","_objectSpread","classPrefix","String","data","Array","columns","ellipsisOverlayClassName","rowAndColFixedPosition","Map","showColumnShadow","Object","tableElm","tableWidth","Number","isWidthOverflow","Boolean","virtualConfig","tableContentElm","handleRowMounted","Function","renderExpandedRow","firstFullRow","lastFullRow","activeRow","hoverRow","pick","baseTableProps","setup","_ref","slots","renderTNode","useTNodeJSX","_toRefs","toRefs","rowKey","rowspanAndColspan","_useConfig","useConfig","locale","t","globalConfig","_useClassName","useClassName","tableFullRowClasses","tableBaseClass","_useRowspanAndColspan","useRowspanAndColspan","skipSpansMap","tbodyClasses","computed","body","_data$value","_data$value2","_props$virtualConfig","_props$virtualConfig2","renderEmpty","bordered","_createVNode","emptyRow","base","length","empty","_defineProperty","innerFullRow","width","value","getFullRow","columnLength","type","tType","camelCase","fullRowNode","includes","isFixedToLeft","find","col","fixed","classes","innerFullElement","dataLength","trNodeList","properties","renderData","isVirtualScroll","visibleData","forEach","row","rowIndex","_props$activeRow","rowValue","get","trProps","TABLE_PROPS","VIRTUAL_SCROLL_INDEX","active","isHover","onCellClick","trNode","TrElement","_mergeProps","push","p","index","expandedContent","list","isEmpty","loading","translate","translateY","posStyle","transform"],"mappings":"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"}