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.
- package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.js +126 -0
- package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs +122 -0
- package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.js +119 -0
- package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs +115 -0
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.js +125 -0
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs +121 -0
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.js +118 -0
- package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs +114 -0
- package/3rdparty/walkontable/src/calculator/{renderAllColumns.js → calculationType/renderedAllColumns.js} +32 -9
- package/3rdparty/walkontable/src/calculator/{renderAllColumns.mjs → calculationType/renderedAllColumns.mjs} +31 -8
- package/3rdparty/walkontable/src/calculator/{renderAllRows.js → calculationType/renderedAllRows.js} +32 -9
- package/3rdparty/walkontable/src/calculator/{renderAllRows.mjs → calculationType/renderedAllRows.mjs} +31 -8
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +37 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +33 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +37 -0
- package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +33 -0
- package/3rdparty/walkontable/src/calculator/index.js +18 -17
- package/3rdparty/walkontable/src/calculator/index.mjs +11 -6
- package/3rdparty/walkontable/src/calculator/viewportBase.js +92 -0
- package/3rdparty/walkontable/src/calculator/viewportBase.mjs +88 -0
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +51 -145
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +51 -145
- package/3rdparty/walkontable/src/calculator/viewportRows.js +59 -141
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +59 -141
- package/3rdparty/walkontable/src/index.js +2 -0
- package/3rdparty/walkontable/src/index.mjs +2 -2
- package/3rdparty/walkontable/src/table.js +5 -11
- package/3rdparty/walkontable/src/table.mjs +5 -11
- package/3rdparty/walkontable/src/utils/column.js +2 -1
- package/3rdparty/walkontable/src/utils/column.mjs +2 -1
- package/3rdparty/walkontable/src/utils/columnStretching.js +10 -19
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +10 -19
- package/3rdparty/walkontable/src/viewport.js +35 -46
- package/3rdparty/walkontable/src/viewport.mjs +36 -47
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +1 -1
- package/core.mjs +2 -2
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +2494 -1961
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +148 -148
- package/dist/handsontable.js +2495 -1962
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +32 -32
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/plugins/autoColumnSize/autoColumnSize.js +1 -1
- package/plugins/autoColumnSize/autoColumnSize.mjs +2 -2
- package/plugins/manualRowResize/manualRowResize.js +1 -1
- package/plugins/manualRowResize/manualRowResize.mjs +2 -2
- package/3rdparty/walkontable/src/calculator/constants.js +0 -26
- 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;
|