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
@@ -47,24 +47,27 @@ var _isRtl = /*#__PURE__*/new WeakMap();
47
47
  * ```
48
48
  */
49
49
  var CellCoords = /*#__PURE__*/function () {
50
+ /**
51
+ * A visual row index.
52
+ *
53
+ * @type {number}
54
+ */
55
+
56
+ /**
57
+ * A visual column index.
58
+ *
59
+ * @type {number}
60
+ */
61
+
62
+ /**
63
+ * @type {boolean}
64
+ */
65
+
50
66
  function CellCoords(row, column) {
51
67
  var isRtl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
52
68
  _classCallCheck(this, CellCoords);
53
- /**
54
- * A visual row index.
55
- *
56
- * @type {number}
57
- */
58
69
  _defineProperty(this, "row", null);
59
- /**
60
- * A visual column index.
61
- *
62
- * @type {number}
63
- */
64
70
  _defineProperty(this, "col", null);
65
- /**
66
- * @type {boolean}
67
- */
68
71
  _classPrivateFieldInitSpec(this, _isRtl, {
69
72
  writable: true,
70
73
  value: false
@@ -121,6 +124,30 @@ var CellCoords = /*#__PURE__*/function () {
121
124
  return this.row === cellCoords.row && this.col === cellCoords.col;
122
125
  }
123
126
 
127
+ /**
128
+ * Checks if the coordinates point to the headers range. If one of the axis (row or col) point to
129
+ * the header (negative value) then method returns `true`.
130
+ *
131
+ * @returns {boolean}
132
+ */
133
+ }, {
134
+ key: "isHeader",
135
+ value: function isHeader() {
136
+ return !this.isCell();
137
+ }
138
+
139
+ /**
140
+ * Checks if the coordinates point to the cells range. If all axis (row and col) point to
141
+ * the cell (positive value) then method returns `true`.
142
+ *
143
+ * @returns {boolean}
144
+ */
145
+ }, {
146
+ key: "isCell",
147
+ value: function isCell() {
148
+ return this.row >= 0 && this.col >= 0;
149
+ }
150
+
124
151
  /**
125
152
  * Checks if another set of coordinates (`testedCoords`)
126
153
  * is south-east of the coordinates in your `CellCoords` instance.
@@ -43,24 +43,27 @@ var _isRtl = /*#__PURE__*/new WeakMap();
43
43
  * ```
44
44
  */
45
45
  var CellCoords = /*#__PURE__*/function () {
46
+ /**
47
+ * A visual row index.
48
+ *
49
+ * @type {number}
50
+ */
51
+
52
+ /**
53
+ * A visual column index.
54
+ *
55
+ * @type {number}
56
+ */
57
+
58
+ /**
59
+ * @type {boolean}
60
+ */
61
+
46
62
  function CellCoords(row, column) {
47
63
  var isRtl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
48
64
  _classCallCheck(this, CellCoords);
49
- /**
50
- * A visual row index.
51
- *
52
- * @type {number}
53
- */
54
65
  _defineProperty(this, "row", null);
55
- /**
56
- * A visual column index.
57
- *
58
- * @type {number}
59
- */
60
66
  _defineProperty(this, "col", null);
61
- /**
62
- * @type {boolean}
63
- */
64
67
  _classPrivateFieldInitSpec(this, _isRtl, {
65
68
  writable: true,
66
69
  value: false
@@ -117,6 +120,30 @@ var CellCoords = /*#__PURE__*/function () {
117
120
  return this.row === cellCoords.row && this.col === cellCoords.col;
118
121
  }
119
122
 
123
+ /**
124
+ * Checks if the coordinates point to the headers range. If one of the axis (row or col) point to
125
+ * the header (negative value) then method returns `true`.
126
+ *
127
+ * @returns {boolean}
128
+ */
129
+ }, {
130
+ key: "isHeader",
131
+ value: function isHeader() {
132
+ return !this.isCell();
133
+ }
134
+
135
+ /**
136
+ * Checks if the coordinates point to the cells range. If all axis (row and col) point to
137
+ * the cell (positive value) then method returns `true`.
138
+ *
139
+ * @returns {boolean}
140
+ */
141
+ }, {
142
+ key: "isCell",
143
+ value: function isCell() {
144
+ return this.row >= 0 && this.col >= 0;
145
+ }
146
+
120
147
  /**
121
148
  * Checks if another set of coordinates (`testedCoords`)
122
149
  * is south-east of the coordinates in your `CellCoords` instance.
@@ -32,6 +32,7 @@ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) {
32
32
  function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
33
33
  function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
34
34
  function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
35
+ var _isRtl = /*#__PURE__*/new WeakMap();
35
36
  /* eslint-disable jsdoc/require-description-complete-sentence */
36
37
  /**
37
38
  * @description
@@ -51,40 +52,43 @@ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.
51
52
  * import Handsontable, { CellRange } from '/handsontable/base';
52
53
  * ```
53
54
  */
54
- var _isRtl = /*#__PURE__*/new WeakMap();
55
55
  var CellRange = /*#__PURE__*/function () {
56
+ /**
57
+ * Used to draw bold border around a cell where selection was started and to edit the cell
58
+ * when you press Enter. The highlight cannot point to headers (negative values) so its
59
+ * coordinates object is normalized while assigning.
60
+ *
61
+ * @private
62
+ * @type {CellCoords}
63
+ */
64
+
65
+ /**
66
+ * Usually the same as highlight, but in Excel there is distinction - one can change
67
+ * highlight within a selection.
68
+ *
69
+ * @private
70
+ * @type {CellCoords}
71
+ */
72
+
73
+ /**
74
+ * End selection.
75
+ *
76
+ * @private
77
+ * @type {CellCoords}
78
+ */
79
+
80
+ /**
81
+ * @type {boolean}
82
+ */
83
+
56
84
  function CellRange(highlight) {
57
85
  var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : highlight;
58
86
  var to = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : highlight;
59
87
  var isRtl = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
60
88
  _classCallCheck(this, CellRange);
61
- /**
62
- * Used to draw bold border around a cell where selection was started and to edit the cell
63
- * when you press Enter. The highlight cannot point to headers (negative values) so its
64
- * coordinates object is normalized while assigning.
65
- *
66
- * @private
67
- * @type {CellCoords}
68
- */
69
89
  _defineProperty(this, "highlight", null);
70
- /**
71
- * Usually the same as highlight, but in Excel there is distinction - one can change
72
- * highlight within a selection.
73
- *
74
- * @private
75
- * @type {CellCoords}
76
- */
77
90
  _defineProperty(this, "from", null);
78
- /**
79
- * End selection.
80
- *
81
- * @private
82
- * @type {CellCoords}
83
- */
84
91
  _defineProperty(this, "to", null);
85
- /**
86
- * @type {boolean}
87
- */
88
92
  _classPrivateFieldInitSpec(this, _isRtl, {
89
93
  writable: true,
90
94
  value: false
@@ -48,38 +48,42 @@ import CellCoords from "./../cell/coords.mjs";
48
48
  */
49
49
  var _isRtl = /*#__PURE__*/new WeakMap();
50
50
  var CellRange = /*#__PURE__*/function () {
51
+ /**
52
+ * Used to draw bold border around a cell where selection was started and to edit the cell
53
+ * when you press Enter. The highlight cannot point to headers (negative values) so its
54
+ * coordinates object is normalized while assigning.
55
+ *
56
+ * @private
57
+ * @type {CellCoords}
58
+ */
59
+
60
+ /**
61
+ * Usually the same as highlight, but in Excel there is distinction - one can change
62
+ * highlight within a selection.
63
+ *
64
+ * @private
65
+ * @type {CellCoords}
66
+ */
67
+
68
+ /**
69
+ * End selection.
70
+ *
71
+ * @private
72
+ * @type {CellCoords}
73
+ */
74
+
75
+ /**
76
+ * @type {boolean}
77
+ */
78
+
51
79
  function CellRange(highlight) {
52
80
  var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : highlight;
53
81
  var to = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : highlight;
54
82
  var isRtl = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
55
83
  _classCallCheck(this, CellRange);
56
- /**
57
- * Used to draw bold border around a cell where selection was started and to edit the cell
58
- * when you press Enter. The highlight cannot point to headers (negative values) so its
59
- * coordinates object is normalized while assigning.
60
- *
61
- * @private
62
- * @type {CellCoords}
63
- */
64
84
  _defineProperty(this, "highlight", null);
65
- /**
66
- * Usually the same as highlight, but in Excel there is distinction - one can change
67
- * highlight within a selection.
68
- *
69
- * @private
70
- * @type {CellCoords}
71
- */
72
85
  _defineProperty(this, "from", null);
73
- /**
74
- * End selection.
75
- *
76
- * @private
77
- * @type {CellCoords}
78
- */
79
86
  _defineProperty(this, "to", null);
80
- /**
81
- * @type {boolean}
82
- */
83
87
  _classPrivateFieldInitSpec(this, _isRtl, {
84
88
  writable: true,
85
89
  value: false
@@ -41,7 +41,7 @@ var CoreAbstract = /*#__PURE__*/function () {
41
41
  _defineProperty(this, "wtScroll", void 0);
42
42
  _defineProperty(this, "wtViewport", void 0);
43
43
  _defineProperty(this, "wtOverlays", void 0);
44
- _defineProperty(this, "selections", void 0);
44
+ _defineProperty(this, "selectionManager", void 0);
45
45
  _defineProperty(this, "wtEvent", void 0);
46
46
  /**
47
47
  * The walkontable instance id.
@@ -348,8 +348,8 @@ var CoreAbstract = /*#__PURE__*/function () {
348
348
  return wot.wtOverlays; // TODO refactoring: move outside dao, use IOC
349
349
  },
350
350
 
351
- get selections() {
352
- return wot.selections; // TODO refactoring: move outside dao, use IOC
351
+ get selectionManager() {
352
+ return wot.selectionManager; // TODO refactoring: move outside dao, use IOC
353
353
  },
354
354
 
355
355
  get drawn() {
@@ -398,6 +398,12 @@ var CoreAbstract = /*#__PURE__*/function () {
398
398
  },
399
399
  get countRowsVisible() {
400
400
  return wot.wtViewport.rowsVisibleCalculator.count;
401
+ },
402
+ get columnHeaders() {
403
+ return wot.wtSettings.getSetting('columnHeaders');
404
+ },
405
+ get rowHeaders() {
406
+ return wot.wtSettings.getSetting('rowHeaders');
401
407
  }
402
408
  };
403
409
  }
@@ -36,7 +36,7 @@ var CoreAbstract = /*#__PURE__*/function () {
36
36
  _defineProperty(this, "wtScroll", void 0);
37
37
  _defineProperty(this, "wtViewport", void 0);
38
38
  _defineProperty(this, "wtOverlays", void 0);
39
- _defineProperty(this, "selections", void 0);
39
+ _defineProperty(this, "selectionManager", void 0);
40
40
  _defineProperty(this, "wtEvent", void 0);
41
41
  /**
42
42
  * The walkontable instance id.
@@ -343,8 +343,8 @@ var CoreAbstract = /*#__PURE__*/function () {
343
343
  return wot.wtOverlays; // TODO refactoring: move outside dao, use IOC
344
344
  },
345
345
 
346
- get selections() {
347
- return wot.selections; // TODO refactoring: move outside dao, use IOC
346
+ get selectionManager() {
347
+ return wot.selectionManager; // TODO refactoring: move outside dao, use IOC
348
348
  },
349
349
 
350
350
  get drawn() {
@@ -393,6 +393,12 @@ var CoreAbstract = /*#__PURE__*/function () {
393
393
  },
394
394
  get countRowsVisible() {
395
395
  return wot.wtViewport.rowsVisibleCalculator.count;
396
+ },
397
+ get columnHeaders() {
398
+ return wot.wtSettings.getSetting('columnHeaders');
399
+ },
400
+ get rowHeaders() {
401
+ return wot.wtSettings.getSetting('rowHeaders');
396
402
  }
397
403
  };
398
404
  }
@@ -54,8 +54,8 @@ var Clone = /*#__PURE__*/function (_CoreAbstract) {
54
54
  _this.cloneOverlay = clone.overlay;
55
55
  _this.wtTable = _this.cloneOverlay.createTable(_this.getTableDao(), facadeGetter, _this.domBindings, _this.wtSettings);
56
56
  _this.wtViewport = clone.viewport;
57
- _this.selections = clone.selections;
58
- _this.wtEvent = new _event.default(facadeGetter, _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable, _this.selections, clone.event);
57
+ _this.selectionManager = clone.selectionManager;
58
+ _this.wtEvent = new _event.default(facadeGetter, _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable, _this.selectionManager, clone.event);
59
59
  _this.findOriginalHeaders();
60
60
  return _this;
61
61
  }
@@ -49,8 +49,8 @@ var Clone = /*#__PURE__*/function (_CoreAbstract) {
49
49
  _this.cloneOverlay = clone.overlay;
50
50
  _this.wtTable = _this.cloneOverlay.createTable(_this.getTableDao(), facadeGetter, _this.domBindings, _this.wtSettings);
51
51
  _this.wtViewport = clone.viewport;
52
- _this.selections = clone.selections;
53
- _this.wtEvent = new Event(facadeGetter, _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable, _this.selections, clone.event);
52
+ _this.selectionManager = clone.selectionManager;
53
+ _this.wtEvent = new Event(facadeGetter, _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable, _this.selectionManager, clone.event);
54
54
  _this.findOriginalHeaders();
55
55
  return _this;
56
56
  }
@@ -22,6 +22,7 @@ var _settings = _interopRequireDefault(require("../settings"));
22
22
  var _master = _interopRequireDefault(require("../table/master"));
23
23
  var _viewport = _interopRequireDefault(require("../viewport"));
24
24
  var _base = _interopRequireDefault(require("./_base"));
25
+ var _manager = require("../selection/manager");
25
26
  var _object = require("../../../../helpers/object");
26
27
  var _element = require("../../../../helpers/dom/element");
27
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -55,8 +56,8 @@ var Walkontable = /*#__PURE__*/function (_CoreAbstract) {
55
56
 
56
57
  _this.wtTable = new _master.default(_this.getTableDao(), facadeGetter, _this.domBindings, _this.wtSettings);
57
58
  _this.wtViewport = new _viewport.default(_this.getViewportDao(), _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable);
58
- _this.selections = _this.wtSettings.getSetting('selections');
59
- _this.wtEvent = new _event.default(facadeGetter, _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable, _this.selections);
59
+ _this.selectionManager = new _manager.SelectionManager(_this.wtSettings.getSetting('selections'));
60
+ _this.wtEvent = new _event.default(facadeGetter, _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable, _this.selectionManager);
60
61
  _this.wtOverlays = new _overlays.default( // TODO create DAO and remove reference to the Walkontable instance.
61
62
  _assertThisInitialized(_this), facadeGetter, _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable);
62
63
  _this.exportSettingsAsClassNames();
@@ -30,6 +30,7 @@ import Settings from "../settings.mjs";
30
30
  import MasterTable from "../table/master.mjs";
31
31
  import Viewport from "../viewport.mjs";
32
32
  import CoreAbstract from "./_base.mjs";
33
+ import { SelectionManager } from "../selection/manager.mjs";
33
34
  import { objectEach } from "../../../../helpers/object.mjs";
34
35
  import { addClass, removeClass } from "../../../../helpers/dom/element.mjs";
35
36
  /**
@@ -50,8 +51,8 @@ var Walkontable = /*#__PURE__*/function (_CoreAbstract) {
50
51
 
51
52
  _this.wtTable = new MasterTable(_this.getTableDao(), facadeGetter, _this.domBindings, _this.wtSettings);
52
53
  _this.wtViewport = new Viewport(_this.getViewportDao(), _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable);
53
- _this.selections = _this.wtSettings.getSetting('selections');
54
- _this.wtEvent = new Event(facadeGetter, _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable, _this.selections);
54
+ _this.selectionManager = new SelectionManager(_this.wtSettings.getSetting('selections'));
55
+ _this.wtEvent = new Event(facadeGetter, _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable, _this.selectionManager);
55
56
  _this.wtOverlays = new Overlays( // TODO create DAO and remove reference to the Walkontable instance.
56
57
  _assertThisInitialized(_this), facadeGetter, _this.domBindings, _this.wtSettings, _this.eventManager, _this.wtTable);
57
58
  _this.exportSettingsAsClassNames();
@@ -38,16 +38,16 @@ var Event = /*#__PURE__*/function () {
38
38
  * @param {Settings} wtSettings The walkontable settings.
39
39
  * @param {EventManager} eventManager The walkontable event manager.
40
40
  * @param {Table} wtTable The table.
41
- * @param {Selections} selections Selections.
41
+ * @param {SelectionManager} selectionManager Selections.
42
42
  * @param {Event} [parent=null] The main Event instance.
43
43
  */
44
- function Event(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selections) {
44
+ function Event(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selectionManager) {
45
45
  var parent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
46
46
  _classCallCheck(this, Event);
47
47
  this.wtSettings = wtSettings;
48
48
  this.domBindings = domBindings;
49
49
  this.wtTable = wtTable;
50
- this.selections = selections;
50
+ this.selectionManager = selectionManager;
51
51
  this.parent = parent;
52
52
 
53
53
  /**
@@ -62,7 +62,8 @@ var Event = /*#__PURE__*/function () {
62
62
  * Should be use only for passing face called external origin methods, like registered event listeners.
63
63
  * It provides backward compatibility by getting instance facade.
64
64
  *
65
- * @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular dependency).
65
+ * @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
66
+ * dependency).
66
67
  * @todo Con. Maybe passing listener caller as an ioc from faced resolves this issue. To rethink later.
67
68
  *
68
69
  * @type {FacadeGetter}
@@ -180,11 +181,11 @@ var Event = /*#__PURE__*/function () {
180
181
  cell.coords = this.wtTable.getCoords(TD);
181
182
  cell.TD = TD;
182
183
  } else if ((0, _element.hasClass)(elem, 'wtBorder') && (0, _element.hasClass)(elem, 'current')) {
183
- cell.coords = this.selections.getCell().cellRange.highlight;
184
+ cell.coords = this.selectionManager.getFocusSelection().cellRange.highlight;
184
185
  cell.TD = this.wtTable.getCell(cell.coords);
185
186
  } else if ((0, _element.hasClass)(elem, 'wtBorder') && (0, _element.hasClass)(elem, 'area')) {
186
- if (this.selections.createOrGetArea().cellRange) {
187
- cell.coords = this.selections.createOrGetArea().cellRange.to;
187
+ if (this.selectionManager.getAreaSelection().cellRange) {
188
+ cell.coords = this.selectionManager.getAreaSelection().cellRange.to;
188
189
  cell.TD = this.wtTable.getCell(cell.coords);
189
190
  }
190
191
  }
@@ -205,8 +206,9 @@ var Event = /*#__PURE__*/function () {
205
206
  var getParentNode = (0, _function.partial)(_element.getParent, event.target);
206
207
  var realTarget = event.target;
207
208
 
208
- // ignore focusable element from mouse down processing (https://github.com/handsontable/handsontable/issues/3555)
209
- if (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement) {
209
+ // ignore non-TD focusable elements from mouse down processing
210
+ // (https://github.com/handsontable/handsontable/issues/3555)
211
+ if (!['TD', 'TH'].includes(activeElement.nodeName) && (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement)) {
210
212
  return;
211
213
  }
212
214
  var cell = this.parentCell(realTarget);
@@ -334,7 +336,7 @@ var Event = /*#__PURE__*/function () {
334
336
  key: "onTouchStart",
335
337
  value: function onTouchStart(event) {
336
338
  var priv = privatePool.get(this);
337
- priv.selectedCellBeforeTouchEnd = this.selections.getCell().cellRange;
339
+ priv.selectedCellBeforeTouchEnd = this.selectionManager.getFocusSelection().cellRange;
338
340
  this.touchApplied = true;
339
341
  this.onMouseDown(event);
340
342
  }
@@ -34,16 +34,16 @@ var Event = /*#__PURE__*/function () {
34
34
  * @param {Settings} wtSettings The walkontable settings.
35
35
  * @param {EventManager} eventManager The walkontable event manager.
36
36
  * @param {Table} wtTable The table.
37
- * @param {Selections} selections Selections.
37
+ * @param {SelectionManager} selectionManager Selections.
38
38
  * @param {Event} [parent=null] The main Event instance.
39
39
  */
40
- function Event(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selections) {
40
+ function Event(facadeGetter, domBindings, wtSettings, eventManager, wtTable, selectionManager) {
41
41
  var parent = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
42
42
  _classCallCheck(this, Event);
43
43
  this.wtSettings = wtSettings;
44
44
  this.domBindings = domBindings;
45
45
  this.wtTable = wtTable;
46
- this.selections = selections;
46
+ this.selectionManager = selectionManager;
47
47
  this.parent = parent;
48
48
 
49
49
  /**
@@ -58,7 +58,8 @@ var Event = /*#__PURE__*/function () {
58
58
  * Should be use only for passing face called external origin methods, like registered event listeners.
59
59
  * It provides backward compatibility by getting instance facade.
60
60
  *
61
- * @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular dependency).
61
+ * @todo Consider about removing this from Event class, because it make relationship into facade (implicit circular
62
+ * dependency).
62
63
  * @todo Con. Maybe passing listener caller as an ioc from faced resolves this issue. To rethink later.
63
64
  *
64
65
  * @type {FacadeGetter}
@@ -176,11 +177,11 @@ var Event = /*#__PURE__*/function () {
176
177
  cell.coords = this.wtTable.getCoords(TD);
177
178
  cell.TD = TD;
178
179
  } else if (hasClass(elem, 'wtBorder') && hasClass(elem, 'current')) {
179
- cell.coords = this.selections.getCell().cellRange.highlight;
180
+ cell.coords = this.selectionManager.getFocusSelection().cellRange.highlight;
180
181
  cell.TD = this.wtTable.getCell(cell.coords);
181
182
  } else if (hasClass(elem, 'wtBorder') && hasClass(elem, 'area')) {
182
- if (this.selections.createOrGetArea().cellRange) {
183
- cell.coords = this.selections.createOrGetArea().cellRange.to;
183
+ if (this.selectionManager.getAreaSelection().cellRange) {
184
+ cell.coords = this.selectionManager.getAreaSelection().cellRange.to;
184
185
  cell.TD = this.wtTable.getCell(cell.coords);
185
186
  }
186
187
  }
@@ -201,8 +202,9 @@ var Event = /*#__PURE__*/function () {
201
202
  var getParentNode = partial(getParent, event.target);
202
203
  var realTarget = event.target;
203
204
 
204
- // ignore focusable element from mouse down processing (https://github.com/handsontable/handsontable/issues/3555)
205
- if (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement) {
205
+ // ignore non-TD focusable elements from mouse down processing
206
+ // (https://github.com/handsontable/handsontable/issues/3555)
207
+ if (!['TD', 'TH'].includes(activeElement.nodeName) && (realTarget === activeElement || getParentNode(0) === activeElement || getParentNode(1) === activeElement)) {
206
208
  return;
207
209
  }
208
210
  var cell = this.parentCell(realTarget);
@@ -330,7 +332,7 @@ var Event = /*#__PURE__*/function () {
330
332
  key: "onTouchStart",
331
333
  value: function onTouchStart(event) {
332
334
  var priv = privatePool.get(this);
333
- priv.selectedCellBeforeTouchEnd = this.selections.getCell().cellRange;
335
+ priv.selectedCellBeforeTouchEnd = this.selectionManager.getFocusSelection().cellRange;
334
336
  this.touchApplied = true;
335
337
  this.onMouseDown(event);
336
338
  }
@@ -82,9 +82,9 @@ var WalkontableFacade = /*#__PURE__*/function () {
82
82
  return this._wot.cloneOverlay; // todo create facade
83
83
  }
84
84
  }, {
85
- key: "selections",
85
+ key: "selectionManager",
86
86
  get: function get() {
87
- return this._wot.selections; // todo create facade
87
+ return this._wot.selectionManager; // todo create facade
88
88
  }
89
89
  }, {
90
90
  key: "wtViewport",
@@ -77,9 +77,9 @@ var WalkontableFacade = /*#__PURE__*/function () {
77
77
  return this._wot.cloneOverlay; // todo create facade
78
78
  }
79
79
  }, {
80
- key: "selections",
80
+ key: "selectionManager",
81
81
  get: function get() {
82
- return this._wot.selections; // todo create facade
82
+ return this._wot.selectionManager; // todo create facade
83
83
  }
84
84
  }, {
85
85
  key: "wtViewport",
@@ -23,8 +23,16 @@ exports.CellRange = _range.default;
23
23
  var _core = _interopRequireDefault(require("./facade/core"));
24
24
  exports.default = _core.default;
25
25
  exports.Core = _core.default;
26
- var _selection = _interopRequireDefault(require("./selection"));
27
- exports.Selection = _selection.default;
26
+ var _selection = require("./selection");
27
+ exports.Selection = _selection.Selection;
28
+ exports.HIGHLIGHT_ACTIVE_HEADER_TYPE = _selection.ACTIVE_HEADER_TYPE;
29
+ exports.HIGHLIGHT_AREA_TYPE = _selection.AREA_TYPE;
30
+ exports.HIGHLIGHT_FOCUS_TYPE = _selection.FOCUS_TYPE;
31
+ exports.HIGHLIGHT_FILL_TYPE = _selection.FILL_TYPE;
32
+ exports.HIGHLIGHT_HEADER_TYPE = _selection.HEADER_TYPE;
33
+ exports.HIGHLIGHT_ROW_TYPE = _selection.ROW_TYPE;
34
+ exports.HIGHLIGHT_COLUMN_TYPE = _selection.COLUMN_TYPE;
35
+ exports.HIGHLIGHT_CUSTOM_SELECTION_TYPE = _selection.CUSTOM_SELECTION_TYPE;
28
36
  var Renderer = _interopRequireWildcard(require("./renderer"));
29
37
  exports.Renderer = Renderer;
30
38
  var _orderView = require("./utils/orderView");
@@ -3,8 +3,8 @@ import ViewportRowsCalculator from "./calculator/viewportRows.mjs";
3
3
  import CellCoords from "./cell/coords.mjs";
4
4
  import CellRange from "./cell/range.mjs";
5
5
  import Walkontable from "./facade/core.mjs";
6
- import Selection from "./selection.mjs";
6
+ import { Selection, ACTIVE_HEADER_TYPE, AREA_TYPE, FOCUS_TYPE, FILL_TYPE, HEADER_TYPE, ROW_TYPE, COLUMN_TYPE, CUSTOM_SELECTION_TYPE } from "./selection/index.mjs";
7
7
  import * as Renderer from "./renderer/index.mjs";
8
8
  import { OrderView, SharedOrderView } from "./utils/orderView/index.mjs";
9
9
  import { getListenersCounter } from "../../../eventManager.mjs";
10
- export { ViewportColumnsCalculator, ViewportRowsCalculator, CellCoords, CellRange, Walkontable as default, Walkontable as Core, Selection, Renderer, OrderView, SharedOrderView, getListenersCounter };
10
+ export { ViewportColumnsCalculator, ViewportRowsCalculator, CellCoords, CellRange, Walkontable as default, Walkontable as Core, Selection, ACTIVE_HEADER_TYPE as HIGHLIGHT_ACTIVE_HEADER_TYPE, AREA_TYPE as HIGHLIGHT_AREA_TYPE, FOCUS_TYPE as HIGHLIGHT_FOCUS_TYPE, FILL_TYPE as HIGHLIGHT_FILL_TYPE, HEADER_TYPE as HIGHLIGHT_HEADER_TYPE, ROW_TYPE as HIGHLIGHT_ROW_TYPE, COLUMN_TYPE as HIGHLIGHT_COLUMN_TYPE, CUSTOM_SELECTION_TYPE as HIGHLIGHT_CUSTOM_SELECTION_TYPE, Renderer, OrderView, SharedOrderView, getListenersCounter };
@@ -36,6 +36,13 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
36
36
  * @property {Walkontable} wot The Walkontable instance.
37
37
  */
38
38
  var Overlay = /*#__PURE__*/function () {
39
+ /**
40
+ * The Walkontable settings.
41
+ *
42
+ * @private
43
+ * @type {Settings}
44
+ */
45
+
39
46
  /**
40
47
  * @param {Walkontable} wotInstance The Walkontable instance. @TODO refactoring: check if can be deleted.
41
48
  * @param {FacadeGetter} facadeGetter Function which return proper facade.
@@ -45,12 +52,6 @@ var Overlay = /*#__PURE__*/function () {
45
52
  */
46
53
  function Overlay(wotInstance, facadeGetter, type, wtSettings, domBindings) {
47
54
  _classCallCheck(this, Overlay);
48
- /**
49
- * The Walkontable settings.
50
- *
51
- * @private
52
- * @type {Settings}
53
- */
54
55
  _defineProperty(this, "wtSettings", null);
55
56
  (0, _object.defineGetter)(this, 'wot', wotInstance, {
56
57
  writable: false
@@ -307,7 +308,7 @@ var Overlay = /*#__PURE__*/function () {
307
308
  // todo ioc , or factor func if used only here
308
309
  event: this.wot.wtEvent,
309
310
  // todo ioc , or factory func if used only here
310
- selections: this.wot.selections // todo ioc , or factory func if used only here
311
+ selectionManager: this.wot.selectionManager // todo ioc , or factory func if used only here
311
312
  });
312
313
  }
313
314