handsontable 12.3.3-next-e19badf-20230328 → 12.4.0-next-ddbea0c-20230512

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. package/3rdparty/walkontable/src/cell/coords.js +13 -16
  2. package/3rdparty/walkontable/src/cell/coords.mjs +13 -16
  3. package/3rdparty/walkontable/src/cell/range.js +25 -29
  4. package/3rdparty/walkontable/src/cell/range.mjs +24 -28
  5. package/3rdparty/walkontable/src/event.js +4 -0
  6. package/3rdparty/walkontable/src/event.mjs +4 -0
  7. package/3rdparty/walkontable/src/overlay/_base.js +6 -7
  8. package/3rdparty/walkontable/src/overlay/_base.mjs +6 -7
  9. package/3rdparty/walkontable/src/overlay/bottom.js +6 -7
  10. package/3rdparty/walkontable/src/overlay/bottom.mjs +6 -7
  11. package/3rdparty/walkontable/src/overlay/top.js +6 -7
  12. package/3rdparty/walkontable/src/overlay/top.mjs +6 -7
  13. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +10 -12
  14. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +10 -12
  15. package/3rdparty/walkontable/src/overlays.js +55 -64
  16. package/3rdparty/walkontable/src/overlays.mjs +55 -64
  17. package/3rdparty/walkontable/src/scroll.js +20 -23
  18. package/3rdparty/walkontable/src/scroll.mjs +20 -23
  19. package/3rdparty/walkontable/src/settings.js +13 -15
  20. package/3rdparty/walkontable/src/settings.mjs +13 -15
  21. package/3rdparty/walkontable/src/table.js +22 -26
  22. package/3rdparty/walkontable/src/table.mjs +22 -26
  23. package/CHANGELOG.md +14 -0
  24. package/base.js +2 -4
  25. package/base.mjs +2 -2
  26. package/core.js +23 -6
  27. package/core.mjs +23 -6
  28. package/dataMap/dataSource.js +5 -5
  29. package/dataMap/dataSource.mjs +5 -5
  30. package/dataMap/metaManager/metaSchema.js +9 -7
  31. package/dataMap/metaManager/metaSchema.mjs +9 -7
  32. package/dist/handsontable.css +2 -2
  33. package/dist/handsontable.full.css +2 -2
  34. package/dist/handsontable.full.js +5047 -4193
  35. package/dist/handsontable.full.min.css +2 -2
  36. package/dist/handsontable.full.min.js +86 -78
  37. package/dist/handsontable.js +4023 -3170
  38. package/dist/handsontable.min.css +2 -2
  39. package/dist/handsontable.min.js +11 -3
  40. package/dist/languages/all.js +133 -0
  41. package/dist/languages/ar-AR.js +7 -0
  42. package/dist/languages/cs-CZ.js +7 -0
  43. package/dist/languages/de-CH.js +7 -0
  44. package/dist/languages/de-DE.js +7 -0
  45. package/dist/languages/en-US.js +7 -0
  46. package/dist/languages/es-MX.js +7 -0
  47. package/dist/languages/fr-FR.js +7 -0
  48. package/dist/languages/it-IT.js +7 -0
  49. package/dist/languages/ja-JP.js +7 -0
  50. package/dist/languages/ko-KR.js +7 -0
  51. package/dist/languages/lv-LV.js +7 -0
  52. package/dist/languages/nb-NO.js +7 -0
  53. package/dist/languages/nl-NL.js +7 -0
  54. package/dist/languages/pl-PL.js +7 -0
  55. package/dist/languages/pt-BR.js +7 -0
  56. package/dist/languages/ru-RU.js +7 -0
  57. package/dist/languages/sr-SP.js +7 -0
  58. package/dist/languages/zh-CN.js +7 -0
  59. package/dist/languages/zh-TW.js +7 -0
  60. package/helpers/mixed.js +2 -2
  61. package/helpers/mixed.mjs +2 -2
  62. package/i18n/languages/ar-AR.js +7 -1
  63. package/i18n/languages/cs-CZ.js +7 -1
  64. package/i18n/languages/de-CH.js +7 -1
  65. package/i18n/languages/de-DE.js +7 -1
  66. package/i18n/languages/en-US.js +7 -1
  67. package/i18n/languages/es-MX.js +7 -1
  68. package/i18n/languages/fr-FR.js +7 -1
  69. package/i18n/languages/it-IT.js +7 -1
  70. package/i18n/languages/ja-JP.js +7 -1
  71. package/i18n/languages/ko-KR.js +7 -1
  72. package/i18n/languages/lv-LV.js +7 -1
  73. package/i18n/languages/nb-NO.js +7 -1
  74. package/i18n/languages/nl-NL.js +7 -1
  75. package/i18n/languages/pl-PL.js +7 -1
  76. package/i18n/languages/pt-BR.js +7 -1
  77. package/i18n/languages/ru-RU.js +7 -1
  78. package/i18n/languages/sr-SP.js +7 -1
  79. package/i18n/languages/zh-CN.js +7 -1
  80. package/i18n/languages/zh-TW.js +7 -1
  81. package/languages/all.js +133 -0
  82. package/languages/ar-AR.js +7 -0
  83. package/languages/cs-CZ.js +7 -0
  84. package/languages/de-CH.js +7 -0
  85. package/languages/de-DE.js +7 -0
  86. package/languages/en-US.js +7 -0
  87. package/languages/es-MX.js +7 -0
  88. package/languages/fr-FR.js +7 -0
  89. package/languages/index.js +133 -0
  90. package/languages/it-IT.js +7 -0
  91. package/languages/ja-JP.js +7 -0
  92. package/languages/ko-KR.js +7 -0
  93. package/languages/lv-LV.js +7 -0
  94. package/languages/nb-NO.js +7 -0
  95. package/languages/nl-NL.js +7 -0
  96. package/languages/pl-PL.js +7 -0
  97. package/languages/pt-BR.js +7 -0
  98. package/languages/ru-RU.js +7 -0
  99. package/languages/sr-SP.js +7 -0
  100. package/languages/zh-CN.js +7 -0
  101. package/languages/zh-TW.js +7 -0
  102. package/package.json +3 -2
  103. package/pluginHooks.js +16 -6
  104. package/pluginHooks.mjs +15 -3
  105. package/plugins/autoRowSize/autoRowSize.js +2 -2
  106. package/plugins/autoRowSize/autoRowSize.mjs +2 -2
  107. package/plugins/copyPaste/copyableRanges.js +25 -31
  108. package/plugins/copyPaste/copyableRanges.mjs +18 -24
  109. package/plugins/customBorders/customBorders.d.ts +2 -0
  110. package/plugins/filters/filters.js +5 -0
  111. package/plugins/filters/filters.mjs +5 -0
  112. package/plugins/formulas/engine/register.js +9 -0
  113. package/plugins/formulas/engine/register.mjs +13 -4
  114. package/plugins/formulas/engine/settings.js +18 -3
  115. package/plugins/formulas/engine/settings.mjs +16 -3
  116. package/plugins/formulas/formulas.js +274 -155
  117. package/plugins/formulas/formulas.mjs +274 -156
  118. package/plugins/formulas/indexSyncer/axisSyncer.js +379 -0
  119. package/plugins/formulas/indexSyncer/axisSyncer.mjs +374 -0
  120. package/plugins/formulas/indexSyncer/index.js +225 -0
  121. package/plugins/formulas/indexSyncer/index.mjs +219 -0
  122. package/plugins/formulas/utils.js +81 -0
  123. package/plugins/formulas/utils.mjs +74 -0
  124. package/plugins/manualRowMove/manualRowMove.js +26 -11
  125. package/plugins/manualRowMove/manualRowMove.mjs +27 -12
  126. package/plugins/nestedHeaders/stateManager/headersTree.js +23 -26
  127. package/plugins/nestedHeaders/stateManager/headersTree.mjs +20 -23
  128. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  129. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +1 -0
  130. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +1 -1
  131. package/plugins/nestedHeaders/utils/ghostTable.js +30 -35
  132. package/plugins/nestedHeaders/utils/ghostTable.mjs +30 -35
  133. package/plugins/registry.js +3 -1
  134. package/plugins/undoRedo/undoRedo.js +0 -1
  135. package/plugins/undoRedo/undoRedo.mjs +0 -1
  136. package/selection/highlight/visualSelection.js +5 -6
  137. package/selection/highlight/visualSelection.mjs +5 -6
  138. package/tableView.js +62 -72
  139. package/tableView.mjs +62 -72
  140. package/translations/changesObservable/observable.js +41 -46
  141. package/translations/changesObservable/observable.mjs +36 -41
  142. package/translations/changesObservable/observer.js +1 -1
  143. package/translations/indexMapper.js +21 -0
  144. package/translations/indexMapper.mjs +21 -0
  145. package/utils/dataStructures/tree.js +15 -18
  146. package/utils/dataStructures/tree.mjs +15 -18
  147. package/utils/parseTable.js +5 -1
  148. package/utils/parseTable.mjs +5 -1
@@ -33,70 +33,6 @@ import { InlineStartOverlay, TopOverlay, TopInlineStartCornerOverlay, BottomOver
33
33
  * @class Overlays
34
34
  */
35
35
  var Overlays = /*#__PURE__*/function () {
36
- /**
37
- * Walkontable instance's reference.
38
- *
39
- * @protected
40
- * @type {Walkontable}
41
- */
42
-
43
- /**
44
- * Refer to the TopOverlay instance.
45
- *
46
- * @protected
47
- * @type {TopOverlay}
48
- */
49
-
50
- /**
51
- * Refer to the BottomOverlay instance.
52
- *
53
- * @protected
54
- * @type {BottomOverlay}
55
- */
56
-
57
- /**
58
- * Refer to the InlineStartOverlay or instance.
59
- *
60
- * @protected
61
- * @type {InlineStartOverlay}
62
- */
63
-
64
- /**
65
- * Refer to the TopInlineStartCornerOverlay instance.
66
- *
67
- * @protected
68
- * @type {TopInlineStartCornerOverlay}
69
- */
70
-
71
- /**
72
- * Refer to the BottomInlineStartCornerOverlay instance.
73
- *
74
- * @protected
75
- * @type {BottomInlineStartCornerOverlay}
76
- */
77
-
78
- /**
79
- * Browser line height for purposes of translating mouse wheel.
80
- *
81
- * @private
82
- * @type {number}
83
- */
84
-
85
- /**
86
- * The walkontable settings.
87
- *
88
- * @protected
89
- * @type {Settings}
90
- */
91
-
92
- /**
93
- * The instance of the ResizeObserver that observes the size of the Walkontable wrapper element.
94
- * In case of the size change detection the `onContainerElementResize` is fired.
95
- *
96
- * @private
97
- * @type {ResizeObserver}
98
- */
99
-
100
36
  /**
101
37
  * @param {Walkontable} wotInstance The Walkontable instance. @todo refactoring remove.
102
38
  * @param {FacadeGetter} facadeGetter Function which return proper facade.
@@ -108,14 +44,69 @@ var Overlays = /*#__PURE__*/function () {
108
44
  function Overlays(wotInstance, facadeGetter, domBindings, wtSettings, eventManager, wtTable) {
109
45
  var _this = this;
110
46
  _classCallCheck(this, Overlays);
47
+ /**
48
+ * Walkontable instance's reference.
49
+ *
50
+ * @protected
51
+ * @type {Walkontable}
52
+ */
111
53
  _defineProperty(this, "wot", null);
54
+ /**
55
+ * Refer to the TopOverlay instance.
56
+ *
57
+ * @protected
58
+ * @type {TopOverlay}
59
+ */
112
60
  _defineProperty(this, "topOverlay", null);
61
+ /**
62
+ * Refer to the BottomOverlay instance.
63
+ *
64
+ * @protected
65
+ * @type {BottomOverlay}
66
+ */
113
67
  _defineProperty(this, "bottomOverlay", null);
68
+ /**
69
+ * Refer to the InlineStartOverlay or instance.
70
+ *
71
+ * @protected
72
+ * @type {InlineStartOverlay}
73
+ */
114
74
  _defineProperty(this, "inlineStartOverlay", null);
75
+ /**
76
+ * Refer to the TopInlineStartCornerOverlay instance.
77
+ *
78
+ * @protected
79
+ * @type {TopInlineStartCornerOverlay}
80
+ */
115
81
  _defineProperty(this, "topInlineStartCornerOverlay", null);
82
+ /**
83
+ * Refer to the BottomInlineStartCornerOverlay instance.
84
+ *
85
+ * @protected
86
+ * @type {BottomInlineStartCornerOverlay}
87
+ */
116
88
  _defineProperty(this, "bottomInlineStartCornerOverlay", null);
89
+ /**
90
+ * Browser line height for purposes of translating mouse wheel.
91
+ *
92
+ * @private
93
+ * @type {number}
94
+ */
117
95
  _defineProperty(this, "browserLineHeight", undefined);
96
+ /**
97
+ * The walkontable settings.
98
+ *
99
+ * @protected
100
+ * @type {Settings}
101
+ */
118
102
  _defineProperty(this, "wtSettings", null);
103
+ /**
104
+ * The instance of the ResizeObserver that observes the size of the Walkontable wrapper element.
105
+ * In case of the size change detection the `onContainerElementResize` is fired.
106
+ *
107
+ * @private
108
+ * @type {ResizeObserver}
109
+ */
119
110
  _defineProperty(this, "resizeObserver", new ResizeObserver(function (entries) {
120
111
  requestAnimationFrame(function () {
121
112
  if (!Array.isArray(entries) || !entries.length) {
@@ -25,36 +25,33 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
25
25
  * @class Scroll
26
26
  */
27
27
  var Scroll = /*#__PURE__*/function () {
28
- /**
29
- * The data access object.
30
- *
31
- * @protected
32
- * @type {ScrollDao}
33
- */
34
-
35
- /**
36
- * Holds the last column reached by the scroll, which determines the scroll snapping direction
37
- * (left or right) for a next horizontal scroll.
38
- *
39
- * @protected
40
- * @type {number}
41
- */
42
-
43
- /**
44
- * Holds the last row reached by the scroll, which determines the scroll snapping direction
45
- * (top or bottom) for a next vertical scroll.
46
- *
47
- * @protected
48
- * @type {number}
49
- */
50
-
51
28
  /**
52
29
  * @param {ScrollDao} dataAccessObject Tha data access object.
53
30
  */
54
31
  function Scroll(dataAccessObject) {
55
32
  _classCallCheck(this, Scroll);
33
+ /**
34
+ * The data access object.
35
+ *
36
+ * @protected
37
+ * @type {ScrollDao}
38
+ */
56
39
  _defineProperty(this, "dataAccessObject", void 0);
40
+ /**
41
+ * Holds the last column reached by the scroll, which determines the scroll snapping direction
42
+ * (left or right) for a next horizontal scroll.
43
+ *
44
+ * @protected
45
+ * @type {number}
46
+ */
57
47
  _defineProperty(this, "lastScrolledColumnPos", -1);
48
+ /**
49
+ * Holds the last row reached by the scroll, which determines the scroll snapping direction
50
+ * (top or bottom) for a next vertical scroll.
51
+ *
52
+ * @protected
53
+ * @type {number}
54
+ */
58
55
  _defineProperty(this, "lastScrolledRowPos", -1);
59
56
  this.dataAccessObject = dataAccessObject;
60
57
  }
@@ -21,36 +21,33 @@ import { innerHeight, innerWidth, getScrollLeft, getScrollTop, offset } from "..
21
21
  * @class Scroll
22
22
  */
23
23
  var Scroll = /*#__PURE__*/function () {
24
- /**
25
- * The data access object.
26
- *
27
- * @protected
28
- * @type {ScrollDao}
29
- */
30
-
31
- /**
32
- * Holds the last column reached by the scroll, which determines the scroll snapping direction
33
- * (left or right) for a next horizontal scroll.
34
- *
35
- * @protected
36
- * @type {number}
37
- */
38
-
39
- /**
40
- * Holds the last row reached by the scroll, which determines the scroll snapping direction
41
- * (top or bottom) for a next vertical scroll.
42
- *
43
- * @protected
44
- * @type {number}
45
- */
46
-
47
24
  /**
48
25
  * @param {ScrollDao} dataAccessObject Tha data access object.
49
26
  */
50
27
  function Scroll(dataAccessObject) {
51
28
  _classCallCheck(this, Scroll);
29
+ /**
30
+ * The data access object.
31
+ *
32
+ * @protected
33
+ * @type {ScrollDao}
34
+ */
52
35
  _defineProperty(this, "dataAccessObject", void 0);
36
+ /**
37
+ * Holds the last column reached by the scroll, which determines the scroll snapping direction
38
+ * (left or right) for a next horizontal scroll.
39
+ *
40
+ * @protected
41
+ * @type {number}
42
+ */
53
43
  _defineProperty(this, "lastScrolledColumnPos", -1);
44
+ /**
45
+ * Holds the last row reached by the scroll, which determines the scroll snapping direction
46
+ * (top or bottom) for a next vertical scroll.
47
+ *
48
+ * @protected
49
+ * @type {number}
50
+ */
54
51
  _defineProperty(this, "lastScrolledRowPos", -1);
55
52
  this.dataAccessObject = dataAccessObject;
56
53
  }
@@ -95,28 +95,26 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
95
95
  * @class Settings
96
96
  */
97
97
  var Settings = /*#__PURE__*/function () {
98
- /**
99
- * Reference to settings.
100
- *
101
- * @protected
102
- * @type {SettingsPure}
103
- */
104
-
105
- /**
106
- * The defaults values of settings.
107
- * Void 0 means it is required, null means it can be empty.
108
- *
109
- * @public
110
- * @type {Readonly<SettingsPure>}
111
- */
112
-
113
98
  /**
114
99
  * @param {SettingsPure} settings The user defined settings.
115
100
  */
116
101
  function Settings(settings) {
117
102
  var _this = this;
118
103
  _classCallCheck(this, Settings);
104
+ /**
105
+ * Reference to settings.
106
+ *
107
+ * @protected
108
+ * @type {SettingsPure}
109
+ */
119
110
  _defineProperty(this, "settings", {});
111
+ /**
112
+ * The defaults values of settings.
113
+ * Void 0 means it is required, null means it can be empty.
114
+ *
115
+ * @public
116
+ * @type {Readonly<SettingsPure>}
117
+ */
120
118
  _defineProperty(this, "defaults", Object.freeze(this.getDefaults()));
121
119
  (0, _object.objectEach)(this.defaults, function (value, key) {
122
120
  if (settings[key] !== void 0) {
@@ -91,28 +91,26 @@ import { objectEach } from "../../../helpers/object.mjs";
91
91
  * @class Settings
92
92
  */
93
93
  var Settings = /*#__PURE__*/function () {
94
- /**
95
- * Reference to settings.
96
- *
97
- * @protected
98
- * @type {SettingsPure}
99
- */
100
-
101
- /**
102
- * The defaults values of settings.
103
- * Void 0 means it is required, null means it can be empty.
104
- *
105
- * @public
106
- * @type {Readonly<SettingsPure>}
107
- */
108
-
109
94
  /**
110
95
  * @param {SettingsPure} settings The user defined settings.
111
96
  */
112
97
  function Settings(settings) {
113
98
  var _this = this;
114
99
  _classCallCheck(this, Settings);
100
+ /**
101
+ * Reference to settings.
102
+ *
103
+ * @protected
104
+ * @type {SettingsPure}
105
+ */
115
106
  _defineProperty(this, "settings", {});
107
+ /**
108
+ * The defaults values of settings.
109
+ * Void 0 means it is required, null means it can be empty.
110
+ *
111
+ * @public
112
+ * @type {Readonly<SettingsPure>}
113
+ */
116
114
  _defineProperty(this, "defaults", Object.freeze(this.getDefaults()));
117
115
  objectEach(this.defaults, function (value, key) {
118
116
  if (settings[key] !== void 0) {
@@ -56,32 +56,6 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
56
56
  * @abstract
57
57
  */
58
58
  var Table = /*#__PURE__*/function () {
59
- /**
60
- * The walkontable settings.
61
- *
62
- * @protected
63
- * @type {Settings}
64
- */
65
-
66
- /**
67
- * Indicates if the table has height bigger than 0px.
68
- *
69
- * @type {boolean}
70
- */
71
-
72
- /**
73
- * Indicates if the table has width bigger than 0px.
74
- *
75
- * @type {boolean}
76
- */
77
-
78
- /**
79
- * Indicates if the table is visible. By visible, it means that the holder
80
- * element has CSS 'display' property different than 'none'.
81
- *
82
- * @type {boolean}
83
- */
84
-
85
59
  /**
86
60
  *
87
61
  * @abstract
@@ -94,13 +68,35 @@ var Table = /*#__PURE__*/function () {
94
68
  function Table(dataAccessObject, facadeGetter, domBindings, wtSettings, name) {
95
69
  var _this = this;
96
70
  _classCallCheck(this, Table);
71
+ /**
72
+ * The walkontable settings.
73
+ *
74
+ * @protected
75
+ * @type {Settings}
76
+ */
97
77
  _defineProperty(this, "wtSettings", null);
98
78
  _defineProperty(this, "domBindings", void 0);
99
79
  _defineProperty(this, "TBODY", null);
100
80
  _defineProperty(this, "THEAD", null);
101
81
  _defineProperty(this, "COLGROUP", null);
82
+ /**
83
+ * Indicates if the table has height bigger than 0px.
84
+ *
85
+ * @type {boolean}
86
+ */
102
87
  _defineProperty(this, "hasTableHeight", true);
88
+ /**
89
+ * Indicates if the table has width bigger than 0px.
90
+ *
91
+ * @type {boolean}
92
+ */
103
93
  _defineProperty(this, "hasTableWidth", true);
94
+ /**
95
+ * Indicates if the table is visible. By visible, it means that the holder
96
+ * element has CSS 'display' property different than 'none'.
97
+ *
98
+ * @type {boolean}
99
+ */
104
100
  _defineProperty(this, "isTableVisible", false);
105
101
  _defineProperty(this, "tableOffset", 0);
106
102
  _defineProperty(this, "holderOffset", 0);
@@ -51,32 +51,6 @@ import { CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_COR
51
51
  * @abstract
52
52
  */
53
53
  var Table = /*#__PURE__*/function () {
54
- /**
55
- * The walkontable settings.
56
- *
57
- * @protected
58
- * @type {Settings}
59
- */
60
-
61
- /**
62
- * Indicates if the table has height bigger than 0px.
63
- *
64
- * @type {boolean}
65
- */
66
-
67
- /**
68
- * Indicates if the table has width bigger than 0px.
69
- *
70
- * @type {boolean}
71
- */
72
-
73
- /**
74
- * Indicates if the table is visible. By visible, it means that the holder
75
- * element has CSS 'display' property different than 'none'.
76
- *
77
- * @type {boolean}
78
- */
79
-
80
54
  /**
81
55
  *
82
56
  * @abstract
@@ -89,13 +63,35 @@ var Table = /*#__PURE__*/function () {
89
63
  function Table(dataAccessObject, facadeGetter, domBindings, wtSettings, name) {
90
64
  var _this = this;
91
65
  _classCallCheck(this, Table);
66
+ /**
67
+ * The walkontable settings.
68
+ *
69
+ * @protected
70
+ * @type {Settings}
71
+ */
92
72
  _defineProperty(this, "wtSettings", null);
93
73
  _defineProperty(this, "domBindings", void 0);
94
74
  _defineProperty(this, "TBODY", null);
95
75
  _defineProperty(this, "THEAD", null);
96
76
  _defineProperty(this, "COLGROUP", null);
77
+ /**
78
+ * Indicates if the table has height bigger than 0px.
79
+ *
80
+ * @type {boolean}
81
+ */
97
82
  _defineProperty(this, "hasTableHeight", true);
83
+ /**
84
+ * Indicates if the table has width bigger than 0px.
85
+ *
86
+ * @type {boolean}
87
+ */
98
88
  _defineProperty(this, "hasTableWidth", true);
89
+ /**
90
+ * Indicates if the table is visible. By visible, it means that the holder
91
+ * element has CSS 'display' property different than 'none'.
92
+ *
93
+ * @type {boolean}
94
+ */
99
95
  _defineProperty(this, "isTableVisible", false);
100
96
  _defineProperty(this, "tableOffset", 0);
101
97
  _defineProperty(this, "holderOffset", 0);
package/CHANGELOG.md CHANGED
@@ -9,6 +9,20 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
9
9
 
10
10
  <!-- UNVERSIONED -->
11
11
 
12
+ ## [12.4.0] - 2023-05-23
13
+
14
+ ### Added
15
+ - Added new afterColumnSequenceChange and afterRowSequenceChange hooks and synchronization of actions done on HOT with HF's engine [#10215](https://github.com/handsontable/handsontable/pull/10215)
16
+
17
+ ### Fixed
18
+ - Fixed problem related to copying and pasting from Hansontable to Excel [#10017](https://github.com/handsontable/handsontable/issues/10017)
19
+ - Fixed an issue where Handsontable's dates didn't sync correctly with HyperFormula's dates. [#10085](https://github.com/handsontable/handsontable/issues/10085)
20
+ - Fixed problem related to Autofill, TrimRows and Formulas plugins cooperation. [#10200](https://github.com/handsontable/handsontable/issues/10200)
21
+ - Fixed a problem where re-entering the same cells/headers with the mouse cursor would not trigger the `beforeOnCellMouseOver` and `afterOnCellMouseOver` hooks. [#10321](https://github.com/handsontable/handsontable/pull/10321)
22
+ - Fixed a problem where Handsontable's `updateSettings` method would reset the HyperFormula's Undo/Redo actions stack in the connected instance. [#10326](https://github.com/handsontable/handsontable/pull/10326)
23
+ - Updated TypeScript definition files related to CustomBorders plugin [#1240](https://github.com/handsontable/handsontable/pull/1240)
24
+ - Fixed problems with backlight and guideline elements misalignment and moving row after the last position [#9556](https://github.com/handsontable/handsontable/issues/9556)
25
+
12
26
  ## [12.3.3] - 2023-03-28
13
27
 
14
28
  ### Added
package/base.js CHANGED
@@ -16,9 +16,7 @@ exports.CellRange = _src.CellRange;
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
  // FIXME: Bug in eslint-plugin-import: https://github.com/benmosher/eslint-plugin-import/issues/1883
18
18
  /* eslint-disable import/named */
19
-
20
19
  /* eslint-enable import/named */
21
-
22
20
  // register default mandatory cell type for the Base package
23
21
  (0, _registry2.registerCellType)(_textType.TextCellType);
24
22
 
@@ -46,8 +44,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
46
44
  Handsontable.CellCoords = _src.CellCoords;
47
45
  Handsontable.CellRange = _src.CellRange;
48
46
  Handsontable.packageName = 'handsontable';
49
- Handsontable.buildDate = "28/03/2023 10:00:43";
50
- Handsontable.version = "12.3.3-next-e19badf-20230328";
47
+ Handsontable.buildDate = "12/05/2023 12:12:12";
48
+ Handsontable.version = "12.4.0-next-ddbea0c-20230512";
51
49
  Handsontable.languages = {
52
50
  dictionaryKeys: _registry.dictionaryKeys,
53
51
  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 = "28/03/2023 10:00:57";
39
- Handsontable.version = "12.3.3-next-e19badf-20230328";
38
+ Handsontable.buildDate = "12/05/2023 12:12:29";
39
+ Handsontable.version = "12.4.0-next-ddbea0c-20230512";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys: dictionaryKeys,
42
42
  getLanguageDictionary: getLanguageDictionary,
package/core.js CHANGED
@@ -107,7 +107,7 @@ var deprecationWarns = new Set();
107
107
  * :::
108
108
  *
109
109
  * ::: only-for react
110
- * ```jsx{3,7,13}
110
+ * ```jsx
111
111
  * import { useRef } from 'react';
112
112
  *
113
113
  * const hotTableComponent = useRef(null);
@@ -263,6 +263,12 @@ function Core(rootElement, userSettings) {
263
263
  * @type {IndexMapper}
264
264
  */
265
265
  this.rowIndexMapper = new _translations.IndexMapper();
266
+ this.columnIndexMapper.addLocalHook('indexesSequenceChange', function (source) {
267
+ instance.runHooks('afterColumnSequenceChange', source);
268
+ });
269
+ this.rowIndexMapper.addLocalHook('indexesSequenceChange', function (source) {
270
+ instance.runHooks('afterRowSequenceChange', source);
271
+ });
266
272
  dataSource = new _dataSource.default(instance);
267
273
  if (!this.rootElement.id || this.rootElement.id.substring(0, 3) === 'ht_') {
268
274
  this.rootElement.id = this.guid; // if root element does not have an id, assign a random id
@@ -2442,11 +2448,13 @@ function Core(rootElement, userSettings) {
2442
2448
  };
2443
2449
 
2444
2450
  /**
2445
- * Get value from the selected cell.
2451
+ * Gets the value of the currently focused cell.
2452
+ *
2453
+ * For column headers and row headers, returns `null`.
2446
2454
  *
2447
2455
  * @memberof Core#
2448
2456
  * @function getValue
2449
- * @returns {*} Value of selected cell.
2457
+ * @returns {*} The value of the focused cell.
2450
2458
  */
2451
2459
  this.getValue = function () {
2452
2460
  var sel = instance.getSelectedLast();
@@ -2789,6 +2797,11 @@ function Core(rootElement, userSettings) {
2789
2797
  * __Note__: This method does not participate in data transformation. If the visual data of the table is reordered,
2790
2798
  * sorted or trimmed only physical indexes are correct.
2791
2799
  *
2800
+ * __Note__: This method may return incorrect values for cells that contain
2801
+ * [formulas](@/guides/formulas/formula-calculation.md). This is because `getSourceData()`
2802
+ * operates on source data ([physical indexes](@/api/indexMapper.md)),
2803
+ * whereas formulas operate on visual data (visual indexes).
2804
+ *
2792
2805
  * @memberof Core#
2793
2806
  * @function getSourceData
2794
2807
  * @param {number} [row] From physical row index.
@@ -3138,7 +3151,13 @@ function Core(rootElement, userSettings) {
3138
3151
  };
3139
3152
 
3140
3153
  /**
3141
- * Checks if the data format and config allows user to modify the column structure.
3154
+ * Checks if your [data format](@/guides/getting-started/binding-to-data.md#compatible-data-types)
3155
+ * and [configuration options](@/guides/getting-started/configuration-options.md)
3156
+ * allow for changing the number of columns.
3157
+ *
3158
+ * Returns `false` when your data is an array of objects,
3159
+ * or when you use the [`columns`](@/api/options.md#columns) option.
3160
+ * Otherwise, returns `true`.
3142
3161
  *
3143
3162
  * @memberof Core#
3144
3163
  * @function isColumnModificationAllowed
@@ -4104,8 +4123,6 @@ function Core(rootElement, userSettings) {
4104
4123
  if (datamap) {
4105
4124
  datamap.destroy();
4106
4125
  }
4107
- instance.rowIndexMapper = null;
4108
- instance.columnIndexMapper = null;
4109
4126
  datamap = null;
4110
4127
  grid = null;
4111
4128
  selection = null;
package/core.mjs CHANGED
@@ -102,7 +102,7 @@ var deprecationWarns = new Set();
102
102
  * :::
103
103
  *
104
104
  * ::: only-for react
105
- * ```jsx{3,7,13}
105
+ * ```jsx
106
106
  * import { useRef } from 'react';
107
107
  *
108
108
  * const hotTableComponent = useRef(null);
@@ -258,6 +258,12 @@ export default function Core(rootElement, userSettings) {
258
258
  * @type {IndexMapper}
259
259
  */
260
260
  this.rowIndexMapper = new IndexMapper();
261
+ this.columnIndexMapper.addLocalHook('indexesSequenceChange', function (source) {
262
+ instance.runHooks('afterColumnSequenceChange', source);
263
+ });
264
+ this.rowIndexMapper.addLocalHook('indexesSequenceChange', function (source) {
265
+ instance.runHooks('afterRowSequenceChange', source);
266
+ });
261
267
  dataSource = new DataSource(instance);
262
268
  if (!this.rootElement.id || this.rootElement.id.substring(0, 3) === 'ht_') {
263
269
  this.rootElement.id = this.guid; // if root element does not have an id, assign a random id
@@ -2437,11 +2443,13 @@ export default function Core(rootElement, userSettings) {
2437
2443
  };
2438
2444
 
2439
2445
  /**
2440
- * Get value from the selected cell.
2446
+ * Gets the value of the currently focused cell.
2447
+ *
2448
+ * For column headers and row headers, returns `null`.
2441
2449
  *
2442
2450
  * @memberof Core#
2443
2451
  * @function getValue
2444
- * @returns {*} Value of selected cell.
2452
+ * @returns {*} The value of the focused cell.
2445
2453
  */
2446
2454
  this.getValue = function () {
2447
2455
  var sel = instance.getSelectedLast();
@@ -2784,6 +2792,11 @@ export default function Core(rootElement, userSettings) {
2784
2792
  * __Note__: This method does not participate in data transformation. If the visual data of the table is reordered,
2785
2793
  * sorted or trimmed only physical indexes are correct.
2786
2794
  *
2795
+ * __Note__: This method may return incorrect values for cells that contain
2796
+ * [formulas](@/guides/formulas/formula-calculation.md). This is because `getSourceData()`
2797
+ * operates on source data ([physical indexes](@/api/indexMapper.md)),
2798
+ * whereas formulas operate on visual data (visual indexes).
2799
+ *
2787
2800
  * @memberof Core#
2788
2801
  * @function getSourceData
2789
2802
  * @param {number} [row] From physical row index.
@@ -3133,7 +3146,13 @@ export default function Core(rootElement, userSettings) {
3133
3146
  };
3134
3147
 
3135
3148
  /**
3136
- * Checks if the data format and config allows user to modify the column structure.
3149
+ * Checks if your [data format](@/guides/getting-started/binding-to-data.md#compatible-data-types)
3150
+ * and [configuration options](@/guides/getting-started/configuration-options.md)
3151
+ * allow for changing the number of columns.
3152
+ *
3153
+ * Returns `false` when your data is an array of objects,
3154
+ * or when you use the [`columns`](@/api/options.md#columns) option.
3155
+ * Otherwise, returns `true`.
3137
3156
  *
3138
3157
  * @memberof Core#
3139
3158
  * @function isColumnModificationAllowed
@@ -4099,8 +4118,6 @@ export default function Core(rootElement, userSettings) {
4099
4118
  if (datamap) {
4100
4119
  datamap.destroy();
4101
4120
  }
4102
- instance.rowIndexMapper = null;
4103
- instance.columnIndexMapper = null;
4104
4121
  datamap = null;
4105
4122
  grid = null;
4106
4123
  selection = null;