handsontable 0.0.0-next-b66c79f-20230713 → 0.0.0-next-85c3085-20230713
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/cell/coords.js +37 -22
- package/3rdparty/walkontable/src/cell/coords.mjs +37 -22
- package/3rdparty/walkontable/src/cell/range.js +54 -39
- package/3rdparty/walkontable/src/cell/range.mjs +54 -39
- package/3rdparty/walkontable/src/core/_base.js +33 -31
- package/3rdparty/walkontable/src/core/_base.mjs +33 -31
- package/3rdparty/walkontable/src/core/clone.js +6 -3
- package/3rdparty/walkontable/src/core/clone.mjs +6 -3
- package/3rdparty/walkontable/src/event.js +2 -1
- package/3rdparty/walkontable/src/event.mjs +2 -1
- package/3rdparty/walkontable/src/overlay/_base.js +10 -8
- package/3rdparty/walkontable/src/overlay/_base.mjs +10 -8
- package/3rdparty/walkontable/src/overlay/bottom.js +10 -8
- package/3rdparty/walkontable/src/overlay/bottom.mjs +10 -8
- package/3rdparty/walkontable/src/overlay/inlineStart.js +1 -1
- package/3rdparty/walkontable/src/overlay/inlineStart.mjs +1 -1
- package/3rdparty/walkontable/src/overlay/top.js +11 -9
- package/3rdparty/walkontable/src/overlay/top.mjs +11 -9
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +16 -13
- package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +16 -13
- package/3rdparty/walkontable/src/overlays.js +75 -80
- package/3rdparty/walkontable/src/overlays.mjs +75 -80
- package/3rdparty/walkontable/src/scroll.js +27 -24
- package/3rdparty/walkontable/src/scroll.mjs +27 -24
- package/3rdparty/walkontable/src/settings.js +18 -17
- package/3rdparty/walkontable/src/settings.mjs +18 -17
- package/3rdparty/walkontable/src/table.js +42 -37
- package/3rdparty/walkontable/src/table.mjs +42 -37
- package/base.js +2 -2
- package/base.mjs +2 -2
- package/core.js +8 -8
- package/core.mjs +8 -8
- package/dataMap/metaManager/metaLayers/cellMeta.js +2 -1
- package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -1
- package/dataMap/metaManager/metaLayers/globalMeta.js +1 -1
- package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
- package/dataMap/metaManager/mods/dynamicCellMeta.js +3 -2
- package/dataMap/metaManager/mods/dynamicCellMeta.mjs +3 -2
- package/dataMap/metaManager/utils.js +4 -2
- package/dataMap/metaManager/utils.mjs +4 -2
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +3247 -2847
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +17 -17
- package/dist/handsontable.js +3249 -2849
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +17 -17
- package/editors/autocompleteEditor/autocompleteEditor.js +70 -67
- package/editors/autocompleteEditor/autocompleteEditor.mjs +70 -67
- package/editors/baseEditor/baseEditor.js +1 -1
- package/editors/baseEditor/baseEditor.mjs +1 -1
- package/editors/dateEditor/dateEditor.js +2 -1
- package/editors/dateEditor/dateEditor.mjs +2 -1
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/helpers/object.js +1 -0
- package/helpers/object.mjs +1 -0
- package/index.js +5 -5
- package/index.mjs +5 -5
- package/package.json +1 -1
- package/plugins/autoColumnSize/autoColumnSize.js +4 -1
- package/plugins/autoColumnSize/autoColumnSize.mjs +4 -1
- package/plugins/collapsibleColumns/collapsibleColumns.js +54 -38
- package/plugins/collapsibleColumns/collapsibleColumns.mjs +54 -38
- package/plugins/columnSorting/columnSorting.js +2 -1
- package/plugins/columnSorting/columnSorting.mjs +2 -1
- package/plugins/columnSorting/columnStatesManager.js +2 -1
- package/plugins/columnSorting/columnStatesManager.mjs +2 -1
- package/plugins/comments/comments.js +2 -2
- package/plugins/comments/comments.mjs +2 -2
- package/plugins/copyPaste/copyPaste.js +6 -4
- package/plugins/copyPaste/copyPaste.mjs +6 -4
- package/plugins/customBorders/customBorders.js +13 -9
- package/plugins/customBorders/customBorders.mjs +13 -9
- package/plugins/customBorders/utils.js +3 -3
- package/plugins/customBorders/utils.mjs +3 -3
- package/plugins/filters/conditionCollection.js +6 -5
- package/plugins/filters/conditionCollection.mjs +6 -5
- package/plugins/filters/filters.js +13 -7
- package/plugins/filters/filters.mjs +13 -7
- package/plugins/formulas/engine/register.js +3 -3
- package/plugins/formulas/engine/register.mjs +3 -3
- package/plugins/formulas/engine/settings.js +6 -3
- package/plugins/formulas/engine/settings.mjs +6 -3
- package/plugins/formulas/formulas.js +151 -143
- package/plugins/formulas/formulas.mjs +151 -143
- package/plugins/formulas/indexSyncer/axisSyncer.js +115 -79
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +115 -79
- package/plugins/formulas/indexSyncer/index.js +100 -64
- package/plugins/formulas/indexSyncer/index.mjs +100 -64
- package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -2
- package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -2
- package/plugins/hiddenColumns/hiddenColumns.js +51 -34
- package/plugins/hiddenColumns/hiddenColumns.mjs +51 -34
- package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -2
- package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -2
- package/plugins/hiddenRows/hiddenRows.js +50 -33
- package/plugins/hiddenRows/hiddenRows.mjs +50 -33
- package/plugins/manualRowResize/manualRowResize.js +2 -1
- package/plugins/manualRowResize/manualRowResize.mjs +2 -1
- package/plugins/mergeCells/mergeCells.js +1 -1
- package/plugins/mergeCells/mergeCells.mjs +1 -1
- package/plugins/nestedHeaders/nestedHeaders.js +88 -67
- package/plugins/nestedHeaders/nestedHeaders.mjs +87 -66
- package/plugins/nestedHeaders/stateManager/headersTree.js +58 -38
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +58 -38
- package/plugins/nestedHeaders/stateManager/index.js +70 -49
- package/plugins/nestedHeaders/stateManager/index.mjs +68 -47
- package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.js +1 -1
- package/plugins/nestedHeaders/stateManager/nodeModifiers/collapse.mjs +1 -1
- package/plugins/nestedHeaders/stateManager/sourceSettings.js +57 -37
- package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +57 -37
- package/plugins/nestedHeaders/utils/ghostTable.js +39 -35
- package/plugins/nestedHeaders/utils/ghostTable.mjs +39 -35
- package/plugins/nestedRows/data/dataManager.js +4 -2
- package/plugins/nestedRows/data/dataManager.mjs +4 -2
- package/plugins/persistentState/storage.js +1 -0
- package/plugins/persistentState/storage.mjs +1 -0
- package/plugins/undoRedo/undoRedo.js +2 -1
- package/plugins/undoRedo/undoRedo.mjs +2 -1
- package/selection/highlight/visualSelection.js +10 -6
- package/selection/highlight/visualSelection.mjs +10 -6
- package/tableView.js +98 -80
- package/tableView.mjs +98 -80
- package/translations/changesObservable/observable.js +82 -54
- package/translations/changesObservable/observable.mjs +82 -54
- package/translations/changesObservable/observer.js +24 -11
- package/translations/changesObservable/observer.mjs +24 -11
- package/translations/maps/linkedPhysicalIndexToValueMap.js +14 -8
- package/translations/maps/linkedPhysicalIndexToValueMap.mjs +14 -8
- package/utils/dataStructures/tree.js +21 -18
- package/utils/dataStructures/tree.mjs +21 -18
@@ -1,13 +1,21 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
require("core-js/modules/es.error.cause.js");
|
3
4
|
exports.__esModule = true;
|
4
5
|
require("core-js/modules/es.array.push.js");
|
5
6
|
var _array = require("../../../helpers/array");
|
6
|
-
var
|
7
|
-
var
|
7
|
+
var _sourceSettings2 = _interopRequireDefault(require("./sourceSettings"));
|
8
|
+
var _headersTree2 = _interopRequireDefault(require("./headersTree"));
|
8
9
|
var _nodeModifiers = require("./nodeModifiers");
|
9
10
|
var _matrixGenerator = require("./matrixGenerator");
|
10
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
12
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
13
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
14
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
15
|
+
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
16
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
17
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
18
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
11
19
|
/**
|
12
20
|
* The state manager is a source of truth for nested headers configuration.
|
13
21
|
* The state generation process is divided into three stages.
|
@@ -36,29 +44,42 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
36
44
|
*
|
37
45
|
* @class StateManager
|
38
46
|
*/
|
47
|
+
var _sourceSettings = /*#__PURE__*/new WeakMap();
|
48
|
+
var _headersTree = /*#__PURE__*/new WeakMap();
|
49
|
+
var _stateMatrix = /*#__PURE__*/new WeakMap();
|
39
50
|
class StateManager {
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
51
|
+
constructor() {
|
52
|
+
/**
|
53
|
+
* The instance of the source settings class.
|
54
|
+
*
|
55
|
+
* @private
|
56
|
+
* @type {SourceSettings}
|
57
|
+
*/
|
58
|
+
_classPrivateFieldInitSpec(this, _sourceSettings, {
|
59
|
+
writable: true,
|
60
|
+
value: new _sourceSettings2.default()
|
61
|
+
});
|
62
|
+
/**
|
63
|
+
* The instance of the headers tree. The tree is generated after setting new configuration data.
|
64
|
+
*
|
65
|
+
* @private
|
66
|
+
* @type {HeadersTree}
|
67
|
+
*/
|
68
|
+
_classPrivateFieldInitSpec(this, _headersTree, {
|
69
|
+
writable: true,
|
70
|
+
value: new _headersTree2.default(_classPrivateFieldGet(this, _sourceSettings))
|
71
|
+
});
|
72
|
+
/**
|
73
|
+
* Cached matrix which is generated from the tree structure.
|
74
|
+
*
|
75
|
+
* @private
|
76
|
+
* @type {Array[]}
|
77
|
+
*/
|
78
|
+
_classPrivateFieldInitSpec(this, _stateMatrix, {
|
79
|
+
writable: true,
|
80
|
+
value: [[]]
|
81
|
+
});
|
82
|
+
}
|
62
83
|
/**
|
63
84
|
* Sets a new state for the nested headers plugin based on settings passed
|
64
85
|
* directly to the plugin.
|
@@ -67,16 +88,16 @@ class StateManager {
|
|
67
88
|
* @returns {boolean} Returns `true` if the settings are processed correctly, `false` otherwise.
|
68
89
|
*/
|
69
90
|
setState(nestedHeadersSettings) {
|
70
|
-
this
|
91
|
+
_classPrivateFieldGet(this, _sourceSettings).setData(nestedHeadersSettings);
|
71
92
|
let hasError = false;
|
72
93
|
try {
|
73
|
-
this
|
94
|
+
_classPrivateFieldGet(this, _headersTree).buildTree();
|
74
95
|
} catch (ex) {
|
75
|
-
this
|
76
|
-
this
|
96
|
+
_classPrivateFieldGet(this, _headersTree).clear();
|
97
|
+
_classPrivateFieldGet(this, _sourceSettings).clear();
|
77
98
|
hasError = true;
|
78
99
|
}
|
79
|
-
this
|
100
|
+
_classPrivateFieldSet(this, _stateMatrix, (0, _matrixGenerator.generateMatrix)(_classPrivateFieldGet(this, _headersTree).getRoots()));
|
80
101
|
return hasError;
|
81
102
|
}
|
82
103
|
|
@@ -87,7 +108,7 @@ class StateManager {
|
|
87
108
|
* @param {number} columnsCount The number of columns to limit to.
|
88
109
|
*/
|
89
110
|
setColumnsLimit(columnsCount) {
|
90
|
-
this
|
111
|
+
_classPrivateFieldGet(this, _sourceSettings).setColumnsLimit(columnsCount);
|
91
112
|
}
|
92
113
|
|
93
114
|
/**
|
@@ -111,9 +132,9 @@ class StateManager {
|
|
111
132
|
...rest
|
112
133
|
};
|
113
134
|
});
|
114
|
-
this
|
115
|
-
this
|
116
|
-
this
|
135
|
+
_classPrivateFieldGet(this, _sourceSettings).mergeWith(transformedSettings);
|
136
|
+
_classPrivateFieldGet(this, _headersTree).buildTree();
|
137
|
+
_classPrivateFieldSet(this, _stateMatrix, (0, _matrixGenerator.generateMatrix)(_classPrivateFieldGet(this, _headersTree).getRoots()));
|
117
138
|
}
|
118
139
|
|
119
140
|
/**
|
@@ -128,9 +149,9 @@ class StateManager {
|
|
128
149
|
* header settings.
|
129
150
|
*/
|
130
151
|
mapState(callback) {
|
131
|
-
this
|
132
|
-
this
|
133
|
-
this
|
152
|
+
_classPrivateFieldGet(this, _sourceSettings).map(callback);
|
153
|
+
_classPrivateFieldGet(this, _headersTree).buildTree();
|
154
|
+
_classPrivateFieldSet(this, _stateMatrix, (0, _matrixGenerator.generateMatrix)(_classPrivateFieldGet(this, _headersTree).getRoots()));
|
134
155
|
}
|
135
156
|
|
136
157
|
/**
|
@@ -143,7 +164,7 @@ class StateManager {
|
|
143
164
|
* @returns {Array}
|
144
165
|
*/
|
145
166
|
mapNodes(callback) {
|
146
|
-
return (0, _array.arrayReduce)(this
|
167
|
+
return (0, _array.arrayReduce)(_classPrivateFieldGet(this, _headersTree).getRoots(), (acc, rootNode) => {
|
147
168
|
rootNode.walkDown(node => {
|
148
169
|
const result = callback(node.data);
|
149
170
|
if (result !== void 0) {
|
@@ -168,13 +189,13 @@ class StateManager {
|
|
168
189
|
if (headerLevel < 0) {
|
169
190
|
headerLevel = this.rowCoordsToLevel(headerLevel);
|
170
191
|
}
|
171
|
-
const nodeToProcess = this
|
192
|
+
const nodeToProcess = _classPrivateFieldGet(this, _headersTree).getNode(headerLevel, columnIndex);
|
172
193
|
let actionResult;
|
173
194
|
if (nodeToProcess) {
|
174
195
|
actionResult = (0, _nodeModifiers.triggerNodeModification)(action, nodeToProcess, columnIndex);
|
175
196
|
|
176
197
|
// TODO (perf-tip): Trigger matrix generation once after multiple node modifications.
|
177
|
-
this
|
198
|
+
_classPrivateFieldSet(this, _stateMatrix, (0, _matrixGenerator.generateMatrix)(_classPrivateFieldGet(this, _headersTree).getRoots()));
|
178
199
|
}
|
179
200
|
return actionResult;
|
180
201
|
}
|
@@ -276,14 +297,14 @@ class StateManager {
|
|
276
297
|
* @returns {object|null}
|
277
298
|
*/
|
278
299
|
getHeaderSettings(headerLevel, columnIndex) {
|
279
|
-
var
|
300
|
+
var _classPrivateFieldGet2, _classPrivateFieldGet3;
|
280
301
|
if (headerLevel < 0) {
|
281
302
|
headerLevel = this.rowCoordsToLevel(headerLevel);
|
282
303
|
}
|
283
304
|
if (headerLevel === null || headerLevel >= this.getLayersCount()) {
|
284
305
|
return null;
|
285
306
|
}
|
286
|
-
return (
|
307
|
+
return (_classPrivateFieldGet2 = (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _stateMatrix)[headerLevel]) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3[columnIndex]) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : null;
|
287
308
|
}
|
288
309
|
|
289
310
|
/**
|
@@ -302,7 +323,7 @@ class StateManager {
|
|
302
323
|
if (headerLevel === null || headerLevel >= this.getLayersCount()) {
|
303
324
|
return null;
|
304
325
|
}
|
305
|
-
const node = this
|
326
|
+
const node = _classPrivateFieldGet(this, _headersTree).getNode(headerLevel, columnIndex);
|
306
327
|
if (!node) {
|
307
328
|
return null;
|
308
329
|
}
|
@@ -324,7 +345,7 @@ class StateManager {
|
|
324
345
|
var _this$getHeaderSettin;
|
325
346
|
const {
|
326
347
|
isRoot
|
327
|
-
} = (_this$getHeaderSettin = this.getHeaderSettings(headerLevel, columnIndex))
|
348
|
+
} = (_this$getHeaderSettin = this.getHeaderSettings(headerLevel, columnIndex)) !== null && _this$getHeaderSettin !== void 0 ? _this$getHeaderSettin : {
|
328
349
|
isRoot: true
|
329
350
|
};
|
330
351
|
if (isRoot) {
|
@@ -335,7 +356,7 @@ class StateManager {
|
|
335
356
|
var _this$getHeaderSettin2;
|
336
357
|
const {
|
337
358
|
isRoot: isRootNode
|
338
|
-
} = (_this$getHeaderSettin2 = this.getHeaderSettings(headerLevel, stepBackColumn))
|
359
|
+
} = (_this$getHeaderSettin2 = this.getHeaderSettings(headerLevel, stepBackColumn)) !== null && _this$getHeaderSettin2 !== void 0 ? _this$getHeaderSettin2 : {
|
339
360
|
isRoot: true
|
340
361
|
};
|
341
362
|
if (isRootNode) {
|
@@ -352,7 +373,7 @@ class StateManager {
|
|
352
373
|
* @returns {number}
|
353
374
|
*/
|
354
375
|
getLayersCount() {
|
355
|
-
return this
|
376
|
+
return _classPrivateFieldGet(this, _sourceSettings).getLayersCount();
|
356
377
|
}
|
357
378
|
|
358
379
|
/**
|
@@ -361,16 +382,16 @@ class StateManager {
|
|
361
382
|
* @returns {number}
|
362
383
|
*/
|
363
384
|
getColumnsCount() {
|
364
|
-
return this
|
385
|
+
return _classPrivateFieldGet(this, _sourceSettings).getColumnsCount();
|
365
386
|
}
|
366
387
|
|
367
388
|
/**
|
368
389
|
* Clears the column state manager to the initial state.
|
369
390
|
*/
|
370
391
|
clear() {
|
371
|
-
this
|
372
|
-
this
|
373
|
-
this
|
392
|
+
_classPrivateFieldSet(this, _stateMatrix, []);
|
393
|
+
_classPrivateFieldGet(this, _sourceSettings).clear();
|
394
|
+
_classPrivateFieldGet(this, _headersTree).clear();
|
374
395
|
}
|
375
396
|
}
|
376
397
|
exports.default = StateManager;
|
@@ -1,4 +1,12 @@
|
|
1
1
|
import "core-js/modules/es.array.push.js";
|
2
|
+
import "core-js/modules/es.error.cause.js";
|
3
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
4
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
5
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
6
|
+
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
7
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
8
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
9
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
2
10
|
import { arrayMap, arrayReduce } from "../../../helpers/array.mjs";
|
3
11
|
import SourceSettings from "./sourceSettings.mjs";
|
4
12
|
import HeadersTree from "./headersTree.mjs";
|
@@ -32,29 +40,42 @@ import { generateMatrix } from "./matrixGenerator.mjs";
|
|
32
40
|
*
|
33
41
|
* @class StateManager
|
34
42
|
*/
|
43
|
+
var _sourceSettings = /*#__PURE__*/new WeakMap();
|
44
|
+
var _headersTree = /*#__PURE__*/new WeakMap();
|
45
|
+
var _stateMatrix = /*#__PURE__*/new WeakMap();
|
35
46
|
export default class StateManager {
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
47
|
+
constructor() {
|
48
|
+
/**
|
49
|
+
* The instance of the source settings class.
|
50
|
+
*
|
51
|
+
* @private
|
52
|
+
* @type {SourceSettings}
|
53
|
+
*/
|
54
|
+
_classPrivateFieldInitSpec(this, _sourceSettings, {
|
55
|
+
writable: true,
|
56
|
+
value: new SourceSettings()
|
57
|
+
});
|
58
|
+
/**
|
59
|
+
* The instance of the headers tree. The tree is generated after setting new configuration data.
|
60
|
+
*
|
61
|
+
* @private
|
62
|
+
* @type {HeadersTree}
|
63
|
+
*/
|
64
|
+
_classPrivateFieldInitSpec(this, _headersTree, {
|
65
|
+
writable: true,
|
66
|
+
value: new HeadersTree(_classPrivateFieldGet(this, _sourceSettings))
|
67
|
+
});
|
68
|
+
/**
|
69
|
+
* Cached matrix which is generated from the tree structure.
|
70
|
+
*
|
71
|
+
* @private
|
72
|
+
* @type {Array[]}
|
73
|
+
*/
|
74
|
+
_classPrivateFieldInitSpec(this, _stateMatrix, {
|
75
|
+
writable: true,
|
76
|
+
value: [[]]
|
77
|
+
});
|
78
|
+
}
|
58
79
|
/**
|
59
80
|
* Sets a new state for the nested headers plugin based on settings passed
|
60
81
|
* directly to the plugin.
|
@@ -63,16 +84,16 @@ export default class StateManager {
|
|
63
84
|
* @returns {boolean} Returns `true` if the settings are processed correctly, `false` otherwise.
|
64
85
|
*/
|
65
86
|
setState(nestedHeadersSettings) {
|
66
|
-
this
|
87
|
+
_classPrivateFieldGet(this, _sourceSettings).setData(nestedHeadersSettings);
|
67
88
|
let hasError = false;
|
68
89
|
try {
|
69
|
-
this
|
90
|
+
_classPrivateFieldGet(this, _headersTree).buildTree();
|
70
91
|
} catch (ex) {
|
71
|
-
this
|
72
|
-
this
|
92
|
+
_classPrivateFieldGet(this, _headersTree).clear();
|
93
|
+
_classPrivateFieldGet(this, _sourceSettings).clear();
|
73
94
|
hasError = true;
|
74
95
|
}
|
75
|
-
this
|
96
|
+
_classPrivateFieldSet(this, _stateMatrix, generateMatrix(_classPrivateFieldGet(this, _headersTree).getRoots()));
|
76
97
|
return hasError;
|
77
98
|
}
|
78
99
|
|
@@ -83,7 +104,7 @@ export default class StateManager {
|
|
83
104
|
* @param {number} columnsCount The number of columns to limit to.
|
84
105
|
*/
|
85
106
|
setColumnsLimit(columnsCount) {
|
86
|
-
this
|
107
|
+
_classPrivateFieldGet(this, _sourceSettings).setColumnsLimit(columnsCount);
|
87
108
|
}
|
88
109
|
|
89
110
|
/**
|
@@ -107,9 +128,9 @@ export default class StateManager {
|
|
107
128
|
...rest
|
108
129
|
};
|
109
130
|
});
|
110
|
-
this
|
111
|
-
this
|
112
|
-
this
|
131
|
+
_classPrivateFieldGet(this, _sourceSettings).mergeWith(transformedSettings);
|
132
|
+
_classPrivateFieldGet(this, _headersTree).buildTree();
|
133
|
+
_classPrivateFieldSet(this, _stateMatrix, generateMatrix(_classPrivateFieldGet(this, _headersTree).getRoots()));
|
113
134
|
}
|
114
135
|
|
115
136
|
/**
|
@@ -124,9 +145,9 @@ export default class StateManager {
|
|
124
145
|
* header settings.
|
125
146
|
*/
|
126
147
|
mapState(callback) {
|
127
|
-
this
|
128
|
-
this
|
129
|
-
this
|
148
|
+
_classPrivateFieldGet(this, _sourceSettings).map(callback);
|
149
|
+
_classPrivateFieldGet(this, _headersTree).buildTree();
|
150
|
+
_classPrivateFieldSet(this, _stateMatrix, generateMatrix(_classPrivateFieldGet(this, _headersTree).getRoots()));
|
130
151
|
}
|
131
152
|
|
132
153
|
/**
|
@@ -139,7 +160,7 @@ export default class StateManager {
|
|
139
160
|
* @returns {Array}
|
140
161
|
*/
|
141
162
|
mapNodes(callback) {
|
142
|
-
return arrayReduce(this
|
163
|
+
return arrayReduce(_classPrivateFieldGet(this, _headersTree).getRoots(), (acc, rootNode) => {
|
143
164
|
rootNode.walkDown(node => {
|
144
165
|
const result = callback(node.data);
|
145
166
|
if (result !== void 0) {
|
@@ -164,13 +185,13 @@ export default class StateManager {
|
|
164
185
|
if (headerLevel < 0) {
|
165
186
|
headerLevel = this.rowCoordsToLevel(headerLevel);
|
166
187
|
}
|
167
|
-
const nodeToProcess = this
|
188
|
+
const nodeToProcess = _classPrivateFieldGet(this, _headersTree).getNode(headerLevel, columnIndex);
|
168
189
|
let actionResult;
|
169
190
|
if (nodeToProcess) {
|
170
191
|
actionResult = triggerNodeModification(action, nodeToProcess, columnIndex);
|
171
192
|
|
172
193
|
// TODO (perf-tip): Trigger matrix generation once after multiple node modifications.
|
173
|
-
this
|
194
|
+
_classPrivateFieldSet(this, _stateMatrix, generateMatrix(_classPrivateFieldGet(this, _headersTree).getRoots()));
|
174
195
|
}
|
175
196
|
return actionResult;
|
176
197
|
}
|
@@ -272,14 +293,14 @@ export default class StateManager {
|
|
272
293
|
* @returns {object|null}
|
273
294
|
*/
|
274
295
|
getHeaderSettings(headerLevel, columnIndex) {
|
275
|
-
var
|
296
|
+
var _classPrivateFieldGet2, _classPrivateFieldGet3;
|
276
297
|
if (headerLevel < 0) {
|
277
298
|
headerLevel = this.rowCoordsToLevel(headerLevel);
|
278
299
|
}
|
279
300
|
if (headerLevel === null || headerLevel >= this.getLayersCount()) {
|
280
301
|
return null;
|
281
302
|
}
|
282
|
-
return (
|
303
|
+
return (_classPrivateFieldGet2 = (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _stateMatrix)[headerLevel]) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3[columnIndex]) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : null;
|
283
304
|
}
|
284
305
|
|
285
306
|
/**
|
@@ -298,7 +319,7 @@ export default class StateManager {
|
|
298
319
|
if (headerLevel === null || headerLevel >= this.getLayersCount()) {
|
299
320
|
return null;
|
300
321
|
}
|
301
|
-
const node = this
|
322
|
+
const node = _classPrivateFieldGet(this, _headersTree).getNode(headerLevel, columnIndex);
|
302
323
|
if (!node) {
|
303
324
|
return null;
|
304
325
|
}
|
@@ -320,7 +341,7 @@ export default class StateManager {
|
|
320
341
|
var _this$getHeaderSettin;
|
321
342
|
const {
|
322
343
|
isRoot
|
323
|
-
} = (_this$getHeaderSettin = this.getHeaderSettings(headerLevel, columnIndex))
|
344
|
+
} = (_this$getHeaderSettin = this.getHeaderSettings(headerLevel, columnIndex)) !== null && _this$getHeaderSettin !== void 0 ? _this$getHeaderSettin : {
|
324
345
|
isRoot: true
|
325
346
|
};
|
326
347
|
if (isRoot) {
|
@@ -331,7 +352,7 @@ export default class StateManager {
|
|
331
352
|
var _this$getHeaderSettin2;
|
332
353
|
const {
|
333
354
|
isRoot: isRootNode
|
334
|
-
} = (_this$getHeaderSettin2 = this.getHeaderSettings(headerLevel, stepBackColumn))
|
355
|
+
} = (_this$getHeaderSettin2 = this.getHeaderSettings(headerLevel, stepBackColumn)) !== null && _this$getHeaderSettin2 !== void 0 ? _this$getHeaderSettin2 : {
|
335
356
|
isRoot: true
|
336
357
|
};
|
337
358
|
if (isRootNode) {
|
@@ -348,7 +369,7 @@ export default class StateManager {
|
|
348
369
|
* @returns {number}
|
349
370
|
*/
|
350
371
|
getLayersCount() {
|
351
|
-
return this
|
372
|
+
return _classPrivateFieldGet(this, _sourceSettings).getLayersCount();
|
352
373
|
}
|
353
374
|
|
354
375
|
/**
|
@@ -357,15 +378,15 @@ export default class StateManager {
|
|
357
378
|
* @returns {number}
|
358
379
|
*/
|
359
380
|
getColumnsCount() {
|
360
|
-
return this
|
381
|
+
return _classPrivateFieldGet(this, _sourceSettings).getColumnsCount();
|
361
382
|
}
|
362
383
|
|
363
384
|
/**
|
364
385
|
* Clears the column state manager to the initial state.
|
365
386
|
*/
|
366
387
|
clear() {
|
367
|
-
this
|
368
|
-
this
|
369
|
-
this
|
388
|
+
_classPrivateFieldSet(this, _stateMatrix, []);
|
389
|
+
_classPrivateFieldGet(this, _sourceSettings).clear();
|
390
|
+
_classPrivateFieldGet(this, _headersTree).clear();
|
370
391
|
}
|
371
392
|
}
|
@@ -76,7 +76,7 @@ function collapseNode(nodeToProcess) {
|
|
76
76
|
|
77
77
|
// Calculate by how many colspan it needs to reduce the headings to match them to
|
78
78
|
// the first child colspan width.
|
79
|
-
const colspanCompensation = nodeData.colspan - ((_getFirstChildPropert = (0, _tree.getFirstChildProperty)(nodeToProcess, 'colspan'))
|
79
|
+
const colspanCompensation = nodeData.colspan - ((_getFirstChildPropert = (0, _tree.getFirstChildProperty)(nodeToProcess, 'colspan')) !== null && _getFirstChildPropert !== void 0 ? _getFirstChildPropert : 1);
|
80
80
|
nodeToProcess.walkUp(node => {
|
81
81
|
const {
|
82
82
|
data
|
@@ -72,7 +72,7 @@ export function collapseNode(nodeToProcess) {
|
|
72
72
|
|
73
73
|
// Calculate by how many colspan it needs to reduce the headings to match them to
|
74
74
|
// the first child colspan width.
|
75
|
-
const colspanCompensation = nodeData.colspan - ((_getFirstChildPropert = getFirstChildProperty(nodeToProcess, 'colspan'))
|
75
|
+
const colspanCompensation = nodeData.colspan - ((_getFirstChildPropert = getFirstChildProperty(nodeToProcess, 'colspan')) !== null && _getFirstChildPropert !== void 0 ? _getFirstChildPropert : 1);
|
76
76
|
nodeToProcess.walkUp(node => {
|
77
77
|
const {
|
78
78
|
data
|
@@ -6,6 +6,13 @@ require("core-js/modules/es.array.push.js");
|
|
6
6
|
var _object = require("../../../helpers/object");
|
7
7
|
var _array = require("../../../helpers/array");
|
8
8
|
var _settingsNormalizer = require("./settingsNormalizer");
|
9
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
10
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
11
|
+
function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
|
12
|
+
function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
|
13
|
+
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
14
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
|
15
|
+
function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
|
9
16
|
/**
|
10
17
|
* List of properties which are configurable. That properties can be changed using public API.
|
11
18
|
*
|
@@ -22,30 +29,43 @@ const HEADER_CONFIGURABLE_PROPS = ['label', 'collapsible'];
|
|
22
29
|
* @class SourceSettings
|
23
30
|
*/
|
24
31
|
exports.HEADER_CONFIGURABLE_PROPS = HEADER_CONFIGURABLE_PROPS;
|
32
|
+
var _data = /*#__PURE__*/new WeakMap();
|
33
|
+
var _dataLength = /*#__PURE__*/new WeakMap();
|
34
|
+
var _columnsLimit = /*#__PURE__*/new WeakMap();
|
25
35
|
class SourceSettings {
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
36
|
+
constructor() {
|
37
|
+
/**
|
38
|
+
* The normalized source data (normalized user-defined settings for nested headers).
|
39
|
+
*
|
40
|
+
* @private
|
41
|
+
* @type {Array[]}
|
42
|
+
*/
|
43
|
+
_classPrivateFieldInitSpec(this, _data, {
|
44
|
+
writable: true,
|
45
|
+
value: []
|
46
|
+
});
|
47
|
+
/**
|
48
|
+
* The total length of the nested header layers.
|
49
|
+
*
|
50
|
+
* @private
|
51
|
+
* @type {number}
|
52
|
+
*/
|
53
|
+
_classPrivateFieldInitSpec(this, _dataLength, {
|
54
|
+
writable: true,
|
55
|
+
value: 0
|
56
|
+
});
|
57
|
+
/**
|
58
|
+
* Columns count limit value trims source settings to that value. If columns
|
59
|
+
* count limit intersects nested header, the header's colspan value is reduced
|
60
|
+
* to keep the whole structure stable (trimmed precisely where the limit is set).
|
61
|
+
*
|
62
|
+
* @type {number}
|
63
|
+
*/
|
64
|
+
_classPrivateFieldInitSpec(this, _columnsLimit, {
|
65
|
+
writable: true,
|
66
|
+
value: Infinity
|
67
|
+
});
|
68
|
+
}
|
49
69
|
/**
|
50
70
|
* Sets columns limit to the source settings will be trimmed. All headers which
|
51
71
|
* overlap the column limit will be reduced to keep the structure solid.
|
@@ -53,7 +73,7 @@ class SourceSettings {
|
|
53
73
|
* @param {number} columnsCount The number of columns to limit to.
|
54
74
|
*/
|
55
75
|
setColumnsLimit(columnsCount) {
|
56
|
-
this
|
76
|
+
_classPrivateFieldSet(this, _columnsLimit, columnsCount);
|
57
77
|
}
|
58
78
|
|
59
79
|
/**
|
@@ -63,8 +83,8 @@ class SourceSettings {
|
|
63
83
|
*/
|
64
84
|
setData() {
|
65
85
|
let nestedHeadersSettings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
66
|
-
this
|
67
|
-
this
|
86
|
+
_classPrivateFieldSet(this, _data, (0, _settingsNormalizer.normalizeSettings)(nestedHeadersSettings, _classPrivateFieldGet(this, _columnsLimit)));
|
87
|
+
_classPrivateFieldSet(this, _dataLength, _classPrivateFieldGet(this, _data).length);
|
68
88
|
}
|
69
89
|
|
70
90
|
/**
|
@@ -73,7 +93,7 @@ class SourceSettings {
|
|
73
93
|
* @returns {Array[]}
|
74
94
|
*/
|
75
95
|
getData() {
|
76
|
-
return this
|
96
|
+
return _classPrivateFieldGet(this, _data);
|
77
97
|
}
|
78
98
|
|
79
99
|
/**
|
@@ -105,7 +125,7 @@ class SourceSettings {
|
|
105
125
|
* header settings.
|
106
126
|
*/
|
107
127
|
map(callback) {
|
108
|
-
(0, _array.arrayEach)(this
|
128
|
+
(0, _array.arrayEach)(_classPrivateFieldGet(this, _data), header => {
|
109
129
|
(0, _array.arrayEach)(header, headerSettings => {
|
110
130
|
const propsToExtend = callback({
|
111
131
|
...headerSettings
|
@@ -128,14 +148,14 @@ class SourceSettings {
|
|
128
148
|
*/
|
129
149
|
getHeaderSettings(headerLevel, columnIndex) {
|
130
150
|
var _headersSettings$colu;
|
131
|
-
if (headerLevel >= this
|
151
|
+
if (headerLevel >= _classPrivateFieldGet(this, _dataLength) || headerLevel < 0) {
|
132
152
|
return null;
|
133
153
|
}
|
134
|
-
const headersSettings = this
|
154
|
+
const headersSettings = _classPrivateFieldGet(this, _data)[headerLevel];
|
135
155
|
if (columnIndex >= headersSettings.length) {
|
136
156
|
return null;
|
137
157
|
}
|
138
|
-
return (_headersSettings$colu = headersSettings[columnIndex])
|
158
|
+
return (_headersSettings$colu = headersSettings[columnIndex]) !== null && _headersSettings$colu !== void 0 ? _headersSettings$colu : null;
|
139
159
|
}
|
140
160
|
|
141
161
|
/**
|
@@ -151,10 +171,10 @@ class SourceSettings {
|
|
151
171
|
getHeadersSettings(headerLevel, columnIndex) {
|
152
172
|
let columnsLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
153
173
|
const headersSettingsChunks = [];
|
154
|
-
if (headerLevel >= this
|
174
|
+
if (headerLevel >= _classPrivateFieldGet(this, _dataLength) || headerLevel < 0) {
|
155
175
|
return headersSettingsChunks;
|
156
176
|
}
|
157
|
-
const headersSettings = this
|
177
|
+
const headersSettings = _classPrivateFieldGet(this, _data)[headerLevel];
|
158
178
|
let currentLength = 0;
|
159
179
|
for (let i = columnIndex; i < headersSettings.length; i++) {
|
160
180
|
const headerSettings = headersSettings[i];
|
@@ -185,7 +205,7 @@ class SourceSettings {
|
|
185
205
|
* @returns {number}
|
186
206
|
*/
|
187
207
|
getLayersCount() {
|
188
|
-
return this
|
208
|
+
return _classPrivateFieldGet(this, _dataLength);
|
189
209
|
}
|
190
210
|
|
191
211
|
/**
|
@@ -194,15 +214,15 @@ class SourceSettings {
|
|
194
214
|
* @returns {number}
|
195
215
|
*/
|
196
216
|
getColumnsCount() {
|
197
|
-
return this
|
217
|
+
return _classPrivateFieldGet(this, _dataLength) > 0 ? _classPrivateFieldGet(this, _data)[0].length : 0;
|
198
218
|
}
|
199
219
|
|
200
220
|
/**
|
201
221
|
* Clears the data.
|
202
222
|
*/
|
203
223
|
clear() {
|
204
|
-
this
|
205
|
-
this
|
224
|
+
_classPrivateFieldSet(this, _data, []);
|
225
|
+
_classPrivateFieldSet(this, _dataLength, 0);
|
206
226
|
}
|
207
227
|
}
|
208
228
|
exports.default = SourceSettings;
|