@elliemae/ds-shared 2.3.0-alpha.9 → 2.3.0-next.0

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 (330) hide show
  1. package/cjs/Animations/BaseAnimation.js +36 -0
  2. package/cjs/Animations/Grow.js +42 -0
  3. package/cjs/Animations/GrowRight.js +42 -0
  4. package/cjs/Animations/GrowVertical.js +7 -0
  5. package/cjs/CheckableGroup.js +74 -0
  6. package/cjs/DeferRenderAfterComputation.js +28 -0
  7. package/cjs/FocusGroup/FocusGrid.js +215 -0
  8. package/cjs/FocusGroup/FocusGroup.js +308 -0
  9. package/cjs/FocusGroup/FocusGroupContext.js +11 -0
  10. package/cjs/FocusGroup/FocusGroupManager.js +117 -0
  11. package/cjs/FocusGroup/focusGroupManagerHoc.js +44 -0
  12. package/cjs/FocusGroup/index.js +21 -0
  13. package/cjs/FocusGroup/useFocusGroupItem.js +59 -0
  14. package/cjs/FocusGroup/utils/getNextCellPosition.js +60 -0
  15. package/cjs/GroupContext/Group.js +124 -0
  16. package/cjs/GroupContext/GroupContext.js +13 -0
  17. package/cjs/GroupContext/GroupItem.js +22 -0
  18. package/cjs/GroupContext/index.js +13 -0
  19. package/cjs/ScrollSync/ScrollSync.js +153 -0
  20. package/cjs/ScrollSync/ScrollSyncPane.js +81 -0
  21. package/cjs/ScrollSync/ScrollSyncProvider.js +67 -0
  22. package/cjs/ScrollSync/index.js +11 -0
  23. package/cjs/ScrollSync/useScrollSync.js +10 -0
  24. package/cjs/constants.js +51 -0
  25. package/cjs/createDataInstance/createInstancePlugin.js +36 -0
  26. package/cjs/createDataInstance/createInstanceRef.js +97 -0
  27. package/cjs/createDataInstance/utils.js +123 -0
  28. package/cjs/defer-render-hoc/index.js +49 -0
  29. package/cjs/dimsum.config.js +7 -0
  30. package/cjs/index.js +17 -0
  31. package/cjs/prop-types.js +59 -0
  32. package/cjs/react-spring/index.js +14 -0
  33. package/cjs/react-spring/renderprops.js +14 -0
  34. package/cjs/toolbar/ToolbarProvider.js +123 -0
  35. package/cjs/useDataGrid/VolatileRowsListener.js +24 -0
  36. package/cjs/useDataGrid/index.js +7 -0
  37. package/cjs/useDataGrid/initColumnDefinition.js +146 -0
  38. package/cjs/useDataGrid/useDataGrid.js +220 -0
  39. package/cjs/useDataList/index.js +7 -0
  40. package/cjs/useDataList/recordIterator.js +31 -0
  41. package/cjs/useDataList/useDataList.js +102 -0
  42. package/cjs/utils.js +116 -0
  43. package/cjs/virtualization/AutoHeightList.js +61 -0
  44. package/cjs/virtualization/FluidHeightList.js +49 -0
  45. package/cjs/virtualization/index.js +22 -0
  46. package/esm/Animations/BaseAnimation.js +30 -0
  47. package/esm/Animations/Grow.js +36 -0
  48. package/esm/Animations/GrowRight.js +36 -0
  49. package/esm/Animations/GrowVertical.js +4 -0
  50. package/esm/CheckableGroup.js +64 -0
  51. package/esm/DeferRenderAfterComputation.js +22 -0
  52. package/esm/FocusGroup/FocusGrid.js +204 -0
  53. package/{dist/esm → esm}/FocusGroup/FocusGroup.js +137 -56
  54. package/esm/FocusGroup/FocusGroupContext.js +5 -0
  55. package/{dist/esm → esm}/FocusGroup/FocusGroupManager.js +38 -24
  56. package/esm/FocusGroup/focusGroupManagerHoc.js +37 -0
  57. package/esm/FocusGroup/index.js +6 -0
  58. package/esm/FocusGroup/useFocusGroupItem.js +50 -0
  59. package/{dist/esm → esm}/FocusGroup/utils/getNextCellPosition.js +25 -18
  60. package/esm/GroupContext/Group.js +118 -0
  61. package/esm/GroupContext/GroupContext.js +5 -0
  62. package/esm/GroupContext/GroupItem.js +16 -0
  63. package/esm/GroupContext/index.js +3 -0
  64. package/{dist/esm → esm}/ScrollSync/ScrollSync.js +64 -30
  65. package/esm/ScrollSync/ScrollSyncPane.js +74 -0
  66. package/esm/ScrollSync/ScrollSyncProvider.js +59 -0
  67. package/esm/ScrollSync/index.js +2 -0
  68. package/esm/ScrollSync/useScrollSync.js +8 -0
  69. package/esm/constants.js +32 -0
  70. package/esm/createDataInstance/createInstancePlugin.js +30 -0
  71. package/esm/createDataInstance/createInstanceRef.js +90 -0
  72. package/esm/createDataInstance/utils.js +107 -0
  73. package/esm/defer-render-hoc/index.js +41 -0
  74. package/esm/dimsum.config.js +5 -0
  75. package/esm/index.js +5 -0
  76. package/esm/prop-types.js +43 -0
  77. package/{dist/types/react-spring/index.d.ts → esm/react-spring/index.js} +0 -0
  78. package/{dist/types/react-spring/renderprops.d.ts → esm/react-spring/renderprops.js} +0 -0
  79. package/esm/toolbar/ToolbarProvider.js +111 -0
  80. package/esm/useDataGrid/VolatileRowsListener.js +22 -0
  81. package/esm/useDataGrid/index.js +1 -0
  82. package/esm/useDataGrid/initColumnDefinition.js +134 -0
  83. package/esm/useDataGrid/useDataGrid.js +194 -0
  84. package/esm/useDataList/index.js +1 -0
  85. package/esm/useDataList/recordIterator.js +27 -0
  86. package/esm/useDataList/useDataList.js +90 -0
  87. package/esm/utils.js +95 -0
  88. package/esm/virtualization/AutoHeightList.js +52 -0
  89. package/esm/virtualization/FluidHeightList.js +38 -0
  90. package/esm/virtualization/index.js +18 -0
  91. package/package.json +108 -110
  92. package/{dist/types → types}/Animations/BaseAnimation.d.ts +0 -1
  93. package/{dist/types → types}/Animations/Grow.d.ts +0 -1
  94. package/{dist/types → types}/Animations/GrowRight.d.ts +0 -1
  95. package/{dist/types → types}/Animations/GrowVertical.d.ts +0 -0
  96. package/{dist/types → types}/CheckableGroup.d.ts +0 -1
  97. package/types/DeferRenderAfterComputation.d.ts +6 -0
  98. package/types/FocusGroup/FocusGrid.d.ts +10 -0
  99. package/{dist/types → types}/FocusGroup/FocusGroup.d.ts +1 -3
  100. package/types/FocusGroup/FocusGroupContext.d.ts +3 -0
  101. package/{dist/types → types}/FocusGroup/FocusGroupManager.d.ts +1 -3
  102. package/types/FocusGroup/focusGroupManagerHoc.d.ts +7 -0
  103. package/types/FocusGroup/index.d.ts +6 -0
  104. package/types/FocusGroup/useFocusGroupItem.d.ts +2 -0
  105. package/{dist/types → types}/FocusGroup/utils/getNextCellPosition.d.ts +1 -3
  106. package/{dist/types → types}/GroupContext/Group.d.ts +0 -1
  107. package/{dist/types → types}/GroupContext/GroupContext.d.ts +0 -0
  108. package/{dist/types → types}/GroupContext/GroupItem.d.ts +0 -1
  109. package/types/GroupContext/index.d.ts +3 -0
  110. package/{dist/types → types}/ScrollSync/ScrollSync.d.ts +2 -4
  111. package/types/ScrollSync/ScrollSyncPane.d.ts +3 -0
  112. package/{dist/types → types}/ScrollSync/ScrollSyncProvider.d.ts +0 -0
  113. package/types/ScrollSync/index.d.ts +2 -0
  114. package/types/ScrollSync/useScrollSync.d.ts +6 -0
  115. package/{dist/types → types}/constants.d.ts +0 -0
  116. package/types/createDataInstance/createInstancePlugin.d.ts +1 -0
  117. package/{dist/types → types}/createDataInstance/createInstanceRef.d.ts +1 -3
  118. package/{dist/types → types}/createDataInstance/tests/createInstanceRef.test.d.ts +0 -0
  119. package/{dist/types → types}/createDataInstance/utils.d.ts +0 -0
  120. package/types/dimsum.config.d.ts +4 -0
  121. package/types/index.d.ts +2 -0
  122. package/{dist/types → types}/prop-types.d.ts +0 -0
  123. package/types/react-spring/index.d.ts +1 -0
  124. package/types/react-spring/renderprops.d.ts +1 -0
  125. package/types/toolbar/ToolbarProvider.d.ts +10 -0
  126. package/types/useDataGrid/VolatileRowsListener.d.ts +5 -0
  127. package/types/useDataGrid/index.d.ts +1 -0
  128. package/{dist/types → types}/useDataGrid/initColumnDefinition.d.ts +1 -2
  129. package/types/useDataGrid/useDataGrid.d.ts +8 -0
  130. package/types/useDataList/index.d.ts +1 -0
  131. package/{dist/types → types}/useDataList/recordIterator.d.ts +0 -0
  132. package/{dist/types → types}/useDataList/useDataList.d.ts +2 -3
  133. package/{dist/types → types}/utils.d.ts +0 -0
  134. package/{dist/types → types}/virtualization/AutoHeightList.d.ts +0 -0
  135. package/{dist/types → types}/virtualization/FluidHeightList.d.ts +0 -0
  136. package/{dist/types → types}/virtualization/index.d.ts +0 -0
  137. package/dist/cjs/Animations/BaseAnimation.js +0 -56
  138. package/dist/cjs/Animations/BaseAnimation.js.map +0 -7
  139. package/dist/cjs/Animations/Grow.js +0 -55
  140. package/dist/cjs/Animations/Grow.js.map +0 -7
  141. package/dist/cjs/Animations/GrowRight.js +0 -64
  142. package/dist/cjs/Animations/GrowRight.js.map +0 -7
  143. package/dist/cjs/Animations/GrowVertical.js +0 -47
  144. package/dist/cjs/Animations/GrowVertical.js.map +0 -7
  145. package/dist/cjs/CheckableGroup.js +0 -76
  146. package/dist/cjs/CheckableGroup.js.map +0 -7
  147. package/dist/cjs/DeferRenderAfterComputation.js +0 -52
  148. package/dist/cjs/DeferRenderAfterComputation.js.map +0 -7
  149. package/dist/cjs/FocusGroup/FocusGrid.js +0 -180
  150. package/dist/cjs/FocusGroup/FocusGrid.js.map +0 -7
  151. package/dist/cjs/FocusGroup/FocusGroup.js +0 -249
  152. package/dist/cjs/FocusGroup/FocusGroup.js.map +0 -7
  153. package/dist/cjs/FocusGroup/FocusGroupContext.js +0 -38
  154. package/dist/cjs/FocusGroup/FocusGroupContext.js.map +0 -7
  155. package/dist/cjs/FocusGroup/FocusGroupManager.js +0 -126
  156. package/dist/cjs/FocusGroup/FocusGroupManager.js.map +0 -7
  157. package/dist/cjs/FocusGroup/focusGroupManagerHoc.js +0 -54
  158. package/dist/cjs/FocusGroup/focusGroupManagerHoc.js.map +0 -7
  159. package/dist/cjs/FocusGroup/index.js +0 -47
  160. package/dist/cjs/FocusGroup/index.js.map +0 -7
  161. package/dist/cjs/FocusGroup/useFocusGroupItem.js +0 -67
  162. package/dist/cjs/FocusGroup/useFocusGroupItem.js.map +0 -7
  163. package/dist/cjs/FocusGroup/utils/getNextCellPosition.js +0 -80
  164. package/dist/cjs/FocusGroup/utils/getNextCellPosition.js.map +0 -7
  165. package/dist/cjs/GroupContext/Group.js +0 -115
  166. package/dist/cjs/GroupContext/Group.js.map +0 -7
  167. package/dist/cjs/GroupContext/GroupContext.js +0 -36
  168. package/dist/cjs/GroupContext/GroupContext.js.map +0 -7
  169. package/dist/cjs/GroupContext/GroupItem.js +0 -40
  170. package/dist/cjs/GroupContext/GroupItem.js.map +0 -7
  171. package/dist/cjs/GroupContext/index.js +0 -39
  172. package/dist/cjs/GroupContext/index.js.map +0 -7
  173. package/dist/cjs/ScrollSync/ScrollSync.js +0 -138
  174. package/dist/cjs/ScrollSync/ScrollSync.js.map +0 -7
  175. package/dist/cjs/ScrollSync/ScrollSyncPane.js +0 -73
  176. package/dist/cjs/ScrollSync/ScrollSyncPane.js.map +0 -7
  177. package/dist/cjs/ScrollSync/ScrollSyncProvider.js +0 -120
  178. package/dist/cjs/ScrollSync/ScrollSyncProvider.js.map +0 -7
  179. package/dist/cjs/ScrollSync/index.js +0 -37
  180. package/dist/cjs/ScrollSync/index.js.map +0 -7
  181. package/dist/cjs/ScrollSync/useScrollSync.js +0 -41
  182. package/dist/cjs/ScrollSync/useScrollSync.js.map +0 -7
  183. package/dist/cjs/constants.js +0 -70
  184. package/dist/cjs/constants.js.map +0 -7
  185. package/dist/cjs/createDataInstance/createInstancePlugin.js +0 -48
  186. package/dist/cjs/createDataInstance/createInstancePlugin.js.map +0 -7
  187. package/dist/cjs/createDataInstance/createInstanceRef.js +0 -92
  188. package/dist/cjs/createDataInstance/createInstanceRef.js.map +0 -7
  189. package/dist/cjs/createDataInstance/utils.js +0 -99
  190. package/dist/cjs/createDataInstance/utils.js.map +0 -7
  191. package/dist/cjs/defer-render-hoc/index.js +0 -56
  192. package/dist/cjs/defer-render-hoc/index.js.map +0 -7
  193. package/dist/cjs/dimsum.config.js +0 -39
  194. package/dist/cjs/dimsum.config.js.map +0 -7
  195. package/dist/cjs/index.js +0 -40
  196. package/dist/cjs/index.js.map +0 -7
  197. package/dist/cjs/prop-types.js +0 -116
  198. package/dist/cjs/prop-types.js.map +0 -7
  199. package/dist/cjs/react-spring/index.js +0 -28
  200. package/dist/cjs/react-spring/index.js.map +0 -7
  201. package/dist/cjs/react-spring/renderprops.js +0 -28
  202. package/dist/cjs/react-spring/renderprops.js.map +0 -7
  203. package/dist/cjs/toolbar/ToolbarProvider.js +0 -111
  204. package/dist/cjs/toolbar/ToolbarProvider.js.map +0 -7
  205. package/dist/cjs/useDataGrid/VolatileRowsListener.js +0 -49
  206. package/dist/cjs/useDataGrid/VolatileRowsListener.js.map +0 -7
  207. package/dist/cjs/useDataGrid/index.js +0 -36
  208. package/dist/cjs/useDataGrid/index.js.map +0 -7
  209. package/dist/cjs/useDataGrid/initColumnDefinition.js +0 -141
  210. package/dist/cjs/useDataGrid/initColumnDefinition.js.map +0 -7
  211. package/dist/cjs/useDataGrid/useDataGrid.js +0 -194
  212. package/dist/cjs/useDataGrid/useDataGrid.js.map +0 -7
  213. package/dist/cjs/useDataList/index.js +0 -36
  214. package/dist/cjs/useDataList/index.js.map +0 -7
  215. package/dist/cjs/useDataList/recordIterator.js +0 -55
  216. package/dist/cjs/useDataList/recordIterator.js.map +0 -7
  217. package/dist/cjs/useDataList/useDataList.js +0 -93
  218. package/dist/cjs/useDataList/useDataList.js.map +0 -7
  219. package/dist/cjs/utils.js +0 -107
  220. package/dist/cjs/utils.js.map +0 -7
  221. package/dist/cjs/virtualization/AutoHeightList.js +0 -69
  222. package/dist/cjs/virtualization/AutoHeightList.js.map +0 -7
  223. package/dist/cjs/virtualization/FluidHeightList.js +0 -43
  224. package/dist/cjs/virtualization/FluidHeightList.js.map +0 -7
  225. package/dist/cjs/virtualization/index.js +0 -50
  226. package/dist/cjs/virtualization/index.js.map +0 -7
  227. package/dist/esm/Animations/BaseAnimation.js +0 -27
  228. package/dist/esm/Animations/BaseAnimation.js.map +0 -7
  229. package/dist/esm/Animations/Grow.js +0 -26
  230. package/dist/esm/Animations/Grow.js.map +0 -7
  231. package/dist/esm/Animations/GrowRight.js +0 -35
  232. package/dist/esm/Animations/GrowRight.js.map +0 -7
  233. package/dist/esm/Animations/GrowVertical.js +0 -29
  234. package/dist/esm/Animations/GrowVertical.js.map +0 -7
  235. package/dist/esm/CheckableGroup.js +0 -47
  236. package/dist/esm/CheckableGroup.js.map +0 -7
  237. package/dist/esm/DeferRenderAfterComputation.js +0 -23
  238. package/dist/esm/DeferRenderAfterComputation.js.map +0 -7
  239. package/dist/esm/FocusGroup/FocusGrid.js +0 -151
  240. package/dist/esm/FocusGroup/FocusGrid.js.map +0 -7
  241. package/dist/esm/FocusGroup/FocusGroup.js.map +0 -7
  242. package/dist/esm/FocusGroup/FocusGroupContext.js +0 -9
  243. package/dist/esm/FocusGroup/FocusGroupContext.js.map +0 -7
  244. package/dist/esm/FocusGroup/FocusGroupManager.js.map +0 -7
  245. package/dist/esm/FocusGroup/focusGroupManagerHoc.js +0 -25
  246. package/dist/esm/FocusGroup/focusGroupManagerHoc.js.map +0 -7
  247. package/dist/esm/FocusGroup/index.js +0 -18
  248. package/dist/esm/FocusGroup/index.js.map +0 -7
  249. package/dist/esm/FocusGroup/useFocusGroupItem.js +0 -38
  250. package/dist/esm/FocusGroup/useFocusGroupItem.js.map +0 -7
  251. package/dist/esm/FocusGroup/utils/getNextCellPosition.js.map +0 -7
  252. package/dist/esm/GroupContext/Group.js +0 -86
  253. package/dist/esm/GroupContext/Group.js.map +0 -7
  254. package/dist/esm/GroupContext/GroupContext.js +0 -7
  255. package/dist/esm/GroupContext/GroupContext.js.map +0 -7
  256. package/dist/esm/GroupContext/GroupItem.js +0 -11
  257. package/dist/esm/GroupContext/GroupItem.js.map +0 -7
  258. package/dist/esm/GroupContext/index.js +0 -10
  259. package/dist/esm/GroupContext/index.js.map +0 -7
  260. package/dist/esm/ScrollSync/ScrollSync.js.map +0 -7
  261. package/dist/esm/ScrollSync/ScrollSyncPane.js +0 -44
  262. package/dist/esm/ScrollSync/ScrollSyncPane.js.map +0 -7
  263. package/dist/esm/ScrollSync/ScrollSyncProvider.js +0 -91
  264. package/dist/esm/ScrollSync/ScrollSyncProvider.js.map +0 -7
  265. package/dist/esm/ScrollSync/index.js +0 -8
  266. package/dist/esm/ScrollSync/index.js.map +0 -7
  267. package/dist/esm/ScrollSync/useScrollSync.js +0 -12
  268. package/dist/esm/ScrollSync/useScrollSync.js.map +0 -7
  269. package/dist/esm/constants.js +0 -41
  270. package/dist/esm/constants.js.map +0 -7
  271. package/dist/esm/createDataInstance/createInstancePlugin.js +0 -19
  272. package/dist/esm/createDataInstance/createInstancePlugin.js.map +0 -7
  273. package/dist/esm/createDataInstance/createInstanceRef.js +0 -67
  274. package/dist/esm/createDataInstance/createInstanceRef.js.map +0 -7
  275. package/dist/esm/createDataInstance/utils.js +0 -70
  276. package/dist/esm/createDataInstance/utils.js.map +0 -7
  277. package/dist/esm/defer-render-hoc/index.js +0 -27
  278. package/dist/esm/defer-render-hoc/index.js.map +0 -7
  279. package/dist/esm/dimsum.config.js +0 -10
  280. package/dist/esm/dimsum.config.js.map +0 -7
  281. package/dist/esm/index.js +0 -11
  282. package/dist/esm/index.js.map +0 -7
  283. package/dist/esm/prop-types.js +0 -87
  284. package/dist/esm/prop-types.js.map +0 -7
  285. package/dist/esm/react-spring/index.js +0 -3
  286. package/dist/esm/react-spring/index.js.map +0 -7
  287. package/dist/esm/react-spring/renderprops.js +0 -3
  288. package/dist/esm/react-spring/renderprops.js.map +0 -7
  289. package/dist/esm/toolbar/ToolbarProvider.js +0 -82
  290. package/dist/esm/toolbar/ToolbarProvider.js.map +0 -7
  291. package/dist/esm/useDataGrid/VolatileRowsListener.js +0 -20
  292. package/dist/esm/useDataGrid/VolatileRowsListener.js.map +0 -7
  293. package/dist/esm/useDataGrid/index.js +0 -7
  294. package/dist/esm/useDataGrid/index.js.map +0 -7
  295. package/dist/esm/useDataGrid/initColumnDefinition.js +0 -118
  296. package/dist/esm/useDataGrid/initColumnDefinition.js.map +0 -7
  297. package/dist/esm/useDataGrid/useDataGrid.js +0 -177
  298. package/dist/esm/useDataGrid/useDataGrid.js.map +0 -7
  299. package/dist/esm/useDataList/index.js +0 -7
  300. package/dist/esm/useDataList/index.js.map +0 -7
  301. package/dist/esm/useDataList/recordIterator.js +0 -26
  302. package/dist/esm/useDataList/recordIterator.js.map +0 -7
  303. package/dist/esm/useDataList/useDataList.js +0 -67
  304. package/dist/esm/useDataList/useDataList.js.map +0 -7
  305. package/dist/esm/utils.js +0 -78
  306. package/dist/esm/utils.js.map +0 -7
  307. package/dist/esm/virtualization/AutoHeightList.js +0 -40
  308. package/dist/esm/virtualization/AutoHeightList.js.map +0 -7
  309. package/dist/esm/virtualization/FluidHeightList.js +0 -14
  310. package/dist/esm/virtualization/FluidHeightList.js.map +0 -7
  311. package/dist/esm/virtualization/index.js +0 -21
  312. package/dist/esm/virtualization/index.js.map +0 -7
  313. package/dist/types/DeferRenderAfterComputation.d.ts +0 -7
  314. package/dist/types/FocusGroup/FocusGrid.d.ts +0 -12
  315. package/dist/types/FocusGroup/FocusGroupContext.d.ts +0 -4
  316. package/dist/types/FocusGroup/focusGroupManagerHoc.d.ts +0 -9
  317. package/dist/types/FocusGroup/index.d.ts +0 -6
  318. package/dist/types/FocusGroup/useFocusGroupItem.d.ts +0 -4
  319. package/dist/types/GroupContext/index.d.ts +0 -3
  320. package/dist/types/ScrollSync/ScrollSyncPane.d.ts +0 -3
  321. package/dist/types/ScrollSync/index.d.ts +0 -2
  322. package/dist/types/ScrollSync/useScrollSync.d.ts +0 -7
  323. package/dist/types/createDataInstance/createInstancePlugin.d.ts +0 -2
  324. package/dist/types/dimsum.config.d.ts +0 -5
  325. package/dist/types/index.d.ts +0 -2
  326. package/dist/types/toolbar/ToolbarProvider.d.ts +0 -5
  327. package/dist/types/useDataGrid/VolatileRowsListener.d.ts +0 -7
  328. package/dist/types/useDataGrid/index.d.ts +0 -1
  329. package/dist/types/useDataGrid/useDataGrid.d.ts +0 -9
  330. package/dist/types/useDataList/index.d.ts +0 -1
@@ -0,0 +1,308 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ require('core-js/modules/web.dom-collections.iterator.js');
5
+ require('core-js/modules/esnext.async-iterator.for-each.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.for-each.js');
8
+ require('core-js/modules/esnext.async-iterator.map.js');
9
+ require('core-js/modules/esnext.iterator.map.js');
10
+ require('core-js/modules/esnext.async-iterator.filter.js');
11
+ require('core-js/modules/esnext.iterator.filter.js');
12
+ var dsUtilities = require('@elliemae/ds-utilities');
13
+ var hotkeys = require('hotkeys-js');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
18
+ var hotkeys__default = /*#__PURE__*/_interopDefaultLegacy(hotkeys);
19
+
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
+ const defaultOptions = {
24
+ orientation: 'vertical'
25
+ };
26
+
27
+ const safeCallAction = function (e, fun) {
28
+ if (dsUtilities.isFunction(fun)) {
29
+ e.preventDefault();
30
+
31
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
32
+ args[_key - 2] = arguments[_key];
33
+ }
34
+
35
+ fun(...args);
36
+ }
37
+ };
38
+
39
+ const registerHotkeys = function () {
40
+ let hotKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
41
+ let params = arguments.length > 1 ? arguments[1] : undefined;
42
+ let getContainer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : () => document;
43
+ Object.keys(hotKeys).forEach(hotkey => {
44
+ const {
45
+ options,
46
+ handler,
47
+ allowDocumentHandler = false
48
+ } = hotKeys[hotkey];
49
+
50
+ const parameterizedHandler = e => {
51
+ const handlerParams = dsUtilities.isFunction(params) ? params() : params;
52
+ if (!allowDocumentHandler && handlerParams.item !== document.activeElement) return;
53
+ e.preventDefault();
54
+ handler(handlerParams);
55
+ };
56
+
57
+ hotkeys__default["default"](hotkey, _objectSpread({
58
+ element: getContainer()
59
+ }, options), parameterizedHandler);
60
+ });
61
+ };
62
+
63
+ const unregisterHotKeys = function () {
64
+ let hotKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
65
+ Object.keys(hotKeys).forEach(hotkey => {
66
+ hotkeys__default["default"].unbind(hotkey);
67
+ });
68
+ };
69
+
70
+ const noop = () => null;
71
+
72
+ class FocusGroup {
73
+ constructor() {
74
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
75
+ this.items = [];
76
+ this.options = _objectSpread(_objectSpread({}, defaultOptions), options);
77
+ const {
78
+ orientation
79
+ } = this.options;
80
+ this.keyBindings = _objectSpread({
81
+ ArrowUp: orientation !== 'horizontal' && 'previous',
82
+ ArrowRight: orientation !== 'vertical' && 'next',
83
+ ArrowDown: orientation !== 'horizontal' && 'next',
84
+ ArrowLeft: orientation !== 'vertical' && 'previous',
85
+ Home: 'first',
86
+ End: 'last',
87
+ PageUp: 'first',
88
+ PageDown: 'last',
89
+ Escape: 'exit'
90
+ }, options.keyBindings);
91
+ this.currentFocusedItem = null;
92
+ this.currIndex = null;
93
+ this.mapActions = {
94
+ previous: this.focusPrevious.bind(this),
95
+ next: this.focusNext.bind(this),
96
+ first: this.focusFirst.bind(this),
97
+ last: this.focusLast.bind(this),
98
+ exit: this.exit.bind(this),
99
+ enter: () => null
100
+ };
101
+ this.handleKeyDown = this.handleKeyDown.bind(this);
102
+ this.register = this.register.bind(this);
103
+ this.focusFirst = this.focusFirst.bind(this);
104
+ this.focusLast = this.focusLast.bind(this);
105
+ this.isGroupActive = this.isGroupActive.bind(this);
106
+ this.focusNext = this.focusNext.bind(this);
107
+ this.focusPrevious = this.focusPrevious.bind(this);
108
+ this.focusItem = this.focusItem.bind(this);
109
+ this.focusCurrent = this.focusCurrent.bind(this);
110
+ this.getHotKeysParams = this.getHotKeysParams.bind(this);
111
+ }
112
+
113
+ getHotKeysParams() {
114
+ const item = this.currentFocusedItem;
115
+ const {
116
+ index
117
+ } = dsUtilities.get(item, ['dataset'], {});
118
+ return {
119
+ item,
120
+ index
121
+ };
122
+ }
123
+
124
+ activate() {
125
+ const {
126
+ getContainer
127
+ } = this.options;
128
+ document.addEventListener('keydown', this.handleKeyDown, true);
129
+ registerHotkeys(this.options.hotKeys, this.getHotKeysParams, getContainer);
130
+ }
131
+
132
+ deactivate() {
133
+ document.removeEventListener('keydown', this.handleKeyDown, true);
134
+ unregisterHotKeys(this.options.hotKeys);
135
+ }
136
+
137
+ handleKeyDown(e) {
138
+ if (!this.isGroupActive()) return;
139
+ this.executeActionByEvent(e);
140
+ }
141
+
142
+ executeActionByEvent(e) {
143
+ const actions = Array.isArray(this.keyBindings[e.key]) ? this.keyBindings[e.key] : [this.keyBindings[e.key]];
144
+ return actions.map(action => typeof action === 'string' ? safeCallAction(e, this.mapActions[action]) : safeCallAction(e, action));
145
+ }
146
+
147
+ register(node) {
148
+ let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
149
+ const afterIndex = this.items.findIndex(item => item.compareDocumentPosition(node) === Node.DOCUMENT_POSITION_PRECEDING);
150
+ node.specialOnFocus = props.onFocus || noop;
151
+ node.specialOnBlur = props.onBlur || noop;
152
+
153
+ node.onclick = () => this.focusItem(node);
154
+
155
+ node.onfocus = () => {
156
+ this.focusItem(node);
157
+ };
158
+
159
+ if (afterIndex === -1) {
160
+ this.items.push(node);
161
+ } else {
162
+ this.items.splice(afterIndex, 0, node);
163
+ }
164
+ }
165
+
166
+ unregister(node) {
167
+ const index = this.getItemIndexByNode(node);
168
+ if (index > -1) this.items.splice(index, 1);
169
+ }
170
+
171
+ exit() {
172
+ const {
173
+ onExitFocusGroup
174
+ } = this.options;
175
+ onExitFocusGroup();
176
+ }
177
+
178
+ focusItem(node) {
179
+ if (this.currentFocusedItem && this.currentFocusedItem !== node) {
180
+ this.currentFocusedItem.specialOnBlur();
181
+ this.currentFocusedItem.setAttribute('tabindex', -1);
182
+ }
183
+
184
+ if (!node) return;
185
+ this.currentFocusedItem = node;
186
+ node.setAttribute('tabindex', 0);
187
+ node.focus();
188
+ node.specialOnFocus();
189
+ }
190
+
191
+ focusNext() {
192
+ const item = this.getNextItem();
193
+ this.focusItem(item);
194
+ }
195
+
196
+ focusByNode(node) {
197
+ const index = this.getItemIndexByNode(node);
198
+ this.focusByIndex(index);
199
+ }
200
+
201
+ focusByIndex(index) {
202
+ const item = this.getItemByIndex(index);
203
+ this.focusItem(item);
204
+ }
205
+
206
+ focusPrevious() {
207
+ const prevItem = this.getPreviousItem();
208
+ this.focusItem(prevItem);
209
+ }
210
+
211
+ focusFirst() {
212
+ const item = this.getFirstItem();
213
+ this.focusItem(item);
214
+ }
215
+
216
+ focusLast() {
217
+ const item = this.getLastItem();
218
+ this.focusItem(item);
219
+ }
220
+
221
+ focusCurrent() {
222
+ this.focusItem(this.currentFocusedItem);
223
+ }
224
+
225
+ focusNextGroup() {
226
+ const {
227
+ onFocusNextGroup
228
+ } = this.options;
229
+ this.exit();
230
+ onFocusNextGroup();
231
+ }
232
+
233
+ focusPreviousGroup() {
234
+ const {
235
+ onFocusPreviousGroup
236
+ } = this.options;
237
+ this.exit();
238
+ onFocusPreviousGroup();
239
+ }
240
+
241
+ getNextItem() {
242
+ const {
243
+ loop
244
+ } = this.options;
245
+ const currentIndex = this.getFocusedIndex();
246
+ const supposedNextIndex = currentIndex + 1;
247
+
248
+ if (!this.checkCanFocusNext(supposedNextIndex)) {
249
+ return loop ? this.getFirstItem() : this.focusNextGroup();
250
+ }
251
+
252
+ return this.getItemByIndex(supposedNextIndex);
253
+ }
254
+
255
+ getPreviousItem() {
256
+ const {
257
+ loop
258
+ } = this.options;
259
+ const currentIndex = this.getFocusedIndex();
260
+ const supposedPrevIndex = currentIndex - 1;
261
+
262
+ if (!this.checkCanFocusPrev(supposedPrevIndex)) {
263
+ return loop ? this.getLastItem() : this.focusPreviousGroup();
264
+ }
265
+
266
+ return this.getItemByIndex(supposedPrevIndex);
267
+ }
268
+
269
+ checkCanFocusNext(index) {
270
+ return this.items.length > index;
271
+ }
272
+
273
+ checkCanFocusPrev(index) {
274
+ return index >= 0;
275
+ }
276
+
277
+ getItemByIndex(index) {
278
+ return this.items[index];
279
+ }
280
+
281
+ getItemIndexByNode(node) {
282
+ return this.items.findIndex(item => item === node);
283
+ }
284
+
285
+ getFocusedIndex() {
286
+ return this.getItemIndexByNode(document.activeElement);
287
+ }
288
+
289
+ getFocusedItem() {
290
+ const index = this.getFocusedIndex();
291
+ return index > -1 && this.items[index];
292
+ }
293
+
294
+ isGroupActive() {
295
+ return this.getFocusedIndex() !== -1;
296
+ }
297
+
298
+ getFirstItem() {
299
+ return !!this.items.length && this.items[0];
300
+ }
301
+
302
+ getLastItem() {
303
+ return !!this.items.length && this.items[this.items.length - 1];
304
+ }
305
+
306
+ }
307
+
308
+ module.exports = FocusGroup;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
6
+
7
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
8
+
9
+ var FocusGroupContext = /*#__PURE__*/React__default["default"].createContext();
10
+
11
+ module.exports = FocusGroupContext;
@@ -0,0 +1,117 @@
1
+ 'use strict';
2
+
3
+ var _jsx = require('@babel/runtime/helpers/jsx');
4
+ var React = require('react');
5
+ var dsUtilities = require('@elliemae/ds-utilities');
6
+ var FocusGroup = require('./FocusGroup.js');
7
+ var FocusGroupContext = require('./FocusGroupContext.js');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
12
+
13
+ const noop = () => null;
14
+
15
+ class FocusGroupProvider extends React.Component {
16
+ constructor(props) {
17
+ super(props);
18
+ this.activated = false;
19
+ this.focusGroup = new FocusGroup(props);
20
+ props.onFocusGroupSet(this);
21
+ this.actions = {
22
+ activate: this.activate.bind(this),
23
+ deactivate: this.deactivate.bind(this),
24
+ register: this.focusGroup.register,
25
+ unregister: this.unregister.bind(this),
26
+ focusFirst: this.focusGroup.focusFirst,
27
+ focusLast: this.focusGroup.focusLast,
28
+ focusItemByIndex: this.focusItemByIndex.bind(this),
29
+ focusItemByNode: this.focusItemByNode.bind(this),
30
+ focus: this.focusGroup.focusCurrent,
31
+ isGroupActive: this.focusGroup.isGroupActive,
32
+ focusNext: this.focusGroup.focusNext,
33
+ focusPrevious: this.focusGroup.focusPrevious
34
+ };
35
+ }
36
+
37
+ componentDidMount() {
38
+ const {
39
+ autoFocusOnMount
40
+ } = this.props;
41
+ this.activate();
42
+
43
+ if (autoFocusOnMount) {
44
+ setTimeout(() => {
45
+ this.actions.focusFirst();
46
+ }, 0);
47
+ }
48
+ }
49
+
50
+ componentWillUnmount() {
51
+ this.deactivate();
52
+ }
53
+
54
+ activate() {
55
+ const {
56
+ onActivate
57
+ } = this.props;
58
+ this.focusGroup.activate();
59
+ this.activated = true;
60
+ if (dsUtilities.isFunction(onActivate)) onActivate();
61
+ }
62
+
63
+ deactivate() {
64
+ const {
65
+ onExitFocusGroup
66
+ } = this.props;
67
+ this.activated = false;
68
+ this.focusGroup.deactivate();
69
+
70
+ if (dsUtilities.isFunction(onExitFocusGroup)) {
71
+ onExitFocusGroup();
72
+ }
73
+ }
74
+
75
+ register(item) {
76
+ this.focusGroup.register(item);
77
+ }
78
+
79
+ unregister(item) {
80
+ this.focusGroup.unregister(item);
81
+ }
82
+
83
+ focusItemByIndex(index) {
84
+ if (!this.activated) this.activate();
85
+ setTimeout(() => {
86
+ this.focusGroup.focusByIndex(index);
87
+ }, 200);
88
+ }
89
+
90
+ focusItemByNode(node) {
91
+ if (!this.activated) this.activate();
92
+ const index = this.focusGroup.getItemIndexByNode(node);
93
+ this.focusItemByIndex(index);
94
+ }
95
+
96
+ render() {
97
+ const {
98
+ children
99
+ } = this.props;
100
+ return /*#__PURE__*/_jsx__default["default"](FocusGroupContext.Provider, {
101
+ value: this.actions
102
+ }, void 0, children);
103
+ }
104
+
105
+ }
106
+ FocusGroupProvider.defaultProps = {
107
+ exitWhenNoPrevious: false,
108
+ exitWhenNoNext: false,
109
+ keyBindings: {},
110
+ onFocus: noop,
111
+ onExitFocusGroup: noop,
112
+ onFocusPreviousGroup: noop,
113
+ onFocusNextGroup: noop,
114
+ onFocusGroupSet: noop
115
+ };
116
+
117
+ module.exports = FocusGroupProvider;
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ require('core-js/modules/esnext.async-iterator.filter.js');
4
+ require('core-js/modules/esnext.iterator.constructor.js');
5
+ require('core-js/modules/esnext.iterator.filter.js');
6
+ require('core-js/modules/esnext.async-iterator.for-each.js');
7
+ require('core-js/modules/esnext.iterator.for-each.js');
8
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
9
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
10
+ require('react');
11
+ var FocusGroupManager = require('./FocusGroupManager.js');
12
+ var jsxRuntime = require('react/jsx-runtime');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
17
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
18
+
19
+ const _excluded = ["onExitFocusGroup", "onFocusPrevGroup", "focusKeyBindings"];
20
+
21
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22
+
23
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24
+ function FocusGroupHoc(WrappedComponent) {
25
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
26
+ return _ref => {
27
+ let {
28
+ onExitFocusGroup,
29
+ onFocusPrevGroup,
30
+ focusKeyBindings
31
+ } = _ref,
32
+ props = _objectWithoutProperties__default["default"](_ref, _excluded);
33
+
34
+ return /*#__PURE__*/jsxRuntime.jsx(FocusGroupManager, _objectSpread(_objectSpread({
35
+ keyBindings: focusKeyBindings,
36
+ onExitFocusGroup: onExitFocusGroup,
37
+ onFocusPrevGroup: onFocusPrevGroup
38
+ }, options), {}, {
39
+ children: /*#__PURE__*/jsxRuntime.jsx(WrappedComponent, _objectSpread(_objectSpread({}, props), options))
40
+ }));
41
+ };
42
+ }
43
+
44
+ module.exports = FocusGroupHoc;
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var FocusGroup = require('./FocusGroup.js');
6
+ var FocusGroupContext = require('./FocusGroupContext.js');
7
+ var FocusGroupManager = require('./FocusGroupManager.js');
8
+ var useFocusGroupItem = require('./useFocusGroupItem.js');
9
+ var focusGroupManagerHoc = require('./focusGroupManagerHoc.js');
10
+ var FocusGrid = require('./FocusGrid.js');
11
+
12
+
13
+
14
+ exports.FocusGroup = FocusGroup;
15
+ exports.FocusGroupContext = FocusGroupContext;
16
+ exports.FocusGroupManager = FocusGroupManager;
17
+ exports.useFocusGroupItem = useFocusGroupItem["default"];
18
+ exports.useFocusGroupWithState = useFocusGroupItem.useFocusGroupWithState;
19
+ exports.focusGroupManagerHoc = focusGroupManagerHoc;
20
+ exports.FocusGrid = FocusGrid["default"];
21
+ exports.FocusGridContext = FocusGrid.FocusGridContext;
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
+ var React = require('react');
7
+ var FocusGroupContext = require('./FocusGroupContext.js');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
12
+
13
+ const _excluded = ["register", "unregister"],
14
+ _excluded2 = ["register", "unregister"];
15
+ function useFocusGroupItem() {
16
+ let ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
17
+ let props = arguments.length > 1 ? arguments[1] : undefined;
18
+
19
+ const _ref = React.useContext(FocusGroupContext) || {},
20
+ {
21
+ register,
22
+ unregister
23
+ } = _ref,
24
+ otherActions = _objectWithoutProperties__default["default"](_ref, _excluded);
25
+
26
+ React.useEffect(() => {
27
+ if (ref.current && register) register(ref.current, props);
28
+ return () => {
29
+ if (ref.current && unregister) unregister(ref.current);
30
+ };
31
+ }); // if the focus item is not wrapped with the focus provider then return null
32
+
33
+ if (!register) return {};
34
+ return otherActions;
35
+ }
36
+ const useFocusGroupWithState = function () {
37
+ let ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
38
+ let props = arguments.length > 1 ? arguments[1] : undefined;
39
+
40
+ const _ref2 = React.useContext(FocusGroupContext) || {},
41
+ {
42
+ register,
43
+ unregister
44
+ } = _ref2,
45
+ otherActions = _objectWithoutProperties__default["default"](_ref2, _excluded2);
46
+
47
+ React.useEffect(() => {
48
+ if (ref && register) register(ref, props);
49
+ return () => {
50
+ if (ref && unregister) unregister(ref);
51
+ };
52
+ }, [ref]); // if the focus item is not wrapped with the focus provider then return null
53
+
54
+ if (!register) return {};
55
+ return otherActions;
56
+ };
57
+
58
+ exports["default"] = useFocusGroupItem;
59
+ exports.useFocusGroupWithState = useFocusGroupWithState;
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ // eslint-disable-next-line max-statements
4
+ function getNextCellPosition(_ref) {
5
+ let {
6
+ grid,
7
+ currentRow = 0,
8
+ currentCell = 0,
9
+ directionY,
10
+ directionX,
11
+ shouldWrapCells,
12
+ shouldWrapRows
13
+ } = _ref;
14
+ let nextRow = currentRow + directionY;
15
+ let nextCell = currentCell + directionX;
16
+ const rowCount = grid.length;
17
+ const isLeftRight = directionX !== 0;
18
+
19
+ if (!rowCount) {
20
+ return false;
21
+ }
22
+
23
+ const cellsLength = grid[0].length; // moving horizontally
24
+
25
+ if (shouldWrapCells && isLeftRight) {
26
+ // to left
27
+ if (nextCell < 0) {
28
+ nextCell = cellsLength - 1;
29
+ nextRow -= 1;
30
+ }
31
+
32
+ if (nextCell >= cellsLength) {
33
+ nextCell = 0;
34
+ nextRow += 1;
35
+ }
36
+ } // moving vertically
37
+
38
+
39
+ if (shouldWrapRows && !isLeftRight) {
40
+ // to top
41
+ if (nextRow < 0) {
42
+ nextCell -= 1;
43
+ nextRow = rowCount - 1;
44
+
45
+ if (grid[nextRow] && nextCell >= 0 && !grid[nextRow][nextCell]) {
46
+ nextRow -= 1;
47
+ }
48
+ } else if (nextRow >= rowCount || !grid[nextRow][nextCell]) {
49
+ nextRow = 0;
50
+ nextCell += 1;
51
+ }
52
+ }
53
+
54
+ return {
55
+ cellIndex: nextCell,
56
+ rowIndex: nextRow
57
+ };
58
+ }
59
+
60
+ module.exports = getNextCellPosition;