@kdcloudjs/table 1.0.1 → 1.0.4

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 (207) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +34 -33
  3. package/dist/@kdcloudjs/table.css +1 -1
  4. package/dist/@kdcloudjs/table.css.map +1 -1
  5. package/dist/@kdcloudjs/table.js +6555 -3388
  6. package/dist/@kdcloudjs/table.js.map +1 -1
  7. package/dist/@kdcloudjs/table.min.css +1 -1
  8. package/dist/@kdcloudjs/table.min.js +32 -24
  9. package/dist/@kdcloudjs/table.min.js.map +1 -1
  10. package/es/_utils/hooks.js +1 -2
  11. package/es/_utils/numberUtil.js +3 -4
  12. package/es/locale/locale.js +1 -2
  13. package/es/table/base/calculations.js +3 -4
  14. package/es/table/base/empty.js +2 -2
  15. package/es/table/base/header.d.ts +6 -2
  16. package/es/table/base/header.js +41 -22
  17. package/es/table/base/helpers/SpanManager.js +1 -1
  18. package/es/table/base/helpers/TableDOMUtils.d.ts +3 -0
  19. package/es/table/base/helpers/TableDOMUtils.js +23 -5
  20. package/es/table/base/helpers/getRichVisibleRectsStream.d.ts +23 -0
  21. package/es/table/base/helpers/getRichVisibleRectsStream.js +216 -0
  22. package/es/table/base/html-table.d.ts +3 -1
  23. package/es/table/base/html-table.js +43 -26
  24. package/es/table/base/interfaces.d.ts +1 -0
  25. package/es/table/base/renderTemplates.d.ts +1 -0
  26. package/es/table/base/renderTemplates.js +344 -0
  27. package/es/table/base/styles.d.ts +24 -0
  28. package/es/table/base/styles.js +31 -9
  29. package/es/table/base/table.d.ts +12 -4
  30. package/es/table/base/table.js +183 -136
  31. package/es/table/base/utils.d.ts +6 -3
  32. package/es/table/base/utils.js +27 -6
  33. package/es/table/common-views.js +3 -3
  34. package/es/table/pipeline/features/autoFill.js +7 -1
  35. package/es/table/pipeline/features/columnDrag.js +168 -59
  36. package/es/table/pipeline/features/columnFilter.js +7 -9
  37. package/es/table/pipeline/features/columnResizeWidth.d.ts +3 -0
  38. package/es/table/pipeline/features/columnResizeWidth.js +11 -4
  39. package/es/table/pipeline/features/contextMenu.js +78 -31
  40. package/es/table/pipeline/features/filter/Filter.js +74 -37
  41. package/es/table/pipeline/features/index.d.ts +1 -0
  42. package/es/table/pipeline/features/index.js +2 -1
  43. package/es/table/pipeline/features/multiSelect.js +85 -79
  44. package/es/table/pipeline/features/rangeSelection.d.ts +10 -0
  45. package/es/table/pipeline/features/rangeSelection.js +231 -0
  46. package/es/table/pipeline/features/rowDetail.js +39 -16
  47. package/es/table/pipeline/features/rowGrouping.js +2 -1
  48. package/es/table/pipeline/features/singleSelect.js +4 -1
  49. package/es/table/pipeline/features/sort.js +2 -3
  50. package/es/table/pipeline/features/treeMode.js +4 -4
  51. package/es/table/pipeline/pipeline.d.ts +8 -0
  52. package/es/table/pipeline/pipeline.js +49 -5
  53. package/es/table/pivot/cross-table/buildCrossTable.js +1 -2
  54. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +1 -2
  55. package/es/table/pivot/pivot-utils/builders.js +1 -2
  56. package/es/table/pivot/pivot-utils/convert-utils.js +5 -4
  57. package/es/table/transforms/autoWidth.js +1 -2
  58. package/es/table/transforms/sort.js +1 -2
  59. package/es/table/transforms/treeMode.js +1 -2
  60. package/es/table/utils/applyTransforms.js +1 -3
  61. package/es/table/utils/browserType.d.ts +6 -0
  62. package/es/table/utils/browserType.js +6 -0
  63. package/es/table/utils/buildTree.js +4 -5
  64. package/es/table/utils/collectNodes.js +1 -2
  65. package/es/table/utils/exportTableAsExcel.js +1 -2
  66. package/es/table/utils/getTreeDepth.js +1 -2
  67. package/es/table/utils/groupBy.js +1 -2
  68. package/es/table/utils/index.d.ts +1 -0
  69. package/es/table/utils/index.js +2 -1
  70. package/es/table/utils/layeredSort.js +5 -2
  71. package/es/table/utils/makeRecursiveMapper.js +4 -5
  72. package/es/table/utils/others.d.ts +1 -1
  73. package/es/table/utils/others.js +20 -14
  74. package/es/table/utils/traverseColumn.js +1 -2
  75. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +4 -5
  76. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +4 -5
  77. package/lib/_utils/formatUtil.js +1 -1
  78. package/lib/_utils/hooks.js +2 -4
  79. package/lib/_utils/numberUtil.js +7 -9
  80. package/lib/_utils/usePopper.js +9 -1
  81. package/lib/config-provider/configProvider.js +9 -1
  82. package/lib/config-provider/index.js +5 -5
  83. package/lib/locale/index.js +14 -6
  84. package/lib/locale/locale.js +2 -4
  85. package/lib/table/base/calculations.js +4 -6
  86. package/lib/table/base/empty.js +11 -3
  87. package/lib/table/base/header.d.ts +6 -2
  88. package/lib/table/base/header.js +39 -19
  89. package/lib/table/base/helpers/SpanManager.js +1 -1
  90. package/lib/table/base/helpers/TableDOMUtils.d.ts +3 -0
  91. package/lib/table/base/helpers/TableDOMUtils.js +21 -5
  92. package/lib/table/base/helpers/getRichVisibleRectsStream.d.ts +23 -0
  93. package/lib/table/base/helpers/getRichVisibleRectsStream.js +246 -0
  94. package/lib/table/base/html-table.d.ts +3 -1
  95. package/lib/table/base/html-table.js +44 -26
  96. package/lib/table/base/index.js +4 -4
  97. package/lib/table/base/interfaces.d.ts +1 -0
  98. package/lib/table/base/renderTemplates.d.ts +1 -0
  99. package/lib/table/base/renderTemplates.js +370 -0
  100. package/lib/table/base/styles.d.ts +24 -0
  101. package/lib/table/base/styles.js +42 -13
  102. package/lib/table/base/table.d.ts +12 -4
  103. package/lib/table/base/table.js +191 -137
  104. package/lib/table/base/utils.d.ts +6 -3
  105. package/lib/table/base/utils.js +47 -10
  106. package/lib/table/common-views.js +3 -3
  107. package/lib/table/pipeline/features/autoFill.js +9 -2
  108. package/lib/table/pipeline/features/columnDrag.js +168 -59
  109. package/lib/table/pipeline/features/columnFilter.js +6 -9
  110. package/lib/table/pipeline/features/columnResizeWidth.d.ts +3 -0
  111. package/lib/table/pipeline/features/columnResizeWidth.js +21 -5
  112. package/lib/table/pipeline/features/contextMenu.js +89 -32
  113. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -2
  114. package/lib/table/pipeline/features/filter/Filter.js +88 -37
  115. package/lib/table/pipeline/features/filter/FilterPanel.js +10 -2
  116. package/lib/table/pipeline/features/filter/index.js +4 -4
  117. package/lib/table/pipeline/features/index.d.ts +1 -0
  118. package/lib/table/pipeline/features/index.js +37 -27
  119. package/lib/table/pipeline/features/multiSelect.js +81 -75
  120. package/lib/table/pipeline/features/rangeSelection.d.ts +10 -0
  121. package/lib/table/pipeline/features/rangeSelection.js +256 -0
  122. package/lib/table/pipeline/features/rowDetail.js +42 -16
  123. package/lib/table/pipeline/features/rowGrouping.js +3 -1
  124. package/lib/table/pipeline/features/singleSelect.js +4 -1
  125. package/lib/table/pipeline/features/sort.js +2 -4
  126. package/lib/table/pipeline/features/treeMode.js +6 -6
  127. package/lib/table/pipeline/index.js +11 -3
  128. package/lib/table/pipeline/pipeline.d.ts +8 -0
  129. package/lib/table/pipeline/pipeline.js +50 -7
  130. package/lib/table/pivot/cross-table/buildCrossTable.js +1 -3
  131. package/lib/table/pivot/cross-table/index.js +4 -4
  132. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +1 -3
  133. package/lib/table/pivot/pivot-utils/builders.js +2 -4
  134. package/lib/table/pivot/pivot-utils/convert-utils.js +7 -5
  135. package/lib/table/pivot/pivot-utils/index.js +4 -4
  136. package/lib/table/transforms/autoWidth.js +10 -4
  137. package/lib/table/transforms/columnResize.js +10 -2
  138. package/lib/table/transforms/index.js +32 -32
  139. package/lib/table/transforms/sort.js +10 -4
  140. package/lib/table/transforms/treeMode.js +9 -3
  141. package/lib/table/utils/applyTransforms.js +1 -5
  142. package/lib/table/utils/browserType.d.ts +6 -0
  143. package/lib/table/utils/browserType.js +13 -0
  144. package/lib/table/utils/buildTree.js +1 -3
  145. package/lib/table/utils/collectNodes.js +1 -3
  146. package/lib/table/utils/copyToClipboard.js +1 -1
  147. package/lib/table/utils/element.js +3 -3
  148. package/lib/table/utils/exportTableAsExcel.js +1 -3
  149. package/lib/table/utils/getTreeDepth.js +1 -3
  150. package/lib/table/utils/groupBy.js +1 -3
  151. package/lib/table/utils/index.d.ts +1 -0
  152. package/lib/table/utils/index.js +57 -49
  153. package/lib/table/utils/layeredSort.js +6 -2
  154. package/lib/table/utils/makeRecursiveMapper.js +1 -3
  155. package/lib/table/utils/others.d.ts +1 -1
  156. package/lib/table/utils/others.js +23 -18
  157. package/lib/table/utils/traverseColumn.js +1 -3
  158. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +5 -7
  159. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +5 -7
  160. package/package.json +6 -2
  161. package/dist/kd-table.css +0 -422
  162. package/dist/kd-table.css.map +0 -1
  163. package/dist/kd-table.js +0 -38578
  164. package/dist/kd-table.js.map +0 -1
  165. package/dist/kd-table.min.css +0 -9
  166. package/dist/kd-table.min.js +0 -208
  167. package/dist/kd-table.min.js.map +0 -1
  168. package/es/table/base/helpers/__test__/visible-part.test.d.ts +0 -1
  169. package/es/table/base/helpers/__test__/visible-part.test.js +0 -28
  170. package/es/table/base/helpers/visible-part.d.ts +0 -23
  171. package/es/table/base/helpers/visible-part.js +0 -58
  172. package/es/table/pipeline/features/__test__/multiSelect.test.d.ts +0 -1
  173. package/es/table/pipeline/features/__test__/multiSelect.test.js +0 -152
  174. package/es/table/pipeline/features/__test__/rowDetail.test.d.ts +0 -1
  175. package/es/table/pipeline/features/__test__/rowDetail.test.js +0 -223
  176. package/es/table/pipeline/features/__test__/rowGrouping.test.d.ts +0 -1
  177. package/es/table/pipeline/features/__test__/rowGrouping.test.js +0 -120
  178. package/es/table/pipeline/features/__test__/singleSelect.test.d.ts +0 -1
  179. package/es/table/pipeline/features/__test__/singleSelect.test.js +0 -191
  180. package/es/table/pipeline/features/__test__/sort.test.d.ts +0 -1
  181. package/es/table/pipeline/features/__test__/sort.test.js +0 -213
  182. package/es/table/pipeline/features/__test__/tips.test.d.ts +0 -1
  183. package/es/table/pipeline/features/__test__/tips.test.js +0 -123
  184. package/es/table/pipeline/features/__test__/treeMode.test.d.ts +0 -1
  185. package/es/table/pipeline/features/__test__/treeMode.test.js +0 -202
  186. package/es/table/pipeline/features/filter/__test__/Filter.test.d.ts +0 -1
  187. package/es/table/pipeline/features/filter/__test__/Filter.test.js +0 -29
  188. package/lib/table/base/helpers/__test__/visible-part.test.d.ts +0 -1
  189. package/lib/table/base/helpers/__test__/visible-part.test.js +0 -31
  190. package/lib/table/base/helpers/visible-part.d.ts +0 -23
  191. package/lib/table/base/helpers/visible-part.js +0 -72
  192. package/lib/table/pipeline/features/__test__/multiSelect.test.d.ts +0 -1
  193. package/lib/table/pipeline/features/__test__/multiSelect.test.js +0 -163
  194. package/lib/table/pipeline/features/__test__/rowDetail.test.d.ts +0 -1
  195. package/lib/table/pipeline/features/__test__/rowDetail.test.js +0 -230
  196. package/lib/table/pipeline/features/__test__/rowGrouping.test.d.ts +0 -1
  197. package/lib/table/pipeline/features/__test__/rowGrouping.test.js +0 -129
  198. package/lib/table/pipeline/features/__test__/singleSelect.test.d.ts +0 -1
  199. package/lib/table/pipeline/features/__test__/singleSelect.test.js +0 -201
  200. package/lib/table/pipeline/features/__test__/sort.test.d.ts +0 -1
  201. package/lib/table/pipeline/features/__test__/sort.test.js +0 -218
  202. package/lib/table/pipeline/features/__test__/tips.test.d.ts +0 -1
  203. package/lib/table/pipeline/features/__test__/tips.test.js +0 -133
  204. package/lib/table/pipeline/features/__test__/treeMode.test.d.ts +0 -1
  205. package/lib/table/pipeline/features/__test__/treeMode.test.js +0 -206
  206. package/lib/table/pipeline/features/filter/__test__/Filter.test.d.ts +0 -1
  207. package/lib/table/pipeline/features/filter/__test__/Filter.test.js +0 -36
@@ -1,230 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
6
-
7
- var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
8
-
9
- var _rowDetail = require("../rowDetail");
10
-
11
- var _pipeline = require("../../pipeline");
12
-
13
- var _enzyme = require("enzyme");
14
-
15
- var _reactHooks = require("@testing-library/react-hooks");
16
-
17
- var _testUtils = require("react-dom/test-utils");
18
-
19
- var dataSource = [{
20
- id: '1',
21
- prov: '湖北省',
22
- confirm: 54406,
23
- cure: 4793,
24
- dead: 1457,
25
- t: '2020-02-15 19:52:02'
26
- }, {
27
- id: '2',
28
- prov: '广东省',
29
- confirm: 1294,
30
- cure: 409,
31
- dead: 2,
32
- t: '2020-02-15 19:52:02'
33
- }, {
34
- id: '3',
35
- prov: '河南省',
36
- confirm: 1212,
37
- cure: 390,
38
- dead: 13,
39
- t: '2020-02-15 19:52:02'
40
- }, {
41
- id: '4',
42
- prov: '浙江省',
43
- confirm: 1162,
44
- cure: 428,
45
- dead: 0,
46
- t: '2020-02-15 19:52:02'
47
- }, {
48
- id: '5',
49
- prov: '湖南省',
50
- confirm: 1001,
51
- cure: 417,
52
- dead: 2,
53
- t: '2020-02-15 19:52:02'
54
- }];
55
- var columns = [{
56
- code: 'prov',
57
- name: '省份',
58
- width: 150,
59
- features: {
60
- sortable: true,
61
- filterable: true
62
- }
63
- }, {
64
- code: 'confirm',
65
- name: '确诊',
66
- width: 100,
67
- align: 'right',
68
- features: {
69
- sortable: true,
70
- filterable: true
71
- }
72
- }, {
73
- code: 'cure',
74
- name: '治愈',
75
- width: 100,
76
- align: 'right',
77
- features: {
78
- sortable: true,
79
- filterable: true
80
- }
81
- }, {
82
- code: 'dead',
83
- name: '死亡',
84
- width: 100,
85
- align: 'right',
86
- features: {
87
- sortable: true,
88
- filterable: true
89
- }
90
- }, {
91
- code: 't',
92
- name: '更新时间',
93
- width: 180,
94
- features: {
95
- sortable: true,
96
- filterable: true
97
- }
98
- }];
99
- describe('rowDetail 单元测试', function () {
100
- var opt = {
101
- defaultOpenKeys: ['2'],
102
- clickArea: 'content',
103
- hasDetail: function hasDetail(row) {
104
- var _context;
105
-
106
- return (0, _includes.default)(_context = ['1', '2', '3']).call(_context, row.id);
107
- },
108
- renderDetail: jest.fn(),
109
- onChangeOpenKeys: jest.fn()
110
- };
111
- it('初始化', function () {
112
- var _renderHook = (0, _reactHooks.renderHook)(function () {
113
- return (0, _pipeline.useTablePipeline)({
114
- primaryKey: 'id'
115
- }).input({
116
- dataSource: dataSource,
117
- columns: columns
118
- });
119
- }),
120
- result = _renderHook.result;
121
-
122
- var tablePipeline = result.current;
123
- var newPipeline = (0, _rowDetail.rowDetail)(opt)(tablePipeline); // 默认有1行展开,所以有6行
124
-
125
- expect(newPipeline.getDataSource().length).toBe(6);
126
- });
127
- it('primaryKey不传', function () {
128
- var _renderHook2 = (0, _reactHooks.renderHook)(function () {
129
- return (0, _pipeline.useTablePipeline)().input({
130
- dataSource: dataSource,
131
- columns: columns
132
- });
133
- }),
134
- result = _renderHook2.result;
135
-
136
- var tablePipeline = result.current;
137
- expect(function () {
138
- return (0, _rowDetail.rowDetail)(opt)(tablePipeline);
139
- }).toThrow(Error);
140
- });
141
- it('模拟行点击事件', function () {
142
- var _renderHook3 = (0, _reactHooks.renderHook)(function () {
143
- return (0, _pipeline.useTablePipeline)({
144
- primaryKey: 'id'
145
- }).input({
146
- dataSource: dataSource,
147
- columns: columns
148
- });
149
- }),
150
- result = _renderHook3.result;
151
-
152
- var tablePipeline = result.current;
153
- var newPipeline = (0, _rowDetail.rowDetail)(opt)(tablePipeline);
154
- var newDataSource = newPipeline.getDataSource();
155
- var col = newPipeline.getColumns();
156
- var wrapper = (0, _enzyme.mount)(col[0].render('1', newDataSource[0], 0));
157
- var div = (0, _find.default)(wrapper).call(wrapper, 'div').at(0);
158
- expect(opt.onChangeOpenKeys).toHaveBeenCalledTimes(0);
159
- (0, _testUtils.act)(function () {
160
- div.simulate('click');
161
- });
162
- expect(opt.onChangeOpenKeys).toHaveBeenCalledTimes(1); // 点击没有展开行的行,不会触发onChange回调
163
-
164
- var wrapper1 = (0, _enzyme.mount)(col[0].render('4', newDataSource[4], 4));
165
- var div1 = (0, _find.default)(wrapper1).call(wrapper1, 'div').at(0);
166
- (0, _testUtils.act)(function () {
167
- div1.simulate('click');
168
- });
169
- expect(opt.onChangeOpenKeys).toHaveBeenCalledTimes(1);
170
- });
171
- it('设置指定列展开', function () {
172
- var _renderHook4 = (0, _reactHooks.renderHook)(function () {
173
- return (0, _pipeline.useTablePipeline)({
174
- primaryKey: 'id'
175
- }).input({
176
- dataSource: dataSource,
177
- columns: columns
178
- });
179
- }),
180
- result = _renderHook4.result;
181
-
182
- var tablePipeline = result.current;
183
- opt.expandColumnCode = 'confirm';
184
- var newPipeline = (0, _rowDetail.rowDetail)(opt)(tablePipeline);
185
- var col = newPipeline.getColumns();
186
- var wrapper = (0, _enzyme.mount)(col[1].render('1', newPipeline.getDataSource()[0], 0)); // 不知道为啥是两个
187
-
188
- expect((0, _find.default)(wrapper).call(wrapper, '.expansion-cell').length).toBe(2);
189
- col[0].render('1', newPipeline.getDataSource()[2], 2);
190
- expect(opt.renderDetail).toBeCalled();
191
- var spanRect = col[0].getSpanRect('1', newPipeline.getDataSource()[2], 2);
192
- expect(spanRect).toEqual({
193
- top: 2,
194
- bottom: 3,
195
- left: 0,
196
- right: 6
197
- });
198
- delete opt.expandColumnCode;
199
- });
200
- it('getCellProps 和getSpanRect', function () {
201
- var _renderHook5 = (0, _reactHooks.renderHook)(function () {
202
- return (0, _pipeline.useTablePipeline)({
203
- primaryKey: 'id'
204
- }).input({
205
- dataSource: dataSource,
206
- columns: columns
207
- });
208
- }),
209
- result = _renderHook5.result;
210
-
211
- var tablePipeline = result.current;
212
- opt.clickArea = 'cell';
213
- var newPipeline = (0, _rowDetail.rowDetail)(opt)(tablePipeline);
214
- var col = newPipeline.getColumns();
215
- var cellProps = col[0].getCellProps('1', newPipeline.getDataSource()[0], 0);
216
- expect(cellProps.style).toEqual({
217
- cursor: 'pointer'
218
- });
219
- cellProps.onClick();
220
- expect(opt.onChangeOpenKeys).toBeCalled(); // detail 总是成一行
221
-
222
- var spanRect = col[0].getSpanRect('1', newPipeline.getDataSource()[2], 2);
223
- expect(spanRect).toEqual({
224
- top: 2,
225
- bottom: 3,
226
- left: 0,
227
- right: 6
228
- });
229
- });
230
- });
@@ -1,129 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
- var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
6
-
7
- var _rowGrouping = require("../rowGrouping");
8
-
9
- var _pipeline = require("../../pipeline");
10
-
11
- var _enzyme = require("enzyme");
12
-
13
- var _reactHooks = require("@testing-library/react-hooks");
14
-
15
- var dataSource = [{
16
- id: 'alibaba',
17
- groupTitle: '阿里巴巴网络技术有限公司',
18
- children: [{
19
- id: '1-1',
20
- title: '二级标题',
21
- dept: '消费者事业部-淘宝-UED',
22
- dest: '云南大理',
23
- guide: 'Douglas Lee'
24
- }, {
25
- id: '1-2',
26
- title: '二级标题',
27
- dept: '消费者事业部-淘宝-UED',
28
- dest: '云南大理',
29
- guide: 'Douglas Lee'
30
- }]
31
- }, {
32
- id: 'antfin',
33
- groupTitle: '蚂蚁金服有限公司',
34
- children: [{
35
- id: '2-1',
36
- title: '二级标题',
37
- dept: '消费者事业部-淘宝-UED',
38
- dest: '云南大理',
39
- guide: 'Douglas Lee'
40
- }, {
41
- id: '2-2',
42
- title: '二级标题',
43
- dept: '消费者事业部-淘宝-UED',
44
- dest: '云南大理',
45
- guide: 'Douglas Lee'
46
- }]
47
- }, {
48
- id: 'other',
49
- groupTitle: 'group without children'
50
- }];
51
- var columns = [{
52
- code: 'title',
53
- name: '标题',
54
- width: 200
55
- }, {
56
- code: 'dept',
57
- name: '部门名称',
58
- width: 180
59
- }, {
60
- code: 'dest',
61
- name: '团建目的地',
62
- width: 160
63
- }, {
64
- code: 'guide',
65
- name: '当地导游',
66
- width: 160
67
- }];
68
- describe('rowGrouping 单元测试', function () {
69
- var opts = {
70
- defaultOpenAll: true,
71
- onChangeOpenKeys: jest.fn()
72
- };
73
- var newPipeline = null;
74
- beforeEach(function () {
75
- var _renderHook = (0, _reactHooks.renderHook)(function () {
76
- return (0, _pipeline.useTablePipeline)({
77
- primaryKey: 'id'
78
- }).input({
79
- dataSource: dataSource,
80
- columns: columns
81
- });
82
- }),
83
- result = _renderHook.result;
84
-
85
- var tablePipeline = result.current;
86
- newPipeline = (0, _rowGrouping.rowGrouping)(opts)(tablePipeline);
87
- });
88
- afterEach(function () {
89
- newPipeline = null;
90
- opts.onChangeOpenKeys.mockClear();
91
- });
92
- it('初始化', function () {
93
- expect(newPipeline.getDataSource().length).toBe(7);
94
- });
95
- it('getCellProps', function () {
96
- var col = newPipeline.getColumns();
97
- var cellProps = col[0].getCellProps('阿里巴巴网络技术有限公司', newPipeline.getDataSource()[0], 0);
98
- expect(cellProps.style).toEqual({
99
- cursor: 'pointer'
100
- });
101
- cellProps.onClick();
102
- expect(opts.onChangeOpenKeys).toBeCalled(); // 不是分组行没有cellProps
103
-
104
- var cellProps1 = col[0].getCellProps('阿里巴巴网络技术有限公司', newPipeline.getDataSource()[1], 1);
105
- expect(cellProps1).toBe(undefined);
106
- });
107
- it('getSpanRect', function () {
108
- var col = newPipeline.getColumns();
109
- var spanRect = col[0].getSpanRect('阿里巴巴网络技术有限公司', newPipeline.getDataSource()[0], 0);
110
- expect(spanRect).toEqual({
111
- top: 0,
112
- bottom: 1,
113
- left: 0,
114
- right: 5
115
- });
116
- });
117
- it('单元格渲染', function () {
118
- var col = newPipeline.getColumns();
119
- var wrapper = (0, _enzyme.mount)(col[0].render('1', newPipeline.getDataSource()[0], 0));
120
- expect((0, _find.default)(wrapper).call(wrapper, '.expansion-cell').length).toBe(2);
121
- var wrapper1 = (0, _enzyme.mount)(col[0].render('1', newPipeline.getDataSource()[1], 1));
122
- expect((0, _find.default)(wrapper1).call(wrapper1, '.expansion-cell').length).toBe(0);
123
- });
124
- it('appendRowPropsGetter', function () {
125
- var props = newPipeline.getProps();
126
- var rowProps = props.getRowProps(newPipeline.getDataSource()[0], 0);
127
- expect(rowProps.className).toBe('alternative');
128
- });
129
- });
@@ -1,201 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
-
5
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
6
-
7
- var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
8
-
9
- var _singleSelect = require("../singleSelect");
10
-
11
- var _pipeline = require("../../pipeline");
12
-
13
- var _enzyme = require("enzyme");
14
-
15
- var _reactHooks = require("@testing-library/react-hooks");
16
-
17
- var _react = _interopRequireDefault(require("react"));
18
-
19
- var dataSource = [{
20
- id: '1',
21
- name: '阿里巴巴网络技术有限公司',
22
- amount: '600,000.00(CNY)',
23
- dept: '招商银行丨杭州分行',
24
- applier: 'James Collier'
25
- }, {
26
- id: '2',
27
- name: '阿里巴巴网络技术有限公司',
28
- amount: '600,000.00(CNY)',
29
- dept: '建设银行丨未来科技城',
30
- applier: 'Philip Burke'
31
- }, {
32
- id: '3',
33
- name: '阿里巴巴网络技术有限公司',
34
- amount: '600,000.00(CNY)',
35
- dept: '交通银行丨浙大路支行',
36
- applier: 'Wesley Cruz'
37
- }, {
38
- id: '4',
39
- name: '阿里巴巴网络技术有限公司',
40
- amount: '600,000.00(CNY)',
41
- dept: '招商银行丨庆春路支行',
42
- applier: 'Billy Horton'
43
- }, {
44
- id: '5',
45
- name: '阿里巴巴网络技术有限公司',
46
- amount: '600,000.00(CNY)',
47
- dept: '招商银行丨文一路分行',
48
- applier: 'Paul Tran'
49
- }, {
50
- id: '6',
51
- name: '阿里巴巴网络技术有限公司',
52
- amount: '600,000.00(CNY)',
53
- dept: '农业银行丨杭州分行',
54
- applier: 'Anna Poole'
55
- }];
56
- var columns = [{
57
- code: 'name',
58
- width: 220,
59
- name: '公司名称'
60
- }, {
61
- code: 'amount',
62
- width: 160,
63
- align: 'right',
64
- name: '金额'
65
- }, {
66
- code: 'dept',
67
- width: 160,
68
- name: '金融机构'
69
- }, {
70
- code: 'applier',
71
- width: 120,
72
- name: '申请人'
73
- }];
74
-
75
- function Radio(_ref) {
76
- var checked = _ref.checked,
77
- disabled = _ref.disabled,
78
- onChange = _ref.onChange;
79
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("input", {
80
- type: 'radio',
81
- disabled: disabled,
82
- checked: checked,
83
- onChange: onChange
84
- }));
85
- }
86
-
87
- describe('singleSelect 单元测试', function () {
88
- var opts = {
89
- value: '1',
90
- clickArea: 'cell',
91
- highlightRowWhenSelected: true,
92
- isDisabled: function isDisabled(row, rowIndex) {
93
- var _context;
94
-
95
- return (0, _includes.default)(_context = ['4', '5', '6']).call(_context, row.id);
96
- },
97
- onChange: jest.fn()
98
- };
99
- var newPipeline = null;
100
- beforeEach(function () {
101
- var _renderHook = (0, _reactHooks.renderHook)(function () {
102
- return (0, _pipeline.useTablePipeline)({
103
- primaryKey: 'id',
104
- components: {
105
- Radio: Radio
106
- }
107
- }).input({
108
- dataSource: dataSource,
109
- columns: columns
110
- });
111
- }),
112
- result = _renderHook.result;
113
-
114
- var tablePipeline = result.current;
115
- newPipeline = (0, _singleSelect.singleSelect)(opts)(tablePipeline);
116
- });
117
- afterEach(function () {
118
- newPipeline = null;
119
- opts.onChange.mockClear();
120
- });
121
- it('初始渲染', function () {
122
- var col = newPipeline.getColumns(); // 表格会在最后补一个空白列,加上单选列所以有6列
123
-
124
- expect(col.length).toBe(6);
125
- expect(col[0].code).toBe('__SELECT');
126
- });
127
- it('getCellProps', function () {
128
- var col = newPipeline.getColumns();
129
- var cellProps = col[0].getCellProps('', newPipeline.getDataSource()[0], 0);
130
- expect(cellProps.style).toEqual({
131
- cursor: 'pointer'
132
- });
133
- expect(opts.onChange).not.toHaveBeenCalled();
134
- cellProps.onClick();
135
- expect(opts.onChange).toHaveBeenCalled();
136
- });
137
- it('单元格渲染', function () {
138
- var col = newPipeline.getColumns();
139
- var wrapper = (0, _enzyme.mount)(col[0].render('', newPipeline.getDataSource()[0], 0));
140
- expect((0, _find.default)(wrapper).call(wrapper, 'Radio').length).toBe(1);
141
- });
142
- it('触发区域为radio', function () {
143
- var _renderHook2 = (0, _reactHooks.renderHook)(function () {
144
- return (0, _pipeline.useTablePipeline)({
145
- primaryKey: 'id',
146
- components: {
147
- Radio: Radio
148
- }
149
- }).input({
150
- dataSource: dataSource,
151
- columns: columns
152
- });
153
- }),
154
- result = _renderHook2.result;
155
-
156
- var tablePipeline = result.current;
157
- opts.clickArea = 'radio';
158
- var newPipeline = (0, _singleSelect.singleSelect)(opts)(tablePipeline);
159
- var col = newPipeline.getColumns();
160
- var wrapper = (0, _enzyme.mount)(col[0].render('', newPipeline.getDataSource()[0], 0)); // Radio 触发onChange
161
-
162
- var input = (0, _find.default)(wrapper).call(wrapper, 'input');
163
- input.simulate('change');
164
- expect(opts.onChange).toHaveBeenCalled();
165
- opts.clickArea = 'cell';
166
- });
167
- it('appendRowPropsGetter', function () {
168
- var props = newPipeline.getProps();
169
- var rowProps = props.getRowProps(newPipeline.getDataSource()[0], 0);
170
- expect(rowProps.className).toBe('highlight');
171
- expect(rowProps.style).toEqual({});
172
- });
173
- it('触发区域为row', function () {
174
- var _renderHook3 = (0, _reactHooks.renderHook)(function () {
175
- return (0, _pipeline.useTablePipeline)({
176
- primaryKey: 'id',
177
- components: {
178
- Radio: Radio
179
- }
180
- }).input({
181
- dataSource: dataSource,
182
- columns: columns
183
- });
184
- }),
185
- result = _renderHook3.result;
186
-
187
- var tablePipeline = result.current;
188
- opts.clickArea = 'row';
189
- var newPipeline = (0, _singleSelect.singleSelect)(opts)(tablePipeline);
190
- var props = newPipeline.getProps();
191
- var rowProps = props.getRowProps(newPipeline.getDataSource()[0], 0);
192
- expect(rowProps.style).toEqual({
193
- cursor: 'pointer'
194
- });
195
- rowProps.onClick();
196
- expect(opts.onChange).toHaveBeenCalled(); // disable的行没有样式
197
-
198
- var rowProps1 = props.getRowProps(newPipeline.getDataSource()[4], 4);
199
- expect(rowProps1.style).toEqual({});
200
- });
201
- });
@@ -1 +0,0 @@
1
- export {};