{"version":3,"file":"base-table.mjs","sources":["../../../components/table/base-table.tsx"],"sourcesContent":["import { computed, defineComponent, SetupContext, ref, nextTick, PropType, watch, onMounted, toRefs } from 'vue';\nimport { pick, get, isFunction, throttle } from 'lodash-es';\nimport props from './base-table-props';\nimport useTableHeader from './hooks/useTableHeader';\nimport useColumnResize from './hooks/useColumnResize';\nimport useFixed from './hooks/useFixed';\nimport usePagination from './hooks/usePagination';\nimport {\n  useConfig,\n  useTNodeJSX,\n  useVirtualScrollNew,\n  useElementLazyRender,\n  useEventForward,\n} from '@tdesign/shared-hooks';\nimport useAffix from './hooks/useAffix';\nimport Loading from '../loading';\nimport TBody, { extendTableProps } from './components/tbody';\nimport { BaseTableProps } from './types';\n\nimport useStyle, { formatCSSUnit } from './hooks/useStyle';\nimport useClassName from './hooks/useClassName';\n\nimport { Affix } from '../affix';\nimport { ROW_LISTENERS } from './components/tr';\nimport THead from './components/thead';\nimport TFoot from './components/tfoot';\nimport { getAffixProps } from './utils';\nimport { Styles, ComponentScrollToElementParams } from '../common';\nimport { getIEVersion } from '@tdesign/common-js/utils/helper';\nimport { BaseTableInstanceFunctions } from './type';\nimport log from '@tdesign/common-js/log/index';\nimport { useRowHighlight } from './hooks/useRowHighlight';\nimport useHoverKeyboardEvent from './hooks/useHoverKeyboardEvent';\n\nexport const BASE_TABLE_EVENTS = ['page-change', 'cell-click', 'scroll', 'scrollX', 'scrollY'];\nexport const BASE_TABLE_ALL_EVENTS = ROW_LISTENERS.map((t) => `row-${t}`).concat(BASE_TABLE_EVENTS);\n\nexport interface TableListeners {\n  [key: string]: Function;\n}\n\nexport default defineComponent({\n  name: 'TBaseTable',\n  props: {\n    ...props,\n    /**\n     * 渲染展开行，非公开属性，请勿在业务中使用\n     */\n    renderExpandedRow: Function as PropType<BaseTableProps['renderExpandedRow']>,\n    onLeafColumnsChange: Function as PropType<BaseTableProps['onLeafColumnsChange']>,\n    thDraggable: Boolean,\n  },\n  emits: ['show-element-change', 'update:activeRowKeys'],\n  setup(props: BaseTableProps, context: SetupContext) {\n    const { lazyLoad } = toRefs(props);\n    const renderTNode = useTNodeJSX();\n    const tableRef = ref<HTMLDivElement>();\n    const tableElmRef = ref<HTMLTableElement>();\n    const tableBodyRef = ref<InstanceType<typeof TBody>>();\n    const bottomContentRef = ref<HTMLDivElement>();\n    const tableFootHeight = ref(0);\n    const { classPrefix, virtualScrollClasses, tableLayoutClasses, tableBaseClass, tableColFixedClasses } =\n      useClassName();\n    // 表格基础样式类\n    const { tableClasses, sizeClassNames, tableContentStyles, tableElementStyles } = useStyle(props);\n    const { globalConfig } = useConfig('table', props.locale);\n    const { isMultipleHeader, spansAndLeafNodes, thList } = useTableHeader(props);\n    const finalColumns = computed(() => spansAndLeafNodes.value?.leafColumns || props.columns);\n    const tableSize = computed(() => props.size ?? globalConfig.value.size);\n\n    const { showElement } = useElementLazyRender(tableRef, lazyLoad);\n\n    // 吸附相关ref 用来做视图resize后重新定位\n    const paginationAffixRef = ref();\n    const horizontalScrollAffixRef = ref();\n    const headerTopAffixRef = ref();\n    const footerBottomAffixRef = ref();\n\n    // 固定表头和固定列逻辑\n    const {\n      scrollbarWidth,\n      tableWidth,\n      tableElmWidth,\n      tableContentRef,\n      isFixedHeader,\n      isWidthOverflow,\n      isFixedColumn,\n      thWidthList,\n      showColumnShadow,\n      rowAndColFixedPosition,\n      setData,\n      refreshTable,\n      setTableElmWidth,\n      emitScrollEvent,\n      setUseFixedTableElmRef,\n      updateColumnFixedShadow,\n      getThWidthList,\n      updateThWidthList,\n      addTableResizeObserver,\n      updateTableAfterColumnResize,\n    } = useFixed(props, context, finalColumns, {\n      paginationAffixRef,\n      horizontalScrollAffixRef,\n      headerTopAffixRef,\n      footerBottomAffixRef,\n    });\n\n    // 1. 表头吸顶；2. 表尾吸底；3. 底部滚动条吸底；4. 分页器吸底\n    const {\n      affixHeaderRef,\n      affixFooterRef,\n      horizontalScrollbarRef,\n      paginationRef,\n      showAffixHeader,\n      showAffixFooter,\n      showAffixPagination,\n      onHorizontalScroll,\n      setTableContentRef,\n      updateAffixHeaderOrFooter,\n    } = useAffix(props);\n\n    const { dataSource, innerPagination, isPaginateData, renderPagination } = usePagination(\n      props,\n      context,\n      tableContentRef,\n    );\n\n    // 列宽拖拽逻辑\n    const columnResizeParams = useColumnResize({\n      isWidthOverflow,\n      tableContentRef,\n      showColumnShadow,\n      getThWidthList,\n      updateThWidthList,\n      setTableElmWidth,\n      updateTableAfterColumnResize,\n      onColumnResizeChange: props.onColumnResizeChange,\n    });\n    const { resizeLineRef, resizeLineStyle, setEffectColMap } = columnResizeParams;\n\n    const dynamicBaseTableClasses = computed(() => [\n      tableClasses.value,\n      {\n        [tableBaseClass.headerFixed]: isFixedHeader.value,\n        [tableBaseClass.columnFixed]: isFixedColumn.value,\n        [tableBaseClass.widthOverflow]: isWidthOverflow.value,\n        [tableBaseClass.multipleHeader]: isMultipleHeader.value,\n        [tableColFixedClasses.leftShadow]: showColumnShadow.left,\n        [tableColFixedClasses.rightShadow]: showColumnShadow.right,\n        [tableBaseClass.columnResizableTable]: props.resizable,\n        [`${classPrefix}-table__row--active-${props.activeRowType}`]: props.activeRowType,\n      },\n    ]);\n\n    const tableElmClasses = computed(() => [[tableLayoutClasses[props.tableLayout]]]);\n\n    const showRightDivider = computed(\n      () =>\n        props.bordered &&\n        isFixedHeader.value &&\n        ((isMultipleHeader.value && isWidthOverflow.value) || !isMultipleHeader.value),\n    );\n\n    const dividerBottom = computed(() => {\n      if (!props.bordered) return 0;\n      const bottomRect = bottomContentRef.value?.getBoundingClientRect();\n      const paginationRect = paginationRef.value?.getBoundingClientRect();\n      return (bottomRect?.height || 0) + (paginationRect?.height || 0);\n    });\n\n    // 行高亮\n    const { tActiveRow, onHighlightRow, addHighlightKeyboardListener, removeHighlightKeyboardListener } =\n      useRowHighlight(props, tableRef);\n\n    const {\n      hoverRow,\n      needKeyboardRowHover,\n      clearHoverRow,\n      addRowHoverKeyboardListener,\n      removeRowHoverKeyboardListener,\n      tableRefTabIndex,\n    } = useHoverKeyboardEvent(props, tableRef);\n\n    watch(tableElmRef, () => {\n      setUseFixedTableElmRef(tableElmRef.value);\n    });\n\n    watch(\n      () => [props.data, dataSource],\n      () => {\n        setData(isPaginateData.value ? dataSource.value : props.data);\n      },\n    );\n\n    watch(\n      spansAndLeafNodes,\n      () => {\n        props.onLeafColumnsChange?.(spansAndLeafNodes.value.leafColumns);\n        setEffectColMap(spansAndLeafNodes.value.leafColumns, null);\n      },\n      { immediate: true },\n    );\n\n    const onFixedChange = () => {\n      nextTick(() => {\n        onHorizontalScroll();\n        updateAffixHeaderOrFooter();\n      });\n    };\n\n    const syncThWidthList = throttle(() => {\n      updateThWidthList(getThWidthList('calculate'));\n    });\n\n    // 虚拟滚动相关数据\n    const virtualScrollParams = computed(() => ({\n      data: props.data,\n      // 传递 fixedRows 的配置\n      scroll: { ...props.scroll, fixedRows: props.fixedRows },\n    }));\n    const virtualConfig = useVirtualScrollNew(tableContentRef, virtualScrollParams);\n\n    let lastScrollY = -1;\n    const onInnerVirtualScroll = (e: WheelEvent) => {\n      const target = (e.target || e.srcElement) as HTMLElement;\n      const top = target.scrollTop;\n      // 排除横向滚动触发的纵向虚拟滚动计算\n      if (lastScrollY !== top) {\n        virtualConfig.isVirtualScroll.value && virtualConfig.handleScroll();\n      } else {\n        lastScrollY = -1;\n        updateColumnFixedShadow(target);\n      }\n      lastScrollY = top;\n      emitScrollEvent(e);\n      if (props.tableLayout === 'auto') {\n        syncThWidthList();\n      }\n    };\n\n    // used for top margin\n    const getTFootHeight = () => {\n      if (!tableElmRef.value) return;\n      tableFootHeight.value = tableElmRef.value.querySelector('tfoot')?.getBoundingClientRect().height;\n    };\n\n    // 对外暴露方法，修改时需谨慎（expose）\n    const scrollColumnIntoView: BaseTableInstanceFunctions['scrollColumnIntoView'] = (colKey: string) => {\n      if (!tableContentRef.value) return;\n      const thDom = tableContentRef.value.querySelector(`th[data-colkey=\"${colKey}\"]`);\n      const fixedThDom = tableContentRef.value.querySelectorAll('th.t-table__cell--fixed-left');\n      let totalWidth = 0;\n      for (let i = 0, len = fixedThDom.length; i < len; i++) {\n        totalWidth += fixedThDom[i].getBoundingClientRect().width;\n      }\n      const domRect = thDom.getBoundingClientRect();\n      const contentRect = tableContentRef.value.getBoundingClientRect();\n      const distance = domRect.left - contentRect.left - totalWidth;\n      if (tableContentRef.value.scrollTo) {\n        tableContentRef.value.scrollTo({ left: distance, behavior: 'smooth' });\n      } else {\n        tableContentRef.value.scrollLeft = distance;\n      }\n    };\n\n    watch(tableContentRef, () => {\n      setTableContentRef(tableContentRef.value);\n      // auto 布局下，初始化表头列宽，避免 affix 表头列宽不对齐\n      if (props.tableLayout === 'auto') {\n        syncThWidthList();\n      }\n    });\n\n    // 应该有多种情况下需要更新 foot 高度\n    // 原方案只监听 tableElmRef，但是可能有异步渲染的情况，footer 的渲染晚于 dom 引用的产生\n    // 加入 timeout，避免渲染延迟导致的高度获取失败\n    watch(\n      () => [tableElmRef.value, props.footData, props.footerSummary, props.columns],\n      () => {\n        const timer = setTimeout(() => {\n          getTFootHeight();\n          clearTimeout(timer);\n        }, 0);\n      },\n    );\n\n    watch(tableRef, (tableRef) => {\n      addTableResizeObserver(tableRef);\n    });\n\n    onMounted(() => {\n      getTFootHeight();\n      setTableContentRef(tableContentRef.value);\n      addTableResizeObserver(tableRef.value);\n    });\n\n    const onTableFocus = () => {\n      props.activeRowType && addHighlightKeyboardListener();\n      needKeyboardRowHover.value && addRowHoverKeyboardListener();\n    };\n\n    const onTableBlur = () => {\n      props.activeRowType && removeHighlightKeyboardListener();\n      needKeyboardRowHover.value && removeRowHoverKeyboardListener();\n    };\n\n    const onInnerRowClick: BaseTableProps['onRowClick'] = (ctx) => {\n      props.onRowClick?.(ctx);\n      props.activeRowType && onHighlightRow(ctx);\n      needKeyboardRowHover.value && clearHoverRow();\n    };\n\n    watch(\n      [showElement],\n      ([showElement]) => {\n        context.emit('show-element-change', showElement);\n      },\n      { immediate: true },\n    );\n\n    const tableData = computed(() => (isPaginateData.value ? dataSource.value : props.data));\n\n    const scrollToElement = (params: ComponentScrollToElementParams) => {\n      let { index } = params;\n      if (!index && index !== 0) {\n        if (!params.key) {\n          log.error('Table', 'scrollToElement: one of `index` or `key` must exist.');\n          return;\n        }\n        index = tableData.value?.findIndex((item) => get(item, props.rowKey) === params.key);\n        if (index < 0) {\n          log.error('Table', `${params.key} does not exist in data, check \\`rowKey\\` or \\`data\\` please.`);\n        }\n      }\n      if (virtualConfig.isVirtualScroll.value) {\n        virtualConfig.scrollToElement({ ...params, index: index + 1 });\n      } else {\n        // 执行普通的滚动\n        // 获取 tbody\n        const el = tableBodyRef.value?.$el as HTMLElement | undefined;\n        const row = el?.children?.[index] as HTMLElement;\n        if (row) {\n          const { offsetTop } = row;\n          const scrollTop = tableContentRef.value.scrollTop;\n          const scrollHeight = offsetTop - scrollTop - (params.top ?? 0);\n          // 实现偏移量的支持\n          tableContentRef.value.scrollBy({ top: scrollHeight, behavior: params.behavior ?? 'auto' });\n        }\n      }\n    };\n\n    context.expose({\n      refreshTable,\n      scrollColumnIntoView,\n      scrollToElement,\n    });\n\n    return () => {\n      if (!showElement.value) {\n        return <div ref={tableRef}></div>;\n      }\n\n      const data = isPaginateData.value ? dataSource.value : props.data;\n      const columns = spansAndLeafNodes?.value.leafColumns || props.columns;\n\n      const columnResizable = props.allowResizeColumnWidth ?? props.resizable;\n      if (columnResizable && props.tableLayout === 'auto') {\n        log.warn(\n          'Table',\n          'table-layout can not be `auto`, cause you are using column resizable, set `table-layout: fixed` please.',\n        );\n      }\n\n      const defaultColWidth = props.tableLayout === 'fixed' && isWidthOverflow.value ? '100px' : undefined;\n\n      const renderColGroup = (isAffixHeader = true) => (\n        <colgroup>\n          {columns.map((col) => {\n            const style: Styles = {\n              width:\n                formatCSSUnit(\n                  (isAffixHeader || columnResizable ? thWidthList.value[col.colKey] : undefined) || col.width,\n                ) || defaultColWidth,\n            };\n            if (col.minWidth) {\n              style.minWidth = formatCSSUnit(col.minWidth);\n            }\n            // 没有设置任何宽度的场景下，需要保留表格正常显示的最小宽度，否则会出现因宽度过小的抖动问题\n            if (!style.width && !col.minWidth && props.tableLayout === 'fixed') {\n              style.minWidth = '80px';\n            }\n            return <col key={col.colKey} style={style}></col>;\n          })}\n        </colgroup>\n      );\n\n      const renderAffixedHeader = () => {\n        if (props.showHeader === false) return null;\n\n        const affixHeaderEvents = useEventForward(getAffixProps(props.headerAffixedTop), {\n          onFixedChange: onFixedChange,\n        });\n\n        return (\n          !!(virtualConfig.isVirtualScroll.value || props.headerAffixedTop) &&\n          (props.headerAffixedTop ? (\n            <Affix ref={headerTopAffixRef} offsetTop={0} {...affixHeaderEvents.value}>\n              {affixHeaderWithWrap}\n            </Affix>\n          ) : (\n            isFixedHeader.value && affixHeaderWithWrap\n          ))\n        );\n      };\n\n      const renderAffixedHorizontalScrollbar = () => (\n        <Affix\n          offsetBottom={0}\n          {...getAffixProps(props.horizontalScrollAffixedBottom)}\n          style={{ marginTop: `-${scrollbarWidth.value * 2}px` }}\n          ref={horizontalScrollAffixRef}\n        >\n          <div\n            ref={horizontalScrollbarRef}\n            class={['scrollbar', tableBaseClass.obviousScrollbar]}\n            style={{\n              width: `${tableWidth.value}px`,\n              overflow: 'auto',\n              opacity: Number(showAffixFooter.value),\n            }}\n          >\n            <div style={{ width: `${tableElmWidth.value}px`, height: '5px' }}></div>\n          </div>\n        </Affix>\n      );\n\n      const headProps = {\n        isFixedHeader: isFixedHeader.value,\n        rowAndColFixedPosition: rowAndColFixedPosition.value,\n        isMultipleHeader: isMultipleHeader.value,\n        bordered: props.bordered,\n        maxHeight: props.maxHeight,\n        height: props.height,\n        spansAndLeafNodes: spansAndLeafNodes.value,\n        thList: thList.value,\n        thWidthList: thWidthList.value,\n        resizable: props.resizable,\n        columnResizeParams,\n        classPrefix: classPrefix,\n        ellipsisOverlayClassName: tableSize.value !== 'medium' ? sizeClassNames[tableSize.value] : '',\n        attach: props.attach,\n        showColumnShadow: showColumnShadow,\n        thDraggable: props.thDraggable,\n      };\n\n      /**\n       * Affixed Header\n       */\n      // IE 浏览器需要遮挡 header 吸顶滚动条，要减去 getBoundingClientRect.height 的滚动条高度 4 像素\n      const IEHeaderWrap = getIEVersion() <= 11 ? 4 : 0;\n      const barWidth = isWidthOverflow.value ? scrollbarWidth.value : 0;\n      const affixHeaderHeight = ref((affixHeaderRef.value?.getBoundingClientRect().height || 0) - IEHeaderWrap);\n      // 等待表头渲染完成后再更新高度，有可能列变动带来多级表头的高度变化，错误高度会导致滚动条显示\n      const timer = setTimeout(() => {\n        affixHeaderHeight.value = (affixHeaderRef.value?.getBoundingClientRect().height || 0) - IEHeaderWrap;\n        clearTimeout(timer);\n      }, 0);\n      const affixHeaderWrapHeight = computed(() => affixHeaderHeight.value - barWidth);\n      // 两类场景：1. 虚拟滚动，永久显示表头，直到表头消失在可视区域； 2. 表头吸顶，根据滚动情况判断是否显示吸顶表头\n      const headerOpacity = props.headerAffixedTop ? Number(showAffixHeader.value) : 1;\n      const affixHeaderWrapHeightStyle = computed(() => {\n        return {\n          width: `${tableWidth.value}px`,\n          height: `${affixHeaderWrapHeight.value}px`,\n          opacity: headerOpacity,\n        };\n      });\n      // 多级表头左边线缺失\n      const affixedLeftBorder = props.bordered ? 1 : 0;\n      const affixedHeader = Boolean(\n        (props.headerAffixedTop || virtualConfig.isVirtualScroll.value) && tableWidth.value,\n      ) && (\n        <div\n          ref={affixHeaderRef}\n          style={{\n            width: `${tableWidth.value - affixedLeftBorder}px`,\n            opacity: Number(showAffixHeader.value),\n          }}\n          class={[\n            'scrollbar',\n            {\n              [tableBaseClass.affixedHeaderElm]: props.headerAffixedTop || virtualConfig.isVirtualScroll.value,\n            },\n          ]}\n        >\n          <table\n            class={tableElmClasses.value}\n            style={{ ...tableElementStyles.value, width: `${tableElmWidth.value}px` }}\n          >\n            {renderColGroup(true)}\n            <THead v-slots={context.slots} {...headProps} />\n          </table>\n        </div>\n      );\n\n      // 添加这一层，是为了隐藏表头的横向滚动条。如果以后不需要照顾 IE 10 以下的项目，则可直接移除这一层\n      // 彼时，可更为使用 CSS 样式中的 .hideScrollbar()\n      const affixHeaderWithWrap = (\n        <div class={tableBaseClass.affixedHeaderWrap} style={affixHeaderWrapHeightStyle.value}>\n          {affixedHeader}\n        </div>\n      );\n\n      /**\n       * Affixed Footer\n       */\n      let marginScrollbarWidth = isWidthOverflow.value ? scrollbarWidth.value : 0;\n      if (props.bordered) {\n        marginScrollbarWidth += 1;\n      }\n      // Hack: Affix 组件，marginTop 临时使用 负 margin 定位位置\n      const showFooter = Boolean(virtualConfig.isVirtualScroll.value || props.footerAffixedBottom);\n      const hasFooter = props.footData?.length || props.footerSummary || context.slots['footerSummary'];\n      const affixFooterEvents = useEventForward(getAffixProps(props.footerAffixedBottom), {\n        onFixedChange: onFixedChange,\n      });\n      const affixedFooter = Boolean(showFooter && hasFooter && tableWidth.value) && (\n        <Affix\n          ref={footerBottomAffixRef}\n          class={tableBaseClass.affixedFooterWrap}\n          offsetBottom={marginScrollbarWidth || 0}\n          style={{ marginTop: `${-1 * ((tableFootHeight.value ?? 0) + marginScrollbarWidth)}px` }}\n          {...affixFooterEvents.value}\n        >\n          <div\n            ref={affixFooterRef}\n            style={{ width: `${tableWidth.value - affixedLeftBorder}px`, opacity: Number(showAffixFooter.value) }}\n            class={[\n              'scrollbar',\n              {\n                [tableBaseClass.affixedFooterElm]: props.footerAffixedBottom || virtualConfig.isVirtualScroll.value,\n              },\n            ]}\n          >\n            <table\n              class={tableElmClasses.value}\n              style={{ ...tableElementStyles.value, width: `${tableElmWidth.value}px` }}\n            >\n              {/* 此处和 Vue2 不同，Vue3 里面必须每一处单独写 <colgroup> */}\n              {renderColGroup(true)}\n              <TFoot\n                rowKey={props.rowKey}\n                v-slots={context.slots}\n                isFixedHeader={isFixedHeader.value}\n                rowAndColFixedPosition={rowAndColFixedPosition.value}\n                footData={props.footData}\n                columns={spansAndLeafNodes.value.leafColumns}\n                rowAttributes={props.rowAttributes}\n                rowClassName={props.rowClassName}\n                thWidthList={thWidthList.value}\n                footerSummary={props.footerSummary}\n                rowspanAndColspanInFooter={props.rowspanAndColspanInFooter}\n              ></TFoot>\n            </table>\n          </div>\n        </Affix>\n      );\n\n      // 通过 translate 撑开虚拟滚动的高度，应该是内容高度加上表头和表尾的高度\n      const translate = `translate(0, ${\n        virtualConfig.scrollHeight.value + (tableFootHeight.value ?? 0) + (affixHeaderHeight.value ?? 0)\n      }px)`;\n      const virtualStyle = {\n        transform: translate,\n        '-ms-transform': translate,\n        '-moz-transform': translate,\n        '-webkit-transform': translate,\n      };\n      const tableBodyProps = {\n        classPrefix,\n        ellipsisOverlayClassName: tableSize.value !== 'medium' ? sizeClassNames[tableSize.value] : '',\n        rowAndColFixedPosition: rowAndColFixedPosition.value,\n        showColumnShadow,\n        data: data,\n        virtualConfig,\n        columns: spansAndLeafNodes.value.leafColumns,\n        tableElm: tableRef.value,\n        tableWidth: tableWidth.value,\n        isWidthOverflow: isWidthOverflow.value,\n        scroll: props.scroll,\n        cellEmptyContent: props.cellEmptyContent,\n        tableContentElm: tableContentRef.value,\n        handleRowMounted: virtualConfig.handleRowMounted,\n        renderExpandedRow: props.renderExpandedRow,\n        ...pick(props, extendTableProps),\n        // 内部使用分页信息必须取 innerPagination\n        pagination: innerPagination.value,\n        attach: props.attach,\n        hoverRow: hoverRow.value,\n        activeRow: tActiveRow.value,\n        onRowClick: onInnerRowClick,\n      };\n      const tableContent = (\n        <div\n          ref={tableContentRef}\n          class={tableBaseClass.content}\n          style={{ ...tableContentStyles.value, overflowAnchor: 'none' }}\n          onScroll={onInnerVirtualScroll}\n        >\n          {virtualConfig.isVirtualScroll.value && <div class={virtualScrollClasses.cursor} style={virtualStyle} />}\n\n          <table\n            ref={tableElmRef}\n            class={tableElmClasses.value}\n            style={{\n              ...tableElementStyles.value,\n              width:\n                props.resizable && isWidthOverflow.value && tableElmWidth.value\n                  ? `${tableElmWidth.value}px`\n                  : tableElementStyles.value.width,\n            }}\n          >\n            {renderColGroup(false)}\n            {props.showHeader && (\n              <THead\n                v-slots={context.slots}\n                {...{ ...headProps, thWidthList: columnResizable ? thWidthList.value : {} }}\n              />\n            )}\n            <TBody v-slots={context.slots} ref={tableBodyRef} {...tableBodyProps} />\n            <TFoot\n              v-slots={context.slots}\n              rowKey={props.rowKey}\n              isFixedHeader={isFixedHeader.value}\n              rowAndColFixedPosition={rowAndColFixedPosition.value}\n              footData={props.footData}\n              columns={spansAndLeafNodes.value.leafColumns}\n              rowAttributes={props.rowAttributes}\n              rowClassName={props.rowClassName}\n              footerSummary={props.footerSummary}\n              rowspanAndColspanInFooter={props.rowspanAndColspanInFooter}\n              virtualScroll={virtualConfig.isVirtualScroll.value}\n            ></TFoot>\n          </table>\n        </div>\n      );\n\n      const getCustomLoadingText = isFunction(props.loading) ? props.loading : context.slots.loading;\n      const loadingContent = props.loading !== undefined && (\n        <Loading\n          loading={!!props.loading}\n          text={getCustomLoadingText}\n          attach={tableRef.value ? () => tableRef.value : undefined}\n          showOverlay\n          size=\"small\"\n          {...props.loadingProps}\n        ></Loading>\n      );\n\n      const topContent = renderTNode('topContent');\n      const bottomContent = renderTNode('bottomContent');\n      const pagination = (\n        <div\n          ref={paginationRef}\n          class={tableBaseClass.paginationWrap}\n          style={{ opacity: Number(showAffixPagination.value) }}\n        >\n          {renderPagination()}\n        </div>\n      );\n\n      const bottom = !!bottomContent && (\n        <div ref={bottomContentRef} class={tableBaseClass.bottomContent}>\n          {bottomContent}\n        </div>\n      );\n\n      return (\n        <div\n          ref={tableRef}\n          tabindex={tableRefTabIndex.value}\n          class={dynamicBaseTableClasses.value}\n          onFocus={onTableFocus}\n          onBlur={onTableBlur}\n        >\n          {!!topContent && <div class={tableBaseClass.topContent}>{topContent}</div>}\n\n          {renderAffixedHeader()}\n\n          {tableContent}\n\n          {affixedFooter}\n\n          {loadingContent}\n\n          {bottom}\n\n          {/* 右侧滚动条分隔线 */}\n          {showRightDivider.value && (\n            <div\n              class={tableBaseClass.scrollbarDivider}\n              style={{\n                right: `${scrollbarWidth.value}px`,\n                bottom: dividerBottom.value ? `${dividerBottom.value}px` : undefined,\n                height: `${tableContentRef.value?.getBoundingClientRect().height}px`,\n              }}\n            ></div>\n          )}\n\n          {/* 吸底的滚动条 */}\n          {props.horizontalScrollAffixedBottom && renderAffixedHorizontalScrollbar()}\n\n          {/* 吸底的分页器 */}\n          {props.paginationAffixedBottom ? (\n            <Affix offsetBottom={0} {...getAffixProps(props.paginationAffixedBottom)} ref={paginationAffixRef}>\n              {pagination}\n            </Affix>\n          ) : (\n            pagination\n          )}\n\n          {/* 调整列宽时的指示线。由于层级需要比较高，因而放在根节点，避免被吸顶表头覆盖。非必要情况，请勿调整辅助线位置 */}\n          <div ref={resizeLineRef} class={tableBaseClass.resizeLine} style={resizeLineStyle}></div>\n        </div>\n      );\n    };\n  },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","BASE_TABLE_EVENTS","BASE_TABLE_ALL_EVENTS","ROW_LISTENERS","map","t","concat","defineComponent","name","props","_objectSpread","renderExpandedRow","Function","onLeafColumnsChange","thDraggable","Boolean","emits","setup","context","_toRefs","toRefs","lazyLoad","renderTNode","useTNodeJSX","tableRef","ref","tableElmRef","tableBodyRef","bottomContentRef","tableFootHeight","_useClassName","useClassName","classPrefix","virtualScrollClasses","tableLayoutClasses","tableBaseClass","tableColFixedClasses","_useStyle","useStyle","tableClasses","sizeClassNames","tableContentStyles","tableElementStyles","_useConfig","useConfig","locale","globalConfig","_useTableHeader","useTableHeader","isMultipleHeader","spansAndLeafNodes","thList","finalColumns","computed","_spansAndLeafNodes$va","value","leafColumns","columns","tableSize","_props2$size","size","_useElementLazyRender","useElementLazyRender","showElement","paginationAffixRef","horizontalScrollAffixRef","headerTopAffixRef","footerBottomAffixRef","_useFixed","useFixed","scrollbarWidth","tableWidth","tableElmWidth","tableContentRef","isFixedHeader","isWidthOverflow","isFixedColumn","thWidthList","showColumnShadow","rowAndColFixedPosition","setData","refreshTable","setTableElmWidth","emitScrollEvent","setUseFixedTableElmRef","updateColumnFixedShadow","getThWidthList","updateThWidthList","addTableResizeObserver","updateTableAfterColumnResize","_useAffix","useAffix","affixHeaderRef","affixFooterRef","horizontalScrollbarRef","paginationRef","showAffixHeader","showAffixFooter","showAffixPagination","onHorizontalScroll","setTableContentRef","updateAffixHeaderOrFooter","_usePagination","usePagination","dataSource","innerPagination","isPaginateData","renderPagination","columnResizeParams","useColumnResize","onColumnResizeChange","resizeLineRef","resizeLineStyle","setEffectColMap","dynamicBaseTableClasses","_defineProperty","headerFixed","columnFixed","widthOverflow","multipleHeader","leftShadow","left","rightShadow","right","columnResizableTable","resizable","activeRowType","tableElmClasses","tableLayout","showRightDivider","bordered","dividerBottom","_bottomContentRef$val","_paginationRef$value","bottomRect","getBoundingClientRect","paginationRect","height","_useRowHighlight","useRowHighlight","tActiveRow","onHighlightRow","addHighlightKeyboardListener","removeHighlightKeyboardListener","_useHoverKeyboardEven","useHoverKeyboardEvent","hoverRow","needKeyboardRowHover","clearHoverRow","addRowHoverKeyboardListener","removeRowHoverKeyboardListener","tableRefTabIndex","watch","data","_props2$onLeafColumns","immediate","onFixedChange","nextTick","syncThWidthList","throttle","virtualScrollParams","scroll","fixedRows","virtualConfig","useVirtualScrollNew","lastScrollY","onInnerVirtualScroll","e","target","srcElement","top","scrollTop","isVirtualScroll","handleScroll","getTFootHeight","_tableElmRef$value$qu","querySelector","scrollColumnIntoView","colKey","thDom","fixedThDom","querySelectorAll","totalWidth","i","len","length","width","domRect","contentRect","distance","scrollTo","behavior","scrollLeft","footData","footerSummary","timer","setTimeout","clearTimeout","onMounted","onTableFocus","onTableBlur","onInnerRowClick","ctx","_props2$onRowClick","onRowClick","_ref2","_ref3","_slicedToArray","emit","tableData","scrollToElement","params","index","_tableData$value","key","log","error","findIndex","item","get","rowKey","_tableBodyRef$value","_el$children","el","$el","row","children","_params$top","_params$behavior","offsetTop","scrollHeight","scrollBy","expose","_props2$allowResizeCo","_affixHeaderRef$value","_props2$footData","_tableFootHeight$valu","_tableFootHeight$valu2","_affixHeaderHeight$va","_tableContentRef$valu","_createVNode","columnResizable","allowResizeColumnWidth","warn","defaultColWidth","renderColGroup","isAffixHeader","arguments","undefined","col","style","formatCSSUnit","minWidth","renderAffixedHeader","showHeader","affixHeaderEvents","useEventForward","getAffixProps","headerAffixedTop","Affix","_mergeProps","affixHeaderWithWrap","_default","renderAffixedHorizontalScrollbar","horizontalScrollAffixedBottom","marginTop","obviousScrollbar","overflow","opacity","Number","headProps","maxHeight","ellipsisOverlayClassName","attach","IEHeaderWrap","getIEVersion","barWidth","affixHeaderHeight","_affixHeaderRef$value2","affixHeaderWrapHeight","headerOpacity","affixHeaderWrapHeightStyle","affixedLeftBorder","affixedHeader","affixedHeaderElm","THead","slots","affixedHeaderWrap","marginScrollbarWidth","showFooter","footerAffixedBottom","hasFooter","affixFooterEvents","affixedFooter","affixedFooterWrap","affixedFooterElm","TFoot","rowAttributes","rowClassName","rowspanAndColspanInFooter","translate","virtualStyle","transform","tableBodyProps","tableElm","cellEmptyContent","tableContentElm","handleRowMounted","pick","extendTableProps","pagination","activeRow","tableContent","content","overflowAnchor","cursor","TBody","getCustomLoadingText","isFunction","loading","loadingContent","Loading","loadingProps","topContent","bottomContent","paginationWrap","bottom","scrollbarDivider","paginationAffixedBottom","resizeLine"],"mappings":"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"}