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
package/es/version.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const version = "1.3.37";
1
+ const version = "1.3.38";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../packages/pro-design-vue/version.ts"],"sourcesContent":["export const version = '1.3.37'\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../packages/pro-design-vue/version.ts"],"sourcesContent":["export const version = '1.3.38'\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
@@ -20,6 +20,8 @@ interface ProConfigProviderProps extends Omit<ConfigProviderProps, 'form'> {
20
20
  selectRowByClick?: boolean;
21
21
  rowKey?: string;
22
22
  size?: DensitySize;
23
+ columnDrag?: boolean;
24
+ columnResizable?: boolean;
23
25
  expandIconType?: ExpandIconType;
24
26
  rowHover?: boolean;
25
27
  summaryFixed?: boolean;
@@ -2048,6 +2048,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
2048
2048
  wrapText: boolean;
2049
2049
  }>;
2050
2050
  getPopupContainer: () => HTMLElement;
2051
+ mergeColumnResizable: import("vue").ComputedRef<boolean | undefined>;
2051
2052
  handleSortClick: (column: import("../interface").FinallyColumnType<any>, nextSortOrder: import("../interface").SortOrder) => void;
2052
2053
  cellClass: import("vue").ComputedRef<{
2053
2054
  [x: string]: boolean | import("../interface").SortOrder | import("../interface").CompareFn<import("../interface").DefaultRecordType> | {
@@ -1978,6 +1978,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1978
1978
  wrapText: boolean;
1979
1979
  }>;
1980
1980
  getPopupContainer: () => HTMLElement;
1981
+ mergeColumnResizable: import("vue").ComputedRef<boolean | undefined>;
1981
1982
  handleSortClick: (column: import("../interface").FinallyColumnType<any>, nextSortOrder: import("../interface").SortOrder) => void;
1982
1983
  cellClass: import("vue").ComputedRef<{
1983
1984
  [x: string]: boolean | import("../interface").SortOrder | import("../interface").CompareFn<import("../interface").DefaultRecordType> | {
@@ -901,6 +901,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
901
901
  wrapText: boolean;
902
902
  }>;
903
903
  getPopupContainer: () => HTMLElement;
904
+ mergeColumnResizable: import("vue").ComputedRef<boolean | undefined>;
904
905
  handleSortClick: (column: import("../interface").FinallyColumnType<any>, nextSortOrder: import("../interface").SortOrder) => void;
905
906
  cellClass: import("vue").ComputedRef<{
906
907
  [x: string]: boolean | import("../interface").SortOrder | import("../interface").CompareFn<import("../interface").DefaultRecordType> | {
@@ -33,6 +33,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
33
33
  wrapText: boolean;
34
34
  }>;
35
35
  getPopupContainer: () => HTMLElement;
36
+ mergeColumnResizable: import("vue").ComputedRef<boolean | undefined>;
36
37
  handleSortClick: (column: FinallyColumnType<any>, nextSortOrder: SortOrder) => void;
37
38
  cellClass: import("vue").ComputedRef<{
38
39
  [x: string]: boolean | SortOrder | import("../interface").CompareFn<import("../interface").DefaultRecordType> | {
@@ -788,6 +788,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
788
788
  wrapText: boolean;
789
789
  }>;
790
790
  getPopupContainer: () => HTMLElement;
791
+ mergeColumnResizable: import("vue").ComputedRef<boolean | undefined>;
791
792
  handleSortClick: (column: FinallyColumnType<any>, nextSortOrder: import("../interface").SortOrder) => void;
792
793
  cellClass: import("vue").ComputedRef<{
793
794
  [x: string]: boolean | import("../interface").SortOrder | import("../interface").CompareFn<DefaultRecordType> | {
@@ -839,6 +839,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
839
839
  wrapText: boolean;
840
840
  }>;
841
841
  getPopupContainer: () => HTMLElement;
842
+ mergeColumnResizable: import("vue").ComputedRef<boolean | undefined>;
842
843
  handleSortClick: (column: import("../interface").FinallyColumnType<any>, nextSortOrder: import("../interface").SortOrder) => void;
843
844
  cellClass: import("vue").ComputedRef<{
844
845
  [x: string]: boolean | import("../interface").SortOrder | import("../interface").CompareFn<import("../interface").DefaultRecordType> | {
@@ -27,7 +27,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
27
27
  prefixCls: StringConstructor;
28
28
  columnDrag: {
29
29
  type: BooleanConstructor;
30
- default: boolean;
30
+ default: undefined;
31
+ };
32
+ columnResizable: {
33
+ type: BooleanConstructor;
34
+ default: undefined;
31
35
  };
32
36
  animateRows: {
33
37
  type: BooleanConstructor;
@@ -579,7 +583,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
579
583
  prefixCls: StringConstructor;
580
584
  columnDrag: {
581
585
  type: BooleanConstructor;
582
- default: boolean;
586
+ default: undefined;
587
+ };
588
+ columnResizable: {
589
+ type: BooleanConstructor;
590
+ default: undefined;
583
591
  };
584
592
  animateRows: {
585
593
  type: BooleanConstructor;
@@ -1081,6 +1089,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1081
1089
  deepWatchDataSource: boolean;
1082
1090
  deepWatchColumns: boolean;
1083
1091
  columnDrag: boolean;
1092
+ columnResizable: boolean;
1084
1093
  animateRows: boolean;
1085
1094
  columns: import("pro-design-vue").ProTableColumnsType<DefaultRecordType>;
1086
1095
  dataSource: DefaultRecordType[];
@@ -3702,6 +3711,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3702
3711
  wrapText: boolean;
3703
3712
  }>;
3704
3713
  getPopupContainer: () => HTMLElement;
3714
+ mergeColumnResizable: import("vue").ComputedRef<boolean | undefined>;
3705
3715
  handleSortClick: (column: import("./interface").FinallyColumnType<any>, nextSortOrder: import("./interface").SortOrder) => void;
3706
3716
  cellClass: import("vue").ComputedRef<{
3707
3717
  [x: string]: boolean | import("./interface").SortOrder | import("./interface").CompareFn<DefaultRecordType> | {
@@ -9514,6 +9524,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
9514
9524
  wrapText: boolean;
9515
9525
  }>;
9516
9526
  getPopupContainer: () => HTMLElement;
9527
+ mergeColumnResizable: import("vue").ComputedRef<boolean | undefined>;
9517
9528
  handleSortClick: (column: import("./interface").FinallyColumnType<any>, nextSortOrder: import("./interface").SortOrder) => void;
9518
9529
  cellClass: import("vue").ComputedRef<{
9519
9530
  [x: string]: boolean | import("./interface").SortOrder | import("./interface").CompareFn<DefaultRecordType> | {
@@ -70,7 +70,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
70
70
  prefixCls: StringConstructor;
71
71
  columnDrag: {
72
72
  type: BooleanConstructor;
73
- default: boolean;
73
+ default: undefined;
74
+ };
75
+ columnResizable: {
76
+ type: BooleanConstructor;
77
+ default: undefined;
74
78
  };
75
79
  animateRows: {
76
80
  type: BooleanConstructor;
@@ -593,7 +597,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
593
597
  prefixCls: StringConstructor;
594
598
  columnDrag: {
595
599
  type: BooleanConstructor;
596
- default: boolean;
600
+ default: undefined;
601
+ };
602
+ columnResizable: {
603
+ type: BooleanConstructor;
604
+ default: undefined;
597
605
  };
598
606
  animateRows: {
599
607
  type: BooleanConstructor;
@@ -1128,6 +1136,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1128
1136
  deepWatchDataSource: boolean;
1129
1137
  deepWatchColumns: boolean;
1130
1138
  columnDrag: boolean;
1139
+ columnResizable: boolean;
1131
1140
  animateRows: boolean;
1132
1141
  columns: ColumnsType<import("./interface").DefaultRecordType>;
1133
1142
  dataSource: import("./interface").DefaultRecordType[];
@@ -69,7 +69,8 @@ export interface TableContextProps extends CalType, UseColumnsType, FlattenRecor
69
69
  onColumnDragEnd: (arg: DragColumnEventInfo) => void;
70
70
  onColumnDrag: (arg: DragColumnEventInfo) => void;
71
71
  prefixCls: ComputedRef<string>;
72
- columnDrag: ComputedRef<boolean>;
72
+ columnDrag: ComputedRef<boolean | undefined>;
73
+ columnResizable: ComputedRef<boolean | undefined>;
73
74
  summaryFixed: ComputedRef<SummaryFixed>;
74
75
  realHeaderHeight: Ref<number>;
75
76
  bottomPaginationHeight: Ref<number>;
@@ -233,7 +233,11 @@ export declare const baseTableProps: <T = DefaultRecordType>() => {
233
233
  prefixCls: StringConstructor;
234
234
  columnDrag: {
235
235
  type: BooleanConstructor;
236
- default: boolean;
236
+ default: undefined;
237
+ };
238
+ columnResizable: {
239
+ type: BooleanConstructor;
240
+ default: undefined;
237
241
  };
238
242
  animateRows: {
239
243
  type: BooleanConstructor;
@@ -640,7 +644,11 @@ export declare const tableProps: <T = DefaultRecordType>() => {
640
644
  prefixCls: StringConstructor;
641
645
  columnDrag: {
642
646
  type: BooleanConstructor;
643
- default: boolean;
647
+ default: undefined;
648
+ };
649
+ columnResizable: {
650
+ type: BooleanConstructor;
651
+ default: undefined;
644
652
  };
645
653
  animateRows: {
646
654
  type: BooleanConstructor;
@@ -1161,7 +1169,11 @@ declare class Helper<T extends DefaultRecordType> {
1161
1169
  prefixCls: StringConstructor;
1162
1170
  columnDrag: {
1163
1171
  type: BooleanConstructor;
1164
- default: boolean;
1172
+ default: undefined;
1173
+ };
1174
+ columnResizable: {
1175
+ type: BooleanConstructor;
1176
+ default: undefined;
1165
1177
  };
1166
1178
  animateRows: {
1167
1179
  type: BooleanConstructor;
package/lib/index.d.ts CHANGED
@@ -1848,7 +1848,11 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
1848
1848
  prefixCls: StringConstructor;
1849
1849
  columnDrag: {
1850
1850
  type: BooleanConstructor;
1851
- default: boolean;
1851
+ default: undefined;
1852
+ };
1853
+ columnResizable: {
1854
+ type: BooleanConstructor;
1855
+ default: undefined;
1852
1856
  };
1853
1857
  animateRows: {
1854
1858
  type: BooleanConstructor;
@@ -2371,7 +2375,11 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
2371
2375
  prefixCls: StringConstructor;
2372
2376
  columnDrag: {
2373
2377
  type: BooleanConstructor;
2374
- default: boolean;
2378
+ default: undefined;
2379
+ };
2380
+ columnResizable: {
2381
+ type: BooleanConstructor;
2382
+ default: undefined;
2375
2383
  };
2376
2384
  animateRows: {
2377
2385
  type: BooleanConstructor;
@@ -2906,6 +2914,7 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
2906
2914
  deepWatchDataSource: boolean;
2907
2915
  deepWatchColumns: boolean;
2908
2916
  columnDrag: boolean;
2917
+ columnResizable: boolean;
2909
2918
  animateRows: boolean;
2910
2919
  columns: ProTableColumnsType<DefaultRecordType>;
2911
2920
  dataSource: DefaultRecordType[];
@@ -5723,7 +5732,11 @@ declare class Helper<T extends DefaultRecordType> {
5723
5732
  prefixCls: StringConstructor;
5724
5733
  columnDrag: {
5725
5734
  type: BooleanConstructor;
5726
- default: boolean;
5735
+ default: undefined;
5736
+ };
5737
+ columnResizable: {
5738
+ type: BooleanConstructor;
5739
+ default: undefined;
5727
5740
  };
5728
5741
  animateRows: {
5729
5742
  type: BooleanConstructor;
@@ -6622,6 +6635,8 @@ export declare interface ProConfigProviderProps extends Omit<ConfigProviderProps
6622
6635
  selectRowByClick?: boolean;
6623
6636
  rowKey?: string;
6624
6637
  size?: ProTableDensitySize;
6638
+ columnDrag?: boolean;
6639
+ columnResizable?: boolean;
6625
6640
  expandIconType?: ExpandIconType;
6626
6641
  rowHover?: boolean;
6627
6642
  summaryFixed?: boolean;
@@ -288,9 +288,10 @@ const useColumnDragHandler = ({ columnKey, disabled, column, domRef }) => {
288
288
  const mouseUpHandler = (event) => {
289
289
  handleMouseUpOrToucheEnd(event);
290
290
  };
291
- const mergeColumnDrag = vue.computed(
292
- () => column.value.drag || column.value.drag === void 0 && columnDrag.value
293
- );
291
+ const mergeColumnDrag = vue.computed(() => {
292
+ var _a;
293
+ return (_a = column.value.drag) != null ? _a : columnDrag.value;
294
+ });
294
295
  vue.onMounted(() => {
295
296
  vue.nextTick(() => {
296
297
  vue.watch(
@@ -1 +1 @@
1
- {"version":3,"file":"useColumnDragHandler.js","sources":["../../../../../../../../../packages/components/table/src/components/Drag/useColumnDragHandler.ts"],"sourcesContent":["import type { Ref, VNode } from 'vue'\nimport type { RafFrame } from '../../utils/raf'\nimport type { FinallyColumnType, Key } from '../interface'\n\nimport {\n ref,\n inject,\n computed,\n shallowRef,\n onMounted,\n onBeforeUnmount,\n watch,\n watchEffect,\n nextTick,\n render,\n createVNode,\n toRaw,\n} from 'vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectHeader } from '../context/HeaderContext'\nimport { VIEWPORT_REF, DRAG_COLUMN_DIS_UNIT, AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { dragForbidIcon, dragLeftAndRightIcon } from './icon'\nimport { eventsClose } from '../../utils/util'\nimport { OFFSET_X, OFFSET_Y, DRAG_BUFF } from './constant'\nimport raf from '../../utils/raf'\n\ninterface ColumnDragHandler {\n columnKey: Ref<Key>\n disabled: Ref<boolean>\n column: Ref<FinallyColumnType>\n domRef: Ref<HTMLDivElement | undefined>\n}\n\nexport const ICON_TYPE_DOWN = 'ICON_TYPE_DOWN'\nexport const ICON_TYPE_FORBID = 'ICON_TYPE_FORBID'\n\nconst getRootDocument = () => document.fullscreenElement || document.body\n\nconst useColumnDragHandler: ({\n columnKey,\n disabled,\n column,\n domRef,\n}: ColumnDragHandler) => void = ({ columnKey, disabled, column, domRef }) => {\n const dragging = ref(false)\n const viewportRef = inject<Ref<HTMLDivElement | undefined>>(VIEWPORT_REF)\n const {\n prefixCls,\n draggingColumnKey,\n onColumnDragEnd,\n scrollTo,\n leftWidth,\n rightWidth,\n centerWidth,\n bodyWidth,\n leftHeaderColumns,\n visibleCenterHeaderColumns,\n rightHeaderColumns,\n columnDrag,\n } = useInjectTable()\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n\n const offsetLeft = ref(0)\n const colPosition = ref()\n watchEffect(() => {\n if (column.value.fixed === 'right') {\n offsetLeft.value = leftWidth.value + centerWidth.value\n colPosition.value = 'right'\n } else if (column.value.fixed) {\n offsetLeft.value = 0\n colPosition.value = 'left'\n } else {\n offsetLeft.value = leftWidth.value\n colPosition.value = 'center'\n }\n if (autoHeight) {\n offsetLeft.value = 0\n }\n })\n\n const { dragColumnPlaceholderRef, headerRef } = useInjectHeader()\n const tableSlotsContext = useInjectSlots()\n\n let rafFrame: RafFrame\n const clientY = ref()\n const clientX = ref()\n const clientX2 = ref()\n const dragOverColumn = ref()\n const dragGhostDom = document.createElement('div')\n let scrollTimer: any\n let clientXTimer: any\n const scrollLeft = ref(0)\n const allowed = ref(true)\n let cacheMouseEvent: any = null\n let headerRect: DOMRect | Record<string, any> = {}\n let offsetWidth = 0\n const destroyHandlers: Array<() => void> = []\n let dragGhostImage: VNode | null = null\n const iconType = ref(ICON_TYPE_DOWN)\n\n const headerColumns = computed(() => {\n switch (colPosition.value) {\n case 'left':\n return leftHeaderColumns.value\n case 'center':\n return visibleCenterHeaderColumns.value\n case 'right':\n return rightHeaderColumns.value\n default:\n return []\n }\n })\n\n const calDragX = computed(() => {\n let handler: () => boolean = () => false\n if (autoHeight && colPosition.value !== 'center') {\n handler = () => {\n const { x } = headerRect\n const minOffetLeft =\n colPosition.value === 'left'\n ? viewportRef?.value?.scrollLeft + x\n : viewportRef?.value?.scrollLeft + x + bodyWidth.value - rightWidth.value\n const maxOffetLeft =\n colPosition.value === 'left'\n ? minOffetLeft + leftWidth.value\n : minOffetLeft + rightWidth.value\n const pageXOffset = window.pageXOffset || document.documentElement.scrollLeft\n if (clientX.value + OFFSET_X <= minOffetLeft) {\n dragGhostDom.style.left = minOffetLeft + pageXOffset - 20 + 'px'\n return true\n } else if (clientX.value + OFFSET_X >= maxOffetLeft) {\n dragGhostDom.style.left = maxOffetLeft + pageXOffset - 20 + 'px'\n return true\n } else {\n return false\n }\n }\n } else if (colPosition.value !== 'center') {\n handler = () => {\n const { x, width } = headerRect\n const pageXOffset = window.pageXOffset || document.documentElement.scrollLeft\n if (clientX.value + OFFSET_X <= x) {\n dragGhostDom.style.left = x + pageXOffset - 20 + 'px'\n return true\n } else if (clientX.value + OFFSET_X >= x + width) {\n dragGhostDom.style.left = x + pageXOffset + width - 20 + 'px'\n return true\n } else {\n return false\n }\n }\n } else {\n handler = () => {\n const { x, width } = viewportRef!.value!.getBoundingClientRect()\n const pageXOffset = window.pageXOffset || document.documentElement.scrollLeft\n if (clientX.value + OFFSET_X <= x + leftWidth.value) {\n dragGhostDom.style.left = x + pageXOffset + leftWidth.value - 20 + 'px'\n return true\n } else if (clientX.value + OFFSET_X >= x + width - rightWidth.value) {\n dragGhostDom.style.left = x + pageXOffset + width - rightWidth.value - 20 + 'px'\n return true\n } else {\n return false\n }\n }\n }\n return handler\n })\n\n const calDragY = () => {\n const { y, height } = headerRect\n const pageYOffset = window.pageYOffset || document.documentElement.scrollTop\n if (clientY.value + OFFSET_Y <= y) {\n dragGhostDom.style.top = y + pageYOffset - 20 + 'px'\n return true\n } else if (clientY.value > y + height) {\n dragGhostDom.style.top = y + pageYOffset + height - 10 + 'px'\n return true\n } else {\n return false\n }\n }\n\n const batchEvent = (eventList: any) => {\n eventList.forEach((config: any) => {\n const { target, type, listener, options } = config\n target.addEventListener(type, listener, options)\n })\n destroyHandlers.push(() => {\n eventList.forEach((config: any) => {\n const { target, type, listener, options } = config\n target.removeEventListener(type, listener, options)\n })\n })\n }\n const columnDragEvent = shallowRef<MouseEvent | Touch>()\n const handleMouseMoveOrTouchMove = (\n event: MouseEvent | Touch,\n cacheEvent: MouseEvent | Touch,\n ) => {\n columnDragEvent.value = event\n if (!dragging.value) {\n if (eventsClose(event, cacheEvent, DRAG_BUFF)) {\n return\n }\n dragging.value = true\n clientX2.value = event.clientX\n draggingColumnKey.value = columnKey.value\n offsetWidth = domRef.value?.offsetWidth || 0\n getRootDocument().appendChild(dragGhostDom)\n renderDragGhost()\n }\n allowed.value = true\n clientX.value = event.clientX\n clientY.value = event.clientY\n if (calDragY()) {\n allowed.value = false\n clearInterval(clientXTimer)\n } else {\n dragGhostDom.style.top = event.pageY - 10 + 'px'\n }\n\n if (calDragX.value()) {\n allowed.value = false\n } else {\n dragGhostDom.style.left = event.pageX - 10 + 'px'\n }\n }\n\n let cacheStartTouch: TouchList[number] | null | undefined\n let cacheTouch: TouchList[number] | null | undefined\n const getTouch = (touches: TouchList) => {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i]?.identifier === cacheTouch?.identifier) {\n return touches[i]\n }\n }\n return null\n }\n\n const handleMouseUpOrToucheEnd = (event: MouseEvent | Touch) => {\n if (dragging.value) {\n dragging.value = false\n getRootDocument().removeChild(dragGhostDom)\n }\n columnDragEvent.value = event\n cacheMouseEvent = null\n cacheTouch = null\n cacheStartTouch = null\n clearInterval(clientXTimer)\n draggingColumnKey.value = ''\n dragColumnPlaceholderRef.value!.style.opacity = '0'\n destroyHandlers.forEach((fn) => fn())\n destroyHandlers.length = 0\n raf.cancel(rafFrame)\n }\n\n const documentTouchMoveHandler = (event: TouchEvent) => {\n event.cancelable && event.preventDefault()\n }\n\n const onTouchStart = (event: TouchEvent) => {\n dragOverColumn.value = null\n if (disabled.value) {\n return\n }\n dragging.value = false\n const touch = event.touches[0]\n cacheStartTouch = touch\n cacheTouch = touch\n headerRect = headerRef.value!.getBoundingClientRect()\n const dom = domRef.value\n const eventList = [\n {\n target: document,\n type: 'touchmove',\n listener: documentTouchMoveHandler,\n options: { passive: false },\n },\n {\n target: dom,\n type: 'touchmove',\n listener: touchMoveHandler,\n options: { passive: true },\n },\n {\n target: dom,\n type: 'touchend',\n listener: touchEndHandler,\n options: { passive: true },\n },\n {\n target: dom,\n type: 'touchcancel',\n listener: touchEndHandler,\n options: { passive: true },\n },\n ]\n batchEvent(eventList)\n }\n\n const touchMoveHandler = (event: TouchEvent) => {\n const touch = getTouch(event.touches)\n touch && handleMouseMoveOrTouchMove(touch, cacheTouch!)\n }\n\n const touchEndHandler = (event: TouchEvent) => {\n let touch = getTouch(event.touches)\n if (!touch) {\n touch = cacheStartTouch\n }\n handleMouseUpOrToucheEnd(touch!)\n }\n const onMousedown = (event: MouseEvent) => {\n event.preventDefault()\n dragOverColumn.value = null\n if (disabled.value) {\n return\n }\n dragging.value = false\n cacheMouseEvent = event\n headerRect = headerRef.value!.getBoundingClientRect()\n const doc = document\n batchEvent([\n { target: doc, type: 'mousemove', listener: mouseMoveHandler },\n { target: doc, type: 'mouseup', listener: mouseUpHandler },\n { target: doc, type: 'contextmenu', listener: contextmenuHandler },\n ])\n }\n const contextmenuHandler = (event: MouseEvent) => event.preventDefault()\n const mouseMoveHandler = (event: MouseEvent) => {\n handleMouseMoveOrTouchMove(event, cacheMouseEvent)\n }\n const mouseUpHandler = (event: MouseEvent) => {\n handleMouseUpOrToucheEnd(event)\n }\n const mergeColumnDrag = computed(\n () => column.value.drag || (column.value.drag === undefined && columnDrag.value),\n )\n\n onMounted(() => {\n nextTick(() => {\n watch(\n [domRef, mergeColumnDrag],\n ([newDom], [oldDom]) => {\n if (oldDom) {\n oldDom.removeEventListener('mousedown', onMousedown)\n oldDom.removeEventListener('touchstart', onTouchStart)\n }\n if (newDom && mergeColumnDrag.value) {\n newDom.addEventListener('mousedown', onMousedown)\n newDom.addEventListener('touchstart', onTouchStart, { passive: true })\n }\n },\n { flush: 'post', immediate: true },\n )\n })\n })\n onBeforeUnmount(() => {\n if (domRef.value) {\n domRef.value.removeEventListener('mousedown', onMousedown)\n domRef.value.removeEventListener('touchstart', onTouchStart)\n }\n raf.cancel(rafFrame)\n render(null, dragGhostDom)\n })\n\n const renderDragGhostImage = () => {\n let dragIcon = dragLeftAndRightIcon\n if (iconType.value === ICON_TYPE_FORBID) {\n dragIcon = dragForbidIcon\n }\n return tableSlotsContext.columnDragGhost\n ? tableSlotsContext.columnDragGhost({\n targetColumn: toRaw(dragOverColumn.value),\n column: column.value,\n icon: createVNode(\n 'span',\n { class: `${prefixCls.value}-drag-ghost-image-icon`, innerHTML: dragIcon },\n null,\n ),\n allowed: allowed.value,\n dragging: dragging.value,\n event: columnDragEvent.value!,\n })\n : [\n createVNode(\n 'span',\n { class: `${prefixCls.value}-drag-ghost-image-icon`, innerHTML: dragIcon },\n null,\n ),\n createVNode(\n 'span',\n {\n class: `${prefixCls.value}-drag-ghost-image-label`,\n style: { maxWidth: `${offsetWidth}px` },\n },\n [column.value.title],\n ),\n ]\n }\n\n const renderDragGhost = () => {\n if (!dragGhostImage) {\n dragGhostImage = createVNode(renderDragGhostImage)\n render(dragGhostImage, dragGhostDom)\n }\n }\n\n watch(\n [prefixCls],\n () => {\n dragGhostDom.className = `${prefixCls.value}-drag-ghost-image`\n },\n { immediate: true },\n )\n watch([clientX, colPosition], () => {\n clearInterval(clientXTimer)\n if (colPosition.value === 'center' && allowed.value) {\n clientXTimer = setInterval(() => {\n const { x, width } = viewportRef!.value!.getBoundingClientRect()\n if (clientX.value + 30 > x + width - rightWidth.value) {\n scrollTo({ left: viewportRef!.value!.scrollLeft + DRAG_COLUMN_DIS_UNIT }, 'auto', true)\n clearTimeout(scrollTimer)\n scrollTimer = setTimeout(() => {\n scrollLeft.value = viewportRef!.value!.scrollLeft + DRAG_COLUMN_DIS_UNIT\n })\n } else if (clientX.value < x + leftWidth.value) {\n const left = Math.max(viewportRef!.value!.scrollLeft - DRAG_COLUMN_DIS_UNIT, 0)\n scrollTo({ left }, 'auto', true)\n clearTimeout(scrollTimer)\n scrollTimer = setTimeout(() => {\n scrollLeft.value = left\n })\n }\n }, 30)\n }\n })\n\n const handleDraging = () => {\n const pageX = clientX.value\n const { x } = headerRef.value!.getBoundingClientRect()\n const rawColumns = toRaw(headerColumns.value)\n const rawClientX = offsetLeft.value - x\n\n let currentOffetLeft = 0\n let scrollLeft = 0\n if (autoHeight && colPosition.value !== 'center') {\n scrollLeft = viewportRef!.value!.scrollLeft\n currentOffetLeft =\n colPosition.value === 'left'\n ? scrollLeft\n : scrollLeft + bodyWidth.value - rightWidth.value - leftWidth.value - centerWidth.value\n }\n\n for (let i = 0, len = rawColumns.length; i < len; i++) {\n const { left, finallyWidth } = rawColumns[i]!\n const columnClientX = left! - rawClientX + currentOffetLeft\n if (\n !rawColumns[i]!.__Internal__Column__ &&\n pageX > columnClientX &&\n pageX < columnClientX + finallyWidth!\n ) {\n dragOverColumn.value = rawColumns[i]\n }\n }\n if (dragOverColumn.value && dragOverColumn.value.left !== column.value.left) {\n dragColumnPlaceholderRef.value!.style.opacity = '1'\n dragColumnPlaceholderRef.value!.style.zIndex = column.value.fixed ? '3' : 'unset'\n if (dragOverColumn.value.left > column.value.left!) {\n dragColumnPlaceholderRef.value!.style.left = `${\n dragOverColumn.value.left -\n offsetLeft.value +\n dragOverColumn.value.finallyWidth +\n currentOffetLeft -\n 1\n }px`\n } else {\n dragColumnPlaceholderRef.value!.style.left = `${dragOverColumn.value.left - offsetLeft.value + currentOffetLeft - 1}px`\n }\n } else {\n dragColumnPlaceholderRef.value!.style.opacity = '0'\n }\n }\n\n watch([dragging, clientX, allowed, scrollLeft], () => {\n raf.cancel(rafFrame)\n rafFrame = raf(() => {\n if (dragging.value && !allowed.value) {\n iconType.value = ICON_TYPE_FORBID\n }\n if (dragging.value && allowed.value) {\n iconType.value = ''\n handleDraging()\n } else {\n dragColumnPlaceholderRef.value!.style.opacity = '0'\n }\n })\n })\n\n watch(dragging, () => {\n if (!dragging.value && allowed.value && dragOverColumn.value) {\n raf.cancel(rafFrame)\n onColumnDragEnd({\n column: column.value.originColumn!,\n targetColumn: toRaw(dragOverColumn.value.originColumn),\n event: columnDragEvent.value!,\n dir: column.value.left! <= dragOverColumn.value.left ? 'right' : 'left',\n })\n }\n })\n}\nexport default useColumnDragHandler\n"],"names":["ref","inject","VIEWPORT_REF","useInjectTable","AUTO_HEADER_HEIGHT","watchEffect","useInjectHeader","useInjectSlots","computed","OFFSET_X","OFFSET_Y","shallowRef","eventsClose","DRAG_BUFF","raf","onMounted","nextTick","watch","onBeforeUnmount","render","dragLeftAndRightIcon","dragForbidIcon","toRaw","createVNode","DRAG_COLUMN_DIS_UNIT","scrollLeft"],"mappings":"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"}
1
+ {"version":3,"file":"useColumnDragHandler.js","sources":["../../../../../../../../../packages/components/table/src/components/Drag/useColumnDragHandler.ts"],"sourcesContent":["import type { Ref, VNode } from 'vue'\nimport type { RafFrame } from '../../utils/raf'\nimport type { FinallyColumnType, Key } from '../interface'\n\nimport {\n ref,\n inject,\n computed,\n shallowRef,\n onMounted,\n onBeforeUnmount,\n watch,\n watchEffect,\n nextTick,\n render,\n createVNode,\n toRaw,\n} from 'vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectHeader } from '../context/HeaderContext'\nimport { VIEWPORT_REF, DRAG_COLUMN_DIS_UNIT, AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { dragForbidIcon, dragLeftAndRightIcon } from './icon'\nimport { eventsClose } from '../../utils/util'\nimport { OFFSET_X, OFFSET_Y, DRAG_BUFF } from './constant'\nimport raf from '../../utils/raf'\n\ninterface ColumnDragHandler {\n columnKey: Ref<Key>\n disabled: Ref<boolean>\n column: Ref<FinallyColumnType>\n domRef: Ref<HTMLDivElement | undefined>\n}\n\nexport const ICON_TYPE_DOWN = 'ICON_TYPE_DOWN'\nexport const ICON_TYPE_FORBID = 'ICON_TYPE_FORBID'\n\nconst getRootDocument = () => document.fullscreenElement || document.body\n\nconst useColumnDragHandler: ({\n columnKey,\n disabled,\n column,\n domRef,\n}: ColumnDragHandler) => void = ({ columnKey, disabled, column, domRef }) => {\n const dragging = ref(false)\n const viewportRef = inject<Ref<HTMLDivElement | undefined>>(VIEWPORT_REF)\n const {\n prefixCls,\n draggingColumnKey,\n onColumnDragEnd,\n scrollTo,\n leftWidth,\n rightWidth,\n centerWidth,\n bodyWidth,\n leftHeaderColumns,\n visibleCenterHeaderColumns,\n rightHeaderColumns,\n columnDrag,\n } = useInjectTable()\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n\n const offsetLeft = ref(0)\n const colPosition = ref()\n watchEffect(() => {\n if (column.value.fixed === 'right') {\n offsetLeft.value = leftWidth.value + centerWidth.value\n colPosition.value = 'right'\n } else if (column.value.fixed) {\n offsetLeft.value = 0\n colPosition.value = 'left'\n } else {\n offsetLeft.value = leftWidth.value\n colPosition.value = 'center'\n }\n if (autoHeight) {\n offsetLeft.value = 0\n }\n })\n\n const { dragColumnPlaceholderRef, headerRef } = useInjectHeader()\n const tableSlotsContext = useInjectSlots()\n\n let rafFrame: RafFrame\n const clientY = ref()\n const clientX = ref()\n const clientX2 = ref()\n const dragOverColumn = ref()\n const dragGhostDom = document.createElement('div')\n let scrollTimer: any\n let clientXTimer: any\n const scrollLeft = ref(0)\n const allowed = ref(true)\n let cacheMouseEvent: any = null\n let headerRect: DOMRect | Record<string, any> = {}\n let offsetWidth = 0\n const destroyHandlers: Array<() => void> = []\n let dragGhostImage: VNode | null = null\n const iconType = ref(ICON_TYPE_DOWN)\n\n const headerColumns = computed(() => {\n switch (colPosition.value) {\n case 'left':\n return leftHeaderColumns.value\n case 'center':\n return visibleCenterHeaderColumns.value\n case 'right':\n return rightHeaderColumns.value\n default:\n return []\n }\n })\n\n const calDragX = computed(() => {\n let handler: () => boolean = () => false\n if (autoHeight && colPosition.value !== 'center') {\n handler = () => {\n const { x } = headerRect\n const minOffetLeft =\n colPosition.value === 'left'\n ? viewportRef?.value?.scrollLeft + x\n : viewportRef?.value?.scrollLeft + x + bodyWidth.value - rightWidth.value\n const maxOffetLeft =\n colPosition.value === 'left'\n ? minOffetLeft + leftWidth.value\n : minOffetLeft + rightWidth.value\n const pageXOffset = window.pageXOffset || document.documentElement.scrollLeft\n if (clientX.value + OFFSET_X <= minOffetLeft) {\n dragGhostDom.style.left = minOffetLeft + pageXOffset - 20 + 'px'\n return true\n } else if (clientX.value + OFFSET_X >= maxOffetLeft) {\n dragGhostDom.style.left = maxOffetLeft + pageXOffset - 20 + 'px'\n return true\n } else {\n return false\n }\n }\n } else if (colPosition.value !== 'center') {\n handler = () => {\n const { x, width } = headerRect\n const pageXOffset = window.pageXOffset || document.documentElement.scrollLeft\n if (clientX.value + OFFSET_X <= x) {\n dragGhostDom.style.left = x + pageXOffset - 20 + 'px'\n return true\n } else if (clientX.value + OFFSET_X >= x + width) {\n dragGhostDom.style.left = x + pageXOffset + width - 20 + 'px'\n return true\n } else {\n return false\n }\n }\n } else {\n handler = () => {\n const { x, width } = viewportRef!.value!.getBoundingClientRect()\n const pageXOffset = window.pageXOffset || document.documentElement.scrollLeft\n if (clientX.value + OFFSET_X <= x + leftWidth.value) {\n dragGhostDom.style.left = x + pageXOffset + leftWidth.value - 20 + 'px'\n return true\n } else if (clientX.value + OFFSET_X >= x + width - rightWidth.value) {\n dragGhostDom.style.left = x + pageXOffset + width - rightWidth.value - 20 + 'px'\n return true\n } else {\n return false\n }\n }\n }\n return handler\n })\n\n const calDragY = () => {\n const { y, height } = headerRect\n const pageYOffset = window.pageYOffset || document.documentElement.scrollTop\n if (clientY.value + OFFSET_Y <= y) {\n dragGhostDom.style.top = y + pageYOffset - 20 + 'px'\n return true\n } else if (clientY.value > y + height) {\n dragGhostDom.style.top = y + pageYOffset + height - 10 + 'px'\n return true\n } else {\n return false\n }\n }\n\n const batchEvent = (eventList: any) => {\n eventList.forEach((config: any) => {\n const { target, type, listener, options } = config\n target.addEventListener(type, listener, options)\n })\n destroyHandlers.push(() => {\n eventList.forEach((config: any) => {\n const { target, type, listener, options } = config\n target.removeEventListener(type, listener, options)\n })\n })\n }\n const columnDragEvent = shallowRef<MouseEvent | Touch>()\n const handleMouseMoveOrTouchMove = (\n event: MouseEvent | Touch,\n cacheEvent: MouseEvent | Touch,\n ) => {\n columnDragEvent.value = event\n if (!dragging.value) {\n if (eventsClose(event, cacheEvent, DRAG_BUFF)) {\n return\n }\n dragging.value = true\n clientX2.value = event.clientX\n draggingColumnKey.value = columnKey.value\n offsetWidth = domRef.value?.offsetWidth || 0\n getRootDocument().appendChild(dragGhostDom)\n renderDragGhost()\n }\n allowed.value = true\n clientX.value = event.clientX\n clientY.value = event.clientY\n if (calDragY()) {\n allowed.value = false\n clearInterval(clientXTimer)\n } else {\n dragGhostDom.style.top = event.pageY - 10 + 'px'\n }\n\n if (calDragX.value()) {\n allowed.value = false\n } else {\n dragGhostDom.style.left = event.pageX - 10 + 'px'\n }\n }\n\n let cacheStartTouch: TouchList[number] | null | undefined\n let cacheTouch: TouchList[number] | null | undefined\n const getTouch = (touches: TouchList) => {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i]?.identifier === cacheTouch?.identifier) {\n return touches[i]\n }\n }\n return null\n }\n\n const handleMouseUpOrToucheEnd = (event: MouseEvent | Touch) => {\n if (dragging.value) {\n dragging.value = false\n getRootDocument().removeChild(dragGhostDom)\n }\n columnDragEvent.value = event\n cacheMouseEvent = null\n cacheTouch = null\n cacheStartTouch = null\n clearInterval(clientXTimer)\n draggingColumnKey.value = ''\n dragColumnPlaceholderRef.value!.style.opacity = '0'\n destroyHandlers.forEach((fn) => fn())\n destroyHandlers.length = 0\n raf.cancel(rafFrame)\n }\n\n const documentTouchMoveHandler = (event: TouchEvent) => {\n event.cancelable && event.preventDefault()\n }\n\n const onTouchStart = (event: TouchEvent) => {\n dragOverColumn.value = null\n if (disabled.value) {\n return\n }\n dragging.value = false\n const touch = event.touches[0]\n cacheStartTouch = touch\n cacheTouch = touch\n headerRect = headerRef.value!.getBoundingClientRect()\n const dom = domRef.value\n const eventList = [\n {\n target: document,\n type: 'touchmove',\n listener: documentTouchMoveHandler,\n options: { passive: false },\n },\n {\n target: dom,\n type: 'touchmove',\n listener: touchMoveHandler,\n options: { passive: true },\n },\n {\n target: dom,\n type: 'touchend',\n listener: touchEndHandler,\n options: { passive: true },\n },\n {\n target: dom,\n type: 'touchcancel',\n listener: touchEndHandler,\n options: { passive: true },\n },\n ]\n batchEvent(eventList)\n }\n\n const touchMoveHandler = (event: TouchEvent) => {\n const touch = getTouch(event.touches)\n touch && handleMouseMoveOrTouchMove(touch, cacheTouch!)\n }\n\n const touchEndHandler = (event: TouchEvent) => {\n let touch = getTouch(event.touches)\n if (!touch) {\n touch = cacheStartTouch\n }\n handleMouseUpOrToucheEnd(touch!)\n }\n const onMousedown = (event: MouseEvent) => {\n event.preventDefault()\n dragOverColumn.value = null\n if (disabled.value) {\n return\n }\n dragging.value = false\n cacheMouseEvent = event\n headerRect = headerRef.value!.getBoundingClientRect()\n const doc = document\n batchEvent([\n { target: doc, type: 'mousemove', listener: mouseMoveHandler },\n { target: doc, type: 'mouseup', listener: mouseUpHandler },\n { target: doc, type: 'contextmenu', listener: contextmenuHandler },\n ])\n }\n const contextmenuHandler = (event: MouseEvent) => event.preventDefault()\n const mouseMoveHandler = (event: MouseEvent) => {\n handleMouseMoveOrTouchMove(event, cacheMouseEvent)\n }\n const mouseUpHandler = (event: MouseEvent) => {\n handleMouseUpOrToucheEnd(event)\n }\n const mergeColumnDrag = computed(() => column.value.drag ?? columnDrag.value)\n\n onMounted(() => {\n nextTick(() => {\n watch(\n [domRef, mergeColumnDrag],\n ([newDom], [oldDom]) => {\n if (oldDom) {\n oldDom.removeEventListener('mousedown', onMousedown)\n oldDom.removeEventListener('touchstart', onTouchStart)\n }\n if (newDom && mergeColumnDrag.value) {\n newDom.addEventListener('mousedown', onMousedown)\n newDom.addEventListener('touchstart', onTouchStart, { passive: true })\n }\n },\n { flush: 'post', immediate: true },\n )\n })\n })\n onBeforeUnmount(() => {\n if (domRef.value) {\n domRef.value.removeEventListener('mousedown', onMousedown)\n domRef.value.removeEventListener('touchstart', onTouchStart)\n }\n raf.cancel(rafFrame)\n render(null, dragGhostDom)\n })\n\n const renderDragGhostImage = () => {\n let dragIcon = dragLeftAndRightIcon\n if (iconType.value === ICON_TYPE_FORBID) {\n dragIcon = dragForbidIcon\n }\n return tableSlotsContext.columnDragGhost\n ? tableSlotsContext.columnDragGhost({\n targetColumn: toRaw(dragOverColumn.value),\n column: column.value,\n icon: createVNode(\n 'span',\n { class: `${prefixCls.value}-drag-ghost-image-icon`, innerHTML: dragIcon },\n null,\n ),\n allowed: allowed.value,\n dragging: dragging.value,\n event: columnDragEvent.value!,\n })\n : [\n createVNode(\n 'span',\n { class: `${prefixCls.value}-drag-ghost-image-icon`, innerHTML: dragIcon },\n null,\n ),\n createVNode(\n 'span',\n {\n class: `${prefixCls.value}-drag-ghost-image-label`,\n style: { maxWidth: `${offsetWidth}px` },\n },\n [column.value.title],\n ),\n ]\n }\n\n const renderDragGhost = () => {\n if (!dragGhostImage) {\n dragGhostImage = createVNode(renderDragGhostImage)\n render(dragGhostImage, dragGhostDom)\n }\n }\n\n watch(\n [prefixCls],\n () => {\n dragGhostDom.className = `${prefixCls.value}-drag-ghost-image`\n },\n { immediate: true },\n )\n watch([clientX, colPosition], () => {\n clearInterval(clientXTimer)\n if (colPosition.value === 'center' && allowed.value) {\n clientXTimer = setInterval(() => {\n const { x, width } = viewportRef!.value!.getBoundingClientRect()\n if (clientX.value + 30 > x + width - rightWidth.value) {\n scrollTo({ left: viewportRef!.value!.scrollLeft + DRAG_COLUMN_DIS_UNIT }, 'auto', true)\n clearTimeout(scrollTimer)\n scrollTimer = setTimeout(() => {\n scrollLeft.value = viewportRef!.value!.scrollLeft + DRAG_COLUMN_DIS_UNIT\n })\n } else if (clientX.value < x + leftWidth.value) {\n const left = Math.max(viewportRef!.value!.scrollLeft - DRAG_COLUMN_DIS_UNIT, 0)\n scrollTo({ left }, 'auto', true)\n clearTimeout(scrollTimer)\n scrollTimer = setTimeout(() => {\n scrollLeft.value = left\n })\n }\n }, 30)\n }\n })\n\n const handleDraging = () => {\n const pageX = clientX.value\n const { x } = headerRef.value!.getBoundingClientRect()\n const rawColumns = toRaw(headerColumns.value)\n const rawClientX = offsetLeft.value - x\n\n let currentOffetLeft = 0\n let scrollLeft = 0\n if (autoHeight && colPosition.value !== 'center') {\n scrollLeft = viewportRef!.value!.scrollLeft\n currentOffetLeft =\n colPosition.value === 'left'\n ? scrollLeft\n : scrollLeft + bodyWidth.value - rightWidth.value - leftWidth.value - centerWidth.value\n }\n\n for (let i = 0, len = rawColumns.length; i < len; i++) {\n const { left, finallyWidth } = rawColumns[i]!\n const columnClientX = left! - rawClientX + currentOffetLeft\n if (\n !rawColumns[i]!.__Internal__Column__ &&\n pageX > columnClientX &&\n pageX < columnClientX + finallyWidth!\n ) {\n dragOverColumn.value = rawColumns[i]\n }\n }\n if (dragOverColumn.value && dragOverColumn.value.left !== column.value.left) {\n dragColumnPlaceholderRef.value!.style.opacity = '1'\n dragColumnPlaceholderRef.value!.style.zIndex = column.value.fixed ? '3' : 'unset'\n if (dragOverColumn.value.left > column.value.left!) {\n dragColumnPlaceholderRef.value!.style.left = `${\n dragOverColumn.value.left -\n offsetLeft.value +\n dragOverColumn.value.finallyWidth +\n currentOffetLeft -\n 1\n }px`\n } else {\n dragColumnPlaceholderRef.value!.style.left = `${dragOverColumn.value.left - offsetLeft.value + currentOffetLeft - 1}px`\n }\n } else {\n dragColumnPlaceholderRef.value!.style.opacity = '0'\n }\n }\n\n watch([dragging, clientX, allowed, scrollLeft], () => {\n raf.cancel(rafFrame)\n rafFrame = raf(() => {\n if (dragging.value && !allowed.value) {\n iconType.value = ICON_TYPE_FORBID\n }\n if (dragging.value && allowed.value) {\n iconType.value = ''\n handleDraging()\n } else {\n dragColumnPlaceholderRef.value!.style.opacity = '0'\n }\n })\n })\n\n watch(dragging, () => {\n if (!dragging.value && allowed.value && dragOverColumn.value) {\n raf.cancel(rafFrame)\n onColumnDragEnd({\n column: column.value.originColumn!,\n targetColumn: toRaw(dragOverColumn.value.originColumn),\n event: columnDragEvent.value!,\n dir: column.value.left! <= dragOverColumn.value.left ? 'right' : 'left',\n })\n }\n })\n}\nexport default useColumnDragHandler\n"],"names":["ref","inject","VIEWPORT_REF","useInjectTable","AUTO_HEADER_HEIGHT","watchEffect","useInjectHeader","useInjectSlots","computed","OFFSET_X","OFFSET_Y","shallowRef","eventsClose","DRAG_BUFF","raf","onMounted","nextTick","watch","onBeforeUnmount","render","dragLeftAndRightIcon","dragForbidIcon","toRaw","createVNode","DRAG_COLUMN_DIS_UNIT","scrollLeft"],"mappings":";;;;;;;;;;;;;;AAkCO,MAAM,cAAA,GAAiB;AACvB,MAAM,gBAAA,GAAmB;AAEhC,MAAM,eAAA,GAAkB,MAAM,QAAA,CAAS,iBAAA,IAAqB,QAAA,CAAS,IAAA;AAErE,MAAM,uBAK0B,CAAC,EAAE,WAAW,QAAA,EAAU,MAAA,EAAQ,QAAO,KAAM;AAC3E,EAAA,MAAM,QAAA,GAAWA,QAAI,KAAK,CAAA;AAC1B,EAAA,MAAM,WAAA,GAAcC,WAAwCC,qBAAY,CAAA;AACxE,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,iBAAA;AAAA,IACA,eAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,iBAAA;AAAA,IACA,0BAAA;AAAA,IACA,kBAAA;AAAA,IACA;AAAA,MACEC,2BAAA,EAAe;AACnB,EAAA,MAAM,UAAA,GAAaF,UAAA,CAAgBG,2BAAA,EAAoB,KAAK,CAAA;AAE5D,EAAA,MAAM,UAAA,GAAaJ,QAAI,CAAC,CAAA;AACxB,EAAA,MAAM,cAAcA,OAAA,EAAI;AACxB,EAAAK,eAAA,CAAY,MAAM;AAChB,IAAA,IAAI,MAAA,CAAO,KAAA,CAAM,KAAA,KAAU,OAAA,EAAS;AAClC,MAAA,UAAA,CAAW,KAAA,GAAQ,SAAA,CAAU,KAAA,GAAQ,WAAA,CAAY,KAAA;AACjD,MAAA,WAAA,CAAY,KAAA,GAAQ,OAAA;AAAA,IACtB,CAAA,MAAA,IAAW,MAAA,CAAO,KAAA,CAAM,KAAA,EAAO;AAC7B,MAAA,UAAA,CAAW,KAAA,GAAQ,CAAA;AACnB,MAAA,WAAA,CAAY,KAAA,GAAQ,MAAA;AAAA,IACtB,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,QAAQ,SAAA,CAAU,KAAA;AAC7B,MAAA,WAAA,CAAY,KAAA,GAAQ,QAAA;AAAA,IACtB;AACA,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,UAAA,CAAW,KAAA,GAAQ,CAAA;AAAA,IACrB;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,EAAE,wBAAA,EAA0B,SAAA,EAAU,GAAIC,6BAAA,EAAgB;AAChE,EAAA,MAAM,oBAAoBC,gCAAA,EAAe;AAEzC,EAAA,IAAI,QAAA;AACJ,EAAA,MAAM,UAAUP,OAAA,EAAI;AACpB,EAAA,MAAM,UAAUA,OAAA,EAAI;AACpB,EAAA,MAAM,WAAWA,OAAA,EAAI;AACrB,EAAA,MAAM,iBAAiBA,OAAA,EAAI;AAC3B,EAAA,MAAM,YAAA,GAAe,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACjD,EAAA,IAAI,WAAA;AACJ,EAAA,IAAI,YAAA;AACJ,EAAA,MAAM,UAAA,GAAaA,QAAI,CAAC,CAAA;AACxB,EAAA,MAAM,OAAA,GAAUA,QAAI,IAAI,CAAA;AACxB,EAAA,IAAI,eAAA,GAAuB,IAAA;AAC3B,EAAA,IAAI,aAA4C,EAAC;AACjD,EAAA,IAAI,WAAA,GAAc,CAAA;AAClB,EAAA,MAAM,kBAAqC,EAAC;AAC5C,EAAA,IAAI,cAAA,GAA+B,IAAA;AACnC,EAAA,MAAM,QAAA,GAAWA,QAAI,cAAc,CAAA;AAEnC,EAAA,MAAM,aAAA,GAAgBQ,aAAS,MAAM;AACnC,IAAA,QAAQ,YAAY,KAAA;AAAO,MACzB,KAAK,MAAA;AACH,QAAA,OAAO,iBAAA,CAAkB,KAAA;AAAA,MAC3B,KAAK,QAAA;AACH,QAAA,OAAO,0BAAA,CAA2B,KAAA;AAAA,MACpC,KAAK,OAAA;AACH,QAAA,OAAO,kBAAA,CAAmB,KAAA;AAAA,MAC5B;AACE,QAAA,OAAO,EAAC;AAAA;AACZ,EACF,CAAC,CAAA;AAED,EAAA,MAAM,QAAA,GAAWA,aAAS,MAAM;AAC9B,IAAA,IAAI,UAAyB,MAAM,KAAA;AACnC,IAAA,IAAI,UAAA,IAAc,WAAA,CAAY,KAAA,KAAU,QAAA,EAAU;AAChD,MAAA,OAAA,GAAU,MAAM;AArHtB,QAAA,IAAA,EAAA,EAAA,EAAA;AAsHQ,QAAA,MAAM,EAAE,GAAE,GAAI,UAAA;AACd,QAAA,MAAM,eACJ,WAAA,CAAY,KAAA,KAAU,MAAA,GAAA,CAAA,CAClB,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,UAAb,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoB,UAAA,IAAa,CAAA,GAAA,CAAA,CACjC,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,UAAb,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoB,UAAA,IAAa,CAAA,GAAI,SAAA,CAAU,QAAQ,UAAA,CAAW,KAAA;AACxE,QAAA,MAAM,YAAA,GACJ,YAAY,KAAA,KAAU,MAAA,GAClB,eAAe,SAAA,CAAU,KAAA,GACzB,eAAe,UAAA,CAAW,KAAA;AAChC,QAAA,MAAM,WAAA,GAAc,MAAA,CAAO,WAAA,IAAe,QAAA,CAAS,eAAA,CAAgB,UAAA;AACnE,QAAA,IAAI,OAAA,CAAQ,KAAA,GAAQC,mBAAA,IAAY,YAAA,EAAc;AAC5C,UAAA,YAAA,CAAa,KAAA,CAAM,IAAA,GAAO,YAAA,GAAe,WAAA,GAAc,EAAA,GAAK,IAAA;AAC5D,UAAA,OAAO,IAAA;AAAA,QACT,CAAA,MAAA,IAAW,OAAA,CAAQ,KAAA,GAAQA,mBAAA,IAAY,YAAA,EAAc;AACnD,UAAA,YAAA,CAAa,KAAA,CAAM,IAAA,GAAO,YAAA,GAAe,WAAA,GAAc,EAAA,GAAK,IAAA;AAC5D,UAAA,OAAO,IAAA;AAAA,QACT,CAAA,MAAO;AACL,UAAA,OAAO,KAAA;AAAA,QACT;AAAA,MACF,CAAA;AAAA,IACF,CAAA,MAAA,IAAW,WAAA,CAAY,KAAA,KAAU,QAAA,EAAU;AACzC,MAAA,OAAA,GAAU,MAAM;AACd,QAAA,MAAM,EAAE,CAAA,EAAG,KAAA,EAAM,GAAI,UAAA;AACrB,QAAA,MAAM,WAAA,GAAc,MAAA,CAAO,WAAA,IAAe,QAAA,CAAS,eAAA,CAAgB,UAAA;AACnE,QAAA,IAAI,OAAA,CAAQ,KAAA,GAAQA,mBAAA,IAAY,CAAA,EAAG;AACjC,UAAA,YAAA,CAAa,KAAA,CAAM,IAAA,GAAO,CAAA,GAAI,WAAA,GAAc,EAAA,GAAK,IAAA;AACjD,UAAA,OAAO,IAAA;AAAA,QACT,CAAA,MAAA,IAAW,OAAA,CAAQ,KAAA,GAAQA,mBAAA,IAAY,IAAI,KAAA,EAAO;AAChD,UAAA,YAAA,CAAa,KAAA,CAAM,IAAA,GAAO,CAAA,GAAI,WAAA,GAAc,QAAQ,EAAA,GAAK,IAAA;AACzD,UAAA,OAAO,IAAA;AAAA,QACT,CAAA,MAAO;AACL,UAAA,OAAO,KAAA;AAAA,QACT;AAAA,MACF,CAAA;AAAA,IACF,CAAA,MAAO;AACL,MAAA,OAAA,GAAU,MAAM;AACd,QAAA,MAAM,EAAE,CAAA,EAAG,KAAA,EAAM,GAAI,WAAA,CAAa,MAAO,qBAAA,EAAsB;AAC/D,QAAA,MAAM,WAAA,GAAc,MAAA,CAAO,WAAA,IAAe,QAAA,CAAS,eAAA,CAAgB,UAAA;AACnE,QAAA,IAAI,OAAA,CAAQ,KAAA,GAAQA,mBAAA,IAAY,CAAA,GAAI,UAAU,KAAA,EAAO;AACnD,UAAA,YAAA,CAAa,MAAM,IAAA,GAAO,CAAA,GAAI,WAAA,GAAc,SAAA,CAAU,QAAQ,EAAA,GAAK,IAAA;AACnE,UAAA,OAAO,IAAA;AAAA,QACT,WAAW,OAAA,CAAQ,KAAA,GAAQA,uBAAY,CAAA,GAAI,KAAA,GAAQ,WAAW,KAAA,EAAO;AACnE,UAAA,YAAA,CAAa,MAAM,IAAA,GAAO,CAAA,GAAI,cAAc,KAAA,GAAQ,UAAA,CAAW,QAAQ,EAAA,GAAK,IAAA;AAC5E,UAAA,OAAO,IAAA;AAAA,QACT,CAAA,MAAO;AACL,UAAA,OAAO,KAAA;AAAA,QACT;AAAA,MACF,CAAA;AAAA,IACF;AACA,IAAA,OAAO,OAAA;AAAA,EACT,CAAC,CAAA;AAED,EAAA,MAAM,WAAW,MAAM;AACrB,IAAA,MAAM,EAAE,CAAA,EAAG,MAAA,EAAO,GAAI,UAAA;AACtB,IAAA,MAAM,WAAA,GAAc,MAAA,CAAO,WAAA,IAAe,QAAA,CAAS,eAAA,CAAgB,SAAA;AACnE,IAAA,IAAI,OAAA,CAAQ,KAAA,GAAQC,mBAAA,IAAY,CAAA,EAAG;AACjC,MAAA,YAAA,CAAa,KAAA,CAAM,GAAA,GAAM,CAAA,GAAI,WAAA,GAAc,EAAA,GAAK,IAAA;AAChD,MAAA,OAAO,IAAA;AAAA,IACT,CAAA,MAAA,IAAW,OAAA,CAAQ,KAAA,GAAQ,CAAA,GAAI,MAAA,EAAQ;AACrC,MAAA,YAAA,CAAa,KAAA,CAAM,GAAA,GAAM,CAAA,GAAI,WAAA,GAAc,SAAS,EAAA,GAAK,IAAA;AACzD,MAAA,OAAO,IAAA;AAAA,IACT,CAAA,MAAO;AACL,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa,CAAC,SAAA,KAAmB;AACrC,IAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,MAAA,KAAgB;AACjC,MAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,SAAQ,GAAI,MAAA;AAC5C,MAAA,MAAA,CAAO,gBAAA,CAAiB,IAAA,EAAM,QAAA,EAAU,OAAO,CAAA;AAAA,IACjD,CAAC,CAAA;AACD,IAAA,eAAA,CAAgB,KAAK,MAAM;AACzB,MAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,MAAA,KAAgB;AACjC,QAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,SAAQ,GAAI,MAAA;AAC5C,QAAA,MAAA,CAAO,mBAAA,CAAoB,IAAA,EAAM,QAAA,EAAU,OAAO,CAAA;AAAA,MACpD,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACH,CAAA;AACA,EAAA,MAAM,kBAAkBC,cAAA,EAA+B;AACvD,EAAA,MAAM,0BAAA,GAA6B,CACjC,KAAA,EACA,UAAA,KACG;AAxMP,IAAA,IAAA,EAAA;AAyMI,IAAA,eAAA,CAAgB,KAAA,GAAQ,KAAA;AACxB,IAAA,IAAI,CAAC,SAAS,KAAA,EAAO;AACnB,MAAA,IAAIC,gBAAA,CAAY,KAAA,EAAO,UAAA,EAAYC,oBAAS,CAAA,EAAG;AAC7C,QAAA;AAAA,MACF;AACA,MAAA,QAAA,CAAS,KAAA,GAAQ,IAAA;AACjB,MAAA,QAAA,CAAS,QAAQ,KAAA,CAAM,OAAA;AACvB,MAAA,iBAAA,CAAkB,QAAQ,SAAA,CAAU,KAAA;AACpC,MAAA,WAAA,GAAA,CAAA,CAAc,EAAA,GAAA,MAAA,CAAO,KAAA,KAAP,IAAA,GAAA,MAAA,GAAA,EAAA,CAAc,WAAA,KAAe,CAAA;AAC3C,MAAA,eAAA,EAAgB,CAAE,YAAY,YAAY,CAAA;AAC1C,MAAA,eAAA,EAAgB;AAAA,IAClB;AACA,IAAA,OAAA,CAAQ,KAAA,GAAQ,IAAA;AAChB,IAAA,OAAA,CAAQ,QAAQ,KAAA,CAAM,OAAA;AACtB,IAAA,OAAA,CAAQ,QAAQ,KAAA,CAAM,OAAA;AACtB,IAAA,IAAI,UAAS,EAAG;AACd,MAAA,OAAA,CAAQ,KAAA,GAAQ,KAAA;AAChB,MAAA,aAAA,CAAc,YAAY,CAAA;AAAA,IAC5B,CAAA,MAAO;AACL,MAAA,YAAA,CAAa,KAAA,CAAM,GAAA,GAAM,KAAA,CAAM,KAAA,GAAQ,EAAA,GAAK,IAAA;AAAA,IAC9C;AAEA,IAAA,IAAI,QAAA,CAAS,OAAM,EAAG;AACpB,MAAA,OAAA,CAAQ,KAAA,GAAQ,KAAA;AAAA,IAClB,CAAA,MAAO;AACL,MAAA,YAAA,CAAa,KAAA,CAAM,IAAA,GAAO,KAAA,CAAM,KAAA,GAAQ,EAAA,GAAK,IAAA;AAAA,IAC/C;AAAA,EACF,CAAA;AAEA,EAAA,IAAI,eAAA;AACJ,EAAA,IAAI,UAAA;AACJ,EAAA,MAAM,QAAA,GAAW,CAAC,OAAA,KAAuB;AAxO3C,IAAA,IAAA,EAAA;AAyOI,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACvC,MAAA,IAAA,CAAA,CAAI,aAAQ,CAAC,CAAA,KAAT,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,UAAA,OAAe,yCAAY,UAAA,CAAA,EAAY;AACrD,QAAA,OAAO,QAAQ,CAAC,CAAA;AAAA,MAClB;AAAA,IACF;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,wBAAA,GAA2B,CAAC,KAAA,KAA8B;AAC9D,IAAA,IAAI,SAAS,KAAA,EAAO;AAClB,MAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AACjB,MAAA,eAAA,EAAgB,CAAE,YAAY,YAAY,CAAA;AAAA,IAC5C;AACA,IAAA,eAAA,CAAgB,KAAA,GAAQ,KAAA;AACxB,IAAA,eAAA,GAAkB,IAAA;AAClB,IAAA,UAAA,GAAa,IAAA;AACb,IAAA,eAAA,GAAkB,IAAA;AAClB,IAAA,aAAA,CAAc,YAAY,CAAA;AAC1B,IAAA,iBAAA,CAAkB,KAAA,GAAQ,EAAA;AAC1B,IAAA,wBAAA,CAAyB,KAAA,CAAO,MAAM,OAAA,GAAU,GAAA;AAChD,IAAA,eAAA,CAAgB,OAAA,CAAQ,CAAC,EAAA,KAAO,EAAA,EAAI,CAAA;AACpC,IAAA,eAAA,CAAgB,MAAA,GAAS,CAAA;AACzB,IAAAC,WAAA,CAAI,OAAO,QAAQ,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,MAAM,wBAAA,GAA2B,CAAC,KAAA,KAAsB;AACtD,IAAA,KAAA,CAAM,UAAA,IAAc,MAAM,cAAA,EAAe;AAAA,EAC3C,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAAsB;AAC1C,IAAA,cAAA,CAAe,KAAA,GAAQ,IAAA;AACvB,IAAA,IAAI,SAAS,KAAA,EAAO;AAClB,MAAA;AAAA,IACF;AACA,IAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AACjB,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAC7B,IAAA,eAAA,GAAkB,KAAA;AAClB,IAAA,UAAA,GAAa,KAAA;AACb,IAAA,UAAA,GAAa,SAAA,CAAU,MAAO,qBAAA,EAAsB;AACpD,IAAA,MAAM,MAAM,MAAA,CAAO,KAAA;AACnB,IAAA,MAAM,SAAA,GAAY;AAAA,MAChB;AAAA,QACE,MAAA,EAAQ,QAAA;AAAA,QACR,IAAA,EAAM,WAAA;AAAA,QACN,QAAA,EAAU,wBAAA;AAAA,QACV,OAAA,EAAS,EAAE,OAAA,EAAS,KAAA;AAAM,OAC5B;AAAA,MACA;AAAA,QACE,MAAA,EAAQ,GAAA;AAAA,QACR,IAAA,EAAM,WAAA;AAAA,QACN,QAAA,EAAU,gBAAA;AAAA,QACV,OAAA,EAAS,EAAE,OAAA,EAAS,IAAA;AAAK,OAC3B;AAAA,MACA;AAAA,QACE,MAAA,EAAQ,GAAA;AAAA,QACR,IAAA,EAAM,UAAA;AAAA,QACN,QAAA,EAAU,eAAA;AAAA,QACV,OAAA,EAAS,EAAE,OAAA,EAAS,IAAA;AAAK,OAC3B;AAAA,MACA;AAAA,QACE,MAAA,EAAQ,GAAA;AAAA,QACR,IAAA,EAAM,aAAA;AAAA,QACN,QAAA,EAAU,eAAA;AAAA,QACV,OAAA,EAAS,EAAE,OAAA,EAAS,IAAA;AAAK;AAC3B,KACF;AACA,IAAA,UAAA,CAAW,SAAS,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAAsB;AAC9C,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,KAAA,CAAM,OAAO,CAAA;AACpC,IAAA,KAAA,IAAS,0BAAA,CAA2B,OAAO,UAAW,CAAA;AAAA,EACxD,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,CAAC,KAAA,KAAsB;AAC7C,IAAA,IAAI,KAAA,GAAQ,QAAA,CAAS,KAAA,CAAM,OAAO,CAAA;AAClC,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,KAAA,GAAQ,eAAA;AAAA,IACV;AACA,IAAA,wBAAA,CAAyB,KAAM,CAAA;AAAA,EACjC,CAAA;AACA,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAsB;AACzC,IAAA,KAAA,CAAM,cAAA,EAAe;AACrB,IAAA,cAAA,CAAe,KAAA,GAAQ,IAAA;AACvB,IAAA,IAAI,SAAS,KAAA,EAAO;AAClB,MAAA;AAAA,IACF;AACA,IAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AACjB,IAAA,eAAA,GAAkB,KAAA;AAClB,IAAA,UAAA,GAAa,SAAA,CAAU,MAAO,qBAAA,EAAsB;AACpD,IAAA,MAAM,GAAA,GAAM,QAAA;AACZ,IAAA,UAAA,CAAW;AAAA,MACT,EAAE,MAAA,EAAQ,GAAA,EAAK,IAAA,EAAM,WAAA,EAAa,UAAU,gBAAA,EAAiB;AAAA,MAC7D,EAAE,MAAA,EAAQ,GAAA,EAAK,IAAA,EAAM,SAAA,EAAW,UAAU,cAAA,EAAe;AAAA,MACzD,EAAE,MAAA,EAAQ,GAAA,EAAK,IAAA,EAAM,aAAA,EAAe,UAAU,kBAAA;AAAmB,KAClE,CAAA;AAAA,EACH,CAAA;AACA,EAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAAsB,KAAA,CAAM,cAAA,EAAe;AACvE,EAAA,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAAsB;AAC9C,IAAA,0BAAA,CAA2B,OAAO,eAAe,CAAA;AAAA,EACnD,CAAA;AACA,EAAA,MAAM,cAAA,GAAiB,CAAC,KAAA,KAAsB;AAC5C,IAAA,wBAAA,CAAyB,KAAK,CAAA;AAAA,EAChC,CAAA;AACA,EAAA,MAAM,eAAA,GAAkBN,aAAS,MAAG;AAjVtC,IAAA,IAAA,EAAA;AAiVyC,IAAA,OAAA,CAAA,EAAA,GAAA,MAAA,CAAO,KAAA,CAAM,IAAA,KAAb,IAAA,GAAA,EAAA,GAAqB,UAAA,CAAW,KAAA;AAAA,EAAA,CAAK,CAAA;AAE5E,EAAAO,aAAA,CAAU,MAAM;AACd,IAAAC,YAAA,CAAS,MAAM;AACb,MAAAC,SAAA;AAAA,QACE,CAAC,QAAQ,eAAe,CAAA;AAAA,QACxB,CAAC,CAAC,MAAM,CAAA,EAAG,CAAC,MAAM,CAAA,KAAM;AACtB,UAAA,IAAI,MAAA,EAAQ;AACV,YAAA,MAAA,CAAO,mBAAA,CAAoB,aAAa,WAAW,CAAA;AACnD,YAAA,MAAA,CAAO,mBAAA,CAAoB,cAAc,YAAY,CAAA;AAAA,UACvD;AACA,UAAA,IAAI,MAAA,IAAU,gBAAgB,KAAA,EAAO;AACnC,YAAA,MAAA,CAAO,gBAAA,CAAiB,aAAa,WAAW,CAAA;AAChD,YAAA,MAAA,CAAO,iBAAiB,YAAA,EAAc,YAAA,EAAc,EAAE,OAAA,EAAS,MAAM,CAAA;AAAA,UACvE;AAAA,QACF,CAAA;AAAA,QACA,EAAE,KAAA,EAAO,MAAA,EAAQ,SAAA,EAAW,IAAA;AAAK,OACnC;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACD,EAAAC,mBAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,OAAO,KAAA,EAAO;AAChB,MAAA,MAAA,CAAO,KAAA,CAAM,mBAAA,CAAoB,WAAA,EAAa,WAAW,CAAA;AACzD,MAAA,MAAA,CAAO,KAAA,CAAM,mBAAA,CAAoB,YAAA,EAAc,YAAY,CAAA;AAAA,IAC7D;AACA,IAAAJ,WAAA,CAAI,OAAO,QAAQ,CAAA;AACnB,IAAAK,UAAA,CAAO,MAAM,YAAY,CAAA;AAAA,EAC3B,CAAC,CAAA;AAED,EAAA,MAAM,uBAAuB,MAAM;AACjC,IAAA,IAAI,QAAA,GAAWC,yBAAA;AACf,IAAA,IAAI,QAAA,CAAS,UAAU,gBAAA,EAAkB;AACvC,MAAA,QAAA,GAAWC,mBAAA;AAAA,IACb;AACA,IAAA,OAAO,iBAAA,CAAkB,eAAA,GACrB,iBAAA,CAAkB,eAAA,CAAgB;AAAA,MAChC,YAAA,EAAcC,SAAA,CAAM,cAAA,CAAe,KAAK,CAAA;AAAA,MACxC,QAAQ,MAAA,CAAO,KAAA;AAAA,MACf,IAAA,EAAMC,eAAA;AAAA,QACJ,MAAA;AAAA,QACA,EAAE,KAAA,EAAO,CAAA,EAAG,UAAU,KAAK,CAAA,sBAAA,CAAA,EAA0B,WAAW,QAAA,EAAS;AAAA,QACzE;AAAA,OACF;AAAA,MACA,SAAS,OAAA,CAAQ,KAAA;AAAA,MACjB,UAAU,QAAA,CAAS,KAAA;AAAA,MACnB,OAAO,eAAA,CAAgB;AAAA,KACxB,CAAA,GACD;AAAA,MACEA,eAAA;AAAA,QACE,MAAA;AAAA,QACA,EAAE,KAAA,EAAO,CAAA,EAAG,UAAU,KAAK,CAAA,sBAAA,CAAA,EAA0B,WAAW,QAAA,EAAS;AAAA,QACzE;AAAA,OACF;AAAA,MACAA,eAAA;AAAA,QACE,MAAA;AAAA,QACA;AAAA,UACE,KAAA,EAAO,CAAA,EAAG,SAAA,CAAU,KAAK,CAAA,uBAAA,CAAA;AAAA,UACzB,KAAA,EAAO,EAAE,QAAA,EAAU,CAAA,EAAG,WAAW,CAAA,EAAA,CAAA;AAAK,SACxC;AAAA,QACA,CAAC,MAAA,CAAO,KAAA,CAAM,KAAK;AAAA;AACrB,KACF;AAAA,EACN,CAAA;AAEA,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAA,cAAA,GAAiBA,gBAAY,oBAAoB,CAAA;AACjD,MAAAJ,UAAA,CAAO,gBAAgB,YAAY,CAAA;AAAA,IACrC;AAAA,EACF,CAAA;AAEA,EAAAF,SAAA;AAAA,IACE,CAAC,SAAS,CAAA;AAAA,IACV,MAAM;AACJ,MAAA,YAAA,CAAa,SAAA,GAAY,CAAA,EAAG,SAAA,CAAU,KAAK,CAAA,iBAAA,CAAA;AAAA,IAC7C,CAAA;AAAA,IACA,EAAE,WAAW,IAAA;AAAK,GACpB;AACA,EAAAA,SAAA,CAAM,CAAC,OAAA,EAAS,WAAW,CAAA,EAAG,MAAM;AAClC,IAAA,aAAA,CAAc,YAAY,CAAA;AAC1B,IAAA,IAAI,WAAA,CAAY,KAAA,KAAU,QAAA,IAAY,OAAA,CAAQ,KAAA,EAAO;AACnD,MAAA,YAAA,GAAe,YAAY,MAAM;AAC/B,QAAA,MAAM,EAAE,CAAA,EAAG,KAAA,EAAM,GAAI,WAAA,CAAa,MAAO,qBAAA,EAAsB;AAC/D,QAAA,IAAI,QAAQ,KAAA,GAAQ,EAAA,GAAK,CAAA,GAAI,KAAA,GAAQ,WAAW,KAAA,EAAO;AACrD,UAAA,QAAA,CAAS,EAAE,MAAM,WAAA,CAAa,KAAA,CAAO,aAAaO,6BAAA,EAAqB,EAAG,QAAQ,IAAI,CAAA;AACtF,UAAA,YAAA,CAAa,WAAW,CAAA;AACxB,UAAA,WAAA,GAAc,WAAW,MAAM;AAC7B,YAAA,UAAA,CAAW,KAAA,GAAQ,WAAA,CAAa,KAAA,CAAO,UAAA,GAAaA,6BAAA;AAAA,UACtD,CAAC,CAAA;AAAA,QACH,CAAA,MAAA,IAAW,OAAA,CAAQ,KAAA,GAAQ,CAAA,GAAI,UAAU,KAAA,EAAO;AAC9C,UAAA,MAAM,OAAO,IAAA,CAAK,GAAA,CAAI,YAAa,KAAA,CAAO,UAAA,GAAaA,+BAAsB,CAAC,CAAA;AAC9E,UAAA,QAAA,CAAS,EAAE,IAAA,EAAK,EAAG,MAAA,EAAQ,IAAI,CAAA;AAC/B,UAAA,YAAA,CAAa,WAAW,CAAA;AACxB,UAAA,WAAA,GAAc,WAAW,MAAM;AAC7B,YAAA,UAAA,CAAW,KAAA,GAAQ,IAAA;AAAA,UACrB,CAAC,CAAA;AAAA,QACH;AAAA,MACF,GAAG,EAAE,CAAA;AAAA,IACP;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,MAAM,QAAQ,OAAA,CAAQ,KAAA;AACtB,IAAA,MAAM,EAAE,CAAA,EAAE,GAAI,SAAA,CAAU,MAAO,qBAAA,EAAsB;AACrD,IAAA,MAAM,UAAA,GAAaF,SAAA,CAAM,aAAA,CAAc,KAAK,CAAA;AAC5C,IAAA,MAAM,UAAA,GAAa,WAAW,KAAA,GAAQ,CAAA;AAEtC,IAAA,IAAI,gBAAA,GAAmB,CAAA;AACvB,IAAA,IAAIG,WAAAA,GAAa,CAAA;AACjB,IAAA,IAAI,UAAA,IAAc,WAAA,CAAY,KAAA,KAAU,QAAA,EAAU;AAChD,MAAAA,WAAAA,GAAa,YAAa,KAAA,CAAO,UAAA;AACjC,MAAA,gBAAA,GACE,WAAA,CAAY,KAAA,KAAU,MAAA,GAClBA,WAAAA,GACAA,WAAAA,GAAa,SAAA,CAAU,KAAA,GAAQ,UAAA,CAAW,KAAA,GAAQ,SAAA,CAAU,KAAA,GAAQ,WAAA,CAAY,KAAA;AAAA,IACxF;AAEA,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,GAAA,GAAM,WAAW,MAAA,EAAQ,CAAA,GAAI,KAAK,CAAA,EAAA,EAAK;AACrD,MAAA,MAAM,EAAE,IAAA,EAAM,YAAA,EAAa,GAAI,WAAW,CAAC,CAAA;AAC3C,MAAA,MAAM,aAAA,GAAgB,OAAQ,UAAA,GAAa,gBAAA;AAC3C,MAAA,IACE,CAAC,WAAW,CAAC,CAAA,CAAG,wBAChB,KAAA,GAAQ,aAAA,IACR,KAAA,GAAQ,aAAA,GAAgB,YAAA,EACxB;AACA,QAAA,cAAA,CAAe,KAAA,GAAQ,WAAW,CAAC,CAAA;AAAA,MACrC;AAAA,IACF;AACA,IAAA,IAAI,eAAe,KAAA,IAAS,cAAA,CAAe,MAAM,IAAA,KAAS,MAAA,CAAO,MAAM,IAAA,EAAM;AAC3E,MAAA,wBAAA,CAAyB,KAAA,CAAO,MAAM,OAAA,GAAU,GAAA;AAChD,MAAA,wBAAA,CAAyB,MAAO,KAAA,CAAM,MAAA,GAAS,MAAA,CAAO,KAAA,CAAM,QAAQ,GAAA,GAAM,OAAA;AAC1E,MAAA,IAAI,cAAA,CAAe,KAAA,CAAM,IAAA,GAAO,MAAA,CAAO,MAAM,IAAA,EAAO;AAClD,QAAA,wBAAA,CAAyB,KAAA,CAAO,KAAA,CAAM,IAAA,GAAO,CAAA,EAC3C,cAAA,CAAe,KAAA,CAAM,IAAA,GACrB,UAAA,CAAW,KAAA,GACX,cAAA,CAAe,KAAA,CAAM,YAAA,GACrB,mBACA,CACF,CAAA,EAAA,CAAA;AAAA,MACF,CAAA,MAAO;AACL,QAAA,wBAAA,CAAyB,KAAA,CAAO,KAAA,CAAM,IAAA,GAAO,CAAA,EAAG,cAAA,CAAe,MAAM,IAAA,GAAO,UAAA,CAAW,KAAA,GAAQ,gBAAA,GAAmB,CAAC,CAAA,EAAA,CAAA;AAAA,MACrH;AAAA,IACF,CAAA,MAAO;AACL,MAAA,wBAAA,CAAyB,KAAA,CAAO,MAAM,OAAA,GAAU,GAAA;AAAA,IAClD;AAAA,EACF,CAAA;AAEA,EAAAR,SAAA,CAAM,CAAC,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,UAAU,GAAG,MAAM;AACpD,IAAAH,WAAA,CAAI,OAAO,QAAQ,CAAA;AACnB,IAAA,QAAA,GAAWA,YAAI,MAAM;AACnB,MAAA,IAAI,QAAA,CAAS,KAAA,IAAS,CAAC,OAAA,CAAQ,KAAA,EAAO;AACpC,QAAA,QAAA,CAAS,KAAA,GAAQ,gBAAA;AAAA,MACnB;AACA,MAAA,IAAI,QAAA,CAAS,KAAA,IAAS,OAAA,CAAQ,KAAA,EAAO;AACnC,QAAA,QAAA,CAAS,KAAA,GAAQ,EAAA;AACjB,QAAA,aAAA,EAAc;AAAA,MAChB,CAAA,MAAO;AACL,QAAA,wBAAA,CAAyB,KAAA,CAAO,MAAM,OAAA,GAAU,GAAA;AAAA,MAClD;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAAG,SAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,CAAC,QAAA,CAAS,KAAA,IAAS,OAAA,CAAQ,KAAA,IAAS,eAAe,KAAA,EAAO;AAC5D,MAAAH,WAAA,CAAI,OAAO,QAAQ,CAAA;AACnB,MAAA,eAAA,CAAgB;AAAA,QACd,MAAA,EAAQ,OAAO,KAAA,CAAM,YAAA;AAAA,QACrB,YAAA,EAAcQ,SAAA,CAAM,cAAA,CAAe,KAAA,CAAM,YAAY,CAAA;AAAA,QACrD,OAAO,eAAA,CAAgB,KAAA;AAAA,QACvB,KAAK,MAAA,CAAO,KAAA,CAAM,QAAS,cAAA,CAAe,KAAA,CAAM,OAAO,OAAA,GAAU;AAAA,OAClE,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AACH;;;;;;"}
@@ -95,7 +95,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
95
95
  _: 1
96
96
  /* STABLE */
97
97
  }, 8, ["class"])),
98
- _ctx.column.resizable && !(_ctx.column.children && _ctx.column.children.length) ? (vue.openBlock(), vue.createBlock(_component_DragHandle, {
98
+ _ctx.mergeColumnResizable && !(_ctx.column.children && _ctx.column.children.length) ? (vue.openBlock(), vue.createBlock(_component_DragHandle, {
99
99
  key: 0,
100
100
  "prefix-cls": _ctx.prefixCls,
101
101
  width: _ctx.widths.width,
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderCell.vue.js","sources":["../../../../../../../../../packages/components/table/src/components/Header/HeaderCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 16:03:18\n * @LastEditors: shen\n * @LastEditTime: 2025-11-25 08:54:01\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType, CSSProperties } from 'vue'\nimport type { FilterKey, FinallyColumnType, SortOrder } from '../interface'\n\nimport { defineComponent, computed, inject, ref, watch, h } from 'vue'\nimport { Tooltip } from 'ant-design-vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { RenderVNode, RenderSlot } from '../../utils/renderVNode'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { ASCEND, DESCEND, getMultiplePriority } from '../../hooks/useSorter'\nimport { getCellFixedInfo } from '../../utils/fixUtil'\nimport { useInjectHeader } from '../context/HeaderContext'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectPopup } from '../context/PopupContext'\nimport { isEqual } from '@pro-design-vue/utils'\nimport useColumnDragHandler from '../Drag/useColumnDragHandler'\nimport supportSticky from '../../utils/supportSticky'\nimport eagerComputed from '../../utils/eagerComputed'\nimport Sorter from './Sorter.vue'\nimport DragHandle from './DragHandle.vue'\nimport FilterDropdown from '../Filter/FilterDropdown.vue'\nimport FilterItems from '../Filter/FilterItems.vue'\n\nexport default defineComponent({\n name: 'TableHeaderCell',\n components: {\n Sorter,\n Tooltip,\n DragHandle,\n FilterDropdown,\n MenuOutlined,\n RenderVNode,\n FilterItems,\n },\n props: {\n component: { type: String, default: 'div' },\n prefixCls: String as PropType<string>,\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n level: { type: Number as PropType<number>, default: 1 },\n additionalProps: Object,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const headerContext = useInjectHeader()\n const tableSlotsContext = useInjectSlots()\n const { showPopupContent } = useInjectPopup()\n\n const columnDragging = computed(\n () => tableContext.draggingColumnKey.value === props.column.columnKey,\n )\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n const domRef = ref<HTMLDivElement>()\n\n if (props.level === 1) {\n useColumnDragHandler({\n column: computed(() => props.column),\n columnKey: computed(() => props.column.columnKey),\n disabled: computed(() => false),\n domRef,\n })\n }\n\n const showSorterTooltip = computed(() => {\n return undefined === props.column.showSorterTooltip\n ? tableContext.props.showSorterTooltip\n : props.column.showSorterTooltip\n })\n\n const tooltipProps = computed(() =>\n 'boolean' == typeof showSorterTooltip.value ? {} : showSorterTooltip.value,\n )\n\n const sorterInfo = computed(() => {\n const column = props.column\n const columnKey = column.columnKey\n const sorterState = tableContext.sorterStates.value.find(({ key }) => key === columnKey)\n const sorterOrder = sorterState ? sorterState.sortOrder : null\n const sortDirections = column.sortDirections || ['asc', 'desc']\n const nextSortOrder = sorterOrder\n ? sortDirections[sortDirections.indexOf(sorterOrder) + 1]\n : sortDirections[0]\n\n const { cancelSort, triggerAsc, triggerDesc } = tableContext.locale.value || {}\n let tip = cancelSort\n if (nextSortOrder === DESCEND) {\n tip = triggerDesc\n } else if (nextSortOrder === ASCEND) {\n tip = triggerAsc\n }\n return {\n columnKey,\n sorterState,\n sorterOrder,\n sortDirections,\n nextSortOrder,\n tip,\n showFilter:\n !!(\n column.filters ||\n column.filterDropdown ||\n (column.slots && column.slots.filterDropdown) ||\n column.customFilterDropdown\n ) && false !== column.showFilter,\n wrapText: props.column.wrapText === undefined ? props.wrapText : props.column.wrapText,\n }\n })\n const hasIcon = computed(() => sorterInfo.value.showFilter || !!tableSlotsContext.menuPopup)\n const cellBoxClass = computed(() => ({\n [`${props.prefixCls}-has-icon-column`]: hasIcon.value,\n [`${props.prefixCls}-cell-box`]: true,\n }))\n const titleClass = computed(() => {\n const { prefixCls } = props\n return {\n [`${prefixCls}-column-title`]: true,\n [`${prefixCls}-cell-box`]: !hasIcon.value,\n }\n })\n\n const widths = computed(() => {\n const {\n columnIndex = tableContext.columnKeyIndexMap.value[props.column.columnKey],\n colSpan = 1,\n } = props.column\n return tableContext.getColumnPosition(columnIndex!, colSpan)\n })\n\n const customColProps = computed(() =>\n (props.column.customHeaderCell || tableContext.props.customHeaderCell || (() => ({})))(\n props.column,\n ),\n )\n\n const colProps = computed(() => {\n const { columnIndex, colSpan = 1 } = props.column\n return Object.assign({}, customColProps.value, {\n colspan: colSpan,\n colstart: columnIndex,\n colend: colSpan + columnIndex - 1,\n ...props.additionalProps,\n })\n })\n\n const cellFixedInfo = computed(() => {\n if (autoHeight) {\n return getCellFixedInfo(\n colProps.value!.colstart,\n colProps.value!.colend,\n tableContext.allColumns.value as any,\n tableContext.stickyOffsets.value,\n tableContext.props.direction,\n )\n }\n return undefined\n })\n\n const cellClass = computed(() => {\n const { prefixCls, column } = props\n let cellFixedCls = {}\n if (cellFixedInfo.value && supportSticky) {\n const autoCellPrefixCls = `${prefixCls}-cell`,\n { fixLeft, fixRight, firstFixLeft, lastFixLeft, firstFixRight, lastFixRight } =\n cellFixedInfo.value\n cellFixedCls = {\n [`${autoCellPrefixCls}-fix-left`]: typeof fixLeft === 'number',\n [`${autoCellPrefixCls}-fix-left-first`]: firstFixLeft,\n [`${autoCellPrefixCls}-fix-left-last`]: lastFixLeft,\n [`${autoCellPrefixCls}-fix-right`]: typeof fixRight == 'number',\n [`${autoCellPrefixCls}-fix-right-first`]: firstFixRight,\n [`${autoCellPrefixCls}-fix-right-last`]: lastFixRight,\n }\n }\n return Object.assign(\n {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-first-cell`]: props.column.columnIndex === 0,\n [`${prefixCls}-header-cell`]: true,\n [column.class || '']: true,\n [column.className || '']: true,\n [`${prefixCls}-column-sort`]: sorterInfo.value.sorterOrder,\n [`${prefixCls}-column-has-sorters`]: column.sorter,\n [`${prefixCls}-drag-column-dragging`]: columnDragging.value,\n },\n cellFixedCls,\n )\n })\n\n const componentStyle = computed(() => {\n const styles: CSSProperties = {}\n if (cellFixedInfo.value && supportSticky) {\n const { fixLeft, fixRight } = cellFixedInfo.value\n if (typeof fixLeft == 'number') {\n styles.position = 'sticky'\n styles.left = `${fixLeft}px`\n }\n if (typeof fixRight == 'number') {\n styles.position = 'sticky'\n styles.right = `${fixRight}px`\n }\n }\n return autoHeight\n ? styles\n : { width: `${widths.value.width}px`, height: `${props.column.height}px` }\n })\n\n const selectedKeysRef = ref<FilterKey>([])\n const filterStates = computed(() => tableContext.filterStates.value)\n const columnKey = computed(() => props.column.columnKey)\n const filterState = computed(() =>\n filterStates.value.find(({ key }) => columnKey.value === key),\n )\n\n const changeFilter = (keys: FilterKey) => {\n const filteredKeys = keys?.length ? keys : null\n if (!(null !== filteredKeys || (filterState.value && filterState.value.filteredKeys)))\n return null\n if (\n isEqual(\n filteredKeys,\n null == filterState.value ? undefined : filterState.value.filteredKeys,\n )\n )\n return null\n const state = { column: props.column, key: columnKey.value, filteredKeys }\n tableContext?.changeFilter(state)\n }\n\n watch(\n filterState,\n () => {\n selectedKeysRef.value = filterState.value?.filteredKeys || []\n },\n { immediate: true },\n )\n\n const clearFilters = () => {\n selectedKeysRef.value = []\n changeFilter([])\n }\n const confirm = () => {\n changeFilter(selectedKeysRef.value)\n }\n\n const filtered = eagerComputed(() => {\n return !!selectedKeysRef.value?.length\n })\n\n const menuFilterProps = computed(() => ({\n prefixCls: props.prefixCls,\n setSelectedKeys: (keys: FilterKey) => {\n selectedKeysRef.value = keys || []\n },\n selectedKeysRef,\n confirm,\n clearFilters,\n filters: props.column.filters,\n }))\n\n const getPopupContainer = () => {\n return document.body\n }\n\n return {\n tableContext,\n sorterInfo,\n getPopupContainer,\n handleSortClick: (column: FinallyColumnType<any>, nextSortOrder: SortOrder) => {\n if (!column.sorter) return\n const sortState = {\n column,\n key: column.columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column),\n }\n tableContext.changeSorter(sortState)\n },\n cellClass,\n widths,\n colProps,\n RenderSlot,\n titleClass,\n domRef,\n autoHeight,\n componentStyle,\n headerContext,\n tableSlotsContext,\n cellBoxClass,\n showPopupContent,\n FilterItems,\n h,\n\n hasIcon,\n menuFilterProps,\n filtered,\n tooltipProps,\n showSorterTooltip,\n }\n },\n})\n</script>\n\n<template>\n <component\n v-if=\"colProps.colspan\"\n ref=\"domRef\"\n :is=\"component\"\n tabindex=\"-1\"\n role=\"cell\"\n :class=\"cellClass\"\n :style=\"componentStyle\"\n v-bind=\"colProps\"\n @click=\"handleSortClick(column, sorterInfo.nextSortOrder!)\"\n >\n <component :is=\"hasIcon ? 'div' : RenderSlot\" :class=\"cellBoxClass\">\n <span :class=\"titleClass\">\n <Tooltip v-if=\"column.sorter && showSorterTooltip\" v-bind=\"tooltipProps\" :getPopupContainer>\n <template #title>\n {{ sorterInfo.tip }}\n </template>\n <div :class=\"`${prefixCls}-column-sorters`\" :data-tip=\"sorterInfo.tip\">\n <Sorter :column=\"column\" v-bind=\"sorterInfo\" />\n </div>\n </Tooltip>\n <Sorter v-else :column=\"column\" v-bind=\"sorterInfo\" />\n </span>\n <FilterDropdown\n v-if=\"sorterInfo.showFilter\"\n :prefix-cls=\"`${prefixCls}-filter`\"\n :column=\"column\"\n />\n <span\n v-if=\"column.showMenu && tableSlotsContext.menuPopup\"\n :class=\"[\n `${prefixCls}-menu-popup-trigger`,\n 'hover' === column.showMenu && `${prefixCls}-menu-popup-trigger-hover`,\n ]\"\n @click.stop=\"\n showPopupContent(tableSlotsContext.menuPopup, $event, {\n column: column.originColumn,\n filter: menuFilterProps,\n })\n \"\n >\n <RenderVNode\n v-if=\"tableSlotsContext.menuIcon\"\n :vnode=\"\n tableSlotsContext.menuIcon({\n column: column.originColumn!,\n filtered: filtered,\n })\n \"\n />\n <MenuOutlined v-else />\n </span>\n </component>\n <DragHandle\n v-if=\"column.resizable && !(column.children && column.children.length)\"\n :prefix-cls=\"prefixCls\"\n :width=\"widths.width\"\n :min-width=\"widths.minWidth\"\n :max-width=\"widths.maxWidth\"\n :column=\"column\"\n />\n </component>\n</template>\n"],"names":["_openBlock","_createBlock","_resolveDynamicComponent","_mergeProps","_normalizeClass","_createElementVNode","_withCtx","_createTextVNode","_toDisplayString","_createVNode","_createCommentVNode","_createElementBlock","_withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"HeaderCell.vue.js","sources":["../../../../../../../../../packages/components/table/src/components/Header/HeaderCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 16:03:18\n * @LastEditors: shen\n * @LastEditTime: 2026-01-22 10:35:45\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType, CSSProperties } from 'vue'\nimport type { FilterKey, FinallyColumnType, SortOrder } from '../interface'\n\nimport { defineComponent, computed, inject, ref, watch, h } from 'vue'\nimport { Tooltip } from 'ant-design-vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { RenderVNode, RenderSlot } from '../../utils/renderVNode'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { ASCEND, DESCEND, getMultiplePriority } from '../../hooks/useSorter'\nimport { getCellFixedInfo } from '../../utils/fixUtil'\nimport { useInjectHeader } from '../context/HeaderContext'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectPopup } from '../context/PopupContext'\nimport { isEqual } from '@pro-design-vue/utils'\nimport useColumnDragHandler from '../Drag/useColumnDragHandler'\nimport supportSticky from '../../utils/supportSticky'\nimport eagerComputed from '../../utils/eagerComputed'\nimport Sorter from './Sorter.vue'\nimport DragHandle from './DragHandle.vue'\nimport FilterDropdown from '../Filter/FilterDropdown.vue'\nimport FilterItems from '../Filter/FilterItems.vue'\n\nexport default defineComponent({\n name: 'TableHeaderCell',\n components: {\n Sorter,\n Tooltip,\n DragHandle,\n FilterDropdown,\n MenuOutlined,\n RenderVNode,\n FilterItems,\n },\n props: {\n component: { type: String, default: 'div' },\n prefixCls: String as PropType<string>,\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n level: { type: Number as PropType<number>, default: 1 },\n additionalProps: Object,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const headerContext = useInjectHeader()\n const tableSlotsContext = useInjectSlots()\n const { showPopupContent } = useInjectPopup()\n\n const columnDragging = computed(\n () => tableContext.draggingColumnKey.value === props.column.columnKey,\n )\n\n const mergeColumnResizable = computed(\n () => props.column.resizable ?? tableContext.columnResizable.value,\n )\n\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n const domRef = ref<HTMLDivElement>()\n\n if (props.level === 1) {\n useColumnDragHandler({\n column: computed(() => props.column),\n columnKey: computed(() => props.column.columnKey),\n disabled: computed(() => false),\n domRef,\n })\n }\n\n const showSorterTooltip = computed(() => {\n return undefined === props.column.showSorterTooltip\n ? tableContext.props.showSorterTooltip\n : props.column.showSorterTooltip\n })\n\n const tooltipProps = computed(() =>\n 'boolean' == typeof showSorterTooltip.value ? {} : showSorterTooltip.value,\n )\n\n const sorterInfo = computed(() => {\n const column = props.column\n const columnKey = column.columnKey\n const sorterState = tableContext.sorterStates.value.find(({ key }) => key === columnKey)\n const sorterOrder = sorterState ? sorterState.sortOrder : null\n const sortDirections = column.sortDirections || ['asc', 'desc']\n const nextSortOrder = sorterOrder\n ? sortDirections[sortDirections.indexOf(sorterOrder) + 1]\n : sortDirections[0]\n\n const { cancelSort, triggerAsc, triggerDesc } = tableContext.locale.value || {}\n let tip = cancelSort\n if (nextSortOrder === DESCEND) {\n tip = triggerDesc\n } else if (nextSortOrder === ASCEND) {\n tip = triggerAsc\n }\n return {\n columnKey,\n sorterState,\n sorterOrder,\n sortDirections,\n nextSortOrder,\n tip,\n showFilter:\n !!(\n column.filters ||\n column.filterDropdown ||\n (column.slots && column.slots.filterDropdown) ||\n column.customFilterDropdown\n ) && false !== column.showFilter,\n wrapText: props.column.wrapText === undefined ? props.wrapText : props.column.wrapText,\n }\n })\n const hasIcon = computed(() => sorterInfo.value.showFilter || !!tableSlotsContext.menuPopup)\n const cellBoxClass = computed(() => ({\n [`${props.prefixCls}-has-icon-column`]: hasIcon.value,\n [`${props.prefixCls}-cell-box`]: true,\n }))\n const titleClass = computed(() => {\n const { prefixCls } = props\n return {\n [`${prefixCls}-column-title`]: true,\n [`${prefixCls}-cell-box`]: !hasIcon.value,\n }\n })\n\n const widths = computed(() => {\n const {\n columnIndex = tableContext.columnKeyIndexMap.value[props.column.columnKey],\n colSpan = 1,\n } = props.column\n return tableContext.getColumnPosition(columnIndex!, colSpan)\n })\n\n const customColProps = computed(() =>\n (props.column.customHeaderCell || tableContext.props.customHeaderCell || (() => ({})))(\n props.column,\n ),\n )\n\n const colProps = computed(() => {\n const { columnIndex, colSpan = 1 } = props.column\n return Object.assign({}, customColProps.value, {\n colspan: colSpan,\n colstart: columnIndex,\n colend: colSpan + columnIndex - 1,\n ...props.additionalProps,\n })\n })\n\n const cellFixedInfo = computed(() => {\n if (autoHeight) {\n return getCellFixedInfo(\n colProps.value!.colstart,\n colProps.value!.colend,\n tableContext.allColumns.value as any,\n tableContext.stickyOffsets.value,\n tableContext.props.direction,\n )\n }\n return undefined\n })\n\n const cellClass = computed(() => {\n const { prefixCls, column } = props\n let cellFixedCls = {}\n if (cellFixedInfo.value && supportSticky) {\n const autoCellPrefixCls = `${prefixCls}-cell`,\n { fixLeft, fixRight, firstFixLeft, lastFixLeft, firstFixRight, lastFixRight } =\n cellFixedInfo.value\n cellFixedCls = {\n [`${autoCellPrefixCls}-fix-left`]: typeof fixLeft === 'number',\n [`${autoCellPrefixCls}-fix-left-first`]: firstFixLeft,\n [`${autoCellPrefixCls}-fix-left-last`]: lastFixLeft,\n [`${autoCellPrefixCls}-fix-right`]: typeof fixRight == 'number',\n [`${autoCellPrefixCls}-fix-right-first`]: firstFixRight,\n [`${autoCellPrefixCls}-fix-right-last`]: lastFixRight,\n }\n }\n return Object.assign(\n {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-first-cell`]: props.column.columnIndex === 0,\n [`${prefixCls}-header-cell`]: true,\n [column.class || '']: true,\n [column.className || '']: true,\n [`${prefixCls}-column-sort`]: sorterInfo.value.sorterOrder,\n [`${prefixCls}-column-has-sorters`]: column.sorter,\n [`${prefixCls}-drag-column-dragging`]: columnDragging.value,\n },\n cellFixedCls,\n )\n })\n\n const componentStyle = computed(() => {\n const styles: CSSProperties = {}\n if (cellFixedInfo.value && supportSticky) {\n const { fixLeft, fixRight } = cellFixedInfo.value\n if (typeof fixLeft == 'number') {\n styles.position = 'sticky'\n styles.left = `${fixLeft}px`\n }\n if (typeof fixRight == 'number') {\n styles.position = 'sticky'\n styles.right = `${fixRight}px`\n }\n }\n return autoHeight\n ? styles\n : { width: `${widths.value.width}px`, height: `${props.column.height}px` }\n })\n\n const selectedKeysRef = ref<FilterKey>([])\n const filterStates = computed(() => tableContext.filterStates.value)\n const columnKey = computed(() => props.column.columnKey)\n const filterState = computed(() =>\n filterStates.value.find(({ key }) => columnKey.value === key),\n )\n\n const changeFilter = (keys: FilterKey) => {\n const filteredKeys = keys?.length ? keys : null\n if (!(null !== filteredKeys || (filterState.value && filterState.value.filteredKeys)))\n return null\n if (\n isEqual(\n filteredKeys,\n null == filterState.value ? undefined : filterState.value.filteredKeys,\n )\n )\n return null\n const state = { column: props.column, key: columnKey.value, filteredKeys }\n tableContext?.changeFilter(state)\n }\n\n watch(\n filterState,\n () => {\n selectedKeysRef.value = filterState.value?.filteredKeys || []\n },\n { immediate: true },\n )\n\n const clearFilters = () => {\n selectedKeysRef.value = []\n changeFilter([])\n }\n const confirm = () => {\n changeFilter(selectedKeysRef.value)\n }\n\n const filtered = eagerComputed(() => {\n return !!selectedKeysRef.value?.length\n })\n\n const menuFilterProps = computed(() => ({\n prefixCls: props.prefixCls,\n setSelectedKeys: (keys: FilterKey) => {\n selectedKeysRef.value = keys || []\n },\n selectedKeysRef,\n confirm,\n clearFilters,\n filters: props.column.filters,\n }))\n\n const getPopupContainer = () => {\n return document.body\n }\n\n return {\n tableContext,\n sorterInfo,\n getPopupContainer,\n mergeColumnResizable,\n handleSortClick: (column: FinallyColumnType<any>, nextSortOrder: SortOrder) => {\n if (!column.sorter) return\n const sortState = {\n column,\n key: column.columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column),\n }\n tableContext.changeSorter(sortState)\n },\n cellClass,\n widths,\n colProps,\n RenderSlot,\n titleClass,\n domRef,\n autoHeight,\n componentStyle,\n headerContext,\n tableSlotsContext,\n cellBoxClass,\n showPopupContent,\n FilterItems,\n h,\n\n hasIcon,\n menuFilterProps,\n filtered,\n tooltipProps,\n showSorterTooltip,\n }\n },\n})\n</script>\n\n<template>\n <component\n v-if=\"colProps.colspan\"\n ref=\"domRef\"\n :is=\"component\"\n tabindex=\"-1\"\n role=\"cell\"\n :class=\"cellClass\"\n :style=\"componentStyle\"\n v-bind=\"colProps\"\n @click=\"handleSortClick(column, sorterInfo.nextSortOrder!)\"\n >\n <component :is=\"hasIcon ? 'div' : RenderSlot\" :class=\"cellBoxClass\">\n <span :class=\"titleClass\">\n <Tooltip v-if=\"column.sorter && showSorterTooltip\" v-bind=\"tooltipProps\" :getPopupContainer>\n <template #title>\n {{ sorterInfo.tip }}\n </template>\n <div :class=\"`${prefixCls}-column-sorters`\" :data-tip=\"sorterInfo.tip\">\n <Sorter :column=\"column\" v-bind=\"sorterInfo\" />\n </div>\n </Tooltip>\n <Sorter v-else :column=\"column\" v-bind=\"sorterInfo\" />\n </span>\n <FilterDropdown\n v-if=\"sorterInfo.showFilter\"\n :prefix-cls=\"`${prefixCls}-filter`\"\n :column=\"column\"\n />\n <span\n v-if=\"column.showMenu && tableSlotsContext.menuPopup\"\n :class=\"[\n `${prefixCls}-menu-popup-trigger`,\n 'hover' === column.showMenu && `${prefixCls}-menu-popup-trigger-hover`,\n ]\"\n @click.stop=\"\n showPopupContent(tableSlotsContext.menuPopup, $event, {\n column: column.originColumn,\n filter: menuFilterProps,\n })\n \"\n >\n <RenderVNode\n v-if=\"tableSlotsContext.menuIcon\"\n :vnode=\"\n tableSlotsContext.menuIcon({\n column: column.originColumn!,\n filtered: filtered,\n })\n \"\n />\n <MenuOutlined v-else />\n </span>\n </component>\n <DragHandle\n v-if=\"mergeColumnResizable && !(column.children && column.children.length)\"\n :prefix-cls=\"prefixCls\"\n :width=\"widths.width\"\n :min-width=\"widths.minWidth\"\n :max-width=\"widths.maxWidth\"\n :column=\"column\"\n />\n </component>\n</template>\n"],"names":["_openBlock","_createBlock","_resolveDynamicComponent","_mergeProps","_normalizeClass","_createElementVNode","_withCtx","_createTextVNode","_toDisplayString","_createVNode","_createCommentVNode","_createElementBlock","_withModifiers"],"mappings":";;;;;;;;;;;;;;;;AA8TU,EAAA,OAAA,IAAA,CAAA,QAAA,CAAS,OAAA,IAAAA,aAAA,EAAA,EADjBC,gBA6DYC,2BAAA,CA1DL,IAAA,CAAA,SAAS,CAAA,EAHhBC,cAAA,CA6DY;AAAA,IAAA,GAAA,EAAA,CAAA;AAAA,IA3DV,GAAA,EAAI,QAAA;AAAA,IAEJ,QAAA,EAAS,IAAA;AAAA,IACT,IAAA,EAAK,MAAA;AAAA,IACJ,OAAO,IAAA,CAAA,SAAA;AAAA,IACP,OAAO,IAAA,CAAA;AAAA,GAAA,EACA,KAAA,QAAA,EAAQ;AAAA,IACf,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,KAAA,eAAA,CAAgB,IAAA,CAAA,MAAA,EAAQ,IAAA,YAAW,aAAa,CAAA;AAAA,GAAA,CAAA,EAAA;AAAA,yBAExD,MAyCY;AAAA,OAAAH,aAAA,IAzCZC,eAAA,CAyCYC,2BAAA,CAzCI,KAAA,OAAA,GAAO,KAAA,GAAW,IAAA,CAAA,UAAU,CAAA,EAAA;AAAA,QAAG,KAAA,EAAKE,kBAAA,CAAE,IAAA,CAAA,YAAY;AAAA,OAAA,EAAA;AAAA,6BAChE,MAUO;AAAA,UAVPC,sBAAA;AAAA,YAUO,MAAA;AAAA,YAAA;AAAA,cAVA,KAAA,EAAKD,kBAAA,CAAE,IAAA,CAAA,UAAU;AAAA,aAAA;AAAA;cACP,IAAA,CAAA,OAAO,MAAA,IAAU,IAAA,uCAAhCH,gBAOU,kBAAA,EAPVE,cAAA,CAOU,EAAA,GAAA,EAAA,CAAA,IAPiD,IAAA,CAAA,YAAA,EAAY,EAAG,iBAAA,EAAA,IAAA,CAAA,iBAAA,EAAiB,CAAA,EAAA;AAAA,gBAC9E,KAAA,EAAKG,YACd,MAAoB;AAAA,kBAAAC,mBAAA;AAAA,oBAAjBC,mBAAA,CAAA,IAAA,CAAA,UAAA,CAAW,GAAG,CAAA;AAAA,oBAAA;AAAA;AAAA;AAAA,iBAAA,CAAA;AAAA,qCAEnB,MAEM;AAAA,kBAFNH,uBAEM,KAAA,EAAA;AAAA,oBAFA,KAAA,EAAKD,kBAAA,IAAK,IAAA,CAAA,SAAS,CAAA,eAAA,CAAA,CAAA;AAAA,oBAAoB,UAAA,EAAU,KAAA,UAAA,CAAW;AAAA,mBAAA,EAAA;AAAA,oBAChEK,eAAA,CAA+C,iBAAA,EAA/CN,cAAA,CAA+C,EAAtC,QAAQ,IAAA,CAAA,MAAA,EAAM,EAAU,IAAA,CAAA,UAAU,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,QAAA,CAAA;AAAA,mBAAA,EAAA,IAAA,UAAA;AAAA;;;eAG/C,EAAA,EAAA,EAAA,CAAA,mBAAA,CAAA,MAAAH,aAAA,EAAA,EAAAC,eAAA,CAAsD,iBAAA,EAAtDE,cAAA,CAAsD;AAAA,gBAAA,GAAA,EAAA,CAAA;AAAA,gBAAtC,QAAQ,IAAA,CAAA;AAAA,eAAA,EAAgB,KAAA,UAAU,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,QAAA,CAAA,CAAA;AAAA,aAAA;AAAA;;;UAG5C,KAAA,UAAA,CAAW,UAAA,qBADnBF,gBAIE,yBAAA,EAAA;AAAA,YAAA,GAAA,EAAA,CAAA;AAAA,YAFC,YAAA,EAAU,CAAA,EAAK,IAAA,CAAA,SAAS,CAAA,OAAA,CAAA;AAAA,YACxB,QAAQ,IAAA,CAAA;AAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,QAAA,CAAA,CAAA,IAAAS,sBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,UAGH,KAAA,MAAA,CAAO,QAAA,IAAY,uBAAkB,SAAA,IAAAV,eAAA,EAD7CW,sBAAA;AAAA,YAuBO,MAAA;AAAA,YAAA;AAAA,cAAA,GAAA,EAAA,CAAA;AAAA,cArBJ,OAAKP,kBAAA,CAAA;AAAA,gBAAA,CAAA,EAAiB,KAAA,SAAS,CAAA,mBAAA,CAAA;AAAA,gBAAA,YAA6C,IAAA,CAAA,MAAA,CAAO,QAAA,IAAQ,CAAA,EAAO,KAAA,SAAS,CAAA,yBAAA;AAAA,eAAA,CAAA;AAAA,cAI3G,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,GAAAQ,iBAAA,CAAA,CAAA,WAAkB,IAAA,CAAA,gBAAA,CAAiB,IAAA,CAAA,iBAAA,CAAkB,WAAW,MAAA,EAAM;AAAA,gBAAA,MAAA,EAAwB,KAAA,MAAA,CAAO,YAAA;AAAA,gBAAA,QAAkC,IAAA,CAAA;AAAA,eAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA;;cAQrI,KAAA,iBAAA,CAAkB,QAAA,qBAD1BX,gBAQE,sBAAA,EAAA;AAAA,gBAAA,GAAA,EAAA,CAAA;AAAA,gBANC,KAAA,EAAoB,IAAA,mBAAkB,QAAA,CAAQ;AAAA,kBAAA,MAAA,EAAyB,KAAA,MAAA,CAAO,YAAA;AAAA,kBAAA,UAAuC,IAAA,CAAA;AAAA,iBAAA;AAAA,0DAOxHA,eAAA,CAAuB,uBAAA,EAAA,EAAA,GAAA,EAAA,GAAA,CAAA;AAAA,aAAA;AAAA;;;;;;;MAInB,IAAA,CAAA,oBAAA,IAAoB,EAAM,IAAA,CAAA,MAAA,CAAO,QAAA,IAAY,IAAA,CAAA,MAAA,CAAO,QAAA,CAAS,MAAA,CAAA,qBADrEA,gBAOE,qBAAA,EAAA;AAAA,QAAA,GAAA,EAAA,CAAA;AAAA,QALC,cAAY,IAAA,CAAA,SAAA;AAAA,QACZ,KAAA,EAAO,KAAA,MAAA,CAAO,KAAA;AAAA,QACd,WAAA,EAAW,KAAA,MAAA,CAAO,QAAA;AAAA,QAClB,WAAA,EAAW,KAAA,MAAA,CAAO,QAAA;AAAA,QAClB,QAAQ,IAAA,CAAA;AAAA,OAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,WAAA,EAAA,QAAA,CAAA,CAAA,IAAAS,sBAAA,CAAA,QAAA,IAAA;AAAA;;;;;;;;;"}
@@ -49,6 +49,12 @@ var _sfc_main = vue.defineComponent({
49
49
  const columnDragging = vue.computed(
50
50
  () => tableContext.draggingColumnKey.value === props.column.columnKey
51
51
  );
52
+ const mergeColumnResizable = vue.computed(
53
+ () => {
54
+ var _a;
55
+ return (_a = props.column.resizable) != null ? _a : tableContext.columnResizable.value;
56
+ }
57
+ );
52
58
  const autoHeight = vue.inject(constant.AUTO_HEADER_HEIGHT, false);
53
59
  const domRef = vue.ref();
54
60
  if (props.level === 1) {
@@ -232,6 +238,7 @@ var _sfc_main = vue.defineComponent({
232
238
  tableContext,
233
239
  sorterInfo,
234
240
  getPopupContainer,
241
+ mergeColumnResizable,
235
242
  handleSortClick: (column, nextSortOrder) => {
236
243
  if (!column.sorter) return;
237
244
  const sortState = {