handsontable 12.3.1-next-42b5538-20230203 → 12.3.2-next-bcef33c-20230315

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. package/3rdparty/walkontable/src/calculator/viewportColumns.js +31 -9
  2. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +31 -9
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +21 -6
  4. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +21 -6
  5. package/3rdparty/walkontable/src/core/_base.js +19 -20
  6. package/3rdparty/walkontable/src/core/_base.mjs +19 -20
  7. package/3rdparty/walkontable/src/scroll.js +14 -3
  8. package/3rdparty/walkontable/src/scroll.mjs +14 -3
  9. package/3rdparty/walkontable/src/table.js +4 -2
  10. package/3rdparty/walkontable/src/table.mjs +4 -2
  11. package/3rdparty/walkontable/src/types.js +1 -0
  12. package/3rdparty/walkontable/src/types.mjs +1 -0
  13. package/3rdparty/walkontable/src/viewport.js +11 -14
  14. package/3rdparty/walkontable/src/viewport.mjs +11 -14
  15. package/CHANGELOG.md +7 -0
  16. package/base.js +2 -2
  17. package/base.mjs +2 -2
  18. package/core.js +32 -21
  19. package/core.mjs +32 -21
  20. package/dataMap/metaManager/metaSchema.js +9 -9
  21. package/dataMap/metaManager/metaSchema.mjs +9 -9
  22. package/dist/handsontable.css +2 -2
  23. package/dist/handsontable.full.css +2 -2
  24. package/dist/handsontable.full.js +4631 -3987
  25. package/dist/handsontable.full.min.css +8 -8
  26. package/dist/handsontable.full.min.js +241 -227
  27. package/dist/handsontable.js +2753 -2435
  28. package/dist/handsontable.min.css +7 -7
  29. package/dist/handsontable.min.js +3 -3
  30. package/dist/languages/all.js +1 -1
  31. package/dist/languages/all.min.js +1 -1
  32. package/dist/languages/zh-CN.js +1 -1
  33. package/dist/languages/zh-CN.min.js +1 -1
  34. package/editors/autocompleteEditor/autocompleteEditor.js +8 -9
  35. package/editors/autocompleteEditor/autocompleteEditor.mjs +8 -9
  36. package/helpers/mixed.js +2 -2
  37. package/helpers/mixed.mjs +2 -2
  38. package/i18n/languages/zh-CN.js +1 -1
  39. package/i18n/languages/zh-CN.mjs +3 -3
  40. package/languages/all.js +1 -1
  41. package/languages/index.js +1 -1
  42. package/languages/zh-CN.js +1 -1
  43. package/languages/zh-CN.mjs +3 -3
  44. package/package.json +12 -13
  45. package/plugins/base/base.js +9 -10
  46. package/plugins/base/base.mjs +9 -10
  47. package/plugins/collapsibleColumns/collapsibleColumns.js +24 -7
  48. package/plugins/collapsibleColumns/collapsibleColumns.mjs +24 -7
  49. package/plugins/copyPaste/copyPaste.js +92 -16
  50. package/plugins/copyPaste/copyPaste.mjs +92 -16
  51. package/plugins/copyPaste/copyableRanges.js +14 -8
  52. package/plugins/copyPaste/copyableRanges.mjs +14 -8
  53. package/plugins/customBorders/customBorders.js +6 -7
  54. package/plugins/customBorders/customBorders.mjs +6 -7
  55. package/plugins/filters/filters.js +0 -8
  56. package/plugins/filters/filters.mjs +0 -8
  57. package/plugins/formulas/formulas.js +34 -7
  58. package/plugins/formulas/formulas.mjs +34 -7
  59. package/plugins/hiddenColumns/hiddenColumns.js +12 -7
  60. package/plugins/hiddenColumns/hiddenColumns.mjs +12 -7
  61. package/plugins/hiddenRows/hiddenRows.js +12 -7
  62. package/plugins/hiddenRows/hiddenRows.mjs +12 -7
  63. package/plugins/nestedHeaders/nestedHeaders.js +26 -7
  64. package/plugins/nestedHeaders/nestedHeaders.mjs +26 -7
  65. package/plugins/nestedHeaders/stateManager/index.js +18 -0
  66. package/plugins/nestedHeaders/stateManager/index.mjs +18 -0
  67. package/plugins/nestedHeaders/stateManager/sourceSettings.js +19 -0
  68. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +19 -0
  69. package/translations/changesObservable/observer.js +7 -0
  70. package/translations/changesObservable/observer.mjs +7 -0
  71. package/translations/maps/linkedPhysicalIndexToValueMap.js +6 -0
  72. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +6 -0
@@ -116,14 +116,31 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
116
116
  _args[_key] = arguments[_key];
117
117
  }
118
118
  _this = _super.call.apply(_super, [this].concat(_args));
119
+ /**
120
+ * Flag used to bypass hooks in internal operations.
121
+ *
122
+ * @private
123
+ * @type {boolean}
124
+ */
119
125
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _internalOperationPending, {
120
126
  writable: true,
121
127
  value: false
122
128
  });
129
+ /**
130
+ * Flag needed to mark if Handsontable was initialized with no data.
131
+ * (Required to work around the fact, that Handsontable auto-generates sample data, when no data is provided).
132
+ *
133
+ * @type {boolean}
134
+ */
123
135
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _hotWasInitializedWithEmptyData, {
124
136
  writable: true,
125
137
  value: false
126
138
  });
139
+ /**
140
+ * The list of the HyperFormula listeners.
141
+ *
142
+ * @type {Array}
143
+ */
127
144
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _engineListeners, {
128
145
  writable: true,
129
146
  value: [['valuesUpdated', function () {
@@ -146,8 +163,25 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
146
163
  return (_this7 = _this).onEngineSheetRemoved.apply(_this7, arguments);
147
164
  }]]
148
165
  });
166
+ /**
167
+ * Static register used to set up one global HyperFormula instance.
168
+ * TODO: currently used in tests, might be removed later.
169
+ *
170
+ * @private
171
+ * @type {object}
172
+ */
149
173
  _defineProperty(_assertThisInitialized(_this), "staticRegister", staticRegister('formulas'));
174
+ /**
175
+ * The engine instance that will be used for this instance of Handsontable.
176
+ *
177
+ * @type {HyperFormula|null}
178
+ */
150
179
  _defineProperty(_assertThisInitialized(_this), "engine", null);
180
+ /**
181
+ * HyperFormula's sheet name.
182
+ *
183
+ * @type {string|null}
184
+ */
151
185
  _defineProperty(_assertThisInitialized(_this), "sheetName", null);
152
186
  return _this;
153
187
  }
@@ -1214,13 +1248,6 @@ export var Formulas = /*#__PURE__*/function (_BasePlugin) {
1214
1248
  get: function get() {
1215
1249
  return PLUGIN_PRIORITY;
1216
1250
  }
1217
-
1218
- /**
1219
- * Flag used to bypass hooks in internal operations.
1220
- *
1221
- * @private
1222
- * @type {boolean}
1223
- */
1224
1251
  }]);
1225
1252
  return Formulas;
1226
1253
  }(BasePlugin);
@@ -188,10 +188,22 @@ var HiddenColumns = /*#__PURE__*/function (_BasePlugin) {
188
188
  args[_key] = arguments[_key];
189
189
  }
190
190
  _this = _super.call.apply(_super, [this].concat(args));
191
+ /**
192
+ * Cached plugin settings.
193
+ *
194
+ * @private
195
+ * @type {object}
196
+ */
191
197
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _settings, {
192
198
  writable: true,
193
199
  value: {}
194
200
  });
201
+ /**
202
+ * Map of hidden columns by the plugin.
203
+ *
204
+ * @private
205
+ * @type {null|HidingMap}
206
+ */
195
207
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _hiddenColumnsMap, {
196
208
  writable: true,
197
209
  value: null
@@ -611,13 +623,6 @@ var HiddenColumns = /*#__PURE__*/function (_BasePlugin) {
611
623
  get: function get() {
612
624
  return PLUGIN_PRIORITY;
613
625
  }
614
-
615
- /**
616
- * Cached plugin settings.
617
- *
618
- * @private
619
- * @type {object}
620
- */
621
626
  }]);
622
627
  return HiddenColumns;
623
628
  }(_base.BasePlugin);
@@ -181,10 +181,22 @@ export var HiddenColumns = /*#__PURE__*/function (_BasePlugin) {
181
181
  args[_key] = arguments[_key];
182
182
  }
183
183
  _this = _super.call.apply(_super, [this].concat(args));
184
+ /**
185
+ * Cached plugin settings.
186
+ *
187
+ * @private
188
+ * @type {object}
189
+ */
184
190
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _settings, {
185
191
  writable: true,
186
192
  value: {}
187
193
  });
194
+ /**
195
+ * Map of hidden columns by the plugin.
196
+ *
197
+ * @private
198
+ * @type {null|HidingMap}
199
+ */
188
200
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _hiddenColumnsMap, {
189
201
  writable: true,
190
202
  value: null
@@ -604,13 +616,6 @@ export var HiddenColumns = /*#__PURE__*/function (_BasePlugin) {
604
616
  get: function get() {
605
617
  return PLUGIN_PRIORITY;
606
618
  }
607
-
608
- /**
609
- * Cached plugin settings.
610
- *
611
- * @private
612
- * @type {object}
613
- */
614
619
  }]);
615
620
  return HiddenColumns;
616
621
  }(BasePlugin);
@@ -188,10 +188,22 @@ var HiddenRows = /*#__PURE__*/function (_BasePlugin) {
188
188
  args[_key] = arguments[_key];
189
189
  }
190
190
  _this = _super.call.apply(_super, [this].concat(args));
191
+ /**
192
+ * Cached settings from Handsontable settings.
193
+ *
194
+ * @private
195
+ * @type {object}
196
+ */
191
197
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _settings, {
192
198
  writable: true,
193
199
  value: {}
194
200
  });
201
+ /**
202
+ * Map of hidden rows by the plugin.
203
+ *
204
+ * @private
205
+ * @type {HidingMap|null}
206
+ */
195
207
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _hiddenRowsMap, {
196
208
  writable: true,
197
209
  value: null
@@ -603,13 +615,6 @@ var HiddenRows = /*#__PURE__*/function (_BasePlugin) {
603
615
  get: function get() {
604
616
  return PLUGIN_PRIORITY;
605
617
  }
606
-
607
- /**
608
- * Cached settings from Handsontable settings.
609
- *
610
- * @private
611
- * @type {object}
612
- */
613
618
  }]);
614
619
  return HiddenRows;
615
620
  }(_base.BasePlugin);
@@ -181,10 +181,22 @@ export var HiddenRows = /*#__PURE__*/function (_BasePlugin) {
181
181
  args[_key] = arguments[_key];
182
182
  }
183
183
  _this = _super.call.apply(_super, [this].concat(args));
184
+ /**
185
+ * Cached settings from Handsontable settings.
186
+ *
187
+ * @private
188
+ * @type {object}
189
+ */
184
190
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _settings, {
185
191
  writable: true,
186
192
  value: {}
187
193
  });
194
+ /**
195
+ * Map of hidden rows by the plugin.
196
+ *
197
+ * @private
198
+ * @type {HidingMap|null}
199
+ */
188
200
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _hiddenRowsMap, {
189
201
  writable: true,
190
202
  value: null
@@ -596,13 +608,6 @@ export var HiddenRows = /*#__PURE__*/function (_BasePlugin) {
596
608
  get: function get() {
597
609
  return PLUGIN_PRIORITY;
598
610
  }
599
-
600
- /**
601
- * Cached settings from Handsontable settings.
602
- *
603
- * @private
604
- * @type {object}
605
- */
606
611
  }]);
607
612
  return HiddenRows;
608
613
  }(BasePlugin);
@@ -119,17 +119,43 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
119
119
  args[_key] = arguments[_key];
120
120
  }
121
121
  _this = _super.call.apply(_super, [this].concat(args));
122
+ /**
123
+ * The state manager for the nested headers.
124
+ *
125
+ * @private
126
+ * @type {StateManager}
127
+ */
122
128
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _stateManager, {
123
129
  writable: true,
124
130
  value: new _stateManager2.default()
125
131
  });
132
+ /**
133
+ * The instance of the ChangesObservable class that allows track the changes that happens in the
134
+ * column indexes.
135
+ *
136
+ * @private
137
+ * @type {ChangesObservable}
138
+ */
126
139
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _hidingIndexMapObserver, {
127
140
  writable: true,
128
141
  value: null
129
142
  });
143
+ /**
144
+ * Custom helper for getting widths of the nested headers.
145
+ *
146
+ * @private
147
+ * @type {GhostTable}
148
+ */
149
+ // @TODO This should be changed after refactor handsontable/utils/ghostTable.
130
150
  _defineProperty(_assertThisInitialized(_this), "ghostTable", new _ghostTable.default(_this.hot, function (row, column) {
131
151
  return _this.getHeaderSettings(row, column);
132
152
  }));
153
+ /**
154
+ * The flag which determines that the nested header settings contains overlapping headers
155
+ * configuration.
156
+ *
157
+ * @type {boolean}
158
+ */
133
159
  _defineProperty(_assertThisInitialized(_this), "detectedOverlappedHeaders", false);
134
160
  return _this;
135
161
  }
@@ -761,13 +787,6 @@ var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
761
787
  get: function get() {
762
788
  return PLUGIN_PRIORITY;
763
789
  }
764
-
765
- /**
766
- * The state manager for the nested headers.
767
- *
768
- * @private
769
- * @type {StateManager}
770
- */
771
790
  }]);
772
791
  return NestedHeaders;
773
792
  }(_base.BasePlugin);
@@ -112,17 +112,43 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
112
112
  args[_key] = arguments[_key];
113
113
  }
114
114
  _this = _super.call.apply(_super, [this].concat(args));
115
+ /**
116
+ * The state manager for the nested headers.
117
+ *
118
+ * @private
119
+ * @type {StateManager}
120
+ */
115
121
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _stateManager, {
116
122
  writable: true,
117
123
  value: new StateManager()
118
124
  });
125
+ /**
126
+ * The instance of the ChangesObservable class that allows track the changes that happens in the
127
+ * column indexes.
128
+ *
129
+ * @private
130
+ * @type {ChangesObservable}
131
+ */
119
132
  _classPrivateFieldInitSpec(_assertThisInitialized(_this), _hidingIndexMapObserver, {
120
133
  writable: true,
121
134
  value: null
122
135
  });
136
+ /**
137
+ * Custom helper for getting widths of the nested headers.
138
+ *
139
+ * @private
140
+ * @type {GhostTable}
141
+ */
142
+ // @TODO This should be changed after refactor handsontable/utils/ghostTable.
123
143
  _defineProperty(_assertThisInitialized(_this), "ghostTable", new GhostTable(_this.hot, function (row, column) {
124
144
  return _this.getHeaderSettings(row, column);
125
145
  }));
146
+ /**
147
+ * The flag which determines that the nested header settings contains overlapping headers
148
+ * configuration.
149
+ *
150
+ * @type {boolean}
151
+ */
126
152
  _defineProperty(_assertThisInitialized(_this), "detectedOverlappedHeaders", false);
127
153
  return _this;
128
154
  }
@@ -754,13 +780,6 @@ export var NestedHeaders = /*#__PURE__*/function (_BasePlugin) {
754
780
  get: function get() {
755
781
  return PLUGIN_PRIORITY;
756
782
  }
757
-
758
- /**
759
- * The state manager for the nested headers.
760
- *
761
- * @private
762
- * @type {StateManager}
763
- */
764
783
  }]);
765
784
  return NestedHeaders;
766
785
  }(BasePlugin);
@@ -79,14 +79,32 @@ var _stateMatrix = /*#__PURE__*/new WeakMap();
79
79
  var StateManager = /*#__PURE__*/function () {
80
80
  function StateManager() {
81
81
  _classCallCheck(this, StateManager);
82
+ /**
83
+ * The instance of the source settings class.
84
+ *
85
+ * @private
86
+ * @type {SourceSettings}
87
+ */
82
88
  _classPrivateFieldInitSpec(this, _sourceSettings, {
83
89
  writable: true,
84
90
  value: new _sourceSettings2.default()
85
91
  });
92
+ /**
93
+ * The instance of the headers tree. The tree is generated after setting new configuration data.
94
+ *
95
+ * @private
96
+ * @type {HeadersTree}
97
+ */
86
98
  _classPrivateFieldInitSpec(this, _headersTree, {
87
99
  writable: true,
88
100
  value: new _headersTree2.default(_classPrivateFieldGet(this, _sourceSettings))
89
101
  });
102
+ /**
103
+ * Cached matrix which is generated from the tree structure.
104
+ *
105
+ * @private
106
+ * @type {Array[]}
107
+ */
90
108
  _classPrivateFieldInitSpec(this, _stateMatrix, {
91
109
  writable: true,
92
110
  value: [[]]
@@ -74,14 +74,32 @@ var _stateMatrix = /*#__PURE__*/new WeakMap();
74
74
  var StateManager = /*#__PURE__*/function () {
75
75
  function StateManager() {
76
76
  _classCallCheck(this, StateManager);
77
+ /**
78
+ * The instance of the source settings class.
79
+ *
80
+ * @private
81
+ * @type {SourceSettings}
82
+ */
77
83
  _classPrivateFieldInitSpec(this, _sourceSettings, {
78
84
  writable: true,
79
85
  value: new SourceSettings()
80
86
  });
87
+ /**
88
+ * The instance of the headers tree. The tree is generated after setting new configuration data.
89
+ *
90
+ * @private
91
+ * @type {HeadersTree}
92
+ */
81
93
  _classPrivateFieldInitSpec(this, _headersTree, {
82
94
  writable: true,
83
95
  value: new HeadersTree(_classPrivateFieldGet(this, _sourceSettings))
84
96
  });
97
+ /**
98
+ * Cached matrix which is generated from the tree structure.
99
+ *
100
+ * @private
101
+ * @type {Array[]}
102
+ */
85
103
  _classPrivateFieldInitSpec(this, _stateMatrix, {
86
104
  writable: true,
87
105
  value: [[]]
@@ -63,14 +63,33 @@ var _columnsLimit = /*#__PURE__*/new WeakMap();
63
63
  var SourceSettings = /*#__PURE__*/function () {
64
64
  function SourceSettings() {
65
65
  _classCallCheck(this, SourceSettings);
66
+ /**
67
+ * The normalized source data (normalized user-defined settings for nested headers).
68
+ *
69
+ * @private
70
+ * @type {Array[]}
71
+ */
66
72
  _classPrivateFieldInitSpec(this, _data, {
67
73
  writable: true,
68
74
  value: []
69
75
  });
76
+ /**
77
+ * The total length of the nested header layers.
78
+ *
79
+ * @private
80
+ * @type {number}
81
+ */
70
82
  _classPrivateFieldInitSpec(this, _dataLength, {
71
83
  writable: true,
72
84
  value: 0
73
85
  });
86
+ /**
87
+ * Columns count limit value trims source settings to that value. If columns
88
+ * count limit intersects nested header, the header's colspan value is reduced
89
+ * to keep the whole structure stable (trimmed precisely where the limit is set).
90
+ *
91
+ * @type {number}
92
+ */
74
93
  _classPrivateFieldInitSpec(this, _columnsLimit, {
75
94
  writable: true,
76
95
  value: Infinity
@@ -58,14 +58,33 @@ var _columnsLimit = /*#__PURE__*/new WeakMap();
58
58
  var SourceSettings = /*#__PURE__*/function () {
59
59
  function SourceSettings() {
60
60
  _classCallCheck(this, SourceSettings);
61
+ /**
62
+ * The normalized source data (normalized user-defined settings for nested headers).
63
+ *
64
+ * @private
65
+ * @type {Array[]}
66
+ */
61
67
  _classPrivateFieldInitSpec(this, _data, {
62
68
  writable: true,
63
69
  value: []
64
70
  });
71
+ /**
72
+ * The total length of the nested header layers.
73
+ *
74
+ * @private
75
+ * @type {number}
76
+ */
65
77
  _classPrivateFieldInitSpec(this, _dataLength, {
66
78
  writable: true,
67
79
  value: 0
68
80
  });
81
+ /**
82
+ * Columns count limit value trims source settings to that value. If columns
83
+ * count limit intersects nested header, the header's colspan value is reduced
84
+ * to keep the whole structure stable (trimmed precisely where the limit is set).
85
+ *
86
+ * @type {number}
87
+ */
69
88
  _classPrivateFieldInitSpec(this, _columnsLimit, {
70
89
  writable: true,
71
90
  value: Infinity
@@ -39,6 +39,13 @@ var _currentInitialChanges = /*#__PURE__*/new WeakMap();
39
39
  var ChangesObserver = /*#__PURE__*/function () {
40
40
  function ChangesObserver() {
41
41
  _classCallCheck(this, ChangesObserver);
42
+ /**
43
+ * The field holds initial changes that will be used to notify the callbacks added using
44
+ * subscribe method. Regardless of the moment of listening for changes, the subscriber
45
+ * will be notified once with all changes made before subscribing.
46
+ *
47
+ * @type {Array}
48
+ */
42
49
  _classPrivateFieldInitSpec(this, _currentInitialChanges, {
43
50
  writable: true,
44
51
  value: []
@@ -34,6 +34,13 @@ var _currentInitialChanges = /*#__PURE__*/new WeakMap();
34
34
  export var ChangesObserver = /*#__PURE__*/function () {
35
35
  function ChangesObserver() {
36
36
  _classCallCheck(this, ChangesObserver);
37
+ /**
38
+ * The field holds initial changes that will be used to notify the callbacks added using
39
+ * subscribe method. Regardless of the moment of listening for changes, the subscriber
40
+ * will be notified once with all changes made before subscribing.
41
+ *
42
+ * @type {Array}
43
+ */
37
44
  _classPrivateFieldInitSpec(this, _currentInitialChanges, {
38
45
  writable: true,
39
46
  value: []
@@ -71,6 +71,12 @@ var LinkedPhysicalIndexToValueMap = /*#__PURE__*/function (_IndexMap) {
71
71
  args[_key] = arguments[_key];
72
72
  }
73
73
  _this = _super.call.apply(_super, [this].concat(args));
74
+ /**
75
+ * Indexes and values corresponding to them (entries) are stored in a certain order.
76
+ *
77
+ * @private
78
+ * @type {Array<number>}
79
+ */
74
80
  _defineProperty(_assertThisInitialized(_this), "orderOfIndexes", []);
75
81
  return _this;
76
82
  }
@@ -67,6 +67,12 @@ export var LinkedPhysicalIndexToValueMap = /*#__PURE__*/function (_IndexMap) {
67
67
  args[_key] = arguments[_key];
68
68
  }
69
69
  _this = _super.call.apply(_super, [this].concat(args));
70
+ /**
71
+ * Indexes and values corresponding to them (entries) are stored in a certain order.
72
+ *
73
+ * @private
74
+ * @type {Array<number>}
75
+ */
70
76
  _defineProperty(_assertThisInitialized(_this), "orderOfIndexes", []);
71
77
  return _this;
72
78
  }