pro-design-vue 1.3.36 → 1.3.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/index.full.js +27 -8
  2. package/dist/index.full.min.js +5 -5
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +5 -5
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +27 -8
  7. package/es/components/config-provider/src/typing.d.ts +2 -0
  8. package/es/components/table/src/components/AutoHeightHeader/Header.vue.d.ts +1 -0
  9. package/es/components/table/src/components/AutoHeightHeader/HeaderRow.vue.d.ts +1 -0
  10. package/es/components/table/src/components/Header/Header.vue.d.ts +1 -0
  11. package/es/components/table/src/components/Header/HeaderCell.vue.d.ts +1 -0
  12. package/es/components/table/src/components/Header/HeaderRows.vue.d.ts +1 -0
  13. package/es/components/table/src/components/Header/HeaderRowsWrap.vue.d.ts +1 -0
  14. package/es/components/table/src/components/InteralTable.vue.d.ts +13 -2
  15. package/es/components/table/src/components/Table.d.ts +11 -2
  16. package/es/components/table/src/components/context/TableContext.d.ts +2 -1
  17. package/es/components/table/src/components/interface.d.ts +16 -3
  18. package/es/index.d.ts +19 -3
  19. package/es/packages/components/table/src/components/Drag/useColumnDragHandler.mjs +4 -3
  20. package/es/packages/components/table/src/components/Drag/useColumnDragHandler.mjs.map +1 -1
  21. package/es/packages/components/table/src/components/Header/HeaderCell.vue.mjs +1 -1
  22. package/es/packages/components/table/src/components/Header/HeaderCell.vue.mjs.map +1 -1
  23. package/es/packages/components/table/src/components/Header/HeaderCell.vue2.mjs +7 -0
  24. package/es/packages/components/table/src/components/Header/HeaderCell.vue2.mjs.map +1 -1
  25. package/es/packages/components/table/src/components/InteralTable.vue.mjs.map +1 -1
  26. package/es/packages/components/table/src/components/InteralTable.vue2.mjs +8 -1
  27. package/es/packages/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
  28. package/es/packages/components/table/src/components/context/TableContext.mjs.map +1 -1
  29. package/es/packages/components/table/src/components/interface.mjs +5 -1
  30. package/es/packages/components/table/src/components/interface.mjs.map +1 -1
  31. package/es/version.d.ts +1 -1
  32. package/es/version.mjs +1 -1
  33. package/es/version.mjs.map +1 -1
  34. package/lib/components/config-provider/src/typing.d.ts +2 -0
  35. package/lib/components/table/src/components/AutoHeightHeader/Header.vue.d.ts +1 -0
  36. package/lib/components/table/src/components/AutoHeightHeader/HeaderRow.vue.d.ts +1 -0
  37. package/lib/components/table/src/components/Header/Header.vue.d.ts +1 -0
  38. package/lib/components/table/src/components/Header/HeaderCell.vue.d.ts +1 -0
  39. package/lib/components/table/src/components/Header/HeaderRows.vue.d.ts +1 -0
  40. package/lib/components/table/src/components/Header/HeaderRowsWrap.vue.d.ts +1 -0
  41. package/lib/components/table/src/components/InteralTable.vue.d.ts +13 -2
  42. package/lib/components/table/src/components/Table.d.ts +11 -2
  43. package/lib/components/table/src/components/context/TableContext.d.ts +2 -1
  44. package/lib/components/table/src/components/interface.d.ts +16 -3
  45. package/lib/index.d.ts +19 -3
  46. package/lib/packages/components/table/src/components/Drag/useColumnDragHandler.js +4 -3
  47. package/lib/packages/components/table/src/components/Drag/useColumnDragHandler.js.map +1 -1
  48. package/lib/packages/components/table/src/components/Header/HeaderCell.vue.js +1 -1
  49. package/lib/packages/components/table/src/components/Header/HeaderCell.vue.js.map +1 -1
  50. package/lib/packages/components/table/src/components/Header/HeaderCell.vue2.js +7 -0
  51. package/lib/packages/components/table/src/components/Header/HeaderCell.vue2.js.map +1 -1
  52. package/lib/packages/components/table/src/components/InteralTable.vue.js.map +1 -1
  53. package/lib/packages/components/table/src/components/InteralTable.vue2.js +8 -1
  54. package/lib/packages/components/table/src/components/InteralTable.vue2.js.map +1 -1
  55. package/lib/packages/components/table/src/components/context/TableContext.js.map +1 -1
  56. package/lib/packages/components/table/src/components/interface.js +5 -1
  57. package/lib/packages/components/table/src/components/interface.js.map +1 -1
  58. package/lib/version.d.ts +1 -1
  59. package/lib/version.js +1 -1
  60. package/lib/version.js.map +1 -1
  61. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderCell.vue2.js","sources":["../../../../../../../../../packages/components/table/src/components/Header/HeaderCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 16:03:18\n * @LastEditors: shen\n * @LastEditTime: 2025-11-25 08:54:01\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType, CSSProperties } from 'vue'\nimport type { FilterKey, FinallyColumnType, SortOrder } from '../interface'\n\nimport { defineComponent, computed, inject, ref, watch, h } from 'vue'\nimport { Tooltip } from 'ant-design-vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { RenderVNode, RenderSlot } from '../../utils/renderVNode'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { ASCEND, DESCEND, getMultiplePriority } from '../../hooks/useSorter'\nimport { getCellFixedInfo } from '../../utils/fixUtil'\nimport { useInjectHeader } from '../context/HeaderContext'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectPopup } from '../context/PopupContext'\nimport { isEqual } from '@pro-design-vue/utils'\nimport useColumnDragHandler from '../Drag/useColumnDragHandler'\nimport supportSticky from '../../utils/supportSticky'\nimport eagerComputed from '../../utils/eagerComputed'\nimport Sorter from './Sorter.vue'\nimport DragHandle from './DragHandle.vue'\nimport FilterDropdown from '../Filter/FilterDropdown.vue'\nimport FilterItems from '../Filter/FilterItems.vue'\n\nexport default defineComponent({\n name: 'TableHeaderCell',\n components: {\n Sorter,\n Tooltip,\n DragHandle,\n FilterDropdown,\n MenuOutlined,\n RenderVNode,\n FilterItems,\n },\n props: {\n component: { type: String, default: 'div' },\n prefixCls: String as PropType<string>,\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n level: { type: Number as PropType<number>, default: 1 },\n additionalProps: Object,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const headerContext = useInjectHeader()\n const tableSlotsContext = useInjectSlots()\n const { showPopupContent } = useInjectPopup()\n\n const columnDragging = computed(\n () => tableContext.draggingColumnKey.value === props.column.columnKey,\n )\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n const domRef = ref<HTMLDivElement>()\n\n if (props.level === 1) {\n useColumnDragHandler({\n column: computed(() => props.column),\n columnKey: computed(() => props.column.columnKey),\n disabled: computed(() => false),\n domRef,\n })\n }\n\n const showSorterTooltip = computed(() => {\n return undefined === props.column.showSorterTooltip\n ? tableContext.props.showSorterTooltip\n : props.column.showSorterTooltip\n })\n\n const tooltipProps = computed(() =>\n 'boolean' == typeof showSorterTooltip.value ? {} : showSorterTooltip.value,\n )\n\n const sorterInfo = computed(() => {\n const column = props.column\n const columnKey = column.columnKey\n const sorterState = tableContext.sorterStates.value.find(({ key }) => key === columnKey)\n const sorterOrder = sorterState ? sorterState.sortOrder : null\n const sortDirections = column.sortDirections || ['asc', 'desc']\n const nextSortOrder = sorterOrder\n ? sortDirections[sortDirections.indexOf(sorterOrder) + 1]\n : sortDirections[0]\n\n const { cancelSort, triggerAsc, triggerDesc } = tableContext.locale.value || {}\n let tip = cancelSort\n if (nextSortOrder === DESCEND) {\n tip = triggerDesc\n } else if (nextSortOrder === ASCEND) {\n tip = triggerAsc\n }\n return {\n columnKey,\n sorterState,\n sorterOrder,\n sortDirections,\n nextSortOrder,\n tip,\n showFilter:\n !!(\n column.filters ||\n column.filterDropdown ||\n (column.slots && column.slots.filterDropdown) ||\n column.customFilterDropdown\n ) && false !== column.showFilter,\n wrapText: props.column.wrapText === undefined ? props.wrapText : props.column.wrapText,\n }\n })\n const hasIcon = computed(() => sorterInfo.value.showFilter || !!tableSlotsContext.menuPopup)\n const cellBoxClass = computed(() => ({\n [`${props.prefixCls}-has-icon-column`]: hasIcon.value,\n [`${props.prefixCls}-cell-box`]: true,\n }))\n const titleClass = computed(() => {\n const { prefixCls } = props\n return {\n [`${prefixCls}-column-title`]: true,\n [`${prefixCls}-cell-box`]: !hasIcon.value,\n }\n })\n\n const widths = computed(() => {\n const {\n columnIndex = tableContext.columnKeyIndexMap.value[props.column.columnKey],\n colSpan = 1,\n } = props.column\n return tableContext.getColumnPosition(columnIndex!, colSpan)\n })\n\n const customColProps = computed(() =>\n (props.column.customHeaderCell || tableContext.props.customHeaderCell || (() => ({})))(\n props.column,\n ),\n )\n\n const colProps = computed(() => {\n const { columnIndex, colSpan = 1 } = props.column\n return Object.assign({}, customColProps.value, {\n colspan: colSpan,\n colstart: columnIndex,\n colend: colSpan + columnIndex - 1,\n ...props.additionalProps,\n })\n })\n\n const cellFixedInfo = computed(() => {\n if (autoHeight) {\n return getCellFixedInfo(\n colProps.value!.colstart,\n colProps.value!.colend,\n tableContext.allColumns.value as any,\n tableContext.stickyOffsets.value,\n tableContext.props.direction,\n )\n }\n return undefined\n })\n\n const cellClass = computed(() => {\n const { prefixCls, column } = props\n let cellFixedCls = {}\n if (cellFixedInfo.value && supportSticky) {\n const autoCellPrefixCls = `${prefixCls}-cell`,\n { fixLeft, fixRight, firstFixLeft, lastFixLeft, firstFixRight, lastFixRight } =\n cellFixedInfo.value\n cellFixedCls = {\n [`${autoCellPrefixCls}-fix-left`]: typeof fixLeft === 'number',\n [`${autoCellPrefixCls}-fix-left-first`]: firstFixLeft,\n [`${autoCellPrefixCls}-fix-left-last`]: lastFixLeft,\n [`${autoCellPrefixCls}-fix-right`]: typeof fixRight == 'number',\n [`${autoCellPrefixCls}-fix-right-first`]: firstFixRight,\n [`${autoCellPrefixCls}-fix-right-last`]: lastFixRight,\n }\n }\n return Object.assign(\n {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-first-cell`]: props.column.columnIndex === 0,\n [`${prefixCls}-header-cell`]: true,\n [column.class || '']: true,\n [column.className || '']: true,\n [`${prefixCls}-column-sort`]: sorterInfo.value.sorterOrder,\n [`${prefixCls}-column-has-sorters`]: column.sorter,\n [`${prefixCls}-drag-column-dragging`]: columnDragging.value,\n },\n cellFixedCls,\n )\n })\n\n const componentStyle = computed(() => {\n const styles: CSSProperties = {}\n if (cellFixedInfo.value && supportSticky) {\n const { fixLeft, fixRight } = cellFixedInfo.value\n if (typeof fixLeft == 'number') {\n styles.position = 'sticky'\n styles.left = `${fixLeft}px`\n }\n if (typeof fixRight == 'number') {\n styles.position = 'sticky'\n styles.right = `${fixRight}px`\n }\n }\n return autoHeight\n ? styles\n : { width: `${widths.value.width}px`, height: `${props.column.height}px` }\n })\n\n const selectedKeysRef = ref<FilterKey>([])\n const filterStates = computed(() => tableContext.filterStates.value)\n const columnKey = computed(() => props.column.columnKey)\n const filterState = computed(() =>\n filterStates.value.find(({ key }) => columnKey.value === key),\n )\n\n const changeFilter = (keys: FilterKey) => {\n const filteredKeys = keys?.length ? keys : null\n if (!(null !== filteredKeys || (filterState.value && filterState.value.filteredKeys)))\n return null\n if (\n isEqual(\n filteredKeys,\n null == filterState.value ? undefined : filterState.value.filteredKeys,\n )\n )\n return null\n const state = { column: props.column, key: columnKey.value, filteredKeys }\n tableContext?.changeFilter(state)\n }\n\n watch(\n filterState,\n () => {\n selectedKeysRef.value = filterState.value?.filteredKeys || []\n },\n { immediate: true },\n )\n\n const clearFilters = () => {\n selectedKeysRef.value = []\n changeFilter([])\n }\n const confirm = () => {\n changeFilter(selectedKeysRef.value)\n }\n\n const filtered = eagerComputed(() => {\n return !!selectedKeysRef.value?.length\n })\n\n const menuFilterProps = computed(() => ({\n prefixCls: props.prefixCls,\n setSelectedKeys: (keys: FilterKey) => {\n selectedKeysRef.value = keys || []\n },\n selectedKeysRef,\n confirm,\n clearFilters,\n filters: props.column.filters,\n }))\n\n const getPopupContainer = () => {\n return document.body\n }\n\n return {\n tableContext,\n sorterInfo,\n getPopupContainer,\n handleSortClick: (column: FinallyColumnType<any>, nextSortOrder: SortOrder) => {\n if (!column.sorter) return\n const sortState = {\n column,\n key: column.columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column),\n }\n tableContext.changeSorter(sortState)\n },\n cellClass,\n widths,\n colProps,\n RenderSlot,\n titleClass,\n domRef,\n autoHeight,\n componentStyle,\n headerContext,\n tableSlotsContext,\n cellBoxClass,\n showPopupContent,\n FilterItems,\n h,\n\n hasIcon,\n menuFilterProps,\n filtered,\n tooltipProps,\n showSorterTooltip,\n }\n },\n})\n</script>\n\n<template>\n <component\n v-if=\"colProps.colspan\"\n ref=\"domRef\"\n :is=\"component\"\n tabindex=\"-1\"\n role=\"cell\"\n :class=\"cellClass\"\n :style=\"componentStyle\"\n v-bind=\"colProps\"\n @click=\"handleSortClick(column, sorterInfo.nextSortOrder!)\"\n >\n <component :is=\"hasIcon ? 'div' : RenderSlot\" :class=\"cellBoxClass\">\n <span :class=\"titleClass\">\n <Tooltip v-if=\"column.sorter && showSorterTooltip\" v-bind=\"tooltipProps\" :getPopupContainer>\n <template #title>\n {{ sorterInfo.tip }}\n </template>\n <div :class=\"`${prefixCls}-column-sorters`\" :data-tip=\"sorterInfo.tip\">\n <Sorter :column=\"column\" v-bind=\"sorterInfo\" />\n </div>\n </Tooltip>\n <Sorter v-else :column=\"column\" v-bind=\"sorterInfo\" />\n </span>\n <FilterDropdown\n v-if=\"sorterInfo.showFilter\"\n :prefix-cls=\"`${prefixCls}-filter`\"\n :column=\"column\"\n />\n <span\n v-if=\"column.showMenu && tableSlotsContext.menuPopup\"\n :class=\"[\n `${prefixCls}-menu-popup-trigger`,\n 'hover' === column.showMenu && `${prefixCls}-menu-popup-trigger-hover`,\n ]\"\n @click.stop=\"\n showPopupContent(tableSlotsContext.menuPopup, $event, {\n column: column.originColumn,\n filter: menuFilterProps,\n })\n \"\n >\n <RenderVNode\n v-if=\"tableSlotsContext.menuIcon\"\n :vnode=\"\n tableSlotsContext.menuIcon({\n column: column.originColumn!,\n filtered: filtered,\n })\n \"\n />\n <MenuOutlined v-else />\n </span>\n </component>\n <DragHandle\n v-if=\"column.resizable && !(column.children && column.children.length)\"\n :prefix-cls=\"prefixCls\"\n :width=\"widths.width\"\n :min-width=\"widths.minWidth\"\n :max-width=\"widths.maxWidth\"\n :column=\"column\"\n />\n </component>\n</template>\n"],"names":["defineComponent","Sorter","Tooltip","DragHandle","FilterDropdown","MenuOutlined","RenderVNode","FilterItems","useInjectTable","useInjectHeader","useInjectSlots","useInjectPopup","computed","inject","AUTO_HEADER_HEIGHT","ref","useColumnDragHandler","columnKey","DESCEND","ASCEND","getCellFixedInfo","supportSticky","isEqual","watch","eagerComputed","getMultiplePriority","RenderSlot","h"],"mappings":"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"}
1
+ {"version":3,"file":"HeaderCell.vue2.js","sources":["../../../../../../../../../packages/components/table/src/components/Header/HeaderCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 16:03:18\n * @LastEditors: shen\n * @LastEditTime: 2026-01-22 10:35:45\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType, CSSProperties } from 'vue'\nimport type { FilterKey, FinallyColumnType, SortOrder } from '../interface'\n\nimport { defineComponent, computed, inject, ref, watch, h } from 'vue'\nimport { Tooltip } from 'ant-design-vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { RenderVNode, RenderSlot } from '../../utils/renderVNode'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { ASCEND, DESCEND, getMultiplePriority } from '../../hooks/useSorter'\nimport { getCellFixedInfo } from '../../utils/fixUtil'\nimport { useInjectHeader } from '../context/HeaderContext'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectPopup } from '../context/PopupContext'\nimport { isEqual } from '@pro-design-vue/utils'\nimport useColumnDragHandler from '../Drag/useColumnDragHandler'\nimport supportSticky from '../../utils/supportSticky'\nimport eagerComputed from '../../utils/eagerComputed'\nimport Sorter from './Sorter.vue'\nimport DragHandle from './DragHandle.vue'\nimport FilterDropdown from '../Filter/FilterDropdown.vue'\nimport FilterItems from '../Filter/FilterItems.vue'\n\nexport default defineComponent({\n name: 'TableHeaderCell',\n components: {\n Sorter,\n Tooltip,\n DragHandle,\n FilterDropdown,\n MenuOutlined,\n RenderVNode,\n FilterItems,\n },\n props: {\n component: { type: String, default: 'div' },\n prefixCls: String as PropType<string>,\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n level: { type: Number as PropType<number>, default: 1 },\n additionalProps: Object,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const headerContext = useInjectHeader()\n const tableSlotsContext = useInjectSlots()\n const { showPopupContent } = useInjectPopup()\n\n const columnDragging = computed(\n () => tableContext.draggingColumnKey.value === props.column.columnKey,\n )\n\n const mergeColumnResizable = computed(\n () => props.column.resizable ?? tableContext.columnResizable.value,\n )\n\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n const domRef = ref<HTMLDivElement>()\n\n if (props.level === 1) {\n useColumnDragHandler({\n column: computed(() => props.column),\n columnKey: computed(() => props.column.columnKey),\n disabled: computed(() => false),\n domRef,\n })\n }\n\n const showSorterTooltip = computed(() => {\n return undefined === props.column.showSorterTooltip\n ? tableContext.props.showSorterTooltip\n : props.column.showSorterTooltip\n })\n\n const tooltipProps = computed(() =>\n 'boolean' == typeof showSorterTooltip.value ? {} : showSorterTooltip.value,\n )\n\n const sorterInfo = computed(() => {\n const column = props.column\n const columnKey = column.columnKey\n const sorterState = tableContext.sorterStates.value.find(({ key }) => key === columnKey)\n const sorterOrder = sorterState ? sorterState.sortOrder : null\n const sortDirections = column.sortDirections || ['asc', 'desc']\n const nextSortOrder = sorterOrder\n ? sortDirections[sortDirections.indexOf(sorterOrder) + 1]\n : sortDirections[0]\n\n const { cancelSort, triggerAsc, triggerDesc } = tableContext.locale.value || {}\n let tip = cancelSort\n if (nextSortOrder === DESCEND) {\n tip = triggerDesc\n } else if (nextSortOrder === ASCEND) {\n tip = triggerAsc\n }\n return {\n columnKey,\n sorterState,\n sorterOrder,\n sortDirections,\n nextSortOrder,\n tip,\n showFilter:\n !!(\n column.filters ||\n column.filterDropdown ||\n (column.slots && column.slots.filterDropdown) ||\n column.customFilterDropdown\n ) && false !== column.showFilter,\n wrapText: props.column.wrapText === undefined ? props.wrapText : props.column.wrapText,\n }\n })\n const hasIcon = computed(() => sorterInfo.value.showFilter || !!tableSlotsContext.menuPopup)\n const cellBoxClass = computed(() => ({\n [`${props.prefixCls}-has-icon-column`]: hasIcon.value,\n [`${props.prefixCls}-cell-box`]: true,\n }))\n const titleClass = computed(() => {\n const { prefixCls } = props\n return {\n [`${prefixCls}-column-title`]: true,\n [`${prefixCls}-cell-box`]: !hasIcon.value,\n }\n })\n\n const widths = computed(() => {\n const {\n columnIndex = tableContext.columnKeyIndexMap.value[props.column.columnKey],\n colSpan = 1,\n } = props.column\n return tableContext.getColumnPosition(columnIndex!, colSpan)\n })\n\n const customColProps = computed(() =>\n (props.column.customHeaderCell || tableContext.props.customHeaderCell || (() => ({})))(\n props.column,\n ),\n )\n\n const colProps = computed(() => {\n const { columnIndex, colSpan = 1 } = props.column\n return Object.assign({}, customColProps.value, {\n colspan: colSpan,\n colstart: columnIndex,\n colend: colSpan + columnIndex - 1,\n ...props.additionalProps,\n })\n })\n\n const cellFixedInfo = computed(() => {\n if (autoHeight) {\n return getCellFixedInfo(\n colProps.value!.colstart,\n colProps.value!.colend,\n tableContext.allColumns.value as any,\n tableContext.stickyOffsets.value,\n tableContext.props.direction,\n )\n }\n return undefined\n })\n\n const cellClass = computed(() => {\n const { prefixCls, column } = props\n let cellFixedCls = {}\n if (cellFixedInfo.value && supportSticky) {\n const autoCellPrefixCls = `${prefixCls}-cell`,\n { fixLeft, fixRight, firstFixLeft, lastFixLeft, firstFixRight, lastFixRight } =\n cellFixedInfo.value\n cellFixedCls = {\n [`${autoCellPrefixCls}-fix-left`]: typeof fixLeft === 'number',\n [`${autoCellPrefixCls}-fix-left-first`]: firstFixLeft,\n [`${autoCellPrefixCls}-fix-left-last`]: lastFixLeft,\n [`${autoCellPrefixCls}-fix-right`]: typeof fixRight == 'number',\n [`${autoCellPrefixCls}-fix-right-first`]: firstFixRight,\n [`${autoCellPrefixCls}-fix-right-last`]: lastFixRight,\n }\n }\n return Object.assign(\n {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-first-cell`]: props.column.columnIndex === 0,\n [`${prefixCls}-header-cell`]: true,\n [column.class || '']: true,\n [column.className || '']: true,\n [`${prefixCls}-column-sort`]: sorterInfo.value.sorterOrder,\n [`${prefixCls}-column-has-sorters`]: column.sorter,\n [`${prefixCls}-drag-column-dragging`]: columnDragging.value,\n },\n cellFixedCls,\n )\n })\n\n const componentStyle = computed(() => {\n const styles: CSSProperties = {}\n if (cellFixedInfo.value && supportSticky) {\n const { fixLeft, fixRight } = cellFixedInfo.value\n if (typeof fixLeft == 'number') {\n styles.position = 'sticky'\n styles.left = `${fixLeft}px`\n }\n if (typeof fixRight == 'number') {\n styles.position = 'sticky'\n styles.right = `${fixRight}px`\n }\n }\n return autoHeight\n ? styles\n : { width: `${widths.value.width}px`, height: `${props.column.height}px` }\n })\n\n const selectedKeysRef = ref<FilterKey>([])\n const filterStates = computed(() => tableContext.filterStates.value)\n const columnKey = computed(() => props.column.columnKey)\n const filterState = computed(() =>\n filterStates.value.find(({ key }) => columnKey.value === key),\n )\n\n const changeFilter = (keys: FilterKey) => {\n const filteredKeys = keys?.length ? keys : null\n if (!(null !== filteredKeys || (filterState.value && filterState.value.filteredKeys)))\n return null\n if (\n isEqual(\n filteredKeys,\n null == filterState.value ? undefined : filterState.value.filteredKeys,\n )\n )\n return null\n const state = { column: props.column, key: columnKey.value, filteredKeys }\n tableContext?.changeFilter(state)\n }\n\n watch(\n filterState,\n () => {\n selectedKeysRef.value = filterState.value?.filteredKeys || []\n },\n { immediate: true },\n )\n\n const clearFilters = () => {\n selectedKeysRef.value = []\n changeFilter([])\n }\n const confirm = () => {\n changeFilter(selectedKeysRef.value)\n }\n\n const filtered = eagerComputed(() => {\n return !!selectedKeysRef.value?.length\n })\n\n const menuFilterProps = computed(() => ({\n prefixCls: props.prefixCls,\n setSelectedKeys: (keys: FilterKey) => {\n selectedKeysRef.value = keys || []\n },\n selectedKeysRef,\n confirm,\n clearFilters,\n filters: props.column.filters,\n }))\n\n const getPopupContainer = () => {\n return document.body\n }\n\n return {\n tableContext,\n sorterInfo,\n getPopupContainer,\n mergeColumnResizable,\n handleSortClick: (column: FinallyColumnType<any>, nextSortOrder: SortOrder) => {\n if (!column.sorter) return\n const sortState = {\n column,\n key: column.columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column),\n }\n tableContext.changeSorter(sortState)\n },\n cellClass,\n widths,\n colProps,\n RenderSlot,\n titleClass,\n domRef,\n autoHeight,\n componentStyle,\n headerContext,\n tableSlotsContext,\n cellBoxClass,\n showPopupContent,\n FilterItems,\n h,\n\n hasIcon,\n menuFilterProps,\n filtered,\n tooltipProps,\n showSorterTooltip,\n }\n },\n})\n</script>\n\n<template>\n <component\n v-if=\"colProps.colspan\"\n ref=\"domRef\"\n :is=\"component\"\n tabindex=\"-1\"\n role=\"cell\"\n :class=\"cellClass\"\n :style=\"componentStyle\"\n v-bind=\"colProps\"\n @click=\"handleSortClick(column, sorterInfo.nextSortOrder!)\"\n >\n <component :is=\"hasIcon ? 'div' : RenderSlot\" :class=\"cellBoxClass\">\n <span :class=\"titleClass\">\n <Tooltip v-if=\"column.sorter && showSorterTooltip\" v-bind=\"tooltipProps\" :getPopupContainer>\n <template #title>\n {{ sorterInfo.tip }}\n </template>\n <div :class=\"`${prefixCls}-column-sorters`\" :data-tip=\"sorterInfo.tip\">\n <Sorter :column=\"column\" v-bind=\"sorterInfo\" />\n </div>\n </Tooltip>\n <Sorter v-else :column=\"column\" v-bind=\"sorterInfo\" />\n </span>\n <FilterDropdown\n v-if=\"sorterInfo.showFilter\"\n :prefix-cls=\"`${prefixCls}-filter`\"\n :column=\"column\"\n />\n <span\n v-if=\"column.showMenu && tableSlotsContext.menuPopup\"\n :class=\"[\n `${prefixCls}-menu-popup-trigger`,\n 'hover' === column.showMenu && `${prefixCls}-menu-popup-trigger-hover`,\n ]\"\n @click.stop=\"\n showPopupContent(tableSlotsContext.menuPopup, $event, {\n column: column.originColumn,\n filter: menuFilterProps,\n })\n \"\n >\n <RenderVNode\n v-if=\"tableSlotsContext.menuIcon\"\n :vnode=\"\n tableSlotsContext.menuIcon({\n column: column.originColumn!,\n filtered: filtered,\n })\n \"\n />\n <MenuOutlined v-else />\n </span>\n </component>\n <DragHandle\n v-if=\"mergeColumnResizable && !(column.children && column.children.length)\"\n :prefix-cls=\"prefixCls\"\n :width=\"widths.width\"\n :min-width=\"widths.minWidth\"\n :max-width=\"widths.maxWidth\"\n :column=\"column\"\n />\n </component>\n</template>\n"],"names":["defineComponent","Sorter","Tooltip","DragHandle","FilterDropdown","MenuOutlined","RenderVNode","FilterItems","useInjectTable","useInjectHeader","useInjectSlots","useInjectPopup","computed","inject","AUTO_HEADER_HEIGHT","ref","useColumnDragHandler","columnKey","DESCEND","ASCEND","getCellFixedInfo","supportSticky","isEqual","watch","eagerComputed","getMultiplePriority","RenderSlot","h"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"InteralTable.vue.js","sources":["../../../../../../../../packages/components/table/src/components/InteralTable.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-01 09:29:27\n * @LastEditors: shen\n * @LastEditTime: 2025-12-02 17:16:36\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { WatchStopHandle } from 'vue'\nimport {\n computed,\n defineComponent,\n shallowRef,\n ref,\n watchEffect,\n inject,\n watch,\n toRaw,\n triggerRef,\n onActivated,\n isReactive,\n toRef,\n} from 'vue'\nimport { Spin, Pagination } from 'ant-design-vue'\nimport { baseTableProps } from './interface'\nimport { DOWN, LEFT, UP } from './Drag/constant'\nimport { addNestItemData, deleteNestItemData } from '../utils/util'\nimport { useEditProvider } from '../hooks/useEdit'\nimport { useProvidePopup } from './context/PopupContext'\nimport { useHScrollSyncProvide } from '../hooks/useHScrollSync'\nimport { useVScrollSyncProvide } from '../hooks/useVScrollSync'\nimport { useProvideTable } from './context/TableContext'\nimport { usePrefixCls } from '@pro-design-vue/hooks'\nimport { resize } from '@pro-design-vue/directives'\nimport { omit, debounce, isPromise } from '@pro-design-vue/utils'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\nimport { DEFAULT_LOCALE } from '@pro-design-vue/constants'\nimport { useInjectContainer } from '../hooks/useContainer'\nimport useKVMap from '../hooks/useKVMap'\nimport useLicense from '../hooks/useLicense'\nimport devWarning from '../utils/devWarning'\nimport eagerComputed from '../utils/eagerComputed'\nimport getScrollBarSize from '../utils/getScrollBarSize'\nimport useColumns from '../hooks/useColumns'\nimport useSorter from '../hooks/useSorter'\nimport useFilter from '../hooks/useFilter'\nimport useCal from '../hooks/useCal'\nimport useFlattenRecords from '../hooks/useFlattenRecords'\nimport useSelection from '../hooks/useRowSelection'\nimport usePagination, { getPaginationParam } from '../hooks/usePagination'\nimport raf from '../utils/raf'\nimport easeoutScroll from '../utils/easeoutScroll'\nimport useData from '../hooks/useData'\nimport supportSticky from '../utils/supportSticky'\nimport classNames from '../utils/classNames'\nimport useCellProps from '../hooks/useCellProps'\nimport TableSlotsContextProvider from './context/TableSlotsContext'\nimport MeasureWidth from './MeasureWidth.vue'\nimport PopupContainer from './PopupContainer.vue'\nimport AutoHeightHeader from './AutoHeightHeader/Header.vue'\nimport Header from './Header/Header.vue'\nimport Body from './Body/Body.vue'\nimport XScroll from './Scrollbar/XScroll'\n\nimport type { SpinProps } from 'ant-design-vue/es/spin'\nimport type {\n GetRowKey,\n Key,\n SorterResult,\n TableLocale,\n ColumnType,\n ResizeActionType,\n DragRowEventInfo,\n DragColumnEventInfo,\n DefaultRecordType,\n TableAction,\n} from './interface'\nimport type { CustomSlotsType } from '../utils/type'\nimport type { RangeCell } from '../hooks/RangeInterface'\nimport type { SortState } from '../hooks/useSorter'\nimport type { FilterState } from '../hooks/useFilter'\nimport type { ContextSlots } from './context/TableSlotsContext'\n\nexport type FilterValue = (Key | boolean)[]\nexport interface ChangeEventInfo<RecordType> {\n pagination: {\n current?: number\n pageSize?: number\n total?: number\n }\n filters: Record<string, FilterValue | null>\n sorter: SorterResult<RecordType> | SorterResult<RecordType>[]\n filterStates: FilterState<RecordType>[]\n sorterStates: SortState<RecordType>[]\n currentDataSource: RecordType[]\n action: TableAction\n}\nconst EMPTY_LIST: any[] = []\n\nexport default defineComponent({\n name: 'ProTable',\n inheritAttrs: false,\n directives: { resize },\n components: {\n TableSlotsContextProvider,\n Spin,\n MeasureWidth,\n Pagination,\n PopupContainer,\n AutoHeightHeader,\n ProHeader: Header,\n ProBody: Body,\n HorizontalScroll: XScroll,\n },\n props: baseTableProps(),\n emits: [\n 'update:pagination',\n 'scroll',\n 'update:selectedRowKeys',\n 'update:expandedRowKeys',\n 'update:columns',\n 'update:sorter',\n 'update:filters',\n 'expand',\n 'expandedRowsChange',\n 'resizeColumn',\n 'update:dataSource',\n 'cellKeydown',\n 'data-change',\n ],\n slots: {} as CustomSlotsType<ContextSlots>,\n setup(props, { expose, emit, slots }) {\n const { table } = useProConfigInject()\n const counter = useInjectContainer()\n const rowKey = computed(() => props.rowKey ?? table?.value?.rowKey ?? 'id')\n const popupContainer = shallowRef<any>(null)\n const customUiCls = usePrefixCls('custom-ui')\n useProvidePopup()\n const getPopupContainer = computed(() => props.getPopupContainer!)\n const { status, watermarkMsg } = useLicense()\n\n const dragRowsHandle = new Map<Key, Set<HTMLSpanElement>>()\n const draggingRowKey = ref<Key | null>(null)\n const insertToRowKey = ref<Key | null>(null)\n const dragColumnsHandle = new Map<Key, Set<HTMLDivElement>>()\n const draggingColumnKey = ref<Key>('')\n const latestRangeStartCell = shallowRef<RangeCell | null>(null)\n const mergedSummaryFixed = computed(() =>\n props.summaryFixed === true || props.summaryFixed === ('' as any)\n ? 'bottom'\n : (props.summaryFixed ?? table?.value?.summaryFixed ?? false),\n )\n const realHeaderHeight = ref(0)\n\n watchEffect(() => {\n devWarning(\n !(typeof rowKey.value == 'function' && rowKey.value.length > 1),\n 'table',\n '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.',\n )\n })\n\n const localeData: any = inject('localeData', {\n antLocale: {\n Table: {\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting',\n },\n },\n })\n\n const locale = computed<TableLocale>(() => {\n const antLocale = localeData?.antLocale || {}\n return {\n ...(antLocale.locale === DEFAULT_LOCALE.toLocaleLowerCase()\n ? {\n triggerDesc: '\\u70B9\\u51FB\\u964D\\u5E8F',\n triggerAsc: '\\u70B9\\u51FB\\u5347\\u5E8F',\n cancelSort: '\\u53D6\\u6D88\\u6392\\u5E8F',\n }\n : {}),\n ...(antLocale.Table || {}),\n ...(props.locale || {}),\n }\n })\n\n const scrollTop = ref(0)\n const scrollLeft = ref(0)\n const bodyWidth = ref(0)\n const bodyHeight = ref(0)\n const rootRef = ref<HTMLDivElement>()\n const paginationRef = ref<HTMLDivElement>()\n const measureWidthRef = shallowRef<HTMLDivElement>()\n\n const mergedScrollX = eagerComputed(() => props.scrollX ?? props.scroll?.x)\n const mergedScrollY = eagerComputed(() => props.scroll?.y ?? props.height ?? props.maxHeight)\n const bodyScrollWidth = ref(typeof mergedScrollX.value == 'number' ? mergedScrollX.value : 0)\n\n watch(mergedScrollX, () => {\n bodyScrollWidth.value = typeof mergedScrollX.value == 'number' ? mergedScrollX.value : 0\n })\n\n const virtual = eagerComputed<boolean>(() => !(props.virtual === false || !mergedScrollY.value))\n const xVirtual = eagerComputed<boolean>(\n () => props.xVirtual || (props.virtual !== false && props.xVirtual !== false),\n )\n\n const getRowKey = computed<GetRowKey>(() =>\n typeof rowKey.value == 'function'\n ? rowKey.value\n : (record: Record<string, any>) => {\n return record?.[rowKey.value as string]\n },\n )\n\n const rawData = shallowRef<DefaultRecordType[]>([])\n const rawColumns = shallowRef<ColumnType[]>([])\n\n let dataSourceWatchStopHandle: WatchStopHandle\n let columnsWatchStopHandle: WatchStopHandle\n watch(\n () => props.deepWatchDataSource,\n () => {\n dataSourceWatchStopHandle && dataSourceWatchStopHandle()\n dataSourceWatchStopHandle = watch(\n () => props.dataSource,\n () => {\n rawData.value = toRaw(props.dataSource) || EMPTY_LIST\n triggerRef(rawData)\n },\n { immediate: true, deep: !!props.deepWatchDataSource },\n )\n },\n { immediate: true, deep: true },\n )\n\n watch(\n () => props.deepWatchColumns,\n () => {\n columnsWatchStopHandle && columnsWatchStopHandle()\n columnsWatchStopHandle = watch(\n () => props.columns,\n () => {\n rawColumns.value = toRaw(props.columns) || EMPTY_LIST\n triggerRef(rawColumns)\n },\n { immediate: true, deep: true },\n )\n },\n { immediate: true, deep: !!props.deepWatchColumns },\n )\n\n watch(rawData, (newData) => {\n emit('data-change', newData)\n })\n\n const childrenColumnName = computed(\n () => props.childrenColumnName ?? table?.value?.childrenColumnName ?? 'children',\n )\n\n const expandIconType = computed(\n () => props.expandIconType ?? table?.value?.expandIconType ?? 'default',\n )\n\n const { getRecordByKey, getIndexsByKey, getKeyByIndexs, allDataRowKeys, allDataRootRowKeys } =\n useKVMap(rawData, childrenColumnName, getRowKey)\n\n const defaultExpandedRowKeys = shallowRef<Key[]>([])\n watchEffect(() => {\n props.defaultExpandedRowKeys && (defaultExpandedRowKeys.value = props.defaultExpandedRowKeys)\n props.defaultExpandAllRows && (defaultExpandedRowKeys.value = allDataRowKeys.value)\n })\n\n const mergedRowSelection = computed(() => {\n const rowSelection = props.rowSelection || {}\n const { checkStrictly = true } = rowSelection\n return { ...rowSelection, checkStrictly }\n })\n\n const expandedRowKeys = computed(\n () => new Set(props.expandedRowKeys || defaultExpandedRowKeys.value || []),\n )\n\n const spinProps = computed<SpinProps>(() => {\n if (typeof props.loading === 'boolean') {\n return { spinning: props.loading }\n } else if (typeof props.loading === 'object') {\n return { spinning: true, ...props.loading }\n } else {\n return { spinning: false }\n }\n })\n\n const {\n validateRowData,\n addEditRecord,\n cancelEditable,\n startEditable,\n saveEditable,\n isEditable,\n validateTableData,\n } = useEditProvider(props, {\n getIndexsByKey,\n getRecordByKey,\n rawData,\n getRowKey,\n })\n\n onActivated(() => {\n scrollTo({ left: 0, top: 0 })\n })\n\n let triggerOnChange: any = () => {}\n\n const scrollBarSize = shallowRef(getScrollBarSize())\n const baseHeight = computed(() =>\n props.size === 'small' ? 39 : props.size === 'middle' ? 47 : 55,\n )\n const expandedRowRender = computed(() => props.expandedRowRender)\n const expandType = eagerComputed(() =>\n rawData.value.some((column) => column?.[childrenColumnName.value]?.length)\n ? 'nest'\n : expandedRowRender.value\n ? 'row'\n : null,\n )\n const expandable = eagerComputed(() => !!props.expandedRowRender)\n\n const columns = useColumns({\n props,\n rawColumns,\n bodyScrollWidth,\n baseHeight,\n measureWidthRef,\n expandable,\n expandType,\n scrollLeft,\n bodyWidth,\n xVirtual,\n draggingColumnKey,\n latestRangeStartCell,\n })\n\n const { sortedData, sorterStates, sorter, changeSorter } = useSorter(\n props,\n rawData,\n columns.allColumns,\n (sorter, sorterStates) => {\n scrollTop.value > bodyHeight.value && updateAnimate()\n triggerOnChange({ sorter, sorterStates }, 'sort', false)\n },\n )\n\n const { filterData, filterStates, filters, changeFilter } = useFilter(\n props,\n sortedData,\n columns.allColumns,\n (filters, filterStates) => {\n triggerOnChange({ filters, filterStates }, 'filter', true)\n },\n )\n\n const total = eagerComputed(() => filterData.value.length)\n const paginationParam = computed(() => {\n if (props.pagination === false) {\n return {}\n }\n return getPaginationParam(props.pagination, mergedPagination.value)\n })\n\n const triggeronPaginationChange = (current: number, pageSize: number) => {\n const pagination = { ...paginationParam.value, current, pageSize }\n props['onUpdate:pagination'] &&\n emit(\n 'update:pagination',\n isReactive(props.pagination)\n ? Object.assign(props.pagination || {}, pagination)\n : pagination,\n )\n }\n\n const {\n mergedPagination,\n pos,\n refreshPagination,\n onChange: onPaginationChange,\n onShowSizeChange,\n pageData,\n } = usePagination(total, props, filterData, (current, pageSize) => {\n const pagination = { ...paginationParam.value, current, pageSize }\n triggeronPaginationChange(current, pageSize)\n updateAnimate()\n triggerOnChange({ pagination }, 'paginate')\n })\n\n const {\n flattenData,\n keyEntities,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n checkboxPropsMap,\n getRowFlattenIndexByKey,\n isMyChildren,\n getRowByFlattenIndex,\n } = useFlattenRecords(\n pageData,\n childrenColumnName,\n expandedRowKeys,\n getRowKey,\n expandType,\n mergedRowSelection,\n )\n\n const cal = useCal(props, flattenData, bodyHeight, scrollTop, virtual, keyEntities)\n\n const { rowPosition, viewportHeight, startIndex, endIndex } = cal\n const { leftWidth, rightWidth, centerWidth, bodyMaxWidth } = columns\n\n const selection = useSelection(props, mergedRowSelection, rawData, {\n prefixCls: computed(() => props.prefixCls!),\n pageData,\n getRowKey,\n getRecordByKey,\n childrenColumnName,\n locale,\n flattenData,\n keyEntities,\n checkboxPropsMap,\n allDataRowKeys,\n allDataRootRowKeys,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n })\n\n const bodyRef = ref<HTMLDivElement>()\n let leftRaf: any, topRaf: any\n\n const scrollTo = (options: any = {}, type = 'auto', isAnimate = false) => {\n if (!isAnimate) {\n updateAnimate()\n }\n const mergeOptions = typeof options == 'number' ? { top: options } : options\n let left, top\n if ('left' in mergeOptions) {\n left = mergeOptions.left || 0\n } else if ('columnIndex' in mergeOptions) {\n const position = columns.getColumnPosition(mergeOptions.columnIndex!)\n if (position) {\n left = position.left - leftWidth.value\n }\n } else if ('columnKey' in mergeOptions) {\n const position = columns.getColumnPositionByKey(mergeOptions.columnKey!)\n if (position) {\n left = position.left - leftWidth.value\n }\n }\n if ('top' in mergeOptions) {\n top = Math.min(Math.max(mergeOptions.top || 0, 0), maxScrollTop.value)\n } else if ('rowKey' in mergeOptions) {\n const pos = cal.getRowPositionByKey(mergeOptions.rowKey!)\n if (pos) {\n top = pos\n }\n }\n\n left = Math.max(Math.min(maxScrollLeft.value, left || 0), 0)\n if (!showVerticalScrollbar.value) {\n top = 0\n }\n if (type === 'smooth') {\n if (left !== undefined) {\n raf.cancel(leftRaf)\n leftRaf = easeoutScroll(scrollLeft.value, left, (val: number) => {\n scrollLeft.value = val\n })\n }\n if (top !== undefined) {\n raf.cancel(topRaf)\n topRaf = easeoutScroll(scrollTop.value, top, (val: number) => {\n scrollTop.value = val\n })\n }\n } else {\n if (left !== undefined) {\n scrollLeft.value = left\n }\n if (top !== undefined) {\n scrollTop.value = top\n }\n }\n }\n\n const useAnimate = ref(false)\n const animateRows = computed(() => {\n return !!(props.animateRows ?? table?.value?.animateRows)\n })\n\n let timer: any\n watch(\n animateRows,\n (newVal) => {\n useAnimate.value = newVal\n },\n { immediate: true },\n )\n\n const updateAnimate = () => {\n useAnimate.value = false\n clearTimeout(timer)\n timer = setTimeout(() => {\n useAnimate.value = animateRows.value\n }, 100)\n }\n\n const maxScrollLeft = computed(() => bodyMaxWidth.value - bodyWidth.value)\n const maxScrollTop = computed(() => viewportHeight.value - bodyHeight.value)\n const onScroll = (e) => {\n emit('scroll', e)\n }\n\n useHScrollSyncProvide({ scrollLeft, maxScrollLeft, onScroll, bodyWidth })\n useVScrollSyncProvide({ scrollTop, maxScrollTop, onScroll, updateAnimate, bodyWidth })\n\n const { data, pos: dataRowPosition } = useData(\n props,\n rowPosition,\n flattenData,\n startIndex,\n endIndex,\n draggingRowKey,\n useAnimate,\n getRowFlattenIndexByKey,\n latestRangeStartCell,\n )\n\n const pingedLeft = ref(false)\n const pingedRight = ref(false)\n const noPinged = ref(false)\n\n watchEffect(() => {\n pingedLeft.value = supportSticky && !!scrollLeft.value\n pingedRight.value =\n supportSticky &&\n centerWidth.value - (bodyWidth.value - leftWidth.value - rightWidth.value) >\n scrollLeft.value\n noPinged.value = !pingedLeft.value && !pingedRight.value\n })\n\n const rootClass = computed(() =>\n classNames({\n [`${props.prefixCls}`]: true,\n [`${props.prefixCls}-support-sticky`]: supportSticky,\n [`${props.prefixCls}-stripe`]: props.stripe,\n [`${props.prefixCls}-bordered`]: props.bordered ?? table?.value?.bordered,\n [`${props.prefixCls}-${props.size}`]: true,\n [`${props.prefixCls}-ping-left`]: pingedLeft.value,\n [`${props.prefixCls}-ping-right`]: pingedRight.value,\n [`${props.prefixCls}-no-ping`]: noPinged.value,\n [`${props.prefixCls}-has-animate`]: animateRows.value,\n }),\n )\n const rootStyle = computed(() => ({\n height: typeof props.height == 'number' ? `${props.height}px` : props.height,\n maxHeight: typeof props.maxHeight == 'number' ? `${props.maxHeight}px` : props.maxHeight,\n minHeight: typeof props.minHeight == 'number' ? `${props.minHeight}px` : props.minHeight,\n }))\n\n const showHorizontalScrollbar = ref(false)\n const debounceFn = debounce(() => {\n showHorizontalScrollbar.value = bodyMaxWidth.value > bodyWidth.value\n if (bodyWidth.value > bodyScrollWidth.value) {\n bodyScrollWidth.value = bodyWidth.value\n }\n }, 100)\n\n watch([bodyMaxWidth, bodyWidth], () => {\n debounceFn()\n })\n\n const showVerticalScrollbar = eagerComputed(\n () => !!mergedScrollY.value && bodyHeight.value + 0.9 < viewportHeight.value,\n )\n const scrollToFirstRow = eagerComputed(\n () => !props.scroll || (props.scroll && props.scroll.scrollToFirstRowOnChange !== false),\n )\n\n triggerOnChange = (\n info: Partial<ChangeEventInfo<DefaultRecordType>>,\n action: TableAction,\n reset = false,\n ) => {\n if (reset) {\n refreshPagination()\n triggeronPaginationChange(1, mergedPagination.value.pageSize!)\n if (props.pagination) {\n props.pagination.onChange?.(1, mergedPagination.value.pageSize)\n }\n }\n if (scrollToFirstRow.value) {\n scrollTop.value = 0\n }\n props.onChange?.(\n info.pagination || mergedPagination.value,\n info.filters || filters.value,\n info.sorter || sorter.value,\n {\n currentDataSource: info.currentDataSource || filterData.value,\n action,\n },\n )\n }\n\n const paginationProps = computed(() => {\n return omit(mergedPagination.value, [\n 'position',\n 'onChange',\n 'onShowSizeChange',\n 'fieldNames',\n ])\n })\n\n const paginationClass = computed(() => {\n return {\n [`${props.prefixCls}-pagination`]: true,\n [`${props.prefixCls}-pagination-${pos.value.bottom}`]: true,\n [`${customUiCls}`]: true,\n }\n })\n const bottomPaginationHeight = ref(0)\n const bottomPaginationStyle = computed<any>(() => {\n if (!props.paginationSticky || counter.hasFullScreen.value || !!props.height) {\n return {}\n }\n if (props.paginationSticky === true) {\n return { position: 'sticky', 'z-index': 9, bottom: '0px' }\n }\n return {\n position: 'sticky',\n 'z-index': 9,\n bottom: `${props.paginationSticky?.offsetBottom ?? 0}px`,\n }\n })\n\n const indentSize = computed(() => (typeof props.indentSize == 'number' ? props.indentSize : 15))\n\n const cellProps = useCellProps({\n leftColumns: columns.leftColumns,\n rightColumns: columns.rightColumns,\n visibleCenterColumns: columns.visibleCenterColumns,\n allColumns: columns.allColumns,\n data,\n mergedRowHeights: cal.mergedRowHeights,\n startIndex,\n getColumnPosition: columns.getColumnPosition,\n bodyWidth,\n leftWidth,\n centerWidth,\n getRowHeight: cal.getRowHeight,\n customCell: toRef(props, 'customCell'),\n cancelEditable,\n startEditable,\n saveEditable,\n isEditable,\n })\n\n watch(\n [realHeaderHeight, scrollLeft],\n () => {\n popupContainer.value?.alignPopup?.()\n },\n { flush: 'post' },\n )\n\n useProvideTable({\n ...cal,\n ...columns,\n ...cellProps,\n cancelEditable,\n startEditable,\n saveEditable,\n isEditable,\n rootRef,\n rawData,\n getRowFlattenIndexByKey,\n prefixCls: computed(() => props.prefixCls!),\n draggingRowKey,\n insertToRowKey,\n status,\n useAnimate,\n animateRows,\n expandIconType,\n watermarkMsg,\n onResizeColumn: (w: number, col: ColumnType, action: ResizeActionType) => {\n const width = col.width\n const result = props.onResizeColumn?.(w, col, action)\n if (result !== false) {\n if (!(width === w && col.width === w)) {\n col.width = width !== col.width ? col.width : w\n triggerRef(rawColumns)\n }\n if (action === 'end') {\n emit('update:columns', rawColumns.value, 'resize')\n }\n }\n },\n onRowDragEnd: (opt: DragRowEventInfo) => {\n const { insertToRowKey, record, fromIndexs, rowKey, dir, preTargetInfo, nextTargetInfo } =\n opt\n const rawRecord = toRaw(record)\n const dragEnd = props.onRowDragEnd?.({ ...opt, record: rawRecord, fromIndexs })\n if (dragEnd === false) {\n return\n }\n\n const handler = () => {\n if (!isMyChildren(rowKey, preTargetInfo?.rowKey as Key) && insertToRowKey !== rowKey) {\n if (insertToRowKey !== null) {\n const parentRecord = getRecordByKey(insertToRowKey)\n if (\n insertToRowKey === preTargetInfo?.rowKey ||\n insertToRowKey === nextTargetInfo?.rowKey\n ) {\n if (dir === DOWN) {\n addNestItemData(\n parentRecord[childrenColumnName.value],\n [],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n parentRecord[childrenColumnName.value],\n [],\n childrenColumnName.value,\n rawRecord,\n )\n }\n } else {\n if (dir === DOWN) {\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs as number[],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs as number[],\n childrenColumnName.value,\n rawRecord,\n )\n }\n }\n } else {\n if (dir === DOWN && preTargetInfo) {\n addNestItemData(\n rawData.value,\n [preTargetInfo.indexs[0]!],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else if (dir === UP && nextTargetInfo) {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs ? [preTargetInfo!.indexs[0]!] : [],\n childrenColumnName.value,\n rawRecord,\n )\n }\n }\n triggerRef(rawData)\n emit('update:dataSource', rawData.value)\n }\n }\n if (isPromise(dragEnd)) {\n dragEnd\n .then(() => {\n handler()\n })\n .catch(() => {})\n } else {\n handler()\n }\n },\n virtual,\n xVirtual,\n dataRowPosition,\n rawColumns,\n bodyHeight,\n scrollTop,\n scrollLeft,\n supportSticky,\n childrenColumnName,\n bodyScrollWidth,\n baseHeight,\n startIndex,\n data,\n pageData,\n getRecordByKey,\n getIndexsByKey,\n expandType,\n flattenData,\n expandedRowKeys,\n indentSize,\n props,\n bodyWidth,\n scrollTo,\n scrollBarSize,\n leftWidth,\n rightWidth,\n centerWidth,\n showVerticalScrollbar,\n showHorizontalScrollbar,\n getRowKey,\n selection,\n updateSelectedRowKeys: (keys: Key[]) => {\n emit('update:selectedRowKeys', keys)\n },\n locale,\n sorterStates,\n changeSorter,\n changeFilter,\n filterStates,\n onTriggerExpand: (record, key: Key) => {\n let keys: Key[]\n const hasKey = expandedRowKeys.value.has(key)\n if (hasKey) {\n expandedRowKeys.value.delete(key)\n keys = [...expandedRowKeys.value]\n } else {\n keys = [...expandedRowKeys.value, key]\n }\n defaultExpandedRowKeys.value = keys\n emit('update:expandedRowKeys', keys)\n emit('expand', !hasKey, record)\n emit('expandedRowsChange', keys)\n },\n keyEntities,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n checkboxPropsMap,\n mergedRowSelection,\n getPopupContainer,\n allDataRowKeys,\n allDataRootRowKeys,\n dragRowsHandle,\n isMyChildren,\n getKeyByIndexs,\n getRowByFlattenIndex,\n draggingColumnKey,\n dragColumnsHandle,\n onColumnDragEnd: (arg: DragColumnEventInfo) => {\n const { dir, column, targetColumn } = arg\n const dragEnd = props.onColumnDragEnd?.(arg)\n if (dragEnd === false) {\n return\n }\n\n const handler = () => {\n if (column === targetColumn || column.key === targetColumn.key) return\n const index = rawColumns.value.findIndex(\n (col) => col === column || col.key === column.key,\n )\n const targetIndex = rawColumns.value.findIndex(\n (col) => col === targetColumn || col.key === targetColumn.key,\n )\n if (dir === LEFT) {\n rawColumns.value.splice(index, 1)\n rawColumns.value.splice(targetIndex, 0, column)\n } else {\n rawColumns.value.splice(targetIndex + 1, 0, column)\n rawColumns.value.splice(index, 1)\n }\n triggerRef(rawColumns)\n emit('update:columns', rawColumns.value, 'drag')\n }\n\n if (isPromise(dragEnd)) {\n dragEnd\n .then(() => {\n handler()\n })\n .catch(() => {})\n } else {\n handler()\n }\n },\n onColumnDrag: () => {},\n columnDrag: computed(() => props.columnDrag),\n summaryFixed: mergedSummaryFixed,\n realHeaderHeight,\n bottomPaginationHeight,\n pos,\n })\n\n const tabGuardTopRef = ref()\n const tabGuardBottomRef = ref()\n\n expose({\n scrollTo,\n scrollLeft,\n scrollTop,\n rootRef,\n paginationRef,\n validateRowData,\n addEditRecord,\n cancelEditable,\n startEditable,\n saveEditable,\n validateTableData,\n bodyRef: computed(() => {\n return (bodyRef.value as any)?.bodyRef\n }),\n })\n\n return {\n bodyRef,\n spinProps,\n rowPosition,\n viewportHeight,\n startIndex,\n data,\n watermarkMsg,\n rootStyle,\n rootClass,\n watermarkStyle: computed<any>(() => ({\n minWidth: '100px!important',\n minHeight: '40px!important',\n position: 'absolute!important',\n fontSize: '20px!important',\n opacity: '0.8!important',\n bottom: '40px!important',\n right: '40px!important',\n pointerEvents: 'none',\n display: 'block!important',\n zIndex: '999999!important',\n color: '#000000!important',\n margin: '0px!important',\n padding: '0px!important',\n transform: 'unset!important',\n })),\n mergedPagination,\n pos,\n onPaginationChange,\n scrollBarSize,\n scrollTop,\n bodyScrollWidth,\n bodyWidth,\n scrollLeft,\n cal,\n selection,\n locale,\n paginationProps,\n slots,\n mergedScrollX,\n mergedScrollY,\n bodyHeight,\n measureWidthRef,\n flattenData,\n rootRef,\n paginationRef,\n mergedSummaryFixed,\n handleResize: (e: CustomEvent) => {\n realHeaderHeight.value = e.detail.height\n },\n handlePaginationResize: (e: CustomEvent) => {\n bottomPaginationHeight.value = e.detail.height\n },\n popupContainer,\n tabGuardTopRef,\n tabGuardBottomRef,\n onShowSizeChange,\n customUiCls,\n paginationClass,\n bottomPaginationStyle,\n }\n },\n})\n</script>\n\n<template>\n <TableSlotsContextProvider :value=\"{ ...slots }\">\n <Spin v-bind=\"spinProps\">\n <Pagination\n v-if=\"pos.top\"\n :class=\"`${prefixCls}-pagination ${prefixCls}-pagination-${pos.top} ${customUiCls}`\"\n v-bind=\"paginationProps\"\n @change=\"onPaginationChange\"\n @show-size-change=\"onShowSizeChange\"\n />\n <div\n ref=\"tabGuardTopRef\"\n role=\"presentation\"\n tabindex=\"0\"\n :style=\"{ position: 'absolute', width: '0', height: '0' }\"\n ></div>\n <div key=\"content\" ref=\"rootRef\" :class=\"rootClass\" :style=\"rootStyle\">\n <template v-if=\"showHeader\">\n <AutoHeightHeader\n v-if=\"autoHeaderHeight\"\n :prefix-cls=\"prefixCls\"\n :sticky=\"sticky\"\n @resizeheight=\"handleResize\"\n />\n <ProHeader v-else :prefix-cls=\"prefixCls\" :sticky=\"sticky\" @resizeheight=\"handleResize\" />\n </template>\n <ProBody\n ref=\"bodyRef\"\n v-model:bodyScrollWidth=\"bodyScrollWidth\"\n v-model:bodyWidth=\"bodyWidth\"\n v-model:bodyHeight=\"bodyHeight\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n :scroll-x=\"mergedScrollX\"\n :height=\"mergedScrollY\"\n :summary-fixed=\"mergedSummaryFixed\"\n :summary=\"$slots.summary\"\n :empty-text=\"$slots.emptyText\"\n />\n </div>\n <HorizontalScroll />\n <div\n ref=\"tabGuardBottomRef\"\n role=\"presentation\"\n tabindex=\"0\"\n :style=\"{ position: 'absolute', width: '0', height: '0' }\"\n ></div>\n <div v-if=\"$slots.footer\" key=\"footer\" :class=\"`${prefixCls}-footer`\">\n <slot name=\"footer\" />\n </div>\n <PopupContainer ref=\"popupContainer\" :prefix-cls=\"prefixCls\" />\n <div\n v-if=\"pos.bottom\"\n v-resize:height\n ref=\"paginationRef\"\n :style=\"bottomPaginationStyle\"\n :class=\"`${prefixCls}-pagination-wrap ${prefixCls}-pagination-wrap-${size}`\"\n @resizeheight=\"handlePaginationResize\"\n >\n <Pagination\n :class=\"paginationClass\"\n v-bind=\"paginationProps\"\n @change=\"onPaginationChange\"\n @show-size-change=\"onShowSizeChange\"\n />\n </div>\n </Spin>\n <MeasureWidth ref=\"measureWidthRef\" />\n </TableSlotsContextProvider>\n</template>\n"],"names":["_createBlock","_createVNode","_normalizeProps","_guardReactiveProps","_withCtx","_openBlock","_mergeProps","_createCommentVNode","_createElementVNode","_normalizeClass","_normalizeStyle","_createElementBlock","_Fragment","_renderSlot","_withDirectives"],"mappings":"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"}
1
+ {"version":3,"file":"InteralTable.vue.js","sources":["../../../../../../../../packages/components/table/src/components/InteralTable.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-01 09:29:27\n * @LastEditors: shen\n * @LastEditTime: 2026-01-22 10:34:57\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { WatchStopHandle } from 'vue'\nimport {\n computed,\n defineComponent,\n shallowRef,\n ref,\n watchEffect,\n inject,\n watch,\n toRaw,\n triggerRef,\n onActivated,\n isReactive,\n toRef,\n} from 'vue'\nimport { Spin, Pagination } from 'ant-design-vue'\nimport { baseTableProps } from './interface'\nimport { DOWN, LEFT, UP } from './Drag/constant'\nimport { addNestItemData, deleteNestItemData } from '../utils/util'\nimport { useEditProvider } from '../hooks/useEdit'\nimport { useProvidePopup } from './context/PopupContext'\nimport { useHScrollSyncProvide } from '../hooks/useHScrollSync'\nimport { useVScrollSyncProvide } from '../hooks/useVScrollSync'\nimport { useProvideTable } from './context/TableContext'\nimport { usePrefixCls } from '@pro-design-vue/hooks'\nimport { resize } from '@pro-design-vue/directives'\nimport { omit, debounce, isPromise } from '@pro-design-vue/utils'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\nimport { DEFAULT_LOCALE } from '@pro-design-vue/constants'\nimport { useInjectContainer } from '../hooks/useContainer'\nimport useKVMap from '../hooks/useKVMap'\nimport useLicense from '../hooks/useLicense'\nimport devWarning from '../utils/devWarning'\nimport eagerComputed from '../utils/eagerComputed'\nimport getScrollBarSize from '../utils/getScrollBarSize'\nimport useColumns from '../hooks/useColumns'\nimport useSorter from '../hooks/useSorter'\nimport useFilter from '../hooks/useFilter'\nimport useCal from '../hooks/useCal'\nimport useFlattenRecords from '../hooks/useFlattenRecords'\nimport useSelection from '../hooks/useRowSelection'\nimport usePagination, { getPaginationParam } from '../hooks/usePagination'\nimport raf from '../utils/raf'\nimport easeoutScroll from '../utils/easeoutScroll'\nimport useData from '../hooks/useData'\nimport supportSticky from '../utils/supportSticky'\nimport classNames from '../utils/classNames'\nimport useCellProps from '../hooks/useCellProps'\nimport TableSlotsContextProvider from './context/TableSlotsContext'\nimport MeasureWidth from './MeasureWidth.vue'\nimport PopupContainer from './PopupContainer.vue'\nimport AutoHeightHeader from './AutoHeightHeader/Header.vue'\nimport Header from './Header/Header.vue'\nimport Body from './Body/Body.vue'\nimport XScroll from './Scrollbar/XScroll'\n\nimport type { SpinProps } from 'ant-design-vue/es/spin'\nimport type {\n GetRowKey,\n Key,\n SorterResult,\n TableLocale,\n ColumnType,\n ResizeActionType,\n DragRowEventInfo,\n DragColumnEventInfo,\n DefaultRecordType,\n TableAction,\n} from './interface'\nimport type { CustomSlotsType } from '../utils/type'\nimport type { RangeCell } from '../hooks/RangeInterface'\nimport type { SortState } from '../hooks/useSorter'\nimport type { FilterState } from '../hooks/useFilter'\nimport type { ContextSlots } from './context/TableSlotsContext'\n\nexport type FilterValue = (Key | boolean)[]\nexport interface ChangeEventInfo<RecordType> {\n pagination: {\n current?: number\n pageSize?: number\n total?: number\n }\n filters: Record<string, FilterValue | null>\n sorter: SorterResult<RecordType> | SorterResult<RecordType>[]\n filterStates: FilterState<RecordType>[]\n sorterStates: SortState<RecordType>[]\n currentDataSource: RecordType[]\n action: TableAction\n}\nconst EMPTY_LIST: any[] = []\n\nexport default defineComponent({\n name: 'ProTable',\n inheritAttrs: false,\n directives: { resize },\n components: {\n TableSlotsContextProvider,\n Spin,\n MeasureWidth,\n Pagination,\n PopupContainer,\n AutoHeightHeader,\n ProHeader: Header,\n ProBody: Body,\n HorizontalScroll: XScroll,\n },\n props: baseTableProps(),\n emits: [\n 'update:pagination',\n 'scroll',\n 'update:selectedRowKeys',\n 'update:expandedRowKeys',\n 'update:columns',\n 'update:sorter',\n 'update:filters',\n 'expand',\n 'expandedRowsChange',\n 'resizeColumn',\n 'update:dataSource',\n 'cellKeydown',\n 'data-change',\n ],\n slots: {} as CustomSlotsType<ContextSlots>,\n setup(props, { expose, emit, slots }) {\n const { table } = useProConfigInject()\n const counter = useInjectContainer()\n const rowKey = computed(() => props.rowKey ?? table?.value?.rowKey ?? 'id')\n const popupContainer = shallowRef<any>(null)\n const customUiCls = usePrefixCls('custom-ui')\n useProvidePopup()\n const getPopupContainer = computed(() => props.getPopupContainer!)\n const { status, watermarkMsg } = useLicense()\n\n const dragRowsHandle = new Map<Key, Set<HTMLSpanElement>>()\n const draggingRowKey = ref<Key | null>(null)\n const insertToRowKey = ref<Key | null>(null)\n const dragColumnsHandle = new Map<Key, Set<HTMLDivElement>>()\n const draggingColumnKey = ref<Key>('')\n const latestRangeStartCell = shallowRef<RangeCell | null>(null)\n const mergedSummaryFixed = computed(() =>\n props.summaryFixed === true || props.summaryFixed === ('' as any)\n ? 'bottom'\n : (props.summaryFixed ?? table?.value?.summaryFixed ?? false),\n )\n const realHeaderHeight = ref(0)\n\n watchEffect(() => {\n devWarning(\n !(typeof rowKey.value == 'function' && rowKey.value.length > 1),\n 'table',\n '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.',\n )\n })\n\n const localeData: any = inject('localeData', {\n antLocale: {\n Table: {\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting',\n },\n },\n })\n\n const locale = computed<TableLocale>(() => {\n const antLocale = localeData?.antLocale || {}\n return {\n ...(antLocale.locale === DEFAULT_LOCALE.toLocaleLowerCase()\n ? {\n triggerDesc: '\\u70B9\\u51FB\\u964D\\u5E8F',\n triggerAsc: '\\u70B9\\u51FB\\u5347\\u5E8F',\n cancelSort: '\\u53D6\\u6D88\\u6392\\u5E8F',\n }\n : {}),\n ...(antLocale.Table || {}),\n ...(props.locale || {}),\n }\n })\n\n const scrollTop = ref(0)\n const scrollLeft = ref(0)\n const bodyWidth = ref(0)\n const bodyHeight = ref(0)\n const rootRef = ref<HTMLDivElement>()\n const paginationRef = ref<HTMLDivElement>()\n const measureWidthRef = shallowRef<HTMLDivElement>()\n\n const mergedScrollX = eagerComputed(() => props.scrollX ?? props.scroll?.x)\n const mergedScrollY = eagerComputed(() => props.scroll?.y ?? props.height ?? props.maxHeight)\n const bodyScrollWidth = ref(typeof mergedScrollX.value == 'number' ? mergedScrollX.value : 0)\n\n watch(mergedScrollX, () => {\n bodyScrollWidth.value = typeof mergedScrollX.value == 'number' ? mergedScrollX.value : 0\n })\n\n const virtual = eagerComputed<boolean>(() => !(props.virtual === false || !mergedScrollY.value))\n const xVirtual = eagerComputed<boolean>(\n () => props.xVirtual || (props.virtual !== false && props.xVirtual !== false),\n )\n\n const getRowKey = computed<GetRowKey>(() =>\n typeof rowKey.value == 'function'\n ? rowKey.value\n : (record: Record<string, any>) => {\n return record?.[rowKey.value as string]\n },\n )\n\n const rawData = shallowRef<DefaultRecordType[]>([])\n const rawColumns = shallowRef<ColumnType[]>([])\n\n let dataSourceWatchStopHandle: WatchStopHandle\n let columnsWatchStopHandle: WatchStopHandle\n watch(\n () => props.deepWatchDataSource,\n () => {\n dataSourceWatchStopHandle && dataSourceWatchStopHandle()\n dataSourceWatchStopHandle = watch(\n () => props.dataSource,\n () => {\n rawData.value = toRaw(props.dataSource) || EMPTY_LIST\n triggerRef(rawData)\n },\n { immediate: true, deep: !!props.deepWatchDataSource },\n )\n },\n { immediate: true, deep: true },\n )\n\n watch(\n () => props.deepWatchColumns,\n () => {\n columnsWatchStopHandle && columnsWatchStopHandle()\n columnsWatchStopHandle = watch(\n () => props.columns,\n () => {\n rawColumns.value = toRaw(props.columns) || EMPTY_LIST\n triggerRef(rawColumns)\n },\n { immediate: true, deep: true },\n )\n },\n { immediate: true, deep: !!props.deepWatchColumns },\n )\n\n watch(rawData, (newData) => {\n emit('data-change', newData)\n })\n\n const childrenColumnName = computed(\n () => props.childrenColumnName ?? table?.value?.childrenColumnName ?? 'children',\n )\n\n const expandIconType = computed(\n () => props.expandIconType ?? table?.value?.expandIconType ?? 'default',\n )\n\n const { getRecordByKey, getIndexsByKey, getKeyByIndexs, allDataRowKeys, allDataRootRowKeys } =\n useKVMap(rawData, childrenColumnName, getRowKey)\n\n const defaultExpandedRowKeys = shallowRef<Key[]>([])\n watchEffect(() => {\n props.defaultExpandedRowKeys && (defaultExpandedRowKeys.value = props.defaultExpandedRowKeys)\n props.defaultExpandAllRows && (defaultExpandedRowKeys.value = allDataRowKeys.value)\n })\n\n const mergedRowSelection = computed(() => {\n const rowSelection = props.rowSelection || {}\n const { checkStrictly = true } = rowSelection\n return { ...rowSelection, checkStrictly }\n })\n\n const expandedRowKeys = computed(\n () => new Set(props.expandedRowKeys || defaultExpandedRowKeys.value || []),\n )\n\n const spinProps = computed<SpinProps>(() => {\n if (typeof props.loading === 'boolean') {\n return { spinning: props.loading }\n } else if (typeof props.loading === 'object') {\n return { spinning: true, ...props.loading }\n } else {\n return { spinning: false }\n }\n })\n\n const {\n validateRowData,\n addEditRecord,\n cancelEditable,\n startEditable,\n saveEditable,\n isEditable,\n validateTableData,\n } = useEditProvider(props, {\n getIndexsByKey,\n getRecordByKey,\n rawData,\n getRowKey,\n })\n\n onActivated(() => {\n scrollTo({ left: 0, top: 0 })\n })\n\n let triggerOnChange: any = () => {}\n\n const scrollBarSize = shallowRef(getScrollBarSize())\n const baseHeight = computed(() =>\n props.size === 'small' ? 39 : props.size === 'middle' ? 47 : 55,\n )\n const expandedRowRender = computed(() => props.expandedRowRender)\n const expandType = eagerComputed(() =>\n rawData.value.some((column) => column?.[childrenColumnName.value]?.length)\n ? 'nest'\n : expandedRowRender.value\n ? 'row'\n : null,\n )\n const expandable = eagerComputed(() => !!props.expandedRowRender)\n\n const columns = useColumns({\n props,\n rawColumns,\n bodyScrollWidth,\n baseHeight,\n measureWidthRef,\n expandable,\n expandType,\n scrollLeft,\n bodyWidth,\n xVirtual,\n draggingColumnKey,\n latestRangeStartCell,\n })\n\n const { sortedData, sorterStates, sorter, changeSorter } = useSorter(\n props,\n rawData,\n columns.allColumns,\n (sorter, sorterStates) => {\n scrollTop.value > bodyHeight.value && updateAnimate()\n triggerOnChange({ sorter, sorterStates }, 'sort', false)\n },\n )\n\n const { filterData, filterStates, filters, changeFilter } = useFilter(\n props,\n sortedData,\n columns.allColumns,\n (filters, filterStates) => {\n triggerOnChange({ filters, filterStates }, 'filter', true)\n },\n )\n\n const total = eagerComputed(() => filterData.value.length)\n const paginationParam = computed(() => {\n if (props.pagination === false) {\n return {}\n }\n return getPaginationParam(props.pagination, mergedPagination.value)\n })\n\n const triggeronPaginationChange = (current: number, pageSize: number) => {\n const pagination = { ...paginationParam.value, current, pageSize }\n props['onUpdate:pagination'] &&\n emit(\n 'update:pagination',\n isReactive(props.pagination)\n ? Object.assign(props.pagination || {}, pagination)\n : pagination,\n )\n }\n\n const {\n mergedPagination,\n pos,\n refreshPagination,\n onChange: onPaginationChange,\n onShowSizeChange,\n pageData,\n } = usePagination(total, props, filterData, (current, pageSize) => {\n const pagination = { ...paginationParam.value, current, pageSize }\n triggeronPaginationChange(current, pageSize)\n updateAnimate()\n triggerOnChange({ pagination }, 'paginate')\n })\n\n const {\n flattenData,\n keyEntities,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n checkboxPropsMap,\n getRowFlattenIndexByKey,\n isMyChildren,\n getRowByFlattenIndex,\n } = useFlattenRecords(\n pageData,\n childrenColumnName,\n expandedRowKeys,\n getRowKey,\n expandType,\n mergedRowSelection,\n )\n\n const cal = useCal(props, flattenData, bodyHeight, scrollTop, virtual, keyEntities)\n\n const { rowPosition, viewportHeight, startIndex, endIndex } = cal\n const { leftWidth, rightWidth, centerWidth, bodyMaxWidth } = columns\n\n const selection = useSelection(props, mergedRowSelection, rawData, {\n prefixCls: computed(() => props.prefixCls!),\n pageData,\n getRowKey,\n getRecordByKey,\n childrenColumnName,\n locale,\n flattenData,\n keyEntities,\n checkboxPropsMap,\n allDataRowKeys,\n allDataRootRowKeys,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n })\n\n const bodyRef = ref<HTMLDivElement>()\n let leftRaf: any, topRaf: any\n\n const scrollTo = (options: any = {}, type = 'auto', isAnimate = false) => {\n if (!isAnimate) {\n updateAnimate()\n }\n const mergeOptions = typeof options == 'number' ? { top: options } : options\n let left, top\n if ('left' in mergeOptions) {\n left = mergeOptions.left || 0\n } else if ('columnIndex' in mergeOptions) {\n const position = columns.getColumnPosition(mergeOptions.columnIndex!)\n if (position) {\n left = position.left - leftWidth.value\n }\n } else if ('columnKey' in mergeOptions) {\n const position = columns.getColumnPositionByKey(mergeOptions.columnKey!)\n if (position) {\n left = position.left - leftWidth.value\n }\n }\n if ('top' in mergeOptions) {\n top = Math.min(Math.max(mergeOptions.top || 0, 0), maxScrollTop.value)\n } else if ('rowKey' in mergeOptions) {\n const pos = cal.getRowPositionByKey(mergeOptions.rowKey!)\n if (pos) {\n top = pos\n }\n }\n\n left = Math.max(Math.min(maxScrollLeft.value, left || 0), 0)\n if (!showVerticalScrollbar.value) {\n top = 0\n }\n if (type === 'smooth') {\n if (left !== undefined) {\n raf.cancel(leftRaf)\n leftRaf = easeoutScroll(scrollLeft.value, left, (val: number) => {\n scrollLeft.value = val\n })\n }\n if (top !== undefined) {\n raf.cancel(topRaf)\n topRaf = easeoutScroll(scrollTop.value, top, (val: number) => {\n scrollTop.value = val\n })\n }\n } else {\n if (left !== undefined) {\n scrollLeft.value = left\n }\n if (top !== undefined) {\n scrollTop.value = top\n }\n }\n }\n\n const useAnimate = ref(false)\n const animateRows = computed(() => {\n return !!(props.animateRows ?? table?.value?.animateRows)\n })\n\n let timer: any\n watch(\n animateRows,\n (newVal) => {\n useAnimate.value = newVal\n },\n { immediate: true },\n )\n\n const updateAnimate = () => {\n useAnimate.value = false\n clearTimeout(timer)\n timer = setTimeout(() => {\n useAnimate.value = animateRows.value\n }, 100)\n }\n\n const maxScrollLeft = computed(() => bodyMaxWidth.value - bodyWidth.value)\n const maxScrollTop = computed(() => viewportHeight.value - bodyHeight.value)\n const onScroll = (e) => {\n emit('scroll', e)\n }\n\n useHScrollSyncProvide({ scrollLeft, maxScrollLeft, onScroll, bodyWidth })\n useVScrollSyncProvide({ scrollTop, maxScrollTop, onScroll, updateAnimate, bodyWidth })\n\n const { data, pos: dataRowPosition } = useData(\n props,\n rowPosition,\n flattenData,\n startIndex,\n endIndex,\n draggingRowKey,\n useAnimate,\n getRowFlattenIndexByKey,\n latestRangeStartCell,\n )\n\n const pingedLeft = ref(false)\n const pingedRight = ref(false)\n const noPinged = ref(false)\n\n watchEffect(() => {\n pingedLeft.value = supportSticky && !!scrollLeft.value\n pingedRight.value =\n supportSticky &&\n centerWidth.value - (bodyWidth.value - leftWidth.value - rightWidth.value) >\n scrollLeft.value\n noPinged.value = !pingedLeft.value && !pingedRight.value\n })\n\n const rootClass = computed(() =>\n classNames({\n [`${props.prefixCls}`]: true,\n [`${props.prefixCls}-support-sticky`]: supportSticky,\n [`${props.prefixCls}-stripe`]: props.stripe,\n [`${props.prefixCls}-bordered`]: props.bordered ?? table?.value?.bordered,\n [`${props.prefixCls}-${props.size}`]: true,\n [`${props.prefixCls}-ping-left`]: pingedLeft.value,\n [`${props.prefixCls}-ping-right`]: pingedRight.value,\n [`${props.prefixCls}-no-ping`]: noPinged.value,\n [`${props.prefixCls}-has-animate`]: animateRows.value,\n }),\n )\n const rootStyle = computed(() => ({\n height: typeof props.height == 'number' ? `${props.height}px` : props.height,\n maxHeight: typeof props.maxHeight == 'number' ? `${props.maxHeight}px` : props.maxHeight,\n minHeight: typeof props.minHeight == 'number' ? `${props.minHeight}px` : props.minHeight,\n }))\n\n const showHorizontalScrollbar = ref(false)\n const debounceFn = debounce(() => {\n showHorizontalScrollbar.value = bodyMaxWidth.value > bodyWidth.value\n if (bodyWidth.value > bodyScrollWidth.value) {\n bodyScrollWidth.value = bodyWidth.value\n }\n }, 100)\n\n watch([bodyMaxWidth, bodyWidth], () => {\n debounceFn()\n })\n\n const showVerticalScrollbar = eagerComputed(\n () => !!mergedScrollY.value && bodyHeight.value + 0.9 < viewportHeight.value,\n )\n const scrollToFirstRow = eagerComputed(\n () => !props.scroll || (props.scroll && props.scroll.scrollToFirstRowOnChange !== false),\n )\n\n triggerOnChange = (\n info: Partial<ChangeEventInfo<DefaultRecordType>>,\n action: TableAction,\n reset = false,\n ) => {\n if (reset) {\n refreshPagination()\n triggeronPaginationChange(1, mergedPagination.value.pageSize!)\n if (props.pagination) {\n props.pagination.onChange?.(1, mergedPagination.value.pageSize)\n }\n }\n if (scrollToFirstRow.value) {\n scrollTop.value = 0\n }\n props.onChange?.(\n info.pagination || mergedPagination.value,\n info.filters || filters.value,\n info.sorter || sorter.value,\n {\n currentDataSource: info.currentDataSource || filterData.value,\n action,\n },\n )\n }\n\n const paginationProps = computed(() => {\n return omit(mergedPagination.value, [\n 'position',\n 'onChange',\n 'onShowSizeChange',\n 'fieldNames',\n ])\n })\n\n const paginationClass = computed(() => {\n return {\n [`${props.prefixCls}-pagination`]: true,\n [`${props.prefixCls}-pagination-${pos.value.bottom}`]: true,\n [`${customUiCls}`]: true,\n }\n })\n const bottomPaginationHeight = ref(0)\n const bottomPaginationStyle = computed<any>(() => {\n if (!props.paginationSticky || counter.hasFullScreen.value || !!props.height) {\n return {}\n }\n if (props.paginationSticky === true) {\n return { position: 'sticky', 'z-index': 9, bottom: '0px' }\n }\n return {\n position: 'sticky',\n 'z-index': 9,\n bottom: `${props.paginationSticky?.offsetBottom ?? 0}px`,\n }\n })\n\n const indentSize = computed(() => (typeof props.indentSize == 'number' ? props.indentSize : 15))\n\n const cellProps = useCellProps({\n leftColumns: columns.leftColumns,\n rightColumns: columns.rightColumns,\n visibleCenterColumns: columns.visibleCenterColumns,\n allColumns: columns.allColumns,\n data,\n mergedRowHeights: cal.mergedRowHeights,\n startIndex,\n getColumnPosition: columns.getColumnPosition,\n bodyWidth,\n leftWidth,\n centerWidth,\n getRowHeight: cal.getRowHeight,\n customCell: toRef(props, 'customCell'),\n cancelEditable,\n startEditable,\n saveEditable,\n isEditable,\n })\n\n watch(\n [realHeaderHeight, scrollLeft],\n () => {\n popupContainer.value?.alignPopup?.()\n },\n { flush: 'post' },\n )\n\n useProvideTable({\n ...cal,\n ...columns,\n ...cellProps,\n cancelEditable,\n startEditable,\n saveEditable,\n isEditable,\n rootRef,\n rawData,\n getRowFlattenIndexByKey,\n prefixCls: computed(() => props.prefixCls!),\n draggingRowKey,\n insertToRowKey,\n status,\n useAnimate,\n animateRows,\n expandIconType,\n watermarkMsg,\n onResizeColumn: (w: number, col: ColumnType, action: ResizeActionType) => {\n const width = col.width\n const result = props.onResizeColumn?.(w, col, action)\n if (result !== false) {\n if (!(width === w && col.width === w)) {\n col.width = width !== col.width ? col.width : w\n triggerRef(rawColumns)\n }\n if (action === 'end') {\n emit('update:columns', rawColumns.value, 'resize')\n }\n }\n },\n onRowDragEnd: (opt: DragRowEventInfo) => {\n const { insertToRowKey, record, fromIndexs, rowKey, dir, preTargetInfo, nextTargetInfo } =\n opt\n const rawRecord = toRaw(record)\n const dragEnd = props.onRowDragEnd?.({ ...opt, record: rawRecord, fromIndexs })\n if (dragEnd === false) {\n return\n }\n\n const handler = () => {\n if (!isMyChildren(rowKey, preTargetInfo?.rowKey as Key) && insertToRowKey !== rowKey) {\n if (insertToRowKey !== null) {\n const parentRecord = getRecordByKey(insertToRowKey)\n if (\n insertToRowKey === preTargetInfo?.rowKey ||\n insertToRowKey === nextTargetInfo?.rowKey\n ) {\n if (dir === DOWN) {\n addNestItemData(\n parentRecord[childrenColumnName.value],\n [],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n parentRecord[childrenColumnName.value],\n [],\n childrenColumnName.value,\n rawRecord,\n )\n }\n } else {\n if (dir === DOWN) {\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs as number[],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs as number[],\n childrenColumnName.value,\n rawRecord,\n )\n }\n }\n } else {\n if (dir === DOWN && preTargetInfo) {\n addNestItemData(\n rawData.value,\n [preTargetInfo.indexs[0]!],\n childrenColumnName.value,\n rawRecord,\n )\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n } else if (dir === UP && nextTargetInfo) {\n deleteNestItemData(rawData.value, fromIndexs, childrenColumnName.value)\n addNestItemData(\n rawData.value,\n preTargetInfo?.indexs ? [preTargetInfo!.indexs[0]!] : [],\n childrenColumnName.value,\n rawRecord,\n )\n }\n }\n triggerRef(rawData)\n emit('update:dataSource', rawData.value)\n }\n }\n if (isPromise(dragEnd)) {\n dragEnd\n .then(() => {\n handler()\n })\n .catch(() => {})\n } else {\n handler()\n }\n },\n virtual,\n xVirtual,\n dataRowPosition,\n rawColumns,\n bodyHeight,\n scrollTop,\n scrollLeft,\n supportSticky,\n childrenColumnName,\n bodyScrollWidth,\n baseHeight,\n startIndex,\n data,\n pageData,\n getRecordByKey,\n getIndexsByKey,\n expandType,\n flattenData,\n expandedRowKeys,\n indentSize,\n props,\n bodyWidth,\n scrollTo,\n scrollBarSize,\n leftWidth,\n rightWidth,\n centerWidth,\n showVerticalScrollbar,\n showHorizontalScrollbar,\n getRowKey,\n selection,\n updateSelectedRowKeys: (keys: Key[]) => {\n emit('update:selectedRowKeys', keys)\n },\n locale,\n sorterStates,\n changeSorter,\n changeFilter,\n filterStates,\n onTriggerExpand: (record, key: Key) => {\n let keys: Key[]\n const hasKey = expandedRowKeys.value.has(key)\n if (hasKey) {\n expandedRowKeys.value.delete(key)\n keys = [...expandedRowKeys.value]\n } else {\n keys = [...expandedRowKeys.value, key]\n }\n defaultExpandedRowKeys.value = keys\n emit('update:expandedRowKeys', keys)\n emit('expand', !hasKey, record)\n emit('expandedRowsChange', keys)\n },\n keyEntities,\n pageDataRowKeys,\n pageDataEnableRowKeys,\n checkboxPropsMap,\n mergedRowSelection,\n getPopupContainer,\n allDataRowKeys,\n allDataRootRowKeys,\n dragRowsHandle,\n isMyChildren,\n getKeyByIndexs,\n getRowByFlattenIndex,\n draggingColumnKey,\n dragColumnsHandle,\n onColumnDragEnd: (arg: DragColumnEventInfo) => {\n const { dir, column, targetColumn } = arg\n const dragEnd = props.onColumnDragEnd?.(arg)\n if (dragEnd === false) {\n return\n }\n\n const handler = () => {\n if (column === targetColumn || column.key === targetColumn.key) return\n const index = rawColumns.value.findIndex(\n (col) => col === column || col.key === column.key,\n )\n const targetIndex = rawColumns.value.findIndex(\n (col) => col === targetColumn || col.key === targetColumn.key,\n )\n if (dir === LEFT) {\n rawColumns.value.splice(index, 1)\n rawColumns.value.splice(targetIndex, 0, column)\n } else {\n rawColumns.value.splice(targetIndex + 1, 0, column)\n rawColumns.value.splice(index, 1)\n }\n triggerRef(rawColumns)\n emit('update:columns', rawColumns.value, 'drag')\n }\n\n if (isPromise(dragEnd)) {\n dragEnd\n .then(() => {\n handler()\n })\n .catch(() => {})\n } else {\n handler()\n }\n },\n onColumnDrag: () => {},\n columnDrag: computed(() => props.columnDrag ?? table?.value?.columnResizable),\n columnResizable: computed(() => props.columnResizable ?? table?.value?.columnResizable),\n summaryFixed: mergedSummaryFixed,\n realHeaderHeight,\n bottomPaginationHeight,\n pos,\n })\n\n const tabGuardTopRef = ref()\n const tabGuardBottomRef = ref()\n\n expose({\n scrollTo,\n scrollLeft,\n scrollTop,\n rootRef,\n paginationRef,\n validateRowData,\n addEditRecord,\n cancelEditable,\n startEditable,\n saveEditable,\n validateTableData,\n bodyRef: computed(() => {\n return (bodyRef.value as any)?.bodyRef\n }),\n })\n\n return {\n bodyRef,\n spinProps,\n rowPosition,\n viewportHeight,\n startIndex,\n data,\n watermarkMsg,\n rootStyle,\n rootClass,\n watermarkStyle: computed<any>(() => ({\n minWidth: '100px!important',\n minHeight: '40px!important',\n position: 'absolute!important',\n fontSize: '20px!important',\n opacity: '0.8!important',\n bottom: '40px!important',\n right: '40px!important',\n pointerEvents: 'none',\n display: 'block!important',\n zIndex: '999999!important',\n color: '#000000!important',\n margin: '0px!important',\n padding: '0px!important',\n transform: 'unset!important',\n })),\n mergedPagination,\n pos,\n onPaginationChange,\n scrollBarSize,\n scrollTop,\n bodyScrollWidth,\n bodyWidth,\n scrollLeft,\n cal,\n selection,\n locale,\n paginationProps,\n slots,\n mergedScrollX,\n mergedScrollY,\n bodyHeight,\n measureWidthRef,\n flattenData,\n rootRef,\n paginationRef,\n mergedSummaryFixed,\n handleResize: (e: CustomEvent) => {\n realHeaderHeight.value = e.detail.height\n },\n handlePaginationResize: (e: CustomEvent) => {\n bottomPaginationHeight.value = e.detail.height\n },\n popupContainer,\n tabGuardTopRef,\n tabGuardBottomRef,\n onShowSizeChange,\n customUiCls,\n paginationClass,\n bottomPaginationStyle,\n }\n },\n})\n</script>\n\n<template>\n <TableSlotsContextProvider :value=\"{ ...slots }\">\n <Spin v-bind=\"spinProps\">\n <Pagination\n v-if=\"pos.top\"\n :class=\"`${prefixCls}-pagination ${prefixCls}-pagination-${pos.top} ${customUiCls}`\"\n v-bind=\"paginationProps\"\n @change=\"onPaginationChange\"\n @show-size-change=\"onShowSizeChange\"\n />\n <div\n ref=\"tabGuardTopRef\"\n role=\"presentation\"\n tabindex=\"0\"\n :style=\"{ position: 'absolute', width: '0', height: '0' }\"\n ></div>\n <div key=\"content\" ref=\"rootRef\" :class=\"rootClass\" :style=\"rootStyle\">\n <template v-if=\"showHeader\">\n <AutoHeightHeader\n v-if=\"autoHeaderHeight\"\n :prefix-cls=\"prefixCls\"\n :sticky=\"sticky\"\n @resizeheight=\"handleResize\"\n />\n <ProHeader v-else :prefix-cls=\"prefixCls\" :sticky=\"sticky\" @resizeheight=\"handleResize\" />\n </template>\n <ProBody\n ref=\"bodyRef\"\n v-model:bodyScrollWidth=\"bodyScrollWidth\"\n v-model:bodyWidth=\"bodyWidth\"\n v-model:bodyHeight=\"bodyHeight\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n :scroll-x=\"mergedScrollX\"\n :height=\"mergedScrollY\"\n :summary-fixed=\"mergedSummaryFixed\"\n :summary=\"$slots.summary\"\n :empty-text=\"$slots.emptyText\"\n />\n </div>\n <HorizontalScroll />\n <div\n ref=\"tabGuardBottomRef\"\n role=\"presentation\"\n tabindex=\"0\"\n :style=\"{ position: 'absolute', width: '0', height: '0' }\"\n ></div>\n <div v-if=\"$slots.footer\" key=\"footer\" :class=\"`${prefixCls}-footer`\">\n <slot name=\"footer\" />\n </div>\n <PopupContainer ref=\"popupContainer\" :prefix-cls=\"prefixCls\" />\n <div\n v-if=\"pos.bottom\"\n v-resize:height\n ref=\"paginationRef\"\n :style=\"bottomPaginationStyle\"\n :class=\"`${prefixCls}-pagination-wrap ${prefixCls}-pagination-wrap-${size}`\"\n @resizeheight=\"handlePaginationResize\"\n >\n <Pagination\n :class=\"paginationClass\"\n v-bind=\"paginationProps\"\n @change=\"onPaginationChange\"\n @show-size-change=\"onShowSizeChange\"\n />\n </div>\n </Spin>\n <MeasureWidth ref=\"measureWidthRef\" />\n </TableSlotsContextProvider>\n</template>\n"],"names":["_createBlock","_createVNode","_normalizeProps","_guardReactiveProps","_withCtx","_openBlock","_mergeProps","_createCommentVNode","_createElementVNode","_normalizeClass","_normalizeStyle","_createElementBlock","_Fragment","_renderSlot","_withDirectives"],"mappings":"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"}
@@ -786,7 +786,14 @@ var _sfc_main = vue.defineComponent({
786
786
  },
787
787
  onColumnDrag: () => {
788
788
  },
789
- columnDrag: vue.computed(() => props.columnDrag),
789
+ columnDrag: vue.computed(() => {
790
+ var _a, _b;
791
+ return (_b = props.columnDrag) != null ? _b : (_a = table == null ? void 0 : table.value) == null ? void 0 : _a.columnResizable;
792
+ }),
793
+ columnResizable: vue.computed(() => {
794
+ var _a, _b;
795
+ return (_b = props.columnResizable) != null ? _b : (_a = table == null ? void 0 : table.value) == null ? void 0 : _a.columnResizable;
796
+ }),
790
797
  summaryFixed: mergedSummaryFixed,
791
798
  realHeaderHeight,
792
799
  bottomPaginationHeight,