@visactor/vtable 1.17.3-alpha.6 → 1.17.3-alpha.8

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 (89) hide show
  1. package/cjs/PivotTable.d.ts +5 -0
  2. package/cjs/PivotTable.js +13 -0
  3. package/cjs/PivotTable.js.map +1 -1
  4. package/cjs/core/BaseTable.js +15 -14
  5. package/cjs/core/BaseTable.js.map +1 -1
  6. package/cjs/dataset/dataset.js +6 -4
  7. package/cjs/dataset/dataset.js.map +1 -1
  8. package/cjs/index.d.ts +1 -1
  9. package/cjs/index.js +1 -1
  10. package/cjs/index.js.map +1 -1
  11. package/cjs/layout/index.js +1 -2
  12. package/cjs/layout/pivot-header-layout.js +6 -4
  13. package/cjs/layout/pivot-header-layout.js.map +1 -1
  14. package/cjs/layout/pivot-layout.js +0 -2
  15. package/cjs/layout/row-height-map.js +1 -1
  16. package/cjs/layout/simple-header-layout.js +1 -1
  17. package/cjs/layout/tree-helper.js +1 -1
  18. package/cjs/plugins/chartModules.js +2 -1
  19. package/cjs/plugins/custom-cell-style.js +1 -1
  20. package/cjs/plugins/icons.js +1 -1
  21. package/cjs/plugins/invert-highlight.js +1 -1
  22. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  23. package/cjs/plugins/themes.js +1 -1
  24. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  25. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +4 -4
  26. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  27. package/cjs/scenegraph/group-creater/progress/proxy.js +1 -2
  28. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  29. package/cjs/scenegraph/layout/frozen.js +5 -5
  30. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  31. package/cjs/scenegraph/select/create-select-border.js +13 -2
  32. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  33. package/cjs/state/state.js +79 -47
  34. package/cjs/state/state.js.map +1 -1
  35. package/cjs/ts-types/base-table.d.ts +1 -1
  36. package/cjs/ts-types/base-table.js.map +1 -1
  37. package/cjs/ts-types/common.d.ts +3 -1
  38. package/cjs/ts-types/common.js.map +1 -1
  39. package/cjs/ts-types/events.d.ts +3 -1
  40. package/cjs/ts-types/events.js.map +1 -1
  41. package/cjs/ts-types/table-engine.d.ts +1 -0
  42. package/cjs/ts-types/table-engine.js.map +1 -1
  43. package/cjs/vrender.js.map +1 -1
  44. package/dist/vtable.js +195 -67
  45. package/dist/vtable.min.js +1 -1
  46. package/es/PivotTable.d.ts +5 -0
  47. package/es/PivotTable.js +13 -0
  48. package/es/PivotTable.js.map +1 -1
  49. package/es/core/BaseTable.js +15 -14
  50. package/es/core/BaseTable.js.map +1 -1
  51. package/es/dataset/dataset.js +6 -4
  52. package/es/dataset/dataset.js.map +1 -1
  53. package/es/index.d.ts +1 -1
  54. package/es/index.js +1 -1
  55. package/es/index.js.map +1 -1
  56. package/es/layout/index.js +1 -2
  57. package/es/layout/pivot-header-layout.js +6 -4
  58. package/es/layout/pivot-header-layout.js.map +1 -1
  59. package/es/layout/pivot-layout.js +0 -2
  60. package/es/layout/row-height-map.js +1 -1
  61. package/es/layout/simple-header-layout.js +1 -1
  62. package/es/layout/tree-helper.js +1 -1
  63. package/es/plugins/chartModules.js +2 -1
  64. package/es/plugins/custom-cell-style.js +1 -1
  65. package/es/plugins/icons.js +1 -1
  66. package/es/plugins/invert-highlight.js +1 -1
  67. package/es/plugins/list-tree-stick-cell.js +1 -1
  68. package/es/plugins/themes.js +1 -1
  69. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  70. package/es/scenegraph/graphic/contributions/rect-contribution-render.js +4 -4
  71. package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  72. package/es/scenegraph/group-creater/progress/proxy.js +1 -2
  73. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  74. package/es/scenegraph/layout/frozen.js +5 -5
  75. package/es/scenegraph/layout/frozen.js.map +1 -1
  76. package/es/scenegraph/select/create-select-border.js +13 -2
  77. package/es/scenegraph/select/create-select-border.js.map +1 -1
  78. package/es/state/state.js +79 -47
  79. package/es/state/state.js.map +1 -1
  80. package/es/ts-types/base-table.d.ts +1 -1
  81. package/es/ts-types/base-table.js.map +1 -1
  82. package/es/ts-types/common.d.ts +3 -1
  83. package/es/ts-types/common.js.map +1 -1
  84. package/es/ts-types/events.d.ts +3 -1
  85. package/es/ts-types/events.js.map +1 -1
  86. package/es/ts-types/table-engine.d.ts +1 -0
  87. package/es/ts-types/table-engine.js.map +1 -1
  88. package/es/vrender.js.map +1 -1
  89. package/package.json +2 -2
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  const vrender_1 = require("./../../vrender");
8
8
 
9
9
  function createCellSelectBorder(scene, start_Col, start_Row, end_Col, end_Row, selectRangeType, selectId, strokes) {
10
- var _a, _b, _c, _d, _e, _f, _g, _h;
10
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
11
11
  let isHasFillHandleRect = !!(null === (_a = scene.table.options.excelOptions) || void 0 === _a ? void 0 : _a.fillHandle);
12
12
  if ((null === (_b = scene.table.stateManager.select.ranges) || void 0 === _b ? void 0 : _b.length) > 1) isHasFillHandleRect = !1,
13
13
  scene.removeFillHandleFromSelectComponents(); else if (1 === (null === (_c = scene.table.stateManager.select.ranges) || void 0 === _c ? void 0 : _c.length)) {
@@ -25,7 +25,8 @@ function createCellSelectBorder(scene, start_Col, start_Row, end_Col, end_Row, s
25
25
  y: firstCellBound.y1 - scene.tableGroup.attribute.y,
26
26
  width: 0,
27
27
  height: 0,
28
- visible: !0
28
+ visible: !0,
29
+ cornerRadius: getCornerRadius(selectRangeType, null === (_j = scene.table.theme.frameStyle) || void 0 === _j ? void 0 : _j.cornerRadius, start_Col, start_Row, end_Col, end_Row, scene.table)
29
30
  });
30
31
  let fillhandle;
31
32
  isHasFillHandleRect && (fillhandle = (0, vrender_1.createRect)({
@@ -45,5 +46,15 @@ function createCellSelectBorder(scene, start_Col, start_Row, end_Col, end_Row, s
45
46
  isHasFillHandleRect && scene.tableGroup.insertAfter(fillhandle, "body" === selectRangeType ? scene.bodyGroup : "columnHeader" === selectRangeType ? scene.colHeaderGroup : "rowHeader" === selectRangeType ? scene.rowHeaderGroup : "cornerHeader" === selectRangeType ? scene.cornerHeaderGroup : "rightTopCorner" === selectRangeType ? scene.rightTopCornerGroup : "rightFrozen" === selectRangeType ? scene.rightFrozenGroup : "leftBottomCorner" === selectRangeType ? scene.leftBottomCornerGroup : "bottomFrozen" === selectRangeType ? scene.bottomFrozenGroup : scene.rightBottomCornerGroup);
46
47
  }
47
48
 
49
+ function getCornerRadius(selectRangeType, cornerRadius, start_Col, start_Row, end_Col, end_Row, table) {
50
+ if (!cornerRadius) return;
51
+ const cornerRadiusArray = Array.isArray(cornerRadius) ? cornerRadius : [ cornerRadius, cornerRadius, cornerRadius, cornerRadius ], tableEndCol = table.colCount - 1, tableEndRow = table.rowCount - 1, result = [ 0, 0, 0, 0 ];
52
+ let changed = !1;
53
+ return 0 === start_Col && 0 === start_Row ? (result[0] = cornerRadiusArray[0], changed = !0) : end_Col === tableEndCol && end_Row === tableEndRow ? (result[2] = cornerRadiusArray[2],
54
+ changed = !0) : 0 === start_Col && end_Row === tableEndRow ? (result[3] = cornerRadiusArray[3],
55
+ changed = !0) : end_Col === tableEndCol && 0 === start_Row && (result[1] = cornerRadiusArray[1],
56
+ changed = !0), changed ? result : void 0;
57
+ }
58
+
48
59
  exports.createCellSelectBorder = createCellSelectBorder;
49
60
  //# sourceMappingURL=create-select-border.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/select/create-select-border.ts"],"names":[],"mappings":"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","file":"create-select-border.js","sourcesContent":["import { createRect } from './../../vrender';\nimport type { CellSubLocation } from '../../ts-types';\nimport type { Scenegraph } from '../scenegraph';\nimport { table } from 'console';\n\nexport function createCellSelectBorder(\n scene: Scenegraph,\n start_Col: number,\n start_Row: number,\n end_Col: number,\n end_Row: number,\n selectRangeType: CellSubLocation,\n selectId: string, //整体区域${endRow}-${startCol}${startRow}${endCol}${endRow}作为其编号\n strokes: boolean[]\n // isHasFillHandleRect: boolean\n) {\n let isHasFillHandleRect = !!scene.table.options.excelOptions?.fillHandle;\n if (scene.table.stateManager.select.ranges?.length > 1) {\n isHasFillHandleRect = false;\n scene.removeFillHandleFromSelectComponents();\n } else if (scene.table.stateManager.select.ranges?.length === 1) {\n const maxRow = Math.max(\n scene.table.stateManager.select.ranges[0].start.row,\n scene.table.stateManager.select.ranges[0].end.row\n );\n const maxCol = Math.max(\n scene.table.stateManager.select.ranges[0].start.col,\n scene.table.stateManager.select.ranges[0].end.col\n );\n if (scene.table.isHeader(maxCol, maxRow)) {\n isHasFillHandleRect = false;\n }\n }\n if (Array.isArray(strokes) && (strokes[1] === false || strokes[2] === false)) {\n isHasFillHandleRect = false;\n }\n const startCol = Math.min(start_Col, end_Col);\n const startRow = Math.min(start_Row, end_Row);\n const endCol = Math.max(start_Col, end_Col);\n const endRow = Math.max(start_Row, end_Row);\n const firstCellBound = scene.highPerformanceGetCell(startCol, startRow).globalAABBBounds;\n const lastCellBound = scene.highPerformanceGetCell(endCol, endRow).globalAABBBounds;\n const theme = scene.table.theme;\n // 框选外边框\n const bodyClickBorderColor = theme.selectionStyle?.cellBorderColor;\n const bodyClickLineWidth = theme.selectionStyle?.cellBorderLineWidth;\n const rect = createRect({\n pickable: false,\n fill:\n theme.selectionStyle?.selectionFillMode === 'replace'\n ? false\n : (theme.selectionStyle?.cellBgColor as any) ?? 'rgba(0, 0, 255,0.1)',\n\n lineWidth: bodyClickLineWidth as number,\n // stroke: bodyClickBorderColor as string,\n stroke: strokes.map(stroke => {\n if (stroke) {\n return bodyClickBorderColor as string;\n }\n return false;\n }),\n x: firstCellBound.x1 - scene.tableGroup.attribute.x, // 坐标xy及宽高width height 不需要这里计算具体值 update-select-border文件中updateComponent方法中有逻辑 且该方法调用时间是render\n y: firstCellBound.y1 - scene.tableGroup.attribute.y,\n width: 0,\n height: 0,\n visible: true\n });\n // 创建右下角小方块\n let fillhandle;\n if (isHasFillHandleRect) {\n fillhandle = createRect({\n pickable: false,\n fill: bodyClickBorderColor as string,\n // lineWidth: bodyClickLineWidth as number,\n stroke: bodyClickBorderColor as string, // 右下角小方块边框颜色\n x: lastCellBound.x2 - 3, // 调整小方块位置\n y: lastCellBound.y2 - 3, // 调整小方块位置\n width: 6,\n height: 6,\n\n visible: true\n });\n }\n scene.lastSelectId = selectId;\n scene.selectingRangeComponents.set(`${startCol}-${startRow}-${endCol}-${endRow}-${selectId}`, {\n rect,\n fillhandle,\n role: selectRangeType\n });\n scene.tableGroup.insertAfter(\n rect,\n selectRangeType === 'body'\n ? scene.bodyGroup\n : selectRangeType === 'columnHeader'\n ? scene.colHeaderGroup\n : selectRangeType === 'rowHeader'\n ? scene.rowHeaderGroup\n : selectRangeType === 'cornerHeader'\n ? scene.cornerHeaderGroup\n : selectRangeType === 'rightTopCorner'\n ? scene.rightTopCornerGroup\n : selectRangeType === 'rightFrozen'\n ? scene.rightFrozenGroup\n : selectRangeType === 'leftBottomCorner'\n ? scene.leftBottomCornerGroup\n : selectRangeType === 'bottomFrozen'\n ? scene.bottomFrozenGroup\n : scene.rightBottomCornerGroup\n );\n isHasFillHandleRect &&\n scene.tableGroup.insertAfter(\n fillhandle,\n selectRangeType === 'body'\n ? scene.bodyGroup\n : selectRangeType === 'columnHeader'\n ? scene.colHeaderGroup\n : selectRangeType === 'rowHeader'\n ? scene.rowHeaderGroup\n : selectRangeType === 'cornerHeader'\n ? scene.cornerHeaderGroup\n : selectRangeType === 'rightTopCorner'\n ? scene.rightTopCornerGroup\n : selectRangeType === 'rightFrozen'\n ? scene.rightFrozenGroup\n : selectRangeType === 'leftBottomCorner'\n ? scene.leftBottomCornerGroup\n : selectRangeType === 'bottomFrozen'\n ? scene.bottomFrozenGroup\n : scene.rightBottomCornerGroup\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/select/create-select-border.ts"],"names":[],"mappings":"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","file":"create-select-border.js","sourcesContent":["import { createRect } from './../../vrender';\nimport type { CellSubLocation } from '../../ts-types';\nimport type { Scenegraph } from '../scenegraph';\nimport { table } from 'console';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function createCellSelectBorder(\n scene: Scenegraph,\n start_Col: number,\n start_Row: number,\n end_Col: number,\n end_Row: number,\n selectRangeType: CellSubLocation,\n selectId: string, //整体区域${endRow}-${startCol}${startRow}${endCol}${endRow}作为其编号\n strokes: boolean[]\n // isHasFillHandleRect: boolean\n) {\n let isHasFillHandleRect = !!scene.table.options.excelOptions?.fillHandle;\n if (scene.table.stateManager.select.ranges?.length > 1) {\n isHasFillHandleRect = false;\n scene.removeFillHandleFromSelectComponents();\n } else if (scene.table.stateManager.select.ranges?.length === 1) {\n const maxRow = Math.max(\n scene.table.stateManager.select.ranges[0].start.row,\n scene.table.stateManager.select.ranges[0].end.row\n );\n const maxCol = Math.max(\n scene.table.stateManager.select.ranges[0].start.col,\n scene.table.stateManager.select.ranges[0].end.col\n );\n if (scene.table.isHeader(maxCol, maxRow)) {\n isHasFillHandleRect = false;\n }\n }\n if (Array.isArray(strokes) && (strokes[1] === false || strokes[2] === false)) {\n isHasFillHandleRect = false;\n }\n const startCol = Math.min(start_Col, end_Col);\n const startRow = Math.min(start_Row, end_Row);\n const endCol = Math.max(start_Col, end_Col);\n const endRow = Math.max(start_Row, end_Row);\n const firstCellBound = scene.highPerformanceGetCell(startCol, startRow).globalAABBBounds;\n const lastCellBound = scene.highPerformanceGetCell(endCol, endRow).globalAABBBounds;\n const theme = scene.table.theme;\n // 框选外边框\n const bodyClickBorderColor = theme.selectionStyle?.cellBorderColor;\n const bodyClickLineWidth = theme.selectionStyle?.cellBorderLineWidth;\n const rect = createRect({\n pickable: false,\n fill:\n theme.selectionStyle?.selectionFillMode === 'replace'\n ? false\n : (theme.selectionStyle?.cellBgColor as any) ?? 'rgba(0, 0, 255,0.1)',\n\n lineWidth: bodyClickLineWidth as number,\n // stroke: bodyClickBorderColor as string,\n stroke: strokes.map(stroke => {\n if (stroke) {\n return bodyClickBorderColor as string;\n }\n return false;\n }),\n x: firstCellBound.x1 - scene.tableGroup.attribute.x, // 坐标xy及宽高width height 不需要这里计算具体值 update-select-border文件中updateComponent方法中有逻辑 且该方法调用时间是render\n y: firstCellBound.y1 - scene.tableGroup.attribute.y,\n width: 0,\n height: 0,\n visible: true,\n cornerRadius: getCornerRadius(\n selectRangeType,\n scene.table.theme.frameStyle?.cornerRadius,\n start_Col,\n start_Row,\n end_Col,\n end_Row,\n scene.table\n )\n });\n // 创建右下角小方块\n let fillhandle;\n if (isHasFillHandleRect) {\n fillhandle = createRect({\n pickable: false,\n fill: bodyClickBorderColor as string,\n // lineWidth: bodyClickLineWidth as number,\n stroke: bodyClickBorderColor as string, // 右下角小方块边框颜色\n x: lastCellBound.x2 - 3, // 调整小方块位置\n y: lastCellBound.y2 - 3, // 调整小方块位置\n width: 6,\n height: 6,\n\n visible: true\n });\n }\n scene.lastSelectId = selectId;\n scene.selectingRangeComponents.set(`${startCol}-${startRow}-${endCol}-${endRow}-${selectId}`, {\n rect,\n fillhandle,\n role: selectRangeType\n });\n scene.tableGroup.insertAfter(\n rect,\n selectRangeType === 'body'\n ? scene.bodyGroup\n : selectRangeType === 'columnHeader'\n ? scene.colHeaderGroup\n : selectRangeType === 'rowHeader'\n ? scene.rowHeaderGroup\n : selectRangeType === 'cornerHeader'\n ? scene.cornerHeaderGroup\n : selectRangeType === 'rightTopCorner'\n ? scene.rightTopCornerGroup\n : selectRangeType === 'rightFrozen'\n ? scene.rightFrozenGroup\n : selectRangeType === 'leftBottomCorner'\n ? scene.leftBottomCornerGroup\n : selectRangeType === 'bottomFrozen'\n ? scene.bottomFrozenGroup\n : scene.rightBottomCornerGroup\n );\n isHasFillHandleRect &&\n scene.tableGroup.insertAfter(\n fillhandle,\n selectRangeType === 'body'\n ? scene.bodyGroup\n : selectRangeType === 'columnHeader'\n ? scene.colHeaderGroup\n : selectRangeType === 'rowHeader'\n ? scene.rowHeaderGroup\n : selectRangeType === 'cornerHeader'\n ? scene.cornerHeaderGroup\n : selectRangeType === 'rightTopCorner'\n ? scene.rightTopCornerGroup\n : selectRangeType === 'rightFrozen'\n ? scene.rightFrozenGroup\n : selectRangeType === 'leftBottomCorner'\n ? scene.leftBottomCornerGroup\n : selectRangeType === 'bottomFrozen'\n ? scene.bottomFrozenGroup\n : scene.rightBottomCornerGroup\n );\n}\n\n// set corner radius in select rect which covers the corner of the table\nfunction getCornerRadius(\n selectRangeType: CellSubLocation,\n cornerRadius: undefined | number | [number, number, number, number],\n start_Col: number,\n start_Row: number,\n end_Col: number,\n end_Row: number,\n table: BaseTableAPI\n) {\n if (!cornerRadius) {\n return undefined;\n }\n const cornerRadiusArray = Array.isArray(cornerRadius)\n ? cornerRadius\n : [cornerRadius, cornerRadius, cornerRadius, cornerRadius]; // [left top, right top, right bottom, left bottom]\n\n const tableStartCol = 0;\n const tableStartRow = 0;\n const tableEndCol = table.colCount - 1;\n const tableEndRow = table.rowCount - 1;\n\n const result = [0, 0, 0, 0];\n let changed = false;\n\n if (start_Col === tableStartCol && start_Row === tableStartRow) {\n // select rect covers the left top corner of the table\n result[0] = cornerRadiusArray[0];\n changed = true;\n } else if (end_Col === tableEndCol && end_Row === tableEndRow) {\n // select rect covers the right bottom corner of the table\n result[2] = cornerRadiusArray[2];\n changed = true;\n } else if (start_Col === tableStartCol && end_Row === tableEndRow) {\n // select rect covers the left bottom corner of the table\n result[3] = cornerRadiusArray[3];\n changed = true;\n } else if (end_Col === tableEndCol && start_Row === tableStartRow) {\n // select rect covers the right top corner of the table\n result[1] = cornerRadiusArray[1];\n changed = true;\n }\n\n if (changed) {\n return result;\n }\n\n return undefined;\n}\n"]}
@@ -388,82 +388,114 @@ class StateManager {
388
388
  updateVerticalScrollBar(yRatio) {
389
389
  var _a, _b;
390
390
  const totalHeight = this.table.getAllRowsHeight(), oldVerticalBarPos = this.scroll.verticalBarPos;
391
- this.scroll.verticalBarPos = Math.ceil(yRatio * (totalHeight - this.table.scenegraph.height)),
392
- (0, vutils_1.isValid)(this.scroll.verticalBarPos) && !isNaN(this.scroll.verticalBarPos) || (this.scroll.verticalBarPos = 0),
393
- this.table.scenegraph.setY(-this.scroll.verticalBarPos, 1 === yRatio), this.scroll.verticalBarPos -= this.table.scenegraph.proxy.deltaY,
394
- this.table.scenegraph.proxy.deltaY = 0, this.updateHoverPos(-1, -1), this.table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.SCROLL, {
391
+ let verticalBarPos = Math.ceil(yRatio * (totalHeight - this.table.scenegraph.height));
392
+ (0, vutils_1.isValid)(verticalBarPos) && !isNaN(verticalBarPos) || (verticalBarPos = 0);
393
+ const dy = verticalBarPos - this.table.scenegraph.proxy.deltaY - oldVerticalBarPos;
394
+ if (this.table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.SCROLL, {
395
395
  event: void 0,
396
- scrollTop: this.scroll.verticalBarPos,
396
+ scrollTop: verticalBarPos - this.table.scenegraph.proxy.deltaY,
397
397
  scrollLeft: this.scroll.horizontalBarPos,
398
398
  scrollHeight: null === (_a = this.table.theme.scrollStyle) || void 0 === _a ? void 0 : _a.width,
399
399
  scrollWidth: null === (_b = this.table.theme.scrollStyle) || void 0 === _b ? void 0 : _b.width,
400
400
  viewHeight: this.table.tableNoFrameHeight,
401
401
  viewWidth: this.table.tableNoFrameWidth,
402
402
  scrollDirection: "vertical",
403
- scrollRatioY: yRatio
404
- }), oldVerticalBarPos !== this.scroll.verticalBarPos && this.checkVerticalScrollBarEnd();
403
+ scrollRatioY: yRatio,
404
+ dy: dy
405
+ }).some((value => !1 === value))) {
406
+ const yRatio = this.scroll.verticalBarPos / (totalHeight - this.table.scenegraph.height);
407
+ this.table.scenegraph.component.updateVerticalScrollBarPos(yRatio);
408
+ } else this.scroll.verticalBarPos = verticalBarPos, this.table.scenegraph.setY(-this.scroll.verticalBarPos, 1 === yRatio),
409
+ this.scroll.verticalBarPos -= this.table.scenegraph.proxy.deltaY, this.table.scenegraph.proxy.deltaY = 0,
410
+ this.updateHoverPos(-1, -1), oldVerticalBarPos !== this.scroll.verticalBarPos && this.checkVerticalScrollBarEnd();
405
411
  }
406
412
  updateHorizontalScrollBar(xRatio) {
407
413
  var _a, _b;
408
414
  const totalWidth = this.table.getAllColsWidth(), oldHorizontalBarPos = this.scroll.horizontalBarPos;
409
- this.scroll.horizontalBarPos = Math.ceil(xRatio * (totalWidth - this.table.scenegraph.width)),
410
- (0, vutils_1.isValid)(this.scroll.horizontalBarPos) && !isNaN(this.scroll.horizontalBarPos) || (this.scroll.horizontalBarPos = 0),
411
- this.table.scenegraph.setX(-this.scroll.horizontalBarPos, 1 === xRatio), this.scroll.horizontalBarPos -= this.table.scenegraph.proxy.deltaX,
412
- this.table.scenegraph.proxy.deltaX = 0, this.updateHoverPos(-1, -1), this.table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.SCROLL, {
415
+ let horizontalBarPos = Math.ceil(xRatio * (totalWidth - this.table.scenegraph.width));
416
+ (0, vutils_1.isValid)(horizontalBarPos) && !isNaN(horizontalBarPos) || (horizontalBarPos = 0);
417
+ const dx = horizontalBarPos - this.table.scenegraph.proxy.deltaX - oldHorizontalBarPos;
418
+ if (this.table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.SCROLL, {
413
419
  event: void 0,
414
420
  scrollTop: this.scroll.verticalBarPos,
415
- scrollLeft: this.scroll.horizontalBarPos,
421
+ scrollLeft: horizontalBarPos - this.table.scenegraph.proxy.deltaX,
416
422
  scrollHeight: null === (_a = this.table.theme.scrollStyle) || void 0 === _a ? void 0 : _a.width,
417
423
  scrollWidth: null === (_b = this.table.theme.scrollStyle) || void 0 === _b ? void 0 : _b.width,
418
424
  viewHeight: this.table.tableNoFrameHeight,
419
425
  viewWidth: this.table.tableNoFrameWidth,
420
426
  scrollDirection: "horizontal",
421
- scrollRatioX: xRatio
422
- }), oldHorizontalBarPos !== this.scroll.horizontalBarPos && this.checkHorizontalScrollBarEnd();
427
+ scrollRatioX: xRatio,
428
+ dx: dx
429
+ }).some((value => !1 === value))) {
430
+ const xRatio = this.scroll.horizontalBarPos / (totalWidth - this.table.scenegraph.width);
431
+ this.table.scenegraph.component.updateHorizontalScrollBarPos(xRatio);
432
+ } else this.scroll.horizontalBarPos = horizontalBarPos, this.table.scenegraph.setX(-this.scroll.horizontalBarPos, 1 === xRatio),
433
+ this.scroll.horizontalBarPos -= this.table.scenegraph.proxy.deltaX, this.table.scenegraph.proxy.deltaX = 0,
434
+ this.updateHoverPos(-1, -1), oldHorizontalBarPos !== this.scroll.horizontalBarPos && this.checkHorizontalScrollBarEnd();
423
435
  }
424
436
  setScrollTop(top, event, triggerEvent = !0) {
425
- var _a, _b, _c;
437
+ var _a, _b, _c, _d, _e;
426
438
  const totalHeight = this.table.getAllRowsHeight(), sizeTolerance = (null === (_a = this.table.options.customConfig) || void 0 === _a ? void 0 : _a._disableColumnAndRowSizeRound) ? 1 : 0;
427
439
  top = Math.max(0, Math.min(top, totalHeight - this.table.scenegraph.height - sizeTolerance)),
428
- ((top = Math.ceil(top)) !== this.scroll.verticalBarPos || this.table.isPivotChart()) && this.updateHoverPos(-1, -1);
429
- const oldVerticalBarPos = this.scroll.verticalBarPos;
440
+ top = Math.ceil(top);
441
+ const oldVerticalBarPos = this.scroll.verticalBarPos, yRatio = top / (totalHeight - this.table.scenegraph.height);
442
+ if ((oldVerticalBarPos !== top || !0 === (null === (_c = null === (_b = this.table.options) || void 0 === _b ? void 0 : _b.customConfig) || void 0 === _c ? void 0 : _c.scrollEventAlwaysTrigger)) && triggerEvent) {
443
+ let verticalBarPos = top;
444
+ (0, vutils_1.isValid)(verticalBarPos) && !isNaN(verticalBarPos) || (verticalBarPos = 0);
445
+ const dy = verticalBarPos - oldVerticalBarPos;
446
+ if (this.table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.SCROLL, {
447
+ event: null == event ? void 0 : event.nativeEvent,
448
+ scrollTop: verticalBarPos,
449
+ scrollLeft: this.scroll.horizontalBarPos,
450
+ scrollHeight: null === (_d = this.table.theme.scrollStyle) || void 0 === _d ? void 0 : _d.width,
451
+ scrollWidth: null === (_e = this.table.theme.scrollStyle) || void 0 === _e ? void 0 : _e.width,
452
+ viewHeight: this.table.tableNoFrameHeight,
453
+ viewWidth: this.table.tableNoFrameWidth,
454
+ scrollDirection: "vertical",
455
+ scrollRatioY: yRatio,
456
+ dy: dy
457
+ }).some((value => !1 === value))) {
458
+ const yRatio = this.scroll.verticalBarPos / (totalHeight - this.table.scenegraph.height);
459
+ return void this.table.scenegraph.component.updateVerticalScrollBarPos(yRatio);
460
+ }
461
+ }
462
+ (top !== this.scroll.verticalBarPos || this.table.isPivotChart()) && this.updateHoverPos(-1, -1),
430
463
  this.scroll.verticalBarPos = top, (0, vutils_1.isValid)(this.scroll.verticalBarPos) && !isNaN(this.scroll.verticalBarPos) || (this.scroll.verticalBarPos = 0),
431
- this.table.scenegraph.setY(-top);
432
- const yRatio = top / (totalHeight - this.table.scenegraph.height);
433
- this.table.scenegraph.component.updateVerticalScrollBarPos(yRatio), oldVerticalBarPos !== top && triggerEvent && (this.table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.SCROLL, {
434
- event: null == event ? void 0 : event.nativeEvent,
435
- scrollTop: this.scroll.verticalBarPos,
436
- scrollLeft: this.scroll.horizontalBarPos,
437
- scrollHeight: null === (_b = this.table.theme.scrollStyle) || void 0 === _b ? void 0 : _b.width,
438
- scrollWidth: null === (_c = this.table.theme.scrollStyle) || void 0 === _c ? void 0 : _c.width,
439
- viewHeight: this.table.tableNoFrameHeight,
440
- viewWidth: this.table.tableNoFrameWidth,
441
- scrollDirection: "vertical",
442
- scrollRatioY: yRatio
443
- }), this.checkVerticalScrollBarEnd());
464
+ this.table.scenegraph.setY(-top), this.table.scenegraph.component.updateVerticalScrollBarPos(yRatio),
465
+ oldVerticalBarPos !== top && triggerEvent && this.checkVerticalScrollBarEnd();
444
466
  }
445
467
  setScrollLeft(left, event, triggerEvent = !0) {
446
- var _a, _b, _c;
468
+ var _a, _b, _c, _d, _e;
447
469
  this.table.scrollLeft;
448
470
  const totalWidth = this.table.getAllColsWidth(), sizeTolerance = (this.table.getFrozenColsWidth(),
449
471
  (null === (_a = this.table.options.customConfig) || void 0 === _a ? void 0 : _a._disableColumnAndRowSizeRound) ? 1 : 0);
450
472
  left = Math.max(0, Math.min(left, totalWidth - this.table.scenegraph.width - sizeTolerance)),
451
- (left = Math.ceil(left)) !== this.scroll.horizontalBarPos && this.updateHoverPos(-1, -1);
452
- const oldHorizontalBarPos = this.scroll.horizontalBarPos;
453
- this.scroll.horizontalBarPos = left, (0, vutils_1.isValid)(this.scroll.horizontalBarPos) && !isNaN(this.scroll.horizontalBarPos) || (this.scroll.horizontalBarPos = 0),
454
- this.table.scenegraph.setX(-left);
455
- const xRatio = left / (totalWidth - this.table.scenegraph.width);
456
- this.table.scenegraph.component.updateHorizontalScrollBarPos(xRatio), oldHorizontalBarPos !== left && triggerEvent && (this.table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.SCROLL, {
457
- event: null == event ? void 0 : event.nativeEvent,
458
- scrollTop: this.scroll.verticalBarPos,
459
- scrollLeft: this.scroll.horizontalBarPos,
460
- scrollHeight: null === (_b = this.table.theme.scrollStyle) || void 0 === _b ? void 0 : _b.width,
461
- scrollWidth: null === (_c = this.table.theme.scrollStyle) || void 0 === _c ? void 0 : _c.width,
462
- viewHeight: this.table.tableNoFrameHeight,
463
- viewWidth: this.table.tableNoFrameWidth,
464
- scrollDirection: "horizontal",
465
- scrollRatioX: xRatio
466
- }), this.checkHorizontalScrollBarEnd());
473
+ left = Math.ceil(left);
474
+ const oldHorizontalBarPos = this.scroll.horizontalBarPos, xRatio = left / (totalWidth - this.table.scenegraph.width);
475
+ if ((oldHorizontalBarPos !== left || !0 === (null === (_c = null === (_b = this.table.options) || void 0 === _b ? void 0 : _b.customConfig) || void 0 === _c ? void 0 : _c.scrollEventAlwaysTrigger)) && triggerEvent) {
476
+ let horizontalBarPos = left;
477
+ (0, vutils_1.isValid)(horizontalBarPos) && !isNaN(horizontalBarPos) || (horizontalBarPos = 0);
478
+ const dx = horizontalBarPos - oldHorizontalBarPos;
479
+ if (this.table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.SCROLL, {
480
+ event: null == event ? void 0 : event.nativeEvent,
481
+ scrollTop: this.scroll.verticalBarPos,
482
+ scrollLeft: horizontalBarPos,
483
+ scrollHeight: null === (_d = this.table.theme.scrollStyle) || void 0 === _d ? void 0 : _d.width,
484
+ scrollWidth: null === (_e = this.table.theme.scrollStyle) || void 0 === _e ? void 0 : _e.width,
485
+ viewHeight: this.table.tableNoFrameHeight,
486
+ viewWidth: this.table.tableNoFrameWidth,
487
+ scrollDirection: "horizontal",
488
+ scrollRatioX: xRatio,
489
+ dx: dx
490
+ }).some((value => !1 === value))) {
491
+ const xRatio = this.scroll.horizontalBarPos / (totalWidth - this.table.scenegraph.width);
492
+ return void this.table.scenegraph.component.updateHorizontalScrollBarPos(xRatio);
493
+ }
494
+ }
495
+ left !== this.scroll.horizontalBarPos && this.updateHoverPos(-1, -1), this.scroll.horizontalBarPos = left,
496
+ (0, vutils_1.isValid)(this.scroll.horizontalBarPos) && !isNaN(this.scroll.horizontalBarPos) || (this.scroll.horizontalBarPos = 0),
497
+ this.table.scenegraph.setX(-left), this.table.scenegraph.component.updateHorizontalScrollBarPos(xRatio),
498
+ oldHorizontalBarPos !== left && triggerEvent && this.checkHorizontalScrollBarEnd();
467
499
  }
468
500
  hideVerticalScrollBar() {
469
501
  this.table.scenegraph.component.hideVerticalScrollBar();