e-virt-table 0.0.3

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 (90) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/dist/index.cjs.js +14 -0
  4. package/dist/index.cjs.js.map +1 -0
  5. package/dist/index.es.js +5422 -0
  6. package/dist/index.es.js.map +1 -0
  7. package/dist/index.umd.js +14 -0
  8. package/dist/index.umd.js.map +1 -0
  9. package/dist/lib/Autofill.d.ts +20 -0
  10. package/dist/lib/Autofill.js +185 -0
  11. package/dist/lib/Autofill.js.map +1 -0
  12. package/dist/lib/BaseCell.d.ts +22 -0
  13. package/dist/lib/BaseCell.js +111 -0
  14. package/dist/lib/BaseCell.js.map +1 -0
  15. package/dist/lib/Body.d.ts +29 -0
  16. package/dist/lib/Body.js +382 -0
  17. package/dist/lib/Body.js.map +1 -0
  18. package/dist/lib/Cell.d.ts +101 -0
  19. package/dist/lib/Cell.js +943 -0
  20. package/dist/lib/Cell.js.map +1 -0
  21. package/dist/lib/CellHeader.d.ts +64 -0
  22. package/dist/lib/CellHeader.js +355 -0
  23. package/dist/lib/CellHeader.js.map +1 -0
  24. package/dist/lib/Config.d.ts +106 -0
  25. package/dist/lib/Config.js +617 -0
  26. package/dist/lib/Config.js.map +1 -0
  27. package/dist/lib/Context.d.ts +123 -0
  28. package/dist/lib/Context.js +419 -0
  29. package/dist/lib/Context.js.map +1 -0
  30. package/dist/lib/Database.d.ts +228 -0
  31. package/dist/lib/Database.js +931 -0
  32. package/dist/lib/Database.js.map +1 -0
  33. package/dist/lib/EVirtTable.d.ts +61 -0
  34. package/dist/lib/EVirtTable.js +321 -0
  35. package/dist/lib/EVirtTable.js.map +1 -0
  36. package/dist/lib/Editor.d.ts +16 -0
  37. package/dist/lib/Editor.js +251 -0
  38. package/dist/lib/Editor.js.map +1 -0
  39. package/dist/lib/Empty.d.ts +7 -0
  40. package/dist/lib/Empty.js +45 -0
  41. package/dist/lib/Empty.js.map +1 -0
  42. package/dist/lib/EventBrowser.d.ts +17 -0
  43. package/dist/lib/EventBrowser.js +79 -0
  44. package/dist/lib/EventBrowser.js.map +1 -0
  45. package/dist/lib/EventBus.d.ts +12 -0
  46. package/dist/lib/EventBus.js +58 -0
  47. package/dist/lib/EventBus.js.map +1 -0
  48. package/dist/lib/EventTable.d.ts +26 -0
  49. package/dist/lib/EventTable.js +358 -0
  50. package/dist/lib/EventTable.js.map +1 -0
  51. package/dist/lib/Footer.d.ts +17 -0
  52. package/dist/lib/Footer.js +138 -0
  53. package/dist/lib/Footer.js.map +1 -0
  54. package/dist/lib/Header.d.ts +37 -0
  55. package/dist/lib/Header.js +482 -0
  56. package/dist/lib/Header.js.map +1 -0
  57. package/dist/lib/History.d.ts +27 -0
  58. package/dist/lib/History.js +106 -0
  59. package/dist/lib/History.js.map +1 -0
  60. package/dist/lib/Icons.d.ts +15 -0
  61. package/dist/lib/Icons.js +145 -0
  62. package/dist/lib/Icons.js.map +1 -0
  63. package/dist/lib/Overlayer.d.ts +10 -0
  64. package/dist/lib/Overlayer.js +267 -0
  65. package/dist/lib/Overlayer.js.map +1 -0
  66. package/dist/lib/Paint.d.ts +65 -0
  67. package/dist/lib/Paint.js +223 -0
  68. package/dist/lib/Paint.js.map +1 -0
  69. package/dist/lib/Row.d.ts +22 -0
  70. package/dist/lib/Row.js +125 -0
  71. package/dist/lib/Row.js.map +1 -0
  72. package/dist/lib/Scroller.d.ts +20 -0
  73. package/dist/lib/Scroller.js +448 -0
  74. package/dist/lib/Scroller.js.map +1 -0
  75. package/dist/lib/Selector.d.ts +38 -0
  76. package/dist/lib/Selector.js +532 -0
  77. package/dist/lib/Selector.js.map +1 -0
  78. package/dist/lib/Tooltip.d.ts +13 -0
  79. package/dist/lib/Tooltip.js +204 -0
  80. package/dist/lib/Tooltip.js.map +1 -0
  81. package/dist/lib/index.d.ts +3 -0
  82. package/dist/lib/index.js +4 -0
  83. package/dist/lib/index.js.map +1 -0
  84. package/dist/lib/types.d.ts +160 -0
  85. package/dist/lib/types.js +2 -0
  86. package/dist/lib/types.js.map +1 -0
  87. package/dist/lib/util.d.ts +15 -0
  88. package/dist/lib/util.js +113 -0
  89. package/dist/lib/util.js.map +1 -0
  90. package/package.json +37 -0
@@ -0,0 +1,482 @@
1
+ import { getMaxRow, calCrossSpan, toLeaf, sortFixed, throttle } from "./util";
2
+ import CellHeader from "./CellHeader";
3
+ export default class Header {
4
+ constructor(ctx) {
5
+ Object.defineProperty(this, "ctx", {
6
+ enumerable: true,
7
+ configurable: true,
8
+ writable: true,
9
+ value: void 0
10
+ }); // 上下文
11
+ Object.defineProperty(this, "x", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: 0
16
+ }); // x坐标
17
+ Object.defineProperty(this, "y", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: 0
22
+ }); // y坐标
23
+ Object.defineProperty(this, "width", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: 0
28
+ }); // 宽度
29
+ Object.defineProperty(this, "height", {
30
+ enumerable: true,
31
+ configurable: true,
32
+ writable: true,
33
+ value: 0
34
+ }); // 高度
35
+ Object.defineProperty(this, "resizeTarget", {
36
+ enumerable: true,
37
+ configurable: true,
38
+ writable: true,
39
+ value: null
40
+ }); //调整表头
41
+ Object.defineProperty(this, "resizeNum", {
42
+ enumerable: true,
43
+ configurable: true,
44
+ writable: true,
45
+ value: 0
46
+ }); // 调整列的数量
47
+ Object.defineProperty(this, "isResizing", {
48
+ enumerable: true,
49
+ configurable: true,
50
+ writable: true,
51
+ value: false
52
+ }); // 是否移动中
53
+ Object.defineProperty(this, "offsetX", {
54
+ enumerable: true,
55
+ configurable: true,
56
+ writable: true,
57
+ value: 0
58
+ }); // 鼠标按下时的x轴位置
59
+ Object.defineProperty(this, "resizeDiff", {
60
+ enumerable: true,
61
+ configurable: true,
62
+ writable: true,
63
+ value: 0
64
+ }); // 是否移动中
65
+ Object.defineProperty(this, "columnIndex", {
66
+ enumerable: true,
67
+ configurable: true,
68
+ writable: true,
69
+ value: 0
70
+ });
71
+ Object.defineProperty(this, "isMouseDown", {
72
+ enumerable: true,
73
+ configurable: true,
74
+ writable: true,
75
+ value: false
76
+ }); // 是否按下
77
+ Object.defineProperty(this, "columns", {
78
+ enumerable: true,
79
+ configurable: true,
80
+ writable: true,
81
+ value: void 0
82
+ });
83
+ Object.defineProperty(this, "visibleLeafColumns", {
84
+ enumerable: true,
85
+ configurable: true,
86
+ writable: true,
87
+ value: []
88
+ });
89
+ Object.defineProperty(this, "visibleHeight", {
90
+ enumerable: true,
91
+ configurable: true,
92
+ writable: true,
93
+ value: 0
94
+ });
95
+ Object.defineProperty(this, "visibleWidth", {
96
+ enumerable: true,
97
+ configurable: true,
98
+ writable: true,
99
+ value: 0
100
+ });
101
+ Object.defineProperty(this, "allCellHeaders", {
102
+ enumerable: true,
103
+ configurable: true,
104
+ writable: true,
105
+ value: []
106
+ });
107
+ Object.defineProperty(this, "leafCellHeaders", {
108
+ enumerable: true,
109
+ configurable: true,
110
+ writable: true,
111
+ value: []
112
+ });
113
+ Object.defineProperty(this, "renderLeafCellHeaders", {
114
+ enumerable: true,
115
+ configurable: true,
116
+ writable: true,
117
+ value: []
118
+ });
119
+ Object.defineProperty(this, "fixedLeftCellHeaders", {
120
+ enumerable: true,
121
+ configurable: true,
122
+ writable: true,
123
+ value: []
124
+ });
125
+ Object.defineProperty(this, "centerCellHeaders", {
126
+ enumerable: true,
127
+ configurable: true,
128
+ writable: true,
129
+ value: []
130
+ });
131
+ Object.defineProperty(this, "fixedRightCellHeaders", {
132
+ enumerable: true,
133
+ configurable: true,
134
+ writable: true,
135
+ value: []
136
+ });
137
+ Object.defineProperty(this, "renderCenterCellHeaders", {
138
+ enumerable: true,
139
+ configurable: true,
140
+ writable: true,
141
+ value: []
142
+ });
143
+ Object.defineProperty(this, "renderFixedCellHeaders", {
144
+ enumerable: true,
145
+ configurable: true,
146
+ writable: true,
147
+ value: []
148
+ });
149
+ this.ctx = ctx;
150
+ // 监听表头重置,窗口变化
151
+ this.ctx.on("resetHeader", throttle(() => {
152
+ this.init();
153
+ this.ctx.emit("draw");
154
+ }, 100));
155
+ this.init();
156
+ // 初始化调整列大小ENABLE_RESIZE_COLUMN
157
+ this.initResizeColumn();
158
+ }
159
+ init() {
160
+ const { config: { HEADER_HEIGHT, SCROLLER_TRACK_SIZE }, } = this.ctx;
161
+ const columns = this.ctx.database.getColumns();
162
+ this.columns = columns;
163
+ this.allCellHeaders = [];
164
+ this.leafCellHeaders = [];
165
+ this.fixedLeftCellHeaders = [];
166
+ this.fixedRightCellHeaders = [];
167
+ this.centerCellHeaders = [];
168
+ const maxHeaderRow = getMaxRow(columns);
169
+ const leafColumns = toLeaf(columns);
170
+ this.height = HEADER_HEIGHT * maxHeaderRow;
171
+ this.width = leafColumns.reduce((sum, _item) => sum + (_item?.width || 100), 0);
172
+ this.visibleHeight = this.height;
173
+ const spanColumns = sortFixed(calCrossSpan(columns, maxHeaderRow));
174
+ this.columnIndex = 0;
175
+ this.resizeNum = 0; // 可调整调整列数量
176
+ this.render(spanColumns, 0);
177
+ this.ctx.database.updateColIndexKeyMap(this.leafCellHeaders);
178
+ const targetContainer = this.ctx.targetContainer.getBoundingClientRect();
179
+ // 如果有可调整列,宽度等于容器宽度
180
+ if (this.resizeNum > 0) {
181
+ this.ctx.target.width = targetContainer.width;
182
+ }
183
+ else {
184
+ this.ctx.target.width = this.width + SCROLLER_TRACK_SIZE - 1;
185
+ }
186
+ this.visibleWidth = this.ctx.target.width - SCROLLER_TRACK_SIZE;
187
+ // 如果表头宽度小于可视宽度,平均分配
188
+ if (this.resizeNum) {
189
+ const overWidth = this.visibleWidth - this.width;
190
+ const diff = Math.floor((overWidth / this.resizeNum) * 100) / 100;
191
+ this.resizeAllColumn(diff);
192
+ }
193
+ const leafLeftCellHeaders = this.fixedLeftCellHeaders.filter((item) => !item.hasChildren);
194
+ this.ctx.fixedLeftWidth = leafLeftCellHeaders.reduce((sum, _item) => sum + _item.width, 0);
195
+ const leafRightCellHeaders = this.fixedRightCellHeaders.filter((item) => !item.hasChildren);
196
+ // 需要加右边滚动条的轨道宽度
197
+ this.ctx.fixedRightWidth = leafRightCellHeaders.reduce((sum, _item) => sum + _item.width, SCROLLER_TRACK_SIZE);
198
+ // 更新最大列索引
199
+ this.ctx.maxColIndex = this.leafCellHeaders.length - 1;
200
+ this.ctx.header.x = this.x;
201
+ this.ctx.header.y = this.y;
202
+ this.ctx.header.width = this.width;
203
+ this.ctx.header.height = this.height;
204
+ this.ctx.header.visibleWidth = this.visibleWidth;
205
+ this.ctx.header.visibleHeight = this.visibleHeight;
206
+ }
207
+ // 调整表头的宽度
208
+ initResizeColumn() {
209
+ const { config: { ENABLE_RESIZE_COLUMN }, } = this.ctx;
210
+ if (!ENABLE_RESIZE_COLUMN) {
211
+ return;
212
+ }
213
+ this.ctx.on("mousedown", (e) => {
214
+ if (!this.ctx.isTarget(e.target)) {
215
+ return;
216
+ }
217
+ this.offsetX = e.offsetX;
218
+ if (this.resizeTarget) {
219
+ this.isResizing = true;
220
+ this.ctx.columnResizing = true;
221
+ }
222
+ else {
223
+ this.isResizing = false;
224
+ }
225
+ this.isMouseDown = true;
226
+ });
227
+ this.ctx.on("mouseup", () => {
228
+ this.isMouseDown = false;
229
+ // 清空
230
+ if (this.resizeDiff !== 0 && this.resizeTarget) {
231
+ // 调整宽度
232
+ this.resizeColumn(this.resizeTarget, this.resizeDiff);
233
+ }
234
+ this.resizeTarget = null;
235
+ this.isResizing = false;
236
+ this.ctx.columnResizing = false;
237
+ this.offsetX = 0;
238
+ });
239
+ this.ctx.on("mousemove", (e) => {
240
+ // 编辑中不触发mousemove
241
+ if (this.ctx.editing)
242
+ return;
243
+ const { target, config: { RESIZE_COLUMN_MIN_WIDTH }, } = this.ctx;
244
+ // 鼠标移动
245
+ if (this.isResizing && this.resizeTarget) {
246
+ const resizeTargetWidth = this.resizeTarget.width;
247
+ let diff = e.offsetX - this.offsetX;
248
+ if (diff + resizeTargetWidth < RESIZE_COLUMN_MIN_WIDTH) {
249
+ diff = -(resizeTargetWidth - RESIZE_COLUMN_MIN_WIDTH);
250
+ }
251
+ this.resizeDiff = diff;
252
+ this.ctx.emit("draw");
253
+ }
254
+ else {
255
+ this.resizeTarget = null;
256
+ // 按下时不改变样式,有可能是多选表头
257
+ if (this.isMouseDown) {
258
+ return;
259
+ }
260
+ // 恢复默认样式
261
+ if (this.ctx.target.style.cursor === "col-resize") {
262
+ this.ctx.target.style.cursor = "default";
263
+ }
264
+ // 渲染的表头
265
+ const renderAllCellHeaders = [
266
+ ...this.renderFixedCellHeaders,
267
+ ...this.renderCenterCellHeaders,
268
+ ];
269
+ for (const col of renderAllCellHeaders) {
270
+ const x = e.layerX;
271
+ const drawX = col.getDrawX();
272
+ if (x > drawX + col.width - 5 &&
273
+ x < drawX + col.width + 4 &&
274
+ x < target.width - 4 && // 视窗中最后一列不允许调整宽
275
+ col.colspan <= 1 // 父级表头不触发
276
+ ) {
277
+ // 在表头内
278
+ if (e.target instanceof HTMLCanvasElement &&
279
+ this.ctx.isTarget(e.target) &&
280
+ e.layerY <= this.height) {
281
+ this.ctx.target.style.cursor = "col-resize";
282
+ this.resizeTarget = col;
283
+ }
284
+ }
285
+ }
286
+ }
287
+ });
288
+ }
289
+ resizeColumn(cell, diff) {
290
+ const setWidth = (columns) => {
291
+ columns.forEach((column) => {
292
+ if (column.children && column.children.length > 0) {
293
+ setWidth(column.children);
294
+ }
295
+ if (column.key === cell.key) {
296
+ const width = column.width || 100;
297
+ column.width = width + diff;
298
+ }
299
+ });
300
+ };
301
+ setWidth(this.columns);
302
+ this.ctx.database.setColumns(this.columns);
303
+ this.init();
304
+ this.ctx.emit("draw");
305
+ let overDiff = 0;
306
+ // 如果表头宽度小于可视宽度,平均分配
307
+ if (this.width < this.visibleWidth) {
308
+ const overWidth = this.visibleWidth - this.width;
309
+ overDiff = Math.floor((overWidth / this.resizeNum) * 100) / 100;
310
+ this.resizeAllColumn(overDiff);
311
+ this.ctx.emit("draw");
312
+ }
313
+ this.ctx.emit("resizeColumnChange", {
314
+ colIndex: cell.colIndex,
315
+ key: cell.key,
316
+ oldWidth: cell.width,
317
+ width: cell.width + diff + overDiff,
318
+ column: cell.column,
319
+ columns: this.columns,
320
+ });
321
+ }
322
+ resizeAllColumn(fellWidth) {
323
+ if (fellWidth === 0)
324
+ return;
325
+ const widthMap = new Map();
326
+ // 存需要更改的宽度
327
+ let isResize = true;
328
+ for (const col of this.allCellHeaders) {
329
+ if (col.widthFillDisable) {
330
+ // 不允许调整宽度
331
+ widthMap.set(col.key, col.width);
332
+ }
333
+ else {
334
+ const width = col.width + fellWidth * col.colspan;
335
+ widthMap.set(col.key, width);
336
+ if (width < this.ctx.config.RESIZE_COLUMN_MIN_WIDTH) {
337
+ isResize = false;
338
+ }
339
+ }
340
+ }
341
+ // 如果有小于RESIZE_COLUMN_MIN_WIDTH的列,不允许调整
342
+ if (!isResize) {
343
+ return;
344
+ }
345
+ // 递归更改宽度
346
+ const uptateWidth = (columns) => {
347
+ columns.forEach((column) => {
348
+ if (widthMap.has(column.key)) {
349
+ column.width = widthMap.get(column.key);
350
+ }
351
+ if (column.children && column.children.length > 0) {
352
+ uptateWidth(column.children);
353
+ }
354
+ });
355
+ };
356
+ uptateWidth(this.columns);
357
+ this.ctx.database.setColumns(this.columns);
358
+ this.init();
359
+ // this.ctx.emit("draw");
360
+ }
361
+ render(arr, originX) {
362
+ const len = arr.length;
363
+ let everyOffsetX = originX;
364
+ const { HEADER_HEIGHT = 0 } = this.ctx.config;
365
+ for (let i = 0; i < len; i++) {
366
+ const item = arr[i];
367
+ const height = HEADER_HEIGHT * (item.rowspan || 1);
368
+ const y = HEADER_HEIGHT * item.level;
369
+ let width = item.width || 100; // 读取映射宽度
370
+ if (item.children) {
371
+ // 父级表头的宽度是叶子节点表头的宽度总和
372
+ const _arr = toLeaf(item.children);
373
+ width = _arr.reduce((sum, _item) => sum + (_item?.width || 100), 0);
374
+ }
375
+ const cellHeader = new CellHeader(this.ctx, this.columnIndex, everyOffsetX, y, width, height, item);
376
+ // 设置表头
377
+ this.ctx.database.setHeader(item.key, cellHeader);
378
+ this.allCellHeaders.push(cellHeader);
379
+ if (!item.children) {
380
+ this.leafCellHeaders.push(cellHeader);
381
+ if (!cellHeader.column.widthFillDisable) {
382
+ this.resizeNum++;
383
+ }
384
+ }
385
+ if (item.fixed === "left") {
386
+ this.fixedLeftCellHeaders.push(cellHeader);
387
+ }
388
+ else if (item.fixed === "right") {
389
+ this.fixedRightCellHeaders.push(cellHeader);
390
+ }
391
+ else {
392
+ this.centerCellHeaders.push(cellHeader);
393
+ }
394
+ !item.children && this.columnIndex++;
395
+ item.children && this.render(item.children, everyOffsetX);
396
+ everyOffsetX += width;
397
+ }
398
+ }
399
+ drawTipLine() {
400
+ if (this.isResizing && this.resizeTarget) {
401
+ const { target, config: { RESIZE_COLUMN_LINE_COLOR }, } = this.ctx;
402
+ const resizeTargetDrawX = this.resizeTarget.getDrawX();
403
+ const resizeTargetWidth = this.resizeTarget.width;
404
+ const x = resizeTargetDrawX + resizeTargetWidth + this.resizeDiff - 0.5;
405
+ const poins = [x + 0.5, 0, x + 0.5, target.height];
406
+ this.ctx.paint.drawLine(poins, {
407
+ borderColor: RESIZE_COLUMN_LINE_COLOR,
408
+ borderWidth: 1,
409
+ });
410
+ }
411
+ }
412
+ drawFiexShadow() {
413
+ const { fixedLeftWidth, fixedRightWidth, scrollX, header, target, config: { HEADER_BG_COLOR, SCROLLER_TRACK_SIZE }, } = this.ctx;
414
+ if (scrollX > 0 && fixedLeftWidth !== 0) {
415
+ this.ctx.paint.drawShadow(this.x, this.y, fixedLeftWidth, this.height, {
416
+ fillColor: HEADER_BG_COLOR,
417
+ side: "right",
418
+ shadowWidth: 4,
419
+ colorStart: "rgba(0,0,0,0.1)",
420
+ colorEnd: "rgba(0,0,0,0)",
421
+ });
422
+ }
423
+ // 右边阴影
424
+ if (scrollX < Math.floor(header.width - header.visibleWidth - 1) &&
425
+ fixedRightWidth !== SCROLLER_TRACK_SIZE) {
426
+ const x = header.width - (this.x + this.width) + target.width - fixedRightWidth;
427
+ this.ctx.paint.drawShadow(x + 1, this.y, fixedRightWidth, this.height, {
428
+ fillColor: HEADER_BG_COLOR,
429
+ side: "left",
430
+ shadowWidth: 4,
431
+ colorStart: "rgba(0,0,0,0)",
432
+ colorEnd: "rgba(0,0,0,0.1)",
433
+ });
434
+ }
435
+ }
436
+ update() {
437
+ const renderLeafCellHeaders = [];
438
+ const renderCenterCellHeaders = [];
439
+ const renderFixedCellHeaders = [];
440
+ this.centerCellHeaders.forEach((item) => {
441
+ if (item.isHorizontalVisible() && item.isVerticalVisible()) {
442
+ renderCenterCellHeaders.push(item);
443
+ if (!item.hasChildren) {
444
+ renderLeafCellHeaders.push(item);
445
+ }
446
+ }
447
+ });
448
+ this.fixedLeftCellHeaders.forEach((item) => {
449
+ renderFixedCellHeaders.push(item);
450
+ if (!item.hasChildren) {
451
+ renderLeafCellHeaders.push(item);
452
+ }
453
+ });
454
+ this.fixedRightCellHeaders.forEach((item) => {
455
+ renderFixedCellHeaders.push(item);
456
+ if (!item.hasChildren) {
457
+ renderLeafCellHeaders.push(item);
458
+ }
459
+ });
460
+ this.renderCenterCellHeaders = renderCenterCellHeaders;
461
+ this.renderFixedCellHeaders = renderFixedCellHeaders;
462
+ this.renderLeafCellHeaders = renderLeafCellHeaders.sort((a, b) => a.x - b.x);
463
+ this.visibleLeafColumns = this.renderLeafCellHeaders.map((item) => item.column);
464
+ this.ctx.header.visibleLeafColumns = this.visibleLeafColumns;
465
+ this.ctx.header.leafCellHeaders = this.leafCellHeaders;
466
+ this.ctx.header.renderLeafCellHeaders = this.renderLeafCellHeaders;
467
+ this.ctx.header.renderCellHeaders = this.renderFixedCellHeaders.concat(this.renderCenterCellHeaders);
468
+ }
469
+ draw() {
470
+ this.renderCenterCellHeaders.forEach((item) => {
471
+ item.update();
472
+ item.draw();
473
+ });
474
+ this.drawFiexShadow();
475
+ this.renderFixedCellHeaders.forEach((item) => {
476
+ item.update();
477
+ item.draw();
478
+ });
479
+ this.drawTipLine();
480
+ }
481
+ }
482
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/Header.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type Context from "./Context";
2
+ export type HistoryItemData = {
3
+ oldValue: any;
4
+ newValue: any;
5
+ key: string;
6
+ rowKey: string;
7
+ };
8
+ export type HistoryItem = {
9
+ changeList: HistoryItemData[];
10
+ scrollY: number;
11
+ scrollX: number;
12
+ type: "single" | "multiple";
13
+ };
14
+ /**
15
+ * 数据历史堆栈
16
+ */
17
+ export default class History {
18
+ private ctx;
19
+ private history;
20
+ private historyIndex;
21
+ constructor(ctx: Context);
22
+ private init;
23
+ pushState(changeList: HistoryItem): void;
24
+ backState(): void;
25
+ forwardState(): void;
26
+ clear(): void;
27
+ }
@@ -0,0 +1,106 @@
1
+ /**
2
+ * 数据历史堆栈
3
+ */
4
+ export default class History {
5
+ constructor(ctx) {
6
+ Object.defineProperty(this, "ctx", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: void 0
11
+ });
12
+ Object.defineProperty(this, "history", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: []
17
+ });
18
+ Object.defineProperty(this, "historyIndex", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: -1
23
+ });
24
+ this.ctx = ctx;
25
+ this.init();
26
+ }
27
+ init() {
28
+ this.ctx.on("keydown", (e) => {
29
+ // 撤销
30
+ if ((e.ctrlKey && !e.shiftKey && e.code === "KeyZ") ||
31
+ (e.metaKey && !e.shiftKey && e.code === "KeyZ")) {
32
+ e.preventDefault();
33
+ this.ctx.clearSelector();
34
+ this.ctx.clearAutofill();
35
+ this.backState();
36
+ return;
37
+ }
38
+ // 恢复
39
+ if ((e.ctrlKey && e.code === "KeyY") ||
40
+ (e.ctrlKey && e.shiftKey && e.code === "KeyZ") ||
41
+ (e.metaKey && e.shiftKey && e.code === "KeyZ")) {
42
+ e.preventDefault();
43
+ this.ctx.clearSelector();
44
+ this.ctx.clearAutofill();
45
+ this.forwardState();
46
+ return;
47
+ }
48
+ });
49
+ }
50
+ pushState(changeList) {
51
+ const { HISTORY_NUM = 0, ENABLE_HISTORY } = this.ctx.config;
52
+ // 是否启动历史
53
+ if (!ENABLE_HISTORY) {
54
+ return;
55
+ }
56
+ this.history.push(changeList);
57
+ if (this.history.length > HISTORY_NUM) {
58
+ this.history.splice(0, 1);
59
+ }
60
+ this.historyIndex = this.history.length - 1;
61
+ }
62
+ // 回退
63
+ backState() {
64
+ if (this.historyIndex >= 0) {
65
+ const { changeList, scrollX, scrollY } = this.history[this.historyIndex];
66
+ const data = changeList.map((item) => {
67
+ return {
68
+ rowKey: item.rowKey,
69
+ key: item.key,
70
+ value: item.oldValue,
71
+ row: {},
72
+ };
73
+ });
74
+ // 设置滚动条位置
75
+ this.ctx.setScroll(scrollX, scrollY);
76
+ // 不需要添加历史记录
77
+ this.ctx.database.batchSetItemValue(data, false);
78
+ this.historyIndex -= 1;
79
+ this.ctx.emit("draw");
80
+ }
81
+ }
82
+ // 前进
83
+ forwardState() {
84
+ if (this.historyIndex < this.history.length - 1) {
85
+ this.historyIndex += 1;
86
+ const { changeList } = this.history[this.historyIndex];
87
+ const data = changeList.map((item) => {
88
+ return {
89
+ rowKey: item.rowKey,
90
+ key: item.key,
91
+ value: item.newValue,
92
+ row: {},
93
+ };
94
+ });
95
+ // 不需要添加历史记录
96
+ this.ctx.database.batchSetItemValue(data, false);
97
+ this.ctx.emit("draw");
98
+ }
99
+ }
100
+ // 清空历史
101
+ clear() {
102
+ this.history = [];
103
+ this.historyIndex = -1;
104
+ }
105
+ }
106
+ //# sourceMappingURL=History.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"History.js","sourceRoot":"","sources":["../../src/History.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import Context from "./Context";
2
+ export interface IconType {
3
+ name: string;
4
+ svg: string;
5
+ color: string;
6
+ }
7
+ export default class Icons {
8
+ private ctx;
9
+ private list;
10
+ icons: Map<string, HTMLImageElement>;
11
+ constructor(ctx: Context);
12
+ init(): Promise<void>;
13
+ private createImageFromSVG;
14
+ get(name: string): HTMLImageElement | undefined;
15
+ }