pro-design-vue 1.3.20 → 1.3.22

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 (145) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +1203 -1588
  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 +1204 -1589
  8. package/es/components/config-provider/src/typing.d.ts +3 -1
  9. package/es/components/table/src/components/Body/Body.vue.d.ts +270 -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 +60 -0
  12. package/es/components/table/src/components/Body/BodyExtraCell.vue.d.ts +6 -1
  13. package/es/components/table/src/components/Body/BodyRow.vue.d.ts +270 -15
  14. package/es/components/table/src/components/Body/BodyRows.vue.d.ts +270 -15
  15. package/es/components/table/src/components/Body/{BodyCell.d.ts → BodyTextCell.d.ts} +1 -7
  16. package/es/components/table/src/components/ExpandIcon.vue.d.ts +3 -0
  17. package/es/components/table/src/components/InteralTable.vue.d.ts +332 -19
  18. package/es/components/table/src/components/Table.d.ts +60 -0
  19. package/es/components/table/src/components/context/TableContext.d.ts +6 -1
  20. package/es/components/table/src/components/interface.d.ts +308 -23
  21. package/es/components/table/src/hooks/useCellProps.d.ts +5 -1
  22. package/es/components/table/src/hooks/useEdit.d.ts +24 -7
  23. package/es/components/table/src/utils/form-model.d.ts +25 -0
  24. package/es/components/table/src/utils/util.d.ts +1 -0
  25. package/es/index.d.ts +291 -5
  26. package/es/packages/components/table/src/components/Body/BodyCell.vue.mjs +35 -0
  27. package/es/packages/components/table/src/components/Body/BodyCell.vue.mjs.map +1 -0
  28. package/es/packages/components/table/src/components/Body/BodyCell.vue2.mjs +129 -0
  29. package/es/packages/components/table/src/components/Body/BodyCell.vue2.mjs.map +1 -0
  30. package/es/packages/components/table/src/components/Body/BodyEditCell.mjs +256 -0
  31. package/es/packages/components/table/src/components/Body/BodyEditCell.mjs.map +1 -0
  32. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue.mjs +2 -1
  33. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue.mjs.map +1 -1
  34. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue2.mjs +1 -0
  35. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue2.mjs.map +1 -1
  36. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs +66 -9
  37. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
  38. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs +26 -18
  39. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
  40. package/es/packages/components/table/src/components/Body/{BodyCell.mjs → BodyTextCell.mjs} +25 -155
  41. package/es/packages/components/table/src/components/Body/BodyTextCell.mjs.map +1 -0
  42. package/es/packages/components/table/src/components/ExpandIcon.vue.mjs.map +1 -1
  43. package/es/packages/components/table/src/components/ExpandIcon.vue2.mjs +4 -2
  44. package/es/packages/components/table/src/components/ExpandIcon.vue2.mjs.map +1 -1
  45. package/es/packages/components/table/src/components/InteralTable.vue.mjs +24 -25
  46. package/es/packages/components/table/src/components/InteralTable.vue.mjs.map +1 -1
  47. package/es/packages/components/table/src/components/InteralTable.vue2.mjs +43 -97
  48. package/es/packages/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
  49. package/es/packages/components/table/src/components/Table.mjs +24 -20
  50. package/es/packages/components/table/src/components/Table.mjs.map +1 -1
  51. package/es/packages/components/table/src/components/context/TableContext.mjs.map +1 -1
  52. package/es/packages/components/table/src/components/interface.mjs +28 -0
  53. package/es/packages/components/table/src/components/interface.mjs.map +1 -1
  54. package/es/packages/components/table/src/hooks/useCellProps.mjs +8 -0
  55. package/es/packages/components/table/src/hooks/useCellProps.mjs.map +1 -1
  56. package/es/packages/components/table/src/hooks/useEdit.mjs +293 -18
  57. package/es/packages/components/table/src/hooks/useEdit.mjs.map +1 -1
  58. package/es/packages/components/table/src/utils/form-model.mjs +98 -0
  59. package/es/packages/components/table/src/utils/form-model.mjs.map +1 -0
  60. package/es/packages/components/table/src/utils/util.mjs +4 -1
  61. package/es/packages/components/table/src/utils/util.mjs.map +1 -1
  62. package/es/packages/utils/dom.mjs +15 -1
  63. package/es/packages/utils/dom.mjs.map +1 -1
  64. package/es/packages/utils/index.mjs +1 -1
  65. package/es/utils/dom.d.ts +2 -0
  66. package/es/version.d.ts +1 -1
  67. package/es/version.mjs +1 -1
  68. package/es/version.mjs.map +1 -1
  69. package/lib/components/config-provider/src/typing.d.ts +3 -1
  70. package/lib/components/table/src/components/Body/Body.vue.d.ts +270 -15
  71. package/lib/components/table/src/components/Body/BodyCell.vue.d.ts +255 -0
  72. package/lib/components/table/src/components/Body/BodyEditCell.d.ts +60 -0
  73. package/lib/components/table/src/components/Body/BodyExtraCell.vue.d.ts +6 -1
  74. package/lib/components/table/src/components/Body/BodyRow.vue.d.ts +270 -15
  75. package/lib/components/table/src/components/Body/BodyRows.vue.d.ts +270 -15
  76. package/lib/components/table/src/components/Body/{BodyCell.d.ts → BodyTextCell.d.ts} +1 -7
  77. package/lib/components/table/src/components/ExpandIcon.vue.d.ts +3 -0
  78. package/lib/components/table/src/components/InteralTable.vue.d.ts +332 -19
  79. package/lib/components/table/src/components/Table.d.ts +60 -0
  80. package/lib/components/table/src/components/context/TableContext.d.ts +6 -1
  81. package/lib/components/table/src/components/interface.d.ts +308 -23
  82. package/lib/components/table/src/hooks/useCellProps.d.ts +5 -1
  83. package/lib/components/table/src/hooks/useEdit.d.ts +24 -7
  84. package/lib/components/table/src/utils/form-model.d.ts +25 -0
  85. package/lib/components/table/src/utils/util.d.ts +1 -0
  86. package/lib/index.d.ts +291 -5
  87. package/lib/packages/components/table/src/components/Body/BodyCell.vue.js +39 -0
  88. package/lib/packages/components/table/src/components/Body/BodyCell.vue.js.map +1 -0
  89. package/lib/packages/components/table/src/components/Body/BodyCell.vue2.js +133 -0
  90. package/lib/packages/components/table/src/components/Body/BodyCell.vue2.js.map +1 -0
  91. package/lib/packages/components/table/src/components/Body/BodyEditCell.js +260 -0
  92. package/lib/packages/components/table/src/components/Body/BodyEditCell.js.map +1 -0
  93. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue.js +2 -1
  94. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue.js.map +1 -1
  95. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue2.js +1 -0
  96. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue2.js.map +1 -1
  97. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js +66 -9
  98. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
  99. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js +24 -16
  100. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
  101. package/lib/packages/components/table/src/components/Body/{BodyCell.js → BodyTextCell.js} +24 -154
  102. package/lib/packages/components/table/src/components/Body/BodyTextCell.js.map +1 -0
  103. package/lib/packages/components/table/src/components/ExpandIcon.vue.js.map +1 -1
  104. package/lib/packages/components/table/src/components/ExpandIcon.vue2.js +4 -2
  105. package/lib/packages/components/table/src/components/ExpandIcon.vue2.js.map +1 -1
  106. package/lib/packages/components/table/src/components/InteralTable.vue.js +24 -25
  107. package/lib/packages/components/table/src/components/InteralTable.vue.js.map +1 -1
  108. package/lib/packages/components/table/src/components/InteralTable.vue2.js +43 -97
  109. package/lib/packages/components/table/src/components/InteralTable.vue2.js.map +1 -1
  110. package/lib/packages/components/table/src/components/Table.js +24 -20
  111. package/lib/packages/components/table/src/components/Table.js.map +1 -1
  112. package/lib/packages/components/table/src/components/context/TableContext.js.map +1 -1
  113. package/lib/packages/components/table/src/components/interface.js +28 -0
  114. package/lib/packages/components/table/src/components/interface.js.map +1 -1
  115. package/lib/packages/components/table/src/hooks/useCellProps.js +8 -0
  116. package/lib/packages/components/table/src/hooks/useCellProps.js.map +1 -1
  117. package/lib/packages/components/table/src/hooks/useEdit.js +292 -17
  118. package/lib/packages/components/table/src/hooks/useEdit.js.map +1 -1
  119. package/lib/packages/components/table/src/utils/form-model.js +102 -0
  120. package/lib/packages/components/table/src/utils/form-model.js.map +1 -0
  121. package/lib/packages/components/table/src/utils/util.js +4 -0
  122. package/lib/packages/components/table/src/utils/util.js.map +1 -1
  123. package/lib/packages/utils/dom.js +16 -0
  124. package/lib/packages/utils/dom.js.map +1 -1
  125. package/lib/packages/utils/index.js +2 -0
  126. package/lib/packages/utils/index.js.map +1 -1
  127. package/lib/utils/dom.d.ts +2 -0
  128. package/lib/version.d.ts +1 -1
  129. package/lib/version.js +1 -1
  130. package/lib/version.js.map +1 -1
  131. package/package.json +1 -1
  132. package/theme-chalk/index.css +1 -1
  133. package/theme-chalk/src/table/table.less +78 -25
  134. package/es/components/table/src/components/Body/EditInput.vue.d.ts +0 -102
  135. package/es/packages/components/table/src/components/Body/BodyCell.mjs.map +0 -1
  136. package/es/packages/components/table/src/components/Body/EditInput.vue.mjs +0 -48
  137. package/es/packages/components/table/src/components/Body/EditInput.vue.mjs.map +0 -1
  138. package/es/packages/components/table/src/components/Body/EditInput.vue2.mjs +0 -151
  139. package/es/packages/components/table/src/components/Body/EditInput.vue2.mjs.map +0 -1
  140. package/lib/components/table/src/components/Body/EditInput.vue.d.ts +0 -102
  141. package/lib/packages/components/table/src/components/Body/BodyCell.js.map +0 -1
  142. package/lib/packages/components/table/src/components/Body/EditInput.vue.js +0 -52
  143. package/lib/packages/components/table/src/components/Body/EditInput.vue.js.map +0 -1
  144. package/lib/packages/components/table/src/components/Body/EditInput.vue2.js +0 -155
  145. package/lib/packages/components/table/src/components/Body/EditInput.vue2.js.map +0 -1
@@ -0,0 +1,133 @@
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 util = require('../../utils/util.js');
8
+ var BodyTextCell = require('./BodyTextCell.js');
9
+ var BodyEditCell = require('./BodyEditCell.js');
10
+ var lodashUnified = require('lodash-unified');
11
+
12
+ var _sfc_main = vue.defineComponent({
13
+ inheritAttrs: false,
14
+ props: {
15
+ prefixCls: String,
16
+ rowIndex: { type: Number, required: true },
17
+ flattenRowIndex: { type: Number, required: true },
18
+ rowKey: { type: [Number, String] },
19
+ column: { type: Object, default: () => ({}) },
20
+ item: { type: Object, default: () => ({}) },
21
+ wrapText: { type: Boolean, default: false },
22
+ type: { type: String },
23
+ height: Number,
24
+ hasAppendNode: Boolean,
25
+ resizeObserver: { type: Object },
26
+ editRow: { type: Object },
27
+ calMaxHeight: Function,
28
+ editCellKeys: Array,
29
+ editableKeys: Array,
30
+ isRowEdit: Boolean,
31
+ tooltipOpen: Boolean,
32
+ getPopupContainer: Function,
33
+ onOpenEditor: Function,
34
+ onCloseEditor: Function,
35
+ onCellLeave: Function,
36
+ onMouseenter: Function
37
+ },
38
+ emits: ["mouseenter", "cellLeave"],
39
+ components: { BodyTextCell: BodyTextCell.default, BodyEditCell: BodyEditCell.default },
40
+ setup(props) {
41
+ const tableContext = TableContext.useInjectTable();
42
+ const isKeepEditMode = vue.computed(() => {
43
+ var _a;
44
+ return (_a = props.column.edit) == null ? void 0 : _a.keepEditMode;
45
+ });
46
+ const cellValue = vue.computed(
47
+ () => props.column.dataIndex ? lodashUnified.get(props.item, props.column.dataIndex) : void 0
48
+ );
49
+ const key = vue.computed(() => util.getCellKey(props.rowKey, props.column.columnKey));
50
+ const cellParams = vue.computed(() => ({
51
+ column: props.column,
52
+ record: props.isRowEdit ? props.editRow : props.item,
53
+ recordIndexs: tableContext.getIndexsByKey(props.rowKey),
54
+ value: cellValue.value
55
+ }));
56
+ const editable = vue.computed(() => {
57
+ var _a, _b, _c, _d;
58
+ if (!((_a = props.column.edit) == null ? void 0 : _a.component)) {
59
+ return false;
60
+ }
61
+ if (props.isRowEdit && !((_b = props.editableKeys) == null ? void 0 : _b.includes(props.rowKey))) {
62
+ return false;
63
+ }
64
+ if (!((_c = props.column.edit) == null ? void 0 : _c.editable)) {
65
+ return true;
66
+ }
67
+ const cellEditable = (_d = props.column.edit) == null ? void 0 : _d.editable(cellParams.value);
68
+ return cellEditable;
69
+ });
70
+ const isEditing = vue.computed(() => {
71
+ var _a, _b;
72
+ if (props.isRowEdit) {
73
+ return editable.value && ((_a = props.editableKeys) == null ? void 0 : _a.includes(props.rowKey));
74
+ }
75
+ if (!editable.value) {
76
+ return false;
77
+ }
78
+ if (isKeepEditMode.value) {
79
+ return true;
80
+ }
81
+ if ((_b = props.editCellKeys) == null ? void 0 : _b.includes(key.value)) {
82
+ return true;
83
+ }
84
+ return false;
85
+ });
86
+ const editableTrigger = vue.computed(() => {
87
+ var _a;
88
+ let { editableTrigger: editableTrigger2 = ["click"] } = (_a = props.column.edit) != null ? _a : {};
89
+ editableTrigger2 = Array.isArray(editableTrigger2) ? editableTrigger2 : [editableTrigger2];
90
+ return editableTrigger2;
91
+ });
92
+ const onCellEvent = (e, trigger) => {
93
+ var _a;
94
+ if (editable.value && ((_a = editableTrigger.value) == null ? void 0 : _a.includes(trigger)) && !props.isRowEdit) {
95
+ openEditor();
96
+ closeEditor();
97
+ e.stopPropagation();
98
+ e.preventDefault();
99
+ }
100
+ };
101
+ const openEditor = () => {
102
+ var _a, _b, _c, _d;
103
+ const oldValue = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueGetter) == null ? void 0 : _b.call(_a, cellParams.value)) != null ? _c : cellValue.value;
104
+ (_d = props.onOpenEditor) == null ? void 0 : _d.call(props, key.value, { [key.value]: oldValue });
105
+ };
106
+ const closeEditor = () => {
107
+ var _a;
108
+ (_a = props.onCloseEditor) == null ? void 0 : _a.call(props, key.value);
109
+ };
110
+ vue.watch(key, () => {
111
+ var _a;
112
+ if (((_a = props.column.edit) == null ? void 0 : _a.defaultEditable) && !props.isRowEdit) {
113
+ openEditor();
114
+ }
115
+ });
116
+ vue.onMounted(() => {
117
+ var _a;
118
+ if (((_a = props.column.edit) == null ? void 0 : _a.defaultEditable) && !props.isRowEdit) {
119
+ openEditor();
120
+ }
121
+ });
122
+ return {
123
+ props,
124
+ key,
125
+ isEditing,
126
+ editable,
127
+ onCellEvent
128
+ };
129
+ }
130
+ });
131
+
132
+ exports.default = _sfc_main;
133
+ //# sourceMappingURL=BodyCell.vue2.js.map
@@ -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,260 @@
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 lodashUnified = require('lodash-unified');
13
+ var runFunction = require('../../../../../utils/run-function.js');
14
+ var validate = require('../../../../../utils/validate.js');
15
+
16
+ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
17
+ inheritAttrs: false,
18
+ props: {
19
+ prefixCls: String,
20
+ rowIndex: {
21
+ type: Number,
22
+ required: true
23
+ },
24
+ flattenRowIndex: {
25
+ type: Number,
26
+ required: true
27
+ },
28
+ rowKey: {
29
+ type: [Number, String]
30
+ },
31
+ column: {
32
+ type: Object,
33
+ default: () => ({})
34
+ },
35
+ item: {
36
+ type: Object,
37
+ default: () => ({})
38
+ },
39
+ isRowEdit: Boolean,
40
+ editRow: {
41
+ type: Object
42
+ }
43
+ },
44
+ emits: ["closeEditor", "keydown"],
45
+ setup(props) {
46
+ const tableContext = TableContext.useInjectTable();
47
+ const level = useLevel.useInjectLevel();
48
+ const columnKey = vue.computed(() => props.column.columnKey);
49
+ const recordIndexs = vue.computed(() => tableContext.getIndexsByKey(props.rowKey));
50
+ const childrenColumnName = vue.computed(() => tableContext.props.childrenColumnName || "children");
51
+ const errorList = vue.ref();
52
+ const {
53
+ editRowsMap,
54
+ setEditingCell
55
+ } = useEdit.useEditInject();
56
+ const cellValue = vue.computed(() => props.column.dataIndex ? lodashUnified.get(!props.isRowEdit ? props.item : props.editRow, props.column.dataIndex) : void 0);
57
+ const cellRender = vue.computed(() => {
58
+ var _a, _b;
59
+ return ((_b = (_a = tableContext.allCellProps.value) == null ? void 0 : _a[props.rowKey]) == null ? void 0 : _b[props.column.columnKey]) || {};
60
+ });
61
+ const cellProps = vue.computed(() => cellRender.value.props || {});
62
+ const cellRowSpan = vue.computed(() => cellProps.value.rowSpan);
63
+ const sorterState = vue.computed(() => tableContext.sorterStates.value.find(({
64
+ key
65
+ }) => key === columnKey.value));
66
+ const sorterOrder = vue.computed(() => {
67
+ var _a;
68
+ return sorterState.value ? (_a = sorterState.value) == null ? void 0 : _a.sortOrder : null;
69
+ });
70
+ const cellClass = vue.computed(() => ({
71
+ [`${props.prefixCls}-cell`]: true,
72
+ [`${props.prefixCls}-first-cell`]: props.column.columnIndex === 0,
73
+ [`${props.prefixCls}-body-cell`]: true,
74
+ [`${props.prefixCls}-cell-multi`]: cellRowSpan.value > 1,
75
+ [`${props.prefixCls}-cell-hidden`]: cellRowSpan.value === 0,
76
+ [`${props.prefixCls}-column-sort`]: sorterOrder.value
77
+ }));
78
+ const rules = vue.computed(() => {
79
+ var _a, _b;
80
+ return (_b = runFunction.runFunction((_a = props.column.edit) == null ? void 0 : _a.rules, {
81
+ column: props.column,
82
+ record: props.isRowEdit ? props.editRow : props.item,
83
+ recordIndexs: recordIndexs.value,
84
+ newValue: cellValue.value
85
+ })) != null ? _b : [];
86
+ });
87
+ const validateEnabled = vue.computed(() => rules.value.length > 0);
88
+ const editValue = vue.ref();
89
+ const cellParams = vue.computed(() => ({
90
+ column: props.column,
91
+ record: !props.isRowEdit ? props.item : props.editRow,
92
+ recordIndexs: recordIndexs.value,
93
+ value: editValue.value
94
+ }));
95
+ const editOnListeners = vue.computed(() => {
96
+ var _a, _b;
97
+ return ((_b = (_a = props.column.edit) == null ? void 0 : _a.on) == null ? void 0 : _b.call(_a, {
98
+ ...cellParams.value
99
+ })) || {};
100
+ });
101
+ const editProps = vue.computed(() => {
102
+ const {
103
+ edit = {}
104
+ } = props.column;
105
+ return validate.isFunction(edit.props) ? edit.props(cellParams.value) : {
106
+ ...edit.props
107
+ };
108
+ });
109
+ const componentProps = vue.computed(() => {
110
+ var _a;
111
+ const {
112
+ edit
113
+ } = props.column;
114
+ if (!edit) return {};
115
+ const tmpProps = {
116
+ ...editProps.value
117
+ };
118
+ delete tmpProps.onChange;
119
+ delete tmpProps.value;
120
+ (_a = edit.abortEditOnEvent) == null ? void 0 : _a.forEach((item) => {
121
+ delete tmpProps[item];
122
+ });
123
+ return tmpProps;
124
+ });
125
+ const validateEdit = () => {
126
+ return new Promise((resolve) => {
127
+ if (!validateEnabled.value) {
128
+ resolve(true);
129
+ return true;
130
+ }
131
+ formModel.validate(editValue.value, rules.value).then((result) => {
132
+ const list = result == null ? void 0 : result.filter((t) => !t.result);
133
+ if (!list || !list.length) {
134
+ errorList.value = [];
135
+ resolve(true);
136
+ } else {
137
+ errorList.value = list;
138
+ resolve(list);
139
+ }
140
+ });
141
+ });
142
+ };
143
+ const onEditChange = (val, ...args) => {
144
+ var _a, _b, _c, _d, _e, _f, _g, _h;
145
+ const params = {
146
+ column: props.column,
147
+ record: props.isRowEdit ? props.editRow : props.item,
148
+ recordIndexs: recordIndexs.value,
149
+ newValue: cellValue.value
150
+ };
151
+ const value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueParser) == null ? void 0 : _b.call(_a, params)) != null ? _c : editValue.value;
152
+ const valueSetter = (_d = props.column.edit) == null ? void 0 : _d.valueSetter;
153
+ if (valueSetter) {
154
+ valueSetter(params);
155
+ } else {
156
+ (_f = (_e = editProps.value) == null ? void 0 : _e.onChange) == null ? void 0 : _f.call(_e, val, ...args);
157
+ (_h = (_g = editOnListeners.value) == null ? void 0 : _g.onChange) == null ? void 0 : _h.call(_g, params);
158
+ if (props.isRowEdit) {
159
+ const record = {
160
+ ...props.editRow
161
+ };
162
+ lodashUnified.set(record, props.column.dataIndex, value);
163
+ editRowsMap.value[props.rowKey] = record;
164
+ vue.triggerRef(editRowsMap);
165
+ } else {
166
+ let record = {};
167
+ let dataSource = tableContext.rawData.value || [];
168
+ recordIndexs.value.forEach((index) => {
169
+ record = dataSource[index];
170
+ dataSource = record[childrenColumnName.value] || [];
171
+ });
172
+ lodashUnified.set(record, props.column.dataIndex, value);
173
+ vue.triggerRef(tableContext.rawData);
174
+ }
175
+ }
176
+ validateEdit();
177
+ };
178
+ vue.watch(cellValue, (value) => {
179
+ var _a, _b, _c;
180
+ editValue.value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueGetter) == null ? void 0 : _b.call(_a, cellParams.value)) != null ? _c : value;
181
+ }, {
182
+ immediate: true
183
+ });
184
+ vue.onMounted(() => {
185
+ setEditingCell({
186
+ recordIndexs: recordIndexs.value,
187
+ column: props.column,
188
+ rowKey: props.rowKey,
189
+ originRecord: props.item,
190
+ rowIndex: props.rowIndex,
191
+ columnKey: props.column.columnKey,
192
+ validateEdit
193
+ }, true);
194
+ });
195
+ vue.onUnmounted(() => {
196
+ var _a, _b, _c;
197
+ setEditingCell({
198
+ recordIndexs: recordIndexs.value,
199
+ column: props.column,
200
+ rowKey: props.rowKey,
201
+ originRecord: props.item,
202
+ rowIndex: props.rowIndex,
203
+ columnKey: props.column.columnKey,
204
+ validateEdit
205
+ }, false);
206
+ (_c = (_b = (_a = props.column) == null ? void 0 : _a.edit) == null ? void 0 : _b.onEdited) == null ? void 0 : _c.call(_b, {
207
+ column: props.column,
208
+ record: props.isRowEdit ? props.editRow : props.item,
209
+ recordIndexs: recordIndexs.value,
210
+ value: cellValue.value
211
+ });
212
+ });
213
+ return () => {
214
+ var _a, _b, _c;
215
+ const Component = (_a = props.column.edit) == null ? void 0 : _a.component;
216
+ const errorMessage = (_c = (_b = errorList.value) == null ? void 0 : _b[0]) == null ? void 0 : _c.message;
217
+ return vue.createVNode("div", vue.mergeProps(cellProps.value, {
218
+ "class": cellClass.value,
219
+ "tabindex": "-1",
220
+ "role": "cell",
221
+ "data-column-key": columnKey.value,
222
+ "data-level": level,
223
+ "aria-selected": "true",
224
+ "onClick": (e) => {
225
+ e.stopPropagation();
226
+ }
227
+ }), [vue.createVNode("div", {
228
+ "class": `${props.prefixCls}-cell-content`,
229
+ "style": "width: 100%; position:relative"
230
+ }, [vue.createVNode(Component, vue.mergeProps({
231
+ "style": "width: 100%",
232
+ "status": errorMessage ? "error" : void 0,
233
+ "value": editValue.value,
234
+ "onUpdate:value": ($event) => editValue.value = $event,
235
+ "getPopupContainer": () => document.body
236
+ }, componentProps.value, {
237
+ "onChange": onEditChange
238
+ }), null), errorMessage && vue.createVNode(antDesignVue.Popover, {
239
+ "arrowPointAtCenter": true,
240
+ "placement": "topRight",
241
+ "getPopupContainer": () => document.body
242
+ }, {
243
+ default: () => [vue.createVNode("span", {
244
+ "class": `${props.prefixCls}-cell-content-error`
245
+ }, [vue.createVNode(Icon.CloseCircleFilled, null, null)])],
246
+ content: () => {
247
+ var _a2;
248
+ return vue.createVNode("div", {
249
+ "class": `${props.prefixCls}-cell-content-error-message`
250
+ }, [(_a2 = errorList.value) == null ? void 0 : _a2.map((error) => vue.createVNode("div", {
251
+ "key": error.message
252
+ }, [error.message]))]);
253
+ }
254
+ })])]);
255
+ };
256
+ }
257
+ });
258
+
259
+ exports.default = BodyEditCell;
260
+ //# 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-02 16:12:31\n * @Description:\n */\nimport type { PropType } from 'vue'\nimport type { AllValidateResult, FinallyColumnType, Key } 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 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 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 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 edit.abortEditOnEvent?.forEach((item) => {\n delete tmpProps[item]\n })\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?.({\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: recordIndexs.value,\n value: cellValue.value,\n })\n })\n\n return () => {\n const Component = props.column.edit?.component\n const errorMessage = errorList.value?.[0]?.message\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 onChange={onEditChange}\n />\n {errorMessage && (\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>\n </div>\n )\n }\n },\n})\n"],"names":["inheritAttrs","props","prefixCls","String","rowIndex","type","Number","required","flattenRowIndex","rowKey","column","Object","default","item","isRowEdit","Boolean","editRow","emits","setup","tableContext","useInjectTable","level","useInjectLevel","columnKey","computed","recordIndexs","getIndexsByKey","childrenColumnName","errorList","ref","editRowsMap","setEditingCell","useEditInject","cellValue","dataIndex","get","undefined","cellRender","allCellProps","value","cellProps","cellRowSpan","rowSpan","sorterState","sorterStates","find","key","sorterOrder","sortOrder","cellClass","columnIndex","rules","runFunction","edit","record","newValue","validateEnabled","length","editValue","cellParams","editOnListeners","on","editProps","isFunction","componentProps","tmpProps","onChange","abortEditOnEvent","forEach","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","_createVNode","_mergeProps","e","stopPropagation","$event","getPopupContainer","document","body","Popover","CloseCircleFilled","content","_a","map","error"],"mappings":"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"}
@@ -60,11 +60,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
60
60
  key: 1,
61
61
  "prefix-cls": _ctx.prefixCls,
62
62
  expandable: "",
63
+ expandIconType: _ctx.expandIconType,
63
64
  expanded: _ctx.expanded,
64
65
  record: _ctx.record,
65
66
  disabled: !_ctx.supportExpand,
66
67
  onExpand: _ctx.onInternalTriggerExpand
67
- }, null, 8, ["prefix-cls", "expanded", "record", "disabled", "onExpand"])) : _ctx.column.type === "draggable" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
68
+ }, null, 8, ["prefix-cls", "expandIconType", "expanded", "record", "disabled", "onExpand"])) : _ctx.column.type === "draggable" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
68
69
  vue.renderSlot(_ctx.$slots, "draggable-handle", {}, () => [
69
70
  vue.createVNode(_component_MenuOutlined)
70
71
  ])
@@ -1 +1 @@
1
- {"version":3,"file":"BodyExtraCell.vue.js","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2023-12-22 10:31:47\n * @Description: \n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_mergeProps","_withModifiers","_openBlock","_Fragment","_createBlock","_renderSlot","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"BodyExtraCell.vue.js","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-11-26 14:32:53\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n ExpandIconType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n expandIconType: String as PropType<ExpandIconType>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expandIconType=\"expandIconType\"\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_mergeProps","_withModifiers","_openBlock","_Fragment","_createBlock","_renderSlot","_createVNode"],"mappings":"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"}
@@ -25,6 +25,7 @@ var _sfc_main = vue.defineComponent({
25
25
  record: { type: Object },
26
26
  rowKey: { type: [Number, String] },
27
27
  expanded: Boolean,
28
+ expandIconType: String,
28
29
  supportExpand: Boolean
29
30
  },
30
31
  setup(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"BodyExtraCell.vue2.js","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2023-12-22 10:31:47\n * @Description: \n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":["defineComponent","Checkbox","Radio","ExpandIcon","MenuOutlined","useInjectTable","useInjectLevel","computed","ref","useInjectBody","watchEffect","devWarning","arrDel","arrAdd","conductCheck"],"mappings":"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"}
1
+ {"version":3,"file":"BodyExtraCell.vue2.js","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-11-26 14:32:53\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n ExpandIconType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n expandIconType: String as PropType<ExpandIconType>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expandIconType=\"expandIconType\"\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":["defineComponent","Checkbox","Radio","ExpandIcon","MenuOutlined","useInjectTable","useInjectLevel","computed","ref","useInjectBody","watchEffect","devWarning","arrDel","arrAdd","conductCheck"],"mappings":"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"}