handsontable 15.0.0 → 15.1.0-next-dfdf994-20250206

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 (168) hide show
  1. package/3rdparty/walkontable/src/index.js +2 -0
  2. package/3rdparty/walkontable/src/index.mjs +2 -1
  3. package/3rdparty/walkontable/src/overlays.js +2 -39
  4. package/3rdparty/walkontable/src/overlays.mjs +2 -39
  5. package/3rdparty/walkontable/src/renderer/_base.js +3 -4
  6. package/3rdparty/walkontable/src/renderer/_base.mjs +2 -2
  7. package/3rdparty/walkontable/src/renderer/cells.js +7 -11
  8. package/3rdparty/walkontable/src/renderer/cells.mjs +6 -9
  9. package/3rdparty/walkontable/src/renderer/colGroup.js +6 -7
  10. package/3rdparty/walkontable/src/renderer/colGroup.mjs +5 -5
  11. package/3rdparty/walkontable/src/renderer/columnHeaders.js +4 -5
  12. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +3 -3
  13. package/3rdparty/walkontable/src/renderer/index.js +18 -19
  14. package/3rdparty/walkontable/src/renderer/index.mjs +6 -6
  15. package/3rdparty/walkontable/src/renderer/rowHeaders.js +6 -7
  16. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +5 -5
  17. package/3rdparty/walkontable/src/renderer/rows.js +23 -11
  18. package/3rdparty/walkontable/src/renderer/rows.mjs +23 -10
  19. package/3rdparty/walkontable/src/renderer/table.js +1 -1
  20. package/3rdparty/walkontable/src/renderer/table.mjs +1 -1
  21. package/3rdparty/walkontable/src/selection/border/border.js +10 -2
  22. package/3rdparty/walkontable/src/selection/border/border.mjs +10 -2
  23. package/3rdparty/walkontable/src/utils/nodesPool.js +21 -6
  24. package/3rdparty/walkontable/src/utils/nodesPool.mjs +21 -6
  25. package/3rdparty/walkontable/src/utils/orderView/index.js +4 -5
  26. package/3rdparty/walkontable/src/utils/orderView/index.mjs +2 -2
  27. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +3 -4
  28. package/3rdparty/walkontable/src/utils/orderView/sharedView.mjs +2 -2
  29. package/3rdparty/walkontable/src/utils/orderView/view.js +60 -76
  30. package/3rdparty/walkontable/src/utils/orderView/view.mjs +59 -74
  31. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.js +138 -0
  32. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/index.mjs +135 -0
  33. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.js +72 -0
  34. package/3rdparty/walkontable/src/utils/orderView/viewDiffer/viewOrder.mjs +68 -0
  35. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  36. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  37. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +4 -5
  38. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +3 -3
  39. package/CHANGELOG.md +54 -0
  40. package/README.md +3 -3
  41. package/base.js +2 -2
  42. package/base.mjs +2 -2
  43. package/cellTypes/dropdownType/dropdownType.js +4 -2
  44. package/cellTypes/dropdownType/dropdownType.mjs +4 -2
  45. package/core.js +39 -38
  46. package/core.mjs +36 -35
  47. package/dataMap/dataMap.js +8 -0
  48. package/dataMap/dataMap.mjs +8 -0
  49. package/dataMap/dataSource.js +4 -0
  50. package/dataMap/dataSource.mjs +4 -0
  51. package/dataMap/metaManager/lazyFactoryMap.js +8 -5
  52. package/dataMap/metaManager/lazyFactoryMap.mjs +8 -5
  53. package/dataMap/metaManager/metaSchema.js +24 -9
  54. package/dataMap/metaManager/metaSchema.mjs +24 -9
  55. package/dist/handsontable.css +6 -2
  56. package/dist/handsontable.full.css +6 -2
  57. package/dist/handsontable.full.js +8020 -6915
  58. package/dist/handsontable.full.min.css +3 -3
  59. package/dist/handsontable.full.min.js +530 -528
  60. package/dist/handsontable.js +3827 -2902
  61. package/dist/handsontable.min.css +3 -3
  62. package/dist/handsontable.min.js +35 -33
  63. package/editors/autocompleteEditor/autocompleteEditor.js +1 -3
  64. package/editors/autocompleteEditor/autocompleteEditor.mjs +1 -3
  65. package/editors/dateEditor/dateEditor.js +4 -0
  66. package/editors/dateEditor/dateEditor.mjs +4 -0
  67. package/editors/dropdownEditor/dropdownEditor.js +3 -16
  68. package/editors/dropdownEditor/dropdownEditor.mjs +3 -16
  69. package/editors/handsontableEditor/handsontableEditor.js +4 -4
  70. package/editors/handsontableEditor/handsontableEditor.mjs +4 -4
  71. package/focusManager.js +1 -1
  72. package/focusManager.mjs +1 -1
  73. package/helpers/dom/element.d.ts +0 -1
  74. package/helpers/mixed.js +2 -2
  75. package/helpers/mixed.mjs +2 -2
  76. package/helpers/object.js +4 -0
  77. package/helpers/object.mjs +4 -0
  78. package/package.json +2 -2
  79. package/plugins/base/base.js +0 -7
  80. package/plugins/base/base.mjs +0 -7
  81. package/plugins/comments/comments.js +12 -3
  82. package/plugins/comments/comments.mjs +12 -3
  83. package/plugins/contextMenu/contextMenu.js +2 -7
  84. package/plugins/contextMenu/contextMenu.mjs +2 -7
  85. package/plugins/contextMenu/menu/menu.js +2 -2
  86. package/plugins/contextMenu/menu/menu.mjs +2 -2
  87. package/plugins/contextMenu/predefinedItems/clearColumn.js +15 -4
  88. package/plugins/contextMenu/predefinedItems/clearColumn.mjs +15 -4
  89. package/plugins/filters/conditionCollection.js +8 -7
  90. package/plugins/filters/conditionCollection.mjs +8 -7
  91. package/plugins/filters/filters.js +26 -16
  92. package/plugins/filters/filters.mjs +26 -16
  93. package/plugins/filters/utils.js +7 -24
  94. package/plugins/filters/utils.mjs +7 -24
  95. package/plugins/hiddenColumns/hiddenColumns.js +1 -3
  96. package/plugins/hiddenColumns/hiddenColumns.mjs +1 -3
  97. package/plugins/hiddenRows/hiddenRows.js +1 -3
  98. package/plugins/hiddenRows/hiddenRows.mjs +1 -3
  99. package/plugins/manualRowMove/manualRowMove.js +1 -1
  100. package/plugins/manualRowMove/manualRowMove.mjs +1 -1
  101. package/plugins/mergeCells/calculations/autofill.js +60 -44
  102. package/plugins/mergeCells/calculations/autofill.mjs +60 -44
  103. package/plugins/mergeCells/cellsCollection.js +25 -8
  104. package/plugins/mergeCells/cellsCollection.mjs +25 -8
  105. package/plugins/mergeCells/mergeCells.js +15 -16
  106. package/plugins/mergeCells/mergeCells.mjs +15 -16
  107. package/plugins/nestedHeaders/nestedHeaders.js +6 -1
  108. package/plugins/nestedHeaders/nestedHeaders.mjs +6 -1
  109. package/plugins/nestedHeaders/stateManager/index.js +1 -2
  110. package/plugins/nestedHeaders/stateManager/index.mjs +1 -2
  111. package/plugins/nestedHeaders/utils/ghostTable.js +4 -0
  112. package/plugins/nestedHeaders/utils/ghostTable.mjs +4 -0
  113. package/plugins/nestedRows/utils/rowMoveController.js +1 -6
  114. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -6
  115. package/plugins/undoRedo/actions/_base.js +19 -0
  116. package/plugins/undoRedo/actions/_base.mjs +15 -0
  117. package/plugins/undoRedo/actions/cellAlignment.js +85 -0
  118. package/plugins/undoRedo/actions/cellAlignment.mjs +81 -0
  119. package/plugins/undoRedo/actions/columnMove.js +84 -0
  120. package/plugins/undoRedo/actions/columnMove.mjs +80 -0
  121. package/plugins/undoRedo/actions/columnSort.js +73 -0
  122. package/plugins/undoRedo/actions/columnSort.mjs +69 -0
  123. package/plugins/undoRedo/actions/createColumn.js +60 -0
  124. package/plugins/undoRedo/actions/createColumn.mjs +56 -0
  125. package/plugins/undoRedo/actions/createRow.js +65 -0
  126. package/plugins/undoRedo/actions/createRow.mjs +61 -0
  127. package/plugins/undoRedo/actions/dataChange.js +123 -0
  128. package/plugins/undoRedo/actions/dataChange.mjs +119 -0
  129. package/plugins/undoRedo/actions/filters.js +66 -0
  130. package/plugins/undoRedo/actions/filters.mjs +62 -0
  131. package/plugins/undoRedo/actions/index.js +27 -0
  132. package/plugins/undoRedo/actions/index.mjs +23 -0
  133. package/plugins/undoRedo/actions/mergeCells.js +63 -0
  134. package/plugins/undoRedo/actions/mergeCells.mjs +59 -0
  135. package/plugins/undoRedo/actions/removeColumn.js +176 -0
  136. package/plugins/undoRedo/actions/removeColumn.mjs +172 -0
  137. package/plugins/undoRedo/actions/removeRow.js +119 -0
  138. package/plugins/undoRedo/actions/removeRow.mjs +115 -0
  139. package/plugins/undoRedo/actions/rowMove.js +84 -0
  140. package/plugins/undoRedo/actions/rowMove.mjs +80 -0
  141. package/plugins/undoRedo/actions/unmergeCells.js +56 -0
  142. package/plugins/undoRedo/actions/unmergeCells.mjs +52 -0
  143. package/plugins/undoRedo/index.js +3 -4
  144. package/plugins/undoRedo/index.mjs +1 -2
  145. package/plugins/undoRedo/undoRedo.js +277 -879
  146. package/plugins/undoRedo/undoRedo.mjs +277 -880
  147. package/plugins/undoRedo/utils.js +37 -0
  148. package/plugins/undoRedo/utils.mjs +33 -0
  149. package/renderers/checkboxRenderer/checkboxRenderer.js +8 -1
  150. package/renderers/checkboxRenderer/checkboxRenderer.mjs +8 -1
  151. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.js +1 -0
  152. package/shortcutContexts/commands/moveCellSelection/downByViewportHeight.mjs +1 -0
  153. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.js +2 -1
  154. package/shortcutContexts/commands/moveCellSelection/upByViewportHeight.mjs +2 -1
  155. package/styles/handsontable.css +75 -103
  156. package/styles/handsontable.min.css +3 -3
  157. package/styles/ht-theme-horizon.css +2 -2
  158. package/styles/ht-theme-horizon.min.css +2 -2
  159. package/styles/ht-theme-main.css +2 -2
  160. package/styles/ht-theme-main.min.css +2 -2
  161. package/tableView.js +17 -1
  162. package/tableView.mjs +17 -1
  163. package/utils/autoResize.js +1 -1
  164. package/utils/autoResize.mjs +1 -1
  165. package/utils/parseTable.js +1 -1
  166. package/utils/parseTable.mjs +1 -1
  167. package/validators/dateValidator/dateValidator.js +1 -1
  168. package/validators/dateValidator/dateValidator.mjs +1 -1
@@ -0,0 +1,61 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
+ import { BaseAction } from "./_base.mjs";
6
+ /**
7
+ * Action that tracks row creation.
8
+ *
9
+ * @class CreateRowAction
10
+ * @private
11
+ */
12
+ export class CreateRowAction extends BaseAction {
13
+ constructor(_ref) {
14
+ let {
15
+ index,
16
+ amount
17
+ } = _ref;
18
+ super();
19
+ /**
20
+ * @param {number} index The visual row index.
21
+ */
22
+ _defineProperty(this, "index", void 0);
23
+ /**
24
+ * @param {number} amount The number of created rows.
25
+ */
26
+ _defineProperty(this, "amount", void 0);
27
+ this.index = index;
28
+ this.amount = amount;
29
+ }
30
+ static startRegisteringEvents(hot, undoRedoPlugin) {
31
+ hot.addHook('afterCreateRow', (index, amount, source) => {
32
+ undoRedoPlugin.done(() => new CreateRowAction({
33
+ index,
34
+ amount
35
+ }), source);
36
+ });
37
+ }
38
+
39
+ /**
40
+ * @param {Core} hot The Handsontable instance.
41
+ * @param {function(): void} undoneCallback The callback to be called after the action is undone.
42
+ */
43
+ undo(hot, undoneCallback) {
44
+ const rowCount = hot.countRows();
45
+ const minSpareRows = hot.getSettings().minSpareRows;
46
+ if (this.index >= rowCount && this.index - minSpareRows < rowCount) {
47
+ this.index -= minSpareRows; // work around the situation where the needed row was removed due to an 'undo' of a made change
48
+ }
49
+ hot.addHookOnce('afterRemoveRow', undoneCallback);
50
+ hot.alter('remove_row', this.index, this.amount, 'UndoRedo.undo');
51
+ }
52
+
53
+ /**
54
+ * @param {Core} hot The Handsontable instance.
55
+ * @param {function(): void} redoneCallback The callback to be called after the action is redone.
56
+ */
57
+ redo(hot, redoneCallback) {
58
+ hot.addHookOnce('afterCreateRow', redoneCallback);
59
+ hot.alter('insert_row_above', this.index, this.amount, 'UndoRedo.redo');
60
+ }
61
+ }
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/es.array.push.js");
6
+ require("core-js/modules/esnext.iterator.constructor.js");
7
+ require("core-js/modules/esnext.iterator.find.js");
8
+ require("core-js/modules/esnext.iterator.for-each.js");
9
+ require("core-js/modules/esnext.iterator.reduce.js");
10
+ var _base = require("./_base");
11
+ var _object = require("../../../helpers/object");
12
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
14
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ /**
16
+ * Action that tracks data changes.
17
+ *
18
+ * @class DataChangeAction
19
+ * @private
20
+ */
21
+ class DataChangeAction extends _base.BaseAction {
22
+ constructor(_ref) {
23
+ let {
24
+ changes,
25
+ selected,
26
+ countCols,
27
+ countRows
28
+ } = _ref;
29
+ super();
30
+ /**
31
+ * @param {Array} changes 2D array containing information about each of the edited cells.
32
+ */
33
+ _defineProperty(this, "changes", void 0);
34
+ /**
35
+ * @param {number[]} selected The cell selection.
36
+ */
37
+ _defineProperty(this, "selected", void 0);
38
+ /**
39
+ * @param {number} countCols The number of columns before data change.
40
+ */
41
+ _defineProperty(this, "countCols", void 0);
42
+ /**
43
+ * @param {number} countRows The number of rows before data change.
44
+ */
45
+ _defineProperty(this, "countRows", void 0);
46
+ this.changes = changes;
47
+ this.selected = selected;
48
+ this.countCols = countCols;
49
+ this.countRows = countRows;
50
+ }
51
+ static startRegisteringEvents(hot, undoRedoPlugin) {
52
+ hot.addHook('beforeChange', function (changes, source) {
53
+ const changesLen = changes && changes.length;
54
+ if (!changesLen) {
55
+ return;
56
+ }
57
+ const hasDifferences = changes.find(change => {
58
+ const [,, oldValue, newValue] = change;
59
+ return oldValue !== newValue;
60
+ });
61
+ if (!hasDifferences) {
62
+ return;
63
+ }
64
+ const wrappedAction = () => {
65
+ const clonedChanges = changes.reduce((arr, change) => {
66
+ arr.push([...change]);
67
+ return arr;
68
+ }, []);
69
+ clonedChanges.forEach(change => {
70
+ change[1] = hot.propToCol(change[1]);
71
+ });
72
+ const selected = changesLen > 1 ? this.getSelected() : [[clonedChanges[0][0], clonedChanges[0][1]]];
73
+ return new DataChangeAction({
74
+ changes: clonedChanges,
75
+ selected,
76
+ countCols: hot.countCols(),
77
+ countRows: hot.countRows()
78
+ });
79
+ };
80
+ undoRedoPlugin.done(wrappedAction, source);
81
+ });
82
+ }
83
+
84
+ /**
85
+ * @param {Core} hot The Handsontable instance.
86
+ * @param {function(): void} undoneCallback The callback to be called after the action is undone.
87
+ */
88
+ undo(hot, undoneCallback) {
89
+ const data = (0, _object.deepClone)(this.changes);
90
+ for (let i = 0, len = data.length; i < len; i++) {
91
+ data[i].splice(3, 1);
92
+ }
93
+ hot.addHookOnce('afterChange', undoneCallback);
94
+ hot.setDataAtCell(data, null, null, 'UndoRedo.undo');
95
+ const rowsToRemove = hot.countRows() - this.countRows;
96
+ if (rowsToRemove > 0) {
97
+ hot.alter('remove_row', null, rowsToRemove, 'UndoRedo.undo');
98
+ }
99
+ const columnsToRemove = hot.countCols() - this.countCols;
100
+ if (columnsToRemove > 0 && hot.isColumnModificationAllowed()) {
101
+ hot.alter('remove_col', null, columnsToRemove, 'UndoRedo.undo');
102
+ }
103
+ hot.scrollToFocusedCell();
104
+ hot.selectCells(this.selected, false, false);
105
+ }
106
+
107
+ /**
108
+ * @param {Core} hot The Handsontable instance.
109
+ * @param {function(): void} redoneCallback The callback to be called after the action is redone.
110
+ */
111
+ redo(hot, redoneCallback) {
112
+ const data = (0, _object.deepClone)(this.changes);
113
+ for (let i = 0, len = data.length; i < len; i++) {
114
+ data[i].splice(2, 1);
115
+ }
116
+ hot.addHookOnce('afterChange', redoneCallback);
117
+ hot.setDataAtCell(data, null, null, 'UndoRedo.redo');
118
+ if (this.selected) {
119
+ hot.selectCells(this.selected, false, false);
120
+ }
121
+ }
122
+ }
123
+ exports.DataChangeAction = DataChangeAction;
@@ -0,0 +1,119 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ import "core-js/modules/es.array.push.js";
3
+ import "core-js/modules/esnext.iterator.constructor.js";
4
+ import "core-js/modules/esnext.iterator.find.js";
5
+ import "core-js/modules/esnext.iterator.for-each.js";
6
+ import "core-js/modules/esnext.iterator.reduce.js";
7
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ import { BaseAction } from "./_base.mjs";
11
+ import { deepClone } from "../../../helpers/object.mjs";
12
+ /**
13
+ * Action that tracks data changes.
14
+ *
15
+ * @class DataChangeAction
16
+ * @private
17
+ */
18
+ export class DataChangeAction extends BaseAction {
19
+ constructor(_ref) {
20
+ let {
21
+ changes,
22
+ selected,
23
+ countCols,
24
+ countRows
25
+ } = _ref;
26
+ super();
27
+ /**
28
+ * @param {Array} changes 2D array containing information about each of the edited cells.
29
+ */
30
+ _defineProperty(this, "changes", void 0);
31
+ /**
32
+ * @param {number[]} selected The cell selection.
33
+ */
34
+ _defineProperty(this, "selected", void 0);
35
+ /**
36
+ * @param {number} countCols The number of columns before data change.
37
+ */
38
+ _defineProperty(this, "countCols", void 0);
39
+ /**
40
+ * @param {number} countRows The number of rows before data change.
41
+ */
42
+ _defineProperty(this, "countRows", void 0);
43
+ this.changes = changes;
44
+ this.selected = selected;
45
+ this.countCols = countCols;
46
+ this.countRows = countRows;
47
+ }
48
+ static startRegisteringEvents(hot, undoRedoPlugin) {
49
+ hot.addHook('beforeChange', function (changes, source) {
50
+ const changesLen = changes && changes.length;
51
+ if (!changesLen) {
52
+ return;
53
+ }
54
+ const hasDifferences = changes.find(change => {
55
+ const [,, oldValue, newValue] = change;
56
+ return oldValue !== newValue;
57
+ });
58
+ if (!hasDifferences) {
59
+ return;
60
+ }
61
+ const wrappedAction = () => {
62
+ const clonedChanges = changes.reduce((arr, change) => {
63
+ arr.push([...change]);
64
+ return arr;
65
+ }, []);
66
+ clonedChanges.forEach(change => {
67
+ change[1] = hot.propToCol(change[1]);
68
+ });
69
+ const selected = changesLen > 1 ? this.getSelected() : [[clonedChanges[0][0], clonedChanges[0][1]]];
70
+ return new DataChangeAction({
71
+ changes: clonedChanges,
72
+ selected,
73
+ countCols: hot.countCols(),
74
+ countRows: hot.countRows()
75
+ });
76
+ };
77
+ undoRedoPlugin.done(wrappedAction, source);
78
+ });
79
+ }
80
+
81
+ /**
82
+ * @param {Core} hot The Handsontable instance.
83
+ * @param {function(): void} undoneCallback The callback to be called after the action is undone.
84
+ */
85
+ undo(hot, undoneCallback) {
86
+ const data = deepClone(this.changes);
87
+ for (let i = 0, len = data.length; i < len; i++) {
88
+ data[i].splice(3, 1);
89
+ }
90
+ hot.addHookOnce('afterChange', undoneCallback);
91
+ hot.setDataAtCell(data, null, null, 'UndoRedo.undo');
92
+ const rowsToRemove = hot.countRows() - this.countRows;
93
+ if (rowsToRemove > 0) {
94
+ hot.alter('remove_row', null, rowsToRemove, 'UndoRedo.undo');
95
+ }
96
+ const columnsToRemove = hot.countCols() - this.countCols;
97
+ if (columnsToRemove > 0 && hot.isColumnModificationAllowed()) {
98
+ hot.alter('remove_col', null, columnsToRemove, 'UndoRedo.undo');
99
+ }
100
+ hot.scrollToFocusedCell();
101
+ hot.selectCells(this.selected, false, false);
102
+ }
103
+
104
+ /**
105
+ * @param {Core} hot The Handsontable instance.
106
+ * @param {function(): void} redoneCallback The callback to be called after the action is redone.
107
+ */
108
+ redo(hot, redoneCallback) {
109
+ const data = deepClone(this.changes);
110
+ for (let i = 0, len = data.length; i < len; i++) {
111
+ data[i].splice(2, 1);
112
+ }
113
+ hot.addHookOnce('afterChange', redoneCallback);
114
+ hot.setDataAtCell(data, null, null, 'UndoRedo.redo');
115
+ if (this.selected) {
116
+ hot.selectCells(this.selected, false, false);
117
+ }
118
+ }
119
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
5
+ require("core-js/modules/esnext.iterator.constructor.js");
6
+ require("core-js/modules/esnext.iterator.filter.js");
7
+ var _base = require("./_base");
8
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
10
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
+ /**
12
+ * Action that tracks filter changes.
13
+ *
14
+ * @class FiltersAction
15
+ * @private
16
+ */
17
+ class FiltersAction extends _base.BaseAction {
18
+ constructor(_ref) {
19
+ let {
20
+ conditionsStack,
21
+ previousConditionsStack
22
+ } = _ref;
23
+ super();
24
+ /**
25
+ * @param {Array} previousConditionsStack An array of the previous filter conditions.
26
+ */
27
+ _defineProperty(this, "conditionsStack", void 0);
28
+ /**
29
+ * @param {Array} conditionsStack An array of the filter conditions.
30
+ */
31
+ _defineProperty(this, "previousConditionsStack", void 0);
32
+ this.conditionsStack = conditionsStack;
33
+ this.previousConditionsStack = previousConditionsStack;
34
+ }
35
+ static startRegisteringEvents(hot, undoRedoPlugin) {
36
+ hot.addHook('beforeFilter', (conditionsStack, previousConditionsStack) => {
37
+ undoRedoPlugin.done(() => new FiltersAction({
38
+ conditionsStack,
39
+ previousConditionsStack
40
+ }));
41
+ });
42
+ }
43
+
44
+ /**
45
+ * @param {Core} hot The Handsontable instance.
46
+ * @param {function(): void} undoneCallback The callback to be called after the action is undone.
47
+ */
48
+ undo(hot, undoneCallback) {
49
+ const filters = hot.getPlugin('filters');
50
+ hot.addHookOnce('afterViewRender', undoneCallback);
51
+ filters.conditionCollection.importAllConditions(this.previousConditionsStack);
52
+ filters.filter();
53
+ }
54
+
55
+ /**
56
+ * @param {Core} hot The Handsontable instance.
57
+ * @param {function(): void} redoneCallback The callback to be called after the action is redone.
58
+ */
59
+ redo(hot, redoneCallback) {
60
+ const filters = hot.getPlugin('filters');
61
+ hot.addHookOnce('afterViewRender', redoneCallback);
62
+ filters.conditionCollection.importAllConditions(this.conditionsStack);
63
+ filters.filter();
64
+ }
65
+ }
66
+ exports.FiltersAction = FiltersAction;
@@ -0,0 +1,62 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ import "core-js/modules/esnext.iterator.constructor.js";
3
+ import "core-js/modules/esnext.iterator.filter.js";
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import { BaseAction } from "./_base.mjs";
8
+ /**
9
+ * Action that tracks filter changes.
10
+ *
11
+ * @class FiltersAction
12
+ * @private
13
+ */
14
+ export class FiltersAction extends BaseAction {
15
+ constructor(_ref) {
16
+ let {
17
+ conditionsStack,
18
+ previousConditionsStack
19
+ } = _ref;
20
+ super();
21
+ /**
22
+ * @param {Array} previousConditionsStack An array of the previous filter conditions.
23
+ */
24
+ _defineProperty(this, "conditionsStack", void 0);
25
+ /**
26
+ * @param {Array} conditionsStack An array of the filter conditions.
27
+ */
28
+ _defineProperty(this, "previousConditionsStack", void 0);
29
+ this.conditionsStack = conditionsStack;
30
+ this.previousConditionsStack = previousConditionsStack;
31
+ }
32
+ static startRegisteringEvents(hot, undoRedoPlugin) {
33
+ hot.addHook('beforeFilter', (conditionsStack, previousConditionsStack) => {
34
+ undoRedoPlugin.done(() => new FiltersAction({
35
+ conditionsStack,
36
+ previousConditionsStack
37
+ }));
38
+ });
39
+ }
40
+
41
+ /**
42
+ * @param {Core} hot The Handsontable instance.
43
+ * @param {function(): void} undoneCallback The callback to be called after the action is undone.
44
+ */
45
+ undo(hot, undoneCallback) {
46
+ const filters = hot.getPlugin('filters');
47
+ hot.addHookOnce('afterViewRender', undoneCallback);
48
+ filters.conditionCollection.importAllConditions(this.previousConditionsStack);
49
+ filters.filter();
50
+ }
51
+
52
+ /**
53
+ * @param {Core} hot The Handsontable instance.
54
+ * @param {function(): void} redoneCallback The callback to be called after the action is redone.
55
+ */
56
+ redo(hot, redoneCallback) {
57
+ const filters = hot.getPlugin('filters');
58
+ hot.addHookOnce('afterViewRender', redoneCallback);
59
+ filters.conditionCollection.importAllConditions(this.conditionsStack);
60
+ filters.filter();
61
+ }
62
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.registerActions = registerActions;
5
+ require("core-js/modules/esnext.iterator.constructor.js");
6
+ require("core-js/modules/esnext.iterator.for-each.js");
7
+ var _cellAlignment = require("./cellAlignment");
8
+ var _columnMove = require("./columnMove");
9
+ var _columnSort = require("./columnSort");
10
+ var _createColumn = require("./createColumn");
11
+ var _createRow = require("./createRow");
12
+ var _dataChange = require("./dataChange");
13
+ var _filters = require("./filters");
14
+ var _mergeCells = require("./mergeCells");
15
+ var _removeColumn = require("./removeColumn");
16
+ var _removeRow = require("./removeRow");
17
+ var _rowMove = require("./rowMove");
18
+ var _unmergeCells = require("./unmergeCells");
19
+ /**
20
+ * Register all undo/redo actions.
21
+ *
22
+ * @param {Core} hot The Handsontable instance.
23
+ * @param {UndoRedo} undoRedoPlugin The undoRedo plugin instance.
24
+ */
25
+ function registerActions(hot, undoRedoPlugin) {
26
+ [_cellAlignment.CellAlignmentAction, _columnMove.ColumnMoveAction, _columnSort.ColumnSortAction, _createColumn.CreateColumnAction, _createRow.CreateRowAction, _dataChange.DataChangeAction, _filters.FiltersAction, _mergeCells.MergeCellsAction, _removeColumn.RemoveColumnAction, _removeRow.RemoveRowAction, _rowMove.RowMoveAction, _unmergeCells.UnmergeCellsAction].forEach(action => action.startRegisteringEvents(hot, undoRedoPlugin));
27
+ }
@@ -0,0 +1,23 @@
1
+ import "core-js/modules/esnext.iterator.constructor.js";
2
+ import "core-js/modules/esnext.iterator.for-each.js";
3
+ import { CellAlignmentAction } from "./cellAlignment.mjs";
4
+ import { ColumnMoveAction } from "./columnMove.mjs";
5
+ import { ColumnSortAction } from "./columnSort.mjs";
6
+ import { CreateColumnAction } from "./createColumn.mjs";
7
+ import { CreateRowAction } from "./createRow.mjs";
8
+ import { DataChangeAction } from "./dataChange.mjs";
9
+ import { FiltersAction } from "./filters.mjs";
10
+ import { MergeCellsAction } from "./mergeCells.mjs";
11
+ import { RemoveColumnAction } from "./removeColumn.mjs";
12
+ import { RemoveRowAction } from "./removeRow.mjs";
13
+ import { RowMoveAction } from "./rowMove.mjs";
14
+ import { UnmergeCellsAction } from "./unmergeCells.mjs";
15
+ /**
16
+ * Register all undo/redo actions.
17
+ *
18
+ * @param {Core} hot The Handsontable instance.
19
+ * @param {UndoRedo} undoRedoPlugin The undoRedo plugin instance.
20
+ */
21
+ export function registerActions(hot, undoRedoPlugin) {
22
+ [CellAlignmentAction, ColumnMoveAction, ColumnSortAction, CreateColumnAction, CreateRowAction, DataChangeAction, FiltersAction, MergeCellsAction, RemoveColumnAction, RemoveRowAction, RowMoveAction, UnmergeCellsAction].forEach(action => action.startRegisteringEvents(hot, undoRedoPlugin));
23
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
5
+ var _base = require("./_base");
6
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
8
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
+ /**
10
+ * Action that tracks changes in merged cells.
11
+ *
12
+ * @class MergeCellsAction
13
+ * @private
14
+ */
15
+ class MergeCellsAction extends _base.BaseAction {
16
+ constructor(_ref) {
17
+ let {
18
+ data,
19
+ cellRange
20
+ } = _ref;
21
+ super();
22
+ _defineProperty(this, "cellRange", void 0);
23
+ this.cellRange = cellRange;
24
+ this.data = data;
25
+ }
26
+ static startRegisteringEvents(hot, undoRedoPlugin) {
27
+ hot.addHook('beforeMergeCells', (cellRange, auto) => {
28
+ if (auto) {
29
+ return;
30
+ }
31
+ const topStartCorner = cellRange.getTopStartCorner();
32
+ const bottomEndCorner = cellRange.getBottomEndCorner();
33
+ const data = hot.getData(topStartCorner.row, topStartCorner.col, bottomEndCorner.row, bottomEndCorner.col);
34
+ undoRedoPlugin.done(() => new MergeCellsAction({
35
+ data,
36
+ cellRange
37
+ }));
38
+ });
39
+ }
40
+
41
+ /**
42
+ * @param {Core} hot The Handsontable instance.
43
+ * @param {function(): void} undoneCallback The callback to be called after the action is undone.
44
+ */
45
+ undo(hot, undoneCallback) {
46
+ const mergeCellsPlugin = hot.getPlugin('mergeCells');
47
+ hot.addHookOnce('afterViewRender', undoneCallback);
48
+ mergeCellsPlugin.unmergeRange(this.cellRange, true);
49
+ const topStartCorner = this.cellRange.getTopStartCorner();
50
+ hot.populateFromArray(topStartCorner.row, topStartCorner.col, this.data, undefined, undefined, 'MergeCells');
51
+ }
52
+
53
+ /**
54
+ * @param {Core} hot The Handsontable instance.
55
+ * @param {function(): void} redoneCallback The callback to be called after the action is redone.
56
+ */
57
+ redo(hot, redoneCallback) {
58
+ const mergeCellsPlugin = hot.getPlugin('mergeCells');
59
+ hot.addHookOnce('afterViewRender', redoneCallback);
60
+ mergeCellsPlugin.mergeRange(this.cellRange);
61
+ }
62
+ }
63
+ exports.MergeCellsAction = MergeCellsAction;
@@ -0,0 +1,59 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
+ import { BaseAction } from "./_base.mjs";
6
+ /**
7
+ * Action that tracks changes in merged cells.
8
+ *
9
+ * @class MergeCellsAction
10
+ * @private
11
+ */
12
+ export class MergeCellsAction extends BaseAction {
13
+ constructor(_ref) {
14
+ let {
15
+ data,
16
+ cellRange
17
+ } = _ref;
18
+ super();
19
+ _defineProperty(this, "cellRange", void 0);
20
+ this.cellRange = cellRange;
21
+ this.data = data;
22
+ }
23
+ static startRegisteringEvents(hot, undoRedoPlugin) {
24
+ hot.addHook('beforeMergeCells', (cellRange, auto) => {
25
+ if (auto) {
26
+ return;
27
+ }
28
+ const topStartCorner = cellRange.getTopStartCorner();
29
+ const bottomEndCorner = cellRange.getBottomEndCorner();
30
+ const data = hot.getData(topStartCorner.row, topStartCorner.col, bottomEndCorner.row, bottomEndCorner.col);
31
+ undoRedoPlugin.done(() => new MergeCellsAction({
32
+ data,
33
+ cellRange
34
+ }));
35
+ });
36
+ }
37
+
38
+ /**
39
+ * @param {Core} hot The Handsontable instance.
40
+ * @param {function(): void} undoneCallback The callback to be called after the action is undone.
41
+ */
42
+ undo(hot, undoneCallback) {
43
+ const mergeCellsPlugin = hot.getPlugin('mergeCells');
44
+ hot.addHookOnce('afterViewRender', undoneCallback);
45
+ mergeCellsPlugin.unmergeRange(this.cellRange, true);
46
+ const topStartCorner = this.cellRange.getTopStartCorner();
47
+ hot.populateFromArray(topStartCorner.row, topStartCorner.col, this.data, undefined, undefined, 'MergeCells');
48
+ }
49
+
50
+ /**
51
+ * @param {Core} hot The Handsontable instance.
52
+ * @param {function(): void} redoneCallback The callback to be called after the action is redone.
53
+ */
54
+ redo(hot, redoneCallback) {
55
+ const mergeCellsPlugin = hot.getPlugin('mergeCells');
56
+ hot.addHookOnce('afterViewRender', redoneCallback);
57
+ mergeCellsPlugin.mergeRange(this.cellRange);
58
+ }
59
+ }