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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
  }