e-virt-table 1.4.2 → 1.4.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 (67) hide show
  1. package/README.md +1 -1
  2. package/dist/index.cjs.js +16 -16
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.es.js +2463 -2423
  5. package/dist/index.es.js.map +1 -1
  6. package/dist/index.umd.js +16 -16
  7. package/dist/index.umd.js.map +1 -1
  8. package/dist/lib/BaseCell.js +3 -2
  9. package/dist/lib/BaseCell.js.map +1 -1
  10. package/dist/lib/Body.js +30 -24
  11. package/dist/lib/Body.js.map +1 -1
  12. package/dist/lib/BorderStyle.d.ts +9 -0
  13. package/dist/lib/BorderStyle.js +29 -0
  14. package/dist/lib/BorderStyle.js.map +1 -0
  15. package/dist/lib/Cell.d.ts +1 -0
  16. package/dist/lib/Cell.js +16 -9
  17. package/dist/lib/Cell.js.map +1 -1
  18. package/dist/lib/CellHeader.js +3 -2
  19. package/dist/lib/CellHeader.js.map +1 -1
  20. package/dist/lib/CellImage.js +2 -2
  21. package/dist/lib/CellImage.js.map +1 -1
  22. package/dist/lib/Config.d.ts +7 -7
  23. package/dist/lib/Config.js +9 -16
  24. package/dist/lib/Config.js.map +1 -1
  25. package/dist/lib/Context.d.ts +0 -11
  26. package/dist/lib/Context.js +3 -49
  27. package/dist/lib/Context.js.map +1 -1
  28. package/dist/lib/Database.js +2 -2
  29. package/dist/lib/Database.js.map +1 -1
  30. package/dist/lib/EVirtTable.d.ts +1 -6
  31. package/dist/lib/EVirtTable.js +8 -10
  32. package/dist/lib/EVirtTable.js.map +1 -1
  33. package/dist/lib/Editor.js +24 -23
  34. package/dist/lib/Editor.js.map +1 -1
  35. package/dist/lib/Empty.js +1 -1
  36. package/dist/lib/Empty.js.map +1 -1
  37. package/dist/lib/EventBrowser.js +2 -10
  38. package/dist/lib/EventBrowser.js.map +1 -1
  39. package/dist/lib/EventTable.js +5 -3
  40. package/dist/lib/EventTable.js.map +1 -1
  41. package/dist/lib/Footer.js +18 -5
  42. package/dist/lib/Footer.js.map +1 -1
  43. package/dist/lib/Header.js +20 -15
  44. package/dist/lib/Header.js.map +1 -1
  45. package/dist/lib/Overlayer.js +21 -10
  46. package/dist/lib/Overlayer.js.map +1 -1
  47. package/dist/lib/Paint.d.ts +1 -1
  48. package/dist/lib/Paint.js +2 -3
  49. package/dist/lib/Paint.js.map +1 -1
  50. package/dist/lib/Row.d.ts +2 -0
  51. package/dist/lib/Row.js +10 -0
  52. package/dist/lib/Row.js.map +1 -1
  53. package/dist/lib/ScrollbarMode.d.ts +21 -0
  54. package/dist/lib/ScrollbarMode.js +38 -0
  55. package/dist/lib/ScrollbarMode.js.map +1 -0
  56. package/dist/lib/Scroller.d.ts +1 -0
  57. package/dist/lib/Scroller.js +255 -75
  58. package/dist/lib/Scroller.js.map +1 -1
  59. package/dist/lib/Selector.js +4 -2
  60. package/dist/lib/Selector.js.map +1 -1
  61. package/dist/lib/Tooltip.js +12 -7
  62. package/dist/lib/Tooltip.js.map +1 -1
  63. package/dist/lib/types.d.ts +1 -0
  64. package/package.json +1 -1
  65. package/dist/lib/ZoomScale.d.ts +0 -55
  66. package/dist/lib/ZoomScale.js +0 -137
  67. package/dist/lib/ZoomScale.js.map +0 -1
@@ -1,3 +1,18 @@
1
+ import { shouldDrawRightBoundaryBorder, shouldDrawScrollerBorder, shouldDrawScrollerTrack } from './BorderStyle';
2
+ import { getLayoutScrollerTrackSize, getOverlayScrollerTrackSize, getScrollbarCornerOffset, getScrollbarThumbEndInset, isInnerScrollbarMode, shouldDrawScrollbar, shouldDrawScrollbarTrackBackground, shouldDrawScrollbarTrackBorder, shouldStartInnerScrollbarShowTimer, } from './ScrollbarMode';
3
+ function getScrollbarThumbSize(distance, visibleDistance, contentDistance, trackDistance = visibleDistance, minSize = 30) {
4
+ if (distance <= 0 || visibleDistance <= 0 || contentDistance <= 0 || trackDistance <= 0) {
5
+ return 0;
6
+ }
7
+ const size = Math.floor((visibleDistance / contentDistance) * trackDistance);
8
+ if (size < minSize) {
9
+ return Math.min(minSize, trackDistance);
10
+ }
11
+ if (size > trackDistance) {
12
+ return 0;
13
+ }
14
+ return size;
15
+ }
1
16
  class Scrollbar {
2
17
  constructor(ctx, type) {
3
18
  Object.defineProperty(this, "ctx", {
@@ -84,6 +99,18 @@ class Scrollbar {
84
99
  writable: true,
85
100
  value: 0
86
101
  }); //可见区域的长度
102
+ Object.defineProperty(this, "thumbTrackDistance", {
103
+ enumerable: true,
104
+ configurable: true,
105
+ writable: true,
106
+ value: 0
107
+ });
108
+ Object.defineProperty(this, "thumbTravelDistance", {
109
+ enumerable: true,
110
+ configurable: true,
111
+ writable: true,
112
+ value: 0
113
+ });
87
114
  Object.defineProperty(this, "clientX", {
88
115
  enumerable: true,
89
116
  configurable: true,
@@ -102,6 +129,18 @@ class Scrollbar {
102
129
  writable: true,
103
130
  value: 0
104
131
  }); // 拖拽开始的位置
132
+ Object.defineProperty(this, "innerVisible", {
133
+ enumerable: true,
134
+ configurable: true,
135
+ writable: true,
136
+ value: false
137
+ });
138
+ Object.defineProperty(this, "innerShowTimer", {
139
+ enumerable: true,
140
+ configurable: true,
141
+ writable: true,
142
+ value: 0
143
+ });
105
144
  Object.defineProperty(this, "isDragging", {
106
145
  enumerable: true,
107
146
  configurable: true,
@@ -129,8 +168,8 @@ class Scrollbar {
129
168
  onTouchmove(e) {
130
169
  const { clientY, clientX } = e.touches[0];
131
170
  // 物理滑动距离换算为逻辑距离
132
- const deltaY = this.ctx.zoomScale.toLogical(clientY - this.clientY);
133
- const deltaX = this.ctx.zoomScale.toLogical(clientX - this.clientX);
171
+ const deltaY = clientY - this.clientY;
172
+ const deltaX = clientX - this.clientX;
134
173
  let scroll = 0;
135
174
  if (this.type === 'vertical') {
136
175
  scroll = Math.max(0, Math.min(this.dragStart - deltaY, this.distance));
@@ -167,11 +206,14 @@ class Scrollbar {
167
206
  return true;
168
207
  }
169
208
  const { clientX, clientY } = e;
170
- // 滚动条按逻辑坐标绘制,鼠标 offset 是物理像素,需换算
171
- const offsetX = this.ctx.zoomScale.toLogical(e.offsetX);
172
- const offsetY = this.ctx.zoomScale.toLogical(e.offsetY);
209
+ const { offsetX, offsetY } = this.ctx.getOffset(e);
173
210
  if (clientX == this.clientX && clientY == this.clientY)
174
211
  return;
212
+ if (this.isInnerMode()) {
213
+ if (!this.canInteractWithScrollbar()) {
214
+ return;
215
+ }
216
+ }
175
217
  if (this.isOnScrollbar(offsetX, offsetY)) {
176
218
  this.clientX = clientX;
177
219
  this.clientY = clientY;
@@ -188,11 +230,11 @@ class Scrollbar {
188
230
  // 滚动条位置=(鼠标位置-滚动条的高度/2-头部的高度)/(可见区域的长度-滚动条的高度)*滚动条的长度
189
231
  // 滚动到中间所以减去滚动条的高度/2
190
232
  const offset = offsetY - this.ctx.header.height - this.barHeight / 2;
191
- scroll = (offset / (this.visibleDistance - this.barHeight)) * this.distance;
233
+ scroll = (offset / this.thumbTravelDistance) * this.distance;
192
234
  }
193
235
  else {
194
236
  const offset = offsetX - this.barWidth / 2;
195
- scroll = (offset / (this.visibleDistance - this.barWidth)) * this.distance;
237
+ scroll = (offset / this.thumbTravelDistance) * this.distance;
196
238
  }
197
239
  this.scroll = Math.max(0, Math.min(scroll, this.distance));
198
240
  }
@@ -203,24 +245,32 @@ class Scrollbar {
203
245
  this.clientX = 0;
204
246
  this.clientY = 0;
205
247
  }
206
- onMouseMove(e) {
248
+ onMouseMove(e, isPointerInsideTable) {
207
249
  const { clientX, clientY, buttons } = e;
208
- const offsetX = this.ctx.zoomScale.toLogical(e.offsetX);
209
- const offsetY = this.ctx.zoomScale.toLogical(e.offsetY);
250
+ const { offsetX, offsetY } = this.ctx.getOffset(e);
251
+ let needsFullRedraw = false;
252
+ if (shouldStartInnerScrollbarShowTimer(this.ctx.config, isPointerInsideTable)) {
253
+ this.startInnerShowTimer();
254
+ }
255
+ else {
256
+ needsFullRedraw = this.hideInnerScrollbar();
257
+ }
210
258
  // 没有鼠标按下时不处理,要重置抬起事件
211
259
  // 悬浮提示
212
- if (this.isOnScrollbar(offsetX, offsetY) && e.target === this.ctx.canvasElement) {
260
+ const isScrollbarHover = this.canInteractWithScrollbar() && (this.isOnScrollbar(offsetX, offsetY) || this.isOnTrack(offsetX, offsetY));
261
+ if (isScrollbarHover && isPointerInsideTable) {
213
262
  this.isFocus = true;
263
+ this.ctx.stageElement.style.cursor = 'pointer';
214
264
  }
215
265
  else {
216
266
  this.isFocus = false;
217
267
  }
218
268
  if (buttons === 0) {
219
- return;
269
+ return needsFullRedraw;
220
270
  }
221
271
  // 拖拽移动滚动条
222
272
  if (clientX == this.clientX && clientY == this.clientY)
223
- return;
273
+ return needsFullRedraw;
224
274
  let offset = 0;
225
275
  if (this.type === 'horizontal') {
226
276
  offset = clientX - this.clientX;
@@ -228,19 +278,18 @@ class Scrollbar {
228
278
  else {
229
279
  offset = clientY - this.clientY;
230
280
  }
231
- // 物理位移换算为逻辑位移
232
- offset = this.ctx.zoomScale.toLogical(offset);
233
281
  if (this.isDragging && offset !== 0) {
234
282
  // scroll= 开始滚动条位置+(鼠标移动的距离/可见区域的长度)*滚动条的长度
235
283
  let scroll = 0;
236
284
  if (this.type === 'vertical') {
237
- scroll = this.dragStart + (offset / (this.visibleDistance - this.barHeight)) * this.distance;
285
+ scroll = this.dragStart + (offset / this.thumbTravelDistance) * this.distance;
238
286
  }
239
287
  else {
240
- scroll = this.dragStart + (offset / (this.visibleDistance - this.barWidth)) * this.distance;
288
+ scroll = this.dragStart + (offset / this.thumbTravelDistance) * this.distance;
241
289
  }
242
290
  this.scroll = Math.max(0, Math.min(scroll, this.distance));
243
291
  }
292
+ return needsFullRedraw;
244
293
  }
245
294
  isPointInElement(pointX, pointY, elementX, elementY, elementWidth, elementHeight) {
246
295
  return (pointX >= elementX &&
@@ -263,6 +312,47 @@ class Scrollbar {
263
312
  isOnTrack(x, y) {
264
313
  return this.isPointInElement(x, y, this.trackX, this.trackY, this.trackWidth, this.trackHeight);
265
314
  }
315
+ isInnerMode() {
316
+ return isInnerScrollbarMode(this.ctx.config);
317
+ }
318
+ shouldDrawInnerScrollbar() {
319
+ return shouldDrawScrollbar(this.ctx.config, {
320
+ innerVisible: this.innerVisible,
321
+ isFocus: this.isFocus,
322
+ isDragging: this.isDragging,
323
+ });
324
+ }
325
+ canInteractWithScrollbar() {
326
+ return !this.isInnerMode() || this.shouldDrawInnerScrollbar();
327
+ }
328
+ startInnerShowTimer() {
329
+ if (!this.isInnerMode() || this.innerVisible || this.innerShowTimer) {
330
+ return;
331
+ }
332
+ const delay = Math.max(0, this.ctx.config.SCROLLBAR_SHOW_DELAY || 0);
333
+ this.innerShowTimer = window.setTimeout(() => {
334
+ this.innerVisible = true;
335
+ this.innerShowTimer = 0;
336
+ this.ctx.emit('draw');
337
+ }, delay);
338
+ }
339
+ cancelInnerShowTimer() {
340
+ if (!this.innerShowTimer) {
341
+ return;
342
+ }
343
+ clearTimeout(this.innerShowTimer);
344
+ this.innerShowTimer = 0;
345
+ }
346
+ hideInnerScrollbar() {
347
+ if (!this.isInnerMode() || this.isDragging) {
348
+ return false;
349
+ }
350
+ const needsFullRedraw = this.innerVisible || this.isFocus;
351
+ this.cancelInnerShowTimer();
352
+ this.innerVisible = false;
353
+ this.isFocus = false;
354
+ return needsFullRedraw;
355
+ }
266
356
  updateScroll(e) {
267
357
  const deltaX = e.deltaX;
268
358
  const deltaY = e.deltaY;
@@ -284,67 +374,66 @@ class Scrollbar {
284
374
  }
285
375
  }
286
376
  updatedSize() {
287
- const { body, header, stageHeight, stageWidth, config: { SCROLLER_TRACK_SIZE = 0, SCROLLER_SIZE = 0, BORDER }, } = this.ctx;
377
+ const { body, header, stageHeight, stageWidth, config: { SCROLLER_SIZE = 0, BORDER }, } = this.ctx;
378
+ const layoutScrollerTrackSize = getLayoutScrollerTrackSize(this.ctx.config);
379
+ const overlayScrollerTrackSize = getOverlayScrollerTrackSize(this.ctx.config);
288
380
  const visibleWidth = stageWidth;
289
381
  const visibleHeight = stageHeight;
290
382
  const headerHeight = header.height;
291
383
  const headerWidth = header.width;
292
384
  const bodyHeight = body.height;
293
385
  const footerHeight = this.ctx.footer.height;
386
+ const verticalVisibleDistance = visibleHeight - layoutScrollerTrackSize - headerHeight;
387
+ const horizontalVisibleDistance = visibleWidth - layoutScrollerTrackSize;
388
+ const verticalDistance = Math.max(0, bodyHeight - verticalVisibleDistance + footerHeight);
389
+ const horizontalDistance = Math.max(0, headerWidth - horizontalVisibleDistance);
390
+ const thumbEndInset = getScrollbarThumbEndInset(this.ctx.config);
294
391
  if (this.type === 'vertical') {
295
- this.visibleDistance = visibleHeight - SCROLLER_TRACK_SIZE - headerHeight;
296
- this.distance = bodyHeight - this.visibleDistance + footerHeight;
297
- this.trackX = visibleWidth - SCROLLER_TRACK_SIZE;
392
+ this.visibleDistance = verticalVisibleDistance;
393
+ this.distance = verticalDistance;
394
+ const cornerOffset = getScrollbarCornerOffset(this.ctx.config, horizontalDistance > 0);
395
+ this.thumbTrackDistance = Math.max(0, this.visibleDistance - cornerOffset);
396
+ this.trackX = visibleWidth - overlayScrollerTrackSize;
298
397
  this.trackY = 0;
299
398
  // 分割线
300
- this.splitPoints = [this.trackX, headerHeight, this.trackX + SCROLLER_TRACK_SIZE, headerHeight];
301
- this.trackWidth = SCROLLER_TRACK_SIZE;
302
- this.trackHeight = visibleHeight;
399
+ this.splitPoints = [this.trackX, headerHeight, this.trackX + overlayScrollerTrackSize, headerHeight];
400
+ this.trackWidth = overlayScrollerTrackSize;
401
+ this.trackHeight = Math.max(0, visibleHeight - cornerOffset);
303
402
  // 滚动条的X位置=轨道的X位置+(轨道的宽度-滚动条的宽度)/2
304
- this.barX = this.trackX - 1 + (SCROLLER_TRACK_SIZE - SCROLLER_SIZE) / 2;
403
+ this.barX = this.trackX - 1 + (overlayScrollerTrackSize - SCROLLER_SIZE) / 2;
305
404
  this.barWidth = SCROLLER_SIZE;
306
- const ratio = this.distance ? this.visibleDistance / (bodyHeight + footerHeight) : 0;
307
- let _barHeight = Math.floor(ratio * this.visibleDistance);
405
+ this.barHeight = getScrollbarThumbSize(this.distance, this.visibleDistance, bodyHeight + footerHeight, this.thumbTrackDistance);
406
+ this.thumbTravelDistance = Math.max(0, this.thumbTrackDistance - this.barHeight - thumbEndInset);
308
407
  // 最小30,超出可见区域则隐藏
309
- if (_barHeight < 30) {
310
- _barHeight = 30;
311
- }
312
- else if (_barHeight > this.visibleDistance) {
313
- _barHeight = 0;
314
- }
315
- this.barHeight = _barHeight;
316
- this.barY = headerHeight + (this.scroll / this.distance) * (this.visibleDistance - this.barHeight);
408
+ const progress = this.distance ? this.scroll / this.distance : 0;
409
+ this.barY = headerHeight + progress * this.thumbTravelDistance;
317
410
  // 范围限制
318
411
  this.scroll = Math.max(0, Math.min(this.scroll, this.distance));
319
412
  }
320
413
  else {
321
- this.visibleDistance = visibleWidth - SCROLLER_TRACK_SIZE;
322
- this.distance = headerWidth - this.visibleDistance;
414
+ this.visibleDistance = horizontalVisibleDistance;
415
+ this.distance = horizontalDistance;
416
+ const cornerOffset = getScrollbarCornerOffset(this.ctx.config, verticalDistance > 0);
417
+ this.thumbTrackDistance = Math.max(0, this.visibleDistance - cornerOffset);
323
418
  // 分割线
324
419
  this.splitPoints = [
325
- visibleWidth - SCROLLER_TRACK_SIZE,
326
- visibleHeight - SCROLLER_TRACK_SIZE,
327
- visibleWidth - SCROLLER_TRACK_SIZE,
420
+ visibleWidth - overlayScrollerTrackSize,
421
+ visibleHeight - overlayScrollerTrackSize,
422
+ visibleWidth - overlayScrollerTrackSize,
328
423
  visibleHeight,
329
424
  ];
330
- const offset = BORDER ? 0 : 0.5; // 解决边框问题,补偿0.5px
425
+ const offset = shouldDrawScrollerBorder(BORDER) ? 0 : 0.5; // 解决边框问题,补偿0.5px
331
426
  this.trackX = 0;
332
- this.trackY = visibleHeight - SCROLLER_TRACK_SIZE + offset;
333
- this.trackWidth = visibleWidth;
334
- this.trackHeight = SCROLLER_TRACK_SIZE;
335
- const ratio = this.distance ? this.visibleDistance / headerWidth : 0;
336
- let _barWidth = Math.floor(ratio * this.visibleDistance);
337
- this.barY = this.trackY - 1 + (SCROLLER_TRACK_SIZE - SCROLLER_SIZE) / 2;
427
+ this.trackY = visibleHeight - overlayScrollerTrackSize + offset;
428
+ this.trackWidth = Math.max(0, visibleWidth - cornerOffset);
429
+ this.trackHeight = overlayScrollerTrackSize;
430
+ this.barWidth = getScrollbarThumbSize(this.distance, this.visibleDistance, headerWidth, this.thumbTrackDistance);
431
+ this.thumbTravelDistance = Math.max(0, this.thumbTrackDistance - this.barWidth - thumbEndInset);
432
+ this.barY = this.trackY - 1 + (overlayScrollerTrackSize - SCROLLER_SIZE) / 2;
338
433
  // 最小30,超出可见区域则隐藏
339
- if (_barWidth < 30) {
340
- _barWidth = 30;
341
- }
342
- else if (_barWidth >= this.visibleDistance) {
343
- _barWidth = 0;
344
- }
345
- this.barWidth = _barWidth;
346
434
  this.barHeight = SCROLLER_SIZE;
347
- this.barX = (this.scroll / this.distance) * (this.visibleDistance - this.barWidth);
435
+ const progress = this.distance ? this.scroll / this.distance : 0;
436
+ this.barX = progress * this.thumbTravelDistance;
348
437
  // 范围限制
349
438
  this.scroll = Math.max(0, Math.min(this.scroll, this.distance));
350
439
  }
@@ -352,29 +441,103 @@ class Scrollbar {
352
441
  draw() {
353
442
  const { config: { SCROLLER_FOCUS_COLOR, SCROLLER_COLOR, BORDER_COLOR, BORDER, SCROLLER_TRACK_COLOR }, } = this.ctx;
354
443
  this.updatedSize();
355
- let borderColor = BORDER_COLOR;
356
- if (!BORDER) {
357
- borderColor = 'transparent';
358
- }
444
+ if (this.isInnerMode() && !this.shouldDrawInnerScrollbar()) {
445
+ return this.isFocus || this.isDragging;
446
+ }
447
+ const drawTrackBorder = shouldDrawScrollbarTrackBorder(this.ctx.config);
448
+ const drawTrackBackground = shouldDrawScrollbarTrackBackground(this.ctx.config);
449
+ const borderColor = drawTrackBorder && shouldDrawScrollerBorder(BORDER) ? BORDER_COLOR : 'transparent';
450
+ const hasScrollbar = this.hasScrollbar();
451
+ const drawTrack = shouldDrawScrollerTrack(BORDER, hasScrollbar);
359
452
  // 轨道
360
- this.ctx.paint.drawRect(this.trackX, this.trackY, this.trackWidth, this.trackHeight, {
361
- borderColor,
362
- fillColor: SCROLLER_TRACK_COLOR,
363
- });
453
+ if (drawTrackBackground && drawTrack) {
454
+ this.ctx.paint.drawRect(this.trackX, this.trackY, this.trackWidth, this.trackHeight, {
455
+ fillColor: SCROLLER_TRACK_COLOR,
456
+ });
457
+ this.drawTrackHeaderBackground();
458
+ if (drawTrackBorder) {
459
+ this.ctx.paint.drawRect(this.trackX, this.trackY, this.trackWidth, this.trackHeight, {
460
+ borderColor,
461
+ });
462
+ this.drawRightBoundaryBorder();
463
+ }
464
+ }
465
+ else if (drawTrackBackground) {
466
+ this.drawInactiveTrackBackground();
467
+ }
364
468
  // 滚动条
365
- this.ctx.paint.drawRect(this.barX, this.barY, this.barWidth, this.barHeight, {
366
- fillColor: this.isFocus || this.isDragging ? SCROLLER_FOCUS_COLOR : SCROLLER_COLOR,
367
- radius: 4,
368
- });
469
+ if (hasScrollbar) {
470
+ this.ctx.paint.drawRect(this.barX, this.barY, this.barWidth, this.barHeight, {
471
+ fillColor: this.isFocus || this.isDragging ? SCROLLER_FOCUS_COLOR : SCROLLER_COLOR,
472
+ radius: 4,
473
+ });
474
+ }
369
475
  // 分割线范围外
370
- if (this.splitPoints.length > 0) {
476
+ if (drawTrackBorder && drawTrack && this.splitPoints.length > 0) {
371
477
  this.ctx.paint.drawLine(this.splitPoints, {
372
478
  borderColor,
373
479
  borderWidth: 1,
374
480
  });
375
481
  }
376
- // 悬浮状态
377
- this.ctx.scrollerFocus = this.isFocus;
482
+ return this.isFocus || this.isDragging;
483
+ }
484
+ drawTrackHeaderBackground() {
485
+ if (this.type !== 'vertical' || this.trackWidth <= 0) {
486
+ return;
487
+ }
488
+ const { header, config: { HEADER_BG_COLOR }, } = this.ctx;
489
+ const height = Math.max(0, Math.min(header.height, this.trackHeight));
490
+ if (height <= 0) {
491
+ return;
492
+ }
493
+ this.ctx.paint.drawRect(this.trackX, this.trackY, this.trackWidth, height, {
494
+ fillColor: HEADER_BG_COLOR,
495
+ });
496
+ }
497
+ drawInactiveTrackBackground() {
498
+ if (this.type !== 'vertical') {
499
+ return;
500
+ }
501
+ const { footer, header, scrollY, stageHeight, config: { BODY_BG_COLOR, FOOTER_BG_COLOR, FOOTER_FIXED, FOOTER_POSITION, HEADER_BG_COLOR, SCROLLER_TRACK_SIZE = 0, }, } = this.ctx;
502
+ const bottom = Math.max(0, stageHeight - SCROLLER_TRACK_SIZE);
503
+ if (bottom <= 0 || this.trackWidth <= 0) {
504
+ return;
505
+ }
506
+ this.ctx.paint.drawRect(this.trackX, 0, this.trackWidth, bottom, {
507
+ fillColor: BODY_BG_COLOR,
508
+ });
509
+ this.ctx.paint.drawRect(this.trackX, 0, this.trackWidth, header.height, {
510
+ fillColor: HEADER_BG_COLOR,
511
+ });
512
+ if (!footer.height) {
513
+ return;
514
+ }
515
+ const footerY = FOOTER_FIXED
516
+ ? FOOTER_POSITION === 'top'
517
+ ? header.height
518
+ : bottom - footer.height
519
+ : footer.y - scrollY;
520
+ const y = Math.max(header.height, Math.min(footerY, bottom));
521
+ const height = Math.max(0, Math.min(footer.height, bottom - y));
522
+ if (height > 0) {
523
+ this.ctx.paint.drawRect(this.trackX, y, this.trackWidth, height, {
524
+ fillColor: FOOTER_BG_COLOR,
525
+ });
526
+ }
527
+ }
528
+ drawRightBoundaryBorder() {
529
+ const { stageHeight, config: { BORDER, BORDER_COLOR, SCROLLER_TRACK_SIZE = 0 }, } = this.ctx;
530
+ if (this.type !== 'vertical' || !shouldDrawRightBoundaryBorder(BORDER) || SCROLLER_TRACK_SIZE <= 0) {
531
+ return;
532
+ }
533
+ const bottom = stageHeight - SCROLLER_TRACK_SIZE;
534
+ if (bottom <= 0) {
535
+ return;
536
+ }
537
+ this.ctx.paint.drawLine([this.trackX, 0, this.trackX, bottom], {
538
+ borderColor: BORDER_COLOR,
539
+ borderWidth: 1,
540
+ });
378
541
  }
379
542
  }
380
543
  export default class Scroller {
@@ -434,6 +597,7 @@ export default class Scroller {
434
597
  this.ctx.on('mousedown', (e) => this.onMouseDown(e));
435
598
  this.ctx.on('mousemove', (e) => this.onMouseMove(e));
436
599
  this.ctx.on('mouseup', () => this.onMouseUp());
600
+ this.ctx.on('mouseout', (e) => this.onMouseOut(e));
437
601
  this.ctx.on('touchmove', (e) => this.onTouchmove(e));
438
602
  this.ctx.on('touchstart', (e) => {
439
603
  this.onTouchstart(e);
@@ -481,9 +645,16 @@ export default class Scroller {
481
645
  this.draw();
482
646
  }
483
647
  onMouseMove(e) {
484
- this.verticalScrollbar.onMouseMove(e);
485
- this.horizontalScrollbar.onMouseMove(e);
486
- this.draw();
648
+ const rect = this.ctx.containerElement.getBoundingClientRect();
649
+ const isPointerInsideTable = e.clientX >= rect.left && e.clientX <= rect.right && e.clientY >= rect.top && e.clientY <= rect.bottom;
650
+ const verticalNeedsFullRedraw = this.verticalScrollbar.onMouseMove(e, isPointerInsideTable);
651
+ const horizontalNeedsFullRedraw = this.horizontalScrollbar.onMouseMove(e, isPointerInsideTable);
652
+ if (verticalNeedsFullRedraw || horizontalNeedsFullRedraw) {
653
+ this.ctx.emit('draw');
654
+ }
655
+ else {
656
+ this.draw();
657
+ }
487
658
  }
488
659
  onMouseUp() {
489
660
  this.mousedownHeader = false;
@@ -491,9 +662,18 @@ export default class Scroller {
491
662
  this.horizontalScrollbar.onMouseUp();
492
663
  this.ctx.scrollerMove = false;
493
664
  }
665
+ onMouseOut(e) {
666
+ if (this.ctx.containerElement.contains(e.relatedTarget)) {
667
+ return;
668
+ }
669
+ this.verticalScrollbar.hideInnerScrollbar();
670
+ this.horizontalScrollbar.hideInnerScrollbar();
671
+ this.ctx.emit('draw');
672
+ }
494
673
  draw() {
495
- this.verticalScrollbar.draw();
496
- this.horizontalScrollbar.draw();
674
+ const verticalFocus = this.verticalScrollbar.draw();
675
+ const horizontalFocus = this.horizontalScrollbar.draw();
676
+ this.ctx.scrollerFocus = verticalFocus || horizontalFocus;
497
677
  const scrollX = Math.floor(this.horizontalScrollbar.scroll);
498
678
  const scrollY = Math.floor(this.verticalScrollbar.scroll);
499
679
  // 只有滚动条发生变化才触发绘制
@@ -1 +1 @@
1
- {"version":3,"file":"Scroller.js","sourceRoot":"","sources":["../../src/Scroller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scroller.js","sourceRoot":"","sources":["../../src/Scroller.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { throttle, decodeSpreadsheetStr, encodeToSpreadsheetStr } from './util';
2
+ import { getLayoutScrollerTrackSize } from './ScrollbarMode';
2
3
  export default class Selector {
3
4
  constructor(ctx) {
4
5
  Object.defineProperty(this, "isCut", {
@@ -851,7 +852,8 @@ export default class Selector {
851
852
  * 调整滚动条位置,让焦点单元格始终出现在可视区域内
852
853
  */
853
854
  adjustBoundaryPosition() {
854
- const { stageHeight, stageWidth, focusCell, fixedRightWidth, fixedLeftWidth, header, footer, body, scrollX, scrollY, config: { SCROLLER_TRACK_SIZE, FOOTER_FIXED, FOOTER_POSITION, ENABLE_MERGE_CELL_LINK }, } = this.ctx;
855
+ const { stageHeight, stageWidth, focusCell, fixedRightWidth, fixedLeftWidth, header, footer, body, scrollX, scrollY, config: { FOOTER_FIXED, FOOTER_POSITION, ENABLE_MERGE_CELL_LINK }, } = this.ctx;
856
+ const layoutScrollerTrackSize = getLayoutScrollerTrackSize(this.ctx.config);
855
857
  if (!focusCell) {
856
858
  return;
857
859
  }
@@ -878,7 +880,7 @@ export default class Selector {
878
880
  footerHeight = footer.visibleHeight;
879
881
  }
880
882
  }
881
- const diffBottom = drawY + cellheight - (stageHeight - footerHeight - SCROLLER_TRACK_SIZE);
883
+ const diffBottom = drawY + cellheight - (stageHeight - footerHeight - layoutScrollerTrackSize);
882
884
  let _scrollX = scrollX;
883
885
  let _scrollY = scrollY;
884
886
  // fixed禁用左右横向移动