{"version":3,"file":"render-helper.mjs","sources":["../../../../../../../packages/components/table/src/table-body/render-helper.ts"],"sourcesContent":["// @ts-nocheck\nimport { computed, h, inject } from 'vue'\nimport { useNamespace } from '@bigin/hooks'\nimport { getRowIdentity } from '../util'\nimport { TABLE_INJECTION_KEY } from '../tokens'\nimport useEvents from './events-helper'\nimport useStyles from './styles-helper'\nimport type { TableBodyProps } from './defaults'\nimport type { RenderRowData, TableProps, TreeNode } from '../table/defaults'\n\nfunction useRender<T>(props: Partial<TableBodyProps<T>>) {\n  const parent = inject(TABLE_INJECTION_KEY)\n  const ns = useNamespace('table')\n  const {\n    handleDoubleClick,\n    handleClick,\n    handleContextMenu,\n    handleMouseEnter,\n    handleMouseLeave,\n    handleCellMouseEnter,\n    handleCellMouseLeave,\n    tooltipContent,\n    tooltipTrigger,\n  } = useEvents(props)\n  const {\n    getRowStyle,\n    getRowClass,\n    getCellStyle,\n    getCellClass,\n    getSpan,\n    getColspanRealWidth,\n  } = useStyles(props)\n  const firstDefaultColumnIndex = computed(() => {\n    return props.store.states.columns.value.findIndex(\n      ({ type }) => type === 'default'\n    )\n  })\n  const getKeyOfRow = (row: T, index: number) => {\n    const rowKey = (parent.props as Partial<TableProps<T>>).rowKey\n    if (rowKey) {\n      return getRowIdentity(row, rowKey)\n    }\n    return index\n  }\n  const rowRender = (\n    row: T,\n    $index: number,\n    treeRowData?: TreeNode,\n    expanded = false\n  ) => {\n    const { tooltipEffect, store } = props\n    const { indent, columns } = store.states\n    const rowClasses = getRowClass(row, $index)\n    let display = true\n    if (treeRowData) {\n      rowClasses.push(ns.em('row', `level-${treeRowData.level}`))\n      display = treeRowData.display\n    }\n    const displayStyle = display\n      ? null\n      : {\n          display: 'none',\n        }\n    return h(\n      'tr',\n      {\n        style: [displayStyle, getRowStyle(row, $index)],\n        class: rowClasses,\n        key: getKeyOfRow(row, $index),\n        onDblclick: ($event) => handleDoubleClick($event, row),\n        onClick: ($event) => handleClick($event, row),\n        onContextmenu: ($event) => handleContextMenu($event, row),\n        onMouseenter: () => handleMouseEnter($index),\n        onMouseleave: handleMouseLeave,\n      },\n      columns.value.map((column, cellIndex) => {\n        const { rowspan, colspan } = getSpan(row, column, $index, cellIndex)\n        if (!rowspan || !colspan) {\n          return null\n        }\n        const columnData = { ...column }\n        columnData.realWidth = getColspanRealWidth(\n          columns.value,\n          colspan,\n          cellIndex\n        )\n        const data: RenderRowData<T> = {\n          store: props.store,\n          _self: props.context || parent,\n          column: columnData,\n          row,\n          $index,\n          cellIndex,\n          expanded,\n        }\n        if (cellIndex === firstDefaultColumnIndex.value && treeRowData) {\n          data.treeNode = {\n            indent: treeRowData.level * indent.value,\n            level: treeRowData.level,\n          }\n          if (typeof treeRowData.expanded === 'boolean') {\n            data.treeNode.expanded = treeRowData.expanded\n            if ('loading' in treeRowData) {\n              data.treeNode.loading = treeRowData.loading\n            }\n            if ('noLazyChildren' in treeRowData) {\n              data.treeNode.noLazyChildren = treeRowData.noLazyChildren\n            }\n          }\n        }\n        const baseKey = `${$index},${cellIndex}`\n        const patchKey = columnData.columnKey || columnData.rawColumnKey || ''\n        const tdChildren = cellChildren(cellIndex, column, data)\n        return h(\n          'td',\n          {\n            style: getCellStyle($index, cellIndex, row, column),\n            class: getCellClass($index, cellIndex, row, column),\n            key: `${patchKey}${baseKey}`,\n            rowspan,\n            colspan,\n            onMouseenter: ($event) =>\n              handleCellMouseEnter($event, row, tooltipEffect),\n            onMouseleave: handleCellMouseLeave,\n          },\n          [tdChildren]\n        )\n      })\n    )\n  }\n  const cellChildren = (cellIndex, column, data) => {\n    return column.renderCell(data)\n  }\n\n  const wrappedRowRender = (row: T, $index: number) => {\n    const store = props.store\n    const { isRowExpanded, assertRowKey } = store\n    const { treeData, lazyTreeNodeMap, childrenColumnName, rowKey } =\n      store.states\n    const columns = store.states.columns.value\n    const hasExpandColumn = columns.some(({ type }) => type === 'expand')\n    if (hasExpandColumn) {\n      const expanded = isRowExpanded(row)\n      const tr = rowRender(row, $index, undefined, expanded)\n      const renderExpanded = parent.renderExpanded\n      if (expanded) {\n        if (!renderExpanded) {\n          console.error('[BiginUi Error]renderExpanded is required.')\n          return tr\n        }\n        // Use a matrix to avoid modifying $index\n        return [\n          [\n            tr,\n            h(\n              'tr',\n              {\n                key: `expanded-row__${tr.key as string}`,\n              },\n              [\n                h(\n                  'td',\n                  {\n                    colspan: columns.length,\n                    class: `${ns.e('cell')} ${ns.e('expanded-cell')}`,\n                  },\n                  [renderExpanded({ row, $index, store, expanded })]\n                ),\n              ]\n            ),\n          ],\n        ]\n      } else {\n        // Use a two dimensional array avoid modifying $index\n        return [[tr]]\n      }\n    } else if (Object.keys(treeData.value).length) {\n      assertRowKey()\n      const key = getRowIdentity(row, rowKey.value)\n      let cur = treeData.value[key]\n      let treeRowData = null\n      if (cur) {\n        treeRowData = {\n          expanded: cur.expanded,\n          level: cur.level,\n          display: true,\n        }\n        if (typeof cur.lazy === 'boolean') {\n          if (typeof cur.loaded === 'boolean' && cur.loaded) {\n            treeRowData.noLazyChildren = !(cur.children && cur.children.length)\n          }\n          treeRowData.loading = cur.loading\n        }\n      }\n      const tmp = [rowRender(row, $index, treeRowData)]\n      if (cur) {\n        let i = 0\n        const traverse = (children, parent) => {\n          if (!(children && children.length && parent)) return\n          children.forEach((node) => {\n            const innerTreeRowData = {\n              display: parent.display && parent.expanded,\n              level: parent.level + 1,\n              expanded: false,\n              noLazyChildren: false,\n              loading: false,\n            }\n            const childKey = getRowIdentity(node, rowKey.value)\n            if (childKey === undefined || childKey === null) {\n              throw new Error('For nested data item, row-key is required.')\n            }\n            cur = { ...treeData.value[childKey] }\n            if (cur) {\n              innerTreeRowData.expanded = cur.expanded\n              cur.level = cur.level || innerTreeRowData.level\n              cur.display = !!(cur.expanded && innerTreeRowData.display)\n              if (typeof cur.lazy === 'boolean') {\n                if (typeof cur.loaded === 'boolean' && cur.loaded) {\n                  innerTreeRowData.noLazyChildren = !(\n                    cur.children && cur.children.length\n                  )\n                }\n                innerTreeRowData.loading = cur.loading\n              }\n            }\n            i++\n            tmp.push(rowRender(node, $index + i, innerTreeRowData))\n            if (cur) {\n              const nodes =\n                lazyTreeNodeMap.value[childKey] ||\n                node[childrenColumnName.value]\n              traverse(nodes, cur)\n            }\n          })\n        }\n        cur.display = true\n        const nodes =\n          lazyTreeNodeMap.value[key] || row[childrenColumnName.value]\n        traverse(nodes, cur)\n      }\n      return tmp\n    } else {\n      return rowRender(row, $index, undefined)\n    }\n  }\n\n  return {\n    wrappedRowRender,\n    tooltipContent,\n    tooltipTrigger,\n  }\n}\n\nexport default useRender\n"],"names":["parent","nodes"],"mappings":"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"}