handsontable 14.5.0-next-ede811d-20240717 → 14.5.0-next-7541a88-20240725

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.js +126 -0
  2. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs +122 -0
  3. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.js +119 -0
  4. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs +115 -0
  5. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.js +125 -0
  6. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs +121 -0
  7. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.js +118 -0
  8. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs +114 -0
  9. package/3rdparty/walkontable/src/calculator/{renderAllColumns.js → calculationType/renderedAllColumns.js} +32 -9
  10. package/3rdparty/walkontable/src/calculator/{renderAllColumns.mjs → calculationType/renderedAllColumns.mjs} +31 -8
  11. package/3rdparty/walkontable/src/calculator/{renderAllRows.js → calculationType/renderedAllRows.js} +32 -9
  12. package/3rdparty/walkontable/src/calculator/{renderAllRows.mjs → calculationType/renderedAllRows.mjs} +31 -8
  13. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +37 -0
  14. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +33 -0
  15. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +37 -0
  16. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +33 -0
  17. package/3rdparty/walkontable/src/calculator/index.js +18 -17
  18. package/3rdparty/walkontable/src/calculator/index.mjs +11 -6
  19. package/3rdparty/walkontable/src/calculator/viewportBase.js +92 -0
  20. package/3rdparty/walkontable/src/calculator/viewportBase.mjs +88 -0
  21. package/3rdparty/walkontable/src/calculator/viewportColumns.js +51 -145
  22. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +51 -145
  23. package/3rdparty/walkontable/src/calculator/viewportRows.js +59 -141
  24. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +59 -141
  25. package/3rdparty/walkontable/src/index.js +2 -0
  26. package/3rdparty/walkontable/src/index.mjs +2 -2
  27. package/3rdparty/walkontable/src/table.js +5 -11
  28. package/3rdparty/walkontable/src/table.mjs +5 -11
  29. package/3rdparty/walkontable/src/utils/column.js +2 -1
  30. package/3rdparty/walkontable/src/utils/column.mjs +2 -1
  31. package/3rdparty/walkontable/src/utils/columnStretching.js +10 -19
  32. package/3rdparty/walkontable/src/utils/columnStretching.mjs +10 -19
  33. package/3rdparty/walkontable/src/viewport.js +35 -46
  34. package/3rdparty/walkontable/src/viewport.mjs +36 -47
  35. package/base.js +2 -2
  36. package/base.mjs +2 -2
  37. package/core.js +1 -1
  38. package/core.mjs +2 -2
  39. package/dist/handsontable.css +2 -2
  40. package/dist/handsontable.full.css +2 -2
  41. package/dist/handsontable.full.js +2494 -1961
  42. package/dist/handsontable.full.min.css +2 -2
  43. package/dist/handsontable.full.min.js +148 -148
  44. package/dist/handsontable.js +2495 -1962
  45. package/dist/handsontable.min.css +2 -2
  46. package/dist/handsontable.min.js +32 -32
  47. package/helpers/mixed.js +1 -1
  48. package/helpers/mixed.mjs +1 -1
  49. package/package.json +1 -1
  50. package/plugins/autoColumnSize/autoColumnSize.js +1 -1
  51. package/plugins/autoColumnSize/autoColumnSize.mjs +2 -2
  52. package/plugins/manualRowResize/manualRowResize.js +1 -1
  53. package/plugins/manualRowResize/manualRowResize.mjs +2 -2
  54. package/3rdparty/walkontable/src/calculator/constants.js +0 -26
  55. package/3rdparty/walkontable/src/calculator/constants.mjs +0 -23
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/es.array.at.js");
6
+ require("core-js/modules/es.string.at-alternative.js");
7
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ /**
11
+ * @class FullyVisibleColumnsCalculationType
12
+ */
13
+ class FullyVisibleColumnsCalculationType {
14
+ constructor() {
15
+ /**
16
+ * Total number of fully visible columns in the viewport.
17
+ *
18
+ * @type {number}
19
+ */
20
+ _defineProperty(this, "count", 0);
21
+ /**
22
+ * The column index of the first fully visible column in the viewport.
23
+ *
24
+ * @type {number|null}
25
+ */
26
+ _defineProperty(this, "startColumn", null);
27
+ /**
28
+ * The column index of the last fully visible column in the viewport.
29
+ *
30
+ * @type {number|null}
31
+ */
32
+ _defineProperty(this, "endColumn", null);
33
+ /**
34
+ * Position of the first fully visible column (in px).
35
+ *
36
+ * @type {number|null}
37
+ */
38
+ _defineProperty(this, "startPosition", null);
39
+ /**
40
+ * Determines if the viewport is visible in the trimming container.
41
+ *
42
+ * @type {boolean}
43
+ */
44
+ _defineProperty(this, "isVisibleInTrimmingContainer", false);
45
+ }
46
+ /**
47
+ * Initializes the calculation.
48
+ */
49
+ initialize() {}
50
+
51
+ /**
52
+ * Processes the column.
53
+ *
54
+ * @param {number} column The column index.
55
+ * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.
56
+ */
57
+ process(column, viewportCalculator) {
58
+ const {
59
+ totalCalculatedWidth,
60
+ zeroBasedScrollOffset,
61
+ viewportWidth,
62
+ columnWidth
63
+ } = viewportCalculator;
64
+ const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
65
+ if (totalCalculatedWidth >= zeroBasedScrollOffset && totalCalculatedWidth + columnWidth <= zeroBasedScrollOffset + compensatedViewportWidth) {
66
+ if (this.startColumn === null || this.startColumn === undefined) {
67
+ this.startColumn = column;
68
+ }
69
+ this.endColumn = column;
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Finalizes the calculation.
75
+ *
76
+ * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.
77
+ */
78
+ finalize(viewportCalculator) {
79
+ var _startPositions$this$;
80
+ const {
81
+ scrollOffset,
82
+ viewportWidth,
83
+ inlineStartOffset,
84
+ zeroBasedScrollOffset,
85
+ totalColumns,
86
+ needReverse,
87
+ startPositions,
88
+ columnWidth
89
+ } = viewportCalculator;
90
+
91
+ // If the estimation has reached the last column and there is still some space available in the viewport,
92
+ // we need to render in reverse in order to fill the whole viewport with columns
93
+ if (this.endColumn === totalColumns - 1 && needReverse) {
94
+ this.startColumn = this.endColumn;
95
+ while (this.startColumn > 0) {
96
+ const calculatedViewportHeight = startPositions[this.endColumn] + columnWidth - startPositions[this.startColumn - 1];
97
+ if (calculatedViewportHeight <= viewportWidth) {
98
+ this.startColumn -= 1;
99
+ }
100
+ if (calculatedViewportHeight >= viewportWidth) {
101
+ break;
102
+ }
103
+ }
104
+ }
105
+ this.startPosition = (_startPositions$this$ = startPositions[this.startColumn]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;
106
+ const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
107
+ const mostRightScrollOffset = scrollOffset + viewportWidth - compensatedViewportWidth;
108
+ const inlineStartColumnOffset = this.startColumn === null ? 0 : viewportCalculator.getColumnWidth(this.startColumn);
109
+ if (
110
+ // the table is to the left of the viewport
111
+ mostRightScrollOffset < -1 * inlineStartOffset || scrollOffset > startPositions.at(-1) ||
112
+ // the table is to the right of the viewport
113
+ -1 * scrollOffset - viewportWidth > -1 * inlineStartColumnOffset) {
114
+ this.isVisibleInTrimmingContainer = false;
115
+ } else {
116
+ this.isVisibleInTrimmingContainer = true;
117
+ }
118
+ if (totalColumns < this.endColumn) {
119
+ this.endColumn = totalColumns - 1;
120
+ }
121
+ if (this.startColumn !== null) {
122
+ this.count = this.endColumn - this.startColumn + 1;
123
+ }
124
+ }
125
+ }
126
+ exports.FullyVisibleColumnsCalculationType = FullyVisibleColumnsCalculationType;
@@ -0,0 +1,122 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ import "core-js/modules/es.array.at.js";
3
+ import "core-js/modules/es.string.at-alternative.js";
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ /**
8
+ * @class FullyVisibleColumnsCalculationType
9
+ */
10
+ export class FullyVisibleColumnsCalculationType {
11
+ constructor() {
12
+ /**
13
+ * Total number of fully visible columns in the viewport.
14
+ *
15
+ * @type {number}
16
+ */
17
+ _defineProperty(this, "count", 0);
18
+ /**
19
+ * The column index of the first fully visible column in the viewport.
20
+ *
21
+ * @type {number|null}
22
+ */
23
+ _defineProperty(this, "startColumn", null);
24
+ /**
25
+ * The column index of the last fully visible column in the viewport.
26
+ *
27
+ * @type {number|null}
28
+ */
29
+ _defineProperty(this, "endColumn", null);
30
+ /**
31
+ * Position of the first fully visible column (in px).
32
+ *
33
+ * @type {number|null}
34
+ */
35
+ _defineProperty(this, "startPosition", null);
36
+ /**
37
+ * Determines if the viewport is visible in the trimming container.
38
+ *
39
+ * @type {boolean}
40
+ */
41
+ _defineProperty(this, "isVisibleInTrimmingContainer", false);
42
+ }
43
+ /**
44
+ * Initializes the calculation.
45
+ */
46
+ initialize() {}
47
+
48
+ /**
49
+ * Processes the column.
50
+ *
51
+ * @param {number} column The column index.
52
+ * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.
53
+ */
54
+ process(column, viewportCalculator) {
55
+ const {
56
+ totalCalculatedWidth,
57
+ zeroBasedScrollOffset,
58
+ viewportWidth,
59
+ columnWidth
60
+ } = viewportCalculator;
61
+ const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
62
+ if (totalCalculatedWidth >= zeroBasedScrollOffset && totalCalculatedWidth + columnWidth <= zeroBasedScrollOffset + compensatedViewportWidth) {
63
+ if (this.startColumn === null || this.startColumn === undefined) {
64
+ this.startColumn = column;
65
+ }
66
+ this.endColumn = column;
67
+ }
68
+ }
69
+
70
+ /**
71
+ * Finalizes the calculation.
72
+ *
73
+ * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.
74
+ */
75
+ finalize(viewportCalculator) {
76
+ var _startPositions$this$;
77
+ const {
78
+ scrollOffset,
79
+ viewportWidth,
80
+ inlineStartOffset,
81
+ zeroBasedScrollOffset,
82
+ totalColumns,
83
+ needReverse,
84
+ startPositions,
85
+ columnWidth
86
+ } = viewportCalculator;
87
+
88
+ // If the estimation has reached the last column and there is still some space available in the viewport,
89
+ // we need to render in reverse in order to fill the whole viewport with columns
90
+ if (this.endColumn === totalColumns - 1 && needReverse) {
91
+ this.startColumn = this.endColumn;
92
+ while (this.startColumn > 0) {
93
+ const calculatedViewportHeight = startPositions[this.endColumn] + columnWidth - startPositions[this.startColumn - 1];
94
+ if (calculatedViewportHeight <= viewportWidth) {
95
+ this.startColumn -= 1;
96
+ }
97
+ if (calculatedViewportHeight >= viewportWidth) {
98
+ break;
99
+ }
100
+ }
101
+ }
102
+ this.startPosition = (_startPositions$this$ = startPositions[this.startColumn]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;
103
+ const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
104
+ const mostRightScrollOffset = scrollOffset + viewportWidth - compensatedViewportWidth;
105
+ const inlineStartColumnOffset = this.startColumn === null ? 0 : viewportCalculator.getColumnWidth(this.startColumn);
106
+ if (
107
+ // the table is to the left of the viewport
108
+ mostRightScrollOffset < -1 * inlineStartOffset || scrollOffset > startPositions.at(-1) ||
109
+ // the table is to the right of the viewport
110
+ -1 * scrollOffset - viewportWidth > -1 * inlineStartColumnOffset) {
111
+ this.isVisibleInTrimmingContainer = false;
112
+ } else {
113
+ this.isVisibleInTrimmingContainer = true;
114
+ }
115
+ if (totalColumns < this.endColumn) {
116
+ this.endColumn = totalColumns - 1;
117
+ }
118
+ if (this.startColumn !== null) {
119
+ this.count = this.endColumn - this.startColumn + 1;
120
+ }
121
+ }
122
+ }
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/es.array.at.js");
6
+ require("core-js/modules/es.string.at-alternative.js");
7
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ /**
11
+ * @class FullyVisibleRowsCalculationType
12
+ */
13
+ class FullyVisibleRowsCalculationType {
14
+ constructor() {
15
+ /**
16
+ * Total number of fully visible rows in the viewport.
17
+ *
18
+ * @type {number}
19
+ */
20
+ _defineProperty(this, "count", 0);
21
+ /**
22
+ * The row index of the first fully visible row in the viewport.
23
+ *
24
+ * @type {number|null}
25
+ */
26
+ _defineProperty(this, "startRow", null);
27
+ /**
28
+ * The row index of the last fully visible row in the viewport.
29
+ *
30
+ * @type {number|null}
31
+ */
32
+ _defineProperty(this, "endRow", null);
33
+ /**
34
+ * Position of the first fully visible row (in px).
35
+ *
36
+ * @type {number|null}
37
+ */
38
+ _defineProperty(this, "startPosition", null);
39
+ /**
40
+ * Determines if the viewport is visible in the trimming container.
41
+ *
42
+ * @type {boolean}
43
+ */
44
+ _defineProperty(this, "isVisibleInTrimmingContainer", false);
45
+ }
46
+ /**
47
+ * Initializes the calculation.
48
+ */
49
+ initialize() {}
50
+
51
+ /**
52
+ * Processes the row.
53
+ *
54
+ * @param {number} row The row index.
55
+ * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.
56
+ */
57
+ process(row, viewportCalculator) {
58
+ const {
59
+ totalCalculatedHeight,
60
+ zeroBasedScrollOffset,
61
+ innerViewportHeight,
62
+ rowHeight
63
+ } = viewportCalculator;
64
+ if (totalCalculatedHeight >= zeroBasedScrollOffset && totalCalculatedHeight + rowHeight <= innerViewportHeight) {
65
+ if (this.startRow === null) {
66
+ this.startRow = row;
67
+ }
68
+ this.endRow = row;
69
+ }
70
+ }
71
+
72
+ /**
73
+ * Finalizes the calculation.
74
+ *
75
+ * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.
76
+ */
77
+ finalize(viewportCalculator) {
78
+ var _startPositions$this$;
79
+ const {
80
+ scrollOffset,
81
+ viewportHeight,
82
+ horizontalScrollbarHeight,
83
+ totalRows,
84
+ needReverse,
85
+ startPositions,
86
+ rowHeight
87
+ } = viewportCalculator;
88
+
89
+ // If the estimation has reached the last row and there is still some space available in the viewport,
90
+ // we need to render in reverse in order to fill the whole viewport with rows
91
+ if (this.endRow === totalRows - 1 && needReverse) {
92
+ this.startRow = this.endRow;
93
+ while (this.startRow > 0) {
94
+ const calculatedViewportHeight = startPositions[this.endRow] + rowHeight - startPositions[this.startRow - 1];
95
+ if (calculatedViewportHeight <= viewportHeight - horizontalScrollbarHeight) {
96
+ this.startRow -= 1;
97
+ }
98
+ if (calculatedViewportHeight >= viewportHeight - horizontalScrollbarHeight) {
99
+ break;
100
+ }
101
+ }
102
+ }
103
+ this.startPosition = (_startPositions$this$ = startPositions[this.startRow]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;
104
+ const mostBottomScrollOffset = scrollOffset + viewportHeight - horizontalScrollbarHeight;
105
+ const topRowOffset = this.startRow === null ? 0 : viewportCalculator.getRowHeight(this.startRow);
106
+ if (mostBottomScrollOffset < topRowOffset || scrollOffset > startPositions.at(-1)) {
107
+ this.isVisibleInTrimmingContainer = false;
108
+ } else {
109
+ this.isVisibleInTrimmingContainer = true;
110
+ }
111
+ if (totalRows < this.endRow) {
112
+ this.endRow = totalRows - 1;
113
+ }
114
+ if (this.startRow !== null) {
115
+ this.count = this.endRow - this.startRow + 1;
116
+ }
117
+ }
118
+ }
119
+ exports.FullyVisibleRowsCalculationType = FullyVisibleRowsCalculationType;
@@ -0,0 +1,115 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ import "core-js/modules/es.array.at.js";
3
+ import "core-js/modules/es.string.at-alternative.js";
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ /**
8
+ * @class FullyVisibleRowsCalculationType
9
+ */
10
+ export class FullyVisibleRowsCalculationType {
11
+ constructor() {
12
+ /**
13
+ * Total number of fully visible rows in the viewport.
14
+ *
15
+ * @type {number}
16
+ */
17
+ _defineProperty(this, "count", 0);
18
+ /**
19
+ * The row index of the first fully visible row in the viewport.
20
+ *
21
+ * @type {number|null}
22
+ */
23
+ _defineProperty(this, "startRow", null);
24
+ /**
25
+ * The row index of the last fully visible row in the viewport.
26
+ *
27
+ * @type {number|null}
28
+ */
29
+ _defineProperty(this, "endRow", null);
30
+ /**
31
+ * Position of the first fully visible row (in px).
32
+ *
33
+ * @type {number|null}
34
+ */
35
+ _defineProperty(this, "startPosition", null);
36
+ /**
37
+ * Determines if the viewport is visible in the trimming container.
38
+ *
39
+ * @type {boolean}
40
+ */
41
+ _defineProperty(this, "isVisibleInTrimmingContainer", false);
42
+ }
43
+ /**
44
+ * Initializes the calculation.
45
+ */
46
+ initialize() {}
47
+
48
+ /**
49
+ * Processes the row.
50
+ *
51
+ * @param {number} row The row index.
52
+ * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.
53
+ */
54
+ process(row, viewportCalculator) {
55
+ const {
56
+ totalCalculatedHeight,
57
+ zeroBasedScrollOffset,
58
+ innerViewportHeight,
59
+ rowHeight
60
+ } = viewportCalculator;
61
+ if (totalCalculatedHeight >= zeroBasedScrollOffset && totalCalculatedHeight + rowHeight <= innerViewportHeight) {
62
+ if (this.startRow === null) {
63
+ this.startRow = row;
64
+ }
65
+ this.endRow = row;
66
+ }
67
+ }
68
+
69
+ /**
70
+ * Finalizes the calculation.
71
+ *
72
+ * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.
73
+ */
74
+ finalize(viewportCalculator) {
75
+ var _startPositions$this$;
76
+ const {
77
+ scrollOffset,
78
+ viewportHeight,
79
+ horizontalScrollbarHeight,
80
+ totalRows,
81
+ needReverse,
82
+ startPositions,
83
+ rowHeight
84
+ } = viewportCalculator;
85
+
86
+ // If the estimation has reached the last row and there is still some space available in the viewport,
87
+ // we need to render in reverse in order to fill the whole viewport with rows
88
+ if (this.endRow === totalRows - 1 && needReverse) {
89
+ this.startRow = this.endRow;
90
+ while (this.startRow > 0) {
91
+ const calculatedViewportHeight = startPositions[this.endRow] + rowHeight - startPositions[this.startRow - 1];
92
+ if (calculatedViewportHeight <= viewportHeight - horizontalScrollbarHeight) {
93
+ this.startRow -= 1;
94
+ }
95
+ if (calculatedViewportHeight >= viewportHeight - horizontalScrollbarHeight) {
96
+ break;
97
+ }
98
+ }
99
+ }
100
+ this.startPosition = (_startPositions$this$ = startPositions[this.startRow]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;
101
+ const mostBottomScrollOffset = scrollOffset + viewportHeight - horizontalScrollbarHeight;
102
+ const topRowOffset = this.startRow === null ? 0 : viewportCalculator.getRowHeight(this.startRow);
103
+ if (mostBottomScrollOffset < topRowOffset || scrollOffset > startPositions.at(-1)) {
104
+ this.isVisibleInTrimmingContainer = false;
105
+ } else {
106
+ this.isVisibleInTrimmingContainer = true;
107
+ }
108
+ if (totalRows < this.endRow) {
109
+ this.endRow = totalRows - 1;
110
+ }
111
+ if (this.startRow !== null) {
112
+ this.count = this.endRow - this.startRow + 1;
113
+ }
114
+ }
115
+ }
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/es.array.at.js");
6
+ require("core-js/modules/es.string.at-alternative.js");
7
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ /**
11
+ * @class PartiallyVisibleColumnsCalculationType
12
+ */
13
+ class PartiallyVisibleColumnsCalculationType {
14
+ constructor() {
15
+ /**
16
+ * Total number of partially visible columns in the viewport.
17
+ *
18
+ * @type {number}
19
+ */
20
+ _defineProperty(this, "count", 0);
21
+ /**
22
+ * The column index of the first partially visible column in the viewport.
23
+ *
24
+ * @type {number|null}
25
+ */
26
+ _defineProperty(this, "startColumn", null);
27
+ /**
28
+ * The column index of the last partially visible column in the viewport.
29
+ *
30
+ * @type {number|null}
31
+ */
32
+ _defineProperty(this, "endColumn", null);
33
+ /**
34
+ * Position of the first partially visible column (in px).
35
+ *
36
+ * @type {number|null}
37
+ */
38
+ _defineProperty(this, "startPosition", null);
39
+ /**
40
+ * Determines if the viewport is visible in the trimming container.
41
+ *
42
+ * @type {boolean}
43
+ */
44
+ _defineProperty(this, "isVisibleInTrimmingContainer", false);
45
+ }
46
+ /**
47
+ * Initializes the calculation.
48
+ */
49
+ initialize() {}
50
+
51
+ /**
52
+ * Processes the column.
53
+ *
54
+ * @param {number} column The column index.
55
+ * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.
56
+ */
57
+ process(column, viewportCalculator) {
58
+ const {
59
+ totalCalculatedWidth,
60
+ zeroBasedScrollOffset,
61
+ viewportWidth
62
+ } = viewportCalculator;
63
+ if (totalCalculatedWidth <= zeroBasedScrollOffset) {
64
+ this.startColumn = column;
65
+ }
66
+ const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
67
+ if (totalCalculatedWidth >= zeroBasedScrollOffset && totalCalculatedWidth <= zeroBasedScrollOffset + compensatedViewportWidth) {
68
+ if (this.startColumn === null || this.startColumn === undefined) {
69
+ this.startColumn = column;
70
+ }
71
+ }
72
+ this.endColumn = column;
73
+ }
74
+
75
+ /**
76
+ * Finalizes the calculation.
77
+ *
78
+ * @param {ViewportColumnsCalculator} viewportCalculator The viewport calculator object.
79
+ */
80
+ finalize(viewportCalculator) {
81
+ var _startPositions$this$;
82
+ const {
83
+ scrollOffset,
84
+ viewportWidth,
85
+ inlineStartOffset,
86
+ zeroBasedScrollOffset,
87
+ totalColumns,
88
+ needReverse,
89
+ startPositions,
90
+ columnWidth
91
+ } = viewportCalculator;
92
+
93
+ // If the estimation has reached the last column and there is still some space available in the viewport,
94
+ // we need to render in reverse in order to fill the whole viewport with columns
95
+ if (this.endColumn === totalColumns - 1 && needReverse) {
96
+ this.startColumn = this.endColumn;
97
+ while (this.startColumn > 0) {
98
+ const calculatedViewportWidth = startPositions[this.endColumn] + columnWidth - startPositions[this.startColumn - 1];
99
+ this.startColumn -= 1;
100
+ if (calculatedViewportWidth > viewportWidth) {
101
+ break;
102
+ }
103
+ }
104
+ }
105
+ this.startPosition = (_startPositions$this$ = startPositions[this.startColumn]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;
106
+ const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
107
+ const mostRightScrollOffset = scrollOffset + viewportWidth - compensatedViewportWidth;
108
+ if (
109
+ // the table is to the left of the viewport
110
+ mostRightScrollOffset < -1 * inlineStartOffset || scrollOffset > startPositions.at(-1) + columnWidth ||
111
+ // the table is to the right of the viewport
112
+ -1 * scrollOffset - viewportWidth > 0) {
113
+ this.isVisibleInTrimmingContainer = false;
114
+ } else {
115
+ this.isVisibleInTrimmingContainer = true;
116
+ }
117
+ if (totalColumns < this.endColumn) {
118
+ this.endColumn = totalColumns - 1;
119
+ }
120
+ if (this.startColumn !== null) {
121
+ this.count = this.endColumn - this.startColumn + 1;
122
+ }
123
+ }
124
+ }
125
+ exports.PartiallyVisibleColumnsCalculationType = PartiallyVisibleColumnsCalculationType;