pro-design-vue 1.3.19 → 1.3.21

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 (86) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +60 -32
  3. package/dist/index.full.min.js +8 -8
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +8 -8
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +60 -32
  8. package/es/components/config-provider/src/typing.d.ts +2 -1
  9. package/es/components/table/src/components/Body/Body.vue.d.ts +9 -0
  10. package/es/components/table/src/components/Body/BodyExtraCell.vue.d.ts +6 -1
  11. package/es/components/table/src/components/Body/BodyRow.vue.d.ts +9 -0
  12. package/es/components/table/src/components/Body/BodyRows.vue.d.ts +9 -0
  13. package/es/components/table/src/components/ExpandIcon.vue.d.ts +3 -0
  14. package/es/components/table/src/components/InteralTable.vue.d.ts +18 -0
  15. package/es/components/table/src/components/Table.d.ts +9 -0
  16. package/es/components/table/src/components/context/TableContext.d.ts +2 -1
  17. package/es/components/table/src/components/interface.d.ts +13 -0
  18. package/es/components/table/src/hooks/useContainer.d.ts +2 -0
  19. package/es/index.d.ts +15 -0
  20. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue.mjs +2 -1
  21. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue.mjs.map +1 -1
  22. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue2.mjs +1 -0
  23. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue2.mjs.map +1 -1
  24. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs +4 -2
  25. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
  26. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs +2 -0
  27. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
  28. package/es/packages/components/table/src/components/ExpandIcon.vue.mjs.map +1 -1
  29. package/es/packages/components/table/src/components/ExpandIcon.vue2.mjs +4 -2
  30. package/es/packages/components/table/src/components/ExpandIcon.vue2.mjs.map +1 -1
  31. package/es/packages/components/table/src/components/InteralTable.vue.mjs.map +1 -1
  32. package/es/packages/components/table/src/components/InteralTable.vue2.mjs +9 -2
  33. package/es/packages/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
  34. package/es/packages/components/table/src/components/Scrollbar/XScroll.mjs +10 -4
  35. package/es/packages/components/table/src/components/Scrollbar/XScroll.mjs.map +1 -1
  36. package/es/packages/components/table/src/components/Table.mjs +4 -2
  37. package/es/packages/components/table/src/components/Table.mjs.map +1 -1
  38. package/es/packages/components/table/src/components/context/TableContext.mjs.map +1 -1
  39. package/es/packages/components/table/src/components/interface.mjs +4 -0
  40. package/es/packages/components/table/src/components/interface.mjs.map +1 -1
  41. package/es/packages/components/table/src/hooks/useContainer.mjs +4 -0
  42. package/es/packages/components/table/src/hooks/useContainer.mjs.map +1 -1
  43. package/es/version.d.ts +1 -1
  44. package/es/version.mjs +1 -1
  45. package/es/version.mjs.map +1 -1
  46. package/lib/components/config-provider/src/typing.d.ts +2 -1
  47. package/lib/components/table/src/components/Body/Body.vue.d.ts +9 -0
  48. package/lib/components/table/src/components/Body/BodyExtraCell.vue.d.ts +6 -1
  49. package/lib/components/table/src/components/Body/BodyRow.vue.d.ts +9 -0
  50. package/lib/components/table/src/components/Body/BodyRows.vue.d.ts +9 -0
  51. package/lib/components/table/src/components/ExpandIcon.vue.d.ts +3 -0
  52. package/lib/components/table/src/components/InteralTable.vue.d.ts +18 -0
  53. package/lib/components/table/src/components/Table.d.ts +9 -0
  54. package/lib/components/table/src/components/context/TableContext.d.ts +2 -1
  55. package/lib/components/table/src/components/interface.d.ts +13 -0
  56. package/lib/components/table/src/hooks/useContainer.d.ts +2 -0
  57. package/lib/index.d.ts +15 -0
  58. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue.js +2 -1
  59. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue.js.map +1 -1
  60. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue2.js +1 -0
  61. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue2.js.map +1 -1
  62. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js +4 -2
  63. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
  64. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js +2 -0
  65. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
  66. package/lib/packages/components/table/src/components/ExpandIcon.vue.js.map +1 -1
  67. package/lib/packages/components/table/src/components/ExpandIcon.vue2.js +4 -2
  68. package/lib/packages/components/table/src/components/ExpandIcon.vue2.js.map +1 -1
  69. package/lib/packages/components/table/src/components/InteralTable.vue.js.map +1 -1
  70. package/lib/packages/components/table/src/components/InteralTable.vue2.js +9 -2
  71. package/lib/packages/components/table/src/components/InteralTable.vue2.js.map +1 -1
  72. package/lib/packages/components/table/src/components/Scrollbar/XScroll.js +10 -4
  73. package/lib/packages/components/table/src/components/Scrollbar/XScroll.js.map +1 -1
  74. package/lib/packages/components/table/src/components/Table.js +4 -2
  75. package/lib/packages/components/table/src/components/Table.js.map +1 -1
  76. package/lib/packages/components/table/src/components/context/TableContext.js.map +1 -1
  77. package/lib/packages/components/table/src/components/interface.js +4 -0
  78. package/lib/packages/components/table/src/components/interface.js.map +1 -1
  79. package/lib/packages/components/table/src/hooks/useContainer.js +7 -3
  80. package/lib/packages/components/table/src/hooks/useContainer.js.map +1 -1
  81. package/lib/version.d.ts +1 -1
  82. package/lib/version.js +1 -1
  83. package/lib/version.js.map +1 -1
  84. package/package.json +1 -1
  85. package/theme-chalk/index.css +1 -1
  86. package/theme-chalk/src/table/table.less +55 -24
@@ -151,6 +151,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
151
151
  type: import("vue").PropType<import("./interface").RenderExpandIcon<DefaultRecordType>>;
152
152
  default: undefined;
153
153
  };
154
+ expandIconType: {
155
+ type: import("vue").PropType<import("./interface").ExpandIconType>;
156
+ default: undefined;
157
+ };
154
158
  onExpand: {
155
159
  type: import("vue").PropType<(expanded: boolean, record: DefaultRecordType) => void>;
156
160
  default: undefined;
@@ -678,6 +682,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
678
682
  type: import("vue").PropType<import("./interface").RenderExpandIcon<DefaultRecordType>>;
679
683
  default: undefined;
680
684
  };
685
+ expandIconType: {
686
+ type: import("vue").PropType<import("./interface").ExpandIconType>;
687
+ default: undefined;
688
+ };
681
689
  onExpand: {
682
690
  type: import("vue").PropType<(expanded: boolean, record: DefaultRecordType) => void>;
683
691
  default: undefined;
@@ -1045,6 +1053,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1045
1053
  expandedRowRender: import("./interface").ExpandedRowRender<DefaultRecordType>;
1046
1054
  expandRowByClick: boolean;
1047
1055
  expandIcon: import("./interface").RenderExpandIcon<DefaultRecordType>;
1056
+ expandIconType: import("./interface").ExpandIconType;
1048
1057
  onExpand: (expanded: boolean, record: DefaultRecordType) => void;
1049
1058
  onExpandedRowsChange: (expandedKeys: Key[]) => void;
1050
1059
  defaultExpandAllRows: boolean;
@@ -16490,6 +16499,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
16490
16499
  expandIconColumnIndex: import("vue").ComputedRef<number>;
16491
16500
  indentSize: import("vue").ComputedRef<number>;
16492
16501
  expanded: import("vue").ComputedRef<boolean>;
16502
+ expandIconType: import("vue").ComputedRef<import("./interface").ExpandIconType>;
16493
16503
  onInternalTriggerExpand: (record: any, event: any) => void;
16494
16504
  customRowProps: import("vue").ComputedRef<(Omit<import("vue").HTMLAttributes, "style"> & {
16495
16505
  style?: import("vue").CSSProperties;
@@ -16551,6 +16561,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
16551
16561
  expandable: BooleanConstructor;
16552
16562
  disabled: BooleanConstructor;
16553
16563
  onExpand: FunctionConstructor;
16564
+ expandIconType: StringConstructor;
16554
16565
  }>, {
16555
16566
  handleClick: () => void;
16556
16567
  className: import("vue").ComputedRef<{
@@ -16565,6 +16576,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
16565
16576
  expandable: BooleanConstructor;
16566
16577
  disabled: BooleanConstructor;
16567
16578
  onExpand: FunctionConstructor;
16579
+ expandIconType: StringConstructor;
16568
16580
  }>> & Readonly<{
16569
16581
  onExpand?: ((...args: any[]) => any) | undefined;
16570
16582
  }> & {}>;
@@ -16575,6 +16587,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
16575
16587
  expandable: BooleanConstructor;
16576
16588
  disabled: BooleanConstructor;
16577
16589
  onExpand: FunctionConstructor;
16590
+ expandIconType: StringConstructor;
16578
16591
  }>> & Readonly<{
16579
16592
  onExpand?: ((...args: any[]) => any) | undefined;
16580
16593
  }>, {
@@ -18237,6 +18250,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
18237
18250
  type: (StringConstructor | NumberConstructor)[];
18238
18251
  };
18239
18252
  expanded: import("vue").PropType<boolean>;
18253
+ expandIconType: import("vue").PropType<import("./interface").ExpandIconType>;
18240
18254
  supportExpand: BooleanConstructor;
18241
18255
  }>, {
18242
18256
  handleRadioChange: (e: Event) => void;
@@ -18291,6 +18305,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
18291
18305
  type: (StringConstructor | NumberConstructor)[];
18292
18306
  };
18293
18307
  expanded: import("vue").PropType<boolean>;
18308
+ expandIconType: import("vue").PropType<import("./interface").ExpandIconType>;
18294
18309
  supportExpand: BooleanConstructor;
18295
18310
  }>> & Readonly<{}>, {
18296
18311
  column: import("./interface").FinallyColumnType<DefaultRecordType>;
@@ -18333,6 +18348,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
18333
18348
  expandable: BooleanConstructor;
18334
18349
  disabled: BooleanConstructor;
18335
18350
  onExpand: FunctionConstructor;
18351
+ expandIconType: StringConstructor;
18336
18352
  }>, {
18337
18353
  handleClick: () => void;
18338
18354
  className: import("vue").ComputedRef<{
@@ -18347,6 +18363,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
18347
18363
  expandable: BooleanConstructor;
18348
18364
  disabled: BooleanConstructor;
18349
18365
  onExpand: FunctionConstructor;
18366
+ expandIconType: StringConstructor;
18350
18367
  }>> & Readonly<{
18351
18368
  onExpand?: ((...args: any[]) => any) | undefined;
18352
18369
  }> & {}>;
@@ -18357,6 +18374,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
18357
18374
  expandable: BooleanConstructor;
18358
18375
  disabled: BooleanConstructor;
18359
18376
  onExpand: FunctionConstructor;
18377
+ expandIconType: StringConstructor;
18360
18378
  }>> & Readonly<{
18361
18379
  onExpand?: ((...args: any[]) => any) | undefined;
18362
18380
  }>, {
@@ -194,6 +194,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
194
194
  type: import("vue").PropType<import("./interface").RenderExpandIcon<import("./interface").DefaultRecordType>>;
195
195
  default: undefined;
196
196
  };
197
+ expandIconType: {
198
+ type: import("vue").PropType<import("./interface").ExpandIconType>;
199
+ default: undefined;
200
+ };
197
201
  onExpand: {
198
202
  type: import("vue").PropType<(expanded: boolean, record: import("./interface").DefaultRecordType) => void>;
199
203
  default: undefined;
@@ -689,6 +693,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
689
693
  type: import("vue").PropType<import("./interface").RenderExpandIcon<import("./interface").DefaultRecordType>>;
690
694
  default: undefined;
691
695
  };
696
+ expandIconType: {
697
+ type: import("vue").PropType<import("./interface").ExpandIconType>;
698
+ default: undefined;
699
+ };
692
700
  onExpand: {
693
701
  type: import("vue").PropType<(expanded: boolean, record: import("./interface").DefaultRecordType) => void>;
694
702
  default: undefined;
@@ -1090,6 +1098,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1090
1098
  expandedRowRender: import("./interface").ExpandedRowRender<import("./interface").DefaultRecordType>;
1091
1099
  expandRowByClick: boolean;
1092
1100
  expandIcon: import("./interface").RenderExpandIcon<import("./interface").DefaultRecordType>;
1101
+ expandIconType: import("./interface").ExpandIconType;
1093
1102
  onExpand: (expanded: boolean, record: import("./interface").DefaultRecordType) => void;
1094
1103
  onExpandedRowsChange: (expandedKeys: Key[]) => void;
1095
1104
  defaultExpandAllRows: boolean;
@@ -7,7 +7,7 @@ import type { FlattenRecordsType } from '../../hooks/useFlattenRecords';
7
7
  import type { FlattenAllRecordsType } from '../../hooks/useKVMap';
8
8
  import type { SelectionsRes } from '../../hooks/useRowSelection';
9
9
  import type { SortState } from '../../hooks/useSorter';
10
- import type { ColumnsType, DragColumnEventInfo, DragRowEventInfo, ExpandType, GetPopupContainer, GetRowKey, Key, Position, SummaryFixed, ProTableProps, TableLocale, TableRowSelection, TriggerEventHandler } from '../interface';
10
+ import type { ColumnsType, DragColumnEventInfo, DragRowEventInfo, ExpandType, GetPopupContainer, GetRowKey, Key, Position, SummaryFixed, ProTableProps, TableLocale, TableRowSelection, TriggerEventHandler, ExpandIconType } from '../interface';
11
11
  type PaginationPos = {
12
12
  bottom?: 'left' | 'right';
13
13
  top?: 'left' | 'right';
@@ -47,6 +47,7 @@ export interface TableContextProps extends CalType, UseColumnsType, FlattenRecor
47
47
  onTriggerExpand: TriggerEventHandler<any>;
48
48
  childrenColumnName: Ref<string>;
49
49
  expandType: Ref<ExpandType>;
50
+ expandIconType: ComputedRef<ExpandIconType>;
50
51
  supportSticky: boolean;
51
52
  mergedRowSelection: Ref<TableRowSelection>;
52
53
  getPopupContainer: Ref<GetPopupContainer>;
@@ -133,6 +133,7 @@ export interface RenderExpandIconProps<RecordType> {
133
133
  onExpand: TriggerEventHandler<RecordType>;
134
134
  }
135
135
  export type RenderExpandIcon<RecordType> = (props: RenderExpandIconProps<RecordType>) => any;
136
+ export type ExpandIconType = 'default' | 'arrow';
136
137
  export type SelectionItemSelectFn = (currentRowKeys: Key[]) => void;
137
138
  export interface SelectionItem {
138
139
  key: string;
@@ -290,6 +291,10 @@ export declare const baseTableProps: <T = DefaultRecordType>() => {
290
291
  type: PropType<RenderExpandIcon<T>>;
291
292
  default: undefined;
292
293
  };
294
+ expandIconType: {
295
+ type: PropType<ExpandIconType>;
296
+ default: undefined;
297
+ };
293
298
  onExpand: {
294
299
  type: PropType<(expanded: boolean, record: T) => void>;
295
300
  default: undefined;
@@ -680,6 +685,10 @@ export declare const tableProps: <T = DefaultRecordType>() => {
680
685
  type: PropType<RenderExpandIcon<T>>;
681
686
  default: undefined;
682
687
  };
688
+ expandIconType: {
689
+ type: PropType<ExpandIconType>;
690
+ default: undefined;
691
+ };
683
692
  onExpand: {
684
693
  type: PropType<(expanded: boolean, record: T) => void>;
685
694
  default: undefined;
@@ -1173,6 +1182,10 @@ declare class Helper<T extends DefaultRecordType> {
1173
1182
  type: PropType<RenderExpandIcon<T>>;
1174
1183
  default: undefined;
1175
1184
  };
1185
+ expandIconType: {
1186
+ type: PropType<ExpandIconType>;
1187
+ default: undefined;
1188
+ };
1176
1189
  onExpand: {
1177
1190
  type: PropType<(expanded: boolean, record: T) => void>;
1178
1191
  default: undefined;
@@ -4,6 +4,8 @@ export type ContainerContextProps = {
4
4
  props: ProTableProps;
5
5
  tableSize: Ref<DensitySize>;
6
6
  hasFullScreen: Ref<boolean>;
7
+ scrollViewportHeight: Ref<number>;
8
+ setScrollViewportHeight: (val: number) => void;
7
9
  setTableSize: (val: DensitySize) => void;
8
10
  sortKeyColumns: Ref<string[]>;
9
11
  setSortKeyColumns: (keys: string[]) => void;
package/es/index.d.ts CHANGED
@@ -1954,6 +1954,10 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
1954
1954
  type: PropType<RenderExpandIcon<DefaultRecordType>>;
1955
1955
  default: undefined;
1956
1956
  };
1957
+ expandIconType: {
1958
+ type: PropType<ExpandIconType>;
1959
+ default: undefined;
1960
+ };
1957
1961
  onExpand: {
1958
1962
  type: PropType<(expanded: boolean, record: DefaultRecordType) => void>;
1959
1963
  default: undefined;
@@ -2449,6 +2453,10 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
2449
2453
  type: PropType<RenderExpandIcon<DefaultRecordType>>;
2450
2454
  default: undefined;
2451
2455
  };
2456
+ expandIconType: {
2457
+ type: PropType<ExpandIconType>;
2458
+ default: undefined;
2459
+ };
2452
2460
  onExpand: {
2453
2461
  type: PropType<(expanded: boolean, record: DefaultRecordType) => void>;
2454
2462
  default: undefined;
@@ -2850,6 +2858,7 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
2850
2858
  expandedRowRender: ExpandedRowRender<DefaultRecordType>;
2851
2859
  expandRowByClick: boolean;
2852
2860
  expandIcon: RenderExpandIcon<DefaultRecordType>;
2861
+ expandIconType: ExpandIconType;
2853
2862
  onExpand: (expanded: boolean, record: DefaultRecordType) => void;
2854
2863
  onExpandedRowsChange: (expandedKeys: ProTableKey[]) => void;
2855
2864
  defaultExpandAllRows: boolean;
@@ -5137,6 +5146,7 @@ declare type ExpandedRowRender<ValueType> = (opt: {
5137
5146
  indent: number;
5138
5147
  expanded: boolean;
5139
5148
  }) => any;
5149
+ declare type ExpandIconType = "default" | "arrow";
5140
5150
  export declare type ExtraSItemType = {
5141
5151
  className?: string;
5142
5152
  customUi?: boolean;
@@ -5644,6 +5654,10 @@ declare class Helper<T extends DefaultRecordType> {
5644
5654
  type: PropType<RenderExpandIcon<T>>;
5645
5655
  default: undefined;
5646
5656
  };
5657
+ expandIconType: {
5658
+ type: PropType<ExpandIconType>;
5659
+ default: undefined;
5660
+ };
5647
5661
  onExpand: {
5648
5662
  type: PropType<(expanded: boolean, record: T) => void>;
5649
5663
  default: undefined;
@@ -6376,6 +6390,7 @@ export declare interface ProConfigProviderProps extends Omit<ConfigProviderProps
6376
6390
  expandRowByClick?: boolean;
6377
6391
  rowKey?: string;
6378
6392
  size?: ProTableDensitySize;
6393
+ expandIconType?: ExpandIconType;
6379
6394
  rowHover?: boolean;
6380
6395
  summaryFixed?: boolean;
6381
6396
  columnEmptyText?: string;
@@ -56,11 +56,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
56
56
  key: 1,
57
57
  "prefix-cls": _ctx.prefixCls,
58
58
  expandable: "",
59
+ expandIconType: _ctx.expandIconType,
59
60
  expanded: _ctx.expanded,
60
61
  record: _ctx.record,
61
62
  disabled: !_ctx.supportExpand,
62
63
  onExpand: _ctx.onInternalTriggerExpand
63
- }, null, 8, ["prefix-cls", "expanded", "record", "disabled", "onExpand"])) : _ctx.column.type === "draggable" ? (openBlock(), createElementBlock("div", _hoisted_2, [
64
+ }, null, 8, ["prefix-cls", "expandIconType", "expanded", "record", "disabled", "onExpand"])) : _ctx.column.type === "draggable" ? (openBlock(), createElementBlock("div", _hoisted_2, [
64
65
  renderSlot(_ctx.$slots, "draggable-handle", {}, () => [
65
66
  createVNode(_component_MenuOutlined)
66
67
  ])
@@ -1 +1 @@
1
- {"version":3,"file":"BodyExtraCell.vue.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2023-12-22 10:31:47\n * @Description: \n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_mergeProps","_withModifiers","_openBlock","_Fragment","_createBlock","_renderSlot","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"BodyExtraCell.vue.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-11-26 14:32:53\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n ExpandIconType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n expandIconType: String as PropType<ExpandIconType>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expandIconType=\"expandIconType\"\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_mergeProps","_withModifiers","_openBlock","_Fragment","_createBlock","_renderSlot","_createVNode"],"mappings":"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"}
@@ -21,6 +21,7 @@ var _sfc_main = defineComponent({
21
21
  record: { type: Object },
22
22
  rowKey: { type: [Number, String] },
23
23
  expanded: Boolean,
24
+ expandIconType: String,
24
25
  supportExpand: Boolean
25
26
  },
26
27
  setup(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"BodyExtraCell.vue2.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2023-12-22 10:31:47\n * @Description: \n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BodyExtraCell.vue2.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-11-26 14:32:53\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n ExpandIconType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n expandIconType: String as PropType<ExpandIconType>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expandIconType=\"expandIconType\"\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;AAgCA,gBAAe,eAAA,CAAgB;AAAA,EAC7B,IAAA,EAAM,eAAA;AAAA,EACN,UAAA,EAAY,EAAE,QAAA,EAAU,KAAA,EAAO,YAAY,YAAA,EAAa;AAAA,EACxD,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,MAAA;AAAA,IACX,QAAA,EAAU,EAAE,IAAA,EAAM,MAAA,EAAQ,UAAU,IAAA,EAAK;AAAA,IACzC,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,EAA4B;AAAA,IAC1C,QAAQ,EAAE,IAAA,EAAM,QAA0D,OAAA,EAAS,OAAO,EAAC,CAAA,EAAG;AAAA,IAC9F,MAAA,EAAQ,EAAE,IAAA,EAAM,MAAA,EAAsC;AAAA,IACtD,QAAQ,EAAE,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA,EAAE;AAAA,IACjC,QAAA,EAAU,OAAA;AAAA,IACV,cAAA,EAAgB,MAAA;AAAA,IAChB,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,MAAM,KAAA,EAAO;AACX,IAAA,MAAM,eAAe,cAAA,EAAe;AACpC,IAAA,MAAM,QAAQ,cAAA,EAAe;AAC7B,IAAA,MAAM,gBAAA,GAAmB,QAAA;AAAA,MACvB,MAAM,YAAA,CAAa,kBAAA,CAAmB,KAAA,CAAM;AAAA,KAC9C;AACA,IAAA,MAAM,SAAS,QAAA,CAAmB,MAAM,YAAA,CAAa,SAAA,CAAU,sBAAsB,KAAK,CAAA;AAC1F,IAAA,MAAM,OAAA,GAAU,IAAI,KAAK,CAAA;AACzB,IAAA,MAAM,mBAAA,GAAsB,IAAI,KAAK,CAAA;AACrC,IAAA,MAAM,aAAA,GAAgB,QAAA;AAAA,MACpB,MAAM,YAAA,CAAa,gBAAA,CAAiB,KAAA,CAAM,GAAA,CAAI,MAAM,MAAO;AAAA,KAC7D;AACA,IAAA,MAAM,EAAE,qBAAA,EAAsB,GAAI,aAAA,EAAc;AAChD,IAAA,MAAM,YAAA,GAAe,QAAA;AAAA,MACnB,MAAG;;AAAG,QAAA,OAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,YAAA,CAAa,YAAA,CAAa,KAAA,CAAM,KAAA,CAAM,MAAO,CAAA,KAA7C,mBAAiD,KAAA,CAAM,MAAA,CAAO,SAAA,CAAA,KAA9D,IAAA,GAAA,EAAA,GAA4E,EAAC;AAAA,MAAA;AAAA,KACrF;AAEA,IAAA,WAAA,CAAY,MAAM;;AAChB,MAAA,MAAM;AAAA,QACJ,SAAA,EAAW,EAAE,yBAAA,EAA0B;AAAA,QACvC;AAAA,OACF,GAAI,YAAA;AACJ,MAAA,OAAA,CAAQ,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,GAAA,CAAI,MAAM,MAAO,CAAA;AAC9C,MAAA,MAAM,YAAA,GAAe,yBAAA,CAA0B,KAAA,CAAM,GAAA,CAAI,MAAM,MAAO,CAAA;AACtE,MAAA,IAAI,UAAA,CAAW,UAAU,MAAA,EAAQ;AAC/B,QAAA,mBAAA,CAAoB,KAAA,GAAQ,YAAA;AAC5B,QAAA,UAAA;AAAA,UACE,QAAA,CAAO,EAAA,GAAA,aAAA,CAAc,KAAA,KAAd,IAAA,GAAA,MAAA,GAAA,EAAA,CAAqB,aAAA,CAAA,KAAkB,SAAA;AAAA,UAC9C,OAAA;AAAA,UACA;AAAA,SACF;AAAA,MACF,CAAA,MAAO;AACL,QAAA,mBAAA,CAAoB,KAAA,GAAA,CAAQ,EAAA,GAAA,CAAA,EAAA,GAAA,aAAA,CAAc,KAAA,KAAd,IAAA,GAAA,MAAA,GAAA,EAAA,CAAqB,kBAArB,IAAA,GAAA,EAAA,GAAsC,YAAA;AAAA,MACpE;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,eAAA,GAAkB,SAAmB,MAAM;;AAC/C,MAAA,MAAM,EAAE,QAAO,GAAI,KAAA;AACnB,MAAA,OAAO;AAAA,QACL,GAAG,aAAa,KAAA,CAAM,KAAA;AAAA,QACtB,KAAA,EAAO;AAAA,UACL,KAAI,EAAA,GAAA,CAAA,EAAA,GAAA,YAAA,CAAa,KAAA,KAAb,mBAAoB,KAAA,KAApB,IAAA,GAAA,MAAA,GAAA,EAAA,CAA2B,UAAS,EAAC;AAAA,UACzC,KAAA,EAAO,CAAA,EAAG,MAAA,CAAO,YAAA,IAAgB,CAAC,CAAA,EAAA;AAAA;AACpC,OACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,gBAAA,GAAmB,SAAS,OAAO;AAAA,MACvC,QAAQ,KAAA,CAAM,MAAA;AAAA,MACd,MAAA,EAAQ,MAAM,MAAA,CAAO,YAAA;AAAA,MACrB,OAAO,KAAA,CAAM,QAAA;AAAA,MACb,YAAA,EAAc,YAAA,CAAa,cAAA,CAAe,KAAA,CAAM,MAAO,CAAA;AAAA,MACvD,KAAK,KAAA,CAAM;AAAA,KACb,CAAE,CAAA;AAEF,IAAA,OAAO;AAAA,MACL,iBAAA,EAAmB,CAAC,CAAA,KAAa;AAC/B,QAAA,IAAI,EAAE,OAAA,CAAQ,KAAA,IAAS,CAAC,YAAA,CAAa,kBAAA,CAAmB,MAAM,gBAAA,CAAA,EAAmB;AAC/E,UAAA,YAAA,CAAa,SAAA,CAAU,sBAAA;AAAA,YACrB,KAAA,CAAM,MAAA;AAAA,YACN,CAAC,OAAA,CAAQ,KAAA;AAAA,YACT,QAAQ,KAAA,GAAQ,EAAC,GAAI,CAAC,MAAM,MAAO,CAAA;AAAA,YACnC;AAAA,WACF;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,oBAAA,EAAsB,CAAC,KAAA,KAAiB;AACtC,QAAA,MAAM,EAAE,UAAS,GAAI,KAAA;AACrB,QAAA,MAAM;AAAA,UACJ,SAAA,EAAW;AAAA,YACT,eAAA;AAAA,YACA,kBAAA;AAAA,YACA,eAAA;AAAA,YACA,sBAAA;AAAA,YACA,kBAAA;AAAA,YACA,mBAAA;AAAA,YACA,kBAAA;AAAA,YACA,aAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,cAAA;AAAA,UACA,qBAAA;AAAA,UACA;AAAA,SACF,GAAI,YAAA;AACJ,QAAA,MAAM,EAAE,aAAA,EAAe,gBAAA,EAAiB,GAAI,kBAAA,CAAmB,KAAA;AAC/D,QAAA,MAAM,gBAAgB,KAAA,CAAM,MAAA;AAC5B,QAAA,IAAI,eAAA,GAAkB,EAAA;AACtB,QAAA,IAAI,aAAA,GAAgB,EAAA;AACpB,QAAA,MAAM,gBAAgB,qBAAA,CAAsB,KAAA;AAC5C,QAAA,IAAI,YAAY,aAAA,EAAe;AAC7B,UAAA,MAAM,4BAAY,IAAI,GAAA,CAAI,CAAC,eAAA,CAAgB,KAAA,EAAO,aAAa,CAAC,CAAA;AAChE,UAAA,aAAA,CAAc,IAAA,CAAK,CAAC,MAAA,EAAQ,KAAA,KAAU;AACpC,YAAA,IAAI,SAAA,CAAU,GAAA,CAAI,MAAM,CAAA,EAAG;AACzB,cAAA,IAAI,oBAAoB,EAAA,EAAI;AAC1B,gBAAA,aAAA,GAAgB,KAAA;AAChB,gBAAA,OAAO,IAAA;AAAA,cACT;AACA,cAAA,eAAA,GAAkB,KAAA;AAAA,YACpB;AACA,YAAA,OAAO,KAAA;AAAA,UACT,CAAC,CAAA;AAAA,QACH;AACA,QAAA,IAAI,aAAA,KAAkB,EAAA,IAAM,eAAA,KAAoB,aAAA,IAAiB,aAAA,EAAe;AAC9E,UAAA,MAAM,mBAAA,GAAsB,aAAA,CAAc,KAAA,CAAM,eAAA,EAAiB,gBAAgB,CAAC,CAAA;AAClF,UAAA,MAAM,gBAAuB,EAAC;AAC9B,UAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,YAAA,mBAAA,CAAoB,OAAA,CAAQ,CAAC,MAAA,KAAW;AACtC,cAAA,IAAI,MAAA,CAAO,KAAA,CAAM,GAAA,CAAI,MAAM,CAAA,EAAG;AAC5B,gBAAA,aAAA,CAAc,KAAK,MAAM,CAAA;AACzB,gBAAA,MAAA,CAAO,KAAA,CAAM,OAAO,MAAM,CAAA;AAAA,cAC5B;AAAA,YACF,CAAC,CAAA;AAAA,UACH,CAAA,MAAO;AACL,YAAA,mBAAA,CAAoB,OAAA,CAAQ,CAAC,MAAA,KAAW;AACtC,cAAA,IAAI,CAAC,MAAA,CAAO,KAAA,CAAM,GAAA,CAAI,MAAM,CAAA,EAAG;AAC7B,gBAAA,aAAA,CAAc,KAAK,MAAM,CAAA;AACzB,gBAAA,MAAA,CAAO,KAAA,CAAM,IAAI,MAAM,CAAA;AAAA,cACzB;AAAA,YACF,CAAC,CAAA;AAAA,UACH;AACA,UAAA,MAAM,YAAA,GAAe,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,KAAK,CAAA;AAC5C,UAAA,gBAAA,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA;AAAA,YACE,CAAC,OAAA,CAAQ,KAAA;AAAA,YACT,aAAa,GAAA,CAAI,CAAC,MAAA,KAAW,cAAA,CAAe,MAAM,CAAC,CAAA;AAAA,YACnD,cAAc,GAAA,CAAI,CAAC,MAAA,KAAW,cAAA,CAAe,MAAM,CAAC;AAAA,WAAA;AAEtD,UAAA,eAAA,CAAgB,YAAY,CAAA;AAAA,QAC9B,CAAA,MAAO;AACL,UAAA,MAAM,kBAAkB,mBAAA,CAAoB,KAAA;AAC5C,UAAA,IAAI,aAAA,EAAe;AACjB,YAAA,IAAI,OAAc,EAAC;AACnB,YAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,cAAA,IAAA,GAAO,MAAA,CAAO,iBAAiB,aAAc,CAAA;AAAA,YAC/C,CAAA,MAAO;AACL,cAAA,IAAA,GAAO,MAAA,CAAO,iBAAiB,aAAc,CAAA;AAAA,YAC/C;AACA,YAAA,sBAAA,CAAuB,aAAA,EAAgB,CAAC,OAAA,CAAQ,KAAA,EAAO,MAAM,KAAK,CAAA;AAAA,UACpE,CAAA,MAAO;AACL,YAAA,MAAM,EAAE,WAAA,EAAa,eAAA,EAAgB,GAAI,YAAA;AAAA,cACvC,CAAC,GAAG,eAAA,EAAiB,aAAc,CAAA;AAAA,cACnC,IAAA;AAAA,cACA,WAAA,CAAY,KAAA;AAAA,cACZ,aAAA,CAAc,KAAA;AAAA,cACd,QAAA,CAAS,KAAA;AAAA,cACT;AAAA,aACF;AACA,YAAA,IAAI,cAAA,GAAiB,WAAA;AACrB,YAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,cAAA,MAAM,cAAA,GAAiB,IAAI,GAAA,CAAI,WAAW,CAAA;AAC1C,cAAA,cAAA,CAAe,OAAO,aAAc,CAAA;AACpC,cAAA,cAAA,GAAiB,YAAA;AAAA,gBACf,KAAA,CAAM,KAAK,cAAc,CAAA;AAAA,gBACzB,EAAkB,eAAA,EAAgB;AAAA,gBAClC,WAAA,CAAY,KAAA;AAAA,gBACZ,aAAA,CAAc,KAAA;AAAA,gBACd,QAAA,CAAS,KAAA;AAAA,gBACT;AAAA,eACF,CAAE,WAAA;AAAA,YACJ;AACA,YAAA,sBAAA,CAAuB,aAAA,EAAgB,CAAC,OAAA,CAAQ,KAAA,EAAO,gBAAgB,KAAK,CAAA;AAAA,UAC9E;AAAA,QACF;AACA,QAAA,kBAAA,CAAmB,aAAc,CAAA;AAAA,MACnC,CAAA;AAAA,MACA,uBAAA,EAAyB,CAAC,MAAA,EAA2B,CAAA,KAAkB;AACrE,QAAA,YAAA,CAAa,eAAA,CAAgB,MAAA,EAAQ,KAAA,CAAM,MAAA,EAAS,CAAC,CAAA;AAAA,MACvD,CAAA;AAAA,MACA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAA;AAAA,MACA,mBAAA;AAAA,MACA,aAAA;AAAA,MACA,eAAA;AAAA,MACA,qBAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF,CAAC,CAAA;;;;"}
@@ -63,11 +63,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
63
63
  type: _ctx.type,
64
64
  column: (_a = _ctx.mergedColumns) == null ? void 0 : _a[index],
65
65
  expanded: _ctx.expanded,
66
+ expandIconType: _ctx.expandIconType,
66
67
  "support-expand": _ctx.mergedExpandable,
67
68
  record: _ctx.record,
68
69
  onMouseenter: ($event) => _ctx.handleCellHover(_ctx.rowKey, column.columnKey, _ctx.tableContext.draggingRowKey.value),
69
70
  onMouseleave: _ctx.handleCellBlur
70
- }, null, 8, ["prefix-cls", "row-key", "row-index", "type", "column", "expanded", "support-expand", "record", "onMouseenter", "onMouseleave"])) : column ? (openBlock(), createBlock(_component_BodyCell, {
71
+ }, null, 8, ["prefix-cls", "row-key", "row-index", "type", "column", "expanded", "expandIconType", "support-expand", "record", "onMouseenter", "onMouseleave"])) : column ? (openBlock(), createBlock(_component_BodyCell, {
71
72
  key: 1,
72
73
  "prefix-cls": _ctx.prefixCls,
73
74
  item: _ctx.record,
@@ -112,12 +113,13 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
112
113
  ),
113
114
  createVNode(_component_ExpandIcon, {
114
115
  expanded: _ctx.expanded,
116
+ expandIconType: _ctx.expandIconType,
115
117
  "prefix-cls": _ctx.prefixCls,
116
118
  expandable: _ctx.hasNestChildren,
117
119
  record: _ctx.record,
118
120
  disabled: !_ctx.mergedExpandable,
119
121
  onExpand: _ctx.onInternalTriggerExpand
120
- }, null, 8, ["expanded", "prefix-cls", "expandable", "record", "disabled", "onExpand"])
122
+ }, null, 8, ["expanded", "expandIconType", "prefix-cls", "expandable", "record", "disabled", "onExpand"])
121
123
  ],
122
124
  2
123
125
  /* CLASS */
@@ -1 +1 @@
1
- {"version":3,"file":"BodyRow.vue.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyRow.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-10-20 15:34:32\n * @Description:\n-->\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n onBeforeUnmount,\n computed,\n nextTick,\n watchEffect,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRows, useProvideBodyRow } from '../context/BodyRowsContext'\nimport { ExpandColumnKey } from '../../hooks/useColumns'\nimport { RenderSlot } from '../../utils/renderVNode'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { useCellSelection } from '../../hooks/useCellSelection'\nimport { useCellKeyboard } from '../../hooks/useCellKeyboard'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport eagerComputed from '../../utils/eagerComputed'\nimport classNames from '../../utils/classNames'\nimport BodyCell from './BodyCell'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { CSSProperties, PropType } from 'vue'\nimport type { RowClassName, RowType, Key } from '../interface'\n\nlet uniIdCount = 0\nexport default defineComponent({\n name: 'ProTableBodyRow',\n components: {\n ExpandIcon,\n BodyCell,\n ExpandedRow,\n BodyExtraCell,\n RenderSlot,\n },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n isExpandRow: Boolean as PropType<boolean>,\n record: { type: Object },\n type: { type: String as PropType<RowType> },\n rowKey: { type: [Number, String] as PropType<Key>, required: true },\n supportExpand: Boolean,\n pos: Number as PropType<number>,\n rowIndex: Number as PropType<number>,\n flattenRowIndex: Number,\n indent: Number as PropType<number>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n getRowClassName: { type: Function as PropType<RowClassName<any>> },\n },\n setup(props) {\n const rowUniId = 'row_uni_id_' + uniIdCount++\n const tableContext = useInjectTable()\n const rowInstance = getCurrentInstance()\n const { table } = useProConfigInject()\n const { editCellKeys, closeEditor, openEditor } = useEditInject()\n\n let isUnmount = false\n const bodyRow = ref()\n\n const { onCellMousedown, onCellMousemove, onCellClick } = useCellSelection()\n const { onCellKeydown } = useCellKeyboard()\n\n const calMaxHeight = () => {\n if (isUnmount) return\n let rowHeight = 0\n let autoCells: HTMLDivElement[] = []\n if (bodyRow.value) {\n autoCells = bodyRow.value.querySelectorAll('div[data-cell-auto=true]')\n }\n autoCells.forEach((autoCell: HTMLDivElement) => {\n const { offsetWidth, offsetHeight } = autoCell\n let autoCellHeight = offsetWidth ? offsetHeight : 0\n const parentStyle = getComputedStyle(autoCell.parentNode as Element)\n autoCellHeight +=\n parseFloat(parentStyle.getPropertyValue('border-top-width')) +\n parseFloat(parentStyle.getPropertyValue('border-bottom-width'))\n rowHeight = rowHeight > autoCellHeight ? rowHeight : autoCellHeight\n })\n if (autoCells.length) {\n tableContext.addRowHeight(rowUniId, props.rowKey!, rowHeight)\n } else {\n tableContext.removeRowHeight(rowUniId)\n }\n }\n\n watch(\n () => props.rowKey,\n () => {\n calMaxHeight()\n },\n { flush: 'post' },\n )\n\n const resizeObserver: ResizeObserver = new ResizeObserver(() => {\n calMaxHeight()\n })\n\n const { columns, columnStartIndex } = useInjectBodyRows()\n const mergedColumns = computed(() =>\n (props.type === 'center'\n ? tableContext.centerRowColumnsMap.value.get(props.rowKey)\n : columns.value)!.filter((item) => !!item),\n )\n\n const { tooltipOpen, leftPopupContainer, centerPopupContainer, rightPopupContainer } =\n useInjectBody()\n const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey, rowHover } =\n useInjectHover()\n\n const popupContainer = computed(() =>\n props.type === 'left'\n ? leftPopupContainer.value\n : props.type === 'center'\n ? centerPopupContainer.value\n : props.type === 'right'\n ? rightPopupContainer.value\n : null,\n )\n\n const isDragging = eagerComputed(() => tableContext.draggingRowKey.value === props.rowKey)\n const isRowHover = eagerComputed(() => hoverRowKey.value === props.rowKey)\n\n watch(\n [isRowHover, bodyRow],\n () => {\n bodyRow.value &&\n rowHover.value &&\n (isRowHover.value\n ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`)\n : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`))\n },\n { immediate: true, flush: 'post' },\n )\n\n const mergedTooltipOpen = eagerComputed(() => tooltipOpen.value && isRowHover.value)\n\n let timer: any\n onBeforeUnmount(() => {\n isUnmount = true\n resizeObserver.disconnect()\n clearTimeout(timer)\n tableContext.removeRowHeight(rowUniId)\n })\n\n const hasMultiRowSpanInfo = eagerComputed(() => {\n return !tableContext.hasMultiRowSpanInfo.value[props.rowKey!]\n })\n\n const customRowProps = computed(() => {\n return tableContext.props.customRow?.(props.record!, props.rowIndex)\n })\n\n const rowSelectionType = computed(() => {\n return tableContext.props.rowSelection?.type\n })\n\n const isExpanded = ref(false)\n const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value)\n const expanded = eagerComputed(() => expandedRowKeys.value.has?.(props.rowKey!))\n const expandIconColumnIndex = computed(() => tableContext.expandIconColumnIndex.value || 0)\n const indentSize = computed(() => tableContext.indentSize.value)\n\n watchEffect(() => {\n if (expanded.value) {\n isExpanded.value = true\n }\n })\n\n const rowExpandable = computed(\n () =>\n tableContext.expandType.value === 'row' &&\n tableContext.props.rowExpandable?.(props.record!),\n )\n\n const nestExpandable = computed(() => tableContext.expandType.value === 'nest')\n\n const hasNestChildren = computed(\n () =>\n !!(\n tableContext.childrenColumnName.value &&\n props.record?.[tableContext.childrenColumnName.value]?.length\n ),\n )\n const mergedExpandable = computed(() => rowExpandable.value || nestExpandable.value)\n\n const onInternalTriggerExpand = (record: any, event: any) => {\n tableContext.onTriggerExpand(record, props.rowKey!, event)\n }\n\n const mergedRowHeights = computed(() => tableContext.mergedRowHeights.value)\n\n const height = eagerComputed(() => mergedRowHeights.value[props.rowKey!])\n const cellHeight = eagerComputed(() => tableContext.rowHeights.value[props.rowKey!])\n\n const isSelected = computed(() => {\n const highlightSelectRow =\n tableContext.props.highlightSelectRow ?? table?.value?.highlightSelectRow\n return (\n highlightSelectRow && tableContext.selection.derivedSelectedKeySet.value.has(props.rowKey!)\n )\n })\n\n const rowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n const isEven = rowIndex! % 2 == 0\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-row-level-${indent}`]: true,\n [`${prefixCls}-row-hover`]: isRowHover.value && rowHover.value,\n [`${prefixCls}-row-dragging`]: isDragging.value,\n [`${prefixCls}-row-dragging-insert-target`]:\n tableContext.insertToRowKey.value === props.rowKey,\n [`${prefixCls}-row-odd`]: !isEven,\n [`${prefixCls}-row-even`]: isEven,\n [`${prefixCls}-no-height`]: !height.value,\n [`${prefixCls}-row-selected`]: isSelected.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandRowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-expanded-row`]: true,\n [`${prefixCls}-expanded-row-level-${indent! + 1}`]: true,\n [`${prefixCls}-no-height`]: !height.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandColumnWidth = eagerComputed(() => {\n return tableContext.allCellProps.value[props.rowKey!]?.[ExpandColumnKey]?.props?.style?.width\n })\n\n const rowStyle = computed<CSSProperties>(() => {\n const style: CSSProperties = {\n opacity: 1,\n [`--${props.prefixCls}-row-bg`]: `var(--${props.prefixCls}-row-bg-${props.rowKey}, var(--${props.prefixCls}-bg))`,\n }\n if (hasMultiRowSpanInfo.value) {\n style.transform = `translateY(${props.pos}px)`\n } else {\n style.top = `${props.pos}px`\n }\n if (height.value !== undefined) {\n style.height = `${height.value}px`\n } else {\n style.height = `${tableContext.baseHeight.value}px`\n }\n if (props.isExpandRow && columnStartIndex.value === 0) {\n style.width = expandColumnWidth.value\n style.minWidth = '100%'\n }\n return style\n })\n\n watch(\n () => ({ ...rowStyle.value }),\n (newStyle, oldStyle = {}) => {\n if (tableContext.animateRows.value && !tableContext.useAnimate.value) {\n if (\n newStyle.top !== oldStyle.top ||\n newStyle.height !== oldStyle.height ||\n newStyle.transform !== oldStyle.transform\n ) {\n nextTick(() => {\n clearTimeout(timer)\n if (rowInstance?.vnode.el && rowInstance.vnode.el.style) {\n rowInstance.vnode.el.style.transition = 'none'\n timer = setTimeout(() => {\n if (rowInstance?.vnode?.el?.style) {\n rowInstance.vnode.el.style.transition = null\n }\n }, 100)\n }\n })\n }\n }\n },\n { immediate: true },\n )\n\n useProvideBodyRow({\n top: computed(() => props.pos!),\n height: computed(() =>\n height.value !== undefined ? height.value : tableContext.baseHeight.value,\n ),\n rowKey: computed(() => props.rowKey),\n })\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-position-absolute`]: true,\n }))\n\n return {\n rowClass,\n rowStyle,\n cellClass,\n tableContext,\n mergedRowHeights,\n handleCellBlur,\n handleCellHover,\n handleClick: (event: any) => {\n const expandRowByClick =\n tableContext.props.expandRowByClick ?? table?.value?.expandRowByClick\n expandRowByClick && mergedExpandable.value && onInternalTriggerExpand(props.record, event)\n },\n rowSelectionType,\n nestExpandable,\n hasNestChildren,\n mergedExpandable,\n expandIconColumnIndex,\n indentSize,\n expanded,\n onInternalTriggerExpand,\n customRowProps,\n expandColumnKey: ExpandColumnKey,\n expandRowClass,\n mergedColumns,\n height,\n cellHeight,\n columnStartIndex,\n resizeObserver,\n calMaxHeight,\n bodyRow,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n editCellKeys,\n closeEditor,\n openEditor,\n mergedTooltipOpen,\n onCellMousedown,\n onCellKeydown,\n onCellMousemove,\n onCellClick,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isExpandRow\">\n <div\n v-if=\"columnStartIndex === 0\"\n ref=\"bodyRow\"\n :data-row-key=\"rowKey\"\n :class=\"expandRowClass\"\n :style=\"rowStyle\"\n role=\"row\"\n >\n <ExpandedRow\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n />\n </div>\n </template>\n <div\n v-else\n v-bind=\"customRowProps\"\n ref=\"bodyRow\"\n :class=\"rowClass\"\n :style=\"rowStyle\"\n :data-row-key=\"rowKey\"\n role=\"row\"\n @click=\"handleClick\"\n >\n <RenderSlot>\n <template v-for=\"(column, index) in mergedColumns\" :key=\"column && column.columnKey\">\n <BodyExtraCell\n v-if=\"column && column.__Internal__Column__\"\n :prefix-cls=\"prefixCls\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex!\"\n :type=\"type\"\n :column=\"mergedColumns?.[index]\"\n :expanded=\"expanded\"\n :support-expand=\"mergedExpandable\"\n :record=\"record\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @mouseleave=\"handleCellBlur\"\n />\n <BodyCell\n v-else-if=\"column\"\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :type=\"type\"\n :row-index=\"rowIndex!\"\n :flatten-row-index=\"flattenRowIndex\"\n :wrap-text=\"wrapText\"\n :column=\"column\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n :has-append-node=\"column.columnIndex === expandIconColumnIndex && nestExpandable\"\n :height=\"cellHeight\"\n :get-popup-container=\"getPopupContainer\"\n :tooltip-open=\"mergedTooltipOpen && hoverColumnKey === column.columnKey\"\n :edit-cell-keys=\"editCellKeys\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\n @mousedown=\"onCellMousedown\"\n @mousemove=\"onCellMousemove\"\n @keydown=\"onCellKeydown\"\n @click=\"onCellClick\"\n >\n <template #appendNode>\n <div :class=\"`${prefixCls}-append-node`\">\n <span\n :style=\"`padding-left: ${(indent || 0) * indentSize}px`\"\n :class=\"`${prefixCls}-row-indent indent-level-${indent}`\"\n ></span>\n <ExpandIcon\n :expanded=\"expanded\"\n :prefix-cls=\"prefixCls\"\n :expandable=\"hasNestChildren\"\n :record=\"record\"\n :disabled=\"!mergedExpandable\"\n @expand=\"onInternalTriggerExpand\"\n />\n </div>\n </template>\n </BodyCell>\n </template>\n </RenderSlot>\n <div v-if=\"type !== 'center'\" :class=\"`${prefixCls}-cell-shadow-${type}`\"></div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_Fragment","_normalizeClass","_normalizeStyle","_createVNode","_mergeProps","_withCtx","_renderList","_createBlock","_createElementVNode"],"mappings":"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"}
1
+ {"version":3,"file":"BodyRow.vue.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyRow.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-11-26 14:33:58\n * @Description:\n-->\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n onBeforeUnmount,\n computed,\n nextTick,\n watchEffect,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRows, useProvideBodyRow } from '../context/BodyRowsContext'\nimport { ExpandColumnKey } from '../../hooks/useColumns'\nimport { RenderSlot } from '../../utils/renderVNode'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { useCellSelection } from '../../hooks/useCellSelection'\nimport { useCellKeyboard } from '../../hooks/useCellKeyboard'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport eagerComputed from '../../utils/eagerComputed'\nimport classNames from '../../utils/classNames'\nimport BodyCell from './BodyCell'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { CSSProperties, PropType } from 'vue'\nimport type { RowClassName, RowType, Key } from '../interface'\n\nlet uniIdCount = 0\nexport default defineComponent({\n name: 'ProTableBodyRow',\n components: {\n ExpandIcon,\n BodyCell,\n ExpandedRow,\n BodyExtraCell,\n RenderSlot,\n },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n isExpandRow: Boolean as PropType<boolean>,\n record: { type: Object },\n type: { type: String as PropType<RowType> },\n rowKey: { type: [Number, String] as PropType<Key>, required: true },\n supportExpand: Boolean,\n pos: Number as PropType<number>,\n rowIndex: Number as PropType<number>,\n flattenRowIndex: Number,\n indent: Number as PropType<number>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n getRowClassName: { type: Function as PropType<RowClassName<any>> },\n },\n setup(props) {\n const rowUniId = 'row_uni_id_' + uniIdCount++\n const tableContext = useInjectTable()\n const rowInstance = getCurrentInstance()\n const { table } = useProConfigInject()\n const { editCellKeys, closeEditor, openEditor } = useEditInject()\n\n let isUnmount = false\n const bodyRow = ref()\n\n const { onCellMousedown, onCellMousemove, onCellClick } = useCellSelection()\n const { onCellKeydown } = useCellKeyboard()\n\n const calMaxHeight = () => {\n if (isUnmount) return\n let rowHeight = 0\n let autoCells: HTMLDivElement[] = []\n if (bodyRow.value) {\n autoCells = bodyRow.value.querySelectorAll('div[data-cell-auto=true]')\n }\n autoCells.forEach((autoCell: HTMLDivElement) => {\n const { offsetWidth, offsetHeight } = autoCell\n let autoCellHeight = offsetWidth ? offsetHeight : 0\n const parentStyle = getComputedStyle(autoCell.parentNode as Element)\n autoCellHeight +=\n parseFloat(parentStyle.getPropertyValue('border-top-width')) +\n parseFloat(parentStyle.getPropertyValue('border-bottom-width'))\n rowHeight = rowHeight > autoCellHeight ? rowHeight : autoCellHeight\n })\n if (autoCells.length) {\n tableContext.addRowHeight(rowUniId, props.rowKey!, rowHeight)\n } else {\n tableContext.removeRowHeight(rowUniId)\n }\n }\n\n watch(\n () => props.rowKey,\n () => {\n calMaxHeight()\n },\n { flush: 'post' },\n )\n\n const resizeObserver: ResizeObserver = new ResizeObserver(() => {\n calMaxHeight()\n })\n\n const { columns, columnStartIndex } = useInjectBodyRows()\n const mergedColumns = computed(() =>\n (props.type === 'center'\n ? tableContext.centerRowColumnsMap.value.get(props.rowKey)\n : columns.value)!.filter((item) => !!item),\n )\n\n const { tooltipOpen, leftPopupContainer, centerPopupContainer, rightPopupContainer } =\n useInjectBody()\n const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey, rowHover } =\n useInjectHover()\n\n const popupContainer = computed(() =>\n props.type === 'left'\n ? leftPopupContainer.value\n : props.type === 'center'\n ? centerPopupContainer.value\n : props.type === 'right'\n ? rightPopupContainer.value\n : null,\n )\n\n const isDragging = eagerComputed(() => tableContext.draggingRowKey.value === props.rowKey)\n const isRowHover = eagerComputed(() => hoverRowKey.value === props.rowKey)\n\n watch(\n [isRowHover, bodyRow],\n () => {\n bodyRow.value &&\n rowHover.value &&\n (isRowHover.value\n ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`)\n : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`))\n },\n { immediate: true, flush: 'post' },\n )\n\n const mergedTooltipOpen = eagerComputed(() => tooltipOpen.value && isRowHover.value)\n\n let timer: any\n onBeforeUnmount(() => {\n isUnmount = true\n resizeObserver.disconnect()\n clearTimeout(timer)\n tableContext.removeRowHeight(rowUniId)\n })\n\n const hasMultiRowSpanInfo = eagerComputed(() => {\n return !tableContext.hasMultiRowSpanInfo.value[props.rowKey!]\n })\n\n const customRowProps = computed(() => {\n return tableContext.props.customRow?.(props.record!, props.rowIndex)\n })\n\n const rowSelectionType = computed(() => {\n return tableContext.props.rowSelection?.type\n })\n\n const isExpanded = ref(false)\n const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value)\n const expandIconType = computed(() => tableContext.expandIconType.value)\n const expanded = eagerComputed(() => expandedRowKeys.value.has?.(props.rowKey!))\n const expandIconColumnIndex = computed(() => tableContext.expandIconColumnIndex.value || 0)\n const indentSize = computed(() => tableContext.indentSize.value)\n\n watchEffect(() => {\n if (expanded.value) {\n isExpanded.value = true\n }\n })\n\n const rowExpandable = computed(\n () =>\n tableContext.expandType.value === 'row' &&\n tableContext.props.rowExpandable?.(props.record!),\n )\n\n const nestExpandable = computed(() => tableContext.expandType.value === 'nest')\n\n const hasNestChildren = computed(\n () =>\n !!(\n tableContext.childrenColumnName.value &&\n props.record?.[tableContext.childrenColumnName.value]?.length\n ),\n )\n const mergedExpandable = computed(() => rowExpandable.value || nestExpandable.value)\n\n const onInternalTriggerExpand = (record: any, event: any) => {\n tableContext.onTriggerExpand(record, props.rowKey!, event)\n }\n\n const mergedRowHeights = computed(() => tableContext.mergedRowHeights.value)\n\n const height = eagerComputed(() => mergedRowHeights.value[props.rowKey!])\n const cellHeight = eagerComputed(() => tableContext.rowHeights.value[props.rowKey!])\n\n const isSelected = computed(() => {\n const highlightSelectRow =\n tableContext.props.highlightSelectRow ?? table?.value?.highlightSelectRow\n return (\n highlightSelectRow && tableContext.selection.derivedSelectedKeySet.value.has(props.rowKey!)\n )\n })\n\n const rowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n const isEven = rowIndex! % 2 == 0\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-row-level-${indent}`]: true,\n [`${prefixCls}-row-hover`]: isRowHover.value && rowHover.value,\n [`${prefixCls}-row-dragging`]: isDragging.value,\n [`${prefixCls}-row-dragging-insert-target`]:\n tableContext.insertToRowKey.value === props.rowKey,\n [`${prefixCls}-row-odd`]: !isEven,\n [`${prefixCls}-row-even`]: isEven,\n [`${prefixCls}-no-height`]: !height.value,\n [`${prefixCls}-row-selected`]: isSelected.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandRowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-expanded-row`]: true,\n [`${prefixCls}-expanded-row-level-${indent! + 1}`]: true,\n [`${prefixCls}-no-height`]: !height.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandColumnWidth = eagerComputed(() => {\n return tableContext.allCellProps.value[props.rowKey!]?.[ExpandColumnKey]?.props?.style?.width\n })\n\n const rowStyle = computed<CSSProperties>(() => {\n const style: CSSProperties = {\n opacity: 1,\n [`--${props.prefixCls}-row-bg`]: `var(--${props.prefixCls}-row-bg-${props.rowKey}, var(--${props.prefixCls}-bg))`,\n }\n if (hasMultiRowSpanInfo.value) {\n style.transform = `translateY(${props.pos}px)`\n } else {\n style.top = `${props.pos}px`\n }\n if (height.value !== undefined) {\n style.height = `${height.value}px`\n } else {\n style.height = `${tableContext.baseHeight.value}px`\n }\n if (props.isExpandRow && columnStartIndex.value === 0) {\n style.width = expandColumnWidth.value\n style.minWidth = '100%'\n }\n return style\n })\n\n watch(\n () => ({ ...rowStyle.value }),\n (newStyle, oldStyle = {}) => {\n if (tableContext.animateRows.value && !tableContext.useAnimate.value) {\n if (\n newStyle.top !== oldStyle.top ||\n newStyle.height !== oldStyle.height ||\n newStyle.transform !== oldStyle.transform\n ) {\n nextTick(() => {\n clearTimeout(timer)\n if (rowInstance?.vnode.el && rowInstance.vnode.el.style) {\n rowInstance.vnode.el.style.transition = 'none'\n timer = setTimeout(() => {\n if (rowInstance?.vnode?.el?.style) {\n rowInstance.vnode.el.style.transition = null\n }\n }, 100)\n }\n })\n }\n }\n },\n { immediate: true },\n )\n\n useProvideBodyRow({\n top: computed(() => props.pos!),\n height: computed(() =>\n height.value !== undefined ? height.value : tableContext.baseHeight.value,\n ),\n rowKey: computed(() => props.rowKey),\n })\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-position-absolute`]: true,\n }))\n\n return {\n rowClass,\n rowStyle,\n cellClass,\n tableContext,\n mergedRowHeights,\n handleCellBlur,\n handleCellHover,\n handleClick: (event: any) => {\n const expandRowByClick =\n tableContext.props.expandRowByClick ?? table?.value?.expandRowByClick\n expandRowByClick && mergedExpandable.value && onInternalTriggerExpand(props.record, event)\n },\n rowSelectionType,\n nestExpandable,\n hasNestChildren,\n mergedExpandable,\n expandIconColumnIndex,\n indentSize,\n expanded,\n expandIconType,\n onInternalTriggerExpand,\n customRowProps,\n expandColumnKey: ExpandColumnKey,\n expandRowClass,\n mergedColumns,\n height,\n cellHeight,\n columnStartIndex,\n resizeObserver,\n calMaxHeight,\n bodyRow,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n editCellKeys,\n closeEditor,\n openEditor,\n mergedTooltipOpen,\n onCellMousedown,\n onCellKeydown,\n onCellMousemove,\n onCellClick,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isExpandRow\">\n <div\n v-if=\"columnStartIndex === 0\"\n ref=\"bodyRow\"\n :data-row-key=\"rowKey\"\n :class=\"expandRowClass\"\n :style=\"rowStyle\"\n role=\"row\"\n >\n <ExpandedRow\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n />\n </div>\n </template>\n <div\n v-else\n v-bind=\"customRowProps\"\n ref=\"bodyRow\"\n :class=\"rowClass\"\n :style=\"rowStyle\"\n :data-row-key=\"rowKey\"\n role=\"row\"\n @click=\"handleClick\"\n >\n <RenderSlot>\n <template v-for=\"(column, index) in mergedColumns\" :key=\"column && column.columnKey\">\n <BodyExtraCell\n v-if=\"column && column.__Internal__Column__\"\n :prefix-cls=\"prefixCls\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex!\"\n :type=\"type\"\n :column=\"mergedColumns?.[index]\"\n :expanded=\"expanded\"\n :expandIconType=\"expandIconType\"\n :support-expand=\"mergedExpandable\"\n :record=\"record\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @mouseleave=\"handleCellBlur\"\n />\n <BodyCell\n v-else-if=\"column\"\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :type=\"type\"\n :row-index=\"rowIndex!\"\n :flatten-row-index=\"flattenRowIndex\"\n :wrap-text=\"wrapText\"\n :column=\"column\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n :has-append-node=\"column.columnIndex === expandIconColumnIndex && nestExpandable\"\n :height=\"cellHeight\"\n :get-popup-container=\"getPopupContainer\"\n :tooltip-open=\"mergedTooltipOpen && hoverColumnKey === column.columnKey\"\n :edit-cell-keys=\"editCellKeys\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\n @mousedown=\"onCellMousedown\"\n @mousemove=\"onCellMousemove\"\n @keydown=\"onCellKeydown\"\n @click=\"onCellClick\"\n >\n <template #appendNode>\n <div :class=\"`${prefixCls}-append-node`\">\n <span\n :style=\"`padding-left: ${(indent || 0) * indentSize}px`\"\n :class=\"`${prefixCls}-row-indent indent-level-${indent}`\"\n ></span>\n <ExpandIcon\n :expanded=\"expanded\"\n :expandIconType=\"expandIconType\"\n :prefix-cls=\"prefixCls\"\n :expandable=\"hasNestChildren\"\n :record=\"record\"\n :disabled=\"!mergedExpandable\"\n @expand=\"onInternalTriggerExpand\"\n />\n </div>\n </template>\n </BodyCell>\n </template>\n </RenderSlot>\n <div v-if=\"type !== 'center'\" :class=\"`${prefixCls}-cell-shadow-${type}`\"></div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_Fragment","_normalizeClass","_normalizeStyle","_createVNode","_mergeProps","_withCtx","_renderList","_createBlock","_createElementVNode"],"mappings":"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"}
@@ -122,6 +122,7 @@ var _sfc_main = defineComponent({
122
122
  });
123
123
  const isExpanded = ref(false);
124
124
  const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value);
125
+ const expandIconType = computed(() => tableContext.expandIconType.value);
125
126
  const expanded = eagerComputed(() => {
126
127
  var _a, _b;
127
128
  return (_b = (_a = expandedRowKeys.value).has) == null ? void 0 : _b.call(_a, props.rowKey);
@@ -268,6 +269,7 @@ var _sfc_main = defineComponent({
268
269
  expandIconColumnIndex,
269
270
  indentSize,
270
271
  expanded,
272
+ expandIconType,
271
273
  onInternalTriggerExpand,
272
274
  customRowProps,
273
275
  expandColumnKey: ExpandColumnKey,