{"version":3,"file":"primary-table.mjs","sources":["../../../components/table/primary-table.tsx"],"sourcesContent":["import { computed, defineComponent, toRefs, h, ref, onMounted, getCurrentInstance } from 'vue';\nimport { get, omit } from 'lodash-es';\nimport baseTableProps from './base-table-props';\nimport primaryTableProps from './primary-table-props';\nimport BaseTable from './base-table';\nimport { useConfig, useTNodeJSX, ScrollToElementParams } from '@tdesign/shared-hooks';\nimport useColumnController from './hooks/useColumnController';\nimport useRowExpand from './hooks/useRowExpand';\nimport useTableHeader, { renderTitle } from './hooks/useTableHeader';\nimport useRowSelect from './hooks/useRowSelect';\nimport { TdPrimaryTableProps, PrimaryTableCol, TableRowData, PrimaryTableCellParams } from './type';\nimport useSorter from './hooks/useSorter';\nimport useFilter from './hooks/useFilter';\nimport useDragSort from './hooks/useDragSort';\nimport useAsyncLoading from './hooks/useAsyncLoading';\nimport EditableCell, { EditableCellProps } from './components/editable-cell';\nimport { PageInfo } from '../pagination';\nimport useClassName from './hooks/useClassName';\nimport { getCellKey } from './hooks/useRowspanAndColspan';\n\nimport useEditableRow from './hooks/useEditableRow';\nimport useStyle from './hooks/useStyle';\n\nimport type { BaseTableProps } from './types';\n\nexport { BASE_TABLE_ALL_EVENTS } from './base-table';\n\nconst OMIT_PROPS = [\n  'hideSortTips',\n  'dragSort',\n  'defaultExpandedRowKeys',\n  'defaultSelectedRowKeys',\n  'columnController',\n  'filterRow',\n  'sortOnRowDraggable',\n  'expandOnRowClick',\n  'expand-on-row-click',\n  'expanded-row',\n  'editable-row-keys',\n  'editable-cell-state',\n  'filter-value',\n  'multipleSort',\n  'expandIcon',\n  'expand-icon',\n  'reserveSelectedRowOnPaginate',\n  'expandedRowKeys',\n  'expandedRow',\n  'reserve-selected-row-on-paginate',\n  'reserveSelectedRowOnPaginate',\n  'selected-row-keys',\n  'selectedRowKeys',\n  'selectOnRowClick',\n  'column-controller',\n  'columnController',\n  'dragSort',\n  'drag-sort',\n  'hideSortTips',\n  'showSortColumnBgColor',\n  'filter-row',\n  'filterRow',\n  'multiple-sort',\n  'multipleSort',\n  'async-loading',\n  'onChange',\n  'onAsyncLoadingClick',\n  'onColumnChange',\n  'onColumnControllerVisibleChange',\n  'onDataChange',\n  'onDisplayColumnsChange',\n  'onDragSort',\n  'onExpandChange',\n  'onFilterChange',\n  'onSelectChange',\n  'onSortChange',\n];\n\nexport default defineComponent({\n  name: 'TPrimaryTable',\n  props: {\n    ...baseTableProps,\n    ...primaryTableProps,\n  },\n  setup(props, context) {\n    const renderTNode = useTNodeJSX();\n    const { columns, columnController } = toRefs(props);\n    const primaryTableRef = ref(null);\n    const showElement = ref(false);\n\n    const { classPrefix, tableDraggableClasses, tableBaseClass, tableSelectedClasses, tableSortClasses } =\n      useClassName();\n    const { globalConfig } = useConfig('table', props.locale);\n    const { sizeClassNames } = useStyle(props);\n    const tableSize = computed(() => props.size ?? globalConfig.value.size);\n    // 自定义列配置功能\n    const { tDisplayColumns, renderColumnController } = useColumnController(props, context);\n\n    // 展开/收起行功能\n    const {\n      showExpandedRow,\n      showExpandIconColumn,\n      getExpandColumn,\n      renderExpandedRow,\n      onInnerExpandRowClick,\n      getExpandedRowClass,\n    } = useRowExpand(props, context);\n\n    // 排序功能\n    const { renderSortIcon } = useSorter(props, context);\n\n    // 行选中功能\n    const {\n      selectColumn,\n      showRowSelect,\n      selectedRowClassNames,\n      currentPaginateData,\n      formatToRowSelectColumn,\n      setTSelectedRowKeys,\n      onInnerSelectRowClick,\n      handleRowSelectWithAreaSelection,\n    } = useRowSelect(props, tableSelectedClasses);\n\n    // 过滤功能\n    const {\n      hasEmptyCondition,\n      isTableOverflowHidden,\n      renderFilterIcon,\n      renderFirstFilterRow,\n      setFilterPrimaryTableRef,\n    } = useFilter(props, context);\n\n    // 拖拽排序功能\n    const dragSortParams = computed(() => ({\n      showElement: showElement.value,\n    }));\n    const {\n      isRowHandlerDraggable,\n      isRowDraggable,\n      isColDraggable,\n      innerPagination,\n      setDragSortPrimaryTableRef,\n      setDragSortColumns,\n    } = useDragSort(props, context, dragSortParams);\n\n    const { renderTitleWidthIcon } = useTableHeader(props);\n    const { renderAsyncLoading } = useAsyncLoading(props);\n\n    // 可编辑行\n    const {\n      errorListMap,\n      editableKeysMap,\n      validateRowData,\n      validateTableData,\n      validateTableCellData,\n      onRuleChange,\n      clearValidateRowData,\n      clearAllEditableCellData,\n      onCellInstanceChange,\n      onUpdateEditedCell,\n      getEditRowData,\n      onPrimaryTableCellEditChange,\n    } = useEditableRow(props);\n\n    const innerKeyboardRowHover = computed(() => Boolean(showExpandedRow.value || showRowSelect.value));\n\n    const innerDisableSpaceInactiveRow = computed(() => Boolean(showExpandedRow.value || showRowSelect.value));\n\n    const primaryTableClasses = computed(() => {\n      return {\n        [tableDraggableClasses.colDraggable]: isColDraggable.value,\n        [tableDraggableClasses.rowHandlerDraggable]: isRowHandlerDraggable.value,\n        [tableDraggableClasses.rowDraggable]: isRowDraggable.value,\n        [tableBaseClass.overflowVisible]: isTableOverflowHidden.value === false,\n        [tableBaseClass.tableRowEdit]: props.editableRowKeys,\n        [`${classPrefix}-table--select-${selectColumn.value?.type}`]: selectColumn.value,\n        [`${classPrefix}-table--row-select`]: showRowSelect.value,\n        [`${classPrefix}-table--row-expandable`]: showExpandedRow.value,\n      };\n    });\n\n    // 如果想给 TR 添加类名，请在这里补充，不要透传更多额外 Props 到 BaseTable\n    const tRowClassNames = computed(() => {\n      const tClassNames = [props.rowClassName, selectedRowClassNames.value, getExpandedRowClass];\n      return tClassNames.filter((v) => v);\n    });\n\n    // 如果想给 TR 添加属性，请在这里补充，不要透传更多额外 Props 到 BaseTable\n    const tRowAttributes = computed(() => {\n      const tAttributes = [props.rowAttributes];\n      if (isRowHandlerDraggable.value || isRowDraggable.value) {\n        tAttributes.push(({ row }) => ({ 'data-id': get(row, props.rowKey || 'id') }));\n      }\n      return tAttributes.filter((v) => v);\n    });\n\n    // 多个 Hook 共用 primaryTableRef\n    onMounted(() => {\n      setFilterPrimaryTableRef(primaryTableRef.value);\n      setDragSortPrimaryTableRef(primaryTableRef.value);\n    });\n\n    const clearValidateData = () => {\n      clearValidateRowData();\n      clearAllEditableCellData();\n    };\n\n    // 对外暴露的方法\n    context.expose({\n      validateRowData,\n      validateTableData,\n      validateTableCellData,\n      clearValidateData,\n      refreshTable: () => {\n        primaryTableRef.value.refreshTable();\n      },\n      scrollToElement: (data: ScrollToElementParams) => {\n        primaryTableRef.value.scrollToElement(data);\n      },\n      scrollColumnIntoView: (colKey: string) => {\n        primaryTableRef.value.scrollColumnIntoView(colKey);\n      },\n      // 暴露基础表格 ref 及相关方法\n      baseTableRef: primaryTableRef,\n    });\n\n    const onEditableCellChange: EditableCellProps['onChange'] = (params) => {\n      props.onRowEdit?.(params);\n      const rowValue = get(params.editedRow, props.rowKey || 'id');\n      onUpdateEditedCell(rowValue, params.row, {\n        [params.col.colKey]: params.value,\n      });\n    };\n\n    // 1. 影响列数量的因素有：自定义列配置、展开/收起行、多级表头；2. 影响表头内容的因素有：排序图标、筛选图标\n    const getColumns = (columns: PrimaryTableCol<TableRowData>[], parentDisplay = false) => {\n      const arr: PrimaryTableCol<TableRowData>[] = [];\n      for (let i = 0, len = columns.length; i < len; i++) {\n        let item = { ...columns[i] };\n        // 自定义列显示控制\n        const isDisplayColumn = item.children?.length || tDisplayColumns.value?.includes(item.colKey);\n        if (\n          !isDisplayColumn &&\n          (props.columnController || props.displayColumns || props.defaultDisplayColumns) &&\n          !parentDisplay\n        )\n          continue;\n        item = formatToRowSelectColumn(item);\n        const { sort } = props;\n        if (item.sorter && props.showSortColumnBgColor) {\n          const sorts = sort instanceof Array ? sort : [sort];\n          const sortedColumn = sorts.find(\n            (sort) => sort && sort.sortBy === item.colKey && sort.descending !== undefined,\n          );\n          if (sortedColumn) {\n            item.className =\n              item.className instanceof Array\n                ? item.className.concat(tableSortClasses.sortColumn)\n                : [item.className, tableSortClasses.sortColumn];\n          }\n        }\n        // 添加排序图标和过滤图标\n        if (item.sorter || item.filter) {\n          const titleContent = renderTitle(context.slots, item, i);\n          const { ellipsisTitle } = item;\n          item.title = (h, p) => {\n            const sortIcon = item.sorter ? renderSortIcon(p) : null;\n            const filterIcon = item.filter ? renderFilterIcon(p) : null;\n            // @ts-ignore 注意：此处 Vue2 和 Vue3 有所不同\n            const attach = primaryTableRef.value?.tableContentRef;\n            return renderTitleWidthIcon(\n              [titleContent, sortIcon, filterIcon],\n              p.col,\n              p.colIndex,\n              ellipsisTitle,\n              attach,\n              {\n                classPrefix,\n                ellipsisOverlayClassName: tableSize.value !== 'medium' ? sizeClassNames[tableSize.value] : '',\n              },\n            );\n          };\n          item.ellipsisTitle = false;\n        }\n        // 如果是单元格可编辑状态\n        if (item.edit?.component) {\n          const oldCell = item.cell;\n          item.cell = (h, p: PrimaryTableCellParams<TableRowData>) => {\n            const cellProps: EditableCellProps = {\n              ...p,\n              row: getEditRowData(p),\n              oldCell,\n              rowKey: props.rowKey || 'id',\n              tableBaseClass,\n              cellEmptyContent: props.cellEmptyContent,\n              onChange: onEditableCellChange,\n              onValidate: props.onRowValidate,\n              onRuleChange,\n              onEditableChange: onPrimaryTableCellEditChange,\n            };\n            if (props.editableRowKeys) {\n              const rowValue = get(p.row, props.rowKey || 'id');\n              cellProps.editable = editableKeysMap.value[rowValue] || false;\n              const key = [rowValue, p.col.colKey].join('__');\n              const errorList = errorListMap.value?.[key];\n              errorList && (cellProps.errors = errorList);\n            }\n            if (props.editableCellState) {\n              cellProps.readonly = !props.editableCellState(p);\n            }\n            const cellKey = getCellKey(p.row, props.rowKey || 'id', p.col.colKey, p.colIndex);\n            return (\n              <EditableCell\n                {...cellProps}\n                cellKey={cellKey}\n                onCellInstanceChange={onCellInstanceChange}\n                v-slots={context.slots}\n                // @ts-ignore\n                onUpdateEditedCell={onUpdateEditedCell}\n              />\n            );\n          };\n        }\n        if (item.children?.length) {\n          item.children = getColumns(item.children, parentDisplay || tDisplayColumns.value?.includes(item.colKey));\n        }\n        // 多级表头和自定义列配置特殊逻辑：要么子节点不存在，要么子节点长度大于 1，方便做自定义列配置\n        if (!item.children || item.children?.length) {\n          arr.push(item);\n        }\n      }\n      return arr;\n    };\n\n    const tColumns = computed(() => {\n      const cols = getColumns(columns.value);\n      if (showExpandIconColumn.value) {\n        cols.unshift(getExpandColumn());\n      }\n      return cols;\n    });\n\n    const onInnerPageChange = (pageInfo: PageInfo, newData: Array<TableRowData>) => {\n      innerPagination.value = { ...innerPagination.value, ...pageInfo };\n      currentPaginateData.value = newData;\n      props.onPageChange?.(pageInfo, newData);\n      const changeParams: Parameters<TdPrimaryTableProps['onChange']> = [\n        { pagination: pageInfo },\n        { trigger: 'pagination', currentData: newData },\n      ];\n      props.onChange?.(...changeParams);\n      // 是否在分页时保留选中结果，如果不保留则需清空\n      if (!props.reserveSelectedRowOnPaginate) {\n        setTSelectedRowKeys([], {\n          selectedRowData: [],\n          type: 'uncheck',\n          currentRowKey: 'CLEAR_ON_PAGINATE',\n        });\n      }\n    };\n\n    const onInnerActiveRowAction: BaseTableProps['onActiveRowAction'] = (params) => {\n      props.onActiveRowAction?.(params);\n      handleRowSelectWithAreaSelection(params);\n    };\n\n    const onSingleRowClick: TdPrimaryTableProps['onRowClick'] = (params) => {\n      if (props.expandOnRowClick) {\n        onInnerExpandRowClick(params);\n      }\n      if (props.selectOnRowClick) {\n        onInnerSelectRowClick(params);\n      }\n    };\n\n    // handle click and dblclick exits at the same time\n    let timer: any;\n    const DURATION = 250;\n    const onInnerRowClick: TdPrimaryTableProps['onRowClick'] = (params) => {\n      // no dbl click conflict, no delay\n      if (!props.onRowDblclick) {\n        onSingleRowClick(params);\n        return;\n      }\n      if (timer) {\n        // dblclick\n        clearTimeout(timer);\n        timer = undefined;\n      } else {\n        timer = setTimeout(() => {\n          onSingleRowClick(params);\n          timer = undefined;\n        }, DURATION);\n      }\n    };\n\n    const onShowElementChange = (val: boolean) => {\n      showElement.value = val;\n    };\n\n    const formatNode = (\n      api: 'topContent' | 'bottomContent' | 'firstFullRow' | 'lastFullRow',\n      renderInnerNode: Function,\n      condition: boolean,\n      extra?: { reverse?: boolean },\n    ) => {\n      if (!condition) return props[api];\n      const innerNode = renderInnerNode(h);\n      const propsNode = renderTNode(api);\n      if (innerNode && !propsNode) return () => innerNode;\n      if (propsNode && !innerNode) return () => propsNode;\n      if (innerNode && propsNode) {\n        return () =>\n          extra?.reverse ? (\n            <div>\n              {innerNode}\n              {propsNode}\n            </div>\n          ) : (\n            <div>\n              {propsNode}\n              {innerNode}\n            </div>\n          );\n      }\n      return null;\n    };\n\n    return () => {\n      const isColumnController = !!(columnController.value && Object.keys(columnController.value).length);\n      // @ts-ignore\n      const placement = isColumnController ? columnController.value.placement || 'top-right' : '';\n      const isBottomController = isColumnController && placement?.indexOf('bottom') !== -1;\n      const topContent = formatNode('topContent', renderColumnController, isColumnController && !isBottomController);\n      const bottomContent = formatNode('bottomContent', renderColumnController, isBottomController, {\n        reverse: true,\n      });\n      const firstFullRow = formatNode('firstFullRow', renderFirstFilterRow, !hasEmptyCondition.value);\n      const lastFullRow = formatNode('lastFullRow', renderAsyncLoading, !!props.asyncLoading);\n\n      // important for base-table controlled properties\n      const { vnode } = getCurrentInstance();\n\n      const baseTableProps: BaseTableProps = {\n        ...omit(vnode.props, OMIT_PROPS),\n        rowKey: props.rowKey,\n        rowClassName: tRowClassNames.value,\n        rowAttributes: tRowAttributes.value,\n        columns: tColumns.value,\n        keyboardRowHover: props.keyboardRowHover ?? innerKeyboardRowHover.value,\n        disableSpaceInactiveRow: props.disableSpaceInactiveRow ?? innerDisableSpaceInactiveRow.value,\n        topContent,\n        bottomContent,\n        firstFullRow,\n        lastFullRow,\n        thDraggable: ['col', 'row-handler-col'].includes(props.dragSort),\n        onShowElementChange,\n        onPageChange: onInnerPageChange,\n        renderExpandedRow: showExpandedRow.value ? renderExpandedRow : undefined,\n        onActiveRowAction: onInnerActiveRowAction,\n      };\n\n      if (props.expandOnRowClick || props.selectOnRowClick) {\n        baseTableProps.onRowClick = onInnerRowClick;\n      }\n\n      return (\n        <BaseTable\n          v-slots={context.slots}\n          {...baseTableProps}\n          ref={primaryTableRef}\n          class={primaryTableClasses.value}\n          onLeafColumnsChange={setDragSortColumns}\n        />\n      );\n    };\n  },\n});\n"],"names":["OMIT_PROPS","defineComponent","name","props","_objectSpread","baseTableProps","primaryTableProps","setup","context","renderTNode","useTNodeJSX","_toRefs","toRefs","columns","columnController","primaryTableRef","ref","showElement","_useClassName","useClassName","classPrefix","tableDraggableClasses","tableBaseClass","tableSelectedClasses","tableSortClasses","_useConfig","useConfig","locale","globalConfig","_useStyle","useStyle","sizeClassNames","tableSize","computed","_props$size","size","value","_useColumnController","useColumnController","tDisplayColumns","renderColumnController","_useRowExpand","useRowExpand","showExpandedRow","showExpandIconColumn","getExpandColumn","renderExpandedRow","onInnerExpandRowClick","getExpandedRowClass","_useSorter","useSorter","renderSortIcon","_useRowSelect","useRowSelect","selectColumn","showRowSelect","selectedRowClassNames","currentPaginateData","formatToRowSelectColumn","setTSelectedRowKeys","onInnerSelectRowClick","handleRowSelectWithAreaSelection","_useFilter","useFilter","hasEmptyCondition","isTableOverflowHidden","renderFilterIcon","renderFirstFilterRow","setFilterPrimaryTableRef","dragSortParams","_useDragSort","useDragSort","isRowHandlerDraggable","isRowDraggable","isColDraggable","innerPagination","setDragSortPrimaryTableRef","setDragSortColumns","_useTableHeader","useTableHeader","renderTitleWidthIcon","_useAsyncLoading","useAsyncLoading","renderAsyncLoading","_useEditableRow","useEditableRow","errorListMap","editableKeysMap","validateRowData","validateTableData","validateTableCellData","onRuleChange","clearValidateRowData","clearAllEditableCellData","onCellInstanceChange","onUpdateEditedCell","getEditRowData","onPrimaryTableCellEditChange","innerKeyboardRowHover","Boolean","innerDisableSpaceInactiveRow","primaryTableClasses","_selectColumn$value","_defineProperty","colDraggable","rowHandlerDraggable","rowDraggable","overflowVisible","tableRowEdit","editableRowKeys","concat","type","tRowClassNames","tClassNames","rowClassName","filter","v","tRowAttributes","tAttributes","rowAttributes","push","_ref2","row","get","rowKey","onMounted","clearValidateData","expose","refreshTable","scrollToElement","data","scrollColumnIntoView","colKey","baseTableRef","onEditableCellChange","params","_props$onRowEdit","onRowEdit","call","rowValue","editedRow","col","getColumns","parentDisplay","arguments","length","undefined","arr","_loop","_item$children","_tDisplayColumns$valu","_item$edit","_item$children2","_item$children3","item","i","isDisplayColumn","children","includes","displayColumns","defaultDisplayColumns","sort","sorter","showSortColumnBgColor","sorts","Array","sortedColumn","find","sortBy","descending","className","sortColumn","titleContent","renderTitle","slots","_item","ellipsisTitle","title","h","p","_primaryTableRef$valu","sortIcon","filterIcon","attach","tableContentRef","colIndex","ellipsisOverlayClassName","edit","component","oldCell","cell","cellProps","cellEmptyContent","onChange","onValidate","onRowValidate","onEditableChange","_errorListMap$value","editable","key","join","errorList","errors","editableCellState","readonly","cellKey","getCellKey","_createVNode","EditableCell","_mergeProps","_tDisplayColumns$valu2","len","tColumns","cols","unshift","onInnerPageChange","pageInfo","newData","_props$onPageChange","_props$onChange","onPageChange","changeParams","pagination","trigger","currentData","apply","reserveSelectedRowOnPaginate","selectedRowData","currentRowKey","onInnerActiveRowAction","_props$onActiveRowAct","onActiveRowAction","onSingleRowClick","expandOnRowClick","selectOnRowClick","timer","DURATION","onInnerRowClick","onRowDblclick","clearTimeout","setTimeout","onShowElementChange","val","formatNode","api","renderInnerNode","condition","extra","innerNode","propsNode","reverse","_props$keyboardRowHov","_props$disableSpaceIn","isColumnController","Object","keys","placement","isBottomController","indexOf","topContent","bottomContent","firstFullRow","lastFullRow","asyncLoading","_getCurrentInstance","getCurrentInstance","vnode","omit","keyboardRowHover","disableSpaceInactiveRow","thDraggable","dragSort","onRowClick","BaseTable"],"mappings":"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"}