@visactor/vtable 1.26.2 → 1.26.3-alpha.0

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 (61) hide show
  1. package/cjs/dataset/DataStatistics.js +1 -2
  2. package/cjs/edit/edit-manager.js +1 -0
  3. package/cjs/event/EventHandler.js +1 -1
  4. package/cjs/event/EventTarget.js +1 -1
  5. package/cjs/event/drill.js +1 -1
  6. package/cjs/event/event.js +1 -1
  7. package/cjs/event/helper.js +1 -1
  8. package/cjs/event/media-click.js +1 -1
  9. package/cjs/event/scroll.js +1 -1
  10. package/cjs/event/sparkline-event.js +1 -1
  11. package/cjs/event/util.js +1 -1
  12. package/cjs/header-helper/style.js +2 -1
  13. package/cjs/layout/pivot-header-layout.js +0 -1
  14. package/cjs/plugins/index.js +1 -1
  15. package/cjs/plugins/interface.js +1 -1
  16. package/cjs/plugins/invert-highlight.js +1 -1
  17. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  18. package/cjs/plugins/plugin-manager.js +1 -1
  19. package/cjs/scenegraph/component/table-component.js +41 -50
  20. package/cjs/scenegraph/component/table-component.js.map +1 -1
  21. package/cjs/scenegraph/component/util.d.ts +1 -0
  22. package/cjs/scenegraph/component/util.js +9 -1
  23. package/cjs/scenegraph/component/util.js.map +1 -1
  24. package/cjs/scenegraph/scenegraph.js +6 -4
  25. package/cjs/scenegraph/scenegraph.js.map +1 -1
  26. package/cjs/state/state.js +16 -16
  27. package/cjs/state/state.js.map +1 -1
  28. package/cjs/themes/ARCO.js +1 -1
  29. package/cjs/themes/BRIGHT.js +1 -1
  30. package/dist/vtable.js +80 -78
  31. package/dist/vtable.min.js +1 -1
  32. package/es/dataset/DataStatistics.js +1 -2
  33. package/es/edit/edit-manager.js +2 -1
  34. package/es/event/EventHandler.js +1 -1
  35. package/es/event/EventTarget.js +1 -1
  36. package/es/event/drill.js +1 -1
  37. package/es/event/event.js +1 -1
  38. package/es/event/helper.js +1 -1
  39. package/es/event/media-click.js +1 -1
  40. package/es/event/scroll.js +1 -1
  41. package/es/event/sparkline-event.js +1 -1
  42. package/es/event/util.js +1 -1
  43. package/es/header-helper/style.js +2 -1
  44. package/es/layout/pivot-header-layout.js +1 -2
  45. package/es/plugins/index.js +1 -1
  46. package/es/plugins/interface.js +1 -1
  47. package/es/plugins/invert-highlight.js +1 -1
  48. package/es/plugins/list-tree-stick-cell.js +1 -1
  49. package/es/plugins/plugin-manager.js +1 -1
  50. package/es/scenegraph/component/table-component.js +41 -51
  51. package/es/scenegraph/component/table-component.js.map +1 -1
  52. package/es/scenegraph/component/util.d.ts +1 -0
  53. package/es/scenegraph/component/util.js +6 -0
  54. package/es/scenegraph/component/util.js.map +1 -1
  55. package/es/scenegraph/scenegraph.js +6 -4
  56. package/es/scenegraph/scenegraph.js.map +1 -1
  57. package/es/state/state.js +16 -14
  58. package/es/state/state.js.map +1 -1
  59. package/es/themes/ARCO.js +1 -1
  60. package/es/themes/BRIGHT.js +1 -1
  61. package/package.json +4 -4
@@ -1,3 +1,4 @@
1
1
  import type { BaseTableAPI } from '../../ts-types/base-table';
2
+ export declare function getBodyHorizontalScrollRange(table: BaseTableAPI): number;
2
3
  export declare function getColX(col: number, table: BaseTableAPI, isRightFrozen?: boolean): number;
3
4
  export declare function getRowY(row: number, table: BaseTableAPI, isBottomFrozen?: boolean): number;
@@ -1,5 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ function getBodyHorizontalScrollRange(table) {
4
+ var _a, _b, _c, _d;
5
+ const totalWidth = table.getAllColsWidth(), frozenColsWidth = table.getFrozenColsWidth(), rightFrozenColsWidth = table.getRightFrozenColsWidth(), frozenColsContentWidth = null !== (_b = null === (_a = table.getFrozenColsContentWidth) || void 0 === _a ? void 0 : _a.call(table)) && void 0 !== _b ? _b : frozenColsWidth, rightFrozenColsContentWidth = null !== (_d = null === (_c = table.getRightFrozenColsContentWidth) || void 0 === _c ? void 0 : _c.call(table)) && void 0 !== _d ? _d : rightFrozenColsWidth, bodyViewportWidth = table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth, bodyContentWidth = totalWidth - frozenColsContentWidth - rightFrozenColsContentWidth;
6
+ return Math.max(0, bodyContentWidth - bodyViewportWidth);
7
+ }
8
+
3
9
  function getColX(col, table, isRightFrozen) {
4
10
  var _a, _b, _c, _d, _e, _f;
5
11
  if (isRightFrozen) return Math.min(table.tableNoFrameWidth, table.getAllColsWidth()) - table.getColsWidth(col, table.colCount - 1) + (null !== (_b = null === (_a = table.getRightFrozenColsScrollLeft) || void 0 === _a ? void 0 : _a.call(table)) && void 0 !== _b ? _b : 0);
@@ -17,5 +23,7 @@ function getRowY(row, table, isBottomFrozen) {
17
23
 
18
24
  Object.defineProperty(exports, "__esModule", {
19
25
  value: !0
20
- }), exports.getRowY = exports.getColX = void 0, exports.getColX = getColX, exports.getRowY = getRowY;
26
+ }), exports.getRowY = exports.getColX = exports.getBodyHorizontalScrollRange = void 0,
27
+ exports.getBodyHorizontalScrollRange = getBodyHorizontalScrollRange, exports.getColX = getColX,
28
+ exports.getRowY = getRowY;
21
29
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/component/util.ts"],"names":[],"mappings":";;;AAEA,SAAgB,OAAO,CAAC,GAAW,EAAE,KAAmB,EAAE,aAAuB;;IAC/E,IAAI,aAAa,EAAE;QAGjB,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1D,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC3C,CAAC,MAAA,MAAA,KAAK,CAAC,4BAA4B,qDAAI,mCAAI,CAAC,CAAC,CAC9C,CAAC;KACH;IACD,MAAM,YAAY,GAAG,MAAA,MAAA,KAAK,CAAC,mBAAmB,qDAAI,mCAAI,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,MAAA,MAAA,KAAK,CAAC,uBAAuB,qDAAI,mCAAI,CAAC,CAAC;IAChE,IAAI,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE;QAC/B,IAAI,IAAI,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC;KACzC;SAAM;QACL,IAAI,IAAI,gBAAgB,CAAC;KAC1B;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAnBD,0BAmBC;AAED,SAAgB,OAAO,CAAC,GAAW,EAAE,KAAmB,EAAE,cAAwB;IAChF,IAAI,cAAc,EAAE;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;KACnH;IACD,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE;QAC/B,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC;KACzB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AATD,0BASC","file":"util.js","sourcesContent":["import type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function getColX(col: number, table: BaseTableAPI, isRightFrozen?: boolean) {\n if (isRightFrozen) {\n // 右冻结列的 x 位置以“表格最右侧”为基准向左累加。\n // 当开启右冻结区域内部滚动时,需要叠加右冻结的 scrollLeft,使得列在右冻结视口内可左右移动。\n return (\n Math.min(table.tableNoFrameWidth, table.getAllColsWidth()) -\n table.getColsWidth(col, table.colCount - 1) +\n (table.getRightFrozenColsScrollLeft?.() ?? 0)\n );\n }\n const frozenOffset = table.getFrozenColsOffset?.() ?? 0;\n const frozenScrollLeft = table.getFrozenColsScrollLeft?.() ?? 0;\n let colX = table.getColsWidth(0, col);\n if (col >= table.frozenColCount) {\n colX -= table.scrollLeft + frozenOffset;\n } else {\n colX -= frozenScrollLeft;\n }\n return colX;\n}\n\nexport function getRowY(row: number, table: BaseTableAPI, isBottomFrozen?: boolean) {\n if (isBottomFrozen) {\n return Math.min(table.tableNoFrameWidth, table.getAllRowsHeight()) - table.getRowsHeight(row, table.rowCount - 1);\n }\n let rowY = table.getRowsHeight(0, row);\n if (row >= table.frozenRowCount) {\n rowY -= table.scrollTop;\n }\n return rowY;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/component/util.ts"],"names":[],"mappings":";;;AAEA,SAAgB,4BAA4B,CAAC,KAAmB;;IAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;IACnD,MAAM,oBAAoB,GAAG,KAAK,CAAC,uBAAuB,EAAE,CAAC;IAC7D,MAAM,sBAAsB,GAAG,MAAA,MAAA,KAAK,CAAC,yBAAyB,qDAAI,mCAAI,eAAe,CAAC;IACtF,MAAM,2BAA2B,GAAG,MAAA,MAAA,KAAK,CAAC,8BAA8B,qDAAI,mCAAI,oBAAoB,CAAC;IACrG,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,CAAC;IAC3F,MAAM,gBAAgB,GAAG,UAAU,GAAG,sBAAsB,GAAG,2BAA2B,CAAC;IAE3F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;AAC3D,CAAC;AAVD,oEAUC;AAED,SAAgB,OAAO,CAAC,GAAW,EAAE,KAAmB,EAAE,aAAuB;;IAC/E,IAAI,aAAa,EAAE;QAGjB,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1D,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC3C,CAAC,MAAA,MAAA,KAAK,CAAC,4BAA4B,qDAAI,mCAAI,CAAC,CAAC,CAC9C,CAAC;KACH;IACD,MAAM,YAAY,GAAG,MAAA,MAAA,KAAK,CAAC,mBAAmB,qDAAI,mCAAI,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,MAAA,MAAA,KAAK,CAAC,uBAAuB,qDAAI,mCAAI,CAAC,CAAC;IAChE,IAAI,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE;QAC/B,IAAI,IAAI,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC;KACzC;SAAM;QACL,IAAI,IAAI,gBAAgB,CAAC;KAC1B;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAnBD,0BAmBC;AAED,SAAgB,OAAO,CAAC,GAAW,EAAE,KAAmB,EAAE,cAAwB;IAChF,IAAI,cAAc,EAAE;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;KACnH;IACD,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE;QAC/B,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC;KACzB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AATD,0BASC","file":"util.js","sourcesContent":["import type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function getBodyHorizontalScrollRange(table: BaseTableAPI) {\n const totalWidth = table.getAllColsWidth();\n const frozenColsWidth = table.getFrozenColsWidth();\n const rightFrozenColsWidth = table.getRightFrozenColsWidth();\n const frozenColsContentWidth = table.getFrozenColsContentWidth?.() ?? frozenColsWidth;\n const rightFrozenColsContentWidth = table.getRightFrozenColsContentWidth?.() ?? rightFrozenColsWidth;\n const bodyViewportWidth = table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth;\n const bodyContentWidth = totalWidth - frozenColsContentWidth - rightFrozenColsContentWidth;\n\n return Math.max(0, bodyContentWidth - bodyViewportWidth);\n}\n\nexport function getColX(col: number, table: BaseTableAPI, isRightFrozen?: boolean) {\n if (isRightFrozen) {\n // 右冻结列的 x 位置以“表格最右侧”为基准向左累加。\n // 当开启右冻结区域内部滚动时,需要叠加右冻结的 scrollLeft,使得列在右冻结视口内可左右移动。\n return (\n Math.min(table.tableNoFrameWidth, table.getAllColsWidth()) -\n table.getColsWidth(col, table.colCount - 1) +\n (table.getRightFrozenColsScrollLeft?.() ?? 0)\n );\n }\n const frozenOffset = table.getFrozenColsOffset?.() ?? 0;\n const frozenScrollLeft = table.getFrozenColsScrollLeft?.() ?? 0;\n let colX = table.getColsWidth(0, col);\n if (col >= table.frozenColCount) {\n colX -= table.scrollLeft + frozenOffset;\n } else {\n colX -= frozenScrollLeft;\n }\n return colX;\n}\n\nexport function getRowY(row: number, table: BaseTableAPI, isBottomFrozen?: boolean) {\n if (isBottomFrozen) {\n return Math.min(table.tableNoFrameWidth, table.getAllRowsHeight()) - table.getRowsHeight(row, table.rowCount - 1);\n }\n let rowY = table.getRowsHeight(0, row);\n if (row >= table.frozenRowCount) {\n rowY -= table.scrollTop;\n }\n return rowY;\n}\n"]}
@@ -677,7 +677,7 @@ class Scenegraph {
677
677
  let lastBodyCol = this.bodyGroup.lastChild;
678
678
  lastBodyCol && "group" !== lastBodyCol.type && (lastBodyCol = lastBodyCol._prev),
679
679
  0 === x && firstBodyCol && firstBodyCol.col === this.table.frozenColCount && firstBodyCol.attribute.x + x < 0 ? x = -firstBodyCol.attribute.x : lastBodyCol && this.table.tableNoFrameWidth < this.table.getAllColsWidth() && lastBodyCol.col === this.table.colCount - this.table.rightFrozenColCount - 1 && lastBodyCol.attribute.x + lastBodyCol.attribute.width + x < this.table.tableNoFrameWidth - this.table.getFrozenColsWidth() - this.table.getRightFrozenColsWidth() && (x = this.table.tableNoFrameWidth - this.table.getFrozenColsWidth() - this.table.getRightFrozenColsWidth() - lastBodyCol.attribute.x - lastBodyCol.attribute.width),
680
- this.table.getFrozenColsWidth() + x !== this.bodyGroup.attribute.x && (this.bodyGroup.setAttribute("x", this.table.getFrozenColsWidth() + x),
680
+ this.table.options.scrollFrozenCols && x > 0 && (x = 0), this.table.getFrozenColsWidth() + x !== this.bodyGroup.attribute.x && (this.bodyGroup.setAttribute("x", this.table.getFrozenColsWidth() + x),
681
681
  this.colHeaderGroup.setAttribute("x", this.table.getFrozenColsWidth() + x), this.bodySelectGroup.setAttribute("x", this.bodyGroup.attribute.x),
682
682
  this.colHeaderSelectGroup.setAttribute("x", this.colHeaderGroup.attribute.x), this.rowHeaderSelectGroup.setAttribute("x", this.rowHeaderGroup.attribute.x),
683
683
  this.cornerHeaderSelectGroup.setAttribute("x", this.cornerHeaderGroup.attribute.x),
@@ -740,11 +740,13 @@ class Scenegraph {
740
740
  let rowHeaderWidth = 0;
741
741
  this.rowHeaderGroup.forEachChildrenSkipChild((column => {
742
742
  rowHeaderWidth += column.attribute.width;
743
- })), this.rowHeaderGroup.setAttribute("width", rowHeaderWidth);
743
+ })), table.options.scrollFrozenCols && (rowHeaderWidth = table.getFrozenColsWidth()),
744
+ this.rowHeaderGroup.setAttribute("width", rowHeaderWidth);
744
745
  let cornerHeaderWidth = 0;
745
746
  this.cornerHeaderGroup.forEachChildrenSkipChild((column => {
746
747
  cornerHeaderWidth += column.attribute.width;
747
- })), this.cornerHeaderGroup.setAttribute("width", cornerHeaderWidth), this.colHeaderGroup.setAttribute("x", this.cornerHeaderGroup.attribute.width),
748
+ })), table.options.scrollFrozenCols && (cornerHeaderWidth = table.getFrozenColsWidth()),
749
+ this.cornerHeaderGroup.setAttribute("width", cornerHeaderWidth), this.colHeaderGroup.setAttribute("x", this.cornerHeaderGroup.attribute.width),
748
750
  this.rowHeaderGroup.setAttribute("y", this.cornerHeaderGroup.attribute.height),
749
751
  this.bodyGroup.setAttributes({
750
752
  x: this.rowHeaderGroup.attribute.width,
@@ -1160,4 +1162,4 @@ class Scenegraph {
1160
1162
  }
1161
1163
 
1162
1164
  exports.Scenegraph = Scenegraph;
1163
- //# sourceMappingURL=scenegraph.js.map
1165
+ //# sourceMappingURL=scenegraph.js.map