{"version":3,"file":"index.mjs","sources":["../../../../../../../packages/vue-components/vc-table/src/Cell/index.tsx"],"sourcesContent":["import type { MouseEventHandler } from '@antdv/types';\nimport type { CSSProperties, VNodeArrayChildren } from 'vue';\nimport type {\n  AdditionalProps,\n  AlignType,\n  CellEllipsisType,\n  CellType,\n  ColumnType,\n  CustomizeComponent,\n  DataIndex,\n  DefaultRecordType,\n  RenderedCell,\n  TransformCellText,\n} from '../interface';\n\nimport { useInjectSlots } from '@antdv/components/table/src/context';\nimport {\n  addClass,\n  classNames,\n  customRenderSlot,\n  eagerComputed,\n  filterEmpty,\n  findDOMNode,\n  flattenChildren,\n  isValidElement,\n  removeClass,\n  warning,\n} from '@antdv/utils';\nimport {\n  computed,\n  defineComponent,\n  isVNode,\n  shallowRef,\n  Text,\n  watch,\n} from 'vue';\nimport { useInjectHover } from '../context/HoverContext';\nimport { useInjectSticky } from '../context/StickyContext';\nimport { INTERNAL_COL_DEFINE } from '../utils/legacyUtil';\nimport { getPathValue, validateValue } from '../utils/valueUtil';\n\n/** Check if cell is in hover range */\nfunction inHoverRange(cellStartRow: number, cellRowSpan: number, startRow: number, endRow: number) {\n  const cellEndRow = cellStartRow + cellRowSpan - 1;\n  return cellStartRow <= endRow && cellEndRow >= startRow;\n}\n\nfunction isRenderCell<RecordType = DefaultRecordType>(\n  data: RenderedCell<RecordType>,\n): data is RenderedCell<RecordType> {\n  return data && typeof data === 'object' && !Array.isArray(data) && !isVNode(data);\n}\n\nexport interface CellProps<RecordType = DefaultRecordType> {\n  prefixCls?: string;\n  record?: RecordType;\n  /** `column` index is the real show rowIndex */\n  index?: number;\n  /** the index of the record. For the render(value, record, renderIndex) */\n  renderIndex?: number;\n  dataIndex?: DataIndex;\n  customRender?: ColumnType<RecordType>['customRender'];\n  component?: CustomizeComponent;\n  colSpan?: number;\n  rowSpan?: number;\n  ellipsis?: CellEllipsisType;\n  align?: AlignType;\n\n  // Fixed\n  fixLeft?: number | false;\n  fixRight?: number | false;\n  firstFixLeft?: boolean;\n  lastFixLeft?: boolean;\n  firstFixRight?: boolean;\n  lastFixRight?: boolean;\n\n  // Additional\n  /** @private Used for `expandable` with nest tree */\n  appendNode?: any;\n\n  additionalProps?: AdditionalProps;\n\n  rowType?: 'header' | 'body' | 'footer';\n\n  isSticky?: boolean;\n\n  column?: ColumnType<RecordType>;\n\n  cellType?: 'header' | 'body';\n\n  transformCellText?: TransformCellText<RecordType>;\n}\nexport default defineComponent({\n  name: 'Cell',\n  props: [\n    'prefixCls',\n    'record',\n    'index',\n    'renderIndex',\n    'dataIndex',\n    'customRender',\n    'component',\n    'colSpan',\n    'rowSpan',\n    'fixLeft',\n    'fixRight',\n    'firstFixLeft',\n    'lastFixLeft',\n    'firstFixRight',\n    'lastFixRight',\n    'appendNode',\n    'additionalProps',\n    'ellipsis',\n    'align',\n    'rowType',\n    'isSticky',\n    'column',\n    'cellType',\n    'transformCellText',\n  ],\n  setup(props, { slots }) {\n    const contextSlots = useInjectSlots();\n    const { onHover, startRow, endRow } = useInjectHover();\n    const colSpan = computed(() => {\n      return (\n        props.colSpan\n        ?? props.additionalProps?.colSpan\n        ?? (props.additionalProps?.colspan as number)\n      );\n    });\n    const rowSpan = computed(() => {\n      return (\n        props.rowSpan\n        ?? props.additionalProps?.rowSpan\n        ?? (props.additionalProps?.rowspan as number)\n      );\n    });\n    const hovering = eagerComputed(() => {\n      const { index } = props;\n      return inHoverRange(index, rowSpan.value || 1, startRow.value, endRow.value);\n    });\n    const supportSticky = useInjectSticky();\n\n    // ====================== Hover =======================\n    const onMouseenter = (event: MouseEvent, mergedRowSpan: number) => {\n      const { record, index, additionalProps } = props;\n      if (record)\n        onHover(index, index + mergedRowSpan - 1);\n\n      additionalProps?.onMouseenter?.(event);\n    };\n\n    const onMouseleave: MouseEventHandler = (event) => {\n      const { record, additionalProps } = props;\n      if (record)\n        onHover(-1, -1);\n\n      additionalProps?.onMouseleave?.(event);\n    };\n    const getTitle = (vnodes: VNodeArrayChildren) => {\n      const vnode = filterEmpty(vnodes)[0];\n      if (isVNode(vnode)) {\n        if (vnode.type === Text)\n          return vnode.children;\n        else\n          return Array.isArray(vnode.children) ? getTitle(vnode.children) : undefined;\n      } else {\n        return vnode;\n      }\n    };\n    const hoverRef = shallowRef(null);\n    watch([hovering, () => props.prefixCls, hoverRef], () => {\n      const cellDom = findDOMNode(hoverRef.value);\n      if (!cellDom) return;\n      if (hovering.value)\n        addClass(cellDom, `${props.prefixCls}-cell-row-hover`);\n      else\n        removeClass(cellDom, `${props.prefixCls}-cell-row-hover`);\n    });\n    return () => {\n      const {\n        prefixCls,\n        record,\n        index,\n        renderIndex,\n        dataIndex,\n        customRender,\n        component: Component = 'td',\n        fixLeft,\n        fixRight,\n        firstFixLeft,\n        lastFixLeft,\n        firstFixRight,\n        lastFixRight,\n        appendNode = slots.appendNode?.(),\n        additionalProps = {},\n        ellipsis,\n        align,\n        rowType,\n        isSticky,\n        column = {},\n        cellType,\n      } = props;\n      const cellPrefixCls = `${prefixCls}-cell`;\n\n      // ==================== Child Node ====================\n      let cellProps: CellType;\n      let childNode;\n      let componentPropsCommonClassName;\n      const children = slots.default?.();\n      if (validateValue(children) || cellType === 'header') {\n        childNode = children;\n      } else {\n        const value = getPathValue(record, dataIndex);\n\n        // Customize render node\n        childNode = value;\n        if (customRender) {\n          const renderData = customRender({\n            text: value,\n            value,\n            record,\n            index,\n            renderIndex,\n            column: column.__originColumn__,\n          });\n\n          if (isRenderCell(renderData)) {\n            if (process.env.NODE_ENV !== 'production') {\n              warning(\n                false,\n                '`columns.customRender` return cell props is deprecated with perf issue, please use `customCell` instead.',\n              );\n            }\n            childNode = renderData.children;\n            cellProps = renderData.props;\n          } else {\n            childNode = renderData;\n          }\n        }\n\n        if (\n          !(INTERNAL_COL_DEFINE in column)\n          && cellType === 'body'\n          && contextSlots.value.bodyCell\n          && !column.slots?.customRender\n        ) {\n          const child = customRenderSlot(\n            contextSlots.value,\n            'bodyCell',\n            {\n              text: value,\n              value,\n              record,\n              index,\n              column: column.__originColumn__,\n            },\n            () => {\n              const fallback = childNode === undefined ? value : childNode;\n              return [\n                (typeof fallback === 'object' && isValidElement(fallback))\n                || typeof fallback !== 'object'\n                  ? fallback\n                  : null,\n              ];\n            },\n          );\n          childNode = flattenChildren(child as any);\n        }\n        /** maybe we should @deprecated */\n        if (props.transformCellText) {\n          childNode = props.transformCellText({\n            text: childNode,\n            record,\n            index,\n            column: column.__originColumn__,\n          });\n        }\n      }\n\n      // Not crash if final `childNode` is not validate VueNode\n      if (typeof childNode === 'object' && !Array.isArray(childNode) && !isVNode(childNode))\n        childNode = null;\n\n      if (ellipsis && (lastFixLeft || firstFixRight))\n        childNode = <span class={`${cellPrefixCls}-content`}>{childNode}</span>;\n\n      if (Array.isArray(childNode) && childNode.length === 1)\n        childNode = childNode[0];\n\n      const {\n        colSpan: cellColSpan,\n        rowSpan: cellRowSpan,\n        style: cellStyle,\n        class: cellClassName,\n        ...restCellProps\n      } = cellProps || {};\n      const mergedColSpan = (cellColSpan !== undefined ? cellColSpan : colSpan.value) ?? 1;\n      const mergedRowSpan = (cellRowSpan !== undefined ? cellRowSpan : rowSpan.value) ?? 1;\n\n      if (mergedColSpan === 0 || mergedRowSpan === 0)\n        return null;\n\n      // ====================== Fixed =======================\n      const fixedStyle: CSSProperties = {};\n      const isFixLeft = typeof fixLeft === 'number' && supportSticky.value;\n      const isFixRight = typeof fixRight === 'number' && supportSticky.value;\n\n      if (isFixLeft) {\n        fixedStyle.position = 'sticky';\n        fixedStyle.left = `${fixLeft}px`;\n      }\n      if (isFixRight) {\n        fixedStyle.position = 'sticky';\n\n        fixedStyle.right = `${fixRight}px`;\n      }\n\n      // ====================== Align =======================\n      const alignStyle: CSSProperties = {};\n      if (align)\n        alignStyle.textAlign = align;\n\n      // ====================== Render ======================\n      let title: string;\n      const ellipsisConfig = ellipsis === true ? { showTitle: true } : ellipsis;\n      if (ellipsisConfig && (ellipsisConfig.showTitle || rowType === 'header')) {\n        if (typeof childNode === 'string' || typeof childNode === 'number')\n          title = childNode.toString();\n        else if (isVNode(childNode))\n          title = getTitle([childNode]);\n      }\n      // AddEventListener Hover\n      watch([rowSpan, startRow, endRow], () => {\n        hoverRef.value?.setAttribute('class', classNames(\n          cellPrefixCls,\n          {\n            ...componentPropsCommonClassName,\n            [`${cellPrefixCls}-row-hover`]: !cellProps && hovering.value,\n          },\n          additionalProps.class,\n          cellClassName,\n        ));\n      });\n      componentPropsCommonClassName = {\n        [`${cellPrefixCls}-fix-left`]: isFixLeft && supportSticky.value,\n        [`${cellPrefixCls}-fix-left-first`]: firstFixLeft && supportSticky.value,\n        [`${cellPrefixCls}-fix-left-last`]: lastFixLeft && supportSticky.value,\n        [`${cellPrefixCls}-fix-right`]: isFixRight && supportSticky.value,\n        [`${cellPrefixCls}-fix-right-first`]: firstFixRight && supportSticky.value,\n        [`${cellPrefixCls}-fix-right-last`]: lastFixRight && supportSticky.value,\n        [`${cellPrefixCls}-ellipsis`]: ellipsis,\n        [`${cellPrefixCls}-with-append`]: appendNode,\n        [`${cellPrefixCls}-fix-sticky`]:\n          (isFixLeft || isFixRight) && isSticky && supportSticky.value,\n      };\n\n      const componentProps = {\n        title,\n        ...restCellProps,\n        ...additionalProps,\n        colSpan: mergedColSpan !== 1 ? mergedColSpan : null,\n        rowSpan: mergedRowSpan !== 1 ? mergedRowSpan : null,\n        class: classNames(\n          cellPrefixCls,\n          componentPropsCommonClassName,\n          additionalProps.class,\n          cellClassName,\n        ),\n        onMouseenter: (e: MouseEvent) => {\n          onMouseenter(e, mergedRowSpan);\n        },\n        onMouseleave,\n        style: [additionalProps.style, alignStyle, fixedStyle, cellStyle],\n      };\n\n      return (\n        <Component {...componentProps} ref={hoverRef}>\n          {appendNode}\n          {childNode}\n          {slots.dragHandle?.()}\n        </Component>\n      );\n    };\n  },\n});\n"],"names":["inHoverRange","cellStartRow","cellRowSpan","startRow","endRow","cellEndRow","isRenderCell","data","Array","isArray","isVNode","name","props","setup","slots","contextSlots","useInjectSlots","onHover","useInjectHover","colSpan","computed","additionalProps","colspan","rowSpan","rowspan","hovering","eagerComputed","index","value","supportSticky","useInjectSticky","onMouseenter","event","mergedRowSpan","record","onMouseleave","getTitle","vnodes","vnode","filterEmpty","type","Text","children","undefined","hoverRef","shallowRef","watch","prefixCls","cellDom","findDOMNode","addClass","removeClass","renderIndex","dataIndex","customRender","component","Component","fixLeft","fixRight","firstFixLeft","lastFixLeft","firstFixRight","lastFixRight","appendNode","ellipsis","align","rowType","isSticky","column","cellType","cellPrefixCls","cellProps","childNode","componentPropsCommonClassName","default","validateValue","getPathValue","renderData","text","__originColumn__","process","env","NODE_ENV","warning","INTERNAL_COL_DEFINE","bodyCell","child","customRenderSlot","fallback","isValidElement","flattenChildren","transformCellText","_childNode","_createVNode","length","cellColSpan","style","cellStyle","class","cellClassName","restCellProps","mergedColSpan","fixedStyle","isFixLeft","isFixRight","position","left","right","alignStyle","textAlign","title","ellipsisConfig","showTitle","toString","setAttribute","classNames","componentProps","e","dragHandle"],"mappings":"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"}