handsontable 0.0.0-next-31297ac-20231204 → 0.0.0-next-d76be4f-20231206
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handsontable might be problematic. Click here for more details.
- package/3rdparty/walkontable/src/calculator/index.js +11 -6
- package/3rdparty/walkontable/src/calculator/index.mjs +5 -3
- package/3rdparty/walkontable/src/calculator/renderAllColumns.js +50 -0
- package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +46 -0
- package/3rdparty/walkontable/src/calculator/renderAllRows.js +50 -0
- package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +46 -0
- package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -122
- package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +2 -124
- package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -1
- package/3rdparty/walkontable/src/calculator/viewportRows.mjs +2 -3
- package/3rdparty/walkontable/src/index.js +3 -4
- package/3rdparty/walkontable/src/index.mjs +1 -2
- package/3rdparty/walkontable/src/renderer/colGroup.js +10 -0
- package/3rdparty/walkontable/src/renderer/colGroup.mjs +10 -0
- package/3rdparty/walkontable/src/renderer/rows.js +4 -3
- package/3rdparty/walkontable/src/renderer/rows.mjs +4 -3
- package/3rdparty/walkontable/src/settings.js +2 -0
- package/3rdparty/walkontable/src/settings.mjs +2 -0
- package/3rdparty/walkontable/src/utils/column.js +27 -12
- package/3rdparty/walkontable/src/utils/column.mjs +27 -12
- package/3rdparty/walkontable/src/utils/columnStretching.js +219 -0
- package/3rdparty/walkontable/src/utils/columnStretching.mjs +215 -0
- package/3rdparty/walkontable/src/viewport.js +22 -17
- package/3rdparty/walkontable/src/viewport.mjs +23 -18
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core/focusCatcher/index.js +34 -4
- package/core/focusCatcher/index.mjs +34 -4
- package/dataMap/metaManager/metaSchema.js +28 -2
- package/dataMap/metaManager/metaSchema.mjs +28 -2
- package/dataMap/metaManager/mods/extendMetaProperties.js +12 -0
- package/dataMap/metaManager/mods/extendMetaProperties.mjs +12 -0
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +1960 -1646
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +70 -67
- package/dist/handsontable.js +1962 -1648
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +27 -24
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/settings.d.ts +1 -0
- package/tableView.js +1 -0
- package/tableView.mjs +1 -0
@@ -2,18 +2,23 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _exportNames = {
|
5
|
+
RenderAllColumnsCalculator: true,
|
6
|
+
RenderAllRowsCalculator: true,
|
5
7
|
ViewportColumnsCalculator: true,
|
6
8
|
ViewportRowsCalculator: true
|
7
9
|
};
|
8
|
-
var
|
9
|
-
exports.
|
10
|
-
var
|
11
|
-
exports.
|
10
|
+
var _renderAllColumns = require("./renderAllColumns");
|
11
|
+
exports.RenderAllColumnsCalculator = _renderAllColumns.RenderAllColumnsCalculator;
|
12
|
+
var _renderAllRows = require("./renderAllRows");
|
13
|
+
exports.RenderAllRowsCalculator = _renderAllRows.RenderAllRowsCalculator;
|
14
|
+
var _viewportColumns = require("./viewportColumns");
|
15
|
+
exports.ViewportColumnsCalculator = _viewportColumns.ViewportColumnsCalculator;
|
16
|
+
var _viewportRows = require("./viewportRows");
|
17
|
+
exports.ViewportRowsCalculator = _viewportRows.ViewportRowsCalculator;
|
12
18
|
var _constants = require("./constants");
|
13
19
|
Object.keys(_constants).forEach(function (key) {
|
14
20
|
if (key === "default" || key === "__esModule") return;
|
15
21
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
16
22
|
if (key in exports && exports[key] === _constants[key]) return;
|
17
23
|
exports[key] = _constants[key];
|
18
|
-
});
|
19
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
24
|
+
});
|
@@ -1,4 +1,6 @@
|
|
1
|
-
import
|
2
|
-
import
|
1
|
+
import { RenderAllColumnsCalculator } from "./renderAllColumns.mjs";
|
2
|
+
import { RenderAllRowsCalculator } from "./renderAllRows.mjs";
|
3
|
+
import { ViewportColumnsCalculator } from "./viewportColumns.mjs";
|
4
|
+
import { ViewportRowsCalculator } from "./viewportRows.mjs";
|
3
5
|
export * from "./constants.mjs";
|
4
|
-
export { ViewportColumnsCalculator, ViewportRowsCalculator };
|
6
|
+
export { RenderAllColumnsCalculator, RenderAllRowsCalculator, ViewportColumnsCalculator, ViewportRowsCalculator };
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
require("core-js/modules/es.error.cause.js");
|
5
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
7
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
8
|
+
/**
|
9
|
+
* @typedef {object} RenderAllColumnsCalculatorOptions
|
10
|
+
* @property {number} totalColumns Total number of columns.
|
11
|
+
*/
|
12
|
+
/**
|
13
|
+
* Holds all calculations needed to perform rendering of the all columns.
|
14
|
+
*
|
15
|
+
* @class RenderAllColumnsCalculator
|
16
|
+
*/
|
17
|
+
class RenderAllColumnsCalculator {
|
18
|
+
/**
|
19
|
+
* @param {RenderAllColumnsCalculatorOptions} options Object with all options specified for column viewport calculation.
|
20
|
+
*/
|
21
|
+
constructor(options) {
|
22
|
+
/**
|
23
|
+
* Number of rendered/visible columns.
|
24
|
+
*
|
25
|
+
* @type {number}
|
26
|
+
*/
|
27
|
+
_defineProperty(this, "count", 0);
|
28
|
+
/**
|
29
|
+
* Index of the first rendered/visible column.
|
30
|
+
*
|
31
|
+
* @type {number}
|
32
|
+
*/
|
33
|
+
_defineProperty(this, "startColumn", 0);
|
34
|
+
/**
|
35
|
+
* Index of the last rendered/visible column.
|
36
|
+
*
|
37
|
+
* @type {number}
|
38
|
+
*/
|
39
|
+
_defineProperty(this, "endColumn", 0);
|
40
|
+
/**
|
41
|
+
* Position of the first rendered/visible column (in px).
|
42
|
+
*
|
43
|
+
* @type {number}
|
44
|
+
*/
|
45
|
+
_defineProperty(this, "startPosition", 0);
|
46
|
+
this.count = options.totalColumns;
|
47
|
+
this.endColumn = this.count - 1;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
exports.RenderAllColumnsCalculator = RenderAllColumnsCalculator;
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import "core-js/modules/es.error.cause.js";
|
2
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
3
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
4
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
5
|
+
/**
|
6
|
+
* @typedef {object} RenderAllColumnsCalculatorOptions
|
7
|
+
* @property {number} totalColumns Total number of columns.
|
8
|
+
*/
|
9
|
+
/**
|
10
|
+
* Holds all calculations needed to perform rendering of the all columns.
|
11
|
+
*
|
12
|
+
* @class RenderAllColumnsCalculator
|
13
|
+
*/
|
14
|
+
export class RenderAllColumnsCalculator {
|
15
|
+
/**
|
16
|
+
* @param {RenderAllColumnsCalculatorOptions} options Object with all options specified for column viewport calculation.
|
17
|
+
*/
|
18
|
+
constructor(options) {
|
19
|
+
/**
|
20
|
+
* Number of rendered/visible columns.
|
21
|
+
*
|
22
|
+
* @type {number}
|
23
|
+
*/
|
24
|
+
_defineProperty(this, "count", 0);
|
25
|
+
/**
|
26
|
+
* Index of the first rendered/visible column.
|
27
|
+
*
|
28
|
+
* @type {number}
|
29
|
+
*/
|
30
|
+
_defineProperty(this, "startColumn", 0);
|
31
|
+
/**
|
32
|
+
* Index of the last rendered/visible column.
|
33
|
+
*
|
34
|
+
* @type {number}
|
35
|
+
*/
|
36
|
+
_defineProperty(this, "endColumn", 0);
|
37
|
+
/**
|
38
|
+
* Position of the first rendered/visible column (in px).
|
39
|
+
*
|
40
|
+
* @type {number}
|
41
|
+
*/
|
42
|
+
_defineProperty(this, "startPosition", 0);
|
43
|
+
this.count = options.totalColumns;
|
44
|
+
this.endColumn = this.count - 1;
|
45
|
+
}
|
46
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
require("core-js/modules/es.error.cause.js");
|
5
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
7
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
8
|
+
/**
|
9
|
+
* @typedef {object} RenderAllRowsCalculatorOptions
|
10
|
+
* @property {number} totalRows Total number of rows.
|
11
|
+
*/
|
12
|
+
/**
|
13
|
+
* Holds all calculations needed to perform rendering of the all rows.
|
14
|
+
*
|
15
|
+
* @class RenderAllRowsCalculator
|
16
|
+
*/
|
17
|
+
class RenderAllRowsCalculator {
|
18
|
+
/**
|
19
|
+
* @param {RenderAllRowsCalculatorOptions} options Object with all options specified for row viewport calculation.
|
20
|
+
*/
|
21
|
+
constructor(options) {
|
22
|
+
/**
|
23
|
+
* Number of rendered/visible rows.
|
24
|
+
*
|
25
|
+
* @type {number}
|
26
|
+
*/
|
27
|
+
_defineProperty(this, "count", 0);
|
28
|
+
/**
|
29
|
+
* Index of the first rendered/visible row.
|
30
|
+
*
|
31
|
+
* @type {number}
|
32
|
+
*/
|
33
|
+
_defineProperty(this, "startRow", 0);
|
34
|
+
/**
|
35
|
+
* Index of the last rendered/visible row.
|
36
|
+
*
|
37
|
+
* @type {number}
|
38
|
+
*/
|
39
|
+
_defineProperty(this, "endRow", 0);
|
40
|
+
/**
|
41
|
+
* Position of the first rendered/visible row (in px).
|
42
|
+
*
|
43
|
+
* @type {number}
|
44
|
+
*/
|
45
|
+
_defineProperty(this, "startPosition", 0);
|
46
|
+
this.count = options.totalRows;
|
47
|
+
this.endRow = this.count - 1;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
exports.RenderAllRowsCalculator = RenderAllRowsCalculator;
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import "core-js/modules/es.error.cause.js";
|
2
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
3
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
4
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
5
|
+
/**
|
6
|
+
* @typedef {object} RenderAllRowsCalculatorOptions
|
7
|
+
* @property {number} totalRows Total number of rows.
|
8
|
+
*/
|
9
|
+
/**
|
10
|
+
* Holds all calculations needed to perform rendering of the all rows.
|
11
|
+
*
|
12
|
+
* @class RenderAllRowsCalculator
|
13
|
+
*/
|
14
|
+
export class RenderAllRowsCalculator {
|
15
|
+
/**
|
16
|
+
* @param {RenderAllRowsCalculatorOptions} options Object with all options specified for row viewport calculation.
|
17
|
+
*/
|
18
|
+
constructor(options) {
|
19
|
+
/**
|
20
|
+
* Number of rendered/visible rows.
|
21
|
+
*
|
22
|
+
* @type {number}
|
23
|
+
*/
|
24
|
+
_defineProperty(this, "count", 0);
|
25
|
+
/**
|
26
|
+
* Index of the first rendered/visible row.
|
27
|
+
*
|
28
|
+
* @type {number}
|
29
|
+
*/
|
30
|
+
_defineProperty(this, "startRow", 0);
|
31
|
+
/**
|
32
|
+
* Index of the last rendered/visible row.
|
33
|
+
*
|
34
|
+
* @type {number}
|
35
|
+
*/
|
36
|
+
_defineProperty(this, "endRow", 0);
|
37
|
+
/**
|
38
|
+
* Position of the first rendered/visible row (in px).
|
39
|
+
*
|
40
|
+
* @type {number}
|
41
|
+
*/
|
42
|
+
_defineProperty(this, "startPosition", 0);
|
43
|
+
this.count = options.totalRows;
|
44
|
+
this.endRow = this.count - 1;
|
45
|
+
}
|
46
|
+
}
|
@@ -34,7 +34,6 @@ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.
|
|
34
34
|
*
|
35
35
|
* @class ViewportColumnsCalculator
|
36
36
|
*/
|
37
|
-
var _totalTargetWidth = /*#__PURE__*/new WeakMap();
|
38
37
|
var _options = /*#__PURE__*/new WeakMap();
|
39
38
|
class ViewportColumnsCalculator {
|
40
39
|
/**
|
@@ -81,29 +80,6 @@ class ViewportColumnsCalculator {
|
|
81
80
|
* @type {boolean}
|
82
81
|
*/
|
83
82
|
_defineProperty(this, "isVisibleInTrimmingContainer", false);
|
84
|
-
/**
|
85
|
-
* @type {number}
|
86
|
-
*/
|
87
|
-
_defineProperty(this, "stretchAllRatio", 0);
|
88
|
-
/**
|
89
|
-
* @type {number}
|
90
|
-
*/
|
91
|
-
_defineProperty(this, "stretchLastWidth", 0);
|
92
|
-
/**
|
93
|
-
* @type {number}
|
94
|
-
*/
|
95
|
-
_classPrivateFieldInitSpec(this, _totalTargetWidth, {
|
96
|
-
writable: true,
|
97
|
-
value: 0
|
98
|
-
});
|
99
|
-
/**
|
100
|
-
* @type {boolean}
|
101
|
-
*/
|
102
|
-
_defineProperty(this, "needVerifyLastColumnWidth", true);
|
103
|
-
/**
|
104
|
-
* @type {number[]}
|
105
|
-
*/
|
106
|
-
_defineProperty(this, "stretchAllColumnsWidth", []);
|
107
83
|
/**
|
108
84
|
* The calculator options.
|
109
85
|
*
|
@@ -114,9 +90,6 @@ class ViewportColumnsCalculator {
|
|
114
90
|
value: void 0
|
115
91
|
});
|
116
92
|
_classPrivateFieldSet(this, _options, options);
|
117
|
-
if (typeof _classPrivateFieldGet(this, _options).stretchingColumnWidthFn !== 'function') {
|
118
|
-
_classPrivateFieldGet(this, _options).stretchingColumnWidthFn = width => width;
|
119
|
-
}
|
120
93
|
this.calculate();
|
121
94
|
}
|
122
95
|
|
@@ -205,100 +178,6 @@ class ViewportColumnsCalculator {
|
|
205
178
|
}
|
206
179
|
}
|
207
180
|
|
208
|
-
/**
|
209
|
-
* Recalculate columns stretching.
|
210
|
-
*
|
211
|
-
* @param {number} totalWidth The total width of the table.
|
212
|
-
*/
|
213
|
-
refreshStretching(totalWidth) {
|
214
|
-
if (_classPrivateFieldGet(this, _options).stretchMode === 'none') {
|
215
|
-
return;
|
216
|
-
}
|
217
|
-
let totalColumnsWidth = totalWidth;
|
218
|
-
_classPrivateFieldSet(this, _totalTargetWidth, totalColumnsWidth);
|
219
|
-
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
220
|
-
let sumAll = 0;
|
221
|
-
for (let i = 0; i < totalColumns; i++) {
|
222
|
-
const columnWidth = this._getColumnWidth(i);
|
223
|
-
const permanentColumnWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(undefined, i);
|
224
|
-
if (typeof permanentColumnWidth === 'number') {
|
225
|
-
totalColumnsWidth -= permanentColumnWidth;
|
226
|
-
} else {
|
227
|
-
sumAll += columnWidth;
|
228
|
-
}
|
229
|
-
}
|
230
|
-
const remainingSize = totalColumnsWidth - sumAll;
|
231
|
-
if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && remainingSize > 0) {
|
232
|
-
this.stretchAllRatio = totalColumnsWidth / sumAll;
|
233
|
-
this.stretchAllColumnsWidth = [];
|
234
|
-
this.needVerifyLastColumnWidth = true;
|
235
|
-
} else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && totalColumnsWidth !== Infinity) {
|
236
|
-
const columnWidth = this._getColumnWidth(totalColumns - 1);
|
237
|
-
const lastColumnWidth = remainingSize + columnWidth;
|
238
|
-
this.stretchLastWidth = lastColumnWidth >= 0 ? lastColumnWidth : columnWidth;
|
239
|
-
}
|
240
|
-
}
|
241
|
-
|
242
|
-
/**
|
243
|
-
* Get stretched column width based on stretchH (all or last) setting passed in handsontable instance.
|
244
|
-
*
|
245
|
-
* @param {number} column The visual column index.
|
246
|
-
* @param {number} baseWidth The default column width.
|
247
|
-
* @returns {number|null}
|
248
|
-
*/
|
249
|
-
getStretchedColumnWidth(column, baseWidth) {
|
250
|
-
let result = null;
|
251
|
-
if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && this.stretchAllRatio !== 0) {
|
252
|
-
result = this._getStretchedAllColumnWidth(column, baseWidth);
|
253
|
-
} else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && this.stretchLastWidth !== 0) {
|
254
|
-
result = this._getStretchedLastColumnWidth(column);
|
255
|
-
}
|
256
|
-
return result;
|
257
|
-
}
|
258
|
-
|
259
|
-
/**
|
260
|
-
* @param {number} column The visual column index.
|
261
|
-
* @param {number} baseWidth The default column width.
|
262
|
-
* @returns {number}
|
263
|
-
* @private
|
264
|
-
*/
|
265
|
-
_getStretchedAllColumnWidth(column, baseWidth) {
|
266
|
-
let sumRatioWidth = 0;
|
267
|
-
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
268
|
-
if (!this.stretchAllColumnsWidth[column]) {
|
269
|
-
const stretchedWidth = Math.round(baseWidth * this.stretchAllRatio);
|
270
|
-
const newStretchedWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(stretchedWidth, column);
|
271
|
-
if (newStretchedWidth === undefined) {
|
272
|
-
this.stretchAllColumnsWidth[column] = stretchedWidth;
|
273
|
-
} else {
|
274
|
-
this.stretchAllColumnsWidth[column] = isNaN(newStretchedWidth) ? this._getColumnWidth(column) : newStretchedWidth;
|
275
|
-
}
|
276
|
-
}
|
277
|
-
if (this.stretchAllColumnsWidth.length === totalColumns && this.needVerifyLastColumnWidth) {
|
278
|
-
this.needVerifyLastColumnWidth = false;
|
279
|
-
for (let i = 0; i < this.stretchAllColumnsWidth.length; i++) {
|
280
|
-
sumRatioWidth += this.stretchAllColumnsWidth[i];
|
281
|
-
}
|
282
|
-
if (sumRatioWidth !== _classPrivateFieldGet(this, _totalTargetWidth)) {
|
283
|
-
this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += _classPrivateFieldGet(this, _totalTargetWidth) - sumRatioWidth;
|
284
|
-
}
|
285
|
-
}
|
286
|
-
return this.stretchAllColumnsWidth[column];
|
287
|
-
}
|
288
|
-
|
289
|
-
/**
|
290
|
-
* @param {number} column The visual column index.
|
291
|
-
* @returns {number|null}
|
292
|
-
* @private
|
293
|
-
*/
|
294
|
-
_getStretchedLastColumnWidth(column) {
|
295
|
-
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
296
|
-
if (column === totalColumns - 1) {
|
297
|
-
return this.stretchLastWidth;
|
298
|
-
}
|
299
|
-
return null;
|
300
|
-
}
|
301
|
-
|
302
181
|
/**
|
303
182
|
* @param {number} column The visual column index.
|
304
183
|
* @returns {number}
|
@@ -312,4 +191,4 @@ class ViewportColumnsCalculator {
|
|
312
191
|
return width;
|
313
192
|
}
|
314
193
|
}
|
315
|
-
|
194
|
+
exports.ViewportColumnsCalculator = ViewportColumnsCalculator;
|
@@ -31,9 +31,8 @@ import { RENDER_TYPE, FULLY_VISIBLE_TYPE } from "./constants.mjs";
|
|
31
31
|
*
|
32
32
|
* @class ViewportColumnsCalculator
|
33
33
|
*/
|
34
|
-
var _totalTargetWidth = /*#__PURE__*/new WeakMap();
|
35
34
|
var _options = /*#__PURE__*/new WeakMap();
|
36
|
-
class ViewportColumnsCalculator {
|
35
|
+
export class ViewportColumnsCalculator {
|
37
36
|
/**
|
38
37
|
* Default column width.
|
39
38
|
*
|
@@ -78,29 +77,6 @@ class ViewportColumnsCalculator {
|
|
78
77
|
* @type {boolean}
|
79
78
|
*/
|
80
79
|
_defineProperty(this, "isVisibleInTrimmingContainer", false);
|
81
|
-
/**
|
82
|
-
* @type {number}
|
83
|
-
*/
|
84
|
-
_defineProperty(this, "stretchAllRatio", 0);
|
85
|
-
/**
|
86
|
-
* @type {number}
|
87
|
-
*/
|
88
|
-
_defineProperty(this, "stretchLastWidth", 0);
|
89
|
-
/**
|
90
|
-
* @type {number}
|
91
|
-
*/
|
92
|
-
_classPrivateFieldInitSpec(this, _totalTargetWidth, {
|
93
|
-
writable: true,
|
94
|
-
value: 0
|
95
|
-
});
|
96
|
-
/**
|
97
|
-
* @type {boolean}
|
98
|
-
*/
|
99
|
-
_defineProperty(this, "needVerifyLastColumnWidth", true);
|
100
|
-
/**
|
101
|
-
* @type {number[]}
|
102
|
-
*/
|
103
|
-
_defineProperty(this, "stretchAllColumnsWidth", []);
|
104
80
|
/**
|
105
81
|
* The calculator options.
|
106
82
|
*
|
@@ -111,9 +87,6 @@ class ViewportColumnsCalculator {
|
|
111
87
|
value: void 0
|
112
88
|
});
|
113
89
|
_classPrivateFieldSet(this, _options, options);
|
114
|
-
if (typeof _classPrivateFieldGet(this, _options).stretchingColumnWidthFn !== 'function') {
|
115
|
-
_classPrivateFieldGet(this, _options).stretchingColumnWidthFn = width => width;
|
116
|
-
}
|
117
90
|
this.calculate();
|
118
91
|
}
|
119
92
|
|
@@ -202,100 +175,6 @@ class ViewportColumnsCalculator {
|
|
202
175
|
}
|
203
176
|
}
|
204
177
|
|
205
|
-
/**
|
206
|
-
* Recalculate columns stretching.
|
207
|
-
*
|
208
|
-
* @param {number} totalWidth The total width of the table.
|
209
|
-
*/
|
210
|
-
refreshStretching(totalWidth) {
|
211
|
-
if (_classPrivateFieldGet(this, _options).stretchMode === 'none') {
|
212
|
-
return;
|
213
|
-
}
|
214
|
-
let totalColumnsWidth = totalWidth;
|
215
|
-
_classPrivateFieldSet(this, _totalTargetWidth, totalColumnsWidth);
|
216
|
-
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
217
|
-
let sumAll = 0;
|
218
|
-
for (let i = 0; i < totalColumns; i++) {
|
219
|
-
const columnWidth = this._getColumnWidth(i);
|
220
|
-
const permanentColumnWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(undefined, i);
|
221
|
-
if (typeof permanentColumnWidth === 'number') {
|
222
|
-
totalColumnsWidth -= permanentColumnWidth;
|
223
|
-
} else {
|
224
|
-
sumAll += columnWidth;
|
225
|
-
}
|
226
|
-
}
|
227
|
-
const remainingSize = totalColumnsWidth - sumAll;
|
228
|
-
if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && remainingSize > 0) {
|
229
|
-
this.stretchAllRatio = totalColumnsWidth / sumAll;
|
230
|
-
this.stretchAllColumnsWidth = [];
|
231
|
-
this.needVerifyLastColumnWidth = true;
|
232
|
-
} else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && totalColumnsWidth !== Infinity) {
|
233
|
-
const columnWidth = this._getColumnWidth(totalColumns - 1);
|
234
|
-
const lastColumnWidth = remainingSize + columnWidth;
|
235
|
-
this.stretchLastWidth = lastColumnWidth >= 0 ? lastColumnWidth : columnWidth;
|
236
|
-
}
|
237
|
-
}
|
238
|
-
|
239
|
-
/**
|
240
|
-
* Get stretched column width based on stretchH (all or last) setting passed in handsontable instance.
|
241
|
-
*
|
242
|
-
* @param {number} column The visual column index.
|
243
|
-
* @param {number} baseWidth The default column width.
|
244
|
-
* @returns {number|null}
|
245
|
-
*/
|
246
|
-
getStretchedColumnWidth(column, baseWidth) {
|
247
|
-
let result = null;
|
248
|
-
if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && this.stretchAllRatio !== 0) {
|
249
|
-
result = this._getStretchedAllColumnWidth(column, baseWidth);
|
250
|
-
} else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && this.stretchLastWidth !== 0) {
|
251
|
-
result = this._getStretchedLastColumnWidth(column);
|
252
|
-
}
|
253
|
-
return result;
|
254
|
-
}
|
255
|
-
|
256
|
-
/**
|
257
|
-
* @param {number} column The visual column index.
|
258
|
-
* @param {number} baseWidth The default column width.
|
259
|
-
* @returns {number}
|
260
|
-
* @private
|
261
|
-
*/
|
262
|
-
_getStretchedAllColumnWidth(column, baseWidth) {
|
263
|
-
let sumRatioWidth = 0;
|
264
|
-
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
265
|
-
if (!this.stretchAllColumnsWidth[column]) {
|
266
|
-
const stretchedWidth = Math.round(baseWidth * this.stretchAllRatio);
|
267
|
-
const newStretchedWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(stretchedWidth, column);
|
268
|
-
if (newStretchedWidth === undefined) {
|
269
|
-
this.stretchAllColumnsWidth[column] = stretchedWidth;
|
270
|
-
} else {
|
271
|
-
this.stretchAllColumnsWidth[column] = isNaN(newStretchedWidth) ? this._getColumnWidth(column) : newStretchedWidth;
|
272
|
-
}
|
273
|
-
}
|
274
|
-
if (this.stretchAllColumnsWidth.length === totalColumns && this.needVerifyLastColumnWidth) {
|
275
|
-
this.needVerifyLastColumnWidth = false;
|
276
|
-
for (let i = 0; i < this.stretchAllColumnsWidth.length; i++) {
|
277
|
-
sumRatioWidth += this.stretchAllColumnsWidth[i];
|
278
|
-
}
|
279
|
-
if (sumRatioWidth !== _classPrivateFieldGet(this, _totalTargetWidth)) {
|
280
|
-
this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += _classPrivateFieldGet(this, _totalTargetWidth) - sumRatioWidth;
|
281
|
-
}
|
282
|
-
}
|
283
|
-
return this.stretchAllColumnsWidth[column];
|
284
|
-
}
|
285
|
-
|
286
|
-
/**
|
287
|
-
* @param {number} column The visual column index.
|
288
|
-
* @returns {number|null}
|
289
|
-
* @private
|
290
|
-
*/
|
291
|
-
_getStretchedLastColumnWidth(column) {
|
292
|
-
const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
|
293
|
-
if (column === totalColumns - 1) {
|
294
|
-
return this.stretchLastWidth;
|
295
|
-
}
|
296
|
-
return null;
|
297
|
-
}
|
298
|
-
|
299
178
|
/**
|
300
179
|
* @param {number} column The visual column index.
|
301
180
|
* @returns {number}
|
@@ -308,5 +187,4 @@ class ViewportColumnsCalculator {
|
|
308
187
|
}
|
309
188
|
return width;
|
310
189
|
}
|
311
|
-
}
|
312
|
-
export default ViewportColumnsCalculator;
|
190
|
+
}
|
@@ -29,7 +29,7 @@ import { RENDER_TYPE, FULLY_VISIBLE_TYPE } from "./constants.mjs";
|
|
29
29
|
* @class ViewportRowsCalculator
|
30
30
|
*/
|
31
31
|
var _options = /*#__PURE__*/new WeakMap();
|
32
|
-
class ViewportRowsCalculator {
|
32
|
+
export class ViewportRowsCalculator {
|
33
33
|
/**
|
34
34
|
* Default row height.
|
35
35
|
*
|
@@ -177,5 +177,4 @@ class ViewportRowsCalculator {
|
|
177
177
|
this.count = this.endRow - this.startRow + 1;
|
178
178
|
}
|
179
179
|
}
|
180
|
-
}
|
181
|
-
export default ViewportRowsCalculator;
|
180
|
+
}
|
@@ -1,10 +1,9 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
|
-
var
|
5
|
-
exports.ViewportColumnsCalculator =
|
6
|
-
|
7
|
-
exports.ViewportRowsCalculator = _viewportRows.default;
|
4
|
+
var _calculator = require("./calculator");
|
5
|
+
exports.ViewportColumnsCalculator = _calculator.ViewportColumnsCalculator;
|
6
|
+
exports.ViewportRowsCalculator = _calculator.ViewportRowsCalculator;
|
8
7
|
var _coords = _interopRequireDefault(require("./cell/coords"));
|
9
8
|
exports.CellCoords = _coords.default;
|
10
9
|
var _range = _interopRequireDefault(require("./cell/range"));
|
@@ -1,5 +1,4 @@
|
|
1
|
-
import ViewportColumnsCalculator from "./calculator/
|
2
|
-
import ViewportRowsCalculator from "./calculator/viewportRows.mjs";
|
1
|
+
import { ViewportColumnsCalculator, ViewportRowsCalculator } from "./calculator/index.mjs";
|
3
2
|
import CellCoords from "./cell/coords.mjs";
|
4
3
|
import CellRange from "./cell/range.mjs";
|
5
4
|
import Walkontable from "./facade/core.mjs";
|
@@ -2,8 +2,12 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
var _base = _interopRequireDefault(require("./_base"));
|
5
|
+
var _console = require("./../../../../helpers/console");
|
6
|
+
var _templateLiteralTag = require("./../../../../helpers/templateLiteralTag");
|
5
7
|
var _element = require("./../../../../helpers/dom/element");
|
6
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
9
|
+
let performanceWarningAppeared = false;
|
10
|
+
|
7
11
|
/**
|
8
12
|
* Colgroup renderer responsible for managing (inserting, tracking, rendering) COL elements.
|
9
13
|
*
|
@@ -49,6 +53,12 @@ class ColGroupRenderer extends _base.default {
|
|
49
53
|
columnsToRender,
|
50
54
|
rowHeadersCount
|
51
55
|
} = this.table;
|
56
|
+
if (!performanceWarningAppeared && columnsToRender > 1000) {
|
57
|
+
performanceWarningAppeared = true;
|
58
|
+
(0, _console.warn)((0, _templateLiteralTag.toSingleLine)`Performance tip: Handsontable rendered more than 1000 visible columns.\x20
|
59
|
+
Consider limiting the number of rendered columns by specifying the table width and/or\x20
|
60
|
+
turning off the "renderAllColumns" option.`);
|
61
|
+
}
|
52
62
|
|
53
63
|
// Render column nodes for row headers
|
54
64
|
for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {
|
@@ -1,5 +1,9 @@
|
|
1
1
|
import BaseRenderer from "./_base.mjs";
|
2
|
+
import { warn } from "./../../../../helpers/console.mjs";
|
3
|
+
import { toSingleLine } from "./../../../../helpers/templateLiteralTag.mjs";
|
2
4
|
import { addClass } from "./../../../../helpers/dom/element.mjs";
|
5
|
+
let performanceWarningAppeared = false;
|
6
|
+
|
3
7
|
/**
|
4
8
|
* Colgroup renderer responsible for managing (inserting, tracking, rendering) COL elements.
|
5
9
|
*
|
@@ -45,6 +49,12 @@ export default class ColGroupRenderer extends BaseRenderer {
|
|
45
49
|
columnsToRender,
|
46
50
|
rowHeadersCount
|
47
51
|
} = this.table;
|
52
|
+
if (!performanceWarningAppeared && columnsToRender > 1000) {
|
53
|
+
performanceWarningAppeared = true;
|
54
|
+
warn(toSingleLine`Performance tip: Handsontable rendered more than 1000 visible columns.\x20
|
55
|
+
Consider limiting the number of rendered columns by specifying the table width and/or\x20
|
56
|
+
turning off the "renderAllColumns" option.`);
|
57
|
+
}
|
48
58
|
|
49
59
|
// Render column nodes for row headers
|
50
60
|
for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {
|
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
exports.__esModule = true;
|
4
4
|
require("core-js/modules/es.error.cause.js");
|
5
|
+
var _base = _interopRequireDefault(require("./_base"));
|
5
6
|
var _console = require("./../../../../helpers/console");
|
6
7
|
var _templateLiteralTag = require("./../../../../helpers/templateLiteralTag");
|
7
8
|
var _orderView = require("./../utils/orderView");
|
8
|
-
var _base = _interopRequireDefault(require("./_base"));
|
9
9
|
var _element = require("../../../../helpers/dom/element");
|
10
10
|
var _a11y = require("../../../../helpers/a11y");
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
@@ -57,8 +57,9 @@ class RowsRenderer extends _base.default {
|
|
57
57
|
} = this.table;
|
58
58
|
if (!performanceWarningAppeared && rowsToRender > 1000) {
|
59
59
|
performanceWarningAppeared = true;
|
60
|
-
(0, _console.warn)((0, _templateLiteralTag.toSingleLine)`Performance tip: Handsontable rendered more than 1000 visible rows
|
61
|
-
the number of rendered rows by specifying the table height and/or
|
60
|
+
(0, _console.warn)((0, _templateLiteralTag.toSingleLine)`Performance tip: Handsontable rendered more than 1000 visible rows.\x20
|
61
|
+
Consider limiting the number of rendered rows by specifying the table height and/or\x20
|
62
|
+
turning off the "renderAllRows" option.`);
|
62
63
|
}
|
63
64
|
if (this.table.isAriaEnabled()) {
|
64
65
|
(0, _element.setAttribute)(this.rootNode, [(0, _a11y.A11Y_ROWGROUP)()]);
|