handsontable 0.0.0-next-220577a-20231130 → 0.0.0-next-c886551-20231130
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/core/_base.js +0 -12
- package/3rdparty/walkontable/src/core/_base.mjs +0 -12
- package/3rdparty/walkontable/src/core/core.js +0 -2
- package/3rdparty/walkontable/src/core/core.mjs +0 -2
- package/3rdparty/walkontable/src/facade/core.js +0 -9
- package/3rdparty/walkontable/src/facade/core.mjs +0 -9
- package/3rdparty/walkontable/src/overlays.js +0 -3
- package/3rdparty/walkontable/src/overlays.mjs +0 -4
- package/3rdparty/walkontable/src/selection/manager.js +0 -1
- package/3rdparty/walkontable/src/selection/manager.mjs +0 -1
- package/3rdparty/walkontable/src/settings.js +1 -0
- package/3rdparty/walkontable/src/table.js +0 -1
- package/3rdparty/walkontable/src/table.mjs +0 -1
- package/base.js +4 -2
- package/base.mjs +2 -2
- package/core.js +0 -11
- package/core.mjs +0 -11
- package/dataMap/dataMap.js +1 -0
- package/dist/handsontable.css +2 -2
- package/dist/handsontable.full.css +2 -2
- package/dist/handsontable.full.js +19 -80
- package/dist/handsontable.full.min.css +2 -2
- package/dist/handsontable.full.min.js +4 -4
- package/dist/handsontable.js +19 -80
- package/dist/handsontable.min.css +2 -2
- package/dist/handsontable.min.js +4 -4
- package/editors/autocompleteEditor/autocompleteEditor.js +0 -2
- package/editors/autocompleteEditor/autocompleteEditor.mjs +0 -2
- package/editors/handsontableEditor/handsontableEditor.js +0 -1
- package/editors/handsontableEditor/handsontableEditor.mjs +0 -1
- package/editors/textEditor/textEditor.js +0 -4
- package/editors/textEditor/textEditor.mjs +0 -4
- package/helpers/mixed.js +1 -1
- package/helpers/mixed.mjs +1 -1
- package/package.json +1 -1
- package/pluginHooks.js +3 -1
- package/plugins/customBorders/customBorders.js +0 -5
- package/plugins/customBorders/customBorders.mjs +0 -5
- package/plugins/customBorders/utils.js +0 -1
- package/plugins/customBorders/utils.mjs +0 -1
- package/plugins/formulas/formulas.js +0 -2
- package/plugins/formulas/formulas.mjs +0 -2
- package/plugins/formulas/indexSyncer/axisSyncer.js +0 -1
- package/plugins/formulas/indexSyncer/axisSyncer.mjs +0 -1
- package/plugins/manualColumnResize/manualColumnResize.js +0 -1
- package/plugins/manualColumnResize/manualColumnResize.mjs +0 -1
- package/plugins/mergeCells/mergeCells.js +0 -2
- package/plugins/mergeCells/mergeCells.mjs +0 -2
- package/plugins/nestedHeaders/nestedHeaders.js +0 -1
- package/plugins/nestedHeaders/nestedHeaders.mjs +0 -1
- package/plugins/nestedHeaders/stateManager/headersTree.js +0 -1
- package/plugins/nestedHeaders/stateManager/headersTree.mjs +0 -1
- package/plugins/undoRedo/undoRedo.js +0 -2
- package/plugins/undoRedo/undoRedo.mjs +0 -2
- package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -1
- package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -1
- package/renderers/checkboxRenderer/checkboxRenderer.js +0 -2
- package/renderers/checkboxRenderer/checkboxRenderer.mjs +0 -2
- package/selection/highlight/highlight.js +0 -1
- package/selection/highlight/highlight.mjs +0 -1
- package/tableView.js +0 -2
- package/tableView.mjs +0 -2
- package/translations/indexMapper.js +2 -1
- package/validators/timeValidator/timeValidator.js +0 -1
- package/validators/timeValidator/timeValidator.mjs +0 -1
@@ -234,30 +234,24 @@ class CoreAbstract {
|
|
234
234
|
get drawn() {
|
235
235
|
return wot.drawn; // TODO refactoring: consider about injecting `isDrawn` function : ()=>return wot.drawn. (it'll enables remove dao layer)
|
236
236
|
},
|
237
|
-
|
238
237
|
get topOverlay() {
|
239
238
|
return wot.wtOverlays.topOverlay; // TODO refactoring: move outside dao, use IOC
|
240
239
|
},
|
241
|
-
|
242
240
|
get inlineStartOverlay() {
|
243
241
|
return wot.wtOverlays.inlineStartOverlay; // TODO refactoring: move outside dao, use IOC
|
244
242
|
},
|
245
|
-
|
246
243
|
get wtTable() {
|
247
244
|
return wot.wtTable; // TODO refactoring: move outside dao, use IOC
|
248
245
|
},
|
249
|
-
|
250
246
|
get wtViewport() {
|
251
247
|
return wot.wtViewport; // TODO refactoring: move outside dao, use IOC
|
252
248
|
},
|
253
|
-
|
254
249
|
get wtSettings() {
|
255
250
|
return wot.wtSettings;
|
256
251
|
},
|
257
252
|
get rootWindow() {
|
258
253
|
return wot.domBindings.rootWindow; // TODO refactoring: move outside dao
|
259
254
|
},
|
260
|
-
|
261
255
|
// TODO refactoring, consider about using injecting wtSettings into scroll (it'll enables remove dao layer)
|
262
256
|
get totalRows() {
|
263
257
|
return wot.wtSettings.getSetting('totalRows');
|
@@ -293,26 +287,21 @@ class CoreAbstract {
|
|
293
287
|
get parentTableOffset() {
|
294
288
|
return wot.cloneSource.wtTable.tableOffset; // TODO rethink: cloneSource exists only in Clone type.
|
295
289
|
},
|
296
|
-
|
297
290
|
get cloneSource() {
|
298
291
|
return wot.cloneSource; // TODO rethink: cloneSource exists only in Clone type.
|
299
292
|
},
|
300
|
-
|
301
293
|
get workspaceWidth() {
|
302
294
|
return wot.wtViewport.getWorkspaceWidth();
|
303
295
|
},
|
304
296
|
get wtViewport() {
|
305
297
|
return wot.wtViewport; // TODO refactoring: move outside dao, use IOC
|
306
298
|
},
|
307
|
-
|
308
299
|
get wtOverlays() {
|
309
300
|
return wot.wtOverlays; // TODO refactoring: move outside dao, use IOC
|
310
301
|
},
|
311
|
-
|
312
302
|
get selectionManager() {
|
313
303
|
return wot.selectionManager; // TODO refactoring: move outside dao, use IOC
|
314
304
|
},
|
315
|
-
|
316
305
|
get drawn() {
|
317
306
|
return wot.drawn;
|
318
307
|
},
|
@@ -323,7 +312,6 @@ class CoreAbstract {
|
|
323
312
|
get wtTable() {
|
324
313
|
return wot.wtTable; // TODO refactoring: it provides itself
|
325
314
|
},
|
326
|
-
|
327
315
|
get startColumnRendered() {
|
328
316
|
return wot.wtViewport.columnsRenderCalculator.startColumn;
|
329
317
|
},
|
@@ -230,30 +230,24 @@ export default class CoreAbstract {
|
|
230
230
|
get drawn() {
|
231
231
|
return wot.drawn; // TODO refactoring: consider about injecting `isDrawn` function : ()=>return wot.drawn. (it'll enables remove dao layer)
|
232
232
|
},
|
233
|
-
|
234
233
|
get topOverlay() {
|
235
234
|
return wot.wtOverlays.topOverlay; // TODO refactoring: move outside dao, use IOC
|
236
235
|
},
|
237
|
-
|
238
236
|
get inlineStartOverlay() {
|
239
237
|
return wot.wtOverlays.inlineStartOverlay; // TODO refactoring: move outside dao, use IOC
|
240
238
|
},
|
241
|
-
|
242
239
|
get wtTable() {
|
243
240
|
return wot.wtTable; // TODO refactoring: move outside dao, use IOC
|
244
241
|
},
|
245
|
-
|
246
242
|
get wtViewport() {
|
247
243
|
return wot.wtViewport; // TODO refactoring: move outside dao, use IOC
|
248
244
|
},
|
249
|
-
|
250
245
|
get wtSettings() {
|
251
246
|
return wot.wtSettings;
|
252
247
|
},
|
253
248
|
get rootWindow() {
|
254
249
|
return wot.domBindings.rootWindow; // TODO refactoring: move outside dao
|
255
250
|
},
|
256
|
-
|
257
251
|
// TODO refactoring, consider about using injecting wtSettings into scroll (it'll enables remove dao layer)
|
258
252
|
get totalRows() {
|
259
253
|
return wot.wtSettings.getSetting('totalRows');
|
@@ -289,26 +283,21 @@ export default class CoreAbstract {
|
|
289
283
|
get parentTableOffset() {
|
290
284
|
return wot.cloneSource.wtTable.tableOffset; // TODO rethink: cloneSource exists only in Clone type.
|
291
285
|
},
|
292
|
-
|
293
286
|
get cloneSource() {
|
294
287
|
return wot.cloneSource; // TODO rethink: cloneSource exists only in Clone type.
|
295
288
|
},
|
296
|
-
|
297
289
|
get workspaceWidth() {
|
298
290
|
return wot.wtViewport.getWorkspaceWidth();
|
299
291
|
},
|
300
292
|
get wtViewport() {
|
301
293
|
return wot.wtViewport; // TODO refactoring: move outside dao, use IOC
|
302
294
|
},
|
303
|
-
|
304
295
|
get wtOverlays() {
|
305
296
|
return wot.wtOverlays; // TODO refactoring: move outside dao, use IOC
|
306
297
|
},
|
307
|
-
|
308
298
|
get selectionManager() {
|
309
299
|
return wot.selectionManager; // TODO refactoring: move outside dao, use IOC
|
310
300
|
},
|
311
|
-
|
312
301
|
get drawn() {
|
313
302
|
return wot.drawn;
|
314
303
|
},
|
@@ -319,7 +308,6 @@ export default class CoreAbstract {
|
|
319
308
|
get wtTable() {
|
320
309
|
return wot.wtTable; // TODO refactoring: it provides itself
|
321
310
|
},
|
322
|
-
|
323
311
|
get startColumnRendered() {
|
324
312
|
return wot.wtViewport.columnsRenderCalculator.startColumn;
|
325
313
|
},
|
@@ -85,11 +85,9 @@ class Walkontable extends _base.default {
|
|
85
85
|
get topOverlay() {
|
86
86
|
return wot.wtOverlays.topOverlay; // TODO refactoring: move outside dao, use IOC
|
87
87
|
},
|
88
|
-
|
89
88
|
get inlineStartOverlay() {
|
90
89
|
return wot.wtOverlays.inlineStartOverlay; // TODO refactoring: move outside dao, use IOC
|
91
90
|
},
|
92
|
-
|
93
91
|
get bottomOverlay() {
|
94
92
|
return wot.wtOverlays.bottomOverlay; // TODO refactoring: move outside dao, use IOC
|
95
93
|
}
|
@@ -81,11 +81,9 @@ export default class Walkontable extends CoreAbstract {
|
|
81
81
|
get topOverlay() {
|
82
82
|
return wot.wtOverlays.topOverlay; // TODO refactoring: move outside dao, use IOC
|
83
83
|
},
|
84
|
-
|
85
84
|
get inlineStartOverlay() {
|
86
85
|
return wot.wtOverlays.inlineStartOverlay; // TODO refactoring: move outside dao, use IOC
|
87
86
|
},
|
88
|
-
|
89
87
|
get bottomOverlay() {
|
90
88
|
return wot.wtOverlays.bottomOverlay; // TODO refactoring: move outside dao, use IOC
|
91
89
|
}
|
@@ -41,39 +41,30 @@ class WalkontableFacade {
|
|
41
41
|
get wtSettings() {
|
42
42
|
return this._wot.wtSettings; // todo create facade
|
43
43
|
}
|
44
|
-
|
45
44
|
get cloneSource() {
|
46
45
|
return this._wot.cloneSource; // todo create facade
|
47
46
|
}
|
48
|
-
|
49
47
|
get cloneOverlay() {
|
50
48
|
return this._wot.cloneOverlay; // todo create facade
|
51
49
|
}
|
52
|
-
|
53
50
|
get selectionManager() {
|
54
51
|
return this._wot.selectionManager; // todo create facade
|
55
52
|
}
|
56
|
-
|
57
53
|
get wtViewport() {
|
58
54
|
return this._wot.wtViewport; // todo create facade
|
59
55
|
}
|
60
|
-
|
61
56
|
get wtOverlays() {
|
62
57
|
return this._wot.wtOverlays; // todo create facade
|
63
58
|
}
|
64
|
-
|
65
59
|
get wtTable() {
|
66
60
|
return this._wot.wtTable; // todo create facade
|
67
61
|
}
|
68
|
-
|
69
62
|
get wtEvent() {
|
70
63
|
return this._wot.wtEvent; // todo create facade
|
71
64
|
}
|
72
|
-
|
73
65
|
get wtScroll() {
|
74
66
|
return this._wot.wtScroll; // todo create facade
|
75
67
|
}
|
76
|
-
|
77
68
|
get drawn() {
|
78
69
|
return this._wot.drawn;
|
79
70
|
}
|
@@ -37,39 +37,30 @@ export default class WalkontableFacade {
|
|
37
37
|
get wtSettings() {
|
38
38
|
return this._wot.wtSettings; // todo create facade
|
39
39
|
}
|
40
|
-
|
41
40
|
get cloneSource() {
|
42
41
|
return this._wot.cloneSource; // todo create facade
|
43
42
|
}
|
44
|
-
|
45
43
|
get cloneOverlay() {
|
46
44
|
return this._wot.cloneOverlay; // todo create facade
|
47
45
|
}
|
48
|
-
|
49
46
|
get selectionManager() {
|
50
47
|
return this._wot.selectionManager; // todo create facade
|
51
48
|
}
|
52
|
-
|
53
49
|
get wtViewport() {
|
54
50
|
return this._wot.wtViewport; // todo create facade
|
55
51
|
}
|
56
|
-
|
57
52
|
get wtOverlays() {
|
58
53
|
return this._wot.wtOverlays; // todo create facade
|
59
54
|
}
|
60
|
-
|
61
55
|
get wtTable() {
|
62
56
|
return this._wot.wtTable; // todo create facade
|
63
57
|
}
|
64
|
-
|
65
58
|
get wtEvent() {
|
66
59
|
return this._wot.wtEvent; // todo create facade
|
67
60
|
}
|
68
|
-
|
69
61
|
get wtScroll() {
|
70
62
|
return this._wot.wtScroll; // todo create facade
|
71
63
|
}
|
72
|
-
|
73
64
|
get drawn() {
|
74
65
|
return this._wot.drawn;
|
75
66
|
}
|
@@ -226,7 +226,6 @@ class Overlays {
|
|
226
226
|
if (this.verticalScrolling) {
|
227
227
|
this.inlineStartOverlay.onScroll(); // todo the inlineStartOverlay.onScroll() fires hook. Why is it needed there, not in any another place?
|
228
228
|
}
|
229
|
-
|
230
229
|
if (this.horizontalScrolling) {
|
231
230
|
this.topOverlay.onScroll();
|
232
231
|
}
|
@@ -456,11 +455,9 @@ class Overlays {
|
|
456
455
|
if (this.topOverlay.needFullRender) {
|
457
456
|
this.topOverlay.clone.wtTable.holder.scrollLeft = scrollLeft; // todo rethink, *overlay.setScroll*()
|
458
457
|
}
|
459
|
-
|
460
458
|
if (this.bottomOverlay.needFullRender) {
|
461
459
|
this.bottomOverlay.clone.wtTable.holder.scrollLeft = scrollLeft; // todo rethink, *overlay.setScroll*()
|
462
460
|
}
|
463
|
-
|
464
461
|
if (this.inlineStartOverlay.needFullRender) {
|
465
462
|
this.inlineStartOverlay.clone.wtTable.holder.scrollTop = scrollTop; // todo rethink, *overlay.setScroll*()
|
466
463
|
}
|
@@ -223,7 +223,6 @@ class Overlays {
|
|
223
223
|
if (this.verticalScrolling) {
|
224
224
|
this.inlineStartOverlay.onScroll(); // todo the inlineStartOverlay.onScroll() fires hook. Why is it needed there, not in any another place?
|
225
225
|
}
|
226
|
-
|
227
226
|
if (this.horizontalScrolling) {
|
228
227
|
this.topOverlay.onScroll();
|
229
228
|
}
|
@@ -453,11 +452,9 @@ class Overlays {
|
|
453
452
|
if (this.topOverlay.needFullRender) {
|
454
453
|
this.topOverlay.clone.wtTable.holder.scrollLeft = scrollLeft; // todo rethink, *overlay.setScroll*()
|
455
454
|
}
|
456
|
-
|
457
455
|
if (this.bottomOverlay.needFullRender) {
|
458
456
|
this.bottomOverlay.clone.wtTable.holder.scrollLeft = scrollLeft; // todo rethink, *overlay.setScroll*()
|
459
457
|
}
|
460
|
-
|
461
458
|
if (this.inlineStartOverlay.needFullRender) {
|
462
459
|
this.inlineStartOverlay.clone.wtTable.holder.scrollTop = scrollTop; // todo rethink, *overlay.setScroll*()
|
463
460
|
}
|
@@ -645,5 +642,4 @@ class Overlays {
|
|
645
642
|
});
|
646
643
|
}
|
647
644
|
}
|
648
|
-
|
649
645
|
export default Overlays;
|
@@ -208,7 +208,6 @@ class SelectionManager {
|
|
208
208
|
borderInstance === null || borderInstance === void 0 || borderInstance.disappear();
|
209
209
|
continue; // eslint-disable-line no-continue
|
210
210
|
}
|
211
|
-
|
212
211
|
if (className) {
|
213
212
|
const elements = _classPrivateFieldGet(this, _scanner).setActiveSelection(selection).scan();
|
214
213
|
elements.forEach(element => {
|
@@ -204,7 +204,6 @@ export class SelectionManager {
|
|
204
204
|
borderInstance === null || borderInstance === void 0 || borderInstance.disappear();
|
205
205
|
continue; // eslint-disable-line no-continue
|
206
206
|
}
|
207
|
-
|
208
207
|
if (className) {
|
209
208
|
const elements = _classPrivateFieldGet(this, _scanner).setActiveSelection(selection).scan();
|
210
209
|
elements.forEach(element => {
|
@@ -96,7 +96,6 @@ class Table {
|
|
96
96
|
if (this.isMaster) {
|
97
97
|
this.alignOverlaysWithTrimmingContainer(); // todo wow, It calls method from child class (MasterTable).
|
98
98
|
}
|
99
|
-
|
100
99
|
this.fixTableDomTree();
|
101
100
|
this.rowFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
|
102
101
|
this.columnFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
|
@@ -92,7 +92,6 @@ class Table {
|
|
92
92
|
if (this.isMaster) {
|
93
93
|
this.alignOverlaysWithTrimmingContainer(); // todo wow, It calls method from child class (MasterTable).
|
94
94
|
}
|
95
|
-
|
96
95
|
this.fixTableDomTree();
|
97
96
|
this.rowFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
|
98
97
|
this.columnFilter = null; // TODO refactoring, eliminate all (re)creations of this object, then updates state when needed.
|
package/base.js
CHANGED
@@ -15,7 +15,9 @@ exports.CellRange = _src.CellRange;
|
|
15
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
16
16
|
// FIXME: Bug in eslint-plugin-import: https://github.com/benmosher/eslint-plugin-import/issues/1883
|
17
17
|
/* eslint-disable import/named */
|
18
|
+
|
18
19
|
/* eslint-enable import/named */
|
20
|
+
|
19
21
|
// register default mandatory cell type for the Base package
|
20
22
|
(0, _registry2.registerCellType)(_textType.TextCellType);
|
21
23
|
|
@@ -43,8 +45,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
|
|
43
45
|
Handsontable.CellCoords = _src.CellCoords;
|
44
46
|
Handsontable.CellRange = _src.CellRange;
|
45
47
|
Handsontable.packageName = 'handsontable';
|
46
|
-
Handsontable.buildDate = "30/11/2023
|
47
|
-
Handsontable.version = "0.0.0-next-
|
48
|
+
Handsontable.buildDate = "30/11/2023 14:24:05";
|
49
|
+
Handsontable.version = "0.0.0-next-c886551-20231130";
|
48
50
|
Handsontable.languages = {
|
49
51
|
dictionaryKeys: _registry.dictionaryKeys,
|
50
52
|
getLanguageDictionary: _registry.getLanguageDictionary,
|
package/base.mjs
CHANGED
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
|
|
35
35
|
Handsontable.CellCoords = CellCoords;
|
36
36
|
Handsontable.CellRange = CellRange;
|
37
37
|
Handsontable.packageName = 'handsontable';
|
38
|
-
Handsontable.buildDate = "30/11/2023
|
39
|
-
Handsontable.version = "0.0.0-next-
|
38
|
+
Handsontable.buildDate = "30/11/2023 14:24:11";
|
39
|
+
Handsontable.version = "0.0.0-next-c886551-20231130";
|
40
40
|
Handsontable.languages = {
|
41
41
|
dictionaryKeys,
|
42
42
|
getLanguageDictionary,
|
package/core.js
CHANGED
@@ -254,7 +254,6 @@ function Core(rootElement, userSettings) {
|
|
254
254
|
if (!this.rootElement.id || this.rootElement.id.substring(0, 3) === 'ht_') {
|
255
255
|
this.rootElement.id = this.guid; // if root element does not have an id, assign a random id
|
256
256
|
}
|
257
|
-
|
258
257
|
const visualToRenderableCoords = coords => {
|
259
258
|
const {
|
260
259
|
row: visualRow,
|
@@ -274,7 +273,6 @@ function Core(rootElement, userSettings) {
|
|
274
273
|
renderableRow >= 0 ? instance.rowIndexMapper.getVisualFromRenderableIndex(renderableRow) : renderableRow, renderableColumn >= 0 ? instance.columnIndexMapper.getVisualFromRenderableIndex(renderableColumn) : renderableColumn // eslint-disable-line max-len
|
275
274
|
);
|
276
275
|
};
|
277
|
-
|
278
276
|
let selection = new _selection.Selection(tableMeta, {
|
279
277
|
rowIndexMapper: instance.rowIndexMapper,
|
280
278
|
columnIndexMapper: instance.columnIndexMapper,
|
@@ -577,7 +575,6 @@ function Core(rootElement, userSettings) {
|
|
577
575
|
instance._refreshBorders(); // it will call render and prepare methods
|
578
576
|
}
|
579
577
|
}
|
580
|
-
|
581
578
|
break;
|
582
579
|
case 'insert_col_start':
|
583
580
|
case 'insert_col_end':
|
@@ -600,7 +597,6 @@ function Core(rootElement, userSettings) {
|
|
600
597
|
spliceArray.length += colDelta; // inserts empty (undefined) elements at the end of an array
|
601
598
|
Array.prototype.splice.apply(tableMeta.colHeaders, spliceArray); // inserts empty (undefined) elements into the colHeader array
|
602
599
|
}
|
603
|
-
|
604
600
|
const currentSelectedRange = selection.selectedRange.current();
|
605
601
|
const currentFromRange = currentSelectedRange === null || currentSelectedRange === void 0 ? void 0 : currentSelectedRange.from;
|
606
602
|
const currentFromColumn = currentFromRange === null || currentFromRange === void 0 ? void 0 : currentFromRange.col;
|
@@ -634,7 +630,6 @@ function Core(rootElement, userSettings) {
|
|
634
630
|
instance._refreshBorders(); // it will call render and prepare methods
|
635
631
|
}
|
636
632
|
}
|
637
|
-
|
638
633
|
break;
|
639
634
|
case 'remove_row':
|
640
635
|
const removeRow = indexes => {
|
@@ -730,7 +725,6 @@ function Core(rootElement, userSettings) {
|
|
730
725
|
grid.adjustRowsAndCols(); // makes sure that we did not add rows that will be removed in next refresh
|
731
726
|
}
|
732
727
|
},
|
733
|
-
|
734
728
|
/**
|
735
729
|
* Makes sure there are empty rows at the bottom of the table.
|
736
730
|
*
|
@@ -1186,7 +1180,6 @@ function Core(rootElement, userSettings) {
|
|
1186
1180
|
}
|
1187
1181
|
callback(isValid); // called when async validators are resolved and beforeChange was not async
|
1188
1182
|
};
|
1189
|
-
|
1190
1183
|
for (let i = changes.length - 1; i >= 0; i--) {
|
1191
1184
|
const [row, prop,, newValue] = changes[i];
|
1192
1185
|
const col = datamap.propToCol(prop);
|
@@ -1456,7 +1449,6 @@ function Core(rootElement, userSettings) {
|
|
1456
1449
|
if (typeof input[i][1] !== 'number') {
|
1457
1450
|
throw new Error('Method `setDataAtCell` accepts row and column number as its parameters. If you want to use object property name, use method `setDataAtRowProp`'); // eslint-disable-line max-len
|
1458
1451
|
}
|
1459
|
-
|
1460
1452
|
if (input[i][1] >= this.countCols()) {
|
1461
1453
|
prop = input[i][1];
|
1462
1454
|
} else {
|
@@ -1587,7 +1579,6 @@ function Core(rootElement, userSettings) {
|
|
1587
1579
|
if (!(typeof input === 'object' && typeof input[0] === 'object')) {
|
1588
1580
|
throw new Error('populateFromArray parameter `input` must be an array of arrays'); // API changed in 0.9-beta2, let's check if you use it correctly
|
1589
1581
|
}
|
1590
|
-
|
1591
1582
|
const c = typeof endRow === 'number' ? instance._createCellCoords(endRow, endCol) : null;
|
1592
1583
|
return grid.populateFromArray(instance._createCellCoords(row, column), input, c, source, method);
|
1593
1584
|
};
|
@@ -3488,7 +3479,6 @@ function Core(rootElement, userSettings) {
|
|
3488
3479
|
} else if (tableMeta.colHeaders && typeof tableMeta.colHeaders !== 'string' && typeof tableMeta.colHeaders !== 'number') {
|
3489
3480
|
result = (0, _data.spreadsheetColumnLabel)(columnIndex); // see #1458
|
3490
3481
|
}
|
3491
|
-
|
3492
3482
|
result = instance.runHooks('modifyColumnHeaderValue', result, column, headerLevel);
|
3493
3483
|
return result;
|
3494
3484
|
};
|
@@ -4119,7 +4109,6 @@ function Core(rootElement, userSettings) {
|
|
4119
4109
|
};
|
4120
4110
|
/* eslint-enable prefer-rest-params */
|
4121
4111
|
}
|
4122
|
-
|
4123
4112
|
const {
|
4124
4113
|
row,
|
4125
4114
|
col,
|
package/core.mjs
CHANGED
@@ -249,7 +249,6 @@ export default function Core(rootElement, userSettings) {
|
|
249
249
|
if (!this.rootElement.id || this.rootElement.id.substring(0, 3) === 'ht_') {
|
250
250
|
this.rootElement.id = this.guid; // if root element does not have an id, assign a random id
|
251
251
|
}
|
252
|
-
|
253
252
|
const visualToRenderableCoords = coords => {
|
254
253
|
const {
|
255
254
|
row: visualRow,
|
@@ -269,7 +268,6 @@ export default function Core(rootElement, userSettings) {
|
|
269
268
|
renderableRow >= 0 ? instance.rowIndexMapper.getVisualFromRenderableIndex(renderableRow) : renderableRow, renderableColumn >= 0 ? instance.columnIndexMapper.getVisualFromRenderableIndex(renderableColumn) : renderableColumn // eslint-disable-line max-len
|
270
269
|
);
|
271
270
|
};
|
272
|
-
|
273
271
|
let selection = new Selection(tableMeta, {
|
274
272
|
rowIndexMapper: instance.rowIndexMapper,
|
275
273
|
columnIndexMapper: instance.columnIndexMapper,
|
@@ -572,7 +570,6 @@ export default function Core(rootElement, userSettings) {
|
|
572
570
|
instance._refreshBorders(); // it will call render and prepare methods
|
573
571
|
}
|
574
572
|
}
|
575
|
-
|
576
573
|
break;
|
577
574
|
case 'insert_col_start':
|
578
575
|
case 'insert_col_end':
|
@@ -595,7 +592,6 @@ export default function Core(rootElement, userSettings) {
|
|
595
592
|
spliceArray.length += colDelta; // inserts empty (undefined) elements at the end of an array
|
596
593
|
Array.prototype.splice.apply(tableMeta.colHeaders, spliceArray); // inserts empty (undefined) elements into the colHeader array
|
597
594
|
}
|
598
|
-
|
599
595
|
const currentSelectedRange = selection.selectedRange.current();
|
600
596
|
const currentFromRange = currentSelectedRange === null || currentSelectedRange === void 0 ? void 0 : currentSelectedRange.from;
|
601
597
|
const currentFromColumn = currentFromRange === null || currentFromRange === void 0 ? void 0 : currentFromRange.col;
|
@@ -629,7 +625,6 @@ export default function Core(rootElement, userSettings) {
|
|
629
625
|
instance._refreshBorders(); // it will call render and prepare methods
|
630
626
|
}
|
631
627
|
}
|
632
|
-
|
633
628
|
break;
|
634
629
|
case 'remove_row':
|
635
630
|
const removeRow = indexes => {
|
@@ -725,7 +720,6 @@ export default function Core(rootElement, userSettings) {
|
|
725
720
|
grid.adjustRowsAndCols(); // makes sure that we did not add rows that will be removed in next refresh
|
726
721
|
}
|
727
722
|
},
|
728
|
-
|
729
723
|
/**
|
730
724
|
* Makes sure there are empty rows at the bottom of the table.
|
731
725
|
*
|
@@ -1181,7 +1175,6 @@ export default function Core(rootElement, userSettings) {
|
|
1181
1175
|
}
|
1182
1176
|
callback(isValid); // called when async validators are resolved and beforeChange was not async
|
1183
1177
|
};
|
1184
|
-
|
1185
1178
|
for (let i = changes.length - 1; i >= 0; i--) {
|
1186
1179
|
const [row, prop,, newValue] = changes[i];
|
1187
1180
|
const col = datamap.propToCol(prop);
|
@@ -1451,7 +1444,6 @@ export default function Core(rootElement, userSettings) {
|
|
1451
1444
|
if (typeof input[i][1] !== 'number') {
|
1452
1445
|
throw new Error('Method `setDataAtCell` accepts row and column number as its parameters. If you want to use object property name, use method `setDataAtRowProp`'); // eslint-disable-line max-len
|
1453
1446
|
}
|
1454
|
-
|
1455
1447
|
if (input[i][1] >= this.countCols()) {
|
1456
1448
|
prop = input[i][1];
|
1457
1449
|
} else {
|
@@ -1582,7 +1574,6 @@ export default function Core(rootElement, userSettings) {
|
|
1582
1574
|
if (!(typeof input === 'object' && typeof input[0] === 'object')) {
|
1583
1575
|
throw new Error('populateFromArray parameter `input` must be an array of arrays'); // API changed in 0.9-beta2, let's check if you use it correctly
|
1584
1576
|
}
|
1585
|
-
|
1586
1577
|
const c = typeof endRow === 'number' ? instance._createCellCoords(endRow, endCol) : null;
|
1587
1578
|
return grid.populateFromArray(instance._createCellCoords(row, column), input, c, source, method);
|
1588
1579
|
};
|
@@ -3483,7 +3474,6 @@ export default function Core(rootElement, userSettings) {
|
|
3483
3474
|
} else if (tableMeta.colHeaders && typeof tableMeta.colHeaders !== 'string' && typeof tableMeta.colHeaders !== 'number') {
|
3484
3475
|
result = spreadsheetColumnLabel(columnIndex); // see #1458
|
3485
3476
|
}
|
3486
|
-
|
3487
3477
|
result = instance.runHooks('modifyColumnHeaderValue', result, column, headerLevel);
|
3488
3478
|
return result;
|
3489
3479
|
};
|
@@ -4114,7 +4104,6 @@ export default function Core(rootElement, userSettings) {
|
|
4114
4104
|
};
|
4115
4105
|
/* eslint-enable prefer-rest-params */
|
4116
4106
|
}
|
4117
|
-
|
4118
4107
|
const {
|
4119
4108
|
row,
|
4120
4109
|
col,
|
package/dataMap/dataMap.js
CHANGED
@@ -33,6 +33,7 @@ The above copyright notice and this permission notice shall be included in all c
|
|
33
33
|
|
34
34
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
35
35
|
*/
|
36
|
+
|
36
37
|
/**
|
37
38
|
* Utility class that gets and saves data from/to the data source using mapping of columns numbers to object property names.
|
38
39
|
*
|
package/dist/handsontable.css
CHANGED
@@ -25,8 +25,8 @@
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
27
27
|
*
|
28
|
-
* Version: 0.0.0-next-
|
29
|
-
* Release date: 30/11/2023 (built at 30/11/2023
|
28
|
+
* Version: 0.0.0-next-c886551-20231130
|
29
|
+
* Release date: 30/11/2023 (built at 30/11/2023 14:24:16)
|
30
30
|
*/
|
31
31
|
/**
|
32
32
|
* Fix for bootstrap styles
|
@@ -25,8 +25,8 @@
|
|
25
25
|
* INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
|
26
26
|
* USE OR INABILITY TO USE THIS SOFTWARE.
|
27
27
|
*
|
28
|
-
* Version: 0.0.0-next-
|
29
|
-
* Release date: 30/11/2023 (built at 30/11/2023
|
28
|
+
* Version: 0.0.0-next-c886551-20231130
|
29
|
+
* Release date: 30/11/2023 (built at 30/11/2023 14:24:16)
|
30
30
|
*/
|
31
31
|
/**
|
32
32
|
* Fix for bootstrap styles
|