e-virt-table 1.4.1 → 1.4.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 (69) hide show
  1. package/dist/index.cjs.js +16 -16
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.es.js +2309 -1946
  4. package/dist/index.es.js.map +1 -1
  5. package/dist/index.umd.js +16 -16
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/lib/BaseCell.js +3 -2
  8. package/dist/lib/BaseCell.js.map +1 -1
  9. package/dist/lib/Body.js +33 -24
  10. package/dist/lib/Body.js.map +1 -1
  11. package/dist/lib/BorderStyle.d.ts +9 -0
  12. package/dist/lib/BorderStyle.js +29 -0
  13. package/dist/lib/BorderStyle.js.map +1 -0
  14. package/dist/lib/Cell.d.ts +1 -0
  15. package/dist/lib/Cell.js +16 -9
  16. package/dist/lib/Cell.js.map +1 -1
  17. package/dist/lib/CellHeader.js +3 -2
  18. package/dist/lib/CellHeader.js.map +1 -1
  19. package/dist/lib/CellImage.js +2 -2
  20. package/dist/lib/CellImage.js.map +1 -1
  21. package/dist/lib/Config.d.ts +13 -1
  22. package/dist/lib/Config.js +35 -0
  23. package/dist/lib/Config.js.map +1 -1
  24. package/dist/lib/Context.d.ts +11 -0
  25. package/dist/lib/Context.js +49 -3
  26. package/dist/lib/Context.js.map +1 -1
  27. package/dist/lib/Database.js +2 -2
  28. package/dist/lib/Database.js.map +1 -1
  29. package/dist/lib/EVirtTable.d.ts +7 -0
  30. package/dist/lib/EVirtTable.js +20 -2
  31. package/dist/lib/EVirtTable.js.map +1 -1
  32. package/dist/lib/Editor.js +27 -20
  33. package/dist/lib/Editor.js.map +1 -1
  34. package/dist/lib/Empty.js +1 -1
  35. package/dist/lib/Empty.js.map +1 -1
  36. package/dist/lib/EventBrowser.js +10 -2
  37. package/dist/lib/EventBrowser.js.map +1 -1
  38. package/dist/lib/EventTable.js +5 -3
  39. package/dist/lib/EventTable.js.map +1 -1
  40. package/dist/lib/Footer.js +18 -5
  41. package/dist/lib/Footer.js.map +1 -1
  42. package/dist/lib/Header.js +25 -16
  43. package/dist/lib/Header.js.map +1 -1
  44. package/dist/lib/Overlayer.js +14 -17
  45. package/dist/lib/Overlayer.js.map +1 -1
  46. package/dist/lib/Paint.d.ts +1 -1
  47. package/dist/lib/Paint.js +3 -2
  48. package/dist/lib/Paint.js.map +1 -1
  49. package/dist/lib/Row.d.ts +2 -0
  50. package/dist/lib/Row.js +10 -0
  51. package/dist/lib/Row.js.map +1 -1
  52. package/dist/lib/ScrollbarMode.d.ts +21 -0
  53. package/dist/lib/ScrollbarMode.js +38 -0
  54. package/dist/lib/ScrollbarMode.js.map +1 -0
  55. package/dist/lib/Scroller.d.ts +1 -0
  56. package/dist/lib/Scroller.js +263 -70
  57. package/dist/lib/Scroller.js.map +1 -1
  58. package/dist/lib/Selector.js +4 -2
  59. package/dist/lib/Selector.js.map +1 -1
  60. package/dist/lib/TextSelector.d.ts +13 -16
  61. package/dist/lib/TextSelector.js +150 -119
  62. package/dist/lib/TextSelector.js.map +1 -1
  63. package/dist/lib/Tooltip.js +7 -13
  64. package/dist/lib/Tooltip.js.map +1 -1
  65. package/dist/lib/ZoomScale.d.ts +55 -0
  66. package/dist/lib/ZoomScale.js +137 -0
  67. package/dist/lib/ZoomScale.js.map +1 -0
  68. package/dist/lib/types.d.ts +1 -0
  69. package/package.json +1 -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,
@@ -128,8 +167,9 @@ class Scrollbar {
128
167
  }
129
168
  onTouchmove(e) {
130
169
  const { clientY, clientX } = e.touches[0];
131
- const deltaY = clientY - this.clientY; // 计算滑动距离
132
- const deltaX = clientX - this.clientX; // 计算滑动距离
170
+ // 物理滑动距离换算为逻辑距离
171
+ const deltaY = this.ctx.zoomScale.toLogical(clientY - this.clientY);
172
+ const deltaX = this.ctx.zoomScale.toLogical(clientX - this.clientX);
133
173
  let scroll = 0;
134
174
  if (this.type === 'vertical') {
135
175
  scroll = Math.max(0, Math.min(this.dragStart - deltaY, this.distance));
@@ -165,9 +205,17 @@ class Scrollbar {
165
205
  if (this.ctx.stageElement.style.cursor === 'col-resize') {
166
206
  return true;
167
207
  }
168
- const { offsetX, offsetY, clientX, clientY } = e;
208
+ const { clientX, clientY } = e;
209
+ // 滚动条按逻辑坐标绘制,鼠标 offset 是物理像素,需换算
210
+ const offsetX = this.ctx.zoomScale.toLogical(e.offsetX);
211
+ const offsetY = this.ctx.zoomScale.toLogical(e.offsetY);
169
212
  if (clientX == this.clientX && clientY == this.clientY)
170
213
  return;
214
+ if (this.isInnerMode()) {
215
+ if (!this.canInteractWithScrollbar()) {
216
+ return;
217
+ }
218
+ }
171
219
  if (this.isOnScrollbar(offsetX, offsetY)) {
172
220
  this.clientX = clientX;
173
221
  this.clientY = clientY;
@@ -184,11 +232,11 @@ class Scrollbar {
184
232
  // 滚动条位置=(鼠标位置-滚动条的高度/2-头部的高度)/(可见区域的长度-滚动条的高度)*滚动条的长度
185
233
  // 滚动到中间所以减去滚动条的高度/2
186
234
  const offset = offsetY - this.ctx.header.height - this.barHeight / 2;
187
- scroll = (offset / (this.visibleDistance - this.barHeight)) * this.distance;
235
+ scroll = (offset / this.thumbTravelDistance) * this.distance;
188
236
  }
189
237
  else {
190
238
  const offset = offsetX - this.barWidth / 2;
191
- scroll = (offset / (this.visibleDistance - this.barWidth)) * this.distance;
239
+ scroll = (offset / this.thumbTravelDistance) * this.distance;
192
240
  }
193
241
  this.scroll = Math.max(0, Math.min(scroll, this.distance));
194
242
  }
@@ -199,22 +247,33 @@ class Scrollbar {
199
247
  this.clientX = 0;
200
248
  this.clientY = 0;
201
249
  }
202
- onMouseMove(e) {
203
- const { offsetX, offsetY, clientX, clientY, buttons } = e;
250
+ onMouseMove(e, isPointerInsideTable) {
251
+ const { clientX, clientY, buttons } = e;
252
+ const offsetX = this.ctx.zoomScale.toLogical(e.offsetX);
253
+ const offsetY = this.ctx.zoomScale.toLogical(e.offsetY);
254
+ let needsFullRedraw = false;
255
+ if (shouldStartInnerScrollbarShowTimer(this.ctx.config, isPointerInsideTable)) {
256
+ this.startInnerShowTimer();
257
+ }
258
+ else {
259
+ needsFullRedraw = this.hideInnerScrollbar();
260
+ }
204
261
  // 没有鼠标按下时不处理,要重置抬起事件
205
262
  // 悬浮提示
206
- if (this.isOnScrollbar(offsetX, offsetY) && e.target === this.ctx.canvasElement) {
263
+ const isScrollbarHover = this.canInteractWithScrollbar() && (this.isOnScrollbar(offsetX, offsetY) || this.isOnTrack(offsetX, offsetY));
264
+ if (isScrollbarHover && e.target === this.ctx.canvasElement) {
207
265
  this.isFocus = true;
266
+ this.ctx.stageElement.style.cursor = 'pointer';
208
267
  }
209
268
  else {
210
269
  this.isFocus = false;
211
270
  }
212
271
  if (buttons === 0) {
213
- return;
272
+ return needsFullRedraw;
214
273
  }
215
274
  // 拖拽移动滚动条
216
275
  if (clientX == this.clientX && clientY == this.clientY)
217
- return;
276
+ return needsFullRedraw;
218
277
  let offset = 0;
219
278
  if (this.type === 'horizontal') {
220
279
  offset = clientX - this.clientX;
@@ -222,17 +281,20 @@ class Scrollbar {
222
281
  else {
223
282
  offset = clientY - this.clientY;
224
283
  }
284
+ // 物理位移换算为逻辑位移
285
+ offset = this.ctx.zoomScale.toLogical(offset);
225
286
  if (this.isDragging && offset !== 0) {
226
287
  // scroll= 开始滚动条位置+(鼠标移动的距离/可见区域的长度)*滚动条的长度
227
288
  let scroll = 0;
228
289
  if (this.type === 'vertical') {
229
- scroll = this.dragStart + (offset / (this.visibleDistance - this.barHeight)) * this.distance;
290
+ scroll = this.dragStart + (offset / this.thumbTravelDistance) * this.distance;
230
291
  }
231
292
  else {
232
- scroll = this.dragStart + (offset / (this.visibleDistance - this.barWidth)) * this.distance;
293
+ scroll = this.dragStart + (offset / this.thumbTravelDistance) * this.distance;
233
294
  }
234
295
  this.scroll = Math.max(0, Math.min(scroll, this.distance));
235
296
  }
297
+ return needsFullRedraw;
236
298
  }
237
299
  isPointInElement(pointX, pointY, elementX, elementY, elementWidth, elementHeight) {
238
300
  return (pointX >= elementX &&
@@ -255,6 +317,47 @@ class Scrollbar {
255
317
  isOnTrack(x, y) {
256
318
  return this.isPointInElement(x, y, this.trackX, this.trackY, this.trackWidth, this.trackHeight);
257
319
  }
320
+ isInnerMode() {
321
+ return isInnerScrollbarMode(this.ctx.config);
322
+ }
323
+ shouldDrawInnerScrollbar() {
324
+ return shouldDrawScrollbar(this.ctx.config, {
325
+ innerVisible: this.innerVisible,
326
+ isFocus: this.isFocus,
327
+ isDragging: this.isDragging,
328
+ });
329
+ }
330
+ canInteractWithScrollbar() {
331
+ return !this.isInnerMode() || this.shouldDrawInnerScrollbar();
332
+ }
333
+ startInnerShowTimer() {
334
+ if (!this.isInnerMode() || this.innerVisible || this.innerShowTimer) {
335
+ return;
336
+ }
337
+ const delay = Math.max(0, this.ctx.config.SCROLLBAR_SHOW_DELAY || 0);
338
+ this.innerShowTimer = window.setTimeout(() => {
339
+ this.innerVisible = true;
340
+ this.innerShowTimer = 0;
341
+ this.ctx.emit('draw');
342
+ }, delay);
343
+ }
344
+ cancelInnerShowTimer() {
345
+ if (!this.innerShowTimer) {
346
+ return;
347
+ }
348
+ clearTimeout(this.innerShowTimer);
349
+ this.innerShowTimer = 0;
350
+ }
351
+ hideInnerScrollbar() {
352
+ if (!this.isInnerMode() || this.isDragging) {
353
+ return false;
354
+ }
355
+ const needsFullRedraw = this.innerVisible || this.isFocus;
356
+ this.cancelInnerShowTimer();
357
+ this.innerVisible = false;
358
+ this.isFocus = false;
359
+ return needsFullRedraw;
360
+ }
258
361
  updateScroll(e) {
259
362
  const deltaX = e.deltaX;
260
363
  const deltaY = e.deltaY;
@@ -276,67 +379,66 @@ class Scrollbar {
276
379
  }
277
380
  }
278
381
  updatedSize() {
279
- const { body, header, stageHeight, stageWidth, config: { SCROLLER_TRACK_SIZE = 0, SCROLLER_SIZE = 0, BORDER }, } = this.ctx;
382
+ const { body, header, stageHeight, stageWidth, config: { SCROLLER_SIZE = 0, BORDER }, } = this.ctx;
383
+ const layoutScrollerTrackSize = getLayoutScrollerTrackSize(this.ctx.config);
384
+ const overlayScrollerTrackSize = getOverlayScrollerTrackSize(this.ctx.config);
280
385
  const visibleWidth = stageWidth;
281
386
  const visibleHeight = stageHeight;
282
387
  const headerHeight = header.height;
283
388
  const headerWidth = header.width;
284
389
  const bodyHeight = body.height;
285
390
  const footerHeight = this.ctx.footer.height;
391
+ const verticalVisibleDistance = visibleHeight - layoutScrollerTrackSize - headerHeight;
392
+ const horizontalVisibleDistance = visibleWidth - layoutScrollerTrackSize;
393
+ const verticalDistance = Math.max(0, bodyHeight - verticalVisibleDistance + footerHeight);
394
+ const horizontalDistance = Math.max(0, headerWidth - horizontalVisibleDistance);
395
+ const thumbEndInset = getScrollbarThumbEndInset(this.ctx.config);
286
396
  if (this.type === 'vertical') {
287
- this.visibleDistance = visibleHeight - SCROLLER_TRACK_SIZE - headerHeight;
288
- this.distance = bodyHeight - this.visibleDistance + footerHeight;
289
- this.trackX = visibleWidth - SCROLLER_TRACK_SIZE;
397
+ this.visibleDistance = verticalVisibleDistance;
398
+ this.distance = verticalDistance;
399
+ const cornerOffset = getScrollbarCornerOffset(this.ctx.config, horizontalDistance > 0);
400
+ this.thumbTrackDistance = Math.max(0, this.visibleDistance - cornerOffset);
401
+ this.trackX = visibleWidth - overlayScrollerTrackSize;
290
402
  this.trackY = 0;
291
403
  // 分割线
292
- this.splitPoints = [this.trackX, headerHeight, this.trackX + SCROLLER_TRACK_SIZE, headerHeight];
293
- this.trackWidth = SCROLLER_TRACK_SIZE;
294
- this.trackHeight = visibleHeight;
404
+ this.splitPoints = [this.trackX, headerHeight, this.trackX + overlayScrollerTrackSize, headerHeight];
405
+ this.trackWidth = overlayScrollerTrackSize;
406
+ this.trackHeight = Math.max(0, visibleHeight - cornerOffset);
295
407
  // 滚动条的X位置=轨道的X位置+(轨道的宽度-滚动条的宽度)/2
296
- this.barX = this.trackX - 1 + (SCROLLER_TRACK_SIZE - SCROLLER_SIZE) / 2;
408
+ this.barX = this.trackX - 1 + (overlayScrollerTrackSize - SCROLLER_SIZE) / 2;
297
409
  this.barWidth = SCROLLER_SIZE;
298
- const ratio = this.distance ? this.visibleDistance / (bodyHeight + footerHeight) : 0;
299
- let _barHeight = Math.floor(ratio * this.visibleDistance);
410
+ this.barHeight = getScrollbarThumbSize(this.distance, this.visibleDistance, bodyHeight + footerHeight, this.thumbTrackDistance);
411
+ this.thumbTravelDistance = Math.max(0, this.thumbTrackDistance - this.barHeight - thumbEndInset);
300
412
  // 最小30,超出可见区域则隐藏
301
- if (_barHeight < 30) {
302
- _barHeight = 30;
303
- }
304
- else if (_barHeight > this.visibleDistance) {
305
- _barHeight = 0;
306
- }
307
- this.barHeight = _barHeight;
308
- this.barY = headerHeight + (this.scroll / this.distance) * (this.visibleDistance - this.barHeight);
413
+ const progress = this.distance ? this.scroll / this.distance : 0;
414
+ this.barY = headerHeight + progress * this.thumbTravelDistance;
309
415
  // 范围限制
310
416
  this.scroll = Math.max(0, Math.min(this.scroll, this.distance));
311
417
  }
312
418
  else {
313
- this.visibleDistance = visibleWidth - SCROLLER_TRACK_SIZE;
314
- this.distance = headerWidth - this.visibleDistance;
419
+ this.visibleDistance = horizontalVisibleDistance;
420
+ this.distance = horizontalDistance;
421
+ const cornerOffset = getScrollbarCornerOffset(this.ctx.config, verticalDistance > 0);
422
+ this.thumbTrackDistance = Math.max(0, this.visibleDistance - cornerOffset);
315
423
  // 分割线
316
424
  this.splitPoints = [
317
- visibleWidth - SCROLLER_TRACK_SIZE,
318
- visibleHeight - SCROLLER_TRACK_SIZE,
319
- visibleWidth - SCROLLER_TRACK_SIZE,
425
+ visibleWidth - overlayScrollerTrackSize,
426
+ visibleHeight - overlayScrollerTrackSize,
427
+ visibleWidth - overlayScrollerTrackSize,
320
428
  visibleHeight,
321
429
  ];
322
- const offset = BORDER ? 0 : 0.5; // 解决边框问题,补偿0.5px
430
+ const offset = shouldDrawScrollerBorder(BORDER) ? 0 : 0.5; // 解决边框问题,补偿0.5px
323
431
  this.trackX = 0;
324
- this.trackY = visibleHeight - SCROLLER_TRACK_SIZE + offset;
325
- this.trackWidth = visibleWidth;
326
- this.trackHeight = SCROLLER_TRACK_SIZE;
327
- const ratio = this.distance ? this.visibleDistance / headerWidth : 0;
328
- let _barWidth = Math.floor(ratio * this.visibleDistance);
329
- this.barY = this.trackY - 1 + (SCROLLER_TRACK_SIZE - SCROLLER_SIZE) / 2;
432
+ this.trackY = visibleHeight - overlayScrollerTrackSize + offset;
433
+ this.trackWidth = Math.max(0, visibleWidth - cornerOffset);
434
+ this.trackHeight = overlayScrollerTrackSize;
435
+ this.barWidth = getScrollbarThumbSize(this.distance, this.visibleDistance, headerWidth, this.thumbTrackDistance);
436
+ this.thumbTravelDistance = Math.max(0, this.thumbTrackDistance - this.barWidth - thumbEndInset);
437
+ this.barY = this.trackY - 1 + (overlayScrollerTrackSize - SCROLLER_SIZE) / 2;
330
438
  // 最小30,超出可见区域则隐藏
331
- if (_barWidth < 30) {
332
- _barWidth = 30;
333
- }
334
- else if (_barWidth >= this.visibleDistance) {
335
- _barWidth = 0;
336
- }
337
- this.barWidth = _barWidth;
338
439
  this.barHeight = SCROLLER_SIZE;
339
- this.barX = (this.scroll / this.distance) * (this.visibleDistance - this.barWidth);
440
+ const progress = this.distance ? this.scroll / this.distance : 0;
441
+ this.barX = progress * this.thumbTravelDistance;
340
442
  // 范围限制
341
443
  this.scroll = Math.max(0, Math.min(this.scroll, this.distance));
342
444
  }
@@ -344,29 +446,103 @@ class Scrollbar {
344
446
  draw() {
345
447
  const { config: { SCROLLER_FOCUS_COLOR, SCROLLER_COLOR, BORDER_COLOR, BORDER, SCROLLER_TRACK_COLOR }, } = this.ctx;
346
448
  this.updatedSize();
347
- let borderColor = BORDER_COLOR;
348
- if (!BORDER) {
349
- borderColor = 'transparent';
350
- }
449
+ if (this.isInnerMode() && !this.shouldDrawInnerScrollbar()) {
450
+ return this.isFocus || this.isDragging;
451
+ }
452
+ const drawTrackBorder = shouldDrawScrollbarTrackBorder(this.ctx.config);
453
+ const drawTrackBackground = shouldDrawScrollbarTrackBackground(this.ctx.config);
454
+ const borderColor = drawTrackBorder && shouldDrawScrollerBorder(BORDER) ? BORDER_COLOR : 'transparent';
455
+ const hasScrollbar = this.hasScrollbar();
456
+ const drawTrack = shouldDrawScrollerTrack(BORDER, hasScrollbar);
351
457
  // 轨道
352
- this.ctx.paint.drawRect(this.trackX, this.trackY, this.trackWidth, this.trackHeight, {
353
- borderColor,
354
- fillColor: SCROLLER_TRACK_COLOR,
355
- });
458
+ if (drawTrackBackground && drawTrack) {
459
+ this.ctx.paint.drawRect(this.trackX, this.trackY, this.trackWidth, this.trackHeight, {
460
+ fillColor: SCROLLER_TRACK_COLOR,
461
+ });
462
+ this.drawTrackHeaderBackground();
463
+ if (drawTrackBorder) {
464
+ this.ctx.paint.drawRect(this.trackX, this.trackY, this.trackWidth, this.trackHeight, {
465
+ borderColor,
466
+ });
467
+ this.drawRightBoundaryBorder();
468
+ }
469
+ }
470
+ else if (drawTrackBackground) {
471
+ this.drawInactiveTrackBackground();
472
+ }
356
473
  // 滚动条
357
- this.ctx.paint.drawRect(this.barX, this.barY, this.barWidth, this.barHeight, {
358
- fillColor: this.isFocus || this.isDragging ? SCROLLER_FOCUS_COLOR : SCROLLER_COLOR,
359
- radius: 4,
360
- });
474
+ if (hasScrollbar) {
475
+ this.ctx.paint.drawRect(this.barX, this.barY, this.barWidth, this.barHeight, {
476
+ fillColor: this.isFocus || this.isDragging ? SCROLLER_FOCUS_COLOR : SCROLLER_COLOR,
477
+ radius: 4,
478
+ });
479
+ }
361
480
  // 分割线范围外
362
- if (this.splitPoints.length > 0) {
481
+ if (drawTrackBorder && drawTrack && this.splitPoints.length > 0) {
363
482
  this.ctx.paint.drawLine(this.splitPoints, {
364
483
  borderColor,
365
484
  borderWidth: 1,
366
485
  });
367
486
  }
368
- // 悬浮状态
369
- this.ctx.scrollerFocus = this.isFocus;
487
+ return this.isFocus || this.isDragging;
488
+ }
489
+ drawTrackHeaderBackground() {
490
+ if (this.type !== 'vertical' || this.trackWidth <= 0) {
491
+ return;
492
+ }
493
+ const { header, config: { HEADER_BG_COLOR }, } = this.ctx;
494
+ const height = Math.max(0, Math.min(header.height, this.trackHeight));
495
+ if (height <= 0) {
496
+ return;
497
+ }
498
+ this.ctx.paint.drawRect(this.trackX, this.trackY, this.trackWidth, height, {
499
+ fillColor: HEADER_BG_COLOR,
500
+ });
501
+ }
502
+ drawInactiveTrackBackground() {
503
+ if (this.type !== 'vertical') {
504
+ return;
505
+ }
506
+ 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;
507
+ const bottom = Math.max(0, stageHeight - SCROLLER_TRACK_SIZE);
508
+ if (bottom <= 0 || this.trackWidth <= 0) {
509
+ return;
510
+ }
511
+ this.ctx.paint.drawRect(this.trackX, 0, this.trackWidth, bottom, {
512
+ fillColor: BODY_BG_COLOR,
513
+ });
514
+ this.ctx.paint.drawRect(this.trackX, 0, this.trackWidth, header.height, {
515
+ fillColor: HEADER_BG_COLOR,
516
+ });
517
+ if (!footer.height) {
518
+ return;
519
+ }
520
+ const footerY = FOOTER_FIXED
521
+ ? FOOTER_POSITION === 'top'
522
+ ? header.height
523
+ : bottom - footer.height
524
+ : footer.y - scrollY;
525
+ const y = Math.max(header.height, Math.min(footerY, bottom));
526
+ const height = Math.max(0, Math.min(footer.height, bottom - y));
527
+ if (height > 0) {
528
+ this.ctx.paint.drawRect(this.trackX, y, this.trackWidth, height, {
529
+ fillColor: FOOTER_BG_COLOR,
530
+ });
531
+ }
532
+ }
533
+ drawRightBoundaryBorder() {
534
+ const { stageHeight, config: { BORDER, BORDER_COLOR, SCROLLER_TRACK_SIZE = 0 }, } = this.ctx;
535
+ if (this.type !== 'vertical' || !shouldDrawRightBoundaryBorder(BORDER) || SCROLLER_TRACK_SIZE <= 0) {
536
+ return;
537
+ }
538
+ const bottom = stageHeight - SCROLLER_TRACK_SIZE;
539
+ if (bottom <= 0) {
540
+ return;
541
+ }
542
+ this.ctx.paint.drawLine([this.trackX, 0, this.trackX, bottom], {
543
+ borderColor: BORDER_COLOR,
544
+ borderWidth: 1,
545
+ });
370
546
  }
371
547
  }
372
548
  export default class Scroller {
@@ -426,6 +602,7 @@ export default class Scroller {
426
602
  this.ctx.on('mousedown', (e) => this.onMouseDown(e));
427
603
  this.ctx.on('mousemove', (e) => this.onMouseMove(e));
428
604
  this.ctx.on('mouseup', () => this.onMouseUp());
605
+ this.ctx.on('mouseout', (e) => this.onMouseOut(e));
429
606
  this.ctx.on('touchmove', (e) => this.onTouchmove(e));
430
607
  this.ctx.on('touchstart', (e) => {
431
608
  this.onTouchstart(e);
@@ -473,9 +650,16 @@ export default class Scroller {
473
650
  this.draw();
474
651
  }
475
652
  onMouseMove(e) {
476
- this.verticalScrollbar.onMouseMove(e);
477
- this.horizontalScrollbar.onMouseMove(e);
478
- this.draw();
653
+ const rect = this.ctx.containerElement.getBoundingClientRect();
654
+ const isPointerInsideTable = e.clientX >= rect.left && e.clientX <= rect.right && e.clientY >= rect.top && e.clientY <= rect.bottom;
655
+ const verticalNeedsFullRedraw = this.verticalScrollbar.onMouseMove(e, isPointerInsideTable);
656
+ const horizontalNeedsFullRedraw = this.horizontalScrollbar.onMouseMove(e, isPointerInsideTable);
657
+ if (verticalNeedsFullRedraw || horizontalNeedsFullRedraw) {
658
+ this.ctx.emit('draw');
659
+ }
660
+ else {
661
+ this.draw();
662
+ }
479
663
  }
480
664
  onMouseUp() {
481
665
  this.mousedownHeader = false;
@@ -483,9 +667,18 @@ export default class Scroller {
483
667
  this.horizontalScrollbar.onMouseUp();
484
668
  this.ctx.scrollerMove = false;
485
669
  }
670
+ onMouseOut(e) {
671
+ if (this.ctx.containerElement.contains(e.relatedTarget)) {
672
+ return;
673
+ }
674
+ this.verticalScrollbar.hideInnerScrollbar();
675
+ this.horizontalScrollbar.hideInnerScrollbar();
676
+ this.ctx.emit('draw');
677
+ }
486
678
  draw() {
487
- this.verticalScrollbar.draw();
488
- this.horizontalScrollbar.draw();
679
+ const verticalFocus = this.verticalScrollbar.draw();
680
+ const horizontalFocus = this.horizontalScrollbar.draw();
681
+ this.ctx.scrollerFocus = verticalFocus || horizontalFocus;
489
682
  const scrollX = Math.floor(this.horizontalScrollbar.scroll);
490
683
  const scrollY = Math.floor(this.verticalScrollbar.scroll);
491
684
  // 只有滚动条发生变化才触发绘制
@@ -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":"AACA,OAAO,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACjH,OAAO,EACH,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,kCAAkC,EAClC,8BAA8B,EAC9B,kCAAkC,GACrC,MAAM,iBAAiB,CAAC;AAEzB,SAAS,qBAAqB,CAC1B,QAAgB,EAChB,eAAuB,EACvB,eAAuB,EACvB,aAAa,GAAG,eAAe,EAC/B,OAAO,GAAG,EAAE;IAEZ,IAAI,QAAQ,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;QACtF,OAAO,CAAC,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,eAAe,CAAC,GAAG,aAAa,CAAC,CAAC;IAC7E,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,IAAI,GAAG,aAAa,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAID,MAAM,SAAS;IAyBX,YAAY,GAAY,EAAE,IAAmB;QAxBrC;;;;;WAAa;QACb;;;;;WAAoB;QACpB;;;;mBAAU,KAAK;WAAC;QAChB;;;;mBAAS,CAAC;WAAC;QACX;;;;mBAAS,CAAC;WAAC;QACX;;;;mBAAa,CAAC;WAAC;QACf;;;;mBAAc,CAAC;WAAC;QAChB;;;;mBAAwB,EAAE;WAAC,CAAC,KAAK;QACjC;;;;mBAAO,CAAC;WAAC;QACT;;;;mBAAO,CAAC;WAAC;QACT;;;;mBAAW,CAAC;WAAC;QACb;;;;mBAAY,CAAC;WAAC;QACd;;;;mBAAW,CAAC;WAAC,CAAC,SAAS;QACvB;;;;mBAAkB,CAAC;WAAC,CAAC,SAAS;QAC9B;;;;mBAAqB,CAAC;WAAC;QACvB;;;;mBAAsB,CAAC;WAAC;QACxB;;;;mBAAU,CAAC;WAAC;QACZ;;;;mBAAU,CAAC;WAAC;QACZ;;;;mBAAY,CAAC;WAAC,CAAC,UAAU;QACzB;;;;mBAAe,KAAK;WAAC;QACrB;;;;mBAAiB,CAAC;WAAC;QAC3B;;;;mBAAa,KAAK;WAAC;QACnB;;;;mBAAS,CAAC;WAAC;QAGP,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QACnC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QACnC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,CAAa;QACjB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,WAAW,CAAC,CAAa;QACrB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1C,gBAAgB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvE,qBAAqB;YACrB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9F,CAAC,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACpC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,CAAa;QACtB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,CAAa;QACrB,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC,EAAE,CAAC;YACjC,OAAO;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,YAAY;QACZ,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,YAAY;QACZ,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/B,iCAAiC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAC/D,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;gBACnC,OAAO;YACX,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,QAAQ;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1C,SAAS;YACT,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3B,sDAAsD;gBACtD,oBAAoB;gBACpB,MAAM,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACrE,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACJ,MAAM,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAC3C,MAAM,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjE,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,SAAS;QACL,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,CAAa,EAAE,oBAA6B;QACpD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChD,CAAC;QACD,qBAAqB;QACrB,OAAO;QACP,MAAM,gBAAgB,GAClB,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAClH,IAAI,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QACnD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,eAAe,CAAC;QAC3B,CAAC;QACD,UAAU;QACV,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,eAAe,CAAC;QAC/E,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC7B,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,CAAC;QACD,cAAc;QACd,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,2CAA2C;YAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClF,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClF,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,gBAAgB,CACpB,MAAc,EACd,MAAc,EACd,QAAgB,EAChB,QAAgB,EAChB,YAAoB,EACpB,aAAqB;QAErB,OAAO,CACH,MAAM,IAAI,QAAQ;YAClB,MAAM,IAAI,QAAQ,GAAG,YAAY;YACjC,MAAM,IAAI,QAAQ;YAClB,MAAM,IAAI,QAAQ,GAAG,aAAa,CACrC,CAAC;IACN,CAAC;IACO,YAAY;QAChB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,aAAa,CAAC,CAAS,EAAE,CAAS;QACtC,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5F,CAAC;IACO,SAAS,CAAC,CAAS,EAAE,CAAS;QAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpG,CAAC;IACO,WAAW;QACf,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IACO,wBAAwB;QAC5B,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACxC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAC;IACP,CAAC;IACO,wBAAwB;QAC5B,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClE,CAAC;IACO,mBAAmB;QACvB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAClE,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,EAAE,KAAK,CAAC,CAAC;IACd,CAAC;IACO,oBAAoB;QACxB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,OAAO;QACX,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,kBAAkB;QACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC;QAC1D,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,YAAY,CAAC,CAAa;QAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACxB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACxB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YACnD,qBAAqB;YACrB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxG,CAAC,CAAC,cAAc,EAAE,CAAC;YACvB,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7E,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7E,CAAC;QACL,CAAC;IACL,CAAC;IACO,WAAW;QACf,MAAM,EACF,IAAI,EACJ,MAAM,EACN,WAAW,EACX,UAAU,EACV,MAAM,EAAE,EAAE,aAAa,GAAG,CAAC,EAAE,MAAM,EAAE,GACxC,GAAG,IAAI,CAAC,GAAG,CAAC;QACb,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5E,MAAM,wBAAwB,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,UAAU,CAAC;QAChC,MAAM,aAAa,GAAG,WAAW,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5C,MAAM,uBAAuB,GAAG,aAAa,GAAG,uBAAuB,GAAG,YAAY,CAAC;QACvF,MAAM,yBAAyB,GAAG,YAAY,GAAG,uBAAuB,CAAC;QACzE,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,uBAAuB,GAAG,YAAY,CAAC,CAAC;QAC1F,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,yBAAyB,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC;YAC/C,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;YACjC,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,CAAC,CAAC,CAAC;YACvF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,GAAG,YAAY,GAAG,wBAAwB,CAAC;YACtD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,MAAM;YACN,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,GAAG,wBAAwB,EAAE,YAAY,CAAC,CAAC;YACrG,IAAI,CAAC,UAAU,GAAG,wBAAwB,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,CAAC;YAC7D,kCAAkC;YAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,wBAAwB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAC7E,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAClC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,eAAe,EACpB,UAAU,GAAG,YAAY,EACzB,IAAI,CAAC,kBAAkB,CAC1B,CAAC;YACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC;YACjG,iBAAiB;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,GAAG,YAAY,GAAG,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC/D,OAAO;YACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,eAAe,GAAG,yBAAyB,CAAC;YACjD,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC;YACnC,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC;YACrF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,CAAC;YAC3E,MAAM;YACN,IAAI,CAAC,WAAW,GAAG;gBACf,YAAY,GAAG,wBAAwB;gBACvC,aAAa,GAAG,wBAAwB;gBACxC,YAAY,GAAG,wBAAwB;gBACvC,aAAa;aAChB,CAAC;YACF,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,iBAAiB;YAC5E,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,wBAAwB,GAAG,MAAM,CAAC;YAChE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,WAAW,GAAG,wBAAwB,CAAC;YAE5C,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CACjC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,eAAe,EACpB,WAAW,EACX,IAAI,CAAC,kBAAkB,CAC1B,CAAC;YACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC;YAChG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,wBAAwB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAC7E,iBAAiB;YACjB,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAChD,OAAO;YACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IACD,IAAI;QACA,MAAM,EACF,MAAM,EAAE,EAAE,oBAAoB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAC/F,GAAG,IAAI,CAAC,GAAG,CAAC;QACb,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC;QAC3C,CAAC;QACD,MAAM,eAAe,GAAG,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,mBAAmB,GAAG,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChF,MAAM,WAAW,GAAG,eAAe,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;QACvG,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAChE,KAAK;QACL,IAAI,mBAAmB,IAAI,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;gBACjF,SAAS,EAAE,oBAAoB;aAClC,CAAC,CAAC;YACH,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,IAAI,eAAe,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;oBACjF,WAAW;iBACd,CAAC,CAAC;gBACH,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACnC,CAAC;QACL,CAAC;aAAM,IAAI,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACvC,CAAC;QACD,MAAM;QACN,IAAI,YAAY,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE;gBACzE,SAAS,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc;gBAClF,MAAM,EAAE,CAAC;aACZ,CAAC,CAAC;QACP,CAAC;QACD,SAAS;QACT,IAAI,eAAe,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE;gBACtC,WAAW;gBACX,WAAW,EAAE,CAAC;aACjB,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC;IAC3C,CAAC;IAEO,yBAAyB;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO;QACX,CAAC;QACD,MAAM,EACF,MAAM,EACN,MAAM,EAAE,EAAE,eAAe,EAAE,GAC9B,GAAG,IAAI,CAAC,GAAG,CAAC;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,OAAO;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;YACvE,SAAS,EAAE,eAAe;SAC7B,CAAC,CAAC;IACP,CAAC;IAEO,2BAA2B;QAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO;QACX,CAAC;QACD,MAAM,EACF,MAAM,EACN,MAAM,EACN,OAAO,EACP,WAAW,EACX,MAAM,EAAE,EACJ,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,mBAAmB,GAAG,CAAC,GAC1B,GACJ,GAAG,IAAI,CAAC,GAAG,CAAC;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAAC,CAAC;QAC9D,IAAI,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;YAC7D,SAAS,EAAE,aAAa;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YACpE,SAAS,EAAE,eAAe;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;QACX,CAAC;QACD,MAAM,OAAO,GAAG,YAAY;YACxB,CAAC,CAAC,eAAe,KAAK,KAAK;gBACvB,CAAC,CAAC,MAAM,CAAC,MAAM;gBACf,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;YAC5B,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;gBAC7D,SAAS,EAAE,eAAe;aAC7B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,uBAAuB;QAC3B,MAAM,EACF,WAAW,EACX,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,GAAG,CAAC,EAAE,GAC5D,GAAG,IAAI,CAAC,GAAG,CAAC;QACb,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,IAAI,mBAAmB,IAAI,CAAC,EAAE,CAAC;YACjG,OAAO;QACX,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,GAAG,mBAAmB,CAAC;QACjD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACd,OAAO;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;YAC3D,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,CAAC;SACjB,CAAC,CAAC;IACP,CAAC;CACJ;AAED,MAAM,CAAC,OAAO,OAAO,QAAQ;IAUzB,YAAY,GAAY;QAThB;;;;;WAAa;QACb;;;;;WAA6B;QAC7B;;;;;WAA+B;QAC/B;;;;mBAAkB,KAAK;WAAC,CAAC,wBAAwB;QACjD;;;;mBAAkB,EAAE;WAAC;QACrB;;;;mBAAkB,EAAE;WAAC;QACrB;;;;mBAAS,CAAC;WAAC,CAAC,UAAU;QACtB;;;;mBAAS,CAAC;WAAC,CAAC,UAAU;QAG1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,iBAAiB,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,mBAAmB,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,OAAe,EAAE,OAAe,EAAE,EAAE;YAC1D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,OAAe,EAAE,EAAE;YAC1C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,OAAe,EAAE,EAAE;YAC1C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,QAAgB,EAAE,QAAgB,EAAE,EAAE;YAChE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,CAAa,EAAE,EAAE;YACjD,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,CAAa;QACjB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,CAAa;QACrB,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,CAAa;QACtB,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IACD,WAAW,CAAC,CAAa;QACrB,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,CAAa;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;QAC/D,MAAM,oBAAoB,GACtB,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC;QAC3G,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAC5F,MAAM,yBAAyB,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAChG,IAAI,uBAAuB,IAAI,yBAAyB,EAAE,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;IACL,CAAC;IAED,SAAS;QACL,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;IAClC,CAAC;IACD,UAAU,CAAC,CAAa;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAqB,CAAC,EAAE,CAAC;YAC9D,OAAO;QACX,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;QAC5C,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI;QACA,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,aAAa,IAAI,eAAe,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1D,iBAAiB;QACjB,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC/D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IACD,SAAS,CAAC,CAAS,EAAE,CAAS;QAC1B,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,UAAU,CAAC,OAAe;QACtB,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,OAAO,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,UAAU,CAAC,OAAe;QACtB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,OAAO,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,cAAc,CAAC,GAAW;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACrE,IAAI,IAAI,EAAE,CAAC;YACP,YAAY;YACZ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IACD,gBAAgB,CAAC,QAAgB;QAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAC/E,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IACD,gBAAgB,CAAC,QAAgB;QAC7B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACpC,MAAM,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,aAAa,CAAC,QAAgB,EAAE,QAAgB;QAC5C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IACD,cAAc,CAAC,MAAc;QACzB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;QACX,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IACD;;OAEG;IACK,mBAAmB,CAAC,CAAa;QACrC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,KAAK,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAC5E,SAAS,GAAG,MAAM,CAAC;QACvB,CAAC;aAAM,IACH,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,KAAK,OAAO;YACrC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EACjE,CAAC;YACC,SAAS,GAAG,OAAO,CAAC;QACxB,CAAC;aAAM,CAAC;YACJ,SAAS,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACnE,SAAS,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/E,SAAS,GAAG,QAAQ,CAAC;QACzB,CAAC;aAAM,CAAC;YACJ,SAAS,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,SAAS,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAClD,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACjC,MAAM,QAAQ,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,YAAY,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,OAAO;YACzC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC3B,SAAS;gBACT,YAAY,IAAI,GAAG,CAAC,CAAC,OAAO;gBAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;gBAC7B,MAAM,GAAG,GAAG,OAAO,GAAG,YAAY,CAAC;gBACnC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACvC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa;QAC1B,CAAC;QAED,IAAI,SAAS,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAClD,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;YACjC,MAAM,QAAQ,GAAG,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,YAAY,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,OAAO;YACzC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC3B,SAAS;gBACT,YAAY,IAAI,GAAG,CAAC,CAAC,OAAO;gBAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;gBAC7B,MAAM,GAAG,GAAG,OAAO,GAAG,YAAY,CAAC;gBACnC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACxC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa;QAC1B,CAAC;IACL,CAAC;IACO,kBAAkB,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI;QACzC,IAAI,CAAC,EAAE,CAAC;YACJ,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QACD,IAAI,CAAC,EAAE,CAAC;YACJ,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
@@ -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禁用左右横向移动