@elliemae/ds-shared 2.3.0-next.0 → 3.0.0-alpha.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/dist/cjs/Animations/BaseAnimation.js +56 -0
  2. package/dist/cjs/Animations/BaseAnimation.js.map +7 -0
  3. package/dist/cjs/Animations/Grow.js +55 -0
  4. package/dist/cjs/Animations/Grow.js.map +7 -0
  5. package/dist/cjs/Animations/GrowRight.js +64 -0
  6. package/dist/cjs/Animations/GrowRight.js.map +7 -0
  7. package/dist/cjs/Animations/GrowVertical.js +47 -0
  8. package/dist/cjs/Animations/GrowVertical.js.map +7 -0
  9. package/dist/cjs/CheckableGroup.js +76 -0
  10. package/dist/cjs/CheckableGroup.js.map +7 -0
  11. package/dist/cjs/DeferRenderAfterComputation.js +52 -0
  12. package/dist/cjs/DeferRenderAfterComputation.js.map +7 -0
  13. package/dist/cjs/FocusGroup/FocusGrid.js +180 -0
  14. package/dist/cjs/FocusGroup/FocusGrid.js.map +7 -0
  15. package/dist/cjs/FocusGroup/FocusGroup.js +249 -0
  16. package/dist/cjs/FocusGroup/FocusGroup.js.map +7 -0
  17. package/dist/cjs/FocusGroup/FocusGroupContext.js +38 -0
  18. package/dist/cjs/FocusGroup/FocusGroupContext.js.map +7 -0
  19. package/dist/cjs/FocusGroup/FocusGroupManager.js +126 -0
  20. package/dist/cjs/FocusGroup/FocusGroupManager.js.map +7 -0
  21. package/dist/cjs/FocusGroup/focusGroupManagerHoc.js +54 -0
  22. package/dist/cjs/FocusGroup/focusGroupManagerHoc.js.map +7 -0
  23. package/dist/cjs/FocusGroup/index.js +47 -0
  24. package/dist/cjs/FocusGroup/index.js.map +7 -0
  25. package/dist/cjs/FocusGroup/useFocusGroupItem.js +67 -0
  26. package/dist/cjs/FocusGroup/useFocusGroupItem.js.map +7 -0
  27. package/dist/cjs/FocusGroup/utils/getNextCellPosition.js +80 -0
  28. package/dist/cjs/FocusGroup/utils/getNextCellPosition.js.map +7 -0
  29. package/dist/cjs/GroupContext/Group.js +115 -0
  30. package/dist/cjs/GroupContext/Group.js.map +7 -0
  31. package/dist/cjs/GroupContext/GroupContext.js +36 -0
  32. package/dist/cjs/GroupContext/GroupContext.js.map +7 -0
  33. package/dist/cjs/GroupContext/GroupItem.js +40 -0
  34. package/dist/cjs/GroupContext/GroupItem.js.map +7 -0
  35. package/dist/cjs/GroupContext/index.js +39 -0
  36. package/dist/cjs/GroupContext/index.js.map +7 -0
  37. package/dist/cjs/ScrollSync/ScrollSync.js +138 -0
  38. package/dist/cjs/ScrollSync/ScrollSync.js.map +7 -0
  39. package/dist/cjs/ScrollSync/ScrollSyncPane.js +73 -0
  40. package/dist/cjs/ScrollSync/ScrollSyncPane.js.map +7 -0
  41. package/dist/cjs/ScrollSync/ScrollSyncProvider.js +120 -0
  42. package/dist/cjs/ScrollSync/ScrollSyncProvider.js.map +7 -0
  43. package/dist/cjs/ScrollSync/index.js +37 -0
  44. package/dist/cjs/ScrollSync/index.js.map +7 -0
  45. package/dist/cjs/ScrollSync/useScrollSync.js +41 -0
  46. package/dist/cjs/ScrollSync/useScrollSync.js.map +7 -0
  47. package/dist/cjs/constants.js +70 -0
  48. package/dist/cjs/constants.js.map +7 -0
  49. package/dist/cjs/createDataInstance/createInstancePlugin.js +48 -0
  50. package/dist/cjs/createDataInstance/createInstancePlugin.js.map +7 -0
  51. package/dist/cjs/createDataInstance/createInstanceRef.js +92 -0
  52. package/dist/cjs/createDataInstance/createInstanceRef.js.map +7 -0
  53. package/dist/cjs/createDataInstance/utils.js +99 -0
  54. package/dist/cjs/createDataInstance/utils.js.map +7 -0
  55. package/dist/cjs/defer-render-hoc/index.js +56 -0
  56. package/dist/cjs/defer-render-hoc/index.js.map +7 -0
  57. package/dist/cjs/dimsum.config.js +39 -0
  58. package/dist/cjs/dimsum.config.js.map +7 -0
  59. package/dist/cjs/index.js +40 -0
  60. package/dist/cjs/index.js.map +7 -0
  61. package/dist/cjs/prop-types.js +116 -0
  62. package/dist/cjs/prop-types.js.map +7 -0
  63. package/dist/cjs/react-spring/index.js +28 -0
  64. package/dist/cjs/react-spring/index.js.map +7 -0
  65. package/dist/cjs/react-spring/renderprops.js +28 -0
  66. package/dist/cjs/react-spring/renderprops.js.map +7 -0
  67. package/dist/cjs/toolbar/ToolbarProvider.js +111 -0
  68. package/dist/cjs/toolbar/ToolbarProvider.js.map +7 -0
  69. package/dist/cjs/useDataGrid/VolatileRowsListener.js +49 -0
  70. package/dist/cjs/useDataGrid/VolatileRowsListener.js.map +7 -0
  71. package/dist/cjs/useDataGrid/index.js +36 -0
  72. package/dist/cjs/useDataGrid/index.js.map +7 -0
  73. package/dist/cjs/useDataGrid/initColumnDefinition.js +141 -0
  74. package/dist/cjs/useDataGrid/initColumnDefinition.js.map +7 -0
  75. package/dist/cjs/useDataGrid/useDataGrid.js +194 -0
  76. package/dist/cjs/useDataGrid/useDataGrid.js.map +7 -0
  77. package/dist/cjs/useDataList/index.js +36 -0
  78. package/dist/cjs/useDataList/index.js.map +7 -0
  79. package/dist/cjs/useDataList/recordIterator.js +55 -0
  80. package/dist/cjs/useDataList/recordIterator.js.map +7 -0
  81. package/dist/cjs/useDataList/useDataList.js +93 -0
  82. package/dist/cjs/useDataList/useDataList.js.map +7 -0
  83. package/dist/cjs/utils.js +107 -0
  84. package/dist/cjs/utils.js.map +7 -0
  85. package/dist/cjs/virtualization/AutoHeightList.js +69 -0
  86. package/dist/cjs/virtualization/AutoHeightList.js.map +7 -0
  87. package/dist/cjs/virtualization/FluidHeightList.js +43 -0
  88. package/dist/cjs/virtualization/FluidHeightList.js.map +7 -0
  89. package/dist/cjs/virtualization/index.js +50 -0
  90. package/dist/cjs/virtualization/index.js.map +7 -0
  91. package/dist/esm/Animations/BaseAnimation.js +27 -0
  92. package/dist/esm/Animations/BaseAnimation.js.map +7 -0
  93. package/dist/esm/Animations/Grow.js +26 -0
  94. package/dist/esm/Animations/Grow.js.map +7 -0
  95. package/dist/esm/Animations/GrowRight.js +35 -0
  96. package/dist/esm/Animations/GrowRight.js.map +7 -0
  97. package/dist/esm/Animations/GrowVertical.js +29 -0
  98. package/dist/esm/Animations/GrowVertical.js.map +7 -0
  99. package/dist/esm/CheckableGroup.js +47 -0
  100. package/dist/esm/CheckableGroup.js.map +7 -0
  101. package/dist/esm/DeferRenderAfterComputation.js +23 -0
  102. package/dist/esm/DeferRenderAfterComputation.js.map +7 -0
  103. package/dist/esm/FocusGroup/FocusGrid.js +151 -0
  104. package/dist/esm/FocusGroup/FocusGrid.js.map +7 -0
  105. package/{esm → dist/esm}/FocusGroup/FocusGroup.js +56 -137
  106. package/dist/esm/FocusGroup/FocusGroup.js.map +7 -0
  107. package/dist/esm/FocusGroup/FocusGroupContext.js +9 -0
  108. package/dist/esm/FocusGroup/FocusGroupContext.js.map +7 -0
  109. package/{esm → dist/esm}/FocusGroup/FocusGroupManager.js +24 -38
  110. package/dist/esm/FocusGroup/FocusGroupManager.js.map +7 -0
  111. package/dist/esm/FocusGroup/focusGroupManagerHoc.js +25 -0
  112. package/dist/esm/FocusGroup/focusGroupManagerHoc.js.map +7 -0
  113. package/dist/esm/FocusGroup/index.js +18 -0
  114. package/dist/esm/FocusGroup/index.js.map +7 -0
  115. package/dist/esm/FocusGroup/useFocusGroupItem.js +38 -0
  116. package/dist/esm/FocusGroup/useFocusGroupItem.js.map +7 -0
  117. package/{esm → dist/esm}/FocusGroup/utils/getNextCellPosition.js +18 -25
  118. package/dist/esm/FocusGroup/utils/getNextCellPosition.js.map +7 -0
  119. package/dist/esm/GroupContext/Group.js +86 -0
  120. package/dist/esm/GroupContext/Group.js.map +7 -0
  121. package/dist/esm/GroupContext/GroupContext.js +7 -0
  122. package/dist/esm/GroupContext/GroupContext.js.map +7 -0
  123. package/dist/esm/GroupContext/GroupItem.js +11 -0
  124. package/dist/esm/GroupContext/GroupItem.js.map +7 -0
  125. package/dist/esm/GroupContext/index.js +10 -0
  126. package/dist/esm/GroupContext/index.js.map +7 -0
  127. package/{esm → dist/esm}/ScrollSync/ScrollSync.js +30 -64
  128. package/dist/esm/ScrollSync/ScrollSync.js.map +7 -0
  129. package/dist/esm/ScrollSync/ScrollSyncPane.js +44 -0
  130. package/dist/esm/ScrollSync/ScrollSyncPane.js.map +7 -0
  131. package/dist/esm/ScrollSync/ScrollSyncProvider.js +91 -0
  132. package/dist/esm/ScrollSync/ScrollSyncProvider.js.map +7 -0
  133. package/dist/esm/ScrollSync/index.js +8 -0
  134. package/dist/esm/ScrollSync/index.js.map +7 -0
  135. package/dist/esm/ScrollSync/useScrollSync.js +12 -0
  136. package/dist/esm/ScrollSync/useScrollSync.js.map +7 -0
  137. package/dist/esm/constants.js +41 -0
  138. package/dist/esm/constants.js.map +7 -0
  139. package/dist/esm/createDataInstance/createInstancePlugin.js +19 -0
  140. package/dist/esm/createDataInstance/createInstancePlugin.js.map +7 -0
  141. package/dist/esm/createDataInstance/createInstanceRef.js +67 -0
  142. package/dist/esm/createDataInstance/createInstanceRef.js.map +7 -0
  143. package/dist/esm/createDataInstance/utils.js +70 -0
  144. package/dist/esm/createDataInstance/utils.js.map +7 -0
  145. package/dist/esm/defer-render-hoc/index.js +27 -0
  146. package/dist/esm/defer-render-hoc/index.js.map +7 -0
  147. package/dist/esm/dimsum.config.js +10 -0
  148. package/dist/esm/dimsum.config.js.map +7 -0
  149. package/dist/esm/index.js +11 -0
  150. package/dist/esm/index.js.map +7 -0
  151. package/dist/esm/prop-types.js +87 -0
  152. package/dist/esm/prop-types.js.map +7 -0
  153. package/dist/esm/react-spring/index.js +3 -0
  154. package/dist/esm/react-spring/index.js.map +7 -0
  155. package/dist/esm/react-spring/renderprops.js +3 -0
  156. package/dist/esm/react-spring/renderprops.js.map +7 -0
  157. package/dist/esm/toolbar/ToolbarProvider.js +82 -0
  158. package/dist/esm/toolbar/ToolbarProvider.js.map +7 -0
  159. package/dist/esm/useDataGrid/VolatileRowsListener.js +20 -0
  160. package/dist/esm/useDataGrid/VolatileRowsListener.js.map +7 -0
  161. package/dist/esm/useDataGrid/index.js +7 -0
  162. package/dist/esm/useDataGrid/index.js.map +7 -0
  163. package/dist/esm/useDataGrid/initColumnDefinition.js +118 -0
  164. package/dist/esm/useDataGrid/initColumnDefinition.js.map +7 -0
  165. package/dist/esm/useDataGrid/useDataGrid.js +177 -0
  166. package/dist/esm/useDataGrid/useDataGrid.js.map +7 -0
  167. package/dist/esm/useDataList/index.js +7 -0
  168. package/dist/esm/useDataList/index.js.map +7 -0
  169. package/dist/esm/useDataList/recordIterator.js +26 -0
  170. package/dist/esm/useDataList/recordIterator.js.map +7 -0
  171. package/dist/esm/useDataList/useDataList.js +67 -0
  172. package/dist/esm/useDataList/useDataList.js.map +7 -0
  173. package/dist/esm/utils.js +78 -0
  174. package/dist/esm/utils.js.map +7 -0
  175. package/dist/esm/virtualization/AutoHeightList.js +40 -0
  176. package/dist/esm/virtualization/AutoHeightList.js.map +7 -0
  177. package/dist/esm/virtualization/FluidHeightList.js +14 -0
  178. package/dist/esm/virtualization/FluidHeightList.js.map +7 -0
  179. package/dist/esm/virtualization/index.js +21 -0
  180. package/dist/esm/virtualization/index.js.map +7 -0
  181. package/{types → dist/types}/Animations/BaseAnimation.d.ts +1 -0
  182. package/{types → dist/types}/Animations/Grow.d.ts +1 -0
  183. package/{types → dist/types}/Animations/GrowRight.d.ts +1 -0
  184. package/{types → dist/types}/Animations/GrowVertical.d.ts +0 -0
  185. package/{types → dist/types}/CheckableGroup.d.ts +1 -0
  186. package/dist/types/DeferRenderAfterComputation.d.ts +7 -0
  187. package/dist/types/FocusGroup/FocusGrid.d.ts +12 -0
  188. package/{types → dist/types}/FocusGroup/FocusGroup.d.ts +3 -1
  189. package/dist/types/FocusGroup/FocusGroupContext.d.ts +4 -0
  190. package/{types → dist/types}/FocusGroup/FocusGroupManager.d.ts +3 -1
  191. package/dist/types/FocusGroup/focusGroupManagerHoc.d.ts +9 -0
  192. package/dist/types/FocusGroup/index.d.ts +6 -0
  193. package/dist/types/FocusGroup/useFocusGroupItem.d.ts +4 -0
  194. package/{types → dist/types}/FocusGroup/utils/getNextCellPosition.d.ts +3 -1
  195. package/{types → dist/types}/GroupContext/Group.d.ts +1 -0
  196. package/{types → dist/types}/GroupContext/GroupContext.d.ts +0 -0
  197. package/{types → dist/types}/GroupContext/GroupItem.d.ts +1 -0
  198. package/dist/types/GroupContext/index.d.ts +3 -0
  199. package/{types → dist/types}/ScrollSync/ScrollSync.d.ts +4 -2
  200. package/dist/types/ScrollSync/ScrollSyncPane.d.ts +3 -0
  201. package/{types → dist/types}/ScrollSync/ScrollSyncProvider.d.ts +0 -0
  202. package/dist/types/ScrollSync/index.d.ts +2 -0
  203. package/dist/types/ScrollSync/useScrollSync.d.ts +7 -0
  204. package/{types → dist/types}/constants.d.ts +0 -0
  205. package/dist/types/createDataInstance/createInstancePlugin.d.ts +2 -0
  206. package/{types → dist/types}/createDataInstance/createInstanceRef.d.ts +3 -1
  207. package/{types → dist/types}/createDataInstance/tests/createInstanceRef.test.d.ts +0 -0
  208. package/{types → dist/types}/createDataInstance/utils.d.ts +0 -0
  209. package/dist/types/dimsum.config.d.ts +5 -0
  210. package/dist/types/index.d.ts +2 -0
  211. package/{types → dist/types}/prop-types.d.ts +0 -0
  212. package/{types → dist/types}/react-spring/index.d.ts +0 -0
  213. package/{types → dist/types}/react-spring/renderprops.d.ts +0 -0
  214. package/dist/types/toolbar/ToolbarProvider.d.ts +5 -0
  215. package/dist/types/useDataGrid/VolatileRowsListener.d.ts +7 -0
  216. package/dist/types/useDataGrid/index.d.ts +1 -0
  217. package/{types → dist/types}/useDataGrid/initColumnDefinition.d.ts +2 -1
  218. package/dist/types/useDataGrid/useDataGrid.d.ts +9 -0
  219. package/dist/types/useDataList/index.d.ts +1 -0
  220. package/{types → dist/types}/useDataList/recordIterator.d.ts +0 -0
  221. package/{types → dist/types}/useDataList/useDataList.d.ts +3 -2
  222. package/{types → dist/types}/utils.d.ts +0 -0
  223. package/{types → dist/types}/virtualization/AutoHeightList.d.ts +0 -0
  224. package/{types → dist/types}/virtualization/FluidHeightList.d.ts +0 -0
  225. package/{types → dist/types}/virtualization/index.d.ts +0 -0
  226. package/package.json +115 -107
  227. package/cjs/Animations/BaseAnimation.js +0 -36
  228. package/cjs/Animations/Grow.js +0 -42
  229. package/cjs/Animations/GrowRight.js +0 -42
  230. package/cjs/Animations/GrowVertical.js +0 -7
  231. package/cjs/CheckableGroup.js +0 -74
  232. package/cjs/DeferRenderAfterComputation.js +0 -28
  233. package/cjs/FocusGroup/FocusGrid.js +0 -215
  234. package/cjs/FocusGroup/FocusGroup.js +0 -308
  235. package/cjs/FocusGroup/FocusGroupContext.js +0 -11
  236. package/cjs/FocusGroup/FocusGroupManager.js +0 -117
  237. package/cjs/FocusGroup/focusGroupManagerHoc.js +0 -44
  238. package/cjs/FocusGroup/index.js +0 -21
  239. package/cjs/FocusGroup/useFocusGroupItem.js +0 -59
  240. package/cjs/FocusGroup/utils/getNextCellPosition.js +0 -60
  241. package/cjs/GroupContext/Group.js +0 -124
  242. package/cjs/GroupContext/GroupContext.js +0 -13
  243. package/cjs/GroupContext/GroupItem.js +0 -22
  244. package/cjs/GroupContext/index.js +0 -13
  245. package/cjs/ScrollSync/ScrollSync.js +0 -153
  246. package/cjs/ScrollSync/ScrollSyncPane.js +0 -81
  247. package/cjs/ScrollSync/ScrollSyncProvider.js +0 -67
  248. package/cjs/ScrollSync/index.js +0 -11
  249. package/cjs/ScrollSync/useScrollSync.js +0 -10
  250. package/cjs/constants.js +0 -51
  251. package/cjs/createDataInstance/createInstancePlugin.js +0 -36
  252. package/cjs/createDataInstance/createInstanceRef.js +0 -97
  253. package/cjs/createDataInstance/utils.js +0 -123
  254. package/cjs/defer-render-hoc/index.js +0 -49
  255. package/cjs/dimsum.config.js +0 -7
  256. package/cjs/index.js +0 -17
  257. package/cjs/prop-types.js +0 -59
  258. package/cjs/react-spring/index.js +0 -14
  259. package/cjs/react-spring/renderprops.js +0 -14
  260. package/cjs/toolbar/ToolbarProvider.js +0 -123
  261. package/cjs/useDataGrid/VolatileRowsListener.js +0 -24
  262. package/cjs/useDataGrid/index.js +0 -7
  263. package/cjs/useDataGrid/initColumnDefinition.js +0 -146
  264. package/cjs/useDataGrid/useDataGrid.js +0 -220
  265. package/cjs/useDataList/index.js +0 -7
  266. package/cjs/useDataList/recordIterator.js +0 -31
  267. package/cjs/useDataList/useDataList.js +0 -102
  268. package/cjs/utils.js +0 -116
  269. package/cjs/virtualization/AutoHeightList.js +0 -61
  270. package/cjs/virtualization/FluidHeightList.js +0 -49
  271. package/cjs/virtualization/index.js +0 -22
  272. package/esm/Animations/BaseAnimation.js +0 -30
  273. package/esm/Animations/Grow.js +0 -36
  274. package/esm/Animations/GrowRight.js +0 -36
  275. package/esm/Animations/GrowVertical.js +0 -4
  276. package/esm/CheckableGroup.js +0 -64
  277. package/esm/DeferRenderAfterComputation.js +0 -22
  278. package/esm/FocusGroup/FocusGrid.js +0 -204
  279. package/esm/FocusGroup/FocusGroupContext.js +0 -5
  280. package/esm/FocusGroup/focusGroupManagerHoc.js +0 -37
  281. package/esm/FocusGroup/index.js +0 -6
  282. package/esm/FocusGroup/useFocusGroupItem.js +0 -50
  283. package/esm/GroupContext/Group.js +0 -118
  284. package/esm/GroupContext/GroupContext.js +0 -5
  285. package/esm/GroupContext/GroupItem.js +0 -16
  286. package/esm/GroupContext/index.js +0 -3
  287. package/esm/ScrollSync/ScrollSyncPane.js +0 -74
  288. package/esm/ScrollSync/ScrollSyncProvider.js +0 -59
  289. package/esm/ScrollSync/index.js +0 -2
  290. package/esm/ScrollSync/useScrollSync.js +0 -8
  291. package/esm/constants.js +0 -32
  292. package/esm/createDataInstance/createInstancePlugin.js +0 -30
  293. package/esm/createDataInstance/createInstanceRef.js +0 -90
  294. package/esm/createDataInstance/utils.js +0 -107
  295. package/esm/defer-render-hoc/index.js +0 -41
  296. package/esm/dimsum.config.js +0 -5
  297. package/esm/index.js +0 -5
  298. package/esm/prop-types.js +0 -43
  299. package/esm/react-spring/index.js +0 -1
  300. package/esm/react-spring/renderprops.js +0 -1
  301. package/esm/toolbar/ToolbarProvider.js +0 -111
  302. package/esm/useDataGrid/VolatileRowsListener.js +0 -22
  303. package/esm/useDataGrid/index.js +0 -1
  304. package/esm/useDataGrid/initColumnDefinition.js +0 -134
  305. package/esm/useDataGrid/useDataGrid.js +0 -194
  306. package/esm/useDataList/index.js +0 -1
  307. package/esm/useDataList/recordIterator.js +0 -27
  308. package/esm/useDataList/useDataList.js +0 -90
  309. package/esm/utils.js +0 -95
  310. package/esm/virtualization/AutoHeightList.js +0 -52
  311. package/esm/virtualization/FluidHeightList.js +0 -38
  312. package/esm/virtualization/index.js +0 -18
  313. package/types/DeferRenderAfterComputation.d.ts +0 -6
  314. package/types/FocusGroup/FocusGrid.d.ts +0 -10
  315. package/types/FocusGroup/FocusGroupContext.d.ts +0 -3
  316. package/types/FocusGroup/focusGroupManagerHoc.d.ts +0 -7
  317. package/types/FocusGroup/index.d.ts +0 -6
  318. package/types/FocusGroup/useFocusGroupItem.d.ts +0 -2
  319. package/types/GroupContext/index.d.ts +0 -3
  320. package/types/ScrollSync/ScrollSyncPane.d.ts +0 -3
  321. package/types/ScrollSync/index.d.ts +0 -2
  322. package/types/ScrollSync/useScrollSync.d.ts +0 -6
  323. package/types/createDataInstance/createInstancePlugin.d.ts +0 -1
  324. package/types/dimsum.config.d.ts +0 -4
  325. package/types/index.d.ts +0 -2
  326. package/types/toolbar/ToolbarProvider.d.ts +0 -10
  327. package/types/useDataGrid/VolatileRowsListener.d.ts +0 -5
  328. package/types/useDataGrid/index.d.ts +0 -1
  329. package/types/useDataGrid/useDataGrid.d.ts +0 -8
  330. package/types/useDataList/index.d.ts +0 -1
@@ -0,0 +1,151 @@
1
+ import * as React from "react";
2
+ import React2, { createContext, useEffect, useMemo, useRef } from "react";
3
+ import { isFunction, runAll, get, useHotkeys, mergeRefs } from "@elliemae/ds-utilities";
4
+ import { getNextCellPosition } from "./utils/getNextCellPosition";
5
+ const FocusGridContext = createContext();
6
+ const { Provider } = FocusGridContext;
7
+ const preventDefault = (e) => e.preventDefault();
8
+ function registerHotKeysHooks(hotKeys, { focusedRow, focusedCell }) {
9
+ Object.keys(hotKeys).forEach((key) => {
10
+ const { handler, options } = hotKeys[key];
11
+ useHotkeys({
12
+ keys: key,
13
+ handler: (e) => {
14
+ e.preventDefault();
15
+ handler({
16
+ rowIndex: focusedRow.current,
17
+ cellIndex: focusedCell.current
18
+ });
19
+ },
20
+ options
21
+ });
22
+ });
23
+ }
24
+ const FocusGridProvider = ({
25
+ shouldWrapRows = false,
26
+ shouldWrapCells = false,
27
+ shouldRefocus = true,
28
+ children,
29
+ keyBindings,
30
+ hotKeys
31
+ }) => {
32
+ const focusedRow = useRef();
33
+ const focusedCell = useRef();
34
+ const grid = useRef([]);
35
+ const containerRef = useRef(document);
36
+ const child = React2.Children.only(children);
37
+ const decoratedChild = React2.cloneElement(child, {
38
+ innerRef: mergeRefs(child.props.innerRef, containerRef)
39
+ });
40
+ const getNode = ({ rowIndex, cellIndex }) => get(grid.current, [rowIndex, cellIndex]);
41
+ const register = (node, rowIndex, columnIndex) => {
42
+ if (!node)
43
+ return;
44
+ if (!Array.isArray(grid.current[rowIndex])) {
45
+ grid.current[rowIndex] = [];
46
+ }
47
+ if (rowIndex === 0 && columnIndex === 0) {
48
+ node.setAttribute("tabindex", 0);
49
+ } else {
50
+ node.setAttribute("tabindex", -1);
51
+ }
52
+ node.onfocus = () => {
53
+ const prevNode = getNode({
54
+ rowIndex: focusedRow.current,
55
+ cellIndex: focusedCell.current
56
+ });
57
+ if (prevNode)
58
+ prevNode.setAttribute("tabindex", -1);
59
+ node.setAttribute("tabindex", 0);
60
+ focusedRow.current = rowIndex;
61
+ focusedCell.current = columnIndex;
62
+ };
63
+ grid.current[rowIndex][columnIndex] = node;
64
+ };
65
+ useEffect(() => {
66
+ if (shouldRefocus) {
67
+ const rowIndex = focusedRow.current;
68
+ const cellIndex = focusedCell.current;
69
+ const node = get(grid.current, [rowIndex, cellIndex]);
70
+ if (node)
71
+ node.focus();
72
+ }
73
+ });
74
+ const focusNextCell = (directionY, directionX, position) => {
75
+ const { rowIndex, cellIndex } = position || getNextCellPosition({
76
+ grid: grid.current,
77
+ currentCell: focusedCell.current,
78
+ currentRow: focusedRow.current,
79
+ directionX,
80
+ directionY,
81
+ shouldWrapCells,
82
+ shouldWrapRows
83
+ });
84
+ const node = getNode({ rowIndex, cellIndex });
85
+ if (node) {
86
+ node.focus();
87
+ focusedRow.current = rowIndex;
88
+ focusedCell.current = cellIndex;
89
+ }
90
+ };
91
+ registerHotKeysHooks(hotKeys, { focusedCell, focusedRow });
92
+ const defaultKeyBindings = {
93
+ ArrowUp: runAll(preventDefault, () => focusNextCell(-1, 0)),
94
+ ArrowRight: runAll(preventDefault, () => focusNextCell(0, 1)),
95
+ ArrowDown: runAll(preventDefault, () => focusNextCell(1, 0)),
96
+ ArrowLeft: runAll(preventDefault, () => focusNextCell(0, -1)),
97
+ Home: runAll(preventDefault, (e) => {
98
+ let rowIndex = focusedRow.current;
99
+ if (e.ctrlKey) {
100
+ rowIndex = 0;
101
+ }
102
+ focusNextCell(0, 0, { rowIndex, cellIndex: 0 });
103
+ }),
104
+ End: runAll(preventDefault, (e) => {
105
+ let rowIndex = focusedRow.current;
106
+ if (e.ctrlKey) {
107
+ rowIndex = grid.current.length - 1;
108
+ }
109
+ focusNextCell(0, 0, { rowIndex, cellIndex: grid.current[0].length - 1 });
110
+ }),
111
+ ...keyBindings
112
+ };
113
+ const nextKeyBindings = isFunction(keyBindings) ? keyBindings({
114
+ defaultBindings: defaultKeyBindings,
115
+ rowIndex: focusedRow.current,
116
+ cellIndex: focusedCell.current
117
+ }) : { ...defaultKeyBindings, ...keyBindings };
118
+ const onKeyDown = (e) => {
119
+ if (e.target.tagName.toLowerCase() === "input")
120
+ return;
121
+ const action = nextKeyBindings[e.key];
122
+ if (isFunction(action))
123
+ action(e);
124
+ };
125
+ const activate = (container) => {
126
+ container.addEventListener("keydown", onKeyDown, true);
127
+ };
128
+ const deactivate = (container) => {
129
+ container.removeEventListener("keydown", onKeyDown, true);
130
+ };
131
+ useEffect(() => {
132
+ activate(containerRef.current);
133
+ return () => {
134
+ deactivate(containerRef.current);
135
+ };
136
+ }, []);
137
+ const valueProvider = useMemo(() => ({
138
+ register
139
+ }), []);
140
+ return /* @__PURE__ */ React2.createElement(Provider, {
141
+ value: valueProvider
142
+ }, decoratedChild);
143
+ };
144
+ var FocusGrid_default = FocusGridProvider;
145
+ export {
146
+ FocusGridProvider as FocusGrid,
147
+ FocusGridContext,
148
+ FocusGridProvider,
149
+ FocusGrid_default as default
150
+ };
151
+ //# sourceMappingURL=FocusGrid.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/FocusGroup/FocusGrid.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { createContext, useEffect, useMemo, useRef } from 'react';\nimport { isFunction, runAll, get, useHotkeys, mergeRefs } from '@elliemae/ds-utilities';\nimport { getNextCellPosition } from './utils/getNextCellPosition';\n\nconst FocusGridContext = createContext();\nconst { Provider } = FocusGridContext;\n\nconst preventDefault = e => e.preventDefault();\n\nfunction registerHotKeysHooks(hotKeys, { focusedRow, focusedCell }) {\n Object.keys(hotKeys).forEach(key => {\n const { handler, options } = hotKeys[key];\n useHotkeys({\n keys: key,\n handler: e => {\n e.preventDefault();\n handler({\n rowIndex: focusedRow.current,\n cellIndex: focusedCell.current,\n });\n },\n options,\n });\n });\n}\n\n// eslint-disable-next-line max-statements\nconst FocusGridProvider = ({\n shouldWrapRows = false,\n shouldWrapCells = false,\n shouldRefocus = true,\n children,\n keyBindings,\n hotKeys,\n}) => {\n const focusedRow = useRef();\n const focusedCell = useRef();\n const grid = useRef([]);\n const containerRef = useRef(document);\n const child = React.Children.only(children);\n const decoratedChild = React.cloneElement(child, {\n innerRef: mergeRefs(child.props.innerRef, containerRef),\n });\n\n const getNode = ({ rowIndex, cellIndex }) =>\n get(grid.current, [rowIndex, cellIndex]);\n\n const register = (node, rowIndex, columnIndex) => {\n if (!node) return;\n if (!Array.isArray(grid.current[rowIndex])) {\n grid.current[rowIndex] = [];\n }\n\n if (rowIndex === 0 && columnIndex === 0) {\n node.setAttribute('tabindex', 0);\n } else {\n node.setAttribute('tabindex', -1);\n }\n\n node.onfocus = () => {\n const prevNode = getNode({\n rowIndex: focusedRow.current,\n cellIndex: focusedCell.current,\n });\n\n if (prevNode) prevNode.setAttribute('tabindex', -1);\n\n node.setAttribute('tabindex', 0);\n focusedRow.current = rowIndex;\n focusedCell.current = columnIndex;\n };\n grid.current[rowIndex][columnIndex] = node;\n };\n\n useEffect(() => {\n if (shouldRefocus) {\n const rowIndex = focusedRow.current;\n const cellIndex = focusedCell.current;\n\n const node = get(grid.current, [rowIndex, cellIndex]);\n if (node) node.focus();\n }\n });\n\n const focusNextCell = (directionY, directionX, position) => {\n const { rowIndex, cellIndex } =\n position ||\n getNextCellPosition({\n grid: grid.current,\n currentCell: focusedCell.current,\n currentRow: focusedRow.current,\n directionX,\n directionY,\n shouldWrapCells,\n shouldWrapRows,\n });\n\n const node = getNode({ rowIndex, cellIndex });\n\n // can focus\n if (node) {\n node.focus();\n focusedRow.current = rowIndex;\n focusedCell.current = cellIndex;\n }\n };\n\n registerHotKeysHooks(hotKeys, { focusedCell, focusedRow });\n\n const defaultKeyBindings = {\n ArrowUp: runAll(preventDefault, () => focusNextCell(-1, 0)),\n ArrowRight: runAll(preventDefault, () => focusNextCell(0, 1)),\n ArrowDown: runAll(preventDefault, () => focusNextCell(1, 0)),\n ArrowLeft: runAll(preventDefault, () => focusNextCell(0, -1)),\n Home: runAll(preventDefault, e => {\n let rowIndex = focusedRow.current;\n if (e.ctrlKey) {\n rowIndex = 0;\n }\n focusNextCell(0, 0, { rowIndex, cellIndex: 0 });\n }),\n End: runAll(preventDefault, e => {\n let rowIndex = focusedRow.current;\n if (e.ctrlKey) {\n rowIndex = grid.current.length - 1;\n }\n focusNextCell(0, 0, { rowIndex, cellIndex: grid.current[0].length - 1 });\n }),\n ...keyBindings,\n };\n const nextKeyBindings = isFunction(keyBindings)\n ? keyBindings({\n defaultBindings: defaultKeyBindings,\n rowIndex: focusedRow.current,\n cellIndex: focusedCell.current,\n })\n : { ...defaultKeyBindings, ...keyBindings };\n\n const onKeyDown = e => {\n if (e.target.tagName.toLowerCase() === 'input') return;\n const action = nextKeyBindings[e.key];\n if (isFunction(action)) action(e);\n };\n\n const activate = container => {\n container.addEventListener('keydown', onKeyDown, true);\n };\n\n const deactivate = container => {\n container.removeEventListener('keydown', onKeyDown, true);\n };\n\n useEffect(() => {\n activate(containerRef.current);\n return () => {\n deactivate(containerRef.current);\n };\n }, []);\n\n const valueProvider = useMemo(\n () => ({\n register,\n }),\n [],\n );\n\n return <Provider value={valueProvider}>{decoratedChild}</Provider>;\n};\n\nexport { FocusGridProvider, FocusGridProvider as FocusGrid, FocusGridContext };\nexport default FocusGridProvider;\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,86 +1,51 @@
1
- import 'core-js/modules/esnext.async-iterator.filter.js';
2
- import 'core-js/modules/esnext.iterator.filter.js';
3
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
4
- import 'core-js/modules/web.dom-collections.iterator.js';
5
- import 'core-js/modules/esnext.async-iterator.for-each.js';
6
- import 'core-js/modules/esnext.iterator.constructor.js';
7
- import 'core-js/modules/esnext.iterator.for-each.js';
8
- import 'core-js/modules/esnext.async-iterator.map.js';
9
- import 'core-js/modules/esnext.iterator.map.js';
10
- import { get, isFunction } from '@elliemae/ds-utilities';
11
- import hotkeys from 'hotkeys-js';
12
-
13
- 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; }
14
-
15
- 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(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; }
1
+ import * as React from "react";
2
+ import { isFunction, get } from "@elliemae/ds-utilities";
3
+ import hotkeys from "hotkeys-js";
16
4
  const defaultOptions = {
17
- orientation: 'vertical'
5
+ orientation: "vertical"
18
6
  };
19
-
20
- const safeCallAction = function (e, fun) {
7
+ const safeCallAction = (e, fun, ...args) => {
21
8
  if (isFunction(fun)) {
22
9
  e.preventDefault();
23
-
24
- for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
25
- args[_key - 2] = arguments[_key];
26
- }
27
-
28
10
  fun(...args);
29
11
  }
30
12
  };
31
-
32
- const registerHotkeys = function () {
33
- let hotKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
34
- let params = arguments.length > 1 ? arguments[1] : undefined;
35
- let getContainer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : () => document;
36
- Object.keys(hotKeys).forEach(hotkey => {
37
- const {
38
- options,
39
- handler,
40
- allowDocumentHandler = false
41
- } = hotKeys[hotkey];
42
-
43
- const parameterizedHandler = e => {
13
+ const registerHotkeys = (hotKeys = {}, params, getContainer = () => document) => {
14
+ Object.keys(hotKeys).forEach((hotkey) => {
15
+ const { options, handler, allowDocumentHandler = false } = hotKeys[hotkey];
16
+ const parameterizedHandler = (e) => {
44
17
  const handlerParams = isFunction(params) ? params() : params;
45
- if (!allowDocumentHandler && handlerParams.item !== document.activeElement) return;
18
+ if (!allowDocumentHandler && handlerParams.item !== document.activeElement)
19
+ return;
46
20
  e.preventDefault();
47
21
  handler(handlerParams);
48
22
  };
49
-
50
- hotkeys(hotkey, _objectSpread({
51
- element: getContainer()
52
- }, options), parameterizedHandler);
23
+ hotkeys(hotkey, { element: getContainer(), ...options }, parameterizedHandler);
53
24
  });
54
25
  };
55
-
56
- const unregisterHotKeys = function () {
57
- let hotKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
58
- Object.keys(hotKeys).forEach(hotkey => {
26
+ const unregisterHotKeys = (hotKeys = {}) => {
27
+ Object.keys(hotKeys).forEach((hotkey) => {
59
28
  hotkeys.unbind(hotkey);
60
29
  });
61
30
  };
62
-
63
31
  const noop = () => null;
64
-
65
32
  class FocusGroup {
66
- constructor() {
67
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
33
+ constructor(options = {}) {
68
34
  this.items = [];
69
- this.options = _objectSpread(_objectSpread({}, defaultOptions), options);
70
- const {
71
- orientation
72
- } = this.options;
73
- this.keyBindings = _objectSpread({
74
- ArrowUp: orientation !== 'horizontal' && 'previous',
75
- ArrowRight: orientation !== 'vertical' && 'next',
76
- ArrowDown: orientation !== 'horizontal' && 'next',
77
- ArrowLeft: orientation !== 'vertical' && 'previous',
78
- Home: 'first',
79
- End: 'last',
80
- PageUp: 'first',
81
- PageDown: 'last',
82
- Escape: 'exit'
83
- }, options.keyBindings);
35
+ this.options = { ...defaultOptions, ...options };
36
+ const { orientation } = this.options;
37
+ this.keyBindings = {
38
+ ArrowUp: orientation !== "horizontal" && "previous",
39
+ ArrowRight: orientation !== "vertical" && "next",
40
+ ArrowDown: orientation !== "horizontal" && "next",
41
+ ArrowLeft: orientation !== "vertical" && "previous",
42
+ Home: "first",
43
+ End: "last",
44
+ PageUp: "first",
45
+ PageDown: "last",
46
+ Escape: "exit",
47
+ ...options.keyBindings
48
+ };
84
49
  this.currentFocusedItem = null;
85
50
  this.currIndex = null;
86
51
  this.mapActions = {
@@ -102,200 +67,154 @@ class FocusGroup {
102
67
  this.focusCurrent = this.focusCurrent.bind(this);
103
68
  this.getHotKeysParams = this.getHotKeysParams.bind(this);
104
69
  }
105
-
106
70
  getHotKeysParams() {
107
71
  const item = this.currentFocusedItem;
108
- const {
109
- index
110
- } = get(item, ['dataset'], {});
72
+ const { index } = get(item, ["dataset"], {});
111
73
  return {
112
74
  item,
113
75
  index
114
76
  };
115
77
  }
116
-
117
78
  activate() {
118
- const {
119
- getContainer
120
- } = this.options;
121
- document.addEventListener('keydown', this.handleKeyDown, true);
79
+ const { getContainer } = this.options;
80
+ document.addEventListener("keydown", this.handleKeyDown, true);
122
81
  registerHotkeys(this.options.hotKeys, this.getHotKeysParams, getContainer);
123
82
  }
124
-
125
83
  deactivate() {
126
- document.removeEventListener('keydown', this.handleKeyDown, true);
84
+ document.removeEventListener("keydown", this.handleKeyDown, true);
127
85
  unregisterHotKeys(this.options.hotKeys);
128
86
  }
129
-
130
87
  handleKeyDown(e) {
131
- if (!this.isGroupActive()) return;
88
+ if (!this.isGroupActive())
89
+ return;
132
90
  this.executeActionByEvent(e);
133
91
  }
134
-
135
92
  executeActionByEvent(e) {
136
93
  const actions = Array.isArray(this.keyBindings[e.key]) ? this.keyBindings[e.key] : [this.keyBindings[e.key]];
137
- return actions.map(action => typeof action === 'string' ? safeCallAction(e, this.mapActions[action]) : safeCallAction(e, action));
94
+ return actions.map((action) => typeof action === "string" ? safeCallAction(e, this.mapActions[action]) : safeCallAction(e, action));
138
95
  }
139
-
140
- register(node) {
141
- let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
142
- const afterIndex = this.items.findIndex(item => item.compareDocumentPosition(node) === Node.DOCUMENT_POSITION_PRECEDING);
96
+ register(node, props = {}) {
97
+ const afterIndex = this.items.findIndex((item) => item.compareDocumentPosition(node) === Node.DOCUMENT_POSITION_PRECEDING);
143
98
  node.specialOnFocus = props.onFocus || noop;
144
99
  node.specialOnBlur = props.onBlur || noop;
145
-
146
100
  node.onclick = () => this.focusItem(node);
147
-
148
101
  node.onfocus = () => {
149
102
  this.focusItem(node);
150
103
  };
151
-
152
104
  if (afterIndex === -1) {
153
105
  this.items.push(node);
154
106
  } else {
155
107
  this.items.splice(afterIndex, 0, node);
156
108
  }
157
109
  }
158
-
159
110
  unregister(node) {
160
111
  const index = this.getItemIndexByNode(node);
161
- if (index > -1) this.items.splice(index, 1);
112
+ if (index > -1)
113
+ this.items.splice(index, 1);
162
114
  }
163
-
164
115
  exit() {
165
- const {
166
- onExitFocusGroup
167
- } = this.options;
116
+ const { onExitFocusGroup } = this.options;
168
117
  onExitFocusGroup();
169
118
  }
170
-
171
119
  focusItem(node) {
172
120
  if (this.currentFocusedItem && this.currentFocusedItem !== node) {
173
121
  this.currentFocusedItem.specialOnBlur();
174
- this.currentFocusedItem.setAttribute('tabindex', -1);
122
+ this.currentFocusedItem.setAttribute("tabindex", -1);
175
123
  }
176
-
177
- if (!node) return;
124
+ if (!node)
125
+ return;
178
126
  this.currentFocusedItem = node;
179
- node.setAttribute('tabindex', 0);
127
+ node.setAttribute("tabindex", 0);
180
128
  node.focus();
181
129
  node.specialOnFocus();
182
130
  }
183
-
184
131
  focusNext() {
185
132
  const item = this.getNextItem();
186
133
  this.focusItem(item);
187
134
  }
188
-
189
135
  focusByNode(node) {
190
136
  const index = this.getItemIndexByNode(node);
191
137
  this.focusByIndex(index);
192
138
  }
193
-
194
139
  focusByIndex(index) {
195
140
  const item = this.getItemByIndex(index);
196
141
  this.focusItem(item);
197
142
  }
198
-
199
143
  focusPrevious() {
200
144
  const prevItem = this.getPreviousItem();
201
145
  this.focusItem(prevItem);
202
146
  }
203
-
204
147
  focusFirst() {
205
148
  const item = this.getFirstItem();
206
149
  this.focusItem(item);
207
150
  }
208
-
209
151
  focusLast() {
210
152
  const item = this.getLastItem();
211
153
  this.focusItem(item);
212
154
  }
213
-
214
155
  focusCurrent() {
215
156
  this.focusItem(this.currentFocusedItem);
216
157
  }
217
-
218
158
  focusNextGroup() {
219
- const {
220
- onFocusNextGroup
221
- } = this.options;
159
+ const { onFocusNextGroup } = this.options;
222
160
  this.exit();
223
161
  onFocusNextGroup();
224
162
  }
225
-
226
163
  focusPreviousGroup() {
227
- const {
228
- onFocusPreviousGroup
229
- } = this.options;
164
+ const { onFocusPreviousGroup } = this.options;
230
165
  this.exit();
231
166
  onFocusPreviousGroup();
232
167
  }
233
-
234
168
  getNextItem() {
235
- const {
236
- loop
237
- } = this.options;
169
+ const { loop } = this.options;
238
170
  const currentIndex = this.getFocusedIndex();
239
171
  const supposedNextIndex = currentIndex + 1;
240
-
241
172
  if (!this.checkCanFocusNext(supposedNextIndex)) {
242
173
  return loop ? this.getFirstItem() : this.focusNextGroup();
243
174
  }
244
-
245
175
  return this.getItemByIndex(supposedNextIndex);
246
176
  }
247
-
248
177
  getPreviousItem() {
249
- const {
250
- loop
251
- } = this.options;
178
+ const { loop } = this.options;
252
179
  const currentIndex = this.getFocusedIndex();
253
180
  const supposedPrevIndex = currentIndex - 1;
254
-
255
181
  if (!this.checkCanFocusPrev(supposedPrevIndex)) {
256
182
  return loop ? this.getLastItem() : this.focusPreviousGroup();
257
183
  }
258
-
259
184
  return this.getItemByIndex(supposedPrevIndex);
260
185
  }
261
-
262
186
  checkCanFocusNext(index) {
263
187
  return this.items.length > index;
264
188
  }
265
-
266
189
  checkCanFocusPrev(index) {
267
190
  return index >= 0;
268
191
  }
269
-
270
192
  getItemByIndex(index) {
271
193
  return this.items[index];
272
194
  }
273
-
274
195
  getItemIndexByNode(node) {
275
- return this.items.findIndex(item => item === node);
196
+ return this.items.findIndex((item) => item === node);
276
197
  }
277
-
278
198
  getFocusedIndex() {
279
199
  return this.getItemIndexByNode(document.activeElement);
280
200
  }
281
-
282
201
  getFocusedItem() {
283
202
  const index = this.getFocusedIndex();
284
203
  return index > -1 && this.items[index];
285
204
  }
286
-
287
205
  isGroupActive() {
288
206
  return this.getFocusedIndex() !== -1;
289
207
  }
290
-
291
208
  getFirstItem() {
292
209
  return !!this.items.length && this.items[0];
293
210
  }
294
-
295
211
  getLastItem() {
296
212
  return !!this.items.length && this.items[this.items.length - 1];
297
213
  }
298
-
299
214
  }
300
-
301
- export { FocusGroup as default };
215
+ var FocusGroup_default = FocusGroup;
216
+ export {
217
+ FocusGroup,
218
+ FocusGroup_default as default
219
+ };
220
+ //# sourceMappingURL=FocusGroup.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/FocusGroup/FocusGroup.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable no-param-reassign */\n/* eslint-disable max-statements */\n/* eslint-disable max-lines */\nimport { isFunction, get } from '@elliemae/ds-utilities';\nimport hotkeys from 'hotkeys-js';\n\nconst defaultOptions = {\n orientation: 'vertical',\n};\n\nconst safeCallAction = (e, fun, ...args) => {\n if (isFunction(fun)) {\n e.preventDefault();\n fun(...args);\n }\n};\n\nconst registerHotkeys = (\n hotKeys = {},\n params,\n getContainer = () => document,\n) => {\n Object.keys(hotKeys).forEach((hotkey) => {\n const { options, handler, allowDocumentHandler = false } = hotKeys[hotkey];\n const parameterizedHandler = (e) => {\n const handlerParams = isFunction(params) ? params() : params;\n if (\n !allowDocumentHandler &&\n handlerParams.item !== document.activeElement\n )\n return;\n e.preventDefault();\n handler(handlerParams);\n };\n hotkeys(\n hotkey,\n { element: getContainer(), ...options },\n parameterizedHandler,\n );\n });\n};\n\nconst unregisterHotKeys = (hotKeys = {}) => {\n Object.keys(hotKeys).forEach((hotkey) => {\n hotkeys.unbind(hotkey);\n });\n};\n\nconst noop = () => null;\n\nclass FocusGroup {\n items = [];\n\n constructor(options = {}) {\n this.options = { ...defaultOptions, ...options };\n\n const { orientation } = this.options;\n\n this.keyBindings = {\n ArrowUp: orientation !== 'horizontal' && 'previous',\n ArrowRight: orientation !== 'vertical' && 'next',\n ArrowDown: orientation !== 'horizontal' && 'next',\n ArrowLeft: orientation !== 'vertical' && 'previous',\n Home: 'first',\n End: 'last',\n PageUp: 'first',\n PageDown: 'last',\n Escape: 'exit',\n ...options.keyBindings,\n };\n\n this.currentFocusedItem = null;\n this.currIndex = null;\n\n this.mapActions = {\n previous: this.focusPrevious.bind(this),\n next: this.focusNext.bind(this),\n first: this.focusFirst.bind(this),\n last: this.focusLast.bind(this),\n exit: this.exit.bind(this),\n enter: () => null,\n };\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.register = this.register.bind(this);\n this.focusFirst = this.focusFirst.bind(this);\n this.focusLast = this.focusLast.bind(this);\n this.isGroupActive = this.isGroupActive.bind(this);\n this.focusNext = this.focusNext.bind(this);\n this.focusPrevious = this.focusPrevious.bind(this);\n this.focusItem = this.focusItem.bind(this);\n this.focusCurrent = this.focusCurrent.bind(this);\n this.getHotKeysParams = this.getHotKeysParams.bind(this);\n }\n\n getHotKeysParams() {\n const item = this.currentFocusedItem;\n const { index } = get(item, ['dataset'], {});\n return {\n item,\n index,\n };\n }\n\n activate() {\n const { getContainer } = this.options;\n document.addEventListener('keydown', this.handleKeyDown, true);\n registerHotkeys(this.options.hotKeys, this.getHotKeysParams, getContainer);\n }\n\n deactivate() {\n document.removeEventListener('keydown', this.handleKeyDown, true);\n unregisterHotKeys(this.options.hotKeys);\n }\n\n handleKeyDown(e) {\n if (!this.isGroupActive()) return;\n this.executeActionByEvent(e);\n }\n\n executeActionByEvent(e) {\n const actions = Array.isArray(this.keyBindings[e.key])\n ? this.keyBindings[e.key]\n : [this.keyBindings[e.key]];\n return actions.map((action) =>\n typeof action === 'string'\n ? safeCallAction(e, this.mapActions[action])\n : safeCallAction(e, action),\n );\n }\n\n register(node, props = {}) {\n const afterIndex = this.items.findIndex(\n (item) =>\n item.compareDocumentPosition(node) === Node.DOCUMENT_POSITION_PRECEDING,\n );\n node.specialOnFocus = props.onFocus || noop;\n node.specialOnBlur = props.onBlur || noop;\n node.onclick = () => this.focusItem(node);\n node.onfocus = () => {\n this.focusItem(node);\n };\n if (afterIndex === -1) {\n this.items.push(node);\n } else {\n this.items.splice(afterIndex, 0, node);\n }\n }\n\n unregister(node) {\n const index = this.getItemIndexByNode(node);\n if (index > -1) this.items.splice(index, 1);\n }\n\n exit() {\n const { onExitFocusGroup } = this.options;\n onExitFocusGroup();\n }\n\n focusItem(node) {\n if (this.currentFocusedItem && this.currentFocusedItem !== node) {\n this.currentFocusedItem.specialOnBlur();\n this.currentFocusedItem.setAttribute('tabindex', -1);\n }\n if (!node) return;\n this.currentFocusedItem = node;\n node.setAttribute('tabindex', 0);\n node.focus();\n node.specialOnFocus();\n }\n\n focusNext() {\n const item = this.getNextItem();\n this.focusItem(item);\n }\n\n focusByNode(node) {\n const index = this.getItemIndexByNode(node);\n this.focusByIndex(index);\n }\n\n focusByIndex(index) {\n const item = this.getItemByIndex(index);\n this.focusItem(item);\n }\n\n focusPrevious() {\n const prevItem = this.getPreviousItem();\n this.focusItem(prevItem);\n }\n\n focusFirst() {\n const item = this.getFirstItem();\n this.focusItem(item);\n }\n\n focusLast() {\n const item = this.getLastItem();\n this.focusItem(item);\n }\n\n focusCurrent() {\n this.focusItem(this.currentFocusedItem);\n }\n\n focusNextGroup() {\n const { onFocusNextGroup } = this.options;\n this.exit();\n onFocusNextGroup();\n }\n\n focusPreviousGroup() {\n const { onFocusPreviousGroup } = this.options;\n this.exit();\n onFocusPreviousGroup();\n }\n\n getNextItem() {\n const { loop } = this.options;\n const currentIndex = this.getFocusedIndex();\n const supposedNextIndex = currentIndex + 1;\n if (!this.checkCanFocusNext(supposedNextIndex)) {\n return loop ? this.getFirstItem() : this.focusNextGroup();\n }\n return this.getItemByIndex(supposedNextIndex);\n }\n\n getPreviousItem() {\n const { loop } = this.options;\n const currentIndex = this.getFocusedIndex();\n const supposedPrevIndex = currentIndex - 1;\n if (!this.checkCanFocusPrev(supposedPrevIndex)) {\n return loop ? this.getLastItem() : this.focusPreviousGroup();\n }\n return this.getItemByIndex(supposedPrevIndex);\n }\n\n checkCanFocusNext(index) {\n return this.items.length > index;\n }\n\n checkCanFocusPrev(index) {\n return index >= 0;\n }\n\n getItemByIndex(index) {\n return this.items[index];\n }\n\n getItemIndexByNode(node) {\n return this.items.findIndex((item) => item === node);\n }\n\n getFocusedIndex() {\n return this.getItemIndexByNode(document.activeElement);\n }\n\n getFocusedItem() {\n const index = this.getFocusedIndex();\n return index > -1 && this.items[index];\n }\n\n isGroupActive() {\n return this.getFocusedIndex() !== -1;\n }\n\n getFirstItem() {\n return !!this.items.length && this.items[0];\n }\n\n getLastItem() {\n return !!this.items.length && this.items[this.items.length - 1];\n }\n}\n\nexport { FocusGroup };\nexport default FocusGroup;"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import React2 from "react";
3
+ const FocusGroupContext = React2.createContext();
4
+ var FocusGroupContext_default = FocusGroupContext;
5
+ export {
6
+ FocusGroupContext,
7
+ FocusGroupContext_default as default
8
+ };
9
+ //# sourceMappingURL=FocusGroupContext.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/FocusGroup/FocusGroupContext.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\n\nconst FocusGroupContext = React.createContext();\nexport { FocusGroupContext };\nexport default FocusGroupContext;\n"],
5
+ "mappings": "AAAA;ACAA;AAEA,MAAM,oBAAoB,OAAM;AAEhC,IAAO,4BAAQ;",
6
+ "names": []
7
+ }