{"version":3,"file":"tr.mjs","sources":["../../src/table/tr.tsx"],"sourcesContent":["import { defineComponent, PropType, SetupContext, h, computed, ref, reactive, toRefs, watch } from 'vue';\nimport isFunction from 'lodash/isFunction';\nimport upperFirst from 'lodash/upperFirst';\nimport isString from 'lodash/isString';\nimport pick from 'lodash/pick';\nimport get from 'lodash/get';\nimport { formatClassNames, formatRowAttributes, formatRowClassNames } from './utils';\nimport { getRowFixedStyles, getColumnFixedStyles } from './hooks/useFixed';\nimport useClassName from './hooks/useClassName';\nimport TEllipsis from './ellipsis';\nimport { BaseTableCellParams, TableRowData, RowspanColspan, TdPrimaryTableProps, TdBaseTableProps } from './type';\nimport baseTableProps from './base-table-props';\nimport useLazyLoad from './hooks/useLazyLoad';\nimport { RowAndColFixedPosition } from './interface';\nimport { getCellKey, SkipSpansValue } from './hooks/useRowspanAndColspan';\nimport { TooltipProps } from '../tooltip';\nimport { PaginationProps } from '..';\nimport { VirtualScrollConfig } from '../hooks/useVirtualScrollNew';\nimport { AttachNode } from '../common';\n\nexport interface RenderTdExtra {\n  rowAndColFixedPosition: RowAndColFixedPosition;\n  columnLength: number;\n  dataLength: number;\n  cellSpans: RowspanColspan;\n  cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n}\n\nexport interface RenderEllipsisCellParams {\n  cellNode: any;\n}\n\nexport type TrCommonProps = Pick<TdPrimaryTableProps, TrPropsKeys>;\n\nexport const TABLE_PROPS = [\n  'rowKey',\n  'rowClassName',\n  'columns',\n  'fixedRows',\n  'footData',\n  'rowAttributes',\n  'rowspanAndColspan',\n  'scroll',\n  'cellEmptyContent',\n  'pagination',\n  'attach',\n  'onCellClick',\n  'onRowClick',\n  'onRowDblclick',\n  'onRowMouseover',\n  'onRowMousedown',\n  'onRowMouseenter',\n  'onRowMouseleave',\n  'onRowMouseup',\n] as const;\n\nexport type TrPropsKeys = typeof TABLE_PROPS[number];\n\nexport interface TrProps extends TrCommonProps {\n  rowKey: string;\n  row: TableRowData;\n  rowIndex: number;\n  ellipsisOverlayClassName: string;\n  classPrefix: string;\n  dataLength: number;\n  rowAndColFixedPosition?: RowAndColFixedPosition;\n  skipSpansMap?: Map<string, SkipSpansValue>;\n  tableElm?: any;\n  // HTMLDivElement\n  tableContentElm?: any;\n  cellEmptyContent: TdBaseTableProps['cellEmptyContent'];\n  virtualConfig: VirtualScrollConfig;\n  attach?: AttachNode;\n}\n\nexport const ROW_LISTENERS = ['click', 'dblclick', 'mouseover', 'mousedown', 'mouseenter', 'mouseleave', 'mouseup'];\n\nexport function renderCell(\n  params: BaseTableCellParams<TableRowData>,\n  slots: SetupContext['slots'],\n  extra?: {\n    cellEmptyContent?: TdBaseTableProps['cellEmptyContent'];\n    pagination?: PaginationProps;\n  },\n) {\n  const { col, row, rowIndex } = params;\n  // support serial number column\n  if (col.colKey === 'serial-number') {\n    const { current, pageSize, defaultCurrent, defaultPageSize } = extra?.pagination || {};\n    const tCurrent = current || defaultCurrent;\n    const tPageSize = pageSize || defaultPageSize;\n    if (tPageSize && tCurrent) {\n      return tPageSize * (tCurrent - 1) + rowIndex + 1;\n    }\n    return rowIndex + 1;\n  }\n  if (isFunction(col.cell)) {\n    return col.cell(h, params);\n  }\n  if (slots[col.colKey]) {\n    return slots[col.colKey](params);\n  }\n  if (isString(col.cell) && slots[col.cell]) {\n    return slots[col.cell](params);\n  }\n  if (isFunction(col.render)) {\n    return col.render(h, { ...params, type: 'cell' });\n  }\n  const r = get(row, col.colKey);\n  // 0 和 false 属于正常可用之，不能使用兜底逻辑 cellEmptyContent\n  if (![undefined, '', null].includes(r)) return r;\n  // cellEmptyContent 作为空数据兜底显示，用户可自定义\n  if (extra?.cellEmptyContent) {\n    return isFunction(extra.cellEmptyContent) ? extra.cellEmptyContent(h, params) : extra.cellEmptyContent;\n  }\n  if (slots.cellEmptyContent) return slots.cellEmptyContent(params);\n  if (slots['cell-empty-content']) return slots['cell-empty-content'](params);\n  return r;\n}\n\n// 表格行组件\nexport default defineComponent({\n  name: 'XR',\n\n  props: {\n    row: Object as PropType<TableRowData>,\n    rowIndex: Number,\n    dataLength: Number,\n    ellipsisOverlayClassName: String,\n    classPrefix: String,\n    rowAndColFixedPosition: Map as PropType<RowAndColFixedPosition>,\n    // 合并单元格，是否跳过渲染\n    skipSpansMap: Map as PropType<TrProps['skipSpansMap']>,\n    virtualConfig: Object as PropType<TrProps['virtualConfig']>,\n    ...pick(baseTableProps, TABLE_PROPS),\n    // eslint-disable-next-line\n    tableElm: {},\n    // eslint-disable-next-line\n    tableContentElm: {},\n  },\n\n  emits: ['row-mounted'],\n\n  setup(props: TrProps, context: SetupContext) {\n    const { tableContentElm } = toRefs(props);\n    const trRef = ref(null);\n    const {\n      tdEllipsisClass,\n      tableBaseClass,\n      tableColFixedClasses,\n      tableRowFixedClasses,\n      tdAlignClasses,\n      tableDraggableClasses,\n    } = useClassName();\n    const trStyles = computed(() =>\n      getRowFixedStyles(\n        get(props.row, props.rowKey || 'id'),\n        props.rowIndex,\n        props.dataLength,\n        props.fixedRows,\n        props.rowAndColFixedPosition,\n        tableRowFixedClasses,\n      ),\n    );\n\n    const trAttributes = computed(\n      () => formatRowAttributes(props.rowAttributes, { row: props.row, rowIndex: props.rowIndex, type: 'body' }) || {},\n    );\n\n    const classes = computed(() => {\n      const customClasses = formatRowClassNames(\n        props.rowClassName,\n        { row: props.row, rowIndex: props.rowIndex, type: 'body' },\n        props.rowKey || 'id',\n      );\n      return [trStyles.value?.classes, customClasses].filter((v) => v);\n    });\n\n    const { hasLazyLoadHolder, tRowHeight } = useLazyLoad(\n      tableContentElm,\n      trRef,\n      reactive({ ...props.scroll, rowIndex: props.rowIndex }),\n    );\n\n    const getTrListeners = (row: TableRowData, rowIndex: number) => {\n      const trListeners: { [eventName: string]: (e: MouseEvent) => void } = {};\n      // add events to row\n      ROW_LISTENERS.forEach((eventName) => {\n        trListeners[`on${upperFirst(eventName)}`] = (e: MouseEvent) => {\n          const p = { e, row, index: rowIndex };\n          props[`onRow${upperFirst(eventName)}`]?.(p);\n        };\n      });\n      return trListeners;\n    };\n\n    watch([trRef], () => {\n      if (props.virtualConfig?.isVirtualScroll.value) {\n        context.emit('row-mounted', {\n          ref: trRef,\n          data: props.row,\n        });\n      }\n    });\n\n    function renderEllipsisCell(cellParams: BaseTableCellParams<TableRowData>, params: RenderEllipsisCellParams) {\n      const { cellNode } = params;\n      const { col, colIndex } = cellParams;\n      let content = isFunction(col.ellipsis) ? col.ellipsis(h, cellParams) : undefined;\n      if (typeof col.ellipsis === 'object' && isFunction(col.ellipsis.content)) {\n        content = col.ellipsis.content(h, cellParams);\n      }\n      let tooltipProps = {};\n      if (typeof col.ellipsis === 'object') {\n        tooltipProps = 'props' in col.ellipsis ? col.ellipsis.props : col.ellipsis || undefined;\n      }\n      const tableElement = props.tableElm as HTMLDivElement;\n      let placement: TooltipProps['placement'] = colIndex === 0 ? 'top-left' : 'top';\n      placement = colIndex === props.columns.length - 1 ? 'top-right' : placement;\n      return (\n        <TEllipsis\n          placement={placement}\n          attach={tableElement ? () => tableElement : undefined}\n          tooltipContent={content && (() => content)}\n          tooltipProps={tooltipProps}\n          overlayClassName={props.ellipsisOverlayClassName}\n          classPrefix={props.classPrefix}\n        >\n          {cellNode}\n        </TEllipsis>\n      );\n    }\n\n    function renderTd(params: BaseTableCellParams<TableRowData>, extra: RenderTdExtra) {\n      const { col, colIndex, rowIndex } = params;\n      const { cellSpans, dataLength, rowAndColFixedPosition } = extra;\n      const cellNode = renderCell(params, context.slots, {\n        cellEmptyContent: extra.cellEmptyContent,\n        pagination: props.pagination,\n      });\n      const tdStyles = getColumnFixedStyles(col, colIndex, rowAndColFixedPosition, tableColFixedClasses);\n      const customClasses = formatClassNames(col.className, { ...params, type: 'td' });\n      const classes = [\n        tdStyles.classes,\n        customClasses,\n        {\n          [tdEllipsisClass]: col.ellipsis,\n          [tableBaseClass.tdLastRow]: rowIndex + cellSpans.rowspan === dataLength,\n          [tableBaseClass.tdFirstCol]: colIndex === 0 && props.rowspanAndColspan,\n          [tdAlignClasses[col.align]]: col.align && col.align !== 'left',\n          // 标记可拖拽列\n          [tableDraggableClasses.handle]: col.colKey === 'drag',\n        },\n      ];\n      const onClick = (e: MouseEvent) => {\n        const p = { ...params, e };\n        if (col.stopPropagation) {\n          e.stopPropagation();\n        }\n        props.onCellClick?.(p);\n      };\n      const normalAttrs = isFunction(col.attrs) ? col.attrs({ ...params, type: 'td' }) : col.attrs;\n      const attrs = { ...normalAttrs, ...cellSpans };\n      return (\n        <td key={col.colKey || colIndex} class={classes} style={tdStyles.style} {...attrs} onClick={onClick}>\n          {col.ellipsis ? renderEllipsisCell(params, { cellNode }) : cellNode}\n        </td>\n      );\n    }\n\n    return () => {\n      const { columns, skipSpansMap, row, dataLength, rowAndColFixedPosition } = props;\n      const columVNodeList = columns?.map((col, colIndex) => {\n        const cellSpans: RowspanColspan = {};\n        const params = {\n          row,\n          col,\n          rowIndex: props.rowIndex,\n          colIndex,\n        };\n        let spanState = null;\n        if (props.skipSpansMap.size) {\n          const cellKey = getCellKey(row, props.rowKey, col.colKey, colIndex);\n          spanState = skipSpansMap.get(cellKey) || {};\n          spanState?.rowspan > 1 && (cellSpans.rowspan = spanState.rowspan);\n          spanState?.colspan > 1 && (cellSpans.colspan = spanState.colspan);\n          if (spanState.skipped) return null;\n        }\n        return renderTd(params, {\n          dataLength,\n          rowAndColFixedPosition,\n          columnLength: columns.length,\n          cellSpans,\n          cellEmptyContent: props.cellEmptyContent,\n        });\n      });\n      return (\n        <tr\n          ref={trRef}\n          {...trAttributes.value}\n          style={trStyles.value?.style}\n          class={classes.value}\n          {...getTrListeners(row, props.rowIndex)}\n        >\n          {hasLazyLoadHolder.value\n            ? [<td style={{ height: `${tRowHeight.value}px`, border: 'none' }} />]\n            : columVNodeList}\n        </tr>\n      );\n    };\n  },\n});\n"],"names":["_isVNode","isFunction","isString","type","name","row","rowIndex","dataLength","ellipsisOverlayClassName","classPrefix","rowAndColFixedPosition","skipSpansMap","virtualConfig","pick","tableContentElm","setup","get","ROW_LISTENERS","e","index","watch","context","ref","tooltipProps","placement","cellNode","col","colIndex","cellSpans","_createVNode","height","border"],"mappings":"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"}