pro-design-vue 1.3.21 → 1.3.23

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 (127) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +1217 -1585
  3. package/dist/index.full.min.js +7 -9
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +7 -9
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +1218 -1586
  8. package/es/components/config-provider/src/typing.d.ts +1 -0
  9. package/es/components/table/src/components/Body/Body.vue.d.ts +261 -15
  10. package/es/components/table/src/components/Body/BodyCell.vue.d.ts +255 -0
  11. package/es/components/table/src/components/Body/BodyEditCell.d.ts +61 -0
  12. package/es/components/table/src/components/Body/BodyRow.vue.d.ts +261 -15
  13. package/es/components/table/src/components/Body/BodyRows.vue.d.ts +261 -15
  14. package/es/components/table/src/components/Body/{BodyCell.d.ts → BodyTextCell.d.ts} +1 -7
  15. package/es/components/table/src/components/InteralTable.vue.d.ts +314 -19
  16. package/es/components/table/src/components/Table.d.ts +51 -0
  17. package/es/components/table/src/components/context/TableContext.d.ts +4 -0
  18. package/es/components/table/src/components/interface.d.ts +290 -23
  19. package/es/components/table/src/hooks/useCellProps.d.ts +5 -1
  20. package/es/components/table/src/hooks/useEdit.d.ts +24 -7
  21. package/es/components/table/src/utils/form-model.d.ts +25 -0
  22. package/es/components/table/src/utils/util.d.ts +1 -0
  23. package/es/index.d.ts +271 -5
  24. package/es/packages/components/table/src/components/Body/BodyCell.vue.mjs +35 -0
  25. package/es/packages/components/table/src/components/Body/BodyCell.vue.mjs.map +1 -0
  26. package/es/packages/components/table/src/components/Body/BodyCell.vue2.mjs +129 -0
  27. package/es/packages/components/table/src/components/Body/BodyCell.vue2.mjs.map +1 -0
  28. package/es/packages/components/table/src/components/Body/BodyEditCell.mjs +292 -0
  29. package/es/packages/components/table/src/components/Body/BodyEditCell.mjs.map +1 -0
  30. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs +63 -8
  31. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
  32. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs +24 -18
  33. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
  34. package/es/packages/components/table/src/components/Body/{BodyCell.mjs → BodyTextCell.mjs} +25 -155
  35. package/es/packages/components/table/src/components/Body/BodyTextCell.mjs.map +1 -0
  36. package/es/packages/components/table/src/components/InteralTable.vue.mjs +24 -25
  37. package/es/packages/components/table/src/components/InteralTable.vue.mjs.map +1 -1
  38. package/es/packages/components/table/src/components/InteralTable.vue2.mjs +36 -97
  39. package/es/packages/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
  40. package/es/packages/components/table/src/components/Table.mjs +24 -20
  41. package/es/packages/components/table/src/components/Table.mjs.map +1 -1
  42. package/es/packages/components/table/src/components/context/TableContext.mjs.map +1 -1
  43. package/es/packages/components/table/src/components/interface.mjs +24 -0
  44. package/es/packages/components/table/src/components/interface.mjs.map +1 -1
  45. package/es/packages/components/table/src/hooks/useCellProps.mjs +8 -0
  46. package/es/packages/components/table/src/hooks/useCellProps.mjs.map +1 -1
  47. package/es/packages/components/table/src/hooks/useEdit.mjs +293 -18
  48. package/es/packages/components/table/src/hooks/useEdit.mjs.map +1 -1
  49. package/es/packages/components/table/src/utils/form-model.mjs +98 -0
  50. package/es/packages/components/table/src/utils/form-model.mjs.map +1 -0
  51. package/es/packages/components/table/src/utils/util.mjs +4 -1
  52. package/es/packages/components/table/src/utils/util.mjs.map +1 -1
  53. package/es/packages/utils/dom.mjs +15 -1
  54. package/es/packages/utils/dom.mjs.map +1 -1
  55. package/es/packages/utils/index.mjs +1 -1
  56. package/es/utils/dom.d.ts +2 -0
  57. package/es/version.d.ts +1 -1
  58. package/es/version.mjs +1 -1
  59. package/es/version.mjs.map +1 -1
  60. package/lib/components/config-provider/src/typing.d.ts +1 -0
  61. package/lib/components/table/src/components/Body/Body.vue.d.ts +261 -15
  62. package/lib/components/table/src/components/Body/BodyCell.vue.d.ts +255 -0
  63. package/lib/components/table/src/components/Body/BodyEditCell.d.ts +61 -0
  64. package/lib/components/table/src/components/Body/BodyRow.vue.d.ts +261 -15
  65. package/lib/components/table/src/components/Body/BodyRows.vue.d.ts +261 -15
  66. package/lib/components/table/src/components/Body/{BodyCell.d.ts → BodyTextCell.d.ts} +1 -7
  67. package/lib/components/table/src/components/InteralTable.vue.d.ts +314 -19
  68. package/lib/components/table/src/components/Table.d.ts +51 -0
  69. package/lib/components/table/src/components/context/TableContext.d.ts +4 -0
  70. package/lib/components/table/src/components/interface.d.ts +290 -23
  71. package/lib/components/table/src/hooks/useCellProps.d.ts +5 -1
  72. package/lib/components/table/src/hooks/useEdit.d.ts +24 -7
  73. package/lib/components/table/src/utils/form-model.d.ts +25 -0
  74. package/lib/components/table/src/utils/util.d.ts +1 -0
  75. package/lib/index.d.ts +271 -5
  76. package/lib/packages/components/table/src/components/Body/BodyCell.vue.js +39 -0
  77. package/lib/packages/components/table/src/components/Body/BodyCell.vue.js.map +1 -0
  78. package/lib/packages/components/table/src/components/Body/BodyCell.vue2.js +133 -0
  79. package/lib/packages/components/table/src/components/Body/BodyCell.vue2.js.map +1 -0
  80. package/lib/packages/components/table/src/components/Body/BodyEditCell.js +297 -0
  81. package/lib/packages/components/table/src/components/Body/BodyEditCell.js.map +1 -0
  82. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js +63 -8
  83. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
  84. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js +22 -16
  85. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
  86. package/lib/packages/components/table/src/components/Body/{BodyCell.js → BodyTextCell.js} +24 -154
  87. package/lib/packages/components/table/src/components/Body/BodyTextCell.js.map +1 -0
  88. package/lib/packages/components/table/src/components/InteralTable.vue.js +24 -25
  89. package/lib/packages/components/table/src/components/InteralTable.vue.js.map +1 -1
  90. package/lib/packages/components/table/src/components/InteralTable.vue2.js +36 -97
  91. package/lib/packages/components/table/src/components/InteralTable.vue2.js.map +1 -1
  92. package/lib/packages/components/table/src/components/Table.js +24 -20
  93. package/lib/packages/components/table/src/components/Table.js.map +1 -1
  94. package/lib/packages/components/table/src/components/context/TableContext.js.map +1 -1
  95. package/lib/packages/components/table/src/components/interface.js +24 -0
  96. package/lib/packages/components/table/src/components/interface.js.map +1 -1
  97. package/lib/packages/components/table/src/hooks/useCellProps.js +8 -0
  98. package/lib/packages/components/table/src/hooks/useCellProps.js.map +1 -1
  99. package/lib/packages/components/table/src/hooks/useEdit.js +292 -17
  100. package/lib/packages/components/table/src/hooks/useEdit.js.map +1 -1
  101. package/lib/packages/components/table/src/utils/form-model.js +102 -0
  102. package/lib/packages/components/table/src/utils/form-model.js.map +1 -0
  103. package/lib/packages/components/table/src/utils/util.js +4 -0
  104. package/lib/packages/components/table/src/utils/util.js.map +1 -1
  105. package/lib/packages/utils/dom.js +16 -0
  106. package/lib/packages/utils/dom.js.map +1 -1
  107. package/lib/packages/utils/index.js +2 -0
  108. package/lib/packages/utils/index.js.map +1 -1
  109. package/lib/utils/dom.d.ts +2 -0
  110. package/lib/version.d.ts +1 -1
  111. package/lib/version.js +1 -1
  112. package/lib/version.js.map +1 -1
  113. package/package.json +1 -1
  114. package/theme-chalk/index.css +1 -1
  115. package/theme-chalk/src/table/table.less +40 -2
  116. package/es/components/table/src/components/Body/EditInput.vue.d.ts +0 -102
  117. package/es/packages/components/table/src/components/Body/BodyCell.mjs.map +0 -1
  118. package/es/packages/components/table/src/components/Body/EditInput.vue.mjs +0 -48
  119. package/es/packages/components/table/src/components/Body/EditInput.vue.mjs.map +0 -1
  120. package/es/packages/components/table/src/components/Body/EditInput.vue2.mjs +0 -151
  121. package/es/packages/components/table/src/components/Body/EditInput.vue2.mjs.map +0 -1
  122. package/lib/components/table/src/components/Body/EditInput.vue.d.ts +0 -102
  123. package/lib/packages/components/table/src/components/Body/BodyCell.js.map +0 -1
  124. package/lib/packages/components/table/src/components/Body/EditInput.vue.js +0 -52
  125. package/lib/packages/components/table/src/components/Body/EditInput.vue.js.map +0 -1
  126. package/lib/packages/components/table/src/components/Body/EditInput.vue2.js +0 -155
  127. package/lib/packages/components/table/src/components/Body/EditInput.vue2.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BodyCell.vue2.js","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-09 22:29:52\n * @LastEditors: shen\n * @LastEditTime: 2025-12-02 17:16:19\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType } from 'vue'\nimport type { EditableTrigger, FinallyColumnType, Key, RowType } from '../interface'\nimport { defineComponent, computed, watch, onMounted } from 'vue'\nimport { get } from '@pro-design-vue/utils'\nimport { useInjectTable } from '../context/TableContext'\nimport { getCellKey } from '../../utils/util'\nimport BodyTextCell from './BodyTextCell'\nimport BodyEditCell from './BodyEditCell'\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] },\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n item: { type: Object as PropType<any>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n type: { type: String as PropType<RowType> },\n height: Number as PropType<number>,\n hasAppendNode: Boolean as PropType<boolean>,\n resizeObserver: { type: Object as PropType<ResizeObserver> },\n editRow: { type: Object as PropType<any> },\n calMaxHeight: Function,\n editCellKeys: Array as PropType<string[]>,\n editableKeys: Array as PropType<Key[]>,\n isRowEdit: Boolean as PropType<boolean>,\n tooltipOpen: Boolean as PropType<boolean>,\n getPopupContainer: Function as PropType<() => HTMLElement>,\n onOpenEditor: Function,\n onCloseEditor: Function,\n onCellLeave: Function,\n onMouseenter: Function,\n },\n emits: ['mouseenter', 'cellLeave'],\n components: { BodyTextCell, BodyEditCell },\n setup(props) {\n const tableContext = useInjectTable()\n const isKeepEditMode = computed(() => props.column.edit?.keepEditMode)\n const cellValue = computed(() =>\n props.column!.dataIndex ? get(props.item, props.column!.dataIndex) : undefined,\n )\n\n const key = computed(() => getCellKey(props.rowKey!, props.column.columnKey))\n\n const cellParams = computed(() => ({\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n value: cellValue.value,\n }))\n\n const editable = computed(() => {\n if (!props.column.edit?.component) {\n return false\n }\n if (props.isRowEdit && !props.editableKeys?.includes(props.rowKey!)) {\n return false\n }\n if (!props.column.edit?.editable) {\n return true\n }\n const cellEditable = props.column.edit?.editable(cellParams.value)\n return cellEditable\n })\n\n const isEditing = computed(() => {\n if (props.isRowEdit) {\n return editable.value && props.editableKeys?.includes(props.rowKey!)\n }\n if (!editable.value) {\n return false\n }\n if (isKeepEditMode.value) {\n return true\n }\n if (props.editCellKeys?.includes(key.value)) {\n return true\n }\n return false\n })\n\n const editableTrigger = computed(() => {\n let { editableTrigger = ['click'] } = props.column!.edit ?? {}\n editableTrigger = Array.isArray(editableTrigger) ? editableTrigger : [editableTrigger]\n return editableTrigger\n })\n\n const onCellEvent = (e: MouseEvent, trigger: EditableTrigger) => {\n if (editable.value && editableTrigger.value?.includes(trigger) && !props.isRowEdit) {\n openEditor()\n closeEditor()\n e.stopPropagation()\n e.preventDefault()\n }\n }\n\n const openEditor = () => {\n const oldValue = props.column.edit?.valueGetter?.(cellParams.value) ?? cellValue.value\n props.onOpenEditor?.(key.value, { [key.value]: oldValue })\n }\n\n const closeEditor = () => {\n props.onCloseEditor?.(key.value)\n }\n\n watch(key, () => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n onMounted(() => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n return {\n props,\n key,\n isEditing,\n editable,\n onCellEvent,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isEditing\">\n <BodyEditCell\n :key=\"key\"\n :prefixCls=\"prefixCls\"\n :rowIndex=\"rowIndex\"\n :flattenRowIndex=\"flattenRowIndex\"\n :rowKey=\"rowKey\"\n :column=\"column\"\n :item=\"item\"\n :edit-row=\"editRow\"\n :editable-keys=\"editableKeys\"\n :is-row-edit=\"isRowEdit\"\n />\n </template>\n <template v-else>\n <BodyTextCell\n v-bind=\"props\"\n :style=\"{ cursor: editable ? 'poiner' : '' }\"\n @click=\"onCellEvent($event, 'click')\"\n @dblClick=\"onCellEvent($event, 'dblClick')\"\n @contextmenu=\"onCellEvent($event, 'contextmenu')\"\n >\n <template #appendNode>\n <slot name=\"appendNode\" />\n </template>\n </BodyTextCell>\n </template>\n</template>\n"],"names":["defineComponent","BodyTextCell","BodyEditCell","useInjectTable","computed","get","getCellKey","editableTrigger","watch","onMounted"],"mappings":"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"}
@@ -0,0 +1,297 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var TableContext = require('../context/TableContext.js');
7
+ var antDesignVue = require('ant-design-vue');
8
+ var useLevel = require('../../hooks/useLevel.js');
9
+ var Icon = require('@ant-design/icons-vue');
10
+ var useEdit = require('../../hooks/useEdit.js');
11
+ var formModel = require('../../utils/form-model.js');
12
+ var runFunction = require('../../../../../utils/run-function.js');
13
+ var lodashUnified = require('lodash-unified');
14
+ var validate = require('../../../../../utils/validate.js');
15
+
16
+ const parsingValueEnumToArray = (valueEnum) => {
17
+ const enumArray = [];
18
+ const valueKeys = Object.keys(valueEnum != null ? valueEnum : {});
19
+ if (!(valueKeys == null ? void 0 : valueKeys.length)) {
20
+ return;
21
+ }
22
+ valueKeys.forEach((key) => {
23
+ const value = valueEnum[key];
24
+ if (!value) {
25
+ return;
26
+ }
27
+ if (typeof value === "object" && (value == null ? void 0 : value.text)) {
28
+ enumArray.push({
29
+ text: value == null ? void 0 : value.text,
30
+ value: key,
31
+ label: value == null ? void 0 : value.text,
32
+ disabled: value.disabled
33
+ });
34
+ return;
35
+ }
36
+ enumArray.push({
37
+ text: value,
38
+ value: key,
39
+ label: value
40
+ });
41
+ });
42
+ return enumArray;
43
+ };
44
+ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
45
+ inheritAttrs: false,
46
+ props: {
47
+ prefixCls: String,
48
+ rowIndex: {
49
+ type: Number,
50
+ required: true
51
+ },
52
+ flattenRowIndex: {
53
+ type: Number,
54
+ required: true
55
+ },
56
+ rowKey: {
57
+ type: [Number, String]
58
+ },
59
+ column: {
60
+ type: Object,
61
+ default: () => ({})
62
+ },
63
+ item: {
64
+ type: Object,
65
+ default: () => ({})
66
+ },
67
+ isRowEdit: Boolean,
68
+ editRow: {
69
+ type: Object
70
+ }
71
+ },
72
+ emits: ["closeEditor", "keydown"],
73
+ setup(props) {
74
+ const tableContext = TableContext.useInjectTable();
75
+ const level = useLevel.useInjectLevel();
76
+ const columnKey = vue.computed(() => props.column.columnKey);
77
+ const recordIndexs = vue.computed(() => tableContext.getIndexsByKey(props.rowKey));
78
+ const childrenColumnName = vue.computed(() => tableContext.props.childrenColumnName || "children");
79
+ const valueEnum = vue.computed(() => {
80
+ var _a;
81
+ return parsingValueEnumToArray(runFunction.runFunction((_a = props.column) == null ? void 0 : _a.valueEnum, props.item));
82
+ });
83
+ const errorList = vue.ref();
84
+ const {
85
+ editRowsMap,
86
+ setEditingCell
87
+ } = useEdit.useEditInject();
88
+ const cellValue = vue.computed(() => props.column.dataIndex ? lodashUnified.get(!props.isRowEdit ? props.item : props.editRow, props.column.dataIndex) : void 0);
89
+ const cellRender = vue.computed(() => {
90
+ var _a, _b;
91
+ return ((_b = (_a = tableContext.allCellProps.value) == null ? void 0 : _a[props.rowKey]) == null ? void 0 : _b[props.column.columnKey]) || {};
92
+ });
93
+ const cellProps = vue.computed(() => cellRender.value.props || {});
94
+ const cellRowSpan = vue.computed(() => cellProps.value.rowSpan);
95
+ const sorterState = vue.computed(() => tableContext.sorterStates.value.find(({
96
+ key
97
+ }) => key === columnKey.value));
98
+ const sorterOrder = vue.computed(() => {
99
+ var _a;
100
+ return sorterState.value ? (_a = sorterState.value) == null ? void 0 : _a.sortOrder : null;
101
+ });
102
+ const cellClass = vue.computed(() => ({
103
+ [`${props.prefixCls}-cell`]: true,
104
+ [`${props.prefixCls}-first-cell`]: props.column.columnIndex === 0,
105
+ [`${props.prefixCls}-body-cell`]: true,
106
+ [`${props.prefixCls}-cell-multi`]: cellRowSpan.value > 1,
107
+ [`${props.prefixCls}-cell-hidden`]: cellRowSpan.value === 0,
108
+ [`${props.prefixCls}-column-sort`]: sorterOrder.value
109
+ }));
110
+ const rules = vue.computed(() => {
111
+ var _a, _b;
112
+ return (_b = runFunction.runFunction((_a = props.column.edit) == null ? void 0 : _a.rules, {
113
+ column: props.column,
114
+ record: props.isRowEdit ? props.editRow : props.item,
115
+ recordIndexs: recordIndexs.value,
116
+ newValue: cellValue.value
117
+ })) != null ? _b : [];
118
+ });
119
+ const validateEnabled = vue.computed(() => rules.value.length > 0);
120
+ const editValue = vue.ref();
121
+ const cellParams = vue.computed(() => ({
122
+ column: props.column,
123
+ record: !props.isRowEdit ? props.item : props.editRow,
124
+ recordIndexs: recordIndexs.value,
125
+ value: editValue.value
126
+ }));
127
+ const editOnListeners = vue.computed(() => {
128
+ var _a, _b;
129
+ return ((_b = (_a = props.column.edit) == null ? void 0 : _a.on) == null ? void 0 : _b.call(_a, {
130
+ ...cellParams.value
131
+ })) || {};
132
+ });
133
+ const editProps = vue.computed(() => {
134
+ const {
135
+ edit = {}
136
+ } = props.column;
137
+ return validate.isFunction(edit.props) ? edit.props(cellParams.value) : {
138
+ ...edit.props
139
+ };
140
+ });
141
+ const options = vue.computed(() => {
142
+ var _a, _b;
143
+ return (_b = (_a = editProps.value) == null ? void 0 : _a.options) != null ? _b : valueEnum.value;
144
+ });
145
+ const componentProps = vue.computed(() => {
146
+ const {
147
+ edit
148
+ } = props.column;
149
+ if (!edit) return {};
150
+ const tmpProps = {
151
+ ...editProps.value
152
+ };
153
+ delete tmpProps.onChange;
154
+ delete tmpProps.value;
155
+ delete tmpProps.options;
156
+ return tmpProps;
157
+ });
158
+ const validateEdit = () => {
159
+ return new Promise((resolve) => {
160
+ if (!validateEnabled.value) {
161
+ resolve(true);
162
+ return true;
163
+ }
164
+ formModel.validate(editValue.value, rules.value).then((result) => {
165
+ const list = result == null ? void 0 : result.filter((t) => !t.result);
166
+ if (!list || !list.length) {
167
+ errorList.value = [];
168
+ resolve(true);
169
+ } else {
170
+ errorList.value = list;
171
+ resolve(list);
172
+ }
173
+ });
174
+ });
175
+ };
176
+ const onEditChange = (val, ...args) => {
177
+ var _a, _b, _c, _d, _e, _f, _g, _h;
178
+ const params = {
179
+ column: props.column,
180
+ record: props.isRowEdit ? props.editRow : props.item,
181
+ recordIndexs: recordIndexs.value,
182
+ newValue: cellValue.value
183
+ };
184
+ const value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueParser) == null ? void 0 : _b.call(_a, params)) != null ? _c : editValue.value;
185
+ const valueSetter = (_d = props.column.edit) == null ? void 0 : _d.valueSetter;
186
+ if (valueSetter) {
187
+ valueSetter(params);
188
+ } else {
189
+ (_f = (_e = editProps.value) == null ? void 0 : _e.onChange) == null ? void 0 : _f.call(_e, val, ...args);
190
+ (_h = (_g = editOnListeners.value) == null ? void 0 : _g.onChange) == null ? void 0 : _h.call(_g, params);
191
+ if (props.isRowEdit) {
192
+ const record = {
193
+ ...props.editRow
194
+ };
195
+ lodashUnified.set(record, props.column.dataIndex, value);
196
+ editRowsMap.value[props.rowKey] = record;
197
+ vue.triggerRef(editRowsMap);
198
+ } else {
199
+ let record = {};
200
+ let dataSource = tableContext.rawData.value || [];
201
+ recordIndexs.value.forEach((index) => {
202
+ record = dataSource[index];
203
+ dataSource = record[childrenColumnName.value] || [];
204
+ });
205
+ lodashUnified.set(record, props.column.dataIndex, value);
206
+ vue.triggerRef(tableContext.rawData);
207
+ }
208
+ }
209
+ validateEdit();
210
+ };
211
+ vue.watch(cellValue, (value) => {
212
+ var _a, _b, _c;
213
+ editValue.value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueGetter) == null ? void 0 : _b.call(_a, cellParams.value)) != null ? _c : value;
214
+ }, {
215
+ immediate: true
216
+ });
217
+ vue.onMounted(() => {
218
+ setEditingCell({
219
+ recordIndexs: recordIndexs.value,
220
+ column: props.column,
221
+ rowKey: props.rowKey,
222
+ originRecord: props.item,
223
+ rowIndex: props.rowIndex,
224
+ columnKey: props.column.columnKey,
225
+ validateEdit
226
+ }, true);
227
+ });
228
+ vue.onUnmounted(() => {
229
+ var _a, _b, _c;
230
+ setEditingCell({
231
+ recordIndexs: recordIndexs.value,
232
+ column: props.column,
233
+ rowKey: props.rowKey,
234
+ originRecord: props.item,
235
+ rowIndex: props.rowIndex,
236
+ columnKey: props.column.columnKey,
237
+ validateEdit
238
+ }, false);
239
+ (_c = (_b = (_a = props.column) == null ? void 0 : _a.edit) == null ? void 0 : _b.onEdited) == null ? void 0 : _c.call(_b, cellParams.value);
240
+ });
241
+ return () => {
242
+ var _a, _b, _c, _d;
243
+ const Component = (_a = props.column.edit) == null ? void 0 : _a.component;
244
+ const errorMessage = (_c = (_b = errorList.value) == null ? void 0 : _b[0]) == null ? void 0 : _c.message;
245
+ const inlineError = (_d = props.column.edit) == null ? void 0 : _d.inlineError;
246
+ const tmpEditOnListeners = {
247
+ ...editOnListeners.value
248
+ };
249
+ delete tmpEditOnListeners.onChange;
250
+ return vue.createVNode("div", vue.mergeProps(cellProps.value, {
251
+ "class": cellClass.value,
252
+ "tabindex": "-1",
253
+ "role": "cell",
254
+ "data-column-key": columnKey.value,
255
+ "data-level": level,
256
+ "aria-selected": "true",
257
+ "onClick": (e) => {
258
+ e.stopPropagation();
259
+ }
260
+ }), [vue.createVNode("div", {
261
+ "class": `${props.prefixCls}-cell-content`,
262
+ "style": "width: 100%; position:relative"
263
+ }, [vue.createVNode(Component, vue.mergeProps({
264
+ "style": "width: 100%",
265
+ "status": errorMessage ? "error" : void 0,
266
+ "value": editValue.value,
267
+ "onUpdate:value": ($event) => editValue.value = $event,
268
+ "getPopupContainer": () => document.body
269
+ }, componentProps.value, tmpEditOnListeners, {
270
+ "options": options.value,
271
+ "onChange": onEditChange
272
+ }), null), errorMessage && (!inlineError ? vue.createVNode(antDesignVue.Popover, {
273
+ "arrowPointAtCenter": true,
274
+ "placement": "topRight",
275
+ "getPopupContainer": () => document.body
276
+ }, {
277
+ default: () => [vue.createVNode("span", {
278
+ "class": `${props.prefixCls}-cell-content-error`
279
+ }, [vue.createVNode(Icon.CloseCircleFilled, null, null)])],
280
+ content: () => {
281
+ var _a2;
282
+ return vue.createVNode("div", {
283
+ "class": `${props.prefixCls}-cell-content-error-message`
284
+ }, [(_a2 = errorList.value) == null ? void 0 : _a2.map((error) => vue.createVNode("div", {
285
+ "key": error.message
286
+ }, [error.message]))]);
287
+ }
288
+ }) : vue.createVNode("div", {
289
+ "class": `${props.prefixCls}-cell-content-error-inline`
290
+ }, [errorMessage]))])]);
291
+ };
292
+ }
293
+ });
294
+
295
+ exports.default = BodyEditCell;
296
+ exports.parsingValueEnumToArray = parsingValueEnumToArray;
297
+ //# sourceMappingURL=BodyEditCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BodyEditCell.js","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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"}
@@ -13,6 +13,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
13
13
  const _component_BodyExtraCell = vue.resolveComponent("BodyExtraCell");
14
14
  const _component_ExpandIcon = vue.resolveComponent("ExpandIcon");
15
15
  const _component_BodyCell = vue.resolveComponent("BodyCell");
16
+ const _component_BodyTextCell = vue.resolveComponent("BodyTextCell");
16
17
  const _component_RenderSlot = vue.resolveComponent("RenderSlot");
17
18
  return _ctx.isExpandRow ? (vue.openBlock(), vue.createElementBlock(
18
19
  vue.Fragment,
@@ -52,7 +53,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
52
53
  vue.Fragment,
53
54
  null,
54
55
  vue.renderList(_ctx.mergedColumns, (column, index) => {
55
- var _a;
56
+ var _a, _b;
56
57
  return vue.openBlock(), vue.createElementBlock(
57
58
  vue.Fragment,
58
59
  {
@@ -72,7 +73,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
72
73
  record: _ctx.record,
73
74
  onMouseenter: ($event) => _ctx.handleCellHover(_ctx.rowKey, column.columnKey, _ctx.tableContext.draggingRowKey.value),
74
75
  onMouseleave: _ctx.handleCellBlur
75
- }, null, 8, ["prefix-cls", "row-key", "row-index", "type", "column", "expanded", "expandIconType", "support-expand", "record", "onMouseenter", "onMouseleave"])) : column ? (vue.openBlock(), vue.createBlock(_component_BodyCell, {
76
+ }, 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 ? (vue.openBlock(), vue.createBlock(_component_BodyCell, {
76
77
  key: 1,
77
78
  "prefix-cls": _ctx.prefixCls,
78
79
  item: _ctx.record,
@@ -89,14 +90,13 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
89
90
  "get-popup-container": _ctx.getPopupContainer,
90
91
  "tooltip-open": _ctx.mergedTooltipOpen && _ctx.hoverColumnKey === column.columnKey,
91
92
  "edit-cell-keys": _ctx.editCellKeys,
93
+ "editable-keys": _ctx.mergedEditableKeys,
94
+ "is-row-edit": _ctx.isRowEdit,
95
+ "edit-row": _ctx.editRow,
92
96
  onCloseEditor: _ctx.closeEditor,
93
97
  onOpenEditor: _ctx.openEditor,
94
98
  onMouseenter: ($event) => _ctx.handleCellHover(_ctx.rowKey, column.columnKey, _ctx.tableContext.draggingRowKey.value),
95
- onCellLeave: _ctx.handleCellBlur,
96
- onMousedown: _ctx.onCellMousedown,
97
- onMousemove: _ctx.onCellMousemove,
98
- onKeydown: _ctx.onCellKeydown,
99
- onClick: _ctx.onCellClick
99
+ onCellLeave: _ctx.handleCellBlur
100
100
  }, {
101
101
  appendNode: vue.withCtx(() => [
102
102
  vue.createElementVNode(
@@ -131,7 +131,62 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
131
131
  ]),
132
132
  _: 1
133
133
  /* STABLE */
134
- }, 8, ["prefix-cls", "item", "row-key", "type", "row-index", "flatten-row-index", "wrap-text", "column", "resize-observer", "cal-max-height", "has-append-node", "height", "get-popup-container", "tooltip-open", "edit-cell-keys", "onCloseEditor", "onOpenEditor", "onMouseenter", "onCellLeave", "onMousedown", "onMousemove", "onKeydown", "onClick"])) : vue.createCommentVNode("v-if", true)
134
+ }, 8, ["prefix-cls", "item", "row-key", "type", "row-index", "flatten-row-index", "wrap-text", "column", "resize-observer", "cal-max-height", "has-append-node", "height", "get-popup-container", "tooltip-open", "edit-cell-keys", "editable-keys", "is-row-edit", "edit-row", "onCloseEditor", "onOpenEditor", "onMouseenter", "onCellLeave"])) : column ? (vue.openBlock(), vue.createBlock(_component_BodyTextCell, {
135
+ key: 2,
136
+ "prefix-cls": _ctx.prefixCls,
137
+ item: _ctx.record,
138
+ "row-key": _ctx.rowKey,
139
+ type: _ctx.type,
140
+ "row-index": _ctx.rowIndex,
141
+ "flatten-row-index": _ctx.flattenRowIndex,
142
+ "wrap-text": _ctx.wrapText,
143
+ column,
144
+ "resize-observer": _ctx.resizeObserver,
145
+ "cal-max-height": _ctx.calMaxHeight,
146
+ "has-append-node": column.columnIndex === _ctx.expandIconColumnIndex && _ctx.nestExpandable,
147
+ height: _ctx.cellHeight,
148
+ "get-popup-container": _ctx.getPopupContainer,
149
+ "tooltip-open": _ctx.mergedTooltipOpen && _ctx.hoverColumnKey === column.columnKey,
150
+ "edit-cell-keys": _ctx.editCellKeys,
151
+ onCloseEditor: _ctx.closeEditor,
152
+ onOpenEditor: _ctx.openEditor,
153
+ onMouseenter: ($event) => _ctx.handleCellHover(_ctx.rowKey, column.columnKey, _ctx.tableContext.draggingRowKey.value),
154
+ onCellLeave: _ctx.handleCellBlur
155
+ }, {
156
+ appendNode: vue.withCtx(() => [
157
+ vue.createElementVNode(
158
+ "div",
159
+ {
160
+ class: vue.normalizeClass(`${_ctx.prefixCls}-append-node`)
161
+ },
162
+ [
163
+ vue.createElementVNode(
164
+ "span",
165
+ {
166
+ style: vue.normalizeStyle(`padding-left: ${(_ctx.indent || 0) * _ctx.indentSize}px`),
167
+ class: vue.normalizeClass(`${_ctx.prefixCls}-row-indent indent-level-${_ctx.indent}`)
168
+ },
169
+ null,
170
+ 6
171
+ /* CLASS, STYLE */
172
+ ),
173
+ vue.createVNode(_component_ExpandIcon, {
174
+ expanded: _ctx.expanded,
175
+ expandIconType: _ctx.expandIconType,
176
+ "prefix-cls": _ctx.prefixCls,
177
+ expandable: _ctx.hasNestChildren,
178
+ record: _ctx.record,
179
+ disabled: !_ctx.mergedExpandable,
180
+ onExpand: _ctx.onInternalTriggerExpand
181
+ }, null, 8, ["expanded", "expandIconType", "prefix-cls", "expandable", "record", "disabled", "onExpand"])
182
+ ],
183
+ 2
184
+ /* CLASS */
185
+ )
186
+ ]),
187
+ _: 1
188
+ /* STABLE */
189
+ }, 8, ["prefix-cls", "item", "row-key", "type", "row-index", "flatten-row-index", "wrap-text", "column", "resize-observer", "cal-max-height", "has-append-node", "height", "get-popup-container", "tooltip-open", "edit-cell-keys", "onCloseEditor", "onOpenEditor", "onMouseenter", "onCellLeave"])) : vue.createCommentVNode("v-if", true)
135
190
  ],
136
191
  64
137
192
  /* STABLE_FRAGMENT */
@@ -1 +1 @@
1
- {"version":3,"file":"BodyRow.vue.js","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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"}
1
+ {"version":3,"file":"BodyRow.vue.js","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":";;;;;;;;;;;;;;;;;SAoXkB,IAAA,CAAA,WAAA,IAAAA,aAAA,EAAA,EAAhBC,sBAAA;AAAA,IAkBWC,YAAA;AAAA,IAAA,EAAA,KAAA,CAAA,EAAA;AAAA,IAAA;AAAA,MAhBD,KAAA,gBAAA,KAAgB,CAAA,qBADxBD,uBAgBM,KAAA,EAAA;AAAA,QAAA,GAAA,EAAA,CAAA;AAAA,QAdJ,GAAA,EAAI,SAAA;AAAA,QACH,gBAAc,IAAA,CAAA,MAAA;AAAA,QACd,KAAA,EAAKE,kBAAA,CAAE,IAAA,CAAA,cAAc,CAAA;AAAA,QACrB,KAAA,EAAKC,kBAAA,CAAE,IAAA,CAAA,QAAQ,CAAA;AAAA,QAChB,IAAA,EAAK;AAAA,OAAA,EAAA;AAAA,QAELC,gBAOE,sBAAA,EAAA;AAAA,UANC,cAAY,IAAA,CAAA,SAAA;AAAA,UACZ,MAAM,IAAA,CAAA,MAAA;AAAA,UACN,WAAS,IAAA,CAAA,MAAA;AAAA,UACT,aAAW,IAAA,CAAA,QAAA;AAAA,UACX,mBAAiB,IAAA,CAAA,cAAA;AAAA,UACjB,kBAAgB,IAAA,CAAA;AAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,QAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,CAAA;AAAA;;;;yBAIvBJ,sBAAA,CAsHM,KAAA,EAtHNK,cAAA,CAsHM,EAAA,GAAA,EAAA,CAAA,EAAA,EApHI,IAAA,CAAA,cAAA,EAAc;AAAA,IACtB,GAAA,EAAI,SAAA;AAAA,IACH,OAAO,IAAA,CAAA,QAAA;AAAA,IACP,OAAO,IAAA,CAAA,QAAA;AAAA,IACP,gBAAc,IAAA,CAAA,MAAA;AAAA,IACf,IAAA,EAAK,KAAA;AAAA,IACJ,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAE,IAAA,CAAA,WAAA,IAAA,IAAA,CAAA,WAAA,CAAA,GAAA,IAAA,CAAA;AAAA,GAAA,CAAA,EAAA;AAAA,IAERD,eAAA,CA0Ga,uBAAA,IAAA,EAAA;AAAA,MAAA,OAAA,EAAAE,YAzGD,MAAwC;AAAA,SAAAP,aAAA,CAAA,IAAA,CAAA,EAAlDC,sBAAA;AAAA,UAwGWC,YAAA;AAAA,UAAA,IAAA;AAAA,UAAAM,cAAA,CAxGyB,IAAA,CAAA,aAAA,EAAa,CAA/B,QAAQ,KAAA,KAAK;;;;;gBAA0B,GAAA,EAAA,UAAU,MAAA,CAAO;AAAA,eAAA;AAAA;gBAEhE,UAAU,MAAA,CAAO,oBAAA,qBADzBC,gBAeE,wBAAA,EAAA;AAAA,kBAAA,GAAA,EAAA,CAAA;AAAA,kBAbC,cAAY,IAAA,CAAA,SAAA;AAAA,kBACZ,WAAS,IAAA,CAAA,MAAA;AAAA,kBACT,aAAW,IAAA,CAAA,QAAA;AAAA,kBACX,MAAM,IAAA,CAAA,IAAA;AAAA,kBACN,MAAA,EAAA,CAAQ,EAAA,GAAA,IAAA,mBAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAgB,KAAA,CAAA;AAAA,kBACxB,UAAU,IAAA,CAAA,QAAA;AAAA,kBACV,gBAAgB,IAAA,CAAA,cAAA;AAAA,kBAChB,kBAAgB,IAAA,CAAA,gBAAA;AAAA,kBAChB,QAAQ,IAAA,CAAA,MAAA;AAAA,kBACR,YAAA,EAAU,YAAe,IAAA,CAAA,eAAA,CAAgB,IAAA,CAAA,MAAA,EAAQ,MAAA,CAAO,SAAA,EAAW,IAAA,CAAA,YAAA,CAAa,cAAA,CAAe,KAAK,CAAA;AAAA,kBAGpG,cAAY,IAAA,CAAA;AAAA,iBAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,cAAA,CAAA,CAAA,IAGF,MAAA,KAAA,CAAU,EAAA,GAAA,MAAA,CAAO,IAAA,KAAP,IAAA,GAAA,MAAA,GAAA,EAAA,CAAa,SAAA,CAAA,IAAa,IAAA,sCADjDA,eAAA,CA4CW,mBAAA,EAAA;AAAA,kBAAA,GAAA,EAAA,CAAA;AAAA,kBA1CR,cAAY,IAAA,CAAA,SAAA;AAAA,kBACZ,MAAM,IAAA,CAAA,MAAA;AAAA,kBACN,WAAS,IAAA,CAAA,MAAA;AAAA,kBACT,MAAM,IAAA,CAAA,IAAA;AAAA,kBACN,aAAW,IAAA,CAAA,QAAA;AAAA,kBACX,qBAAmB,IAAA,CAAA,eAAA;AAAA,kBACnB,aAAW,IAAA,CAAA,QAAA;AAAA,kBACX,MAAA;AAAA,kBACA,mBAAiB,IAAA,CAAA,cAAA;AAAA,kBACjB,kBAAgB,IAAA,CAAA,YAAA;AAAA,kBAChB,iBAAA,EAAiB,MAAA,CAAO,WAAA,KAAgB,IAAA,CAAA,yBAAyB,IAAA,CAAA,cAAA;AAAA,kBACjE,QAAQ,IAAA,CAAA,UAAA;AAAA,kBACR,uBAAqB,IAAA,CAAA,iBAAA;AAAA,kBACrB,cAAA,EAAc,IAAA,CAAA,iBAAA,IAAqB,IAAA,CAAA,mBAAmB,MAAA,CAAO,SAAA;AAAA,kBAC7D,kBAAgB,IAAA,CAAA,YAAA;AAAA,kBAChB,iBAAe,IAAA,CAAA,kBAAA;AAAA,kBACf,eAAa,IAAA,CAAA,SAAA;AAAA,kBACb,YAAU,IAAA,CAAA,OAAA;AAAA,kBACV,eAAa,IAAA,CAAA,WAAA;AAAA,kBACb,cAAY,IAAA,CAAA,UAAA;AAAA,kBACZ,YAAA,EAAU,YAAe,IAAA,CAAA,eAAA,CAAgB,IAAA,CAAA,MAAA,EAAQ,MAAA,CAAO,SAAA,EAAW,IAAA,CAAA,YAAA,CAAa,cAAA,CAAe,KAAK,CAAA;AAAA,kBAGpG,aAAW,IAAA,CAAA;AAAA,iBAAA,EAAA;AAAA,kBAED,UAAA,EAAUF,YACnB,MAcM;AAAA,oBAdNG,sBAAA;AAAA,sBAcM,KAAA;AAAA,sBAAA;AAAA,wBAdA,KAAA,EAAKP,kBAAA,IAAK,IAAA,CAAA,SAAS,CAAA,YAAA,CAAA;AAAA,uBAAA;AAAA;wBACvBO,sBAAA;AAAA,0BAGQ,MAAA;AAAA,0BAAA;AAAA,4BAFL,KAAA,EAAKN,mBAAA,CAAA,cAAA,EAAA,CAAoB,IAAA,CAAA,UAAM,CAAA,IAAS,IAAA,CAAA,UAAU,CAAA,EAAA,CAAA,CAAA;AAAA,4BAClD,KAAA,EAAKD,mBAAA,CAAA,EAAK,IAAA,CAAA,SAAS,CAAA,yBAAA,EAA4B,IAAA,CAAA,MAAM,CAAA,CAAA;AAAA,2BAAA;AAAA;;;;wBAExDE,gBAQE,qBAAA,EAAA;AAAA,0BAPC,UAAU,IAAA,CAAA,QAAA;AAAA,0BACV,gBAAgB,IAAA,CAAA,cAAA;AAAA,0BAChB,cAAY,IAAA,CAAA,SAAA;AAAA,0BACZ,YAAY,IAAA,CAAA,eAAA;AAAA,0BACZ,QAAQ,IAAA,CAAA,MAAA;AAAA,0BACR,QAAA,EAAQ,CAAG,IAAA,CAAA,gBAAA;AAAA,0BACX,UAAQ,IAAA,CAAA;AAAA,yBAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,CAAA;AAAA;;;;;;;iBAMJ,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,kBAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,UAAA,EAAA,iBAAA,cAAA,EAAA,cAAA,EAAA,aAAA,CAAA,CAAA,IAAA,MAAA,IAAAL,aAAA,EAAA,EADbS,gBAyCe,uBAAA,EAAA;AAAA,kBAAA,GAAA,EAAA,CAAA;AAAA,kBAvCZ,cAAY,IAAA,CAAA,SAAA;AAAA,kBACZ,MAAM,IAAA,CAAA,MAAA;AAAA,kBACN,WAAS,IAAA,CAAA,MAAA;AAAA,kBACT,MAAM,IAAA,CAAA,IAAA;AAAA,kBACN,aAAW,IAAA,CAAA,QAAA;AAAA,kBACX,qBAAmB,IAAA,CAAA,eAAA;AAAA,kBACnB,aAAW,IAAA,CAAA,QAAA;AAAA,kBACX,MAAA;AAAA,kBACA,mBAAiB,IAAA,CAAA,cAAA;AAAA,kBACjB,kBAAgB,IAAA,CAAA,YAAA;AAAA,kBAChB,iBAAA,EAAiB,MAAA,CAAO,WAAA,KAAgB,IAAA,CAAA,yBAAyB,IAAA,CAAA,cAAA;AAAA,kBACjE,QAAQ,IAAA,CAAA,UAAA;AAAA,kBACR,uBAAqB,IAAA,CAAA,iBAAA;AAAA,kBACrB,cAAA,EAAc,IAAA,CAAA,iBAAA,IAAqB,IAAA,CAAA,mBAAmB,MAAA,CAAO,SAAA;AAAA,kBAC7D,kBAAgB,IAAA,CAAA,YAAA;AAAA,kBAChB,eAAa,IAAA,CAAA,WAAA;AAAA,kBACb,cAAY,IAAA,CAAA,UAAA;AAAA,kBACZ,YAAA,EAAU,YAAe,IAAA,CAAA,eAAA,CAAgB,IAAA,CAAA,MAAA,EAAQ,MAAA,CAAO,SAAA,EAAW,IAAA,CAAA,YAAA,CAAa,cAAA,CAAe,KAAK,CAAA;AAAA,kBAGpG,aAAW,IAAA,CAAA;AAAA,iBAAA,EAAA;AAAA,kBAED,UAAA,EAAUF,YACnB,MAcM;AAAA,oBAdNG,sBAAA;AAAA,sBAcM,KAAA;AAAA,sBAAA;AAAA,wBAdA,KAAA,EAAKP,kBAAA,IAAK,IAAA,CAAA,SAAS,CAAA,YAAA,CAAA;AAAA,uBAAA;AAAA;wBACvBO,sBAAA;AAAA,0BAGQ,MAAA;AAAA,0BAAA;AAAA,4BAFL,KAAA,EAAKN,mBAAA,CAAA,cAAA,EAAA,CAAoB,IAAA,CAAA,UAAM,CAAA,IAAS,IAAA,CAAA,UAAU,CAAA,EAAA,CAAA,CAAA;AAAA,4BAClD,KAAA,EAAKD,mBAAA,CAAA,EAAK,IAAA,CAAA,SAAS,CAAA,yBAAA,EAA4B,IAAA,CAAA,MAAM,CAAA,CAAA;AAAA,2BAAA;AAAA;;;;wBAExDE,gBAQE,qBAAA,EAAA;AAAA,0BAPC,UAAU,IAAA,CAAA,QAAA;AAAA,0BACV,gBAAgB,IAAA,CAAA,cAAA;AAAA,0BAChB,cAAY,IAAA,CAAA,SAAA;AAAA,0BACZ,YAAY,IAAA,CAAA,eAAA;AAAA,0BACZ,QAAQ,IAAA,CAAA,MAAA;AAAA,0BACR,QAAA,EAAQ,CAAG,IAAA,CAAA,gBAAA;AAAA,0BACX,UAAQ,IAAA,CAAA;AAAA,yBAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;IAOV,IAAA,CAAA,IAAA,KAAI,QAAA,IAAAL,aAAA,EAAA,EAAfC,sBAAA;AAAA,MAAgF,KAAA;AAAA,MAAA;AAAA,QAAA,GAAA,EAAA,CAAA;AAAA,QAAjD,KAAA,EAAKE,mBAAA,CAAA,EAAK,IAAA,CAAA,SAAS,CAAA,aAAA,EAAgB,IAAA,CAAA,IAAI,CAAA,CAAA;AAAA,OAAA;AAAA;;;;;;;;;;"}