@visactor/vtable 0.19.1 → 0.19.2-alpha.1

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 (83) hide show
  1. package/cjs/PivotChart.d.ts +1 -0
  2. package/cjs/PivotChart.js +4 -0
  3. package/cjs/PivotChart.js.map +1 -1
  4. package/cjs/core/BaseTable.d.ts +4 -0
  5. package/cjs/core/BaseTable.js +50 -34
  6. package/cjs/core/BaseTable.js.map +1 -1
  7. package/cjs/event/event.js +2 -1
  8. package/cjs/event/event.js.map +1 -1
  9. package/cjs/event/listener/container-dom.js +1 -1
  10. package/cjs/event/listener/container-dom.js.map +1 -1
  11. package/cjs/event/util.js +2 -2
  12. package/cjs/event/util.js.map +1 -1
  13. package/cjs/index.d.ts +1 -1
  14. package/cjs/index.js +1 -1
  15. package/cjs/index.js.map +1 -1
  16. package/cjs/scenegraph/debug-tool/debug-tool.js +4 -1
  17. package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -1
  18. package/cjs/scenegraph/graphic/chart.d.ts +1 -0
  19. package/cjs/scenegraph/graphic/chart.js +33 -19
  20. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  21. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +20 -8
  22. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  23. package/cjs/scenegraph/graphic/contributions/chart-render.d.ts +2 -1
  24. package/cjs/scenegraph/graphic/contributions/chart-render.js +40 -24
  25. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  26. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +2 -1
  27. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  28. package/cjs/scenegraph/layout/compute-col-width.js +2 -2
  29. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  30. package/cjs/scenegraph/layout/compute-row-height.js +2 -2
  31. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  32. package/cjs/scenegraph/refresh-node/update-chart.d.ts +1 -0
  33. package/cjs/scenegraph/refresh-node/update-chart.js +9 -2
  34. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  35. package/cjs/scenegraph/scenegraph.js +10 -4
  36. package/cjs/scenegraph/scenegraph.js.map +1 -1
  37. package/cjs/ts-types/base-table.d.ts +12 -1
  38. package/cjs/ts-types/base-table.js.map +1 -1
  39. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  40. package/cjs/vrender.js.map +1 -1
  41. package/dist/vtable.js +524 -351
  42. package/dist/vtable.min.js +2 -2
  43. package/es/PivotChart.d.ts +1 -0
  44. package/es/PivotChart.js +5 -2
  45. package/es/PivotChart.js.map +1 -1
  46. package/es/core/BaseTable.d.ts +4 -0
  47. package/es/core/BaseTable.js +49 -33
  48. package/es/core/BaseTable.js.map +1 -1
  49. package/es/event/event.js +2 -1
  50. package/es/event/event.js.map +1 -1
  51. package/es/event/listener/container-dom.js +1 -1
  52. package/es/event/listener/container-dom.js.map +1 -1
  53. package/es/event/util.js +2 -2
  54. package/es/event/util.js.map +1 -1
  55. package/es/index.d.ts +1 -1
  56. package/es/index.js +1 -1
  57. package/es/index.js.map +1 -1
  58. package/es/scenegraph/debug-tool/debug-tool.js +4 -1
  59. package/es/scenegraph/debug-tool/debug-tool.js.map +1 -1
  60. package/es/scenegraph/graphic/chart.d.ts +1 -0
  61. package/es/scenegraph/graphic/chart.js +32 -20
  62. package/es/scenegraph/graphic/chart.js.map +1 -1
  63. package/es/scenegraph/graphic/contributions/chart-render-helper.js +20 -8
  64. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  65. package/es/scenegraph/graphic/contributions/chart-render.d.ts +2 -1
  66. package/es/scenegraph/graphic/contributions/chart-render.js +41 -25
  67. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  68. package/es/scenegraph/group-creater/cell-type/chart-cell.js +2 -1
  69. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  70. package/es/scenegraph/layout/compute-col-width.js +2 -2
  71. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  72. package/es/scenegraph/layout/compute-row-height.js +2 -2
  73. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  74. package/es/scenegraph/refresh-node/update-chart.d.ts +1 -0
  75. package/es/scenegraph/refresh-node/update-chart.js +6 -0
  76. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  77. package/es/scenegraph/scenegraph.js +10 -4
  78. package/es/scenegraph/scenegraph.js.map +1 -1
  79. package/es/ts-types/base-table.d.ts +12 -1
  80. package/es/ts-types/base-table.js.map +1 -1
  81. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  82. package/es/vrender.js.map +1 -1
  83. package/package.json +8 -8
@@ -76,9 +76,9 @@ export class BaseTable extends EventTarget {
76
76
  }
77
77
  constructor(container, options = {}) {
78
78
  var _a, _b, _c, _d, _e, _f, _g;
79
- if (super(), this.showFrozenIcon = !0, this.version = "0.19.1", this.id = `VTable${Date.now()}`,
79
+ if (super(), this.showFrozenIcon = !0, this.version = "0.19.2-alpha.1", this.id = `VTable${Date.now()}`,
80
80
  this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = throttle2(this.render.bind(this), 200),
81
- !container && "node" !== options.mode) throw new Error("vtable's container is undefined");
81
+ !container && "node" !== options.mode && !options.canvas) throw new Error("vtable's container is undefined");
82
82
  const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth, widthMode: widthMode = "standard", heightMode: heightMode = "standard", autoFillWidth: autoFillWidth = !1, autoFillHeight: autoFillHeight = !1, keyboardOptions: keyboardOptions, eventOptions: eventOptions, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, customRender: customRender, pixelRatio: pixelRatio = defaultPixelRatio, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount, mode: mode, modeParams: modeParams, canvasWidth: canvasWidth, canvasHeight: canvasHeight, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth} = options;
83
83
  this.container = container, this.options = options, this.options.container = container,
84
84
  this._widthMode = widthMode, this._heightMode = heightMode, this._autoFillWidth = autoFillWidth,
@@ -94,7 +94,9 @@ export class BaseTable extends EventTarget {
94
94
  this.tableNoFrameHeight = 0, this.canvasWidth = canvasWidth, this.canvasHeight = canvasHeight;
95
95
  const internalProps = this.internalProps = {};
96
96
  void 0 !== showFrozenIcon && (this.showFrozenIcon = showFrozenIcon), "number" == typeof allowFrozenColCount && allowFrozenColCount <= 0 && (this.showFrozenIcon = !1),
97
- "node" !== Env.mode && (internalProps.element = createRootElement(this.padding),
97
+ this.options.canvas ? (internalProps.element = this.options.canvas.parentElement,
98
+ internalProps.element.style.position = "relative", internalProps.focusControl = new FocusInput(this, internalProps.element),
99
+ internalProps.canvas = this.options.canvas, internalProps.context = internalProps.canvas.getContext("2d")) : "node" !== Env.mode && (internalProps.element = createRootElement(this.padding),
98
100
  internalProps.focusControl = new FocusInput(this, internalProps.element), internalProps.canvas = document.createElement("canvas"),
99
101
  internalProps.element.appendChild(internalProps.canvas), internalProps.context = internalProps.canvas.getContext("2d")),
100
102
  internalProps.handler = new EventHandler, isNumber(this.options.resizeTime) && (internalProps.handler.resizeTime = this.options.resizeTime),
@@ -325,34 +327,44 @@ export class BaseTable extends EventTarget {
325
327
  this.internalProps.pixelRatio = pixelRatio, this.scenegraph.setPixelRatio(pixelRatio);
326
328
  }
327
329
  _updateSize() {
328
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
330
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2;
329
331
  const {padding: padding} = this;
330
332
  let widthP = 0, heightP = 0;
331
- if ("browser" === Env.mode) {
332
- const element = this.getElement(), width1 = null !== (_b = null === (_a = element.parentElement) || void 0 === _a ? void 0 : _a.offsetWidth) && void 0 !== _b ? _b : 0, height1 = null !== (_d = null === (_c = element.parentElement) || void 0 === _c ? void 0 : _c.offsetHeight) && void 0 !== _d ? _d : 0;
333
+ if (this.tableX = 0, this.tableY = 0, this.options.canvas && this.options.viewBox) widthP = this.options.viewBox.x2 - this.options.viewBox.x1,
334
+ heightP = this.options.viewBox.y2 - this.options.viewBox.y1, (null === (_a = null == this ? void 0 : this.scenegraph) || void 0 === _a ? void 0 : _a.stage) && (this.options.viewBox ? this.scenegraph.stage.setViewBox(this.options.viewBox, !1) : this.scenegraph.stage.resize(widthP, heightP)); else if ("browser" === Env.mode) {
335
+ const element = this.getElement(), width1 = null !== (_c = null === (_b = element.parentElement) || void 0 === _b ? void 0 : _b.offsetWidth) && void 0 !== _c ? _c : 0, height1 = null !== (_e = null === (_d = element.parentElement) || void 0 === _d ? void 0 : _d.offsetHeight) && void 0 !== _e ? _e : 0;
333
336
  element.style.width = width1 && width1 - padding.left - padding.right + "px" || "0px",
334
337
  element.style.height = height1 && height1 - padding.top - padding.bottom + "px" || "0px";
335
338
  const {canvas: canvas} = this.internalProps;
336
- widthP = null !== (_f = null === (_e = canvas.parentElement) || void 0 === _e ? void 0 : _e.offsetWidth) && void 0 !== _f ? _f : 0,
337
- heightP = null !== (_h = null === (_g = canvas.parentElement) || void 0 === _g ? void 0 : _g.offsetHeight) && void 0 !== _h ? _h : 0,
338
- (null === (_j = null == this ? void 0 : this.scenegraph) || void 0 === _j ? void 0 : _j.stage) ? this.scenegraph.stage.resize(widthP, heightP) : (canvas.style.width = "",
339
+ widthP = null !== (_g = null === (_f = canvas.parentElement) || void 0 === _f ? void 0 : _f.offsetWidth) && void 0 !== _g ? _g : 0,
340
+ heightP = null !== (_j = null === (_h = canvas.parentElement) || void 0 === _h ? void 0 : _h.offsetHeight) && void 0 !== _j ? _j : 0,
341
+ (null === (_k = null == this ? void 0 : this.scenegraph) || void 0 === _k ? void 0 : _k.stage) ? this.scenegraph.stage.resize(widthP, heightP) : (canvas.style.width = "",
339
342
  canvas.style.height = "", canvas.width = widthP, canvas.height = heightP, canvas.style.width = `${widthP}px`,
340
343
  canvas.style.height = `${heightP}px`);
341
344
  } else "node" === Env.mode && (widthP = this.canvasWidth - 1, heightP = this.canvasHeight - 1);
342
345
  const width = Math.floor(widthP - style.getScrollBarSize(this.getTheme().scrollStyle)), height = Math.floor(heightP - style.getScrollBarSize(this.getTheme().scrollStyle));
343
- if (null === (_k = this.internalProps.theme) || void 0 === _k ? void 0 : _k.frameStyle) {
344
- const lineWidths = toBoxArray(null !== (_m = null === (_l = this.internalProps.theme.frameStyle) || void 0 === _l ? void 0 : _l.borderLineWidth) && void 0 !== _m ? _m : [ null ]), shadowWidths = toBoxArray(null !== (_p = null === (_o = this.internalProps.theme.frameStyle) || void 0 === _o ? void 0 : _o.shadowBlur) && void 0 !== _p ? _p : [ 0 ]);
345
- this.tableX = (null !== (_q = lineWidths[3]) && void 0 !== _q ? _q : 0) + (null !== (_r = shadowWidths[3]) && void 0 !== _r ? _r : 0),
346
- this.tableY = (null !== (_s = lineWidths[0]) && void 0 !== _s ? _s : 0) + (null !== (_t = shadowWidths[0]) && void 0 !== _t ? _t : 0),
347
- this.tableNoFrameWidth = width - ((null !== (_u = lineWidths[1]) && void 0 !== _u ? _u : 0) + (null !== (_v = shadowWidths[1]) && void 0 !== _v ? _v : 0)) - ((null !== (_w = lineWidths[3]) && void 0 !== _w ? _w : 0) + (null !== (_x = shadowWidths[3]) && void 0 !== _x ? _x : 0)),
348
- this.tableNoFrameHeight = height - ((null !== (_y = lineWidths[0]) && void 0 !== _y ? _y : 0) + (null !== (_z = shadowWidths[0]) && void 0 !== _z ? _z : 0)) - ((null !== (_0 = lineWidths[2]) && void 0 !== _0 ? _0 : 0) + (null !== (_1 = shadowWidths[2]) && void 0 !== _1 ? _1 : 0));
349
- }
346
+ if (null === (_l = this.internalProps.theme) || void 0 === _l ? void 0 : _l.frameStyle) {
347
+ const lineWidths = toBoxArray(null !== (_o = null === (_m = this.internalProps.theme.frameStyle) || void 0 === _m ? void 0 : _m.borderLineWidth) && void 0 !== _o ? _o : [ null ]), shadowWidths = toBoxArray(null !== (_q = null === (_p = this.internalProps.theme.frameStyle) || void 0 === _p ? void 0 : _p.shadowBlur) && void 0 !== _q ? _q : [ 0 ]);
348
+ this.tableX += (null !== (_r = lineWidths[3]) && void 0 !== _r ? _r : 0) + (null !== (_s = shadowWidths[3]) && void 0 !== _s ? _s : 0),
349
+ this.tableY += (null !== (_t = lineWidths[0]) && void 0 !== _t ? _t : 0) + (null !== (_u = shadowWidths[0]) && void 0 !== _u ? _u : 0),
350
+ this.tableNoFrameWidth = width - ((null !== (_v = lineWidths[1]) && void 0 !== _v ? _v : 0) + (null !== (_w = shadowWidths[1]) && void 0 !== _w ? _w : 0)) - ((null !== (_x = lineWidths[3]) && void 0 !== _x ? _x : 0) + (null !== (_y = shadowWidths[3]) && void 0 !== _y ? _y : 0)),
351
+ this.tableNoFrameHeight = height - ((null !== (_z = lineWidths[0]) && void 0 !== _z ? _z : 0) + (null !== (_0 = shadowWidths[0]) && void 0 !== _0 ? _0 : 0)) - ((null !== (_1 = lineWidths[2]) && void 0 !== _1 ? _1 : 0) + (null !== (_2 = shadowWidths[2]) && void 0 !== _2 ? _2 : 0));
352
+ } else this.tableX += 0, this.tableY += 0, this.tableNoFrameWidth = width, this.tableNoFrameHeight = height;
353
+ }
354
+ updateViewBox(newViewBox) {
355
+ var _a, _b, _c, _d, _e, _f, _g, _h;
356
+ const oldWidth = null !== (_d = null !== (_b = null === (_a = this.options) || void 0 === _a ? void 0 : _a.viewBox.x2) && void 0 !== _b ? _b : 0 - (null === (_c = this.options) || void 0 === _c ? void 0 : _c.viewBox.x1)) && void 0 !== _d ? _d : 0, oldHeight = null !== (_h = null !== (_f = null === (_e = this.options) || void 0 === _e ? void 0 : _e.viewBox.y2) && void 0 !== _f ? _f : 0 - (null === (_g = this.options) || void 0 === _g ? void 0 : _g.viewBox.y1)) && void 0 !== _h ? _h : 0, newWidth = newViewBox.x2 - newViewBox.x1, newHeight = newViewBox.y2 - newViewBox.y1;
357
+ this.options.viewBox = newViewBox, oldWidth !== newWidth || oldHeight !== newHeight ? this.resize() : this.scenegraph.stage.setViewBox(this.options.viewBox, !0);
358
+ }
359
+ setViewBoxTransform(a, b, c, d, e, f) {
360
+ this.scenegraph.stage.window.setViewBoxTransform(a, b, c, d, e, f);
350
361
  }
351
362
  get rowHierarchyType() {
352
363
  return "grid";
353
364
  }
354
365
  getColsWidth(startCol, endCol) {
355
366
  var _a;
367
+ if (startCol > endCol) return 0;
356
368
  startCol = Math.max(startCol, 0), endCol = Math.min(endCol, (null !== (_a = this.colCount) && void 0 !== _a ? _a : 1 / 0) - 1);
357
369
  const cachedColWidth = this._colRangeWidthsMap.get(`$${startCol}$${endCol}`);
358
370
  if (null != cachedColWidth) return cachedColWidth;
@@ -381,6 +393,7 @@ export class BaseTable extends EventTarget {
381
393
  }
382
394
  getRowsHeight(startRow, endRow) {
383
395
  var _a;
396
+ if (startRow > endRow) return 0;
384
397
  startRow = Math.max(startRow, 0), endRow = Math.min(endRow, (null !== (_a = this.rowCount) && void 0 !== _a ? _a : 1 / 0) - 1);
385
398
  let h = 0;
386
399
  if ("standard" === this.heightMode && !this.autoFillHeight && this.internalProps.layoutMap && endRow >= this.columnHeaderLevelCount && !this.bottomFrozenRowCount && !this.hasAutoImageColumn()) {
@@ -505,21 +518,16 @@ export class BaseTable extends EventTarget {
505
518
  return rect.top = targetTop, rect.bottom = targetBottom, rect;
506
519
  }
507
520
  getCellsRect(startCol, startRow, endCol, endRow) {
508
- const isFrozenStartCell = this.isFrozenCell(startCol, startRow), isFrozenEndCell = this.isFrozenCell(endCol, endRow);
521
+ var _a, _b, _c, _d, _e, _f;
509
522
  let absoluteLeft = this.getColsWidth(0, startCol - 1) || 0, width = this.getColsWidth(startCol, endCol);
510
- if (null == isFrozenStartCell ? void 0 : isFrozenStartCell.col) {
511
- const scrollLeft = this.scrollLeft;
512
- absoluteLeft += scrollLeft, (null == isFrozenEndCell ? void 0 : isFrozenEndCell.col) || (width -= scrollLeft,
513
- width = Math.max(width, this.getColsWidth(startCol, this.frozenColCount - 1)));
514
- }
515
- const absoluteTop = this.getRowsHeight(0, startRow - 1);
516
- let height = this.getRowsHeight(startRow, endRow);
517
- if (null == isFrozenStartCell ? void 0 : isFrozenStartCell.row) {
518
- const scrollTop = this.scrollTop;
519
- (null == isFrozenEndCell ? void 0 : isFrozenEndCell.row) || (height -= scrollTop,
520
- height = Math.max(height, this.getRowsHeight(startRow, this.frozenRowCount - 1)));
521
- }
522
- return new Rect(Math.round(absoluteLeft), Math.round(absoluteTop), Math.round(width), Math.round(height));
523
+ const scrollLeft = this.scrollLeft;
524
+ this.isLeftFrozenColumn(startCol) && this.isRightFrozenColumn(endCol) ? width = this.tableNoFrameWidth - (null !== (_a = this.getColsWidth(startCol + 1, this.colCount - 1)) && void 0 !== _a ? _a : 0) - absoluteLeft : this.isLeftFrozenColumn(startCol) && !this.isLeftFrozenColumn(endCol) ? width = Math.max(width - scrollLeft, this.getColsWidth(startCol, this.frozenColCount - 1)) : !this.isRightFrozenColumn(startCol) && this.isRightFrozenColumn(endCol) ? (absoluteLeft = Math.min(absoluteLeft - scrollLeft, this.tableNoFrameWidth - this.getRightFrozenColsWidth()),
525
+ width = this.tableNoFrameWidth - (null !== (_b = this.getColsWidth(startCol + 1, this.colCount - 1)) && void 0 !== _b ? _b : 0) - absoluteLeft) : this.isRightFrozenColumn(startCol) && (absoluteLeft = this.tableNoFrameWidth - (null !== (_c = this.getColsWidth(startCol, this.colCount - 1)) && void 0 !== _c ? _c : 0));
526
+ let absoluteTop = this.getRowsHeight(0, startRow - 1), height = this.getRowsHeight(startRow, endRow);
527
+ const scrollTop = this.scrollTop;
528
+ return this.isTopFrozenRow(startRow) && this.isBottomFrozenRow(endRow) ? height = this.tableNoFrameHeight - (null !== (_d = this.getRowsHeight(startRow + 1, this.rowCount - 1)) && void 0 !== _d ? _d : 0) - absoluteTop : this.isTopFrozenRow(startRow) && !this.isTopFrozenRow(endRow) ? height = Math.max(height - scrollTop, this.getRowsHeight(startRow, this.frozenRowCount - 1)) : !this.isBottomFrozenRow(startRow) && this.isBottomFrozenRow(endRow) ? (absoluteTop = Math.min(absoluteTop - scrollTop, this.tableNoFrameHeight - this.getBottomFrozenRowsHeight()),
529
+ height = this.tableNoFrameHeight - (null !== (_e = this.getRowsHeight(startRow + 1, this.rowCount - 1)) && void 0 !== _e ? _e : 0) - absoluteTop) : this.isBottomFrozenRow(startRow) && (absoluteTop = this.tableNoFrameHeight - (null !== (_f = this.getRowsHeight(startRow, this.rowCount - 1)) && void 0 !== _f ? _f : 0)),
530
+ new Rect(Math.round(absoluteLeft), Math.round(absoluteTop), Math.round(width), Math.round(height));
523
531
  }
524
532
  getCellsRectWidth(startCol, startRow, endCol, endRow) {
525
533
  const isFrozenStartCell = this.isFrozenCell(startCol, startRow), isFrozenEndCell = this.isFrozenCell(endCol, endRow);
@@ -608,8 +616,11 @@ export class BaseTable extends EventTarget {
608
616
  }));
609
617
  }
610
618
  _toRelativeRect(absoluteRect, relativeX = !0, relativeY = !0) {
619
+ var _a, _b, _c, _d;
611
620
  const rect = absoluteRect.copy(), visibleRect = this.getVisibleRect();
612
621
  return rect.offsetLeft(this.tableX - (relativeX ? visibleRect.left : 0)), rect.offsetTop(this.tableY - (relativeY ? visibleRect.top : 0)),
622
+ rect.offsetLeft(null !== (_b = null === (_a = this.options.viewBox) || void 0 === _a ? void 0 : _a.x1) && void 0 !== _b ? _b : 0),
623
+ rect.offsetTop(null !== (_d = null === (_c = this.options.viewBox) || void 0 === _c ? void 0 : _c.y1) && void 0 !== _d ? _d : 0),
613
624
  rect;
614
625
  }
615
626
  getVisibleRect() {
@@ -713,7 +724,8 @@ export class BaseTable extends EventTarget {
713
724
  return null === (_a = null == releaseObj ? void 0 : releaseObj.release) || void 0 === _a ? void 0 : _a.call(releaseObj);
714
725
  })), internalProps.releaseList = null), this.scenegraph.stage.release(), this.scenegraph.proxy.release();
715
726
  const {parentElement: parentElement} = internalProps.element;
716
- parentElement && parentElement.removeChild(internalProps.element), this.isReleased = !0;
727
+ parentElement && !this.options.canvas && parentElement.removeChild(internalProps.element),
728
+ this.isReleased = !0;
717
729
  }
718
730
  fireListeners(type, event) {
719
731
  return super.fireListeners(type, event);
@@ -798,6 +810,7 @@ export class BaseTable extends EventTarget {
798
810
  return new Rect(this.tableX, this.tableY, width, height);
799
811
  }
800
812
  _getMouseAbstractPoint(evt, isAddScroll = !0) {
813
+ var _a, _b, _c, _d;
801
814
  let e;
802
815
  if (!evt) return {
803
816
  inTable: !1,
@@ -810,8 +823,8 @@ export class BaseTable extends EventTarget {
810
823
  rect.right <= clientX && (inTable = !1), rect.bottom <= clientY && (inTable = !1);
811
824
  const currentWidth = rect.width, widthRatio = currentWidth / (this.canvas.offsetWidth || currentWidth), currentHeight = rect.height, heightRatio = currentHeight / (this.canvas.offsetHeight || currentHeight);
812
825
  return {
813
- x: (clientX - rect.left) / widthRatio + (isAddScroll ? this.scrollLeft : 0),
814
- y: (clientY - rect.top) / heightRatio + (isAddScroll ? this.scrollTop : 0),
826
+ x: (clientX - rect.left) / widthRatio + (isAddScroll ? this.scrollLeft : 0) - (null !== (_b = null === (_a = this.options.viewBox) || void 0 === _a ? void 0 : _a.x1) && void 0 !== _b ? _b : 0),
827
+ y: (clientY - rect.top) / heightRatio + (isAddScroll ? this.scrollTop : 0) - (null !== (_d = null === (_c = this.options.viewBox) || void 0 === _c ? void 0 : _c.y1) && void 0 !== _d ? _d : 0),
815
828
  inTable: inTable
816
829
  };
817
830
  }
@@ -1050,6 +1063,9 @@ export class BaseTable extends EventTarget {
1050
1063
  }
1051
1064
  return this.internalProps.layoutMap.getCellRange(col, row);
1052
1065
  }
1066
+ hasCustomMerge() {
1067
+ return !!this.internalProps.customMergeCell;
1068
+ }
1053
1069
  getCustomMerge(col, row) {
1054
1070
  if (this.internalProps.customMergeCell) {
1055
1071
  const customMerge = this.internalProps.customMergeCell(col, row, this);