pro-design-vue 1.3.37 → 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 +15 -3
  18. package/es/index.d.ts +18 -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 +15 -3
  45. package/lib/index.d.ts +18 -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":"InteralTable.vue2.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":["defineComponent","resize","TableSlotsContextProvider","Spin","MeasureWidth","Pagination","PopupContainer","AutoHeightHeader","Header","Body","XScroll","baseTableProps","useProConfigInject","useInjectContainer","computed","shallowRef","usePrefixCls","useProvidePopup","useLicense","ref","watchEffect","devWarning","inject","DEFAULT_LOCALE","eagerComputed","watch","toRaw","triggerRef","useKVMap","useEditProvider","onActivated","getScrollBarSize","useColumns","useSorter","sorter","sorterStates","useFilter","filters","filterStates","getPaginationParam","isReactive","usePagination","useFlattenRecords","useCal","useSelection","pos","raf","easeoutScroll","useHScrollSyncProvide","useVScrollSyncProvide","useData","supportSticky","classNames","debounce","omit","useCellProps","toRef","useProvideTable","insertToRowKey","rowKey","DOWN","addNestItemData","deleteNestItemData","UP","isPromise","LEFT"],"mappings":"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"}
1
+ {"version":3,"file":"InteralTable.vue2.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":["defineComponent","resize","TableSlotsContextProvider","Spin","MeasureWidth","Pagination","PopupContainer","AutoHeightHeader","Header","Body","XScroll","baseTableProps","useProConfigInject","useInjectContainer","computed","shallowRef","usePrefixCls","useProvidePopup","useLicense","ref","watchEffect","devWarning","inject","DEFAULT_LOCALE","eagerComputed","watch","toRaw","triggerRef","useKVMap","useEditProvider","onActivated","getScrollBarSize","useColumns","useSorter","sorter","sorterStates","useFilter","filters","filterStates","getPaginationParam","isReactive","usePagination","useFlattenRecords","useCal","useSelection","pos","raf","easeoutScroll","useHScrollSyncProvide","useVScrollSyncProvide","useData","supportSticky","classNames","debounce","omit","useCellProps","toRef","useProvideTable","insertToRowKey","rowKey","DOWN","addNestItemData","deleteNestItemData","UP","isPromise","LEFT"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableContext.js","sources":["../../../../../../../../../packages/components/table/src/components/context/TableContext.ts"],"sourcesContent":["/*\n * @Author: shen\n * @Date: 2023-11-05 12:12:38\n * @LastEditors: shen\n * @LastEditTime: 2025-12-01 14:33:01\n * @Description:\n */\nimport { inject, provide } from 'vue'\n\nimport type { ComputedRef, InjectionKey, Ref, ShallowRef } from 'vue'\nimport type { CalType } from '../../hooks/useCal'\nimport type { UseCellPropsRes } from '../../hooks/useCellProps'\nimport type { UseColumnsType } from '../../hooks/useColumns'\nimport type { FilterState } from '../../hooks/useFilter'\nimport type { FlattenRecordsType } from '../../hooks/useFlattenRecords'\nimport type { FlattenAllRecordsType } from '../../hooks/useKVMap'\nimport type { SelectionsRes } from '../../hooks/useRowSelection'\nimport type { SortState } from '../../hooks/useSorter'\nimport type {\n ColumnsType,\n DragColumnEventInfo,\n DragRowEventInfo,\n ExpandType,\n GetPopupContainer,\n GetRowKey,\n Key,\n Position,\n SummaryFixed,\n ProTableProps,\n TableLocale,\n TableRowSelection,\n TriggerEventHandler,\n ExpandIconType,\n} from '../interface'\n\ntype PaginationPos = {\n bottom?: 'left' | 'right'\n top?: 'left' | 'right'\n}\n\nexport interface TableContextProps\n extends CalType,\n UseColumnsType,\n FlattenRecordsType,\n FlattenAllRecordsType,\n UseCellPropsRes {\n rawColumns: Ref<ColumnsType>\n bodyHeight: Ref<number>\n scrollTop: Ref<number>\n scrollLeft: Ref<number>\n rowPosition: Ref<number[]>\n dataRowPosition: Ref<number[]>\n startIndex: Ref<number>\n data: Ref<any[]>\n rawData: ShallowRef<any[]>\n pageData: Ref<any[]>\n props: ProTableProps\n bodyWidth: Ref<number>\n bodyScrollWidth: Ref<number>\n scrollBarSize: Ref<number>\n scrollTo: (pos: number | Position, behavior?: 'auto' | 'smooth', skipAnimate?: boolean) => void\n leftWidth: Ref<number>\n centerWidth: Ref<number>\n rightWidth: Ref<number>\n showVerticalScrollbar: ComputedRef<boolean>\n showHorizontalScrollbar: Ref<boolean>\n getRowKey: ComputedRef<GetRowKey<any>>\n selection: SelectionsRes\n locale: ComputedRef<TableLocale>\n sorterStates: Ref<SortState<any>[]>\n changeSorter: (sortState: SortState<any>) => void\n changeFilter: (filterState: FilterState<any>) => void\n filterStates: Ref<FilterState<any>[]>\n updateSelectedRowKeys: (keys: Key[]) => void\n baseHeight: Ref<number>\n expandedRowKeys: Ref<Set<Key>>\n indentSize: Ref<number>\n onTriggerExpand: TriggerEventHandler<any>\n childrenColumnName: Ref<string>\n expandType: Ref<ExpandType>\n expandIconType: ComputedRef<ExpandIconType>\n supportSticky: boolean\n mergedRowSelection: Ref<TableRowSelection>\n getPopupContainer: Ref<GetPopupContainer>\n virtual: Ref<boolean>\n xVirtual: Ref<boolean>\n onResizeColumn: ProTableProps['onResizeColumn']\n onRowDragEnd: (opt: DragRowEventInfo) => void\n status: Ref<{\n code: number\n }>\n watermarkMsg: Ref<string>\n useAnimate: Ref<boolean>\n animateRows: ComputedRef<boolean>\n dragRowsHandle: Map<Key, Set<HTMLSpanElement>>\n draggingRowKey: Ref<Key | null>\n insertToRowKey: Ref<Key | null>\n dragColumnsHandle: Map<Key, Set<HTMLDivElement>>\n draggingColumnKey: Ref<Key>\n onColumnDragEnd: (arg: DragColumnEventInfo) => void\n onColumnDrag: (arg: DragColumnEventInfo) => void\n prefixCls: ComputedRef<string>\n columnDrag: ComputedRef<boolean>\n summaryFixed: ComputedRef<SummaryFixed>\n realHeaderHeight: Ref<number>\n bottomPaginationHeight: Ref<number>\n pos: ComputedRef<PaginationPos>\n rootRef: Ref<HTMLDivElement | undefined>\n cancelEditable: (recordKey: Key) => boolean\n startEditable: (recordKey: Key, recordValue?: any) => boolean\n saveEditable: (recordKey: Key) => Promise<boolean>\n isEditable: (recordKey: Key) => boolean\n}\n\nexport const TableContextKey: InjectionKey<TableContextProps> = Symbol('TableContextProps')\n\nexport const useProvideTable = (props: TableContextProps) => {\n provide(TableContextKey, props)\n}\n\nexport const useInjectTable = () => {\n return inject(TableContextKey, {} as TableContextProps)\n}\n"],"names":["provide","inject"],"mappings":";;;;AAkHO,MAAM,eAAA,GAAmD,OAAO,mBAAmB;AAEnF,MAAM,eAAA,GAAkB,CAAC,KAAA,KAA6B;AAC3D,EAAAA,WAAA,CAAQ,iBAAiB,KAAK,CAAA;AAChC;AAEO,MAAM,iBAAiB,MAAM;AAClC,EAAA,OAAOC,UAAA,CAAO,eAAA,EAAiB,EAAuB,CAAA;AACxD;;;;;;"}
1
+ {"version":3,"file":"TableContext.js","sources":["../../../../../../../../../packages/components/table/src/components/context/TableContext.ts"],"sourcesContent":["/*\n * @Author: shen\n * @Date: 2023-11-05 12:12:38\n * @LastEditors: shen\n * @LastEditTime: 2026-01-22 13:21:57\n * @Description:\n */\nimport { inject, provide } from 'vue'\n\nimport type { ComputedRef, InjectionKey, Ref, ShallowRef } from 'vue'\nimport type { CalType } from '../../hooks/useCal'\nimport type { UseCellPropsRes } from '../../hooks/useCellProps'\nimport type { UseColumnsType } from '../../hooks/useColumns'\nimport type { FilterState } from '../../hooks/useFilter'\nimport type { FlattenRecordsType } from '../../hooks/useFlattenRecords'\nimport type { FlattenAllRecordsType } from '../../hooks/useKVMap'\nimport type { SelectionsRes } from '../../hooks/useRowSelection'\nimport type { SortState } from '../../hooks/useSorter'\nimport type {\n ColumnsType,\n DragColumnEventInfo,\n DragRowEventInfo,\n ExpandType,\n GetPopupContainer,\n GetRowKey,\n Key,\n Position,\n SummaryFixed,\n ProTableProps,\n TableLocale,\n TableRowSelection,\n TriggerEventHandler,\n ExpandIconType,\n} from '../interface'\n\ntype PaginationPos = {\n bottom?: 'left' | 'right'\n top?: 'left' | 'right'\n}\n\nexport interface TableContextProps\n extends CalType,\n UseColumnsType,\n FlattenRecordsType,\n FlattenAllRecordsType,\n UseCellPropsRes {\n rawColumns: Ref<ColumnsType>\n bodyHeight: Ref<number>\n scrollTop: Ref<number>\n scrollLeft: Ref<number>\n rowPosition: Ref<number[]>\n dataRowPosition: Ref<number[]>\n startIndex: Ref<number>\n data: Ref<any[]>\n rawData: ShallowRef<any[]>\n pageData: Ref<any[]>\n props: ProTableProps\n bodyWidth: Ref<number>\n bodyScrollWidth: Ref<number>\n scrollBarSize: Ref<number>\n scrollTo: (pos: number | Position, behavior?: 'auto' | 'smooth', skipAnimate?: boolean) => void\n leftWidth: Ref<number>\n centerWidth: Ref<number>\n rightWidth: Ref<number>\n showVerticalScrollbar: ComputedRef<boolean>\n showHorizontalScrollbar: Ref<boolean>\n getRowKey: ComputedRef<GetRowKey<any>>\n selection: SelectionsRes\n locale: ComputedRef<TableLocale>\n sorterStates: Ref<SortState<any>[]>\n changeSorter: (sortState: SortState<any>) => void\n changeFilter: (filterState: FilterState<any>) => void\n filterStates: Ref<FilterState<any>[]>\n updateSelectedRowKeys: (keys: Key[]) => void\n baseHeight: Ref<number>\n expandedRowKeys: Ref<Set<Key>>\n indentSize: Ref<number>\n onTriggerExpand: TriggerEventHandler<any>\n childrenColumnName: Ref<string>\n expandType: Ref<ExpandType>\n expandIconType: ComputedRef<ExpandIconType>\n supportSticky: boolean\n mergedRowSelection: Ref<TableRowSelection>\n getPopupContainer: Ref<GetPopupContainer>\n virtual: Ref<boolean>\n xVirtual: Ref<boolean>\n onResizeColumn: ProTableProps['onResizeColumn']\n onRowDragEnd: (opt: DragRowEventInfo) => void\n status: Ref<{\n code: number\n }>\n watermarkMsg: Ref<string>\n useAnimate: Ref<boolean>\n animateRows: ComputedRef<boolean>\n dragRowsHandle: Map<Key, Set<HTMLSpanElement>>\n draggingRowKey: Ref<Key | null>\n insertToRowKey: Ref<Key | null>\n dragColumnsHandle: Map<Key, Set<HTMLDivElement>>\n draggingColumnKey: Ref<Key>\n onColumnDragEnd: (arg: DragColumnEventInfo) => void\n onColumnDrag: (arg: DragColumnEventInfo) => void\n prefixCls: ComputedRef<string>\n columnDrag: ComputedRef<boolean | undefined>\n columnResizable: ComputedRef<boolean | undefined>\n summaryFixed: ComputedRef<SummaryFixed>\n realHeaderHeight: Ref<number>\n bottomPaginationHeight: Ref<number>\n pos: ComputedRef<PaginationPos>\n rootRef: Ref<HTMLDivElement | undefined>\n cancelEditable: (recordKey: Key) => boolean\n startEditable: (recordKey: Key, recordValue?: any) => boolean\n saveEditable: (recordKey: Key) => Promise<boolean>\n isEditable: (recordKey: Key) => boolean\n}\n\nexport const TableContextKey: InjectionKey<TableContextProps> = Symbol('TableContextProps')\n\nexport const useProvideTable = (props: TableContextProps) => {\n provide(TableContextKey, props)\n}\n\nexport const useInjectTable = () => {\n return inject(TableContextKey, {} as TableContextProps)\n}\n"],"names":["provide","inject"],"mappings":";;;;AAmHO,MAAM,eAAA,GAAmD,OAAO,mBAAmB;AAEnF,MAAM,eAAA,GAAkB,CAAC,KAAA,KAA6B;AAC3D,EAAAA,WAAA,CAAQ,iBAAiB,KAAK,CAAA;AAChC;AAEO,MAAM,iBAAiB,MAAM;AAClC,EAAA,OAAOC,UAAA,CAAO,eAAA,EAAiB,EAAuB,CAAA;AACxD;;;;;;"}
@@ -23,7 +23,11 @@ const baseTableProps = () => ({
23
23
  prefixCls: String,
24
24
  columnDrag: {
25
25
  type: Boolean,
26
- default: false
26
+ default: void 0
27
+ },
28
+ columnResizable: {
29
+ type: Boolean,
30
+ default: void 0
27
31
  },
28
32
  animateRows: {
29
33
  type: Boolean,
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sources":["../../../../../../../../packages/components/table/src/components/interface.ts"],"sourcesContent":["import type { TooltipProps } from 'ant-design-vue/es/tooltip'\nimport type { SpinProps } from 'ant-design-vue/es/spin'\nimport type { CSSProperties, ExtractPropTypes, HTMLAttributes, PropType, Ref, VNode } from 'vue'\nimport type {\n AppendCellRange,\n FormatRangeCellTextParams,\n KeydownPayload,\n SelectedRangeItem,\n} from '../hooks/RangeInterface'\nimport type { INTERNAL_SELECTION_ITEM } from '../hooks/useRowSelection'\nimport type { DOWN, LEFT, RIGHT, UP } from './Drag/constant'\nimport type { TablePaginationConfig, TablePaginationPosition } from './PaginationConfig'\nimport type { InputProps } from 'ant-design-vue/es/input'\nimport type { UseFetchDataAction } from '../hooks/useFetchData'\nimport type { CardProps, PopoverProps } from 'ant-design-vue'\nimport type {\n ProFormActionType,\n ProFormItemType,\n ProQueryFilterProps,\n} from '@pro-design-vue/components/form'\nexport type DefaultRecordType = Record<string, any>\nexport interface TooltipAlignConfig {\n points?: [string, string]\n offset?: [number | string, number | string]\n targetOffset?: [number | string, number | string]\n overflow?: {\n adjustX: boolean\n adjustY: boolean\n }\n useCssRight?: boolean\n useCssBottom?: boolean\n useCssTransform?: boolean\n}\nexport type RowType = 'left' | 'center' | 'right'\nexport type ValueStatus = 'success' | 'processing' | 'error' | 'warning' | string | undefined\nexport type Key = string | number\nexport interface Position {\n left?: number\n top?: number\n columnIndex?: number\n columnKey?: Key\n rowKey?: Key\n}\nexport type { TablePaginationPosition, TablePaginationConfig }\nexport type DataIndex = string | number | readonly (string | number)[]\nexport type CellEllipsisType =\n | {\n showTitle?: boolean\n line?: number\n }\n | boolean\nexport type FixedType = 'left' | 'right' | boolean\nexport type RowHeight =\n | ((p: Record<any, any>, isExpandRow: boolean, baseHeight: number) => number | undefined)\n | number\nexport type HeaderHeight = number[] | number\nexport interface RowsRefsItem {\n left?: any\n right?: any\n conter?: any\n}\n// const SpinSizes = ['small', 'default', 'large']\nexport type SpinSize = 'small' | 'default' | 'large'\n// const TableActions = ['paginate', 'sort', 'filter']\nexport type TableAction = 'paginate' | 'sort' | 'filter'\nexport interface StickyOffsets {\n left: readonly number[]\n right: readonly number[]\n isSticky?: boolean\n}\nexport interface CellEditorArgs {\n modelValue: Ref<any>\n save: () => void\n onInput: (event: Event, value: any) => void\n closeEditor: () => void\n column: ColumnType\n editorRef: Ref<any>\n getPopupContainer: () => HTMLElement\n recordIndexs: number[]\n record: any\n}\n\nexport const checkboxProps = () => ({\n prefixCls: String as PropType<string>,\n disabled: Boolean as PropType<boolean>,\n tabindex: [String, Number],\n name: String as PropType<string>,\n id: String as PropType<string>,\n style: {\n type: Object as PropType<CSSProperties>,\n default: () => ({}),\n },\n class: String as PropType<string>,\n checked: Boolean as PropType<boolean>,\n indeterminate: Boolean as PropType<boolean>,\n ariaLabel: String as PropType<string>,\n})\n\nexport type CheckboxProps = Partial<ExtractPropTypes<ReturnType<typeof checkboxProps>>>\nexport type RowSelectionType = 'checkbox' | 'radio'\nexport type GetRowKey<RecordType = DefaultRecordType> = (record: RecordType, index?: number) => Key\nexport interface HeaderSticky {\n offsetHeader?: number\n topSummary?: boolean\n}\n\nexport interface BottomSticky {\n offsetBottom?: number\n}\n\nexport type FlatRecord<T = DefaultRecordType> = {\n record: T\n indent: number\n rowKey: Key\n isExpandRow?: boolean\n rowIndex: number\n pos: string\n flattenIndex: number\n level: number\n}\nexport type GetPopupContainer = (triggerNode: HTMLElement) => HTMLElement\nexport interface SorterResult<RecordType> {\n column?: ColumnType<RecordType>\n order?: SortOrder\n field?: Key | readonly Key[]\n columnKey?: Key\n}\nexport interface TableCurrentDataSource<RecordType = DefaultRecordType> {\n currentDataSource: RecordType[]\n action: TableAction\n}\ntype ChangeEvent<RecordType> = (\n pagination: TablePaginationConfig,\n filters: Record<string, FilterValue | null>,\n sorter: SorterResult<RecordType> | SorterResult<RecordType>[],\n extra: TableCurrentDataSource<RecordType>,\n) => void\ntype Scroll = {\n x?: number | string\n y?: number | string\n scrollToFirstRowOnChange?: boolean\n}\nexport type RowClassName<RecordType> = (\n record: RecordType,\n index: number,\n indent?: number,\n) => string\nexport type ExpandType = null | 'row' | 'nest'\nexport type ExpandedRowRender<ValueType> = (opt: {\n record: ValueType\n index: number\n indent: number\n expanded: boolean\n}) => any\nexport type TriggerEventHandler<RecordType> = (\n record: RecordType,\n key: Key,\n event: MouseEvent,\n) => void\nexport interface RenderExpandIconProps<RecordType> {\n prefixCls: string\n expanded: boolean\n record: RecordType\n expandable: boolean\n onExpand: TriggerEventHandler<RecordType>\n}\nexport type RenderExpandIcon<RecordType> = (props: RenderExpandIconProps<RecordType>) => any\nexport type ExpandIconType = 'default' | 'arrow'\nexport type SelectionItemSelectFn = (currentRowKeys: Key[]) => void\nexport interface SelectionItem {\n key: string\n text: any\n onSelect?: SelectionItemSelectFn\n}\nexport type SelectionSelectFn<T> = (\n record: T,\n selected: boolean,\n selectedRows: T[],\n nativeEvent: Event,\n) => void\nexport interface TableRowSelection<T = DefaultRecordType> {\n /** Keep the selection keys in list even the key not exist in `dataSource` anymore */\n preserveSelectedRowKeys?: boolean\n type?: RowSelectionType\n allowCancelRadio?: boolean\n selectedRowKeys?: Key[]\n defaultSelectedRowKeys?: Key[]\n onChange?: (selectedRowKeys: Key[], selectedRows: T[]) => void\n getCheckboxProps?: (record: T) => Partial<Omit<CheckboxProps, 'checked' | 'defaultChecked'>>\n onSelect?: SelectionSelectFn<T>\n onSelectMultiple?: (selected: boolean, selectedRows: T[], changeRows: T[]) => void\n /** @deprecated This function is meaningless and should use `onChange` instead */\n onSelectAll?: (selected: boolean, selectedRows: T[], changeRows: T[]) => void\n /** @deprecated This function is meaningless and should use `onChange` instead */\n onSelectInvert?: (selectedRowKeys: Key[]) => void\n onSelectNone?: () => void\n selections?: INTERNAL_SELECTION_ITEM[] | boolean\n hideSelectAll?: boolean\n fixed?: boolean\n columnWidth?: string | number\n columnTitle?: any\n checkStrictly?: boolean\n renderCell?: (value: boolean, record: T, index: number, originNode: any) => any\n}\ntype GetComponentProps<DataType> = (\n data: DataType,\n index?: number,\n) => Omit<HTMLAttributes, 'style'> & {\n style?: CSSProperties\n}\nexport type ResizeActionType = 'start' | 'move' | 'end'\nexport type SummaryFixed = boolean | 'top' | 'bottom'\nexport interface ValueParserParams<RecordType = DefaultRecordType, TValue = any> {\n newValue: TValue\n oldValue: TValue\n record: RecordType\n recordIndexs: number[]\n column: ColumnType<RecordType>\n}\nexport interface EditableValueParams<RecordType = DefaultRecordType, TValue = any> {\n value: TValue\n record: RecordType\n recordIndexs: number[]\n column: ColumnType<RecordType>\n updateEditedCellValue?: (key: DataIndex, value: any) => void\n}\n\nexport interface ValueParserFunc<T = any, TValue = any> {\n (params: EditableValueParams<T, TValue>): TValue | null | undefined\n}\nexport interface ValueGetterFunc<T = any, TValue = any> {\n (params: EditableValueParams<T, TValue>): string | null | undefined\n}\nexport type EditableTrigger = 'click' | 'dblClick' | 'contextmenu'\n\nexport interface PlainObject {\n [key: string]: any\n}\nexport type EditableCellProps<T> = PlainObject | ((params: EditableValueParams<T>) => PlainObject)\n\nexport type EditableCellRules<T> = EditRule[] | ((params: EditableValueParams<T>) => EditRule[])\n\nexport type EditableCellType<T> = (params: EditableValueParams<T>) => boolean\n\nexport type RowEditableType = 'single' | 'multiple'\nexport type RowEditableConfig<DataType> = {\n /**\n * @type single | multiple\n * @name 编辑的类型,支持单选和多选\n */\n type?: RowEditableType\n /** @name 正在编辑的列 */\n editableKeys?: Key[]\n /** 只能编辑一行的的提示 */\n onlyOneLineEditorAlertMessage?: string\n /** 同时只能新增一行的提示 */\n onlyAddOneLineAlertMessage?: string | false\n /** 正在编辑的列修改的时候 */\n onChange?: (editableKeys: Key[], editableRows: DataType[] | DataType) => void\n // /** 正在编辑的列修改的时候 */\n // onValuesChange?: (record: DataType, dataSource: DataType[]) => void\n /** 行保存的时候 */\n onSave?: (\n /** 行 id,一般是唯一id */\n key: Key,\n /** 当前修改的行的值 */\n record: DataType & { index?: number },\n /** 原始值,可以用于判断是否修改 */\n originRow: DataType & { index?: number },\n ) => Promise<any | void> | any | void\n}\n\nexport const baseTableProps = <T = DefaultRecordType>() => ({\n ignoreCellKey: Boolean,\n showHeaderScrollbar: Boolean,\n deepWatchDataSource: Boolean,\n deepWatchColumns: Boolean,\n prefixCls: String,\n columnDrag: {\n type: Boolean,\n default: false,\n },\n animateRows: {\n type: Boolean,\n default: undefined,\n },\n dropdownPrefixCls: { type: String },\n columns: {\n type: Array as PropType<ColumnsType<T>>,\n default: () => [],\n },\n dataSource: {\n type: Array as PropType<T[]>,\n default: () => [],\n },\n virtual: {\n type: Boolean,\n default: undefined,\n },\n xVirtual: {\n type: Boolean,\n default: undefined,\n },\n rowHeight: {\n type: [Number, Function] as PropType<RowHeight>,\n default: undefined,\n },\n autoHeaderHeight: {\n type: Boolean,\n default: false,\n },\n headerHeight: {\n type: [Number, Array] as PropType<HeaderHeight>,\n },\n height: {\n type: [Number, String],\n },\n maxHeight: {\n type: [Number, String],\n },\n minHeight: {\n type: [Number, String],\n },\n size: {\n type: String as PropType<DensitySize>,\n default: undefined,\n },\n bordered: {\n type: Boolean,\n default: undefined,\n },\n wrapText: {\n type: Boolean,\n default: false,\n },\n loading: {\n type: [Boolean, Object] as PropType<boolean | SpinProps>,\n default: undefined,\n },\n pagination: {\n type: [Boolean, Object] as PropType<false | TablePaginationConfig>,\n default: () => ({}),\n },\n direction: {\n type: String as PropType<'rtl'>,\n default: undefined,\n },\n stripe: {\n type: Boolean,\n default: false,\n },\n rowClassName: {\n type: [String, Function] as PropType<string | RowClassName<T>>,\n default: undefined,\n },\n sticky: {\n type: [Boolean, Object] as PropType<boolean | HeaderSticky>,\n default: true,\n },\n selectedRowKeys: {\n type: Array as PropType<Key[]>,\n default: undefined,\n },\n expandFixed: {\n type: [Boolean, String] as PropType<FixedType>,\n default: undefined,\n },\n expandColumnWidth: {\n type: Number,\n default: undefined,\n },\n expandedRowKeys: {\n type: Array as PropType<Key[]>,\n default: undefined,\n },\n defaultExpandedRowKeys: {\n type: Array as PropType<Key[]>,\n default: undefined,\n },\n expandedRowRender: {\n type: Function as PropType<ExpandedRowRender<T>>,\n default: undefined,\n },\n expandRowByClick: {\n type: Boolean,\n default: undefined,\n },\n selectRowByClick: {\n type: Boolean,\n default: undefined,\n },\n expandIcon: {\n type: Function as PropType<RenderExpandIcon<T>>,\n default: undefined,\n },\n expandIconType: {\n type: String as PropType<ExpandIconType>,\n default: undefined,\n },\n onExpand: {\n type: Function as PropType<(expanded: boolean, record: T) => void>,\n default: undefined,\n },\n onExpandedRowsChange: {\n type: Function as PropType<(expandedKeys: Key[]) => void>,\n default: undefined,\n },\n defaultExpandAllRows: {\n type: Boolean,\n default: undefined,\n },\n indentSize: Number,\n expandIconColumnIndex: Number,\n childrenColumnName: {\n type: String,\n default: undefined,\n },\n rowExpandable: {\n type: Function as PropType<(record: T) => boolean>,\n default: () => true,\n },\n rowSelection: {\n type: Object as PropType<TableRowSelection<DefaultRecordType>>,\n default: undefined,\n },\n rowHoverDelay: {\n type: Number,\n default: 59,\n },\n rowHover: {\n type: Boolean,\n default: undefined,\n },\n rowKey: {\n type: [Function, String] as PropType<string | GetRowKey<T>>,\n default: undefined,\n },\n customRow: {\n type: Function as PropType<GetComponentProps<T>>,\n default: () => ({}),\n },\n customCell: {\n type: Function as PropType<\n (obj: { record: T; rowIndex: number; column: ColumnType<T> }) => Record<string, any>\n >,\n default: () => ({}),\n },\n customHeaderCell: {\n type: Function as PropType<(column: ColumnType<T>) => Record<string, any>>,\n default: () => ({}),\n },\n customSummaryCellProps: {\n type: Function as PropType<\n (obj: {\n record: T\n rowIndex: number\n column: ColumnType<T>\n columnIndex: number\n }) => Record<string, any>\n >,\n default: () => ({}),\n },\n editableKeys: {\n type: Array as PropType<Key[]>,\n default: undefined,\n },\n rowEditable: {\n type: Object as PropType<RowEditableConfig<T>>,\n default: undefined,\n },\n showHeader: {\n type: Boolean,\n default: true,\n },\n showSorterTooltip: {\n type: [Boolean, Object] as PropType<boolean | TooltipProps>,\n default: true,\n },\n getPopupContainer: {\n type: Function as PropType<GetPopupContainer>,\n },\n locale: {\n type: Object as PropType<TableLocale>,\n default: undefined,\n },\n scrollX: {\n type: [Number, String] as PropType<string | number>,\n },\n scroll: {\n type: Object as PropType<Scroll>,\n default: undefined,\n },\n autoHeight: {\n type: [Boolean, Function] as PropType<boolean | ((autoHeight: number) => number)>,\n default: false,\n },\n rangeSelection: {\n type: [String, Boolean] as PropType<boolean | 'single'>,\n default: false,\n },\n copyDelimiter: {\n type: String,\n default: '',\n },\n rowDrag: {\n type: [Boolean],\n },\n onChange: {\n type: Function as PropType<ChangeEvent<T>>,\n },\n summaryFixed: {\n type: [Boolean, String] as PropType<SummaryFixed>,\n default: undefined,\n },\n hasContextmenuPopup: Boolean,\n formatRangeCellText: {\n type: Function as PropType<(params: FormatRangeCellTextParams) => string>,\n },\n\n columnEmptyText: {\n type: [String, Boolean] as PropType<string | false>,\n default: undefined,\n },\n toolBar: { type: Boolean, default: undefined },\n options: { type: [Object, Boolean] as PropType<OptionConfig | false>, default: undefined },\n alwaysShowAlert: { type: Boolean, default: undefined },\n showAlert: { type: Boolean, default: undefined },\n // requst 相关配置\n request: Function as PropType<Request>,\n params: Object as PropType<Record<string, any>>,\n defaultData: Array as PropType<T[]>,\n manual: Boolean,\n manualRequest: Boolean,\n polling: [Number, Function] as PropType<number | ((dataSource: any[]) => number)>,\n debounceTime: Number,\n onLoad: {\n type: Function as PropType<(dataSource: T[], extra: any) => void>,\n default: undefined,\n },\n onLoadingChange: {\n type: Function as PropType<(loading: boolean | SpinProps | undefined) => void>,\n default: undefined,\n },\n onRequestError: {\n type: Function as PropType<(e: Error) => void>,\n default: undefined,\n },\n onSizeChange: {\n type: Function as PropType<(size: DensitySize) => void>,\n default: undefined,\n },\n onSubmit: {\n type: Function as PropType<ProQueryFilterProps['onFinish']>,\n default: undefined,\n },\n onReset: {\n type: Function as PropType<ProQueryFilterProps['onReset']>,\n default: undefined,\n },\n /** @name 列状态的配置,可以用来操作列功能 */\n columnsState: {\n type: Object as PropType<ColumnStateType>,\n default: undefined,\n },\n /** @name 是否要高亮选择行\t */\n highlightSelectRow: {\n type: Boolean,\n default: undefined,\n },\n editableCellState: {\n type: Function as PropType<EditableCellType<T>>,\n },\n\n paginationSticky: {\n type: [Boolean, Object] as PropType<boolean | BottomSticky>,\n default: true,\n },\n horizontalScrollSticky: {\n type: [Boolean, Object] as PropType<boolean | BottomSticky>,\n default: true,\n },\n 'onUpdate:selectedRowKeys': {\n type: Function as PropType<(selectedRowKeys: Key[], selectedRows: T[]) => void>,\n },\n onScroll: {\n type: Function as PropType<(e: UIEvent) => void>,\n },\n 'onUpdate:expandedRowKeys': {\n type: Function as PropType<(info: Key[]) => void>,\n },\n onResizeColumn: {\n type: Function as PropType<\n (w: number, col: ColumnType, action: ResizeActionType) => boolean | void\n >,\n default: undefined,\n },\n onRowDragEnd: {\n type: Function as PropType<(opt: DragRowEventInfo) => boolean | Promise<any> | void>,\n default: undefined,\n },\n onColumnDragEnd: {\n type: Function as PropType<(opt: DragColumnEventInfo) => boolean | Promise<any> | void>,\n default: undefined,\n },\n onCellKeydown: {\n type: Function as PropType<(e: KeyboardEvent, opt: KeydownPayload) => boolean | void>,\n default: undefined,\n },\n onCellClick: {\n type: Function as PropType<(e: MouseEvent, opt: CellRenderArgs) => void>,\n default: undefined,\n },\n onBeforeOpenEditor: {\n type: Function as PropType<(opt: CellRenderArgs) => boolean | Promise<boolean> | void>,\n default: undefined,\n },\n onOpenEditor: {\n type: Function as PropType<(opt: CellRenderArgs) => void>,\n default: undefined,\n },\n onBeforeCloseEditor: {\n type: Function as PropType<(opt: CellRenderArgs) => boolean | Promise<boolean> | void>,\n default: undefined,\n },\n onCloseEditor: {\n type: Function as PropType<(opt: CellRenderArgs) => void>,\n default: undefined,\n },\n onDataChange: {\n type: Function as PropType<(dataSource: T[]) => void>,\n },\n onRowValidate: {\n type: Function as PropType<(TablePromiseErrorData) => void>,\n },\n onValidate: {\n type: Function as PropType<(TablePromiseErrorData) => void>,\n },\n 'onUpdate:pagination': {\n type: Function as PropType<(info: TablePaginationConfig) => void>,\n },\n 'onUpdate:dataSource': {\n type: Function as PropType<(dataSource: T[]) => void>,\n },\n 'onUpdate:columns': {\n type: Function as PropType<(columns: ColumnsType<T>, action: 'resize' | 'drag') => void>,\n },\n 'onUpdate:showAlert': {\n type: Function as PropType<(show: boolean) => void>,\n },\n})\n\nexport const tableProps = <T = DefaultRecordType>() => ({\n ...baseTableProps<T>(),\n title: String,\n subTitle: String,\n footer: Function,\n tooltip: String,\n cardProps: {\n type: [Object, Boolean] as PropType<CardProps | false>,\n default: undefined,\n },\n search: {\n type: [Object, Boolean] as PropType<SearchConfig | false>,\n default: undefined,\n },\n beforeSearchSubmit: {\n type: Function as PropType<(params: Partial<T>) => any>,\n default: undefined,\n },\n cardBordered: {\n type: [Boolean, Object] as PropType<Bordered>,\n default: undefined,\n },\n})\nclass Helper<T extends DefaultRecordType> {\n Return = tableProps<T>()\n}\nexport type ProTableProps<T extends DefaultRecordType = DefaultRecordType> = Partial<\n ExtractPropTypes<Helper<T>['Return']>\n>\nexport interface TableLocale {\n filterTitle?: string\n filterConfirm?: any\n filterReset?: any\n filterEmptyText?: any\n emptyText?: any | (() => any)\n selectAll?: any\n selectNone?: any\n selectInvert?: any\n selectionAll?: any\n sortTitle?: string\n expand?: string\n collapse?: string\n triggerDesc?: string\n triggerAsc?: string\n cancelSort?: string\n}\nexport interface ColumnTitleProps<RecordType> {\n /** @deprecated Please use `sorterColumns` instead. */\n sortOrder?: SortOrder\n /** @deprecated Please use `sorterColumns` instead. */\n sortColumn?: ColumnType<RecordType>\n column: ColumnType<RecordType>\n sortColumns?: {\n column: ColumnType<RecordType>\n order: SortOrder\n }[]\n filters?: Record<string, string[]>\n}\nexport type ColumnTitle<RecordType = DefaultRecordType> =\n | string\n | number\n | object\n | ((props: ColumnTitleProps<RecordType>) => any)\ninterface ColumnSharedType {\n title?: ColumnTitle\n key?: Key\n className?: string\n class?: string\n fixed?: FixedType\n ellipsis?: CellEllipsisType\n align?: AlignType\n wrapText?: boolean\n dataIndex?: DataIndex\n}\nexport interface FilterConfirmProps {\n closeDropdown: boolean\n}\nexport type AlignType = 'left' | 'center' | 'right'\nexport interface ColumnFilterItem {\n text: string | number\n value: string | number | boolean\n children?: ColumnFilterItem[]\n}\nexport type SortOrder = 'desc' | 'asc' | null\nexport type CompareFn<T> = (a: T, b: T, sortOrder?: SortOrder) => number\nexport type FilterValue = (Key | boolean)[]\nexport type FilterKey = Key[] | null\nexport interface FilterDropdownProps {\n prefixCls: string\n confirm: (param?: FilterConfirmProps) => void\n clearFilters?: () => void\n filters?: ColumnFilterItem[]\n /** @deprecated Please use `open` instead */\n visible: boolean\n open: boolean\n}\nexport interface CellType {\n key?: Key\n class?: string\n style?: CSSProperties\n colSpan?: number\n rowSpan?: number\n}\nexport interface HeaderCellType {\n key?: Key\n class?: string\n style?: CSSProperties\n column?: FinallyColumnType\n colSpan?: number\n rowSpan?: number\n hasSubColumns?: boolean\n colStart?: number\n colEnd?: number\n}\nexport interface RenderedCell {\n props?: CellType\n children?: any\n}\nexport type CellRenderArgs = {\n record: any\n column: ColumnType<DefaultRecordType> | ColumnGroupType<DefaultRecordType>\n text: any\n value: any\n index: number\n oldValue?: any\n recordIndexs: number[]\n openEditor: () => void\n closeEditor: () => void\n}\nexport interface ContextmenuPopupArg<RecordT, ColumnT>\n extends Omit<Partial<CellRenderArgs>, 'column' | 'record'> {\n column?: ColumnT\n record?: RecordT\n event: MouseEvent\n isExpand?: boolean\n hidePopup: () => void\n}\nexport type MenuFilterProps = {\n prefixCls: string\n setSelectedKeys: (selectedKeys: Key[]) => void\n selectedKeysRef: Ref<Key[]>\n confirm: () => void\n clearFilters: () => void\n filters: ColumnFilterItem[]\n}\nexport interface MenuPopupArg<ColumnT> {\n column: ColumnT\n event: MouseEvent\n hidePopup: () => void\n filter: MenuFilterProps\n}\nexport interface CellTooltip {\n placement?:\n | 'top'\n | 'left'\n | 'right'\n | 'bottom'\n | 'topLeft'\n | 'topRight'\n | 'bottomLeft'\n | 'bottomRight'\n | 'leftTop'\n | 'leftBottom'\n | 'rightTop'\n | 'rightBottom'\n color?: string\n overlayStyle?: CSSProperties\n overlayInnerStyle?: CSSProperties\n overlayClassName?: string\n openClassName?: string\n title?: (args: CellRenderArgs) => any\n align?: TooltipAlignConfig\n shouldOpen?: (isEllipsis: boolean, args: CellRenderArgs) => boolean\n allowEnter?: boolean\n}\n\nexport interface EditableCellConfig<T = DefaultRecordType> {\n /**\n * 触发编辑的事件\n */\n editableTrigger?: EditableTrigger | EditableTrigger[]\n /**\n * 组件定义,如:`Input` `Select`。对于完全自定义的组件(非组件库内的组件),组件需要支持 `value` 和 `onChange` ;如果还需要支持校验规则,则组件还需实现 `tips` 和 `status` 两个 API,实现规则可参考 `Input` 组件\n */\n component?: any\n /**\n * 单元格默认状态是否为编辑态\n * @default false\n */\n defaultEditable?: boolean\n /**\n * 设置当前列的单元格始终保持为编辑态\n * @default false\n */\n keepEditMode?: boolean\n\n /**\n * 行内错误提示\n * @default false\n */\n inlineError?: boolean\n /**\n * 是否可以编辑\n */\n editable?: (context: EditableValueParams<T>) => boolean\n valueParser?: ValueParserFunc<T>\n valueGetter?: ValueGetterFunc<T>\n valueSetter?: (params: EditableValueParams<T>) => boolean | Promise<any>\n /**\n * 透传给编辑组件的事件,参数有({ row, rowIndex, col, colIndex, editedRow, updateEditedCellValue })。可以使用参数 `updateEditedCellValue` 更新当前单元格(或当前行任意编辑状态单元格)的值。<br/>更新当前单元格数据示例:`updateEditedCellValue(value)`;<br/>更新当前行编辑态数据示例:`updateEditedCellValue({ isUpdateCurrentRow: true, column_key: 'test' })`;<br/>更新其他行编辑态数据示例:`updateEditedCellValue({ rowValue: '124', column_key: 'test' })`\n */\n on?: (context: EditableValueParams<T>) => { [eventName: string]: Function }\n /**\n * 编辑完成后,退出编辑模式时触发\n */\n onEdited?: (context: EditableValueParams<T>) => void\n /**\n * 透传给组件 `edit.component` 的属性,可以使用 `updateEditedCellValue` 更新当前行任意编辑状态单元格的值\n */\n props?: EditableCellProps<T>\n /**\n * 校验规则\n */\n rules?: EditableCellRules<T>\n /**\n * 是否显示编辑图标\n * @default true\n */\n request?: (params: Record<string, any>) => Promise<Record<string, any>[]>\n /** @name 依赖字段的name,暂时只在拥有 request 的项目中生效,会自动注入到 params 中 */\n dependencies?: DataIndex[]\n}\n\nexport interface ColumnType<RecordType = DefaultRecordType>\n extends ColumnSharedType,\n Omit<\n ProFormItemType,\n | 'key'\n | 'originKey'\n | 'tooltip'\n | 'hidden'\n | 'grid'\n | 'title'\n | 'spaceProps'\n | 'children'\n | 'width'\n | 'ignoreWidth'\n | 'name'\n | 'originName'\n | 'rowProps'\n | 'colProps'\n | 'valueEnum'\n > {\n search?: ProFormItemType\n colSpan?: number\n dataIndex?: DataIndex\n key?: Key\n rowSpan?: number\n width?: number\n minWidth?: number\n maxWidth?: number\n resizable?: boolean\n flex?: number\n autoHeight?: boolean\n tooltip?: true | CellTooltip\n headerTooltip?: string | true\n hidden?: boolean\n sorter?:\n | boolean\n | CompareFn<RecordType>\n | {\n compare?: CompareFn<RecordType>\n /** Config multiple sorter order priority */\n multiple?: number\n }\n showCellPopover?: boolean | PopoverProps\n sortOrder?: SortOrder\n defaultSortOrder?: SortOrder\n sortDirections?: SortOrder[]\n showSorterTooltip?: boolean | TooltipProps\n filtered?: boolean\n filters?: ColumnFilterItem[]\n filterIcon?: ({ filtered }: { filtered: boolean }) => any\n filterDropdown?: (props: FilterDropdownProps) => any\n filterMultiple?: boolean\n filteredValue?: FilterValue | null\n defaultFilteredValue?: FilterValue | null\n onFilter?: (value: string | number | boolean, record: RecordType) => boolean\n showFilter?: boolean\n showMenu?: boolean | 'hover'\n /** @deprecated Please use `filterDropdownOpen` instead */\n filterDropdownVisible?: boolean\n /** @deprecated Please use `onFilterDropdownOpenChange` instead */\n onFilterDropdownVisibleChange?: (open: boolean) => void\n filterDropdownOpen?: boolean\n onFilterDropdownOpenChange?: (open: boolean) => void\n customFilterDropdown?: boolean\n getPopupContainer?: GetPopupContainer\n customCell?: (obj: {\n record: any\n rowIndex: number\n column: ColumnType<RecordType>\n }) => Record<string, any>\n customHeaderCell?: (column: ColumnType<RecordType>) => Record<string, any>\n customRender?: (opt: {\n value: any\n text: any\n record: RecordType\n index: number\n column: ColumnType<RecordType>\n cancelEditable: (recordKey: Key) => boolean\n startEditable: (recordKey: Key, recordValue?: any) => boolean\n saveEditable: (recordKey: Key) => Promise<boolean>\n isEditable: (recordKey: Key) => boolean\n }) => any | RenderedCell\n /**\n * 可编辑单元格配置项,具体属性参考文档 `EditableCellConfig` 描述\n */\n edit?: EditableCellConfig<RecordType>\n\n valueParser?: ValueParserFunc<RecordType>\n valueGetter?: ValueGetterFunc<RecordType>\n valueSetter?: (params: ValueParserParams<RecordType>) => boolean | Promise<any>\n valueChange?: (e: Event, params: ValueParserParams<RecordType>) => void\n rowDrag?: boolean | ((arg: { record: RecordType; column: ColumnType<RecordType> }) => boolean)\n drag?: boolean\n /** @deprecated Please use `v-slot:customFilterIcon` `v-slot:bodyCell` `v-slot:headerCell` instead */\n slots?: {\n filterIcon?: string\n filterDropdown?: string\n customRender?: string\n title?: string\n }\n valueEnum?: ((row: RecordType) => Record<string, ValueEnumType>) | Record<string, ValueEnumType>\n valueStatus?:\n | ((value: any, row: RecordType, valueEnum?: ValueEnumType) => ValueStatus)\n | ValueStatus\n renderText?: (text: any, record: RecordType, rowIndex: number) => string | number\n /** @name 列设置的 disabled */\n disable?:\n | boolean\n | {\n checkbox: boolean\n }\n /** @name 在 table 中隐藏 */\n hideInTable?: boolean\n\n /** @name 在 search 中隐藏 */\n hideInSearch?: boolean\n\n /** @name 不在配置工具中显示 */\n hideInSetting?: boolean\n\n children?: ColumnType<RecordType>[]\n}\nexport interface ColumnGroupType<RecordType = DefaultRecordType> extends ColumnType<RecordType> {\n children?: ColumnsType<RecordType>\n}\nexport type ColumnsType<RecordType = DefaultRecordType> = (\n | ColumnGroupType<RecordType>\n | ColumnType<RecordType>\n)[]\nexport interface FinallyColumnType<RecordType = DefaultRecordType> extends ColumnType<RecordType> {\n finallyWidth?: number\n rowSpan?: number\n height?: number\n left?: number\n top?: number\n type?: 'checkbox' | 'expand' | 'rowIndex' | 'draggable'\n columnKey: Key\n columnIndex: number\n children?: FinallyColumnType<RecordType>[]\n originColumn?: ColumnsType[number]\n __Internal__Column__?: boolean\n showTitle: boolean\n fixed?: 'left' | 'right'\n}\ntype CellInfo = {\n columnKey: Key\n rowKey: Key\n}\nexport interface TableExposeType {\n scrollTo: (pos: string | Position, behavior: 'auto' | 'smooth') => void\n scrollLeft?: number\n scrollTop?: number\n bodyRef: HTMLDivElement\n rootRef: HTMLDivElement\n paginationRef: HTMLDivElement\n formAction: ProFormActionType\n getSelectedRange: () => SelectedRangeItem[]\n clearAllSelectedRange: () => void\n clearDataSource: () => void\n copySelectedRange: () => void\n appendCellToSelectedRange: (cell: AppendCellRange) => void\n openEditor: (cellInfos: CellInfo[]) => void\n closeEditor: (cellInfos?: CellInfo[]) => void\n reload: (resetPageIndex?: boolean) => Promise<void>\n reset: () => void\n calcTableHeight: () => Promise<void>\n formSearchSubmit: () => void\n getSearchParams: () => Record<string, any>\n validateRowData: (rowValue: any) => Promise<TablePromiseErrorData>\n validateTableData: () => Promise<TablePromiseErrorData>\n addEditRecord: (recordValue?: any, options?: AddLineOptions) => false | undefined\n startEditable: (recordKey: Key, recordValue?: any) => boolean\n cancelEditable: (recordKey: Key) => boolean\n saveEditable: (recordKey: Key) => Promise<boolean>\n cleanSelected: (keys?: Key[]) => void\n}\nexport interface DragRowsHandleInfo {\n y: number\n top: number\n height: number\n rowKey: Key\n centerY: number\n record: DefaultRecordType\n indexs: number[]\n}\nexport interface DragColumnHandleInfo {\n x: number\n left: number\n width: number\n columnKey: Key\n centerX: number\n indexs: number[]\n}\nexport interface DragRowEventInfo {\n top: number\n height: number\n dir: typeof DOWN | typeof UP\n rowKey: Key\n record: DefaultRecordType\n event: MouseEvent | Touch\n column: ColumnType\n preTargetInfo: DragRowsHandleInfo | null\n nextTargetInfo: DragRowsHandleInfo | null\n fromIndexs: number[]\n insertToRowKey: Key\n}\nexport interface RowDragGhostArg<RecordT, ColumnT> {\n record: RecordT\n column: ColumnT\n icon: VNode\n allowed: boolean\n dragging: boolean\n event: MouseEvent | Touch\n preTargetInfo: DragRowsHandleInfo | null\n nextTargetInfo: DragRowsHandleInfo | null\n}\nexport interface DragColumnEventInfo {\n event: MouseEvent | Touch\n column: ColumnType\n targetColumn: ColumnType\n dir: typeof LEFT | typeof RIGHT\n}\nexport interface ColumnDragGhostArg<ColumnT> {\n column: ColumnT\n icon: VNode\n allowed: boolean\n dragging: boolean\n event: MouseEvent | Touch\n targetColumn: ColumnT\n}\n\nexport type DensitySize = 'small' | 'middle' | 'large' | undefined\nexport type Request<T = DefaultRecordType, U = Record<string, any>> = (\n params: U & {\n pageSize?: number\n current?: number\n keyword?: string\n },\n sorters?: SorterResult<T>[],\n filter?: Record<string, (string | number)[] | null>,\n abort?: AbortController,\n) => Promise<Partial<RequestData<T>>>\n\nexport type RequestData<T = DefaultRecordType> = {\n data: T[] | undefined\n success?: boolean\n total?: number\n} & Record<string, any>\n\nexport type OptionsFunctionType = (e: any, action?: UseFetchDataAction<any>) => void\nexport type OptionsType = OptionsFunctionType | boolean\n\nexport type SettingOptionType = {\n draggable?: boolean\n checkable?: boolean\n checkedReset?: boolean\n listsHeight?: number\n}\n\nexport type OptionSearchProps = Omit<InputProps, 'onSearch'> & {\n loading?: boolean\n enterButton?: boolean\n /** 如果 onSearch 返回一个false,直接拦截请求 */\n onSearch?: (keyword: string) => Promise<boolean | undefined> | boolean | undefined\n}\n\nexport type OptionConfig = {\n density?: boolean\n filter?: boolean\n fullScreen?: OptionsType\n reload?: OptionsType\n setting?: boolean | SettingOptionType\n search?: (OptionSearchProps & { name?: string }) | boolean\n}\n\nexport type ValueEnumType = {\n text: string | number\n label?: string | number\n status?: string\n color?: string\n disabled?: boolean\n value?: string | number | boolean\n children?: ValueEnumType[]\n}\n\nexport type ColumnsState = {\n show?: boolean\n fixed?: true | 'right' | 'left' | undefined\n order?: number\n width?: number\n disable?:\n | boolean\n | {\n checkbox: boolean\n }\n}\n\nexport type ColumnStateType = {\n /**\n * 持久化的类型,支持 localStorage 和 sessionStorage\n *\n * @param localStorage 设置在关闭浏览器后也是存在的\n * @param sessionStorage 关闭浏览器后会丢失\n */\n persistenceType?: 'localStorage' | 'sessionStorage'\n /** 持久化的key,用于存储到 storage 中 */\n persistenceKey?: string\n /** ColumnsState 的值 */\n defaultValue?: Record<string, ColumnsState>\n /** ColumnsState 的值 */\n value?: Record<string, ColumnsState>\n onChange?: (map: Record<string, ColumnsState>) => void\n}\n\nexport type SearchConfig = ProQueryFilterProps & {\n cardProps?: CardProps | false\n tabName?: string\n style?: CSSProperties\n}\n\nexport type BorderedType = 'search' | 'table'\n\nexport type Bordered =\n | boolean\n | {\n search?: boolean\n table?: boolean\n }\n\nexport interface IsDateOptions {\n format: string\n strictMode: boolean\n delimiters: string[]\n}\n\nexport type CustomValidator = (\n val: any,\n) => CustomValidateResolveType | Promise<CustomValidateResolveType>\n\nexport type CustomValidateResolveType = boolean | CustomValidateObj\n\nexport interface CustomValidateObj {\n result: boolean\n message: string\n type?: 'error' | 'warning' | 'success'\n}\n\nexport type AddLineOptions = {\n position?: 'top' | 'bottom'\n newRecordType?: 'dataSource' | 'cache'\n}\n\nexport type TableEditingCell<RecordType = DefaultRecordType> = {\n recordIndexs: number[]\n column: ColumnType<RecordType>\n rowKey: Key\n originRecord: RecordType\n rowIndex: number\n columnKey: Key\n validateEdit: () => Promise<true | AllValidateResult[]>\n}\nexport type AllValidateResult = CustomValidateObj | ValidateResultType\n\nexport type TableErrorListMap = { [key: string]: AllValidateResult[] }\nexport type ErrorListObjectType = TableEditingCell & { errorList: AllValidateResult[] }\n\nexport interface TablePromiseErrorData {\n errors: ErrorListObjectType[]\n errorMap: TableErrorListMap\n data?: DefaultRecordType[]\n}\nexport interface ValidateResultType extends EditRule {\n result: boolean\n}\nexport interface EditRule {\n /**\n * 内置校验方法,校验值类型是否为布尔类型,示例:`{ boolean: true, message: '数据类型必须是布尔类型' }`\n */\n boolean?: boolean\n /**\n * 内置校验方法,校验值是否属于枚举值中的值。示例:`{ enum: ['primary', 'info', 'warning'], message: '值只能是 primary/info/warning 中的一种' }`\n */\n enum?: Array<string>\n /**\n * 内置校验方法,校验值是否为身份证号码,组件校验正则为 `/^(\\\\d{18,18}|\\\\d{15,15}|\\\\d{17,17}x)$/i`,示例:`{ idcard: true, message: '请输入正确的身份证号码' }`\n */\n idcard?: boolean\n /**\n * 内置校验方法,校验值固定长度,如:len: 10 表示值的字符长度只能等于 10 ,中文表示 2 个字符,英文为 1 个字符。示例:`{ len: 10, message: '内容长度不对' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length === 10, message: '内容文本长度只能是 10 个字' }`\n */\n len?: number | boolean\n /**\n * 内置校验方法,校验值最大长度,如:max: 100 表示值最多不能超过 100 个字符,中文表示 2 个字符,英文为 1 个字符。示例:`{ max: 10, message: '内容超出' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length <= 10, message: '内容文本长度不能超过 10 个字' }`<br />如果数据类型数字(Number),则自动变为数字大小的比对\n */\n max?: number | boolean\n /**\n * 校验未通过时呈现的错误信息,值为空则不显示\n * @default ''\n */\n message?: string\n /**\n * 内置校验方法,校验值最小长度,如:min: 10 表示值最多不能少于 10 个字符,中文表示 2 个字符,英文为 1 个字符。示例:`{ min: 10, message: '内容长度不够' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length >= 10, message: '内容文本长度至少为 10 个字' }`。<br />如果数据类型数字(Number),则自动变为数字大小的比对\n */\n min?: number | boolean\n /**\n * 内置校验方法,校验值是否为数字(1.2 、 1e5 都算数字),示例:`{ number: true, message: '请输入数字' }`\n */\n number?: boolean\n /**\n * 内置校验方法,校验值是否符合正则表达式匹配结果,示例:`{ pattern: /@qq.com/, message: '请输入 QQ 邮箱' }`\n */\n pattern?: RegExp\n /**\n * 内置校验方法,校验值是否已经填写。该值为 true,默认显示必填标记,可通过设置 `requiredMark: false` 隐藏必填标记\n */\n required?: boolean\n /**\n * 内置校验方法,校验值是否为手机号码,校验正则为 `/^1[3-9]\\d{9}$/`,示例:`{ telnumber: true, message: '请输入正确的手机号码' }`\n */\n telnumber?: boolean\n /**\n * 校验未通过时呈现的错误信息类型,有 告警信息提示 和 错误信息提示 等两种\n * @default error\n */\n type?: 'error' | 'warning'\n /**\n * 自定义校验规则,示例:`{ validator: (val) => val.length > 0, message: '请输入内容'}`\n */\n validator?: CustomValidator\n /**\n * 内置校验方法,校验值是否为空格。示例:`{ whitespace: true, message: '值不能为空' }`\n */\n whitespace?: boolean\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.js","sources":["../../../../../../../../packages/components/table/src/components/interface.ts"],"sourcesContent":["import type { TooltipProps } from 'ant-design-vue/es/tooltip'\nimport type { SpinProps } from 'ant-design-vue/es/spin'\nimport type { CSSProperties, ExtractPropTypes, HTMLAttributes, PropType, Ref, VNode } from 'vue'\nimport type {\n AppendCellRange,\n FormatRangeCellTextParams,\n KeydownPayload,\n SelectedRangeItem,\n} from '../hooks/RangeInterface'\nimport type { INTERNAL_SELECTION_ITEM } from '../hooks/useRowSelection'\nimport type { DOWN, LEFT, RIGHT, UP } from './Drag/constant'\nimport type { TablePaginationConfig, TablePaginationPosition } from './PaginationConfig'\nimport type { InputProps } from 'ant-design-vue/es/input'\nimport type { UseFetchDataAction } from '../hooks/useFetchData'\nimport type { CardProps, PopoverProps } from 'ant-design-vue'\nimport type {\n ProFormActionType,\n ProFormItemType,\n ProQueryFilterProps,\n} from '@pro-design-vue/components/form'\nexport type DefaultRecordType = Record<string, any>\nexport interface TooltipAlignConfig {\n points?: [string, string]\n offset?: [number | string, number | string]\n targetOffset?: [number | string, number | string]\n overflow?: {\n adjustX: boolean\n adjustY: boolean\n }\n useCssRight?: boolean\n useCssBottom?: boolean\n useCssTransform?: boolean\n}\nexport type RowType = 'left' | 'center' | 'right'\nexport type ValueStatus = 'success' | 'processing' | 'error' | 'warning' | string | undefined\nexport type Key = string | number\nexport interface Position {\n left?: number\n top?: number\n columnIndex?: number\n columnKey?: Key\n rowKey?: Key\n}\nexport type { TablePaginationPosition, TablePaginationConfig }\nexport type DataIndex = string | number | readonly (string | number)[]\nexport type CellEllipsisType =\n | {\n showTitle?: boolean\n line?: number\n }\n | boolean\nexport type FixedType = 'left' | 'right' | boolean\nexport type RowHeight =\n | ((p: Record<any, any>, isExpandRow: boolean, baseHeight: number) => number | undefined)\n | number\nexport type HeaderHeight = number[] | number\nexport interface RowsRefsItem {\n left?: any\n right?: any\n conter?: any\n}\n// const SpinSizes = ['small', 'default', 'large']\nexport type SpinSize = 'small' | 'default' | 'large'\n// const TableActions = ['paginate', 'sort', 'filter']\nexport type TableAction = 'paginate' | 'sort' | 'filter'\nexport interface StickyOffsets {\n left: readonly number[]\n right: readonly number[]\n isSticky?: boolean\n}\nexport interface CellEditorArgs {\n modelValue: Ref<any>\n save: () => void\n onInput: (event: Event, value: any) => void\n closeEditor: () => void\n column: ColumnType\n editorRef: Ref<any>\n getPopupContainer: () => HTMLElement\n recordIndexs: number[]\n record: any\n}\n\nexport const checkboxProps = () => ({\n prefixCls: String as PropType<string>,\n disabled: Boolean as PropType<boolean>,\n tabindex: [String, Number],\n name: String as PropType<string>,\n id: String as PropType<string>,\n style: {\n type: Object as PropType<CSSProperties>,\n default: () => ({}),\n },\n class: String as PropType<string>,\n checked: Boolean as PropType<boolean>,\n indeterminate: Boolean as PropType<boolean>,\n ariaLabel: String as PropType<string>,\n})\n\nexport type CheckboxProps = Partial<ExtractPropTypes<ReturnType<typeof checkboxProps>>>\nexport type RowSelectionType = 'checkbox' | 'radio'\nexport type GetRowKey<RecordType = DefaultRecordType> = (record: RecordType, index?: number) => Key\nexport interface HeaderSticky {\n offsetHeader?: number\n topSummary?: boolean\n}\n\nexport interface BottomSticky {\n offsetBottom?: number\n}\n\nexport type FlatRecord<T = DefaultRecordType> = {\n record: T\n indent: number\n rowKey: Key\n isExpandRow?: boolean\n rowIndex: number\n pos: string\n flattenIndex: number\n level: number\n}\nexport type GetPopupContainer = (triggerNode: HTMLElement) => HTMLElement\nexport interface SorterResult<RecordType> {\n column?: ColumnType<RecordType>\n order?: SortOrder\n field?: Key | readonly Key[]\n columnKey?: Key\n}\nexport interface TableCurrentDataSource<RecordType = DefaultRecordType> {\n currentDataSource: RecordType[]\n action: TableAction\n}\ntype ChangeEvent<RecordType> = (\n pagination: TablePaginationConfig,\n filters: Record<string, FilterValue | null>,\n sorter: SorterResult<RecordType> | SorterResult<RecordType>[],\n extra: TableCurrentDataSource<RecordType>,\n) => void\ntype Scroll = {\n x?: number | string\n y?: number | string\n scrollToFirstRowOnChange?: boolean\n}\nexport type RowClassName<RecordType> = (\n record: RecordType,\n index: number,\n indent?: number,\n) => string\nexport type ExpandType = null | 'row' | 'nest'\nexport type ExpandedRowRender<ValueType> = (opt: {\n record: ValueType\n index: number\n indent: number\n expanded: boolean\n}) => any\nexport type TriggerEventHandler<RecordType> = (\n record: RecordType,\n key: Key,\n event: MouseEvent,\n) => void\nexport interface RenderExpandIconProps<RecordType> {\n prefixCls: string\n expanded: boolean\n record: RecordType\n expandable: boolean\n onExpand: TriggerEventHandler<RecordType>\n}\nexport type RenderExpandIcon<RecordType> = (props: RenderExpandIconProps<RecordType>) => any\nexport type ExpandIconType = 'default' | 'arrow'\nexport type SelectionItemSelectFn = (currentRowKeys: Key[]) => void\nexport interface SelectionItem {\n key: string\n text: any\n onSelect?: SelectionItemSelectFn\n}\nexport type SelectionSelectFn<T> = (\n record: T,\n selected: boolean,\n selectedRows: T[],\n nativeEvent: Event,\n) => void\nexport interface TableRowSelection<T = DefaultRecordType> {\n /** Keep the selection keys in list even the key not exist in `dataSource` anymore */\n preserveSelectedRowKeys?: boolean\n type?: RowSelectionType\n allowCancelRadio?: boolean\n selectedRowKeys?: Key[]\n defaultSelectedRowKeys?: Key[]\n onChange?: (selectedRowKeys: Key[], selectedRows: T[]) => void\n getCheckboxProps?: (record: T) => Partial<Omit<CheckboxProps, 'checked' | 'defaultChecked'>>\n onSelect?: SelectionSelectFn<T>\n onSelectMultiple?: (selected: boolean, selectedRows: T[], changeRows: T[]) => void\n /** @deprecated This function is meaningless and should use `onChange` instead */\n onSelectAll?: (selected: boolean, selectedRows: T[], changeRows: T[]) => void\n /** @deprecated This function is meaningless and should use `onChange` instead */\n onSelectInvert?: (selectedRowKeys: Key[]) => void\n onSelectNone?: () => void\n selections?: INTERNAL_SELECTION_ITEM[] | boolean\n hideSelectAll?: boolean\n fixed?: boolean\n columnWidth?: string | number\n columnTitle?: any\n checkStrictly?: boolean\n renderCell?: (value: boolean, record: T, index: number, originNode: any) => any\n}\ntype GetComponentProps<DataType> = (\n data: DataType,\n index?: number,\n) => Omit<HTMLAttributes, 'style'> & {\n style?: CSSProperties\n}\nexport type ResizeActionType = 'start' | 'move' | 'end'\nexport type SummaryFixed = boolean | 'top' | 'bottom'\nexport interface ValueParserParams<RecordType = DefaultRecordType, TValue = any> {\n newValue: TValue\n oldValue: TValue\n record: RecordType\n recordIndexs: number[]\n column: ColumnType<RecordType>\n}\nexport interface EditableValueParams<RecordType = DefaultRecordType, TValue = any> {\n value: TValue\n record: RecordType\n recordIndexs: number[]\n column: ColumnType<RecordType>\n updateEditedCellValue?: (key: DataIndex, value: any) => void\n}\n\nexport interface ValueParserFunc<T = any, TValue = any> {\n (params: EditableValueParams<T, TValue>): TValue | null | undefined\n}\nexport interface ValueGetterFunc<T = any, TValue = any> {\n (params: EditableValueParams<T, TValue>): string | null | undefined\n}\nexport type EditableTrigger = 'click' | 'dblClick' | 'contextmenu'\n\nexport interface PlainObject {\n [key: string]: any\n}\nexport type EditableCellProps<T> = PlainObject | ((params: EditableValueParams<T>) => PlainObject)\n\nexport type EditableCellRules<T> = EditRule[] | ((params: EditableValueParams<T>) => EditRule[])\n\nexport type EditableCellType<T> = (params: EditableValueParams<T>) => boolean\n\nexport type RowEditableType = 'single' | 'multiple'\nexport type RowEditableConfig<DataType> = {\n /**\n * @type single | multiple\n * @name 编辑的类型,支持单选和多选\n */\n type?: RowEditableType\n /** @name 正在编辑的列 */\n editableKeys?: Key[]\n /** 只能编辑一行的的提示 */\n onlyOneLineEditorAlertMessage?: string\n /** 同时只能新增一行的提示 */\n onlyAddOneLineAlertMessage?: string | false\n /** 正在编辑的列修改的时候 */\n onChange?: (editableKeys: Key[], editableRows: DataType[] | DataType) => void\n // /** 正在编辑的列修改的时候 */\n // onValuesChange?: (record: DataType, dataSource: DataType[]) => void\n /** 行保存的时候 */\n onSave?: (\n /** 行 id,一般是唯一id */\n key: Key,\n /** 当前修改的行的值 */\n record: DataType & { index?: number },\n /** 原始值,可以用于判断是否修改 */\n originRow: DataType & { index?: number },\n ) => Promise<any | void> | any | void\n}\n\nexport const baseTableProps = <T = DefaultRecordType>() => ({\n ignoreCellKey: Boolean,\n showHeaderScrollbar: Boolean,\n deepWatchDataSource: Boolean,\n deepWatchColumns: Boolean,\n prefixCls: String,\n columnDrag: {\n type: Boolean,\n default: undefined,\n },\n columnResizable: {\n type: Boolean,\n default: undefined,\n },\n animateRows: {\n type: Boolean,\n default: undefined,\n },\n dropdownPrefixCls: { type: String },\n columns: {\n type: Array as PropType<ColumnsType<T>>,\n default: () => [],\n },\n dataSource: {\n type: Array as PropType<T[]>,\n default: () => [],\n },\n virtual: {\n type: Boolean,\n default: undefined,\n },\n xVirtual: {\n type: Boolean,\n default: undefined,\n },\n rowHeight: {\n type: [Number, Function] as PropType<RowHeight>,\n default: undefined,\n },\n autoHeaderHeight: {\n type: Boolean,\n default: false,\n },\n headerHeight: {\n type: [Number, Array] as PropType<HeaderHeight>,\n },\n height: {\n type: [Number, String],\n },\n maxHeight: {\n type: [Number, String],\n },\n minHeight: {\n type: [Number, String],\n },\n size: {\n type: String as PropType<DensitySize>,\n default: undefined,\n },\n bordered: {\n type: Boolean,\n default: undefined,\n },\n wrapText: {\n type: Boolean,\n default: false,\n },\n loading: {\n type: [Boolean, Object] as PropType<boolean | SpinProps>,\n default: undefined,\n },\n pagination: {\n type: [Boolean, Object] as PropType<false | TablePaginationConfig>,\n default: () => ({}),\n },\n direction: {\n type: String as PropType<'rtl'>,\n default: undefined,\n },\n stripe: {\n type: Boolean,\n default: false,\n },\n rowClassName: {\n type: [String, Function] as PropType<string | RowClassName<T>>,\n default: undefined,\n },\n sticky: {\n type: [Boolean, Object] as PropType<boolean | HeaderSticky>,\n default: true,\n },\n selectedRowKeys: {\n type: Array as PropType<Key[]>,\n default: undefined,\n },\n expandFixed: {\n type: [Boolean, String] as PropType<FixedType>,\n default: undefined,\n },\n expandColumnWidth: {\n type: Number,\n default: undefined,\n },\n expandedRowKeys: {\n type: Array as PropType<Key[]>,\n default: undefined,\n },\n defaultExpandedRowKeys: {\n type: Array as PropType<Key[]>,\n default: undefined,\n },\n expandedRowRender: {\n type: Function as PropType<ExpandedRowRender<T>>,\n default: undefined,\n },\n expandRowByClick: {\n type: Boolean,\n default: undefined,\n },\n selectRowByClick: {\n type: Boolean,\n default: undefined,\n },\n expandIcon: {\n type: Function as PropType<RenderExpandIcon<T>>,\n default: undefined,\n },\n expandIconType: {\n type: String as PropType<ExpandIconType>,\n default: undefined,\n },\n onExpand: {\n type: Function as PropType<(expanded: boolean, record: T) => void>,\n default: undefined,\n },\n onExpandedRowsChange: {\n type: Function as PropType<(expandedKeys: Key[]) => void>,\n default: undefined,\n },\n defaultExpandAllRows: {\n type: Boolean,\n default: undefined,\n },\n indentSize: Number,\n expandIconColumnIndex: Number,\n childrenColumnName: {\n type: String,\n default: undefined,\n },\n rowExpandable: {\n type: Function as PropType<(record: T) => boolean>,\n default: () => true,\n },\n rowSelection: {\n type: Object as PropType<TableRowSelection<DefaultRecordType>>,\n default: undefined,\n },\n rowHoverDelay: {\n type: Number,\n default: 59,\n },\n rowHover: {\n type: Boolean,\n default: undefined,\n },\n rowKey: {\n type: [Function, String] as PropType<string | GetRowKey<T>>,\n default: undefined,\n },\n customRow: {\n type: Function as PropType<GetComponentProps<T>>,\n default: () => ({}),\n },\n customCell: {\n type: Function as PropType<\n (obj: { record: T; rowIndex: number; column: ColumnType<T> }) => Record<string, any>\n >,\n default: () => ({}),\n },\n customHeaderCell: {\n type: Function as PropType<(column: ColumnType<T>) => Record<string, any>>,\n default: () => ({}),\n },\n customSummaryCellProps: {\n type: Function as PropType<\n (obj: {\n record: T\n rowIndex: number\n column: ColumnType<T>\n columnIndex: number\n }) => Record<string, any>\n >,\n default: () => ({}),\n },\n editableKeys: {\n type: Array as PropType<Key[]>,\n default: undefined,\n },\n rowEditable: {\n type: Object as PropType<RowEditableConfig<T>>,\n default: undefined,\n },\n showHeader: {\n type: Boolean,\n default: true,\n },\n showSorterTooltip: {\n type: [Boolean, Object] as PropType<boolean | TooltipProps>,\n default: true,\n },\n getPopupContainer: {\n type: Function as PropType<GetPopupContainer>,\n },\n locale: {\n type: Object as PropType<TableLocale>,\n default: undefined,\n },\n scrollX: {\n type: [Number, String] as PropType<string | number>,\n },\n scroll: {\n type: Object as PropType<Scroll>,\n default: undefined,\n },\n autoHeight: {\n type: [Boolean, Function] as PropType<boolean | ((autoHeight: number) => number)>,\n default: false,\n },\n rangeSelection: {\n type: [String, Boolean] as PropType<boolean | 'single'>,\n default: false,\n },\n copyDelimiter: {\n type: String,\n default: '',\n },\n rowDrag: {\n type: [Boolean],\n },\n onChange: {\n type: Function as PropType<ChangeEvent<T>>,\n },\n summaryFixed: {\n type: [Boolean, String] as PropType<SummaryFixed>,\n default: undefined,\n },\n hasContextmenuPopup: Boolean,\n formatRangeCellText: {\n type: Function as PropType<(params: FormatRangeCellTextParams) => string>,\n },\n\n columnEmptyText: {\n type: [String, Boolean] as PropType<string | false>,\n default: undefined,\n },\n toolBar: { type: Boolean, default: undefined },\n options: { type: [Object, Boolean] as PropType<OptionConfig | false>, default: undefined },\n alwaysShowAlert: { type: Boolean, default: undefined },\n showAlert: { type: Boolean, default: undefined },\n // requst 相关配置\n request: Function as PropType<Request>,\n params: Object as PropType<Record<string, any>>,\n defaultData: Array as PropType<T[]>,\n manual: Boolean,\n manualRequest: Boolean,\n polling: [Number, Function] as PropType<number | ((dataSource: any[]) => number)>,\n debounceTime: Number,\n onLoad: {\n type: Function as PropType<(dataSource: T[], extra: any) => void>,\n default: undefined,\n },\n onLoadingChange: {\n type: Function as PropType<(loading: boolean | SpinProps | undefined) => void>,\n default: undefined,\n },\n onRequestError: {\n type: Function as PropType<(e: Error) => void>,\n default: undefined,\n },\n onSizeChange: {\n type: Function as PropType<(size: DensitySize) => void>,\n default: undefined,\n },\n onSubmit: {\n type: Function as PropType<ProQueryFilterProps['onFinish']>,\n default: undefined,\n },\n onReset: {\n type: Function as PropType<ProQueryFilterProps['onReset']>,\n default: undefined,\n },\n /** @name 列状态的配置,可以用来操作列功能 */\n columnsState: {\n type: Object as PropType<ColumnStateType>,\n default: undefined,\n },\n /** @name 是否要高亮选择行\t */\n highlightSelectRow: {\n type: Boolean,\n default: undefined,\n },\n editableCellState: {\n type: Function as PropType<EditableCellType<T>>,\n },\n\n paginationSticky: {\n type: [Boolean, Object] as PropType<boolean | BottomSticky>,\n default: true,\n },\n horizontalScrollSticky: {\n type: [Boolean, Object] as PropType<boolean | BottomSticky>,\n default: true,\n },\n 'onUpdate:selectedRowKeys': {\n type: Function as PropType<(selectedRowKeys: Key[], selectedRows: T[]) => void>,\n },\n onScroll: {\n type: Function as PropType<(e: UIEvent) => void>,\n },\n 'onUpdate:expandedRowKeys': {\n type: Function as PropType<(info: Key[]) => void>,\n },\n onResizeColumn: {\n type: Function as PropType<\n (w: number, col: ColumnType, action: ResizeActionType) => boolean | void\n >,\n default: undefined,\n },\n onRowDragEnd: {\n type: Function as PropType<(opt: DragRowEventInfo) => boolean | Promise<any> | void>,\n default: undefined,\n },\n onColumnDragEnd: {\n type: Function as PropType<(opt: DragColumnEventInfo) => boolean | Promise<any> | void>,\n default: undefined,\n },\n onCellKeydown: {\n type: Function as PropType<(e: KeyboardEvent, opt: KeydownPayload) => boolean | void>,\n default: undefined,\n },\n onCellClick: {\n type: Function as PropType<(e: MouseEvent, opt: CellRenderArgs) => void>,\n default: undefined,\n },\n onBeforeOpenEditor: {\n type: Function as PropType<(opt: CellRenderArgs) => boolean | Promise<boolean> | void>,\n default: undefined,\n },\n onOpenEditor: {\n type: Function as PropType<(opt: CellRenderArgs) => void>,\n default: undefined,\n },\n onBeforeCloseEditor: {\n type: Function as PropType<(opt: CellRenderArgs) => boolean | Promise<boolean> | void>,\n default: undefined,\n },\n onCloseEditor: {\n type: Function as PropType<(opt: CellRenderArgs) => void>,\n default: undefined,\n },\n onDataChange: {\n type: Function as PropType<(dataSource: T[]) => void>,\n },\n onRowValidate: {\n type: Function as PropType<(TablePromiseErrorData) => void>,\n },\n onValidate: {\n type: Function as PropType<(TablePromiseErrorData) => void>,\n },\n 'onUpdate:pagination': {\n type: Function as PropType<(info: TablePaginationConfig) => void>,\n },\n 'onUpdate:dataSource': {\n type: Function as PropType<(dataSource: T[]) => void>,\n },\n 'onUpdate:columns': {\n type: Function as PropType<(columns: ColumnsType<T>, action: 'resize' | 'drag') => void>,\n },\n 'onUpdate:showAlert': {\n type: Function as PropType<(show: boolean) => void>,\n },\n})\n\nexport const tableProps = <T = DefaultRecordType>() => ({\n ...baseTableProps<T>(),\n title: String,\n subTitle: String,\n footer: Function,\n tooltip: String,\n cardProps: {\n type: [Object, Boolean] as PropType<CardProps | false>,\n default: undefined,\n },\n search: {\n type: [Object, Boolean] as PropType<SearchConfig | false>,\n default: undefined,\n },\n beforeSearchSubmit: {\n type: Function as PropType<(params: Partial<T>) => any>,\n default: undefined,\n },\n cardBordered: {\n type: [Boolean, Object] as PropType<Bordered>,\n default: undefined,\n },\n})\nclass Helper<T extends DefaultRecordType> {\n Return = tableProps<T>()\n}\nexport type ProTableProps<T extends DefaultRecordType = DefaultRecordType> = Partial<\n ExtractPropTypes<Helper<T>['Return']>\n>\nexport interface TableLocale {\n filterTitle?: string\n filterConfirm?: any\n filterReset?: any\n filterEmptyText?: any\n emptyText?: any | (() => any)\n selectAll?: any\n selectNone?: any\n selectInvert?: any\n selectionAll?: any\n sortTitle?: string\n expand?: string\n collapse?: string\n triggerDesc?: string\n triggerAsc?: string\n cancelSort?: string\n}\nexport interface ColumnTitleProps<RecordType> {\n /** @deprecated Please use `sorterColumns` instead. */\n sortOrder?: SortOrder\n /** @deprecated Please use `sorterColumns` instead. */\n sortColumn?: ColumnType<RecordType>\n column: ColumnType<RecordType>\n sortColumns?: {\n column: ColumnType<RecordType>\n order: SortOrder\n }[]\n filters?: Record<string, string[]>\n}\nexport type ColumnTitle<RecordType = DefaultRecordType> =\n | string\n | number\n | object\n | ((props: ColumnTitleProps<RecordType>) => any)\ninterface ColumnSharedType {\n title?: ColumnTitle\n key?: Key\n className?: string\n class?: string\n fixed?: FixedType\n ellipsis?: CellEllipsisType\n align?: AlignType\n wrapText?: boolean\n dataIndex?: DataIndex\n}\nexport interface FilterConfirmProps {\n closeDropdown: boolean\n}\nexport type AlignType = 'left' | 'center' | 'right'\nexport interface ColumnFilterItem {\n text: string | number\n value: string | number | boolean\n children?: ColumnFilterItem[]\n}\nexport type SortOrder = 'desc' | 'asc' | null\nexport type CompareFn<T> = (a: T, b: T, sortOrder?: SortOrder) => number\nexport type FilterValue = (Key | boolean)[]\nexport type FilterKey = Key[] | null\nexport interface FilterDropdownProps {\n prefixCls: string\n confirm: (param?: FilterConfirmProps) => void\n clearFilters?: () => void\n filters?: ColumnFilterItem[]\n /** @deprecated Please use `open` instead */\n visible: boolean\n open: boolean\n}\nexport interface CellType {\n key?: Key\n class?: string\n style?: CSSProperties\n colSpan?: number\n rowSpan?: number\n}\nexport interface HeaderCellType {\n key?: Key\n class?: string\n style?: CSSProperties\n column?: FinallyColumnType\n colSpan?: number\n rowSpan?: number\n hasSubColumns?: boolean\n colStart?: number\n colEnd?: number\n}\nexport interface RenderedCell {\n props?: CellType\n children?: any\n}\nexport type CellRenderArgs = {\n record: any\n column: ColumnType<DefaultRecordType> | ColumnGroupType<DefaultRecordType>\n text: any\n value: any\n index: number\n oldValue?: any\n recordIndexs: number[]\n openEditor: () => void\n closeEditor: () => void\n}\nexport interface ContextmenuPopupArg<RecordT, ColumnT>\n extends Omit<Partial<CellRenderArgs>, 'column' | 'record'> {\n column?: ColumnT\n record?: RecordT\n event: MouseEvent\n isExpand?: boolean\n hidePopup: () => void\n}\nexport type MenuFilterProps = {\n prefixCls: string\n setSelectedKeys: (selectedKeys: Key[]) => void\n selectedKeysRef: Ref<Key[]>\n confirm: () => void\n clearFilters: () => void\n filters: ColumnFilterItem[]\n}\nexport interface MenuPopupArg<ColumnT> {\n column: ColumnT\n event: MouseEvent\n hidePopup: () => void\n filter: MenuFilterProps\n}\nexport interface CellTooltip {\n placement?:\n | 'top'\n | 'left'\n | 'right'\n | 'bottom'\n | 'topLeft'\n | 'topRight'\n | 'bottomLeft'\n | 'bottomRight'\n | 'leftTop'\n | 'leftBottom'\n | 'rightTop'\n | 'rightBottom'\n color?: string\n overlayStyle?: CSSProperties\n overlayInnerStyle?: CSSProperties\n overlayClassName?: string\n openClassName?: string\n title?: (args: CellRenderArgs) => any\n align?: TooltipAlignConfig\n shouldOpen?: (isEllipsis: boolean, args: CellRenderArgs) => boolean\n allowEnter?: boolean\n}\n\nexport interface EditableCellConfig<T = DefaultRecordType> {\n /**\n * 触发编辑的事件\n */\n editableTrigger?: EditableTrigger | EditableTrigger[]\n /**\n * 组件定义,如:`Input` `Select`。对于完全自定义的组件(非组件库内的组件),组件需要支持 `value` 和 `onChange` ;如果还需要支持校验规则,则组件还需实现 `tips` 和 `status` 两个 API,实现规则可参考 `Input` 组件\n */\n component?: any\n /**\n * 单元格默认状态是否为编辑态\n * @default false\n */\n defaultEditable?: boolean\n /**\n * 设置当前列的单元格始终保持为编辑态\n * @default false\n */\n keepEditMode?: boolean\n\n /**\n * 行内错误提示\n * @default false\n */\n inlineError?: boolean\n /**\n * 是否可以编辑\n */\n editable?: (context: EditableValueParams<T>) => boolean\n valueParser?: ValueParserFunc<T>\n valueGetter?: ValueGetterFunc<T>\n valueSetter?: (params: EditableValueParams<T>) => boolean | Promise<any>\n /**\n * 透传给编辑组件的事件,参数有({ row, rowIndex, col, colIndex, editedRow, updateEditedCellValue })。可以使用参数 `updateEditedCellValue` 更新当前单元格(或当前行任意编辑状态单元格)的值。<br/>更新当前单元格数据示例:`updateEditedCellValue(value)`;<br/>更新当前行编辑态数据示例:`updateEditedCellValue({ isUpdateCurrentRow: true, column_key: 'test' })`;<br/>更新其他行编辑态数据示例:`updateEditedCellValue({ rowValue: '124', column_key: 'test' })`\n */\n on?: (context: EditableValueParams<T>) => { [eventName: string]: Function }\n /**\n * 编辑完成后,退出编辑模式时触发\n */\n onEdited?: (context: EditableValueParams<T>) => void\n /**\n * 透传给组件 `edit.component` 的属性,可以使用 `updateEditedCellValue` 更新当前行任意编辑状态单元格的值\n */\n props?: EditableCellProps<T>\n /**\n * 校验规则\n */\n rules?: EditableCellRules<T>\n /**\n * 是否显示编辑图标\n * @default true\n */\n request?: (params: Record<string, any>) => Promise<Record<string, any>[]>\n /** @name 依赖字段的name,暂时只在拥有 request 的项目中生效,会自动注入到 params 中 */\n dependencies?: DataIndex[]\n}\n\nexport interface ColumnType<RecordType = DefaultRecordType>\n extends ColumnSharedType,\n Omit<\n ProFormItemType,\n | 'key'\n | 'originKey'\n | 'tooltip'\n | 'hidden'\n | 'grid'\n | 'title'\n | 'spaceProps'\n | 'children'\n | 'width'\n | 'ignoreWidth'\n | 'name'\n | 'originName'\n | 'rowProps'\n | 'colProps'\n | 'valueEnum'\n > {\n search?: ProFormItemType\n colSpan?: number\n dataIndex?: DataIndex\n key?: Key\n rowSpan?: number\n width?: number\n minWidth?: number\n maxWidth?: number\n resizable?: boolean\n flex?: number\n autoHeight?: boolean\n tooltip?: true | CellTooltip\n headerTooltip?: string | true\n hidden?: boolean\n sorter?:\n | boolean\n | CompareFn<RecordType>\n | {\n compare?: CompareFn<RecordType>\n /** Config multiple sorter order priority */\n multiple?: number\n }\n showCellPopover?: boolean | PopoverProps\n sortOrder?: SortOrder\n defaultSortOrder?: SortOrder\n sortDirections?: SortOrder[]\n showSorterTooltip?: boolean | TooltipProps\n filtered?: boolean\n filters?: ColumnFilterItem[]\n filterIcon?: ({ filtered }: { filtered: boolean }) => any\n filterDropdown?: (props: FilterDropdownProps) => any\n filterMultiple?: boolean\n filteredValue?: FilterValue | null\n defaultFilteredValue?: FilterValue | null\n onFilter?: (value: string | number | boolean, record: RecordType) => boolean\n showFilter?: boolean\n showMenu?: boolean | 'hover'\n /** @deprecated Please use `filterDropdownOpen` instead */\n filterDropdownVisible?: boolean\n /** @deprecated Please use `onFilterDropdownOpenChange` instead */\n onFilterDropdownVisibleChange?: (open: boolean) => void\n filterDropdownOpen?: boolean\n onFilterDropdownOpenChange?: (open: boolean) => void\n customFilterDropdown?: boolean\n getPopupContainer?: GetPopupContainer\n customCell?: (obj: {\n record: any\n rowIndex: number\n column: ColumnType<RecordType>\n }) => Record<string, any>\n customHeaderCell?: (column: ColumnType<RecordType>) => Record<string, any>\n customRender?: (opt: {\n value: any\n text: any\n record: RecordType\n index: number\n column: ColumnType<RecordType>\n cancelEditable: (recordKey: Key) => boolean\n startEditable: (recordKey: Key, recordValue?: any) => boolean\n saveEditable: (recordKey: Key) => Promise<boolean>\n isEditable: (recordKey: Key) => boolean\n }) => any | RenderedCell\n /**\n * 可编辑单元格配置项,具体属性参考文档 `EditableCellConfig` 描述\n */\n edit?: EditableCellConfig<RecordType>\n\n valueParser?: ValueParserFunc<RecordType>\n valueGetter?: ValueGetterFunc<RecordType>\n valueSetter?: (params: ValueParserParams<RecordType>) => boolean | Promise<any>\n valueChange?: (e: Event, params: ValueParserParams<RecordType>) => void\n rowDrag?: boolean | ((arg: { record: RecordType; column: ColumnType<RecordType> }) => boolean)\n drag?: boolean\n /** @deprecated Please use `v-slot:customFilterIcon` `v-slot:bodyCell` `v-slot:headerCell` instead */\n slots?: {\n filterIcon?: string\n filterDropdown?: string\n customRender?: string\n title?: string\n }\n valueEnum?: ((row: RecordType) => Record<string, ValueEnumType>) | Record<string, ValueEnumType>\n valueStatus?:\n | ((value: any, row: RecordType, valueEnum?: ValueEnumType) => ValueStatus)\n | ValueStatus\n renderText?: (text: any, record: RecordType, rowIndex: number) => string | number\n /** @name 列设置的 disabled */\n disable?:\n | boolean\n | {\n checkbox: boolean\n }\n /** @name 在 table 中隐藏 */\n hideInTable?: boolean\n\n /** @name 在 search 中隐藏 */\n hideInSearch?: boolean\n\n /** @name 不在配置工具中显示 */\n hideInSetting?: boolean\n\n children?: ColumnType<RecordType>[]\n}\nexport interface ColumnGroupType<RecordType = DefaultRecordType> extends ColumnType<RecordType> {\n children?: ColumnsType<RecordType>\n}\nexport type ColumnsType<RecordType = DefaultRecordType> = (\n | ColumnGroupType<RecordType>\n | ColumnType<RecordType>\n)[]\nexport interface FinallyColumnType<RecordType = DefaultRecordType> extends ColumnType<RecordType> {\n finallyWidth?: number\n rowSpan?: number\n height?: number\n left?: number\n top?: number\n type?: 'checkbox' | 'expand' | 'rowIndex' | 'draggable'\n columnKey: Key\n columnIndex: number\n children?: FinallyColumnType<RecordType>[]\n originColumn?: ColumnsType[number]\n __Internal__Column__?: boolean\n showTitle: boolean\n fixed?: 'left' | 'right'\n}\ntype CellInfo = {\n columnKey: Key\n rowKey: Key\n}\nexport interface TableExposeType {\n scrollTo: (pos: string | Position, behavior: 'auto' | 'smooth') => void\n scrollLeft?: number\n scrollTop?: number\n bodyRef: HTMLDivElement\n rootRef: HTMLDivElement\n paginationRef: HTMLDivElement\n formAction: ProFormActionType\n getSelectedRange: () => SelectedRangeItem[]\n clearAllSelectedRange: () => void\n clearDataSource: () => void\n copySelectedRange: () => void\n appendCellToSelectedRange: (cell: AppendCellRange) => void\n openEditor: (cellInfos: CellInfo[]) => void\n closeEditor: (cellInfos?: CellInfo[]) => void\n reload: (resetPageIndex?: boolean) => Promise<void>\n reset: () => void\n calcTableHeight: () => Promise<void>\n formSearchSubmit: () => void\n getSearchParams: () => Record<string, any>\n validateRowData: (rowValue: any) => Promise<TablePromiseErrorData>\n validateTableData: () => Promise<TablePromiseErrorData>\n addEditRecord: (recordValue?: any, options?: AddLineOptions) => false | undefined\n startEditable: (recordKey: Key, recordValue?: any) => boolean\n cancelEditable: (recordKey: Key) => boolean\n saveEditable: (recordKey: Key) => Promise<boolean>\n cleanSelected: (keys?: Key[]) => void\n}\nexport interface DragRowsHandleInfo {\n y: number\n top: number\n height: number\n rowKey: Key\n centerY: number\n record: DefaultRecordType\n indexs: number[]\n}\nexport interface DragColumnHandleInfo {\n x: number\n left: number\n width: number\n columnKey: Key\n centerX: number\n indexs: number[]\n}\nexport interface DragRowEventInfo {\n top: number\n height: number\n dir: typeof DOWN | typeof UP\n rowKey: Key\n record: DefaultRecordType\n event: MouseEvent | Touch\n column: ColumnType\n preTargetInfo: DragRowsHandleInfo | null\n nextTargetInfo: DragRowsHandleInfo | null\n fromIndexs: number[]\n insertToRowKey: Key\n}\nexport interface RowDragGhostArg<RecordT, ColumnT> {\n record: RecordT\n column: ColumnT\n icon: VNode\n allowed: boolean\n dragging: boolean\n event: MouseEvent | Touch\n preTargetInfo: DragRowsHandleInfo | null\n nextTargetInfo: DragRowsHandleInfo | null\n}\nexport interface DragColumnEventInfo {\n event: MouseEvent | Touch\n column: ColumnType\n targetColumn: ColumnType\n dir: typeof LEFT | typeof RIGHT\n}\nexport interface ColumnDragGhostArg<ColumnT> {\n column: ColumnT\n icon: VNode\n allowed: boolean\n dragging: boolean\n event: MouseEvent | Touch\n targetColumn: ColumnT\n}\n\nexport type DensitySize = 'small' | 'middle' | 'large' | undefined\nexport type Request<T = DefaultRecordType, U = Record<string, any>> = (\n params: U & {\n pageSize?: number\n current?: number\n keyword?: string\n },\n sorters?: SorterResult<T>[],\n filter?: Record<string, (string | number)[] | null>,\n abort?: AbortController,\n) => Promise<Partial<RequestData<T>>>\n\nexport type RequestData<T = DefaultRecordType> = {\n data: T[] | undefined\n success?: boolean\n total?: number\n} & Record<string, any>\n\nexport type OptionsFunctionType = (e: any, action?: UseFetchDataAction<any>) => void\nexport type OptionsType = OptionsFunctionType | boolean\n\nexport type SettingOptionType = {\n draggable?: boolean\n checkable?: boolean\n checkedReset?: boolean\n listsHeight?: number\n}\n\nexport type OptionSearchProps = Omit<InputProps, 'onSearch'> & {\n loading?: boolean\n enterButton?: boolean\n /** 如果 onSearch 返回一个false,直接拦截请求 */\n onSearch?: (keyword: string) => Promise<boolean | undefined> | boolean | undefined\n}\n\nexport type OptionConfig = {\n density?: boolean\n filter?: boolean\n fullScreen?: OptionsType\n reload?: OptionsType\n setting?: boolean | SettingOptionType\n search?: (OptionSearchProps & { name?: string }) | boolean\n}\n\nexport type ValueEnumType = {\n text: string | number\n label?: string | number\n status?: string\n color?: string\n disabled?: boolean\n value?: string | number | boolean\n children?: ValueEnumType[]\n}\n\nexport type ColumnsState = {\n show?: boolean\n fixed?: true | 'right' | 'left' | undefined\n order?: number\n width?: number\n disable?:\n | boolean\n | {\n checkbox: boolean\n }\n}\n\nexport type ColumnStateType = {\n /**\n * 持久化的类型,支持 localStorage 和 sessionStorage\n *\n * @param localStorage 设置在关闭浏览器后也是存在的\n * @param sessionStorage 关闭浏览器后会丢失\n */\n persistenceType?: 'localStorage' | 'sessionStorage'\n /** 持久化的key,用于存储到 storage 中 */\n persistenceKey?: string\n /** ColumnsState 的值 */\n defaultValue?: Record<string, ColumnsState>\n /** ColumnsState 的值 */\n value?: Record<string, ColumnsState>\n onChange?: (map: Record<string, ColumnsState>) => void\n}\n\nexport type SearchConfig = ProQueryFilterProps & {\n cardProps?: CardProps | false\n tabName?: string\n style?: CSSProperties\n}\n\nexport type BorderedType = 'search' | 'table'\n\nexport type Bordered =\n | boolean\n | {\n search?: boolean\n table?: boolean\n }\n\nexport interface IsDateOptions {\n format: string\n strictMode: boolean\n delimiters: string[]\n}\n\nexport type CustomValidator = (\n val: any,\n) => CustomValidateResolveType | Promise<CustomValidateResolveType>\n\nexport type CustomValidateResolveType = boolean | CustomValidateObj\n\nexport interface CustomValidateObj {\n result: boolean\n message: string\n type?: 'error' | 'warning' | 'success'\n}\n\nexport type AddLineOptions = {\n position?: 'top' | 'bottom'\n newRecordType?: 'dataSource' | 'cache'\n}\n\nexport type TableEditingCell<RecordType = DefaultRecordType> = {\n recordIndexs: number[]\n column: ColumnType<RecordType>\n rowKey: Key\n originRecord: RecordType\n rowIndex: number\n columnKey: Key\n validateEdit: () => Promise<true | AllValidateResult[]>\n}\nexport type AllValidateResult = CustomValidateObj | ValidateResultType\n\nexport type TableErrorListMap = { [key: string]: AllValidateResult[] }\nexport type ErrorListObjectType = TableEditingCell & { errorList: AllValidateResult[] }\n\nexport interface TablePromiseErrorData {\n errors: ErrorListObjectType[]\n errorMap: TableErrorListMap\n data?: DefaultRecordType[]\n}\nexport interface ValidateResultType extends EditRule {\n result: boolean\n}\nexport interface EditRule {\n /**\n * 内置校验方法,校验值类型是否为布尔类型,示例:`{ boolean: true, message: '数据类型必须是布尔类型' }`\n */\n boolean?: boolean\n /**\n * 内置校验方法,校验值是否属于枚举值中的值。示例:`{ enum: ['primary', 'info', 'warning'], message: '值只能是 primary/info/warning 中的一种' }`\n */\n enum?: Array<string>\n /**\n * 内置校验方法,校验值是否为身份证号码,组件校验正则为 `/^(\\\\d{18,18}|\\\\d{15,15}|\\\\d{17,17}x)$/i`,示例:`{ idcard: true, message: '请输入正确的身份证号码' }`\n */\n idcard?: boolean\n /**\n * 内置校验方法,校验值固定长度,如:len: 10 表示值的字符长度只能等于 10 ,中文表示 2 个字符,英文为 1 个字符。示例:`{ len: 10, message: '内容长度不对' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length === 10, message: '内容文本长度只能是 10 个字' }`\n */\n len?: number | boolean\n /**\n * 内置校验方法,校验值最大长度,如:max: 100 表示值最多不能超过 100 个字符,中文表示 2 个字符,英文为 1 个字符。示例:`{ max: 10, message: '内容超出' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length <= 10, message: '内容文本长度不能超过 10 个字' }`<br />如果数据类型数字(Number),则自动变为数字大小的比对\n */\n max?: number | boolean\n /**\n * 校验未通过时呈现的错误信息,值为空则不显示\n * @default ''\n */\n message?: string\n /**\n * 内置校验方法,校验值最小长度,如:min: 10 表示值最多不能少于 10 个字符,中文表示 2 个字符,英文为 1 个字符。示例:`{ min: 10, message: '内容长度不够' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length >= 10, message: '内容文本长度至少为 10 个字' }`。<br />如果数据类型数字(Number),则自动变为数字大小的比对\n */\n min?: number | boolean\n /**\n * 内置校验方法,校验值是否为数字(1.2 、 1e5 都算数字),示例:`{ number: true, message: '请输入数字' }`\n */\n number?: boolean\n /**\n * 内置校验方法,校验值是否符合正则表达式匹配结果,示例:`{ pattern: /@qq.com/, message: '请输入 QQ 邮箱' }`\n */\n pattern?: RegExp\n /**\n * 内置校验方法,校验值是否已经填写。该值为 true,默认显示必填标记,可通过设置 `requiredMark: false` 隐藏必填标记\n */\n required?: boolean\n /**\n * 内置校验方法,校验值是否为手机号码,校验正则为 `/^1[3-9]\\d{9}$/`,示例:`{ telnumber: true, message: '请输入正确的手机号码' }`\n */\n telnumber?: boolean\n /**\n * 校验未通过时呈现的错误信息类型,有 告警信息提示 和 错误信息提示 等两种\n * @default error\n */\n type?: 'error' | 'warning'\n /**\n * 自定义校验规则,示例:`{ validator: (val) => val.length > 0, message: '请输入内容'}`\n */\n validator?: CustomValidator\n /**\n * 内置校验方法,校验值是否为空格。示例:`{ whitespace: true, message: '值不能为空' }`\n */\n whitespace?: boolean\n}\n"],"names":[],"mappings":"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"}