handsontable 0.0.0-next-5e7f0fe-20230504 → 0.0.0-next-48677e7-20230509

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.

Files changed (227) hide show
  1. package/3rdparty/walkontable/src/cell/coords.js +40 -13
  2. package/3rdparty/walkontable/src/cell/coords.mjs +40 -13
  3. package/3rdparty/walkontable/src/cell/range.js +29 -25
  4. package/3rdparty/walkontable/src/cell/range.mjs +28 -24
  5. package/3rdparty/walkontable/src/core/_base.js +9 -3
  6. package/3rdparty/walkontable/src/core/_base.mjs +9 -3
  7. package/3rdparty/walkontable/src/core/clone.js +2 -2
  8. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  9. package/3rdparty/walkontable/src/core/core.js +3 -2
  10. package/3rdparty/walkontable/src/core/core.mjs +3 -2
  11. package/3rdparty/walkontable/src/event.js +12 -10
  12. package/3rdparty/walkontable/src/event.mjs +12 -10
  13. package/3rdparty/walkontable/src/facade/core.js +2 -2
  14. package/3rdparty/walkontable/src/facade/core.mjs +2 -2
  15. package/3rdparty/walkontable/src/index.js +10 -2
  16. package/3rdparty/walkontable/src/index.mjs +2 -2
  17. package/3rdparty/walkontable/src/overlay/_base.js +8 -7
  18. package/3rdparty/walkontable/src/overlay/_base.mjs +8 -7
  19. package/3rdparty/walkontable/src/overlay/bottom.js +7 -6
  20. package/3rdparty/walkontable/src/overlay/bottom.mjs +7 -6
  21. package/3rdparty/walkontable/src/overlay/inlineStart.js +2 -4
  22. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +2 -4
  23. package/3rdparty/walkontable/src/overlay/top.js +9 -10
  24. package/3rdparty/walkontable/src/overlay/top.mjs +9 -10
  25. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +12 -10
  26. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +12 -10
  27. package/3rdparty/walkontable/src/overlays.js +64 -55
  28. package/3rdparty/walkontable/src/overlays.mjs +64 -55
  29. package/3rdparty/walkontable/src/renderer/table.js +2 -0
  30. package/3rdparty/walkontable/src/renderer/table.mjs +2 -0
  31. package/3rdparty/walkontable/src/scroll.js +23 -20
  32. package/3rdparty/walkontable/src/scroll.mjs +23 -20
  33. package/3rdparty/walkontable/src/{border.js → selection/border/border.js} +7 -12
  34. package/3rdparty/walkontable/src/{border.mjs → selection/border/border.mjs} +7 -12
  35. package/3rdparty/walkontable/src/selection/border/constants.js +18 -0
  36. package/3rdparty/walkontable/src/selection/border/constants.mjs +13 -0
  37. package/3rdparty/walkontable/src/selection/constants.js +63 -0
  38. package/3rdparty/walkontable/src/selection/constants.mjs +51 -0
  39. package/3rdparty/walkontable/src/selection/index.js +30 -0
  40. package/3rdparty/walkontable/src/selection/index.mjs +5 -0
  41. package/3rdparty/walkontable/src/selection/manager.js +334 -0
  42. package/3rdparty/walkontable/src/selection/manager.mjs +328 -0
  43. package/3rdparty/walkontable/src/selection/scanner.js +363 -0
  44. package/3rdparty/walkontable/src/selection/scanner.mjs +359 -0
  45. package/3rdparty/walkontable/src/selection/selection.js +133 -0
  46. package/3rdparty/walkontable/src/selection/selection.mjs +127 -0
  47. package/3rdparty/walkontable/src/settings.js +15 -13
  48. package/3rdparty/walkontable/src/settings.mjs +15 -13
  49. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.js +9 -0
  50. package/3rdparty/walkontable/src/table/mixin/calculatedColumns.mjs +9 -0
  51. package/3rdparty/walkontable/src/table/mixin/calculatedRows.js +9 -0
  52. package/3rdparty/walkontable/src/table/mixin/calculatedRows.mjs +9 -0
  53. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.js +9 -0
  54. package/3rdparty/walkontable/src/table/mixin/stickyColumnsStart.mjs +9 -0
  55. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.js +9 -0
  56. package/3rdparty/walkontable/src/table/mixin/stickyRowsBottom.mjs +9 -0
  57. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.js +9 -0
  58. package/3rdparty/walkontable/src/table/mixin/stickyRowsTop.mjs +9 -0
  59. package/3rdparty/walkontable/src/table.js +33 -101
  60. package/3rdparty/walkontable/src/table.mjs +34 -102
  61. package/base.js +4 -2
  62. package/base.mjs +2 -2
  63. package/core.d.ts +4 -0
  64. package/core.js +49 -8
  65. package/core.mjs +49 -8
  66. package/dataMap/dataSource.js +5 -5
  67. package/dataMap/dataSource.mjs +5 -5
  68. package/dataMap/metaManager/metaSchema.js +7 -0
  69. package/dataMap/metaManager/metaSchema.mjs +7 -0
  70. package/dist/handsontable.css +7 -2
  71. package/dist/handsontable.full.css +7 -2
  72. package/dist/handsontable.full.js +9409 -9084
  73. package/dist/handsontable.full.min.css +3 -3
  74. package/dist/handsontable.full.min.js +115 -123
  75. package/dist/handsontable.js +9497 -9171
  76. package/dist/handsontable.min.css +3 -3
  77. package/dist/handsontable.min.js +3 -11
  78. package/dist/languages/all.js +0 -133
  79. package/dist/languages/ar-AR.js +0 -7
  80. package/dist/languages/cs-CZ.js +0 -7
  81. package/dist/languages/de-CH.js +0 -7
  82. package/dist/languages/de-DE.js +0 -7
  83. package/dist/languages/en-US.js +0 -7
  84. package/dist/languages/es-MX.js +0 -7
  85. package/dist/languages/fr-FR.js +0 -7
  86. package/dist/languages/it-IT.js +0 -7
  87. package/dist/languages/ja-JP.js +0 -7
  88. package/dist/languages/ko-KR.js +0 -7
  89. package/dist/languages/lv-LV.js +0 -7
  90. package/dist/languages/nb-NO.js +0 -7
  91. package/dist/languages/nl-NL.js +0 -7
  92. package/dist/languages/pl-PL.js +0 -7
  93. package/dist/languages/pt-BR.js +0 -7
  94. package/dist/languages/ru-RU.js +0 -7
  95. package/dist/languages/sr-SP.js +0 -7
  96. package/dist/languages/zh-CN.js +0 -7
  97. package/dist/languages/zh-TW.js +0 -7
  98. package/editorManager.js +7 -3
  99. package/editorManager.mjs +7 -3
  100. package/editors/textEditor/textEditor.js +3 -16
  101. package/editors/textEditor/textEditor.mjs +4 -17
  102. package/focusManager.d.ts +12 -0
  103. package/focusManager.js +249 -0
  104. package/focusManager.mjs +245 -0
  105. package/helpers/dom/element.js +11 -0
  106. package/helpers/dom/element.mjs +10 -0
  107. package/helpers/mixed.js +1 -1
  108. package/helpers/mixed.mjs +1 -1
  109. package/i18n/languages/ar-AR.js +1 -7
  110. package/i18n/languages/cs-CZ.js +1 -7
  111. package/i18n/languages/de-CH.js +1 -7
  112. package/i18n/languages/de-DE.js +1 -7
  113. package/i18n/languages/en-US.js +1 -7
  114. package/i18n/languages/es-MX.js +1 -7
  115. package/i18n/languages/fr-FR.js +1 -7
  116. package/i18n/languages/it-IT.js +1 -7
  117. package/i18n/languages/ja-JP.js +1 -7
  118. package/i18n/languages/ko-KR.js +1 -7
  119. package/i18n/languages/lv-LV.js +1 -7
  120. package/i18n/languages/nb-NO.js +1 -7
  121. package/i18n/languages/nl-NL.js +1 -7
  122. package/i18n/languages/pl-PL.js +1 -7
  123. package/i18n/languages/pt-BR.js +1 -7
  124. package/i18n/languages/ru-RU.js +1 -7
  125. package/i18n/languages/sr-SP.js +1 -7
  126. package/i18n/languages/zh-CN.js +1 -7
  127. package/i18n/languages/zh-TW.js +1 -7
  128. package/languages/all.js +0 -133
  129. package/languages/ar-AR.js +0 -7
  130. package/languages/cs-CZ.js +0 -7
  131. package/languages/de-CH.js +0 -7
  132. package/languages/de-DE.js +0 -7
  133. package/languages/en-US.js +0 -7
  134. package/languages/es-MX.js +0 -7
  135. package/languages/fr-FR.js +0 -7
  136. package/languages/index.js +0 -133
  137. package/languages/it-IT.js +0 -7
  138. package/languages/ja-JP.js +0 -7
  139. package/languages/ko-KR.js +0 -7
  140. package/languages/lv-LV.js +0 -7
  141. package/languages/nb-NO.js +0 -7
  142. package/languages/nl-NL.js +0 -7
  143. package/languages/pl-PL.js +0 -7
  144. package/languages/pt-BR.js +0 -7
  145. package/languages/ru-RU.js +0 -7
  146. package/languages/sr-SP.js +0 -7
  147. package/languages/zh-CN.js +0 -7
  148. package/languages/zh-TW.js +0 -7
  149. package/package.json +2 -3
  150. package/pluginHooks.js +7 -17
  151. package/pluginHooks.mjs +4 -16
  152. package/plugins/autoRowSize/autoRowSize.js +2 -2
  153. package/plugins/autoRowSize/autoRowSize.mjs +2 -2
  154. package/plugins/copyPaste/copyPaste.js +12 -93
  155. package/plugins/copyPaste/copyPaste.mjs +12 -93
  156. package/plugins/copyPaste/copyableRanges.js +31 -25
  157. package/plugins/copyPaste/copyableRanges.mjs +24 -18
  158. package/plugins/customBorders/customBorders.js +6 -2
  159. package/plugins/customBorders/customBorders.mjs +7 -3
  160. package/plugins/filters/filters.js +0 -5
  161. package/plugins/filters/filters.mjs +0 -5
  162. package/plugins/formulas/formulas.js +168 -190
  163. package/plugins/formulas/formulas.mjs +168 -190
  164. package/plugins/mergeCells/mergeCells.js +0 -16
  165. package/plugins/mergeCells/mergeCells.mjs +0 -16
  166. package/plugins/nestedHeaders/nestedHeaders.js +3 -4
  167. package/plugins/nestedHeaders/nestedHeaders.mjs +3 -4
  168. package/plugins/nestedHeaders/stateManager/headersTree.js +26 -23
  169. package/plugins/nestedHeaders/stateManager/headersTree.mjs +23 -20
  170. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  171. package/plugins/nestedHeaders/stateManager/matrixGenerator.js +0 -1
  172. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +1 -1
  173. package/plugins/nestedHeaders/utils/ghostTable.js +35 -30
  174. package/plugins/nestedHeaders/utils/ghostTable.mjs +35 -30
  175. package/plugins/registry.js +1 -3
  176. package/plugins/undoRedo/undoRedo.js +1 -0
  177. package/plugins/undoRedo/undoRedo.mjs +1 -0
  178. package/renderers/baseRenderer/baseRenderer.js +3 -0
  179. package/renderers/baseRenderer/baseRenderer.mjs +3 -0
  180. package/selection/highlight/highlight.js +335 -133
  181. package/selection/highlight/highlight.mjs +325 -129
  182. package/selection/highlight/types/activeHeader.js +10 -9
  183. package/selection/highlight/types/activeHeader.mjs +10 -8
  184. package/selection/highlight/types/area.js +12 -27
  185. package/selection/highlight/types/area.mjs +16 -30
  186. package/selection/highlight/types/areaLayered.js +54 -0
  187. package/selection/highlight/types/areaLayered.mjs +49 -0
  188. package/selection/highlight/types/column.js +50 -0
  189. package/selection/highlight/types/column.mjs +45 -0
  190. package/selection/highlight/types/customSelection.js +7 -10
  191. package/selection/highlight/types/customSelection.mjs +7 -9
  192. package/selection/highlight/types/fill.js +5 -8
  193. package/selection/highlight/types/fill.mjs +5 -7
  194. package/selection/highlight/types/{cell.js → focus.js} +5 -8
  195. package/selection/highlight/types/{cell.mjs → focus.mjs} +5 -7
  196. package/selection/highlight/types/header.js +10 -20
  197. package/selection/highlight/types/header.mjs +10 -19
  198. package/selection/highlight/types/{index.js → row.js} +27 -31
  199. package/selection/highlight/types/{index.mjs → row.mjs} +24 -29
  200. package/selection/highlight/visualSelection.js +12 -21
  201. package/selection/highlight/visualSelection.mjs +12 -21
  202. package/selection/index.js +4 -7
  203. package/selection/index.mjs +2 -3
  204. package/selection/selection.js +88 -46
  205. package/selection/selection.mjs +82 -44
  206. package/settings.d.ts +1 -0
  207. package/tableView.js +94 -66
  208. package/tableView.mjs +94 -66
  209. package/translations/changesObservable/observable.js +46 -41
  210. package/translations/changesObservable/observable.mjs +41 -36
  211. package/translations/changesObservable/observer.js +1 -1
  212. package/translations/indexMapper.js +0 -21
  213. package/translations/indexMapper.mjs +0 -21
  214. package/utils/dataStructures/tree.js +18 -15
  215. package/utils/dataStructures/tree.mjs +18 -15
  216. package/utils/parseTable.js +1 -5
  217. package/utils/parseTable.mjs +1 -5
  218. package/3rdparty/walkontable/src/selection.js +0 -354
  219. package/3rdparty/walkontable/src/selection.mjs +0 -348
  220. package/plugins/copyPaste/focusableElement.js +0 -219
  221. package/plugins/copyPaste/focusableElement.mjs +0 -213
  222. package/plugins/formulas/indexSyncer/axisSyncer.js +0 -379
  223. package/plugins/formulas/indexSyncer/axisSyncer.mjs +0 -374
  224. package/plugins/formulas/indexSyncer/index.js +0 -225
  225. package/plugins/formulas/indexSyncer/index.mjs +0 -219
  226. package/selection/highlight/constants.js +0 -16
  227. package/selection/highlight/constants.mjs +0 -6
@@ -91,26 +91,28 @@ 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
+
94
109
  /**
95
110
  * @param {SettingsPure} settings The user defined settings.
96
111
  */
97
112
  function Settings(settings) {
98
113
  var _this = this;
99
114
  _classCallCheck(this, Settings);
100
- /**
101
- * Reference to settings.
102
- *
103
- * @protected
104
- * @type {SettingsPure}
105
- */
106
115
  _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
- */
114
116
  _defineProperty(this, "defaults", Object.freeze(this.getDefaults()));
115
117
  objectEach(this.defaults, function (value, key) {
116
118
  if (settings[key] !== void 0) {
@@ -83,6 +83,15 @@ var calculatedColumns = {
83
83
  */
84
84
  getVisibleColumnsCount: function getVisibleColumnsCount() {
85
85
  return this.dataAccessObject.countColumnsVisible;
86
+ },
87
+ /**
88
+ * Get the number of rendered row headers.
89
+ *
90
+ * @returns {number}
91
+ * @this Table
92
+ */
93
+ getRowHeadersCount: function getRowHeadersCount() {
94
+ return this.dataAccessObject.rowHeaders.length;
86
95
  }
87
96
  };
88
97
  (0, _object.defineGetter)(calculatedColumns, 'MIXIN_NAME', MIXIN_NAME, {
@@ -79,6 +79,15 @@ var calculatedColumns = {
79
79
  */
80
80
  getVisibleColumnsCount: function getVisibleColumnsCount() {
81
81
  return this.dataAccessObject.countColumnsVisible;
82
+ },
83
+ /**
84
+ * Get the number of rendered row headers.
85
+ *
86
+ * @returns {number}
87
+ * @this Table
88
+ */
89
+ getRowHeadersCount: function getRowHeadersCount() {
90
+ return this.dataAccessObject.rowHeaders.length;
82
91
  }
83
92
  };
84
93
  defineGetter(calculatedColumns, 'MIXIN_NAME', MIXIN_NAME, {
@@ -83,6 +83,15 @@ var calculatedRows = {
83
83
  */
84
84
  getVisibleRowsCount: function getVisibleRowsCount() {
85
85
  return this.dataAccessObject.countRowsVisible;
86
+ },
87
+ /**
88
+ * Get the number of rendered column headers.
89
+ *
90
+ * @returns {number}
91
+ * @this Table
92
+ */
93
+ getColumnHeadersCount: function getColumnHeadersCount() {
94
+ return this.dataAccessObject.columnHeaders.length;
86
95
  }
87
96
  };
88
97
  (0, _object.defineGetter)(calculatedRows, 'MIXIN_NAME', MIXIN_NAME, {
@@ -79,6 +79,15 @@ var calculatedRows = {
79
79
  */
80
80
  getVisibleRowsCount: function getVisibleRowsCount() {
81
81
  return this.dataAccessObject.countRowsVisible;
82
+ },
83
+ /**
84
+ * Get the number of rendered column headers.
85
+ *
86
+ * @returns {number}
87
+ * @this Table
88
+ */
89
+ getColumnHeadersCount: function getColumnHeadersCount() {
90
+ return this.dataAccessObject.columnHeaders.length;
82
91
  }
83
92
  };
84
93
  defineGetter(calculatedRows, 'MIXIN_NAME', MIXIN_NAME, {
@@ -75,6 +75,15 @@ var stickyColumnsStart = {
75
75
  */
76
76
  getVisibleColumnsCount: function getVisibleColumnsCount() {
77
77
  return this.getRenderedColumnsCount();
78
+ },
79
+ /**
80
+ * Get the number of rendered row headers.
81
+ *
82
+ * @returns {number}
83
+ * @this Table
84
+ */
85
+ getRowHeadersCount: function getRowHeadersCount() {
86
+ return this.dataAccessObject.rowHeaders.length;
78
87
  }
79
88
  };
80
89
  (0, _object.defineGetter)(stickyColumnsStart, 'MIXIN_NAME', MIXIN_NAME, {
@@ -71,6 +71,15 @@ var stickyColumnsStart = {
71
71
  */
72
72
  getVisibleColumnsCount: function getVisibleColumnsCount() {
73
73
  return this.getRenderedColumnsCount();
74
+ },
75
+ /**
76
+ * Get the number of rendered row headers.
77
+ *
78
+ * @returns {number}
79
+ * @this Table
80
+ */
81
+ getRowHeadersCount: function getRowHeadersCount() {
82
+ return this.dataAccessObject.rowHeaders.length;
74
83
  }
75
84
  };
76
85
  defineGetter(stickyColumnsStart, 'MIXIN_NAME', MIXIN_NAME, {
@@ -80,6 +80,15 @@ var stickyRowsBottom = {
80
80
  */
81
81
  getVisibleRowsCount: function getVisibleRowsCount() {
82
82
  return this.getRenderedRowsCount();
83
+ },
84
+ /**
85
+ * Get the number of rendered column headers.
86
+ *
87
+ * @returns {number}
88
+ * @this Table
89
+ */
90
+ getColumnHeadersCount: function getColumnHeadersCount() {
91
+ return 0;
83
92
  }
84
93
  };
85
94
  (0, _object.defineGetter)(stickyRowsBottom, 'MIXIN_NAME', MIXIN_NAME, {
@@ -76,6 +76,15 @@ var stickyRowsBottom = {
76
76
  */
77
77
  getVisibleRowsCount: function getVisibleRowsCount() {
78
78
  return this.getRenderedRowsCount();
79
+ },
80
+ /**
81
+ * Get the number of rendered column headers.
82
+ *
83
+ * @returns {number}
84
+ * @this Table
85
+ */
86
+ getColumnHeadersCount: function getColumnHeadersCount() {
87
+ return 0;
79
88
  }
80
89
  };
81
90
  defineGetter(stickyRowsBottom, 'MIXIN_NAME', MIXIN_NAME, {
@@ -75,6 +75,15 @@ var stickyRowsTop = {
75
75
  */
76
76
  getVisibleRowsCount: function getVisibleRowsCount() {
77
77
  return this.getRenderedRowsCount();
78
+ },
79
+ /**
80
+ * Get the number of rendered column headers.
81
+ *
82
+ * @returns {number}
83
+ * @this Table
84
+ */
85
+ getColumnHeadersCount: function getColumnHeadersCount() {
86
+ return this.dataAccessObject.columnHeaders.length;
78
87
  }
79
88
  };
80
89
  (0, _object.defineGetter)(stickyRowsTop, 'MIXIN_NAME', MIXIN_NAME, {
@@ -71,6 +71,15 @@ var stickyRowsTop = {
71
71
  */
72
72
  getVisibleRowsCount: function getVisibleRowsCount() {
73
73
  return this.getRenderedRowsCount();
74
+ },
75
+ /**
76
+ * Get the number of rendered column headers.
77
+ *
78
+ * @returns {number}
79
+ * @this Table
80
+ */
81
+ getColumnHeadersCount: function getColumnHeadersCount() {
82
+ return this.dataAccessObject.columnHeaders.length;
74
83
  }
75
84
  };
76
85
  defineGetter(stickyRowsTop, 'MIXIN_NAME', MIXIN_NAME, {
@@ -2,15 +2,14 @@
2
2
 
3
3
  require("core-js/modules/es.symbol.iterator.js");
4
4
  require("core-js/modules/es.array.iterator.js");
5
+ require("core-js/modules/es.string.iterator.js");
5
6
  require("core-js/modules/web.dom-collections.iterator.js");
6
7
  require("core-js/modules/es.array.slice.js");
8
+ require("core-js/modules/es.array.from.js");
7
9
  require("core-js/modules/es.regexp.exec.js");
8
10
  exports.__esModule = true;
9
11
  exports.default = void 0;
10
12
  require("core-js/modules/es.function.name.js");
11
- require("core-js/modules/es.array.from.js");
12
- require("core-js/modules/es.string.iterator.js");
13
- require("core-js/modules/es.array.includes.js");
14
13
  require("core-js/modules/es.object.to-string.js");
15
14
  require("core-js/modules/web.dom-collections.for-each.js");
16
15
  require("core-js/modules/es.symbol.to-primitive.js");
@@ -56,6 +55,32 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
56
55
  * @abstract
57
56
  */
58
57
  var Table = /*#__PURE__*/function () {
58
+ /**
59
+ * The walkontable settings.
60
+ *
61
+ * @protected
62
+ * @type {Settings}
63
+ */
64
+
65
+ /**
66
+ * Indicates if the table has height bigger than 0px.
67
+ *
68
+ * @type {boolean}
69
+ */
70
+
71
+ /**
72
+ * Indicates if the table has width bigger than 0px.
73
+ *
74
+ * @type {boolean}
75
+ */
76
+
77
+ /**
78
+ * Indicates if the table is visible. By visible, it means that the holder
79
+ * element has CSS 'display' property different than 'none'.
80
+ *
81
+ * @type {boolean}
82
+ */
83
+
59
84
  /**
60
85
  *
61
86
  * @abstract
@@ -68,35 +93,13 @@ var Table = /*#__PURE__*/function () {
68
93
  function Table(dataAccessObject, facadeGetter, domBindings, wtSettings, name) {
69
94
  var _this = this;
70
95
  _classCallCheck(this, Table);
71
- /**
72
- * The walkontable settings.
73
- *
74
- * @protected
75
- * @type {Settings}
76
- */
77
96
  _defineProperty(this, "wtSettings", null);
78
97
  _defineProperty(this, "domBindings", void 0);
79
98
  _defineProperty(this, "TBODY", null);
80
99
  _defineProperty(this, "THEAD", null);
81
100
  _defineProperty(this, "COLGROUP", null);
82
- /**
83
- * Indicates if the table has height bigger than 0px.
84
- *
85
- * @type {boolean}
86
- */
87
101
  _defineProperty(this, "hasTableHeight", true);
88
- /**
89
- * Indicates if the table has width bigger than 0px.
90
- *
91
- * @type {boolean}
92
- */
93
102
  _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
- */
100
103
  _defineProperty(this, "isTableVisible", false);
101
104
  _defineProperty(this, "tableOffset", 0);
102
105
  _defineProperty(this, "holderOffset", 0);
@@ -387,7 +390,7 @@ var Table = /*#__PURE__*/function () {
387
390
  wtOverlays.refreshAll(); // `refreshAll()` internally already calls `refreshSelections()` method
388
391
  wtOverlays.adjustElementsSize();
389
392
  } else {
390
- this.refreshSelections(runFastDraw);
393
+ this.dataAccessObject.selectionManager.setActiveOverlay(this.facadeGetter()).render(runFastDraw);
391
394
  }
392
395
  if (syncScroll) {
393
396
  wtOverlays.syncScrollWithMaster();
@@ -479,74 +482,6 @@ var Table = /*#__PURE__*/function () {
479
482
  }
480
483
  }
481
484
 
482
- /**
483
- * @param {string} className The CSS class name to remove from the table cells.
484
- */
485
- }, {
486
- key: "removeClassFromCells",
487
- value: function removeClassFromCells(className) {
488
- var nodes = this.TABLE.querySelectorAll(".".concat(className));
489
- for (var i = 0, len = nodes.length; i < len; i++) {
490
- (0, _element.removeClass)(nodes[i], className);
491
- }
492
- }
493
-
494
- /**
495
- * Refresh the table selection by re-rendering Selection instances connected with that instance.
496
- *
497
- * @param {boolean} fastDraw If fast drawing is enabled than additionally className clearing is applied.
498
- */
499
- }, {
500
- key: "refreshSelections",
501
- value: function refreshSelections(fastDraw) {
502
- var wtSettings = this.wtSettings;
503
- var selections = this.dataAccessObject.selections;
504
- if (!selections) {
505
- return;
506
- }
507
- var highlights = Array.from(selections);
508
- var len = highlights.length;
509
- if (fastDraw) {
510
- var classesToRemove = [];
511
- for (var i = 0; i < len; i++) {
512
- var _highlights$i$setting = highlights[i].settings,
513
- highlightHeaderClassName = _highlights$i$setting.highlightHeaderClassName,
514
- highlightRowClassName = _highlights$i$setting.highlightRowClassName,
515
- highlightColumnClassName = _highlights$i$setting.highlightColumnClassName;
516
- var classNames = highlights[i].classNames;
517
- var classNamesLength = classNames.length;
518
- for (var j = 0; j < classNamesLength; j++) {
519
- if (!classesToRemove.includes(classNames[j])) {
520
- classesToRemove.push(classNames[j]);
521
- }
522
- }
523
- if (highlightHeaderClassName && !classesToRemove.includes(highlightHeaderClassName)) {
524
- classesToRemove.push(highlightHeaderClassName);
525
- }
526
- if (highlightRowClassName && !classesToRemove.includes(highlightRowClassName)) {
527
- classesToRemove.push(highlightRowClassName);
528
- }
529
- if (highlightColumnClassName && !classesToRemove.includes(highlightColumnClassName)) {
530
- classesToRemove.push(highlightColumnClassName);
531
- }
532
- }
533
- var additionalClassesToRemove = wtSettings.getSetting('onBeforeRemoveCellClassNames');
534
- if (Array.isArray(additionalClassesToRemove)) {
535
- for (var _i = 0; _i < additionalClassesToRemove.length; _i++) {
536
- classesToRemove.push(additionalClassesToRemove[_i]);
537
- }
538
- }
539
- var classesToRemoveLength = classesToRemove.length;
540
- for (var _i2 = 0; _i2 < classesToRemoveLength; _i2++) {
541
- // there was no rerender, so we need to remove classNames by ourselves
542
- this.removeClassFromCells(classesToRemove[_i2]);
543
- }
544
- }
545
- for (var _i3 = 0; _i3 < len; _i3++) {
546
- highlights[_i3].draw(this.facadeGetter(), fastDraw);
547
- }
548
- }
549
-
550
485
  /**
551
486
  * Get cell element at coords.
552
487
  * Negative coords.row or coords.col are used to retrieve header cells. If there are multiple header levels, the
@@ -680,14 +615,14 @@ var Table = /*#__PURE__*/function () {
680
615
  key: "getRowHeader",
681
616
  value: function getRowHeader(row) {
682
617
  var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
683
- if (this.columnFilter.sourceColumnToVisibleRowHeadedColumn(0) === 0) {
684
- return;
685
- }
686
618
  var rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
687
619
  if (level >= rowHeadersCount) {
688
620
  return;
689
621
  }
690
- var TR = this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
622
+ var renderedRow = this.rowFilter.sourceToRendered(row);
623
+ var visibleRow = renderedRow < 0 ? this.rowFilter.sourceRowToVisibleColHeadedRow(row) : renderedRow;
624
+ var parentElement = renderedRow < 0 ? this.THEAD : this.TBODY;
625
+ var TR = parentElement.childNodes[visibleRow];
691
626
  return TR === null || TR === void 0 ? void 0 : TR.childNodes[level];
692
627
  }
693
628
 
@@ -700,9 +635,6 @@ var Table = /*#__PURE__*/function () {
700
635
  }, {
701
636
  key: "getRowHeaders",
702
637
  value: function getRowHeaders(row) {
703
- if (this.columnFilter.sourceColumnToVisibleRowHeadedColumn(0) === 0) {
704
- return [];
705
- }
706
638
  var THs = [];
707
639
  var rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
708
640
  for (var renderedRowIndex = 0; renderedRowIndex < rowHeadersCount; renderedRowIndex++) {
@@ -10,9 +10,6 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
10
10
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
11
11
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
12
  import "core-js/modules/es.function.name.js";
13
- import "core-js/modules/es.array.from.js";
14
- import "core-js/modules/es.string.iterator.js";
15
- import "core-js/modules/es.array.includes.js";
16
13
  import "core-js/modules/es.object.to-string.js";
17
14
  import "core-js/modules/web.dom-collections.for-each.js";
18
15
  import "core-js/modules/es.symbol.to-primitive.js";
@@ -22,8 +19,10 @@ import "core-js/modules/es.symbol.description.js";
22
19
  import "core-js/modules/es.number.constructor.js";
23
20
  import "core-js/modules/es.symbol.iterator.js";
24
21
  import "core-js/modules/es.array.iterator.js";
22
+ import "core-js/modules/es.string.iterator.js";
25
23
  import "core-js/modules/web.dom-collections.iterator.js";
26
24
  import "core-js/modules/es.array.slice.js";
25
+ import "core-js/modules/es.array.from.js";
27
26
  import "core-js/modules/es.regexp.exec.js";
28
27
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
28
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
@@ -31,7 +30,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
31
30
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
32
31
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
33
32
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
34
- import { hasClass, index, offset, removeClass, removeTextNodes, overlayContainsElement, closest, outerHeight, outerWidth, innerHeight, isVisible as _isVisible } from "../../../helpers/dom/element.mjs";
33
+ import { hasClass, index, offset, removeTextNodes, overlayContainsElement, closest, outerHeight, outerWidth, innerHeight, isVisible as _isVisible } from "../../../helpers/dom/element.mjs";
35
34
  import { isFunction } from "../../../helpers/function.mjs";
36
35
  import ColumnFilter from "./filter/column.mjs";
37
36
  import RowFilter from "./filter/row.mjs";
@@ -51,6 +50,32 @@ import { CLONE_TOP, CLONE_BOTTOM, CLONE_INLINE_START, CLONE_TOP_INLINE_START_COR
51
50
  * @abstract
52
51
  */
53
52
  var Table = /*#__PURE__*/function () {
53
+ /**
54
+ * The walkontable settings.
55
+ *
56
+ * @protected
57
+ * @type {Settings}
58
+ */
59
+
60
+ /**
61
+ * Indicates if the table has height bigger than 0px.
62
+ *
63
+ * @type {boolean}
64
+ */
65
+
66
+ /**
67
+ * Indicates if the table has width bigger than 0px.
68
+ *
69
+ * @type {boolean}
70
+ */
71
+
72
+ /**
73
+ * Indicates if the table is visible. By visible, it means that the holder
74
+ * element has CSS 'display' property different than 'none'.
75
+ *
76
+ * @type {boolean}
77
+ */
78
+
54
79
  /**
55
80
  *
56
81
  * @abstract
@@ -63,35 +88,13 @@ var Table = /*#__PURE__*/function () {
63
88
  function Table(dataAccessObject, facadeGetter, domBindings, wtSettings, name) {
64
89
  var _this = this;
65
90
  _classCallCheck(this, Table);
66
- /**
67
- * The walkontable settings.
68
- *
69
- * @protected
70
- * @type {Settings}
71
- */
72
91
  _defineProperty(this, "wtSettings", null);
73
92
  _defineProperty(this, "domBindings", void 0);
74
93
  _defineProperty(this, "TBODY", null);
75
94
  _defineProperty(this, "THEAD", null);
76
95
  _defineProperty(this, "COLGROUP", null);
77
- /**
78
- * Indicates if the table has height bigger than 0px.
79
- *
80
- * @type {boolean}
81
- */
82
96
  _defineProperty(this, "hasTableHeight", true);
83
- /**
84
- * Indicates if the table has width bigger than 0px.
85
- *
86
- * @type {boolean}
87
- */
88
97
  _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
- */
95
98
  _defineProperty(this, "isTableVisible", false);
96
99
  _defineProperty(this, "tableOffset", 0);
97
100
  _defineProperty(this, "holderOffset", 0);
@@ -382,7 +385,7 @@ var Table = /*#__PURE__*/function () {
382
385
  wtOverlays.refreshAll(); // `refreshAll()` internally already calls `refreshSelections()` method
383
386
  wtOverlays.adjustElementsSize();
384
387
  } else {
385
- this.refreshSelections(runFastDraw);
388
+ this.dataAccessObject.selectionManager.setActiveOverlay(this.facadeGetter()).render(runFastDraw);
386
389
  }
387
390
  if (syncScroll) {
388
391
  wtOverlays.syncScrollWithMaster();
@@ -474,74 +477,6 @@ var Table = /*#__PURE__*/function () {
474
477
  }
475
478
  }
476
479
 
477
- /**
478
- * @param {string} className The CSS class name to remove from the table cells.
479
- */
480
- }, {
481
- key: "removeClassFromCells",
482
- value: function removeClassFromCells(className) {
483
- var nodes = this.TABLE.querySelectorAll(".".concat(className));
484
- for (var i = 0, len = nodes.length; i < len; i++) {
485
- removeClass(nodes[i], className);
486
- }
487
- }
488
-
489
- /**
490
- * Refresh the table selection by re-rendering Selection instances connected with that instance.
491
- *
492
- * @param {boolean} fastDraw If fast drawing is enabled than additionally className clearing is applied.
493
- */
494
- }, {
495
- key: "refreshSelections",
496
- value: function refreshSelections(fastDraw) {
497
- var wtSettings = this.wtSettings;
498
- var selections = this.dataAccessObject.selections;
499
- if (!selections) {
500
- return;
501
- }
502
- var highlights = Array.from(selections);
503
- var len = highlights.length;
504
- if (fastDraw) {
505
- var classesToRemove = [];
506
- for (var i = 0; i < len; i++) {
507
- var _highlights$i$setting = highlights[i].settings,
508
- highlightHeaderClassName = _highlights$i$setting.highlightHeaderClassName,
509
- highlightRowClassName = _highlights$i$setting.highlightRowClassName,
510
- highlightColumnClassName = _highlights$i$setting.highlightColumnClassName;
511
- var classNames = highlights[i].classNames;
512
- var classNamesLength = classNames.length;
513
- for (var j = 0; j < classNamesLength; j++) {
514
- if (!classesToRemove.includes(classNames[j])) {
515
- classesToRemove.push(classNames[j]);
516
- }
517
- }
518
- if (highlightHeaderClassName && !classesToRemove.includes(highlightHeaderClassName)) {
519
- classesToRemove.push(highlightHeaderClassName);
520
- }
521
- if (highlightRowClassName && !classesToRemove.includes(highlightRowClassName)) {
522
- classesToRemove.push(highlightRowClassName);
523
- }
524
- if (highlightColumnClassName && !classesToRemove.includes(highlightColumnClassName)) {
525
- classesToRemove.push(highlightColumnClassName);
526
- }
527
- }
528
- var additionalClassesToRemove = wtSettings.getSetting('onBeforeRemoveCellClassNames');
529
- if (Array.isArray(additionalClassesToRemove)) {
530
- for (var _i = 0; _i < additionalClassesToRemove.length; _i++) {
531
- classesToRemove.push(additionalClassesToRemove[_i]);
532
- }
533
- }
534
- var classesToRemoveLength = classesToRemove.length;
535
- for (var _i2 = 0; _i2 < classesToRemoveLength; _i2++) {
536
- // there was no rerender, so we need to remove classNames by ourselves
537
- this.removeClassFromCells(classesToRemove[_i2]);
538
- }
539
- }
540
- for (var _i3 = 0; _i3 < len; _i3++) {
541
- highlights[_i3].draw(this.facadeGetter(), fastDraw);
542
- }
543
- }
544
-
545
480
  /**
546
481
  * Get cell element at coords.
547
482
  * Negative coords.row or coords.col are used to retrieve header cells. If there are multiple header levels, the
@@ -675,14 +610,14 @@ var Table = /*#__PURE__*/function () {
675
610
  key: "getRowHeader",
676
611
  value: function getRowHeader(row) {
677
612
  var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
678
- if (this.columnFilter.sourceColumnToVisibleRowHeadedColumn(0) === 0) {
679
- return;
680
- }
681
613
  var rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
682
614
  if (level >= rowHeadersCount) {
683
615
  return;
684
616
  }
685
- var TR = this.TBODY.childNodes[this.rowFilter.sourceToRendered(row)];
617
+ var renderedRow = this.rowFilter.sourceToRendered(row);
618
+ var visibleRow = renderedRow < 0 ? this.rowFilter.sourceRowToVisibleColHeadedRow(row) : renderedRow;
619
+ var parentElement = renderedRow < 0 ? this.THEAD : this.TBODY;
620
+ var TR = parentElement.childNodes[visibleRow];
686
621
  return TR === null || TR === void 0 ? void 0 : TR.childNodes[level];
687
622
  }
688
623
 
@@ -695,9 +630,6 @@ var Table = /*#__PURE__*/function () {
695
630
  }, {
696
631
  key: "getRowHeaders",
697
632
  value: function getRowHeaders(row) {
698
- if (this.columnFilter.sourceColumnToVisibleRowHeadedColumn(0) === 0) {
699
- return [];
700
- }
701
633
  var THs = [];
702
634
  var rowHeadersCount = this.wtSettings.getSetting('rowHeaders').length;
703
635
  for (var renderedRowIndex = 0; renderedRowIndex < rowHeadersCount; renderedRowIndex++) {
package/base.js CHANGED
@@ -16,7 +16,9 @@ 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
+
19
20
  /* eslint-enable import/named */
21
+
20
22
  // register default mandatory cell type for the Base package
21
23
  (0, _registry2.registerCellType)(_textType.TextCellType);
22
24
 
@@ -44,8 +46,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
44
46
  Handsontable.CellCoords = _src.CellCoords;
45
47
  Handsontable.CellRange = _src.CellRange;
46
48
  Handsontable.packageName = 'handsontable';
47
- Handsontable.buildDate = "04/05/2023 15:25:57";
48
- Handsontable.version = "0.0.0-next-5e7f0fe-20230504";
49
+ Handsontable.buildDate = "09/05/2023 07:28:28";
50
+ Handsontable.version = "0.0.0-next-48677e7-20230509";
49
51
  Handsontable.languages = {
50
52
  dictionaryKeys: _registry.dictionaryKeys,
51
53
  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 = "04/05/2023 15:26:11";
39
- Handsontable.version = "0.0.0-next-5e7f0fe-20230504";
38
+ Handsontable.buildDate = "09/05/2023 07:28:43";
39
+ Handsontable.version = "0.0.0-next-48677e7-20230509";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys: dictionaryKeys,
42
42
  getLanguageDictionary: getLanguageDictionary,
package/core.d.ts CHANGED
@@ -17,6 +17,7 @@ import { BaseValidator } from './validators/base';
17
17
  import { Plugins } from './plugins';
18
18
  import { CellType } from './cellTypes';
19
19
  import { ShortcutManager } from './shortcuts';
20
+ import { FocusManager } from './focusManager';
20
21
 
21
22
  type AlterActions = 'insert_row' | 'insert_row_above' | 'insert_row_below' |
22
23
  'insert_col' | 'insert_col_start' | 'insert_col_end' |
@@ -45,6 +46,8 @@ export default class Core {
45
46
  countSourceRows(): number;
46
47
  countVisibleCols(): number;
47
48
  countVisibleRows(): number;
49
+ countRowHeaders(): number;
50
+ countColHeaders(): number;
48
51
  deselectCell(): void;
49
52
  destroy(): void;
50
53
  destroyEditor(revertOriginal?: boolean, prepareEditorIfNeeded?: boolean): void;
@@ -75,6 +78,7 @@ export default class Core {
75
78
  getDataAtRowProp(row: number, prop: string): CellValue;
76
79
  getDataType(rowFrom: number, columnFrom: number, rowTo: number, columnTo: number): CellType | 'mixed';
77
80
  getDirectionFactor(): 1 | -1;
81
+ getFocusManager(): FocusManager;
78
82
  getInstance(): Core;
79
83
  getPlugin<T extends keyof Plugins>(pluginName: T): Plugins[T];
80
84
  getPlugin(pluginName: string): Plugins['basePlugin'];