pro-design-vue 1.3.25 → 1.3.26

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 +144 -56
  2. package/dist/index.full.min.js +7 -7
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +7 -7
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +144 -57
  7. package/es/components/table/src/components/Body/Body.vue.d.ts +1 -1
  8. package/es/components/table/src/components/Body/BodyRow.vue.d.ts +1 -1
  9. package/es/components/table/src/components/Body/BodyRows.vue.d.ts +1 -1
  10. package/es/components/table/src/components/InteralTable.vue.d.ts +1 -1
  11. package/es/components/table/src/components/interface.d.ts +8 -0
  12. package/es/components/table/src/hooks/useEdit.d.ts +1 -1
  13. package/es/hooks/index.d.ts +1 -0
  14. package/es/hooks/use-fetch-data/index.d.ts +3 -0
  15. package/es/index.d.ts +11 -0
  16. package/es/index.mjs +1 -0
  17. package/es/index.mjs.map +1 -1
  18. package/es/packages/components/table/src/components/Body/BodyCell.vue.mjs.map +1 -1
  19. package/es/packages/components/table/src/components/Body/BodyCell.vue2.mjs.map +1 -1
  20. package/es/packages/components/table/src/components/Body/BodyEditCell.mjs +122 -55
  21. package/es/packages/components/table/src/components/Body/BodyEditCell.mjs.map +1 -1
  22. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs +1 -1
  23. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
  24. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
  25. package/es/packages/components/table/src/components/interface.mjs.map +1 -1
  26. package/es/packages/components/table/src/hooks/useEdit.mjs.map +1 -1
  27. package/es/packages/hooks/index.mjs +1 -0
  28. package/es/packages/hooks/index.mjs.map +1 -1
  29. package/es/packages/hooks/use-fetch-data/index.mjs +25 -0
  30. package/es/packages/hooks/use-fetch-data/index.mjs.map +1 -0
  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/table/src/components/Body/Body.vue.d.ts +1 -1
  35. package/lib/components/table/src/components/Body/BodyRow.vue.d.ts +1 -1
  36. package/lib/components/table/src/components/Body/BodyRows.vue.d.ts +1 -1
  37. package/lib/components/table/src/components/InteralTable.vue.d.ts +1 -1
  38. package/lib/components/table/src/components/interface.d.ts +8 -0
  39. package/lib/components/table/src/hooks/useEdit.d.ts +1 -1
  40. package/lib/hooks/index.d.ts +1 -0
  41. package/lib/hooks/use-fetch-data/index.d.ts +3 -0
  42. package/lib/index.d.ts +11 -0
  43. package/lib/index.js +2 -0
  44. package/lib/index.js.map +1 -1
  45. package/lib/packages/components/table/src/components/Body/BodyCell.vue.js.map +1 -1
  46. package/lib/packages/components/table/src/components/Body/BodyCell.vue2.js.map +1 -1
  47. package/lib/packages/components/table/src/components/Body/BodyEditCell.js +120 -53
  48. package/lib/packages/components/table/src/components/Body/BodyEditCell.js.map +1 -1
  49. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js +1 -1
  50. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
  51. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
  52. package/lib/packages/components/table/src/components/interface.js.map +1 -1
  53. package/lib/packages/components/table/src/hooks/useEdit.js.map +1 -1
  54. package/lib/packages/hooks/index.js +2 -0
  55. package/lib/packages/hooks/index.js.map +1 -1
  56. package/lib/packages/hooks/use-fetch-data/index.js +27 -0
  57. package/lib/packages/hooks/use-fetch-data/index.js.map +1 -0
  58. package/lib/version.d.ts +1 -1
  59. package/lib/version.js +1 -1
  60. package/lib/version.js.map +1 -1
  61. package/package.json +1 -1
@@ -1,12 +1,13 @@
1
- import { defineComponent, computed, ref, watch, onMounted, onUnmounted, createVNode, mergeProps, triggerRef } from 'vue';
1
+ import { defineComponent, ref, computed, triggerRef, watch, onMounted, onUnmounted, createVNode, mergeProps } from 'vue';
2
2
  import { useInjectTable } from '../context/TableContext.mjs';
3
3
  import { Popover } from 'ant-design-vue';
4
4
  import { useInjectLevel } from '../../hooks/useLevel.mjs';
5
5
  import { CloseCircleFilled } from '@ant-design/icons-vue';
6
6
  import { useEditInject } from '../../hooks/useEdit.mjs';
7
7
  import { validate } from '../../utils/form-model.mjs';
8
+ import { useFetchData } from '../../../../../hooks/use-fetch-data/index.mjs';
8
9
  import { runFunction } from '../../../../../utils/run-function.mjs';
9
- import { get, set } from 'lodash-unified';
10
+ import { get, debounce, set, isEqual } from 'lodash-unified';
10
11
  import { isFunction } from '../../../../../utils/validate.mjs';
11
12
 
12
13
  const parsingValueEnumToArray = (valueEnum) => {
@@ -67,24 +68,27 @@ var BodyEditCell = /* @__PURE__ */ defineComponent({
67
68
  },
68
69
  emits: ["closeEditor", "keydown"],
69
70
  setup(props) {
71
+ var _a;
72
+ const loading = ref(false);
70
73
  const tableContext = useInjectTable();
71
74
  const level = useInjectLevel();
75
+ const fetchOptions = ref();
72
76
  const columnKey = computed(() => props.column.columnKey);
73
77
  const recordIndexs = computed(() => tableContext.getIndexsByKey(props.rowKey));
74
- const childrenColumnName = computed(() => tableContext.props.childrenColumnName || "children");
75
78
  const valueEnum = computed(() => {
76
- var _a;
77
- return parsingValueEnumToArray(runFunction((_a = props.column) == null ? void 0 : _a.valueEnum, props.item));
79
+ var _a2;
80
+ return parsingValueEnumToArray(runFunction((_a2 = props.column) == null ? void 0 : _a2.valueEnum, props.item));
78
81
  });
82
+ const originValue = get(props.item, props.column.dataIndex);
79
83
  const errorList = ref();
80
84
  const {
81
85
  editRowsMap,
82
86
  setEditingCell
83
87
  } = useEditInject();
84
- const cellValue = computed(() => props.column.dataIndex ? get(!props.isRowEdit ? props.item : props.editRow, props.column.dataIndex) : void 0);
88
+ const cellValue = computed(() => props.column.dataIndex ? get(props.editRow, props.column.dataIndex) : void 0);
85
89
  const cellRender = computed(() => {
86
- var _a, _b;
87
- return ((_b = (_a = tableContext.allCellProps.value) == null ? void 0 : _a[props.rowKey]) == null ? void 0 : _b[props.column.columnKey]) || {};
90
+ var _a2, _b;
91
+ return ((_b = (_a2 = tableContext.allCellProps.value) == null ? void 0 : _a2[props.rowKey]) == null ? void 0 : _b[props.column.columnKey]) || {};
88
92
  });
89
93
  const cellProps = computed(() => cellRender.value.props || {});
90
94
  const cellRowSpan = computed(() => cellProps.value.rowSpan);
@@ -92,8 +96,8 @@ var BodyEditCell = /* @__PURE__ */ defineComponent({
92
96
  key
93
97
  }) => key === columnKey.value));
94
98
  const sorterOrder = computed(() => {
95
- var _a;
96
- return sorterState.value ? (_a = sorterState.value) == null ? void 0 : _a.sortOrder : null;
99
+ var _a2;
100
+ return sorterState.value ? (_a2 = sorterState.value) == null ? void 0 : _a2.sortOrder : null;
97
101
  });
98
102
  const cellClass = computed(() => ({
99
103
  [`${props.prefixCls}-cell`]: true,
@@ -103,26 +107,41 @@ var BodyEditCell = /* @__PURE__ */ defineComponent({
103
107
  [`${props.prefixCls}-cell-hidden`]: cellRowSpan.value === 0,
104
108
  [`${props.prefixCls}-column-sort`]: sorterOrder.value
105
109
  }));
110
+ const hasFetchOptions = computed(() => {
111
+ var _a2, _b, _c;
112
+ return ((_a2 = props.column.edit) == null ? void 0 : _a2.request) && ((_c = (_b = props.column.edit) == null ? void 0 : _b.dependencies) == null ? void 0 : _c.length);
113
+ });
106
114
  const rules = computed(() => {
107
- var _a, _b;
108
- return (_b = runFunction((_a = props.column.edit) == null ? void 0 : _a.rules, {
115
+ var _a2, _b;
116
+ return (_b = runFunction((_a2 = props.column.edit) == null ? void 0 : _a2.rules, {
109
117
  column: props.column,
110
- record: props.isRowEdit ? props.editRow : props.item,
118
+ record: props.editRow,
111
119
  recordIndexs: recordIndexs.value,
112
120
  newValue: cellValue.value
113
121
  })) != null ? _b : [];
114
122
  });
115
123
  const validateEnabled = computed(() => rules.value.length > 0);
116
124
  const editValue = ref();
125
+ const updateEditedCellValue = (key, value) => {
126
+ setTimeout(() => {
127
+ const editRow = {
128
+ ...props.editRow
129
+ };
130
+ set(editRow, key, value);
131
+ editRowsMap.value[props.rowKey] = editRow;
132
+ triggerRef(editRowsMap);
133
+ }, 10);
134
+ };
117
135
  const cellParams = computed(() => ({
118
136
  column: props.column,
119
- record: !props.isRowEdit ? props.item : props.editRow,
137
+ record: props.editRow,
120
138
  recordIndexs: recordIndexs.value,
121
- value: editValue.value
139
+ value: editValue.value,
140
+ updateEditedCellValue
122
141
  }));
123
142
  const editOnListeners = computed(() => {
124
- var _a, _b;
125
- return ((_b = (_a = props.column.edit) == null ? void 0 : _a.on) == null ? void 0 : _b.call(_a, {
143
+ var _a2, _b;
144
+ return ((_b = (_a2 = props.column.edit) == null ? void 0 : _a2.on) == null ? void 0 : _b.call(_a2, {
126
145
  ...cellParams.value
127
146
  })) || {};
128
147
  });
@@ -135,8 +154,8 @@ var BodyEditCell = /* @__PURE__ */ defineComponent({
135
154
  };
136
155
  });
137
156
  const options = computed(() => {
138
- var _a, _b;
139
- return (_b = (_a = editProps.value) == null ? void 0 : _a.options) != null ? _b : valueEnum.value;
157
+ var _a2, _b, _c;
158
+ return (_c = (_b = fetchOptions.value) != null ? _b : (_a2 = editProps.value) == null ? void 0 : _a2.options) != null ? _c : valueEnum.value;
140
159
  });
141
160
  const componentProps = computed(() => {
142
161
  const {
@@ -157,6 +176,10 @@ var BodyEditCell = /* @__PURE__ */ defineComponent({
157
176
  resolve(true);
158
177
  return true;
159
178
  }
179
+ if (isEqual(originValue, editValue.value) && !(originValue === void 0 || originValue === null || originValue === "")) {
180
+ resolve(true);
181
+ return true;
182
+ }
160
183
  validate(editValue.value, rules.value).then((result) => {
161
184
  const list = result == null ? void 0 : result.filter((t) => !t.result);
162
185
  if (!list || !list.length) {
@@ -169,48 +192,92 @@ var BodyEditCell = /* @__PURE__ */ defineComponent({
169
192
  });
170
193
  });
171
194
  };
172
- const onEditChange = (val, ...args) => {
173
- var _a, _b, _c, _d, _e, _f, _g, _h;
195
+ const updateEditRow = () => {
196
+ const editRow = {
197
+ ...props.editRow
198
+ };
199
+ set(editRow, props.column.dataIndex, editValue.value);
200
+ editRowsMap.value[props.rowKey] = {
201
+ ...editRow
202
+ };
203
+ triggerRef(editRowsMap);
204
+ };
205
+ const fetchData = useFetchData({
206
+ request: (_a = props.column.edit) == null ? void 0 : _a.request
207
+ });
208
+ const requestOptions = debounce(async (newRow) => {
209
+ var _a2, _b;
210
+ const row = {
211
+ ...props.item,
212
+ ...newRow
213
+ };
174
214
  const params = {
175
- column: props.column,
176
- record: props.isRowEdit ? props.editRow : props.item,
177
- recordIndexs: recordIndexs.value,
178
- newValue: cellValue.value
215
+ rowKey: props.rowKey
179
216
  };
180
- const value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueParser) == null ? void 0 : _b.call(_a, params)) != null ? _c : editValue.value;
181
- const valueSetter = (_d = props.column.edit) == null ? void 0 : _d.valueSetter;
217
+ (_b = (_a2 = props.column.edit) == null ? void 0 : _a2.dependencies) == null ? void 0 : _b.forEach((dataIndex) => {
218
+ const newValue = get(row, dataIndex);
219
+ set(params, dataIndex, newValue);
220
+ });
221
+ loading.value = true;
222
+ const result = await fetchData(params);
223
+ fetchOptions.value = result;
224
+ loading.value = false;
225
+ }, 200);
226
+ const onEditChange = (val, ...args) => {
227
+ var _a2, _b, _c, _d, _e;
228
+ const valueSetter = (_a2 = props.column.edit) == null ? void 0 : _a2.valueSetter;
182
229
  if (valueSetter) {
183
- valueSetter(params);
230
+ valueSetter(cellParams.value);
184
231
  } else {
185
- (_f = (_e = editProps.value) == null ? void 0 : _e.onChange) == null ? void 0 : _f.call(_e, val, ...args);
186
- (_h = (_g = editOnListeners.value) == null ? void 0 : _g.onChange) == null ? void 0 : _h.call(_g, params);
187
- if (props.isRowEdit) {
188
- const record = {
189
- ...props.editRow
190
- };
191
- set(record, props.column.dataIndex, value);
192
- editRowsMap.value[props.rowKey] = record;
193
- triggerRef(editRowsMap);
194
- } else {
195
- let record = {};
196
- let dataSource = tableContext.rawData.value || [];
197
- recordIndexs.value.forEach((index) => {
198
- record = dataSource[index];
199
- dataSource = record[childrenColumnName.value] || [];
200
- });
201
- set(record, props.column.dataIndex, value);
202
- triggerRef(tableContext.rawData);
203
- }
232
+ (_c = (_b = editProps.value) == null ? void 0 : _b.onChange) == null ? void 0 : _c.call(_b, val, ...args, cellParams.value);
233
+ (_e = (_d = editOnListeners.value) == null ? void 0 : _d.onChange) == null ? void 0 : _e.call(_d, cellParams.value);
234
+ updateEditRow();
204
235
  }
205
236
  validateEdit();
206
237
  };
238
+ const updateRecordValue = debounce(async (newValue) => {
239
+ let record = {};
240
+ let dataSource = tableContext.rawData.value || [];
241
+ recordIndexs.value.forEach((index) => {
242
+ record = dataSource[index];
243
+ dataSource = record[tableContext.childrenColumnName.value] || [];
244
+ });
245
+ set(record, props.column.dataIndex, newValue);
246
+ triggerRef(tableContext.rawData);
247
+ }, 200);
207
248
  watch(cellValue, (value) => {
208
- var _a, _b, _c;
209
- editValue.value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueGetter) == null ? void 0 : _b.call(_a, cellParams.value)) != null ? _c : value;
249
+ var _a2, _b, _c;
250
+ editValue.value = (_c = (_b = (_a2 = props.column.edit) == null ? void 0 : _a2.valueGetter) == null ? void 0 : _b.call(_a2, cellParams.value)) != null ? _c : value;
251
+ if (!props.isRowEdit) {
252
+ updateRecordValue(value);
253
+ }
210
254
  }, {
211
255
  immediate: true
212
256
  });
257
+ watch(() => props.editRow, (newRow, oldRow) => {
258
+ var _a2, _b;
259
+ if (hasFetchOptions.value) {
260
+ const isSame = (_b = (_a2 = props.column.edit) == null ? void 0 : _a2.dependencies) == null ? void 0 : _b.every((dataIndex) => {
261
+ const newValue = get(newRow, dataIndex);
262
+ const oldIndex = get(oldRow, dataIndex);
263
+ return isEqual(newValue, oldIndex);
264
+ });
265
+ if (!isSame) {
266
+ requestOptions(newRow);
267
+ }
268
+ }
269
+ });
213
270
  onMounted(() => {
271
+ var _a2;
272
+ if (!props.isRowEdit && !editRowsMap.value[props.rowKey]) {
273
+ editRowsMap.value[props.rowKey] = {
274
+ ...props.item
275
+ };
276
+ triggerRef(editRowsMap);
277
+ }
278
+ if ((_a2 = props.column.edit) == null ? void 0 : _a2.request) {
279
+ requestOptions();
280
+ }
214
281
  setEditingCell({
215
282
  recordIndexs: recordIndexs.value,
216
283
  column: props.column,
@@ -222,7 +289,7 @@ var BodyEditCell = /* @__PURE__ */ defineComponent({
222
289
  }, true);
223
290
  });
224
291
  onUnmounted(() => {
225
- var _a, _b, _c;
292
+ var _a2, _b, _c;
226
293
  setEditingCell({
227
294
  recordIndexs: recordIndexs.value,
228
295
  column: props.column,
@@ -232,11 +299,11 @@ var BodyEditCell = /* @__PURE__ */ defineComponent({
232
299
  columnKey: props.column.columnKey,
233
300
  validateEdit
234
301
  }, false);
235
- (_c = (_b = (_a = props.column) == null ? void 0 : _a.edit) == null ? void 0 : _b.onEdited) == null ? void 0 : _c.call(_b, cellParams.value);
302
+ (_c = (_b = (_a2 = props.column) == null ? void 0 : _a2.edit) == null ? void 0 : _b.onEdited) == null ? void 0 : _c.call(_b, cellParams.value);
236
303
  });
237
304
  return () => {
238
- var _a, _b, _c, _d;
239
- const Component = (_a = props.column.edit) == null ? void 0 : _a.component;
305
+ var _a2, _b, _c, _d;
306
+ const Component = (_a2 = props.column.edit) == null ? void 0 : _a2.component;
240
307
  const errorMessage = (_c = (_b = errorList.value) == null ? void 0 : _b[0]) == null ? void 0 : _c.message;
241
308
  const inlineError = (_d = props.column.edit) == null ? void 0 : _d.inlineError;
242
309
  const tmpEditOnListeners = {
@@ -274,10 +341,10 @@ var BodyEditCell = /* @__PURE__ */ defineComponent({
274
341
  "class": `${props.prefixCls}-cell-content-error`
275
342
  }, [createVNode(CloseCircleFilled, null, null)])],
276
343
  content: () => {
277
- var _a2;
344
+ var _a3;
278
345
  return createVNode("div", {
279
346
  "class": `${props.prefixCls}-cell-content-error-message`
280
- }, [(_a2 = errorList.value) == null ? void 0 : _a2.map((error) => createVNode("div", {
347
+ }, [(_a3 = errorList.value) == null ? void 0 : _a3.map((error) => createVNode("div", {
281
348
  "key": error.message
282
349
  }, [error.message]))]);
283
350
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BodyEditCell.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyEditCell.tsx"],"sourcesContent":["/*\n * @Author: shen\n * @Date: 2025-11-27 10:42:18\n * @LastEditors: shen\n * @LastEditTime: 2025-12-03 09:23:19\n * @Description:\n */\nimport type { PropType } from 'vue'\nimport type { AllValidateResult, FinallyColumnType, Key, ValueEnumType } from '../interface'\n\nimport { defineComponent, ref, computed, watch, triggerRef, onMounted, onUnmounted } from 'vue'\nimport { set, isFunction, get, runFunction } from '@pro-design-vue/utils'\nimport { useInjectTable } from '../context/TableContext'\nimport { Popover } from 'ant-design-vue'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport { CloseCircleFilled } from '@ant-design/icons-vue'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { validate } from '../../utils/form-model'\n\nexport const parsingValueEnumToArray = (\n valueEnum: Record<string, ValueEnumType>,\n): ValueEnumType[] | undefined => {\n const enumArray: ValueEnumType[] = []\n const valueKeys = Object.keys(valueEnum ?? {})\n if (!valueKeys?.length) {\n return\n }\n valueKeys.forEach((key) => {\n const value = valueEnum[key] as {\n text: string\n disabled?: boolean\n }\n\n if (!value) {\n return\n }\n\n if (typeof value === 'object' && value?.text) {\n enumArray.push({\n text: value?.text as unknown as string,\n value: key,\n label: value?.text as unknown as string,\n disabled: value.disabled,\n })\n return\n }\n enumArray.push({\n text: value as unknown as string,\n value: key,\n label: value as unknown as string,\n })\n })\n return enumArray\n}\n\nexport default defineComponent({\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number as PropType<number>, required: true },\n flattenRowIndex: { type: Number, required: true },\n rowKey: { type: [Number, String] as PropType<Key> },\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n item: { type: Object as PropType<any>, default: () => ({}) },\n isRowEdit: Boolean as PropType<boolean>,\n editRow: { type: Object as PropType<any> },\n },\n emits: ['closeEditor', 'keydown'],\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const columnKey = computed(() => props.column!.columnKey)\n const recordIndexs = computed(() => tableContext.getIndexsByKey(props.rowKey!))\n const childrenColumnName = computed(() => tableContext.props.childrenColumnName || 'children')\n const valueEnum = computed(() =>\n parsingValueEnumToArray(runFunction(props.column?.valueEnum, props.item)),\n )\n const errorList = ref<AllValidateResult[]>()\n const { editRowsMap, setEditingCell } = useEditInject()\n const cellValue = computed(() =>\n props.column!.dataIndex\n ? get(!props.isRowEdit ? props.item : props.editRow, props.column!.dataIndex)\n : undefined,\n )\n const cellRender = computed(\n () => tableContext.allCellProps.value?.[props.rowKey!]?.[props.column!.columnKey] || {},\n )\n const cellProps: any = computed(() => cellRender.value.props || {})\n const cellRowSpan = computed(() => cellProps.value.rowSpan!)\n\n const sorterState = computed(() =>\n tableContext.sorterStates.value.find(({ key }) => key === columnKey.value),\n )\n const sorterOrder = computed(() => (sorterState.value ? sorterState.value?.sortOrder : null))\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-first-cell`]: props.column!.columnIndex === 0,\n [`${props.prefixCls}-body-cell`]: true,\n [`${props.prefixCls}-cell-multi`]: cellRowSpan.value > 1,\n [`${props.prefixCls}-cell-hidden`]: cellRowSpan.value === 0,\n [`${props.prefixCls}-column-sort`]: sorterOrder.value,\n }))\n\n const rules = computed(() => {\n return (\n runFunction(props.column.edit?.rules, {\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: recordIndexs.value,\n newValue: cellValue.value,\n }) ?? []\n )\n })\n\n const validateEnabled = computed(() => rules.value.length > 0)\n\n const editValue = ref()\n const cellParams = computed(() => ({\n column: props.column,\n record: !props.isRowEdit ? props.item : props.editRow,\n recordIndexs: recordIndexs.value!,\n value: editValue.value,\n }))\n\n const editOnListeners = computed(() => {\n return props.column.edit?.on?.({ ...cellParams.value }) || {}\n })\n\n const editProps = computed(() => {\n const { edit = {} } = props.column\n return isFunction(edit.props) ? edit.props(cellParams.value) : { ...edit.props }\n })\n\n const options = computed(() => editProps.value?.options ?? valueEnum.value)\n\n const componentProps = computed(() => {\n const { edit } = props.column\n if (!edit) return {}\n const tmpProps = { ...editProps.value }\n delete tmpProps.onChange\n delete tmpProps.value\n delete tmpProps.options\n return tmpProps\n })\n\n const validateEdit = (): Promise<true | AllValidateResult[]> => {\n return new Promise((resolve) => {\n if (!validateEnabled.value) {\n resolve(true)\n return true\n }\n validate(editValue.value, rules.value).then((result) => {\n const list = result?.filter((t) => !t.result)\n if (!list || !list.length) {\n errorList.value = []\n resolve(true)\n } else {\n errorList.value = list\n resolve(list)\n }\n })\n })\n }\n\n const onEditChange = (val: any, ...args: any) => {\n const params: any = {\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: recordIndexs.value,\n newValue: cellValue.value,\n }\n const value = props.column.edit?.valueParser?.(params) ?? editValue.value\n const valueSetter = props.column.edit?.valueSetter\n if (valueSetter) {\n valueSetter(params)\n } else {\n editProps.value?.onChange?.(val, ...args)\n editOnListeners.value?.onChange?.(params)\n if (props.isRowEdit) {\n const record = { ...props.editRow }\n set(record, props.column.dataIndex!, value)\n editRowsMap.value[props.rowKey!] = record\n triggerRef(editRowsMap)\n } else {\n let record: any = {}\n let dataSource = tableContext.rawData.value || []\n recordIndexs.value.forEach((index) => {\n record = dataSource[index]\n dataSource = record[childrenColumnName.value] || []\n })\n set(record, props.column.dataIndex!, value)\n triggerRef(tableContext.rawData)\n }\n }\n validateEdit()\n }\n\n watch(\n cellValue,\n (value) => {\n editValue.value = props.column.edit?.valueGetter?.(cellParams.value) ?? value\n },\n { immediate: true },\n )\n\n onMounted(() => {\n setEditingCell(\n {\n recordIndexs: recordIndexs.value,\n column: props.column,\n rowKey: props.rowKey!,\n originRecord: props.item,\n rowIndex: props.rowIndex,\n columnKey: props.column.columnKey!,\n validateEdit,\n },\n true,\n )\n })\n\n onUnmounted(() => {\n setEditingCell(\n {\n recordIndexs: recordIndexs.value,\n column: props.column,\n rowKey: props.rowKey!,\n originRecord: props.item,\n rowIndex: props.rowIndex,\n columnKey: props.column.columnKey!,\n validateEdit,\n },\n false,\n )\n props.column?.edit?.onEdited?.(cellParams.value)\n })\n\n return () => {\n const Component = props.column.edit?.component\n const errorMessage = errorList.value?.[0]?.message\n const inlineError = props.column.edit?.inlineError\n const tmpEditOnListeners = { ...editOnListeners.value }\n delete tmpEditOnListeners.onChange\n return (\n <div\n {...cellProps.value}\n class={cellClass.value}\n tabindex=\"-1\"\n role=\"cell\"\n data-column-key={columnKey.value}\n data-level={level}\n aria-selected=\"true\"\n onClick={(e: MouseEvent) => {\n e.stopPropagation()\n }}\n >\n <div class={`${props.prefixCls}-cell-content`} style=\"width: 100%; position:relative\">\n <Component\n style=\"width: 100%\"\n status={errorMessage ? 'error' : undefined}\n v-model:value={editValue.value}\n getPopupContainer={() => document.body}\n {...componentProps.value}\n {...tmpEditOnListeners}\n options={options.value}\n onChange={onEditChange}\n />\n {errorMessage &&\n (!inlineError ? (\n <Popover\n arrowPointAtCenter\n placement=\"topRight\"\n getPopupContainer={() => document.body}\n v-slots={{\n content: () => (\n <div class={`${props.prefixCls}-cell-content-error-message`}>\n {errorList.value?.map((error) => (\n <div key={error.message}>{error.message}</div>\n ))}\n </div>\n ),\n }}\n >\n <span class={`${props.prefixCls}-cell-content-error`}>\n <CloseCircleFilled />\n </span>\n </Popover>\n ) : (\n <div class={`${props.prefixCls}-cell-content-error-inline`}>{errorMessage}</div>\n ))}\n </div>\n </div>\n )\n }\n },\n})\n"],"names":["parsingValueEnumToArray","valueEnum","enumArray","valueKeys","Object","keys","length","forEach","key","value","text","push","label","disabled","inheritAttrs","props","prefixCls","String","rowIndex","type","Number","required","flattenRowIndex","rowKey","column","default","item","isRowEdit","Boolean","editRow","emits","setup","tableContext","useInjectTable","level","useInjectLevel","columnKey","computed","recordIndexs","getIndexsByKey","childrenColumnName","runFunction","errorList","ref","editRowsMap","setEditingCell","useEditInject","cellValue","dataIndex","get","undefined","cellRender","allCellProps","cellProps","cellRowSpan","rowSpan","sorterState","sorterStates","find","sorterOrder","sortOrder","cellClass","columnIndex","rules","edit","record","newValue","validateEnabled","editValue","cellParams","editOnListeners","on","editProps","isFunction","options","componentProps","tmpProps","onChange","validateEdit","Promise","resolve","validate","then","result","list","filter","t","onEditChange","val","args","params","valueParser","valueSetter","set","triggerRef","dataSource","rawData","index","watch","valueGetter","immediate","onMounted","originRecord","onUnmounted","onEdited","Component","component","errorMessage","message","inlineError","tmpEditOnListeners","_createVNode","_mergeProps","e","stopPropagation","$event","getPopupContainer","document","body","Popover","CloseCircleFilled","content","_a","map","error"],"mappings":"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"}
1
+ {"version":3,"file":"BodyEditCell.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyEditCell.tsx"],"sourcesContent":["/*\n * @Author: shen\n * @Date: 2025-11-27 10:42:18\n * @LastEditors: shen\n * @LastEditTime: 2025-12-04 17:40:28\n * @Description:\n */\nimport type { PropType } from 'vue'\nimport type {\n AllValidateResult,\n DataIndex,\n FinallyColumnType,\n Key,\n ValueEnumType,\n} from '../interface'\n\nimport { defineComponent, ref, computed, watch, triggerRef, onMounted, onUnmounted } from 'vue'\nimport { set, isFunction, get, runFunction, isEqual, debounce } from '@pro-design-vue/utils'\nimport { useInjectTable } from '../context/TableContext'\nimport { Popover } from 'ant-design-vue'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport { CloseCircleFilled } from '@ant-design/icons-vue'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { validate } from '../../utils/form-model'\nimport { useFetchData } from '@pro-design-vue/hooks'\n\nexport const parsingValueEnumToArray = (\n valueEnum: Record<string, ValueEnumType>,\n): ValueEnumType[] | undefined => {\n const enumArray: ValueEnumType[] = []\n const valueKeys = Object.keys(valueEnum ?? {})\n if (!valueKeys?.length) {\n return\n }\n valueKeys.forEach((key) => {\n const value = valueEnum[key] as {\n text: string\n disabled?: boolean\n }\n\n if (!value) {\n return\n }\n\n if (typeof value === 'object' && value?.text) {\n enumArray.push({\n text: value?.text as unknown as string,\n value: key,\n label: value?.text as unknown as string,\n disabled: value.disabled,\n })\n return\n }\n enumArray.push({\n text: value as unknown as string,\n value: key,\n label: value as unknown as string,\n })\n })\n return enumArray\n}\n\nexport default defineComponent({\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number as PropType<number>, required: true },\n flattenRowIndex: { type: Number, required: true },\n rowKey: { type: [Number, String] as PropType<Key> },\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n item: { type: Object as PropType<any>, default: () => ({}) },\n isRowEdit: Boolean as PropType<boolean>,\n editRow: { type: Object as PropType<any> },\n },\n emits: ['closeEditor', 'keydown'],\n setup(props) {\n const loading = ref(false)\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const fetchOptions = ref<any>()\n const columnKey = computed(() => props.column!.columnKey)\n const recordIndexs = computed(() => tableContext.getIndexsByKey(props.rowKey!))\n const valueEnum = computed(() =>\n parsingValueEnumToArray(runFunction(props.column?.valueEnum, props.item)),\n )\n const originValue = get(props.item, props.column!.dataIndex!)\n const errorList = ref<AllValidateResult[]>()\n const { editRowsMap, setEditingCell } = useEditInject()\n const cellValue = computed(() =>\n props.column!.dataIndex ? get(props.editRow, props.column!.dataIndex) : undefined,\n )\n const cellRender = computed(\n () => tableContext.allCellProps.value?.[props.rowKey!]?.[props.column!.columnKey] || {},\n )\n const cellProps: any = computed(() => cellRender.value.props || {})\n const cellRowSpan = computed(() => cellProps.value.rowSpan!)\n\n const sorterState = computed(() =>\n tableContext.sorterStates.value.find(({ key }) => key === columnKey.value),\n )\n const sorterOrder = computed(() => (sorterState.value ? sorterState.value?.sortOrder : null))\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-first-cell`]: props.column!.columnIndex === 0,\n [`${props.prefixCls}-body-cell`]: true,\n [`${props.prefixCls}-cell-multi`]: cellRowSpan.value > 1,\n [`${props.prefixCls}-cell-hidden`]: cellRowSpan.value === 0,\n [`${props.prefixCls}-column-sort`]: sorterOrder.value,\n }))\n\n const hasFetchOptions = computed(\n () => props.column.edit?.request && props.column.edit?.dependencies?.length,\n )\n\n const rules = computed(() => {\n return (\n runFunction(props.column.edit?.rules, {\n column: props.column,\n record: props.editRow,\n recordIndexs: recordIndexs.value,\n newValue: cellValue.value,\n }) ?? []\n )\n })\n\n const validateEnabled = computed(() => rules.value.length > 0)\n\n const editValue = ref()\n\n const updateEditedCellValue = (key: DataIndex, value: any) => {\n setTimeout(() => {\n const editRow = { ...props.editRow }\n set(editRow, key, value)\n editRowsMap.value[props.rowKey!] = editRow\n triggerRef(editRowsMap)\n }, 10)\n }\n\n const cellParams = computed(() => ({\n column: props.column,\n record: props.editRow,\n recordIndexs: recordIndexs.value!,\n value: editValue.value,\n updateEditedCellValue,\n }))\n\n const editOnListeners = computed(() => {\n return props.column.edit?.on?.({ ...cellParams.value }) || {}\n })\n\n const editProps = computed(() => {\n const { edit = {} } = props.column\n return isFunction(edit.props) ? edit.props(cellParams.value) : { ...edit.props }\n })\n\n const options = computed(\n () => fetchOptions.value ?? editProps.value?.options ?? valueEnum.value,\n )\n\n const componentProps = computed(() => {\n const { edit } = props.column\n if (!edit) return {}\n const tmpProps = { ...editProps.value }\n delete tmpProps.onChange\n delete tmpProps.value\n delete tmpProps.options\n return tmpProps\n })\n\n const validateEdit = (): Promise<true | AllValidateResult[]> => {\n return new Promise((resolve) => {\n if (!validateEnabled.value) {\n resolve(true)\n return true\n }\n\n // 值相同且不为空时不触发变化及校验\n if (\n isEqual(originValue, editValue.value) &&\n !(originValue === undefined || originValue === null || originValue === '')\n ) {\n resolve(true)\n return true\n }\n validate(editValue.value, rules.value).then((result) => {\n const list = result?.filter((t) => !t.result)\n if (!list || !list.length) {\n errorList.value = []\n resolve(true)\n } else {\n errorList.value = list\n resolve(list)\n }\n })\n })\n }\n\n const updateEditRow = () => {\n const editRow = { ...props.editRow }\n set(editRow, props.column.dataIndex!, editValue.value)\n editRowsMap.value[props.rowKey!] = { ...editRow }\n triggerRef(editRowsMap)\n }\n\n const fetchData = useFetchData({ request: props.column.edit?.request })\n\n const requestOptions = debounce(async (newRow?: any) => {\n const row = { ...props.item, ...newRow }\n const params = { rowKey: props.rowKey }\n props.column.edit?.dependencies?.forEach((dataIndex) => {\n const newValue = get(row, dataIndex)\n set(params, dataIndex, newValue)\n })\n loading.value = true\n const result = await fetchData(params)\n fetchOptions.value = result\n loading.value = false\n }, 200)\n\n const onEditChange = (val: any, ...args: any) => {\n const valueSetter = props.column.edit?.valueSetter\n if (valueSetter) {\n valueSetter(cellParams.value)\n } else {\n editProps.value?.onChange?.(val, ...args, cellParams.value)\n editOnListeners.value?.onChange?.(cellParams.value)\n updateEditRow()\n }\n validateEdit()\n }\n\n const updateRecordValue = debounce(async (newValue) => {\n let record: any = {}\n let dataSource = tableContext.rawData.value || []\n recordIndexs.value.forEach((index) => {\n record = dataSource[index]\n dataSource = record[tableContext.childrenColumnName.value] || []\n })\n set(record, props.column.dataIndex!, newValue)\n triggerRef(tableContext.rawData)\n }, 200)\n\n watch(\n cellValue,\n (value) => {\n editValue.value = props.column.edit?.valueGetter?.(cellParams.value) ?? value\n if (!props.isRowEdit) {\n updateRecordValue(value)\n }\n },\n { immediate: true },\n )\n\n watch(\n () => props.editRow,\n (newRow, oldRow) => {\n if (hasFetchOptions.value) {\n const isSame = props.column.edit?.dependencies?.every((dataIndex) => {\n const newValue = get(newRow, dataIndex)\n const oldIndex = get(oldRow, dataIndex)\n return isEqual(newValue, oldIndex)\n })\n if (!isSame) {\n requestOptions(newRow)\n }\n }\n },\n )\n\n onMounted(() => {\n if (!props.isRowEdit && !editRowsMap.value[props.rowKey!]) {\n editRowsMap.value[props.rowKey!] = { ...props.item }\n triggerRef(editRowsMap)\n }\n if (props.column.edit?.request) {\n requestOptions()\n }\n setEditingCell(\n {\n recordIndexs: recordIndexs.value,\n column: props.column,\n rowKey: props.rowKey!,\n originRecord: props.item,\n rowIndex: props.rowIndex,\n columnKey: props.column.columnKey!,\n validateEdit,\n },\n true,\n )\n })\n\n onUnmounted(() => {\n setEditingCell(\n {\n recordIndexs: recordIndexs.value,\n column: props.column,\n rowKey: props.rowKey!,\n originRecord: props.item,\n rowIndex: props.rowIndex,\n columnKey: props.column.columnKey!,\n validateEdit,\n },\n false,\n )\n props.column?.edit?.onEdited?.(cellParams.value)\n })\n\n return () => {\n const Component = props.column.edit?.component\n const errorMessage = errorList.value?.[0]?.message\n const inlineError = props.column.edit?.inlineError\n const tmpEditOnListeners = { ...editOnListeners.value }\n delete tmpEditOnListeners.onChange\n return (\n <div\n {...cellProps.value}\n class={cellClass.value}\n tabindex=\"-1\"\n role=\"cell\"\n data-column-key={columnKey.value}\n data-level={level}\n aria-selected=\"true\"\n onClick={(e: MouseEvent) => {\n e.stopPropagation()\n }}\n >\n <div class={`${props.prefixCls}-cell-content`} style=\"width: 100%; position:relative\">\n <Component\n style=\"width: 100%\"\n status={errorMessage ? 'error' : undefined}\n v-model:value={editValue.value}\n getPopupContainer={() => document.body}\n {...componentProps.value}\n {...tmpEditOnListeners}\n options={options.value}\n onChange={onEditChange}\n />\n {errorMessage &&\n (!inlineError ? (\n <Popover\n arrowPointAtCenter\n placement=\"topRight\"\n getPopupContainer={() => document.body}\n v-slots={{\n content: () => (\n <div class={`${props.prefixCls}-cell-content-error-message`}>\n {errorList.value?.map((error) => (\n <div key={error.message}>{error.message}</div>\n ))}\n </div>\n ),\n }}\n >\n <span class={`${props.prefixCls}-cell-content-error`}>\n <CloseCircleFilled />\n </span>\n </Popover>\n ) : (\n <div class={`${props.prefixCls}-cell-content-error-inline`}>{errorMessage}</div>\n ))}\n </div>\n </div>\n )\n }\n },\n})\n"],"names":["parsingValueEnumToArray","valueEnum","enumArray","valueKeys","Object","keys","length","forEach","key","value","text","push","label","disabled","inheritAttrs","props","prefixCls","String","rowIndex","type","Number","required","flattenRowIndex","rowKey","column","default","item","isRowEdit","Boolean","editRow","emits","setup","loading","ref","tableContext","useInjectTable","level","useInjectLevel","fetchOptions","columnKey","computed","recordIndexs","getIndexsByKey","_a","runFunction","originValue","get","dataIndex","errorList","editRowsMap","setEditingCell","useEditInject","cellValue","undefined","cellRender","allCellProps","cellProps","cellRowSpan","rowSpan","sorterState","sorterStates","find","sorterOrder","sortOrder","cellClass","columnIndex","hasFetchOptions","edit","request","dependencies","rules","record","newValue","validateEnabled","editValue","updateEditedCellValue","setTimeout","set","triggerRef","cellParams","editOnListeners","on","editProps","isFunction","options","componentProps","tmpProps","onChange","validateEdit","Promise","resolve","isEqual","validate","then","result","list","filter","t","updateEditRow","fetchData","useFetchData","requestOptions","debounce","newRow","row","params","onEditChange","val","args","valueSetter","updateRecordValue","dataSource","rawData","index","childrenColumnName","watch","valueGetter","immediate","oldRow","isSame","every","oldIndex","onMounted","originRecord","onUnmounted","onEdited","Component","component","errorMessage","message","inlineError","tmpEditOnListeners","_createVNode","_mergeProps","e","stopPropagation","$event","getPopupContainer","document","body","Popover","CloseCircleFilled","content","map","error"],"mappings":"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"}
@@ -69,7 +69,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
69
69
  record: _ctx.record,
70
70
  onMouseenter: ($event) => _ctx.handleCellHover(_ctx.rowKey, column.columnKey, _ctx.tableContext.draggingRowKey.value),
71
71
  onMouseleave: _ctx.handleCellBlur
72
- }, null, 8, ["prefix-cls", "row-key", "row-index", "type", "column", "expanded", "expandIconType", "support-expand", "record", "onMouseenter", "onMouseleave"])) : column && ((_b = column.edit) == null ? void 0 : _b.component) && _ctx.isCurrentEditRow ? (openBlock(), createBlock(_component_BodyCell, {
72
+ }, null, 8, ["prefix-cls", "row-key", "row-index", "type", "column", "expanded", "expandIconType", "support-expand", "record", "onMouseenter", "onMouseleave"])) : column && ((_b = column.edit) == null ? void 0 : _b.component) ? (openBlock(), createBlock(_component_BodyCell, {
73
73
  key: 1,
74
74
  "prefix-cls": _ctx.prefixCls,
75
75
  item: _ctx.record,
@@ -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-12-02 15:53:41\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 { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport { useEditInject } from '../../hooks/useEdit'\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.vue'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\nimport BodyTextCell from './BodyTextCell'\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 BodyTextCell,\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, isRowEdit, mergedEditableKeys, editRowsMap, closeEditor, openEditor } =\n useEditInject()\n const editRow = computed(() => editRowsMap.value[props.rowKey])\n let isUnmount = false\n const bodyRow = ref()\n\n const isCurrentEditRow = computed(() => {\n if (isRowEdit.value) {\n return mergedEditableKeys.value?.includes(props.rowKey)\n }\n return true\n })\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 isCurrentEditRow,\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 editCellKeys,\n isRowEdit,\n editRow,\n mergedEditableKeys,\n openEditor,\n closeEditor,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n mergedTooltipOpen,\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 && column.edit?.component && isCurrentEditRow\"\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 :editable-keys=\"mergedEditableKeys\"\n :is-row-edit=\"isRowEdit\"\n :edit-row=\"editRow\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\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 <BodyTextCell\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 >\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 </BodyTextCell>\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-12-04 17:30:59\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 { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport { useEditInject } from '../../hooks/useEdit'\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.vue'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\nimport BodyTextCell from './BodyTextCell'\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 BodyTextCell,\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, isRowEdit, mergedEditableKeys, editRowsMap, closeEditor, openEditor } =\n useEditInject()\n const editRow = computed(() => editRowsMap.value[props.rowKey])\n let isUnmount = false\n const bodyRow = ref()\n\n const isCurrentEditRow = computed(() => {\n if (isRowEdit.value) {\n return mergedEditableKeys.value?.includes(props.rowKey)\n }\n return true\n })\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 isCurrentEditRow,\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 editCellKeys,\n isRowEdit,\n editRow,\n mergedEditableKeys,\n openEditor,\n closeEditor,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n mergedTooltipOpen,\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 && column.edit?.component\"\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 :editable-keys=\"mergedEditableKeys\"\n :is-row-edit=\"isRowEdit\"\n :edit-row=\"editRow\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\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 <BodyTextCell\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 >\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 </BodyTextCell>\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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"}