handsontable 16.1.1 → 16.2.0-next-90d1117-20251117

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/3rdparty/walkontable/src/overlays.js +1 -1
  2. package/3rdparty/walkontable/src/overlays.mjs +1 -1
  3. package/3rdparty/walkontable/src/selection/border/border.js +19 -3
  4. package/3rdparty/walkontable/src/selection/border/border.mjs +19 -3
  5. package/CHANGELOG.md +39 -0
  6. package/base.js +2 -2
  7. package/base.mjs +2 -2
  8. package/core/coordsMapper/index.js +11 -0
  9. package/core/coordsMapper/index.mjs +1 -0
  10. package/core/hooks/bucket.js +7 -1
  11. package/core/hooks/bucket.mjs +7 -1
  12. package/core/hooks/constants.js +54 -0
  13. package/core/hooks/constants.mjs +54 -0
  14. package/core/hooks/index.d.ts +6 -0
  15. package/core/index.js +10 -4
  16. package/core/index.mjs +2 -1
  17. package/core.d.ts +3 -2
  18. package/core.js +67 -26
  19. package/core.mjs +56 -15
  20. package/dataMap/metaManager/metaSchema.js +197 -20
  21. package/dataMap/metaManager/metaSchema.mjs +197 -20
  22. package/dist/handsontable.css +175 -3
  23. package/dist/handsontable.full.css +175 -3
  24. package/dist/handsontable.full.js +10864 -8426
  25. package/dist/handsontable.full.min.css +5 -4
  26. package/dist/handsontable.full.min.js +194 -193
  27. package/dist/handsontable.js +7126 -4827
  28. package/dist/handsontable.min.css +4 -4
  29. package/dist/handsontable.min.js +43 -42
  30. package/dist/languages/all.js +168 -21
  31. package/dist/languages/all.min.js +1 -1
  32. package/dist/languages/ar-AR.js +8 -1
  33. package/dist/languages/ar-AR.min.js +1 -1
  34. package/dist/languages/cs-CZ.js +8 -1
  35. package/dist/languages/cs-CZ.min.js +1 -1
  36. package/dist/languages/de-CH.js +8 -1
  37. package/dist/languages/de-CH.min.js +1 -1
  38. package/dist/languages/de-DE.js +8 -1
  39. package/dist/languages/de-DE.min.js +1 -1
  40. package/dist/languages/en-US.js +8 -1
  41. package/dist/languages/en-US.min.js +1 -1
  42. package/dist/languages/es-MX.js +8 -1
  43. package/dist/languages/es-MX.min.js +1 -1
  44. package/dist/languages/fa-IR.js +8 -1
  45. package/dist/languages/fa-IR.min.js +1 -1
  46. package/dist/languages/fr-FR.js +8 -1
  47. package/dist/languages/fr-FR.min.js +1 -1
  48. package/dist/languages/hr-HR.js +8 -1
  49. package/dist/languages/hr-HR.min.js +1 -1
  50. package/dist/languages/it-IT.js +8 -1
  51. package/dist/languages/it-IT.min.js +1 -1
  52. package/dist/languages/ja-JP.js +8 -1
  53. package/dist/languages/ja-JP.min.js +1 -1
  54. package/dist/languages/ko-KR.js +8 -1
  55. package/dist/languages/ko-KR.min.js +1 -1
  56. package/dist/languages/lv-LV.js +8 -1
  57. package/dist/languages/lv-LV.min.js +1 -1
  58. package/dist/languages/nb-NO.js +8 -1
  59. package/dist/languages/nb-NO.min.js +1 -1
  60. package/dist/languages/nl-NL.js +8 -1
  61. package/dist/languages/nl-NL.min.js +1 -1
  62. package/dist/languages/pl-PL.js +8 -1
  63. package/dist/languages/pl-PL.min.js +1 -1
  64. package/dist/languages/pt-BR.js +8 -1
  65. package/dist/languages/pt-BR.min.js +1 -1
  66. package/dist/languages/ru-RU.js +8 -1
  67. package/dist/languages/ru-RU.min.js +1 -1
  68. package/dist/languages/sr-SP.js +8 -1
  69. package/dist/languages/sr-SP.min.js +1 -1
  70. package/dist/languages/zh-CN.js +8 -1
  71. package/dist/languages/zh-CN.min.js +1 -1
  72. package/dist/languages/zh-TW.js +8 -1
  73. package/dist/languages/zh-TW.min.js +1 -1
  74. package/editors/autocompleteEditor/autocompleteEditor.js +21 -1
  75. package/editors/autocompleteEditor/autocompleteEditor.mjs +22 -2
  76. package/focusManager/constants.js +25 -0
  77. package/focusManager/constants.mjs +22 -0
  78. package/focusManager/eventListener.js +107 -0
  79. package/focusManager/eventListener.mjs +103 -0
  80. package/{focusManager.d.ts → focusManager/grid.d.ts} +1 -1
  81. package/{focusManager.js → focusManager/grid.js} +48 -17
  82. package/{focusManager.mjs → focusManager/grid.mjs} +47 -16
  83. package/focusManager/index.d.ts +2 -0
  84. package/focusManager/index.js +20 -0
  85. package/focusManager/index.mjs +20 -0
  86. package/focusManager/scope.js +133 -0
  87. package/focusManager/scope.mjs +129 -0
  88. package/focusManager/scopeManager.d.ts +19 -0
  89. package/focusManager/scopeManager.js +268 -0
  90. package/focusManager/scopeManager.mjs +263 -0
  91. package/focusManager/scopes/grid.js +120 -0
  92. package/focusManager/scopes/grid.mjs +116 -0
  93. package/focusManager/scopes/index.js +13 -0
  94. package/focusManager/scopes/index.mjs +9 -0
  95. package/{utils → focusManager/utils}/focusDetector.js +21 -31
  96. package/{utils → focusManager/utils}/focusDetector.mjs +21 -31
  97. package/focusManager/utils/utils.js +95 -0
  98. package/focusManager/utils/utils.mjs +89 -0
  99. package/helpers/dom/element.js +1 -1
  100. package/helpers/dom/element.mjs +2 -2
  101. package/helpers/dom/event.js +1 -1
  102. package/helpers/dom/event.mjs +1 -1
  103. package/helpers/mixed.js +2 -65
  104. package/helpers/mixed.mjs +2 -63
  105. package/i18n/constants.js +10 -1
  106. package/i18n/constants.mjs +10 -1
  107. package/i18n/languages/ar-AR.js +8 -1
  108. package/i18n/languages/ar-AR.mjs +8 -1
  109. package/i18n/languages/cs-CZ.js +8 -1
  110. package/i18n/languages/cs-CZ.mjs +8 -1
  111. package/i18n/languages/de-CH.js +8 -1
  112. package/i18n/languages/de-CH.mjs +8 -1
  113. package/i18n/languages/de-DE.js +8 -1
  114. package/i18n/languages/de-DE.mjs +8 -1
  115. package/i18n/languages/en-US.js +8 -1
  116. package/i18n/languages/en-US.mjs +8 -1
  117. package/i18n/languages/es-MX.js +8 -1
  118. package/i18n/languages/es-MX.mjs +8 -1
  119. package/i18n/languages/fa-IR.js +8 -1
  120. package/i18n/languages/fa-IR.mjs +8 -1
  121. package/i18n/languages/fr-FR.js +8 -1
  122. package/i18n/languages/fr-FR.mjs +8 -1
  123. package/i18n/languages/hr-HR.js +8 -1
  124. package/i18n/languages/hr-HR.mjs +8 -1
  125. package/i18n/languages/it-IT.js +8 -1
  126. package/i18n/languages/it-IT.mjs +8 -1
  127. package/i18n/languages/ja-JP.js +8 -1
  128. package/i18n/languages/ja-JP.mjs +8 -1
  129. package/i18n/languages/ko-KR.js +8 -1
  130. package/i18n/languages/ko-KR.mjs +8 -1
  131. package/i18n/languages/lv-LV.js +8 -1
  132. package/i18n/languages/lv-LV.mjs +8 -1
  133. package/i18n/languages/nb-NO.js +8 -1
  134. package/i18n/languages/nb-NO.mjs +8 -1
  135. package/i18n/languages/nl-NL.js +8 -1
  136. package/i18n/languages/nl-NL.mjs +8 -1
  137. package/i18n/languages/pl-PL.js +8 -1
  138. package/i18n/languages/pl-PL.mjs +8 -1
  139. package/i18n/languages/pt-BR.js +8 -1
  140. package/i18n/languages/pt-BR.mjs +8 -1
  141. package/i18n/languages/ru-RU.js +8 -1
  142. package/i18n/languages/ru-RU.mjs +8 -1
  143. package/i18n/languages/sr-SP.js +8 -1
  144. package/i18n/languages/sr-SP.mjs +8 -1
  145. package/i18n/languages/zh-CN.js +8 -1
  146. package/i18n/languages/zh-CN.mjs +8 -1
  147. package/i18n/languages/zh-TW.js +8 -1
  148. package/i18n/languages/zh-TW.mjs +8 -1
  149. package/index.d.ts +9 -0
  150. package/languages/all.js +168 -21
  151. package/languages/ar-AR.js +8 -1
  152. package/languages/ar-AR.mjs +8 -1
  153. package/languages/cs-CZ.js +8 -1
  154. package/languages/cs-CZ.mjs +8 -1
  155. package/languages/de-CH.js +8 -1
  156. package/languages/de-CH.mjs +8 -1
  157. package/languages/de-DE.js +8 -1
  158. package/languages/de-DE.mjs +8 -1
  159. package/languages/en-US.js +8 -1
  160. package/languages/en-US.mjs +8 -1
  161. package/languages/es-MX.js +8 -1
  162. package/languages/es-MX.mjs +8 -1
  163. package/languages/fa-IR.js +8 -1
  164. package/languages/fa-IR.mjs +8 -1
  165. package/languages/fr-FR.js +8 -1
  166. package/languages/fr-FR.mjs +8 -1
  167. package/languages/hr-HR.js +8 -1
  168. package/languages/hr-HR.mjs +8 -1
  169. package/languages/index.js +168 -21
  170. package/languages/it-IT.js +8 -1
  171. package/languages/it-IT.mjs +8 -1
  172. package/languages/ja-JP.js +8 -1
  173. package/languages/ja-JP.mjs +8 -1
  174. package/languages/ko-KR.js +8 -1
  175. package/languages/ko-KR.mjs +8 -1
  176. package/languages/lv-LV.js +8 -1
  177. package/languages/lv-LV.mjs +8 -1
  178. package/languages/nb-NO.js +8 -1
  179. package/languages/nb-NO.mjs +8 -1
  180. package/languages/nl-NL.js +8 -1
  181. package/languages/nl-NL.mjs +8 -1
  182. package/languages/pl-PL.js +8 -1
  183. package/languages/pl-PL.mjs +8 -1
  184. package/languages/pt-BR.js +8 -1
  185. package/languages/pt-BR.mjs +8 -1
  186. package/languages/ru-RU.js +8 -1
  187. package/languages/ru-RU.mjs +8 -1
  188. package/languages/sr-SP.js +8 -1
  189. package/languages/sr-SP.mjs +8 -1
  190. package/languages/zh-CN.js +8 -1
  191. package/languages/zh-CN.mjs +8 -1
  192. package/languages/zh-TW.js +8 -1
  193. package/languages/zh-TW.mjs +8 -1
  194. package/package.json +25 -7
  195. package/plugins/autoRowSize/autoRowSize.js +8 -1
  196. package/plugins/autoRowSize/autoRowSize.mjs +8 -1
  197. package/plugins/base/base.js +36 -10
  198. package/plugins/base/base.mjs +36 -10
  199. package/plugins/columnSummary/endpoints.js +13 -3
  200. package/plugins/columnSummary/endpoints.mjs +13 -3
  201. package/plugins/customBorders/customBorders.d.ts +1 -0
  202. package/plugins/customBorders/customBorders.js +32 -2
  203. package/plugins/customBorders/customBorders.mjs +32 -2
  204. package/plugins/dialog/constants.js +7 -0
  205. package/plugins/dialog/constants.mjs +4 -0
  206. package/plugins/dialog/dialog.d.ts +22 -2
  207. package/plugins/dialog/dialog.js +197 -81
  208. package/plugins/dialog/dialog.mjs +196 -81
  209. package/plugins/dialog/templates/base.js +60 -0
  210. package/plugins/dialog/templates/base.mjs +56 -0
  211. package/plugins/dialog/templates/confirm.js +106 -0
  212. package/plugins/dialog/templates/confirm.mjs +102 -0
  213. package/plugins/dialog/templates/index.js +6 -0
  214. package/plugins/dialog/templates/index.mjs +4 -0
  215. package/plugins/dialog/ui.js +125 -41
  216. package/plugins/dialog/ui.mjs +119 -35
  217. package/plugins/emptyDataState/emptyDataState.d.ts +24 -0
  218. package/plugins/emptyDataState/emptyDataState.js +526 -0
  219. package/plugins/emptyDataState/emptyDataState.mjs +521 -0
  220. package/plugins/emptyDataState/index.d.ts +1 -0
  221. package/plugins/emptyDataState/index.js +7 -0
  222. package/plugins/emptyDataState/index.mjs +1 -0
  223. package/plugins/emptyDataState/ui.js +282 -0
  224. package/plugins/emptyDataState/ui.mjs +278 -0
  225. package/plugins/filters/component/value.js +16 -1
  226. package/plugins/filters/component/value.mjs +16 -1
  227. package/plugins/filters/filters.d.ts +5 -1
  228. package/plugins/filters/filters.js +22 -1
  229. package/plugins/filters/filters.mjs +22 -1
  230. package/plugins/filters/ui/multipleSelect.js +90 -79
  231. package/plugins/filters/ui/multipleSelect.mjs +90 -79
  232. package/plugins/index.d.ts +3 -0
  233. package/plugins/index.js +3 -0
  234. package/plugins/index.mjs +3 -1
  235. package/plugins/mergeCells/utils.js +1 -5
  236. package/plugins/mergeCells/utils.mjs +1 -5
  237. package/plugins/pagination/pagination.js +37 -175
  238. package/plugins/pagination/pagination.mjs +37 -175
  239. package/plugins/pagination/strategies/autoPageSize.js +2 -2
  240. package/plugins/pagination/strategies/autoPageSize.mjs +2 -2
  241. package/plugins/pagination/ui.js +6 -10
  242. package/plugins/pagination/ui.mjs +7 -11
  243. package/plugins/stretchColumns/calculator.js +3 -1
  244. package/plugins/stretchColumns/calculator.mjs +3 -1
  245. package/plugins/undoRedo/undoRedo.js +16 -6
  246. package/plugins/undoRedo/undoRedo.mjs +16 -5
  247. package/renderers/checkboxRenderer/checkboxRenderer.js +12 -15
  248. package/renderers/checkboxRenderer/checkboxRenderer.mjs +12 -15
  249. package/selection/selection.js +1 -1
  250. package/selection/selection.mjs +1 -1
  251. package/settings.d.ts +3 -0
  252. package/shortcutContexts/commands/index.js +2 -1
  253. package/shortcutContexts/commands/index.mjs +2 -1
  254. package/shortcutContexts/commands/tabNavigation.js +51 -0
  255. package/shortcutContexts/commands/tabNavigation.mjs +48 -0
  256. package/shortcutContexts/constants.js +16 -1
  257. package/shortcutContexts/constants.mjs +16 -1
  258. package/shortcutContexts/editor.js +2 -2
  259. package/shortcutContexts/editor.mjs +3 -3
  260. package/shortcutContexts/grid.js +19 -3
  261. package/shortcutContexts/grid.mjs +20 -4
  262. package/shortcuts/manager.d.ts +1 -0
  263. package/shortcuts/manager.js +17 -2
  264. package/shortcuts/manager.mjs +17 -2
  265. package/styles/handsontable.css +192 -35
  266. package/styles/handsontable.min.css +3 -3
  267. package/styles/ht-icons-horizon.css +233 -0
  268. package/styles/ht-icons-horizon.min.css +30 -0
  269. package/styles/ht-icons-main.css +233 -0
  270. package/styles/ht-icons-main.min.css +30 -0
  271. package/styles/ht-theme-classic-no-icons.css +399 -0
  272. package/styles/ht-theme-classic-no-icons.min.css +30 -0
  273. package/styles/ht-theme-classic.css +308 -556
  274. package/styles/ht-theme-classic.min.css +3 -3
  275. package/styles/ht-theme-horizon-no-icons.css +405 -0
  276. package/styles/ht-theme-horizon-no-icons.min.css +30 -0
  277. package/styles/ht-theme-horizon.css +312 -556
  278. package/styles/ht-theme-horizon.min.css +3 -3
  279. package/styles/ht-theme-main-no-icons.css +396 -0
  280. package/styles/ht-theme-main-no-icons.min.css +30 -0
  281. package/styles/ht-theme-main.css +303 -556
  282. package/styles/ht-theme-main.min.css +3 -3
  283. package/tableView.js +23 -5
  284. package/tableView.mjs +23 -5
  285. package/utils/dataStructures/uniqueMap.js +10 -0
  286. package/utils/dataStructures/uniqueMap.mjs +10 -0
  287. package/utils/ghostTable.js +0 -3
  288. package/utils/ghostTable.mjs +0 -3
  289. package/utils/stylesHandler.js +19 -4
  290. package/utils/stylesHandler.mjs +19 -4
  291. package/core/focusCatcher/index.js +0 -131
  292. package/core/focusCatcher/index.mjs +0 -127
  293. package/core/focusCatcher/utils.js +0 -31
  294. package/core/focusCatcher/utils.mjs +0 -27
  295. package/plugins/pagination/focusController.js +0 -27
  296. package/plugins/pagination/focusController.mjs +0 -23
@@ -1,127 +0,0 @@
1
- import { GRID_GROUP } from "../../shortcutContexts/index.mjs";
2
- import { installFocusDetector } from "../../utils/focusDetector.mjs";
3
- import { normalizeCoordsIfNeeded } from "./utils.mjs";
4
- import { getMostTopStartPosition, getMostBottomEndPosition } from "../../helpers/mixed.mjs";
5
- /**
6
- * Installs a focus catcher module. The module observes when the table is focused and depending on
7
- * from the which side it was focused on it selects a specified cell or releases the TAB navigation
8
- * to the browser.
9
- *
10
- * @param {Core} hot The Handsontable instance.
11
- */
12
- export function installFocusCatcher(hot) {
13
- const clampCoordsIfNeeded = normalizeCoordsIfNeeded(hot);
14
- let recentlyAddedFocusCoords;
15
- const {
16
- activate,
17
- deactivate
18
- } = installFocusDetector(hot, hot.rootGridElement, {
19
- onFocus(from) {
20
- if (from === 'from_above') {
21
- var _clampCoordsIfNeeded;
22
- const mostTopStartCoords = (_clampCoordsIfNeeded = clampCoordsIfNeeded(recentlyAddedFocusCoords)) !== null && _clampCoordsIfNeeded !== void 0 ? _clampCoordsIfNeeded : getMostTopStartPosition(hot);
23
- const result = hot.runHooks('modifyFocusOnTabNavigation', 'from_above', mostTopStartCoords);
24
- if (mostTopStartCoords && result !== false) {
25
- hot.selectCell(mostTopStartCoords.row, mostTopStartCoords.col);
26
- }
27
- } else {
28
- var _clampCoordsIfNeeded2;
29
- const mostBottomEndCoords = (_clampCoordsIfNeeded2 = clampCoordsIfNeeded(recentlyAddedFocusCoords)) !== null && _clampCoordsIfNeeded2 !== void 0 ? _clampCoordsIfNeeded2 : getMostBottomEndPosition(hot);
30
- const result = hot.runHooks('modifyFocusOnTabNavigation', 'from_below', mostBottomEndCoords);
31
- if (mostBottomEndCoords && result !== false) {
32
- hot.selectCell(mostBottomEndCoords.row, mostBottomEndCoords.col);
33
- }
34
- }
35
- hot.listen();
36
- }
37
- });
38
- const rowWrapState = {
39
- wrapped: false,
40
- flipped: false
41
- };
42
- let isSavingCoordsEnabled = true;
43
- let isTabOrShiftTabPressed = false;
44
- let preventViewportScroll = false;
45
- hot.addHook('afterListen', () => {
46
- const activeContextName = hot.getShortcutManager().getActiveContextName();
47
- const activeContext = hot.getShortcutManager().getContext(activeContextName);
48
- if ((activeContext === null || activeContext === void 0 ? void 0 : activeContext.scope) === 'table') {
49
- deactivate();
50
- }
51
- });
52
- hot.addHook('afterUnlisten', () => {
53
- const activeContextName = hot.getShortcutManager().getActiveContextName();
54
- const activeContext = hot.getShortcutManager().getContext(activeContextName);
55
- if ((activeContext === null || activeContext === void 0 ? void 0 : activeContext.scope) === 'table') {
56
- activate();
57
- }
58
- });
59
- hot.addHook('afterSelection', (row, column, row2, column2, preventScrolling) => {
60
- if (isTabOrShiftTabPressed && (rowWrapState.wrapped && rowWrapState.flipped || preventViewportScroll)) {
61
- preventViewportScroll = false;
62
- preventScrolling.value = true;
63
- }
64
- if (isSavingCoordsEnabled) {
65
- var _hot$getSelectedRange;
66
- recentlyAddedFocusCoords = (_hot$getSelectedRange = hot.getSelectedRangeActive()) === null || _hot$getSelectedRange === void 0 ? void 0 : _hot$getSelectedRange.highlight;
67
- }
68
- });
69
- hot.addHook('beforeRowWrap', (interruptedByAutoInsertMode, newCoords, isFlipped) => {
70
- rowWrapState.wrapped = true;
71
- rowWrapState.flipped = isFlipped;
72
- });
73
-
74
- /**
75
- * Unselects the cell and deactivates the table.
76
- */
77
- function deactivateTable() {
78
- rowWrapState.wrapped = false;
79
- rowWrapState.flipped = false;
80
- hot.deselectCell();
81
- hot.unlisten();
82
- }
83
- const shortcutOptions = {
84
- keys: [['Tab'], ['Shift', 'Tab']],
85
- preventDefault: false,
86
- stopPropagation: false,
87
- relativeToGroup: GRID_GROUP,
88
- group: 'focusCatcher'
89
- };
90
- hot.getShortcutManager().getContext('grid').addShortcuts([{
91
- ...shortcutOptions,
92
- callback: () => {
93
- const {
94
- tabNavigation
95
- } = hot.getSettings();
96
- isTabOrShiftTabPressed = true;
97
- if (hot.getSelectedRangeActive() && !tabNavigation) {
98
- isSavingCoordsEnabled = false;
99
- }
100
- if (!tabNavigation) {
101
- preventViewportScroll = true;
102
- }
103
- },
104
- position: 'before'
105
- }, {
106
- ...shortcutOptions,
107
- callback: event => {
108
- const {
109
- tabNavigation,
110
- autoWrapRow
111
- } = hot.getSettings();
112
- isTabOrShiftTabPressed = false;
113
- isSavingCoordsEnabled = true;
114
- if (!tabNavigation || !hot.selection.isSelected() || autoWrapRow && rowWrapState.wrapped && rowWrapState.flipped || !autoWrapRow && rowWrapState.wrapped) {
115
- if (autoWrapRow && rowWrapState.wrapped && rowWrapState.flipped) {
116
- recentlyAddedFocusCoords = event.shiftKey ? getMostTopStartPosition(hot) : getMostBottomEndPosition(hot);
117
- }
118
- deactivateTable();
119
- return false;
120
- }
121
-
122
- // if the selection is still within the table's range then prevent default action
123
- event.preventDefault();
124
- },
125
- position: 'after'
126
- }]);
127
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.normalizeCoordsIfNeeded = normalizeCoordsIfNeeded;
5
- var _number = require("../../helpers/number");
6
- var _mixed = require("../../helpers/mixed");
7
- /**
8
- * Normalizes the coordinates (clamps to nearest visible cell position within dataset range).
9
- *
10
- * @param {Core} hot The Handsontable instance.
11
- * @returns {function(Coords | undefined): Coords | null}
12
- */
13
- function normalizeCoordsIfNeeded(hot) {
14
- return coords => {
15
- if (!coords) {
16
- return null;
17
- }
18
- const {
19
- rowIndexMapper,
20
- columnIndexMapper
21
- } = hot;
22
- if (rowIndexMapper.isHidden(coords.row) || columnIndexMapper.isHidden(coords.col)) {
23
- return null;
24
- }
25
- const mostTopStartCoords = (0, _mixed.getMostTopStartPosition)(hot);
26
- const mostBottomEndCoords = (0, _mixed.getMostBottomEndPosition)(hot);
27
- coords.row = (0, _number.clamp)(coords.row, mostTopStartCoords.row, mostBottomEndCoords.row);
28
- coords.col = (0, _number.clamp)(coords.col, mostTopStartCoords.col, mostBottomEndCoords.col);
29
- return coords;
30
- };
31
- }
@@ -1,27 +0,0 @@
1
- import { clamp } from "../../helpers/number.mjs";
2
- import { getMostTopStartPosition, getMostBottomEndPosition } from "../../helpers/mixed.mjs";
3
- /**
4
- * Normalizes the coordinates (clamps to nearest visible cell position within dataset range).
5
- *
6
- * @param {Core} hot The Handsontable instance.
7
- * @returns {function(Coords | undefined): Coords | null}
8
- */
9
- export function normalizeCoordsIfNeeded(hot) {
10
- return coords => {
11
- if (!coords) {
12
- return null;
13
- }
14
- const {
15
- rowIndexMapper,
16
- columnIndexMapper
17
- } = hot;
18
- if (rowIndexMapper.isHidden(coords.row) || columnIndexMapper.isHidden(coords.col)) {
19
- return null;
20
- }
21
- const mostTopStartCoords = getMostTopStartPosition(hot);
22
- const mostBottomEndCoords = getMostBottomEndPosition(hot);
23
- coords.row = clamp(coords.row, mostTopStartCoords.row, mostBottomEndCoords.row);
24
- coords.col = clamp(coords.col, mostTopStartCoords.col, mostBottomEndCoords.col);
25
- return coords;
26
- };
27
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.createPaginationFocusController = createPaginationFocusController;
5
- var _paginator = require("../../utils/paginator");
6
- /**
7
- * Creates a pagination focus controller instance.
8
- *
9
- * @private
10
- * @param {object} options The options for the pagination focus controller.
11
- * @param {HTMLElement[]} options.focusableElements The focusable elements.
12
- * @returns {PaginationController} The pagination controller instance.
13
- */
14
- function createPaginationFocusController(_ref) {
15
- let {
16
- focusableElements
17
- } = _ref;
18
- const navigator = (0, _paginator.createPaginator)({
19
- initialPage: 0,
20
- size: () => focusableElements().length,
21
- onItemSelect: currentIndex => {
22
- const elements = focusableElements();
23
- elements[currentIndex].focus();
24
- }
25
- });
26
- return navigator;
27
- }
@@ -1,23 +0,0 @@
1
- import { createPaginator } from "../../utils/paginator.mjs";
2
- /**
3
- * Creates a pagination focus controller instance.
4
- *
5
- * @private
6
- * @param {object} options The options for the pagination focus controller.
7
- * @param {HTMLElement[]} options.focusableElements The focusable elements.
8
- * @returns {PaginationController} The pagination controller instance.
9
- */
10
- export function createPaginationFocusController(_ref) {
11
- let {
12
- focusableElements
13
- } = _ref;
14
- const navigator = createPaginator({
15
- initialPage: 0,
16
- size: () => focusableElements().length,
17
- onItemSelect: currentIndex => {
18
- const elements = focusableElements();
19
- elements[currentIndex].focus();
20
- }
21
- });
22
- return navigator;
23
- }