@elliemae/ds-shared 1.57.1-rc.0 → 2.0.0-alpha.11

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 (264) hide show
  1. package/cjs/Animations/BaseAnimation.js +25 -36
  2. package/cjs/Animations/Grow.js +31 -39
  3. package/cjs/Animations/GrowRight.js +31 -40
  4. package/cjs/Animations/GrowVertical.js +3 -2
  5. package/cjs/CheckableGroup.js +36 -50
  6. package/cjs/DeferRenderAfterComputation.js +12 -22
  7. package/cjs/FocusGroup/FocusGrid.js +94 -102
  8. package/cjs/FocusGroup/FocusGroup.js +215 -270
  9. package/cjs/FocusGroup/FocusGroupContext.js +1 -2
  10. package/cjs/FocusGroup/FocusGroupManager.js +88 -124
  11. package/cjs/FocusGroup/focusGroupManagerHoc.js +24 -29
  12. package/cjs/FocusGroup/index.js +14 -28
  13. package/cjs/FocusGroup/useFocusGroupItem.js +24 -27
  14. package/cjs/FocusGroup/utils/getNextCellPosition.js +14 -16
  15. package/cjs/GroupContext/Group.js +76 -104
  16. package/cjs/GroupContext/GroupContext.js +1 -2
  17. package/cjs/GroupContext/GroupItem.js +10 -11
  18. package/cjs/GroupContext/index.js +6 -15
  19. package/cjs/ScrollSync/ScrollSync.js +86 -112
  20. package/cjs/ScrollSync/ScrollSyncPane.js +49 -92
  21. package/cjs/ScrollSync/ScrollSyncProvider.js +32 -28
  22. package/cjs/ScrollSync/index.js +4 -14
  23. package/cjs/ScrollSync/useScrollSync.js +0 -1
  24. package/cjs/constants.js +43 -4
  25. package/cjs/createDataInstance/createInstancePlugin.js +6 -10
  26. package/cjs/createDataInstance/createInstanceRef.js +34 -42
  27. package/cjs/createDataInstance/utils.js +42 -76
  28. package/cjs/defer-render-hoc/index.js +19 -64
  29. package/cjs/dimsum.config.js +7 -0
  30. package/cjs/index.js +10 -21
  31. package/cjs/prop-types.js +59 -0
  32. package/cjs/react-spring/index.js +3 -6
  33. package/cjs/react-spring/renderprops.js +3 -6
  34. package/cjs/toolbar/ToolbarProvider.js +60 -81
  35. package/cjs/useDataGrid/VolatileRowsListener.js +13 -27
  36. package/cjs/useDataGrid/index.js +2 -17
  37. package/cjs/useDataGrid/initColumnDefinition.js +45 -53
  38. package/cjs/useDataGrid/useDataGrid.js +105 -152
  39. package/cjs/useDataList/index.js +2 -15
  40. package/cjs/useDataList/recordIterator.js +7 -11
  41. package/cjs/useDataList/useDataList.js +42 -63
  42. package/cjs/utils.js +39 -59
  43. package/cjs/virtualization/AutoHeightList.js +34 -27
  44. package/cjs/virtualization/FluidHeightList.js +23 -17
  45. package/cjs/virtualization/index.js +12 -18
  46. package/esm/Animations/BaseAnimation.js +24 -35
  47. package/esm/Animations/Grow.js +29 -37
  48. package/esm/Animations/GrowRight.js +29 -38
  49. package/esm/Animations/GrowVertical.js +3 -2
  50. package/esm/CheckableGroup.js +33 -46
  51. package/esm/DeferRenderAfterComputation.js +12 -21
  52. package/esm/FocusGroup/FocusGrid.js +86 -96
  53. package/esm/FocusGroup/FocusGroup.js +210 -263
  54. package/esm/FocusGroup/FocusGroupContext.js +0 -1
  55. package/esm/FocusGroup/FocusGroupManager.js +85 -115
  56. package/esm/FocusGroup/focusGroupManagerHoc.js +19 -23
  57. package/esm/FocusGroup/index.js +0 -14
  58. package/esm/FocusGroup/useFocusGroupItem.js +22 -25
  59. package/esm/FocusGroup/utils/getNextCellPosition.js +14 -16
  60. package/esm/GroupContext/Group.js +75 -96
  61. package/esm/GroupContext/GroupContext.js +1 -2
  62. package/esm/GroupContext/GroupItem.js +8 -9
  63. package/esm/GroupContext/index.js +0 -9
  64. package/esm/ScrollSync/ScrollSync.js +83 -104
  65. package/esm/ScrollSync/ScrollSyncPane.js +47 -83
  66. package/esm/ScrollSync/ScrollSyncProvider.js +31 -28
  67. package/esm/ScrollSync/index.js +0 -10
  68. package/esm/ScrollSync/useScrollSync.js +0 -1
  69. package/esm/constants.js +31 -5
  70. package/esm/createDataInstance/createInstancePlugin.js +5 -8
  71. package/esm/createDataInstance/createInstanceRef.js +29 -36
  72. package/esm/createDataInstance/utils.js +40 -74
  73. package/esm/defer-render-hoc/index.js +19 -57
  74. package/esm/dimsum.config.js +5 -0
  75. package/esm/index.js +0 -11
  76. package/esm/prop-types.js +43 -0
  77. package/esm/react-spring/index.js +1 -2
  78. package/esm/react-spring/renderprops.js +1 -2
  79. package/esm/toolbar/ToolbarProvider.js +55 -75
  80. package/esm/useDataGrid/VolatileRowsListener.js +12 -24
  81. package/esm/useDataGrid/index.js +0 -15
  82. package/esm/useDataGrid/initColumnDefinition.js +38 -45
  83. package/esm/useDataGrid/useDataGrid.js +85 -131
  84. package/esm/useDataList/index.js +0 -13
  85. package/esm/useDataList/recordIterator.js +7 -11
  86. package/esm/useDataList/useDataList.js +31 -51
  87. package/esm/utils.js +37 -57
  88. package/esm/virtualization/AutoHeightList.js +26 -19
  89. package/esm/virtualization/FluidHeightList.js +20 -14
  90. package/esm/virtualization/index.js +6 -12
  91. package/package.json +202 -13
  92. package/types/Animations/BaseAnimation.d.ts +12 -0
  93. package/types/Animations/Grow.d.ts +11 -0
  94. package/types/Animations/GrowRight.d.ts +11 -0
  95. package/types/Animations/GrowVertical.d.ts +1 -0
  96. package/types/CheckableGroup.d.ts +20 -0
  97. package/types/DeferRenderAfterComputation.d.ts +6 -0
  98. package/types/FocusGroup/FocusGrid.d.ts +10 -0
  99. package/types/FocusGroup/FocusGroup.d.ts +36 -0
  100. package/types/FocusGroup/FocusGroupContext.d.ts +3 -0
  101. package/types/FocusGroup/FocusGroupManager.d.ts +24 -0
  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/types/FocusGroup/utils/getNextCellPosition.d.ts +12 -0
  106. package/types/GroupContext/Group.d.ts +14 -0
  107. package/types/GroupContext/GroupContext.d.ts +2 -0
  108. package/types/GroupContext/GroupItem.d.ts +5 -0
  109. package/types/GroupContext/index.d.ts +3 -0
  110. package/types/ScrollSync/ScrollSync.d.ts +21 -0
  111. package/types/ScrollSync/ScrollSyncPane.d.ts +3 -0
  112. package/types/ScrollSync/ScrollSyncProvider.d.ts +12 -0
  113. package/types/ScrollSync/index.d.ts +2 -0
  114. package/types/ScrollSync/useScrollSync.d.ts +6 -0
  115. package/types/constants.d.ts +30 -0
  116. package/types/createDataInstance/createInstancePlugin.d.ts +1 -0
  117. package/types/createDataInstance/createInstanceRef.d.ts +12 -0
  118. package/types/createDataInstance/tests/createInstanceRef.test.d.ts +0 -0
  119. package/types/createDataInstance/utils.d.ts +9 -0
  120. package/types/dimsum.config.d.ts +4 -0
  121. package/types/index.d.ts +2 -0
  122. package/types/prop-types.d.ts +41 -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/types/useDataGrid/initColumnDefinition.d.ts +4 -0
  129. package/types/useDataGrid/useDataGrid.d.ts +8 -0
  130. package/types/useDataList/index.d.ts +1 -0
  131. package/types/useDataList/recordIterator.d.ts +1 -0
  132. package/types/useDataList/useDataList.d.ts +13 -0
  133. package/types/utils.d.ts +22 -0
  134. package/types/virtualization/AutoHeightList.d.ts +2 -0
  135. package/types/virtualization/FluidHeightList.d.ts +2 -0
  136. package/types/virtualization/index.d.ts +9 -0
  137. package/Animations/BaseAnimation/package.json +0 -10
  138. package/Animations/Grow/package.json +0 -10
  139. package/Animations/GrowRight/package.json +0 -10
  140. package/Animations/GrowVertical/package.json +0 -10
  141. package/CheckableGroup/package.json +0 -10
  142. package/DeferRenderAfterComputation/package.json +0 -10
  143. package/FocusGroup/FocusGrid/package.json +0 -10
  144. package/FocusGroup/FocusGroup/package.json +0 -10
  145. package/FocusGroup/FocusGroupContext/package.json +0 -10
  146. package/FocusGroup/FocusGroupManager/package.json +0 -10
  147. package/FocusGroup/focusGroupManagerHoc/package.json +0 -10
  148. package/FocusGroup/package.json +0 -10
  149. package/FocusGroup/useFocusGroupItem/package.json +0 -10
  150. package/FocusGroup/utils/getNextCellPosition/package.json +0 -10
  151. package/GroupContext/Group/package.json +0 -10
  152. package/GroupContext/GroupContext/package.json +0 -10
  153. package/GroupContext/GroupItem/package.json +0 -10
  154. package/GroupContext/package.json +0 -10
  155. package/ScrollSync/ScrollSync/package.json +0 -10
  156. package/ScrollSync/ScrollSyncPane/package.json +0 -10
  157. package/ScrollSync/ScrollSyncProvider/package.json +0 -10
  158. package/ScrollSync/package.json +0 -10
  159. package/ScrollSync/useScrollSync/package.json +0 -10
  160. package/cjs/Animations/BaseAnimation.js.map +0 -1
  161. package/cjs/Animations/Grow.js.map +0 -1
  162. package/cjs/Animations/GrowRight.js.map +0 -1
  163. package/cjs/Animations/GrowVertical.js.map +0 -1
  164. package/cjs/CheckableGroup.js.map +0 -1
  165. package/cjs/DeferRenderAfterComputation.js.map +0 -1
  166. package/cjs/FocusGroup/FocusGrid.js.map +0 -1
  167. package/cjs/FocusGroup/FocusGroup.js.map +0 -1
  168. package/cjs/FocusGroup/FocusGroupContext.js.map +0 -1
  169. package/cjs/FocusGroup/FocusGroupManager.js.map +0 -1
  170. package/cjs/FocusGroup/focusGroupManagerHoc.js.map +0 -1
  171. package/cjs/FocusGroup/index.js.map +0 -1
  172. package/cjs/FocusGroup/useFocusGroupItem.js.map +0 -1
  173. package/cjs/FocusGroup/utils/getNextCellPosition.js.map +0 -1
  174. package/cjs/GroupContext/Group.js.map +0 -1
  175. package/cjs/GroupContext/GroupContext.js.map +0 -1
  176. package/cjs/GroupContext/GroupItem.js.map +0 -1
  177. package/cjs/GroupContext/index.js.map +0 -1
  178. package/cjs/ScrollSync/ScrollSync.js.map +0 -1
  179. package/cjs/ScrollSync/ScrollSyncPane.js.map +0 -1
  180. package/cjs/ScrollSync/ScrollSyncProvider.js.map +0 -1
  181. package/cjs/ScrollSync/index.js.map +0 -1
  182. package/cjs/ScrollSync/useScrollSync.js.map +0 -1
  183. package/cjs/constants.js.map +0 -1
  184. package/cjs/createDataInstance/createInstancePlugin.js.map +0 -1
  185. package/cjs/createDataInstance/createInstanceRef.js.map +0 -1
  186. package/cjs/createDataInstance/utils.js.map +0 -1
  187. package/cjs/defer-render-hoc/index.js.map +0 -1
  188. package/cjs/index.js.map +0 -1
  189. package/cjs/react-spring/index.js.map +0 -1
  190. package/cjs/react-spring/renderprops.js.map +0 -1
  191. package/cjs/toolbar/ToolbarProvider.js.map +0 -1
  192. package/cjs/useDataGrid/VolatileRowsListener.js.map +0 -1
  193. package/cjs/useDataGrid/index.js.map +0 -1
  194. package/cjs/useDataGrid/initColumnDefinition.js.map +0 -1
  195. package/cjs/useDataGrid/useDataGrid.js.map +0 -1
  196. package/cjs/useDataList/index.js.map +0 -1
  197. package/cjs/useDataList/recordIterator.js.map +0 -1
  198. package/cjs/useDataList/useDataList.js.map +0 -1
  199. package/cjs/utils.js.map +0 -1
  200. package/cjs/virtualization/AutoHeightList.js.map +0 -1
  201. package/cjs/virtualization/FluidHeightList.js.map +0 -1
  202. package/cjs/virtualization/index.js.map +0 -1
  203. package/constants/package.json +0 -10
  204. package/createDataInstance/createInstancePlugin/package.json +0 -10
  205. package/createDataInstance/createInstanceRef/package.json +0 -10
  206. package/createDataInstance/utils/package.json +0 -10
  207. package/defer-render-hoc/package.json +0 -10
  208. package/esm/Animations/BaseAnimation.js.map +0 -1
  209. package/esm/Animations/Grow.js.map +0 -1
  210. package/esm/Animations/GrowRight.js.map +0 -1
  211. package/esm/Animations/GrowVertical.js.map +0 -1
  212. package/esm/CheckableGroup.js.map +0 -1
  213. package/esm/DeferRenderAfterComputation.js.map +0 -1
  214. package/esm/FocusGroup/FocusGrid.js.map +0 -1
  215. package/esm/FocusGroup/FocusGroup.js.map +0 -1
  216. package/esm/FocusGroup/FocusGroupContext.js.map +0 -1
  217. package/esm/FocusGroup/FocusGroupManager.js.map +0 -1
  218. package/esm/FocusGroup/focusGroupManagerHoc.js.map +0 -1
  219. package/esm/FocusGroup/index.js.map +0 -1
  220. package/esm/FocusGroup/useFocusGroupItem.js.map +0 -1
  221. package/esm/FocusGroup/utils/getNextCellPosition.js.map +0 -1
  222. package/esm/GroupContext/Group.js.map +0 -1
  223. package/esm/GroupContext/GroupContext.js.map +0 -1
  224. package/esm/GroupContext/GroupItem.js.map +0 -1
  225. package/esm/GroupContext/index.js.map +0 -1
  226. package/esm/ScrollSync/ScrollSync.js.map +0 -1
  227. package/esm/ScrollSync/ScrollSyncPane.js.map +0 -1
  228. package/esm/ScrollSync/ScrollSyncProvider.js.map +0 -1
  229. package/esm/ScrollSync/index.js.map +0 -1
  230. package/esm/ScrollSync/useScrollSync.js.map +0 -1
  231. package/esm/constants.js.map +0 -1
  232. package/esm/createDataInstance/createInstancePlugin.js.map +0 -1
  233. package/esm/createDataInstance/createInstanceRef.js.map +0 -1
  234. package/esm/createDataInstance/utils.js.map +0 -1
  235. package/esm/defer-render-hoc/index.js.map +0 -1
  236. package/esm/index.js.map +0 -1
  237. package/esm/react-spring/index.js.map +0 -1
  238. package/esm/react-spring/renderprops.js.map +0 -1
  239. package/esm/toolbar/ToolbarProvider.js.map +0 -1
  240. package/esm/useDataGrid/VolatileRowsListener.js.map +0 -1
  241. package/esm/useDataGrid/index.js.map +0 -1
  242. package/esm/useDataGrid/initColumnDefinition.js.map +0 -1
  243. package/esm/useDataGrid/useDataGrid.js.map +0 -1
  244. package/esm/useDataList/index.js.map +0 -1
  245. package/esm/useDataList/recordIterator.js.map +0 -1
  246. package/esm/useDataList/useDataList.js.map +0 -1
  247. package/esm/utils.js.map +0 -1
  248. package/esm/virtualization/AutoHeightList.js.map +0 -1
  249. package/esm/virtualization/FluidHeightList.js.map +0 -1
  250. package/esm/virtualization/index.js.map +0 -1
  251. package/react-spring/package.json +0 -10
  252. package/react-spring/renderprops/package.json +0 -10
  253. package/toolbar/ToolbarProvider/package.json +0 -10
  254. package/useDataGrid/VolatileRowsListener/package.json +0 -10
  255. package/useDataGrid/initColumnDefinition/package.json +0 -10
  256. package/useDataGrid/package.json +0 -10
  257. package/useDataGrid/useDataGrid/package.json +0 -10
  258. package/useDataList/package.json +0 -10
  259. package/useDataList/recordIterator/package.json +0 -10
  260. package/useDataList/useDataList/package.json +0 -10
  261. package/utils/package.json +0 -10
  262. package/virtualization/AutoHeightList/package.json +0 -10
  263. package/virtualization/FluidHeightList/package.json +0 -10
  264. package/virtualization/package.json +0 -10
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@elliemae/ds-shared/FocusGroup/useFocusGroupItem",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ],
7
- "private": true,
8
- "main": "../../cjs/FocusGroup/useFocusGroupItem.js",
9
- "module": "../../esm/FocusGroup/useFocusGroupItem.js"
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@elliemae/ds-shared/FocusGroup/utils/getNextCellPosition",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ],
7
- "private": true,
8
- "main": "../../../cjs/FocusGroup/utils/getNextCellPosition.js",
9
- "module": "../../../esm/FocusGroup/utils/getNextCellPosition.js"
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@elliemae/ds-shared/GroupContext/Group",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ],
7
- "private": true,
8
- "main": "../../cjs/GroupContext/Group.js",
9
- "module": "../../esm/GroupContext/Group.js"
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@elliemae/ds-shared/GroupContext/GroupContext",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ],
7
- "private": true,
8
- "main": "../../cjs/GroupContext/GroupContext.js",
9
- "module": "../../esm/GroupContext/GroupContext.js"
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@elliemae/ds-shared/GroupContext/GroupItem",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ],
7
- "private": true,
8
- "main": "../../cjs/GroupContext/GroupItem.js",
9
- "module": "../../esm/GroupContext/GroupItem.js"
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@elliemae/ds-shared/GroupContext",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ],
7
- "private": true,
8
- "main": "../cjs/GroupContext/index.js",
9
- "module": "../esm/GroupContext/index.js"
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@elliemae/ds-shared/ScrollSync/ScrollSync",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ],
7
- "private": true,
8
- "main": "../../cjs/ScrollSync/ScrollSync.js",
9
- "module": "../../esm/ScrollSync/ScrollSync.js"
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@elliemae/ds-shared/ScrollSync/ScrollSyncPane",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ],
7
- "private": true,
8
- "main": "../../cjs/ScrollSync/ScrollSyncPane.js",
9
- "module": "../../esm/ScrollSync/ScrollSyncPane.js"
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@elliemae/ds-shared/ScrollSync/ScrollSyncProvider",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ],
7
- "private": true,
8
- "main": "../../cjs/ScrollSync/ScrollSyncProvider.js",
9
- "module": "../../esm/ScrollSync/ScrollSyncProvider.js"
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@elliemae/ds-shared/ScrollSync",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ],
7
- "private": true,
8
- "main": "../cjs/ScrollSync/index.js",
9
- "module": "../esm/ScrollSync/index.js"
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@elliemae/ds-shared/ScrollSync/useScrollSync",
3
- "sideEffects": [
4
- "*.css",
5
- "*.scss"
6
- ],
7
- "private": true,
8
- "main": "../../cjs/ScrollSync/useScrollSync.js",
9
- "module": "../../esm/ScrollSync/useScrollSync.js"
10
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseAnimation.js","sources":["../../../src/Animations/BaseAnimation.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { Transition } from 'react-spring/renderprops.cjs';\n\nconst BaseAnimation = ({\n keys = undefined,\n items = [],\n duration = 100,\n enter = {},\n from = {},\n leave = {},\n onRest = () => null,\n children,\n}) => (\n <Transition\n config={{ duration }}\n enter={enter}\n from={from}\n items={items}\n keys={keys}\n leave={leave}\n onRest={onRest}\n >\n {children}\n </Transition>\n);\n\nexport default BaseAnimation;\n"],"names":["BaseAnimation","keys","undefined","items","duration","enter","from","leave","onRest","children","React","Transition"],"mappings":";;;;;;;;;AAAA;;IAIMA,aAAa,GAAG,SAAhBA,aAAgB;AAAA,uBACpBC,IADoB;AAAA,MACpBA,IADoB,0BACbC,SADa;AAAA,wBAEpBC,KAFoB;AAAA,MAEpBA,KAFoB,2BAEZ,EAFY;AAAA,2BAGpBC,QAHoB;AAAA,MAGpBA,QAHoB,8BAGT,GAHS;AAAA,wBAIpBC,KAJoB;AAAA,MAIpBA,KAJoB,2BAIZ,EAJY;AAAA,uBAKpBC,IALoB;AAAA,MAKpBA,IALoB,0BAKb,EALa;AAAA,wBAMpBC,KANoB;AAAA,MAMpBA,KANoB,2BAMZ,EANY;AAAA,yBAOpBC,MAPoB;AAAA,MAOpBA,MAPoB,4BAOX;AAAA,WAAM,IAAN;AAAA,GAPW;AAAA,MAQpBC,QARoB,QAQpBA,QARoB;AAAA,sBAUpBC,wCAACC,0BAAD;AACE,IAAA,MAAM,EAAE;AAAEP,MAAAA,QAAQ,EAARA;AAAF,KADV;AAEE,IAAA,KAAK,EAAEC,KAFT;AAGE,IAAA,IAAI,EAAEC,IAHR;AAIE,IAAA,KAAK,EAAEH,KAJT;AAKE,IAAA,IAAI,EAAEF,IALR;AAME,IAAA,KAAK,EAAEM,KANT;AAOE,IAAA,MAAM,EAAEC;AAPV,KASGC,QATH,CAVoB;AAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Grow.js","sources":["../../../src/Animations/Grow.tsx"],"sourcesContent":["import React from 'react';\nimport BaseAnimation from './BaseAnimation';\n\nconst Grow = ({\n keys = undefined,\n duration,\n items = undefined,\n from = 0,\n to = 1,\n children,\n onRest = () => null,\n}) => (\n <BaseAnimation\n duration={duration}\n enter={{ opacity: 1, transform: `scale(${to})` }}\n from={{ opacity: 0, transform: `scale(${from})` }}\n items={items}\n keys={keys}\n leave={{ opacity: 0, transform: `scale(${from})` }}\n onRest={onRest}\n >\n {children}\n </BaseAnimation>\n);\n\nexport default Grow;\n"],"names":["Grow","keys","undefined","duration","items","from","to","children","onRest","React","BaseAnimation","opacity","transform"],"mappings":";;;;;;;;;;IAGMA,IAAI,GAAG,SAAPA,IAAO;AAAA,uBACXC,IADW;AAAA,MACXA,IADW,0BACJC,SADI;AAAA,MAEXC,QAFW,QAEXA,QAFW;AAAA,wBAGXC,KAHW;AAAA,MAGXA,KAHW,2BAGHF,SAHG;AAAA,uBAIXG,IAJW;AAAA,MAIXA,IAJW,0BAIJ,CAJI;AAAA,qBAKXC,EALW;AAAA,MAKXA,EALW,wBAKN,CALM;AAAA,MAMXC,QANW,QAMXA,QANW;AAAA,yBAOXC,MAPW;AAAA,MAOXA,MAPW,4BAOF;AAAA,WAAM,IAAN;AAAA,GAPE;AAAA,sBASXC,wCAACC,wBAAD;AACE,IAAA,QAAQ,EAAEP,QADZ;AAEE,IAAA,KAAK,EAAE;AAAEQ,MAAAA,OAAO,EAAE,CAAX;AAAcC,MAAAA,SAAS,kBAAWN,EAAX;AAAvB,KAFT;AAGE,IAAA,IAAI,EAAE;AAAEK,MAAAA,OAAO,EAAE,CAAX;AAAcC,MAAAA,SAAS,kBAAWP,IAAX;AAAvB,KAHR;AAIE,IAAA,KAAK,EAAED,KAJT;AAKE,IAAA,IAAI,EAAEH,IALR;AAME,IAAA,KAAK,EAAE;AAAEU,MAAAA,OAAO,EAAE,CAAX;AAAcC,MAAAA,SAAS,kBAAWP,IAAX;AAAvB,KANT;AAOE,IAAA,MAAM,EAAEG;AAPV,KASGD,QATH,CATW;AAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrowRight.js","sources":["../../../src/Animations/GrowRight.tsx"],"sourcesContent":["import React from 'react';\nimport BaseAnimation from './BaseAnimation';\n\nconst GrowRight = ({\n keys = undefined,\n items = undefined,\n duration = 200,\n from = 0,\n to = 1,\n children,\n onRest = () => null,\n}) => (\n <BaseAnimation\n duration={duration}\n enter={{\n opacity: `${to}`,\n transform: 'translateX(0px)',\n }}\n from={{\n opacity: `${from}`,\n transform: 'translateX(100%)',\n }}\n items={items}\n keys={keys}\n leave={{\n opacity: `${from}`,\n transform: 'translateX(100%)',\n }}\n onRest={onRest}\n >\n {children}\n </BaseAnimation>\n);\n\nexport default GrowRight;\n"],"names":["GrowRight","keys","undefined","items","duration","from","to","children","onRest","React","BaseAnimation","opacity","transform"],"mappings":";;;;;;;;;;IAGMA,SAAS,GAAG,SAAZA,SAAY;AAAA,uBAChBC,IADgB;AAAA,MAChBA,IADgB,0BACTC,SADS;AAAA,wBAEhBC,KAFgB;AAAA,MAEhBA,KAFgB,2BAERD,SAFQ;AAAA,2BAGhBE,QAHgB;AAAA,MAGhBA,QAHgB,8BAGL,GAHK;AAAA,uBAIhBC,IAJgB;AAAA,MAIhBA,IAJgB,0BAIT,CAJS;AAAA,qBAKhBC,EALgB;AAAA,MAKhBA,EALgB,wBAKX,CALW;AAAA,MAMhBC,QANgB,QAMhBA,QANgB;AAAA,yBAOhBC,MAPgB;AAAA,MAOhBA,MAPgB,4BAOP;AAAA,WAAM,IAAN;AAAA,GAPO;AAAA,sBAShBC,wCAACC,wBAAD;AACE,IAAA,QAAQ,EAAEN,QADZ;AAEE,IAAA,KAAK,EAAE;AACLO,MAAAA,OAAO,YAAKL,EAAL,CADF;AAELM,MAAAA,SAAS,EAAE;AAFN,KAFT;AAME,IAAA,IAAI,EAAE;AACJD,MAAAA,OAAO,YAAKN,IAAL,CADH;AAEJO,MAAAA,SAAS,EAAE;AAFP,KANR;AAUE,IAAA,KAAK,EAAET,KAVT;AAWE,IAAA,IAAI,EAAEF,IAXR;AAYE,IAAA,KAAK,EAAE;AACLU,MAAAA,OAAO,YAAKN,IAAL,CADF;AAELO,MAAAA,SAAS,EAAE;AAFN,KAZT;AAgBE,IAAA,MAAM,EAAEJ;AAhBV,KAkBGD,QAlBH,CATgB;AAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrowVertical.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CheckableGroup.js","sources":["../../src/CheckableGroup.tsx"],"sourcesContent":["import React, { cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport { addOrRemove, runAll, useDerivedStateFromProps } from '@elliemae/ds-utilities';\n\nexport function useCheckableGroup({\n children,\n active: activeProp,\n multi,\n onCheck = () => null,\n}) {\n const [active, setActive] = useDerivedStateFromProps(activeProp);\n\n const handleCheck = ({ target: { value } }, item) => {\n setActive(prevActive => {\n const nextActive = multi ? addOrRemove(prevActive, value) : value;\n onCheck(nextActive, item);\n return nextActive;\n });\n };\n\n return React.Children.map(children, child => {\n const { props } = child;\n const checked = Array.isArray(active)\n ? active.indexOf(props.name) !== -1\n : active === props.name;\n\n return cloneElement(child, {\n ...props,\n checked,\n onClick: runAll(handleCheck, props.onClick),\n });\n });\n}\n\nfunction CheckableGroup({\n active = [],\n multi = false, // checkbox or radio\n children,\n}) {\n return useCheckableGroup({ active, multi, children });\n}\n\nCheckableGroup.propTypes = {\n /* The item (if multi false) or items (if multi true) selected */\n active: PropTypes.arrayOf(PropTypes.string),\n /* Whether is multi select or not */\n multi: PropTypes.bool,\n /* Handler when a user checks an item */\n onCheck: PropTypes.func,\n};\n\nexport default CheckableGroup;\n"],"names":["useCheckableGroup","children","activeProp","active","multi","onCheck","useDerivedStateFromProps","setActive","handleCheck","item","value","target","prevActive","nextActive","addOrRemove","React","Children","map","child","props","checked","Array","isArray","indexOf","name","cloneElement","onClick","runAll","CheckableGroup","propTypes","PropTypes","arrayOf","string","bool","func"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIO,SAASA,iBAAT,OAKJ;AAAA,MAJDC,QAIC,QAJDA,QAIC;AAAA,MAHOC,UAGP,QAHDC,MAGC;AAAA,MAFDC,KAEC,QAFDA,KAEC;AAAA,0BADDC,OACC;AAAA,MADDA,OACC,6BADS;AAAA,WAAM,IAAN;AAAA,GACT;;AACD,8BAA4BC,oCAAwB,CAACJ,UAAD,CAApD;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeI,SAAf;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,QAAwBC,IAAxB,EAAiC;AAAA,QAApBC,KAAoB,SAA9BC,MAA8B,CAApBD,KAAoB;AACnDH,IAAAA,SAAS,CAAC,UAAAK,UAAU,EAAI;AACtB,UAAMC,UAAU,GAAGT,KAAK,GAAGU,uBAAW,CAACF,UAAD,EAAaF,KAAb,CAAd,GAAoCA,KAA5D;AACAL,MAAAA,OAAO,CAACQ,UAAD,EAAaJ,IAAb,CAAP;AACA,aAAOI,UAAP;AACD,KAJQ,CAAT;AAKD,GAND;;AAQA,SAAOE,yBAAK,CAACC,QAAN,CAAeC,GAAf,CAAmBhB,QAAnB,EAA6B,UAAAiB,KAAK,EAAI;AAC3C,QAAQC,KAAR,GAAkBD,KAAlB,CAAQC,KAAR;AACA,QAAMC,OAAO,GAAGC,KAAK,CAACC,OAAN,CAAcnB,MAAd,IACZA,MAAM,CAACoB,OAAP,CAAeJ,KAAK,CAACK,IAArB,MAA+B,CAAC,CADpB,GAEZrB,MAAM,KAAKgB,KAAK,CAACK,IAFrB;AAIA,wBAAOC,kBAAY,CAACP,KAAD,kCACdC,KADc;AAEjBC,MAAAA,OAAO,EAAPA,OAFiB;AAGjBM,MAAAA,OAAO,EAAEC,kBAAM,CAACnB,WAAD,EAAcW,KAAK,CAACO,OAApB;AAHE,OAAnB;AAKD,GAXM,CAAP;AAYD;;AAED,SAASE,cAAT,QAIG;AAAA,2BAHDzB,MAGC;AAAA,MAHDA,MAGC,6BAHQ,EAGR;AAAA,0BAFDC,KAEC;AAAA,MAFDA,KAEC,4BAFO,KAEP;AAAA,MADDH,QACC,SADDA,QACC;AACD,SAAOD,iBAAiB,CAAC;AAAEG,IAAAA,MAAM,EAANA,MAAF;AAAUC,IAAAA,KAAK,EAALA,KAAV;AAAiBH,IAAAA,QAAQ,EAARA;AAAjB,GAAD,CAAxB;AACD;;AAED2B,cAAc,CAACC,SAAf,GAA2B;AACzB;AACA1B,EAAAA,MAAM,EAAE2B,6BAAS,CAACC,OAAV,CAAkBD,6BAAS,CAACE,MAA5B,CAFiB;;AAGzB;AACA5B,EAAAA,KAAK,EAAE0B,6BAAS,CAACG,IAJQ;;AAKzB;AACA5B,EAAAA,OAAO,EAAEyB,6BAAS,CAACI;AANM,CAA3B;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeferRenderAfterComputation.js","sources":["../../src/DeferRenderAfterComputation.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport raf from 'raf';\n\nexport default function DeferRenderAfterComputation({\n children,\n resolve,\n fallback,\n timeout = 2000,\n}) {\n const [shouldRender, setShouldRender] = useState(false);\n\n useEffect(() => {\n // eslint-disable-next-line max-nested-callbacks\n raf(() =>\n raf(() =>\n resolve().then(() => {\n setShouldRender(true);\n }),\n ),\n );\n }, []);\n return shouldRender ? children : fallback;\n}\n"],"names":["DeferRenderAfterComputation","children","resolve","fallback","timeout","useState","shouldRender","setShouldRender","useEffect","raf","then"],"mappings":";;;;;;;;;;;AAGe,SAASA,2BAAT,OAKZ;AAAA,MAJDC,QAIC,QAJDA,QAIC;AAAA,MAHDC,OAGC,QAHDA,OAGC;AAAA,MAFDC,QAEC,QAFDA,QAEC;AAAA,WADDC,OACC;;AACD,kBAAwCC,cAAQ,CAAC,KAAD,CAAhD;AAAA;AAAA,MAAOC,YAAP;AAAA,MAAqBC,eAArB;;AAEAC,EAAAA,eAAS,CAAC,YAAM;AACd;AACAC,IAAAA,uBAAG,CAAC;AAAA,aACFA,uBAAG,CAAC;AAAA,eACFP,OAAO,GAAGQ,IAAV,CAAe,YAAM;AACnBH,UAAAA,eAAe,CAAC,IAAD,CAAf;AACD,SAFD,CADE;AAAA,OAAD,CADD;AAAA,KAAD,CAAH;AAOD,GATQ,EASN,EATM,CAAT;AAUA,SAAOD,YAAY,GAAGL,QAAH,GAAcE,QAAjC;AACD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FocusGrid.js","sources":["../../../src/FocusGroup/FocusGrid.tsx"],"sourcesContent":["import React, { createContext, useEffect, useMemo, useRef } from 'react';\nimport { isFunction, runAll, get, useHotkeys, mergeRefs } from '@elliemae/ds-utilities';\nimport getNextCellPosition from './utils/getNextCellPosition';\n\nexport const 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\nexport default function 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"],"names":["FocusGridContext","createContext","Provider","preventDefault","e","registerHotKeysHooks","hotKeys","focusedRow","focusedCell","Object","keys","forEach","key","handler","options","useHotkeys","rowIndex","current","cellIndex","FocusGridProvider","shouldWrapRows","shouldWrapCells","shouldRefocus","children","keyBindings","useRef","grid","containerRef","document","child","React","Children","only","decoratedChild","cloneElement","innerRef","mergeRefs","props","getNode","get","register","node","columnIndex","Array","isArray","setAttribute","onfocus","prevNode","useEffect","focus","focusNextCell","directionY","directionX","position","getNextCellPosition","currentCell","currentRow","defaultKeyBindings","ArrowUp","runAll","ArrowRight","ArrowDown","ArrowLeft","Home","ctrlKey","End","length","nextKeyBindings","isFunction","defaultBindings","onKeyDown","target","tagName","toLowerCase","action","activate","container","addEventListener","deactivate","removeEventListener","valueProvider","useMemo"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FocusGroup.js","sources":["../../../src/FocusGroup/FocusGroup.tsx"],"sourcesContent":["/* 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\nexport default class 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"],"names":["defaultOptions","orientation","safeCallAction","e","fun","isFunction","preventDefault","args","registerHotkeys","hotKeys","params","getContainer","document","Object","keys","forEach","hotkey","options","handler","allowDocumentHandler","parameterizedHandler","handlerParams","item","activeElement","hotkeys","element","unregisterHotKeys","unbind","noop","FocusGroup","keyBindings","ArrowUp","ArrowRight","ArrowDown","ArrowLeft","Home","End","PageUp","PageDown","Escape","currentFocusedItem","currIndex","mapActions","previous","focusPrevious","bind","next","focusNext","first","focusFirst","last","focusLast","exit","enter","handleKeyDown","register","isGroupActive","focusItem","focusCurrent","getHotKeysParams","get","index","addEventListener","removeEventListener","executeActionByEvent","actions","Array","isArray","key","map","action","node","props","afterIndex","items","findIndex","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","specialOnFocus","onFocus","specialOnBlur","onBlur","onclick","onfocus","push","splice","getItemIndexByNode","onExitFocusGroup","setAttribute","focus","getNextItem","focusByIndex","getItemByIndex","prevItem","getPreviousItem","getFirstItem","getLastItem","onFocusNextGroup","onFocusPreviousGroup","loop","currentIndex","getFocusedIndex","supposedNextIndex","checkCanFocusNext","focusNextGroup","supposedPrevIndex","checkCanFocusPrev","focusPreviousGroup","length"],"mappings":";;;;;;;;;;;;;;;;;;AAMA,IAAMA,cAAc,GAAG;AACrBC,EAAAA,WAAW,EAAE;AADQ,CAAvB;;AAIA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,CAAD,EAAIC,GAAJ,EAAqB;AAC1C,MAAIC,sBAAU,CAACD,GAAD,CAAd,EAAqB;AACnBD,IAAAA,CAAC,CAACG,cAAF;;AADmB,sCADYC,IACZ;AADYA,MAAAA,IACZ;AAAA;;AAEnBH,IAAAA,GAAG,MAAH,SAAOG,IAAP;AACD;AACF,CALD;;AAOA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAInB;AAAA,MAHHC,OAGG,uEAHO,EAGP;AAAA,MAFHC,MAEG;AAAA,MADHC,YACG,uEADY;AAAA,WAAMC,QAAN;AAAA,GACZ;AACHC,EAAAA,MAAM,CAACC,IAAP,CAAYL,OAAZ,EAAqBM,OAArB,CAA6B,UAACC,MAAD,EAAY;AACvC,0BAA2DP,OAAO,CAACO,MAAD,CAAlE;AAAA,QAAQC,OAAR,mBAAQA,OAAR;AAAA,QAAiBC,OAAjB,mBAAiBA,OAAjB;AAAA,gDAA0BC,oBAA1B;AAAA,QAA0BA,oBAA1B,sCAAiD,KAAjD;;AACA,QAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACjB,CAAD,EAAO;AAClC,UAAMkB,aAAa,GAAGhB,sBAAU,CAACK,MAAD,CAAV,GAAqBA,MAAM,EAA3B,GAAgCA,MAAtD;AACA,UACE,CAACS,oBAAD,IACAE,aAAa,CAACC,IAAd,KAAuBV,QAAQ,CAACW,aAFlC,EAIE;AACFpB,MAAAA,CAAC,CAACG,cAAF;AACAY,MAAAA,OAAO,CAACG,aAAD,CAAP;AACD,KATD;;AAUAG,IAAAA,2BAAO,CACLR,MADK;AAEHS,MAAAA,OAAO,EAAEd,YAAY;AAFlB,OAEyBM,OAFzB,GAGLG,oBAHK,CAAP;AAKD,GAjBD;AAkBD,CAvBD;;AAyBA,IAAMM,iBAAiB,GAAG,SAApBA,iBAAoB,GAAkB;AAAA,MAAjBjB,OAAiB,uEAAP,EAAO;AAC1CI,EAAAA,MAAM,CAACC,IAAP,CAAYL,OAAZ,EAAqBM,OAArB,CAA6B,UAACC,MAAD,EAAY;AACvCQ,IAAAA,2BAAO,CAACG,MAAR,CAAeX,MAAf;AACD,GAFD;AAGD,CAJD;;AAMA,IAAMY,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAM,IAAN;AAAA,CAAb;;IAEqBC;AAGnB,wBAA0B;AAAA,QAAdZ,OAAc,uEAAJ,EAAI;;AAAA;;AAAA,uDAFlB,EAEkB;;AACxB,SAAKA,OAAL,mCAAoBjB,cAApB,GAAuCiB,OAAvC;AAEA,QAAQhB,WAAR,GAAwB,KAAKgB,OAA7B,CAAQhB,WAAR;AAEA,SAAK6B,WAAL;AACEC,MAAAA,OAAO,EAAE9B,WAAW,KAAK,YAAhB,IAAgC,UAD3C;AAEE+B,MAAAA,UAAU,EAAE/B,WAAW,KAAK,UAAhB,IAA8B,MAF5C;AAGEgC,MAAAA,SAAS,EAAEhC,WAAW,KAAK,YAAhB,IAAgC,MAH7C;AAIEiC,MAAAA,SAAS,EAAEjC,WAAW,KAAK,UAAhB,IAA8B,UAJ3C;AAKEkC,MAAAA,IAAI,EAAE,OALR;AAMEC,MAAAA,GAAG,EAAE,MANP;AAOEC,MAAAA,MAAM,EAAE,OAPV;AAQEC,MAAAA,QAAQ,EAAE,MARZ;AASEC,MAAAA,MAAM,EAAE;AATV,OAUKtB,OAAO,CAACa,WAVb;AAaA,SAAKU,kBAAL,GAA0B,IAA1B;AACA,SAAKC,SAAL,GAAiB,IAAjB;AAEA,SAAKC,UAAL,GAAkB;AAChBC,MAAAA,QAAQ,EAAE,KAAKC,aAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CADM;AAEhBC,MAAAA,IAAI,EAAE,KAAKC,SAAL,CAAeF,IAAf,CAAoB,IAApB,CAFU;AAGhBG,MAAAA,KAAK,EAAE,KAAKC,UAAL,CAAgBJ,IAAhB,CAAqB,IAArB,CAHS;AAIhBK,MAAAA,IAAI,EAAE,KAAKC,SAAL,CAAeN,IAAf,CAAoB,IAApB,CAJU;AAKhBO,MAAAA,IAAI,EAAE,KAAKA,IAAL,CAAUP,IAAV,CAAe,IAAf,CALU;AAMhBQ,MAAAA,KAAK,EAAE;AAAA,eAAM,IAAN;AAAA;AANS,KAAlB;AAQA,SAAKC,aAAL,GAAqB,KAAKA,aAAL,CAAmBT,IAAnB,CAAwB,IAAxB,CAArB;AACA,SAAKU,QAAL,GAAgB,KAAKA,QAAL,CAAcV,IAAd,CAAmB,IAAnB,CAAhB;AACA,SAAKI,UAAL,GAAkB,KAAKA,UAAL,CAAgBJ,IAAhB,CAAqB,IAArB,CAAlB;AACA,SAAKM,SAAL,GAAiB,KAAKA,SAAL,CAAeN,IAAf,CAAoB,IAApB,CAAjB;AACA,SAAKW,aAAL,GAAqB,KAAKA,aAAL,CAAmBX,IAAnB,CAAwB,IAAxB,CAArB;AACA,SAAKE,SAAL,GAAiB,KAAKA,SAAL,CAAeF,IAAf,CAAoB,IAApB,CAAjB;AACA,SAAKD,aAAL,GAAqB,KAAKA,aAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAArB;AACA,SAAKY,SAAL,GAAiB,KAAKA,SAAL,CAAeZ,IAAf,CAAoB,IAApB,CAAjB;AACA,SAAKa,YAAL,GAAoB,KAAKA,YAAL,CAAkBb,IAAlB,CAAuB,IAAvB,CAApB;AACA,SAAKc,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBd,IAAtB,CAA2B,IAA3B,CAAxB;AACD;;;;WAED,4BAAmB;AACjB,UAAMvB,IAAI,GAAG,KAAKkB,kBAAlB;;AACA,iBAAkBoB,eAAG,CAACtC,IAAD,EAAO,CAAC,SAAD,CAAP,EAAoB,EAApB,CAArB;AAAA,UAAQuC,KAAR,QAAQA,KAAR;;AACA,aAAO;AACLvC,QAAAA,IAAI,EAAJA,IADK;AAELuC,QAAAA,KAAK,EAALA;AAFK,OAAP;AAID;;;WAED,oBAAW;AACT,UAAQlD,YAAR,GAAyB,KAAKM,OAA9B,CAAQN,YAAR;AACAC,MAAAA,QAAQ,CAACkD,gBAAT,CAA0B,SAA1B,EAAqC,KAAKR,aAA1C,EAAyD,IAAzD;AACA9C,MAAAA,eAAe,CAAC,KAAKS,OAAL,CAAaR,OAAd,EAAuB,KAAKkD,gBAA5B,EAA8ChD,YAA9C,CAAf;AACD;;;WAED,sBAAa;AACXC,MAAAA,QAAQ,CAACmD,mBAAT,CAA6B,SAA7B,EAAwC,KAAKT,aAA7C,EAA4D,IAA5D;AACA5B,MAAAA,iBAAiB,CAAC,KAAKT,OAAL,CAAaR,OAAd,CAAjB;AACD;;;WAED,uBAAcN,CAAd,EAAiB;AACf,UAAI,CAAC,KAAKqD,aAAL,EAAL,EAA2B;AAC3B,WAAKQ,oBAAL,CAA0B7D,CAA1B;AACD;;;WAED,8BAAqBA,CAArB,EAAwB;AAAA;;AACtB,UAAM8D,OAAO,GAAGC,KAAK,CAACC,OAAN,CAAc,KAAKrC,WAAL,CAAiB3B,CAAC,CAACiE,GAAnB,CAAd,IACZ,KAAKtC,WAAL,CAAiB3B,CAAC,CAACiE,GAAnB,CADY,GAEZ,CAAC,KAAKtC,WAAL,CAAiB3B,CAAC,CAACiE,GAAnB,CAAD,CAFJ;AAGA,aAAOH,OAAO,CAACI,GAAR,CAAY,UAACC,MAAD;AAAA,eACjB,OAAOA,MAAP,KAAkB,QAAlB,GACIpE,cAAc,CAACC,CAAD,EAAI,KAAI,CAACuC,UAAL,CAAgB4B,MAAhB,CAAJ,CADlB,GAEIpE,cAAc,CAACC,CAAD,EAAImE,MAAJ,CAHD;AAAA,OAAZ,CAAP;AAKD;;;WAED,kBAASC,IAAT,EAA2B;AAAA;;AAAA,UAAZC,KAAY,uEAAJ,EAAI;AACzB,UAAMC,UAAU,GAAG,KAAKC,KAAL,CAAWC,SAAX,CACjB,UAACrD,IAAD;AAAA,eACEA,IAAI,CAACsD,uBAAL,CAA6BL,IAA7B,MAAuCM,IAAI,CAACC,2BAD9C;AAAA,OADiB,CAAnB;AAIAP,MAAAA,IAAI,CAACQ,cAAL,GAAsBP,KAAK,CAACQ,OAAN,IAAiBpD,IAAvC;AACA2C,MAAAA,IAAI,CAACU,aAAL,GAAqBT,KAAK,CAACU,MAAN,IAAgBtD,IAArC;;AACA2C,MAAAA,IAAI,CAACY,OAAL,GAAe;AAAA,eAAM,MAAI,CAAC1B,SAAL,CAAec,IAAf,CAAN;AAAA,OAAf;;AACAA,MAAAA,IAAI,CAACa,OAAL,GAAe,YAAM;AACnB,QAAA,MAAI,CAAC3B,SAAL,CAAec,IAAf;AACD,OAFD;;AAGA,UAAIE,UAAU,KAAK,CAAC,CAApB,EAAuB;AACrB,aAAKC,KAAL,CAAWW,IAAX,CAAgBd,IAAhB;AACD,OAFD,MAEO;AACL,aAAKG,KAAL,CAAWY,MAAX,CAAkBb,UAAlB,EAA8B,CAA9B,EAAiCF,IAAjC;AACD;AACF;;;WAED,oBAAWA,IAAX,EAAiB;AACf,UAAMV,KAAK,GAAG,KAAK0B,kBAAL,CAAwBhB,IAAxB,CAAd;AACA,UAAIV,KAAK,GAAG,CAAC,CAAb,EAAgB,KAAKa,KAAL,CAAWY,MAAX,CAAkBzB,KAAlB,EAAyB,CAAzB;AACjB;;;WAED,gBAAO;AACL,UAAQ2B,gBAAR,GAA6B,KAAKvE,OAAlC,CAAQuE,gBAAR;AACAA,MAAAA,gBAAgB;AACjB;;;WAED,mBAAUjB,IAAV,EAAgB;AACd,UAAI,KAAK/B,kBAAL,IAA2B,KAAKA,kBAAL,KAA4B+B,IAA3D,EAAiE;AAC/D,aAAK/B,kBAAL,CAAwByC,aAAxB;AACA,aAAKzC,kBAAL,CAAwBiD,YAAxB,CAAqC,UAArC,EAAiD,CAAC,CAAlD;AACD;;AACD,UAAI,CAAClB,IAAL,EAAW;AACX,WAAK/B,kBAAL,GAA0B+B,IAA1B;AACAA,MAAAA,IAAI,CAACkB,YAAL,CAAkB,UAAlB,EAA8B,CAA9B;AACAlB,MAAAA,IAAI,CAACmB,KAAL;AACAnB,MAAAA,IAAI,CAACQ,cAAL;AACD;;;WAED,qBAAY;AACV,UAAMzD,IAAI,GAAG,KAAKqE,WAAL,EAAb;AACA,WAAKlC,SAAL,CAAenC,IAAf;AACD;;;WAED,qBAAYiD,IAAZ,EAAkB;AAChB,UAAMV,KAAK,GAAG,KAAK0B,kBAAL,CAAwBhB,IAAxB,CAAd;AACA,WAAKqB,YAAL,CAAkB/B,KAAlB;AACD;;;WAED,sBAAaA,KAAb,EAAoB;AAClB,UAAMvC,IAAI,GAAG,KAAKuE,cAAL,CAAoBhC,KAApB,CAAb;AACA,WAAKJ,SAAL,CAAenC,IAAf;AACD;;;WAED,yBAAgB;AACd,UAAMwE,QAAQ,GAAG,KAAKC,eAAL,EAAjB;AACA,WAAKtC,SAAL,CAAeqC,QAAf;AACD;;;WAED,sBAAa;AACX,UAAMxE,IAAI,GAAG,KAAK0E,YAAL,EAAb;AACA,WAAKvC,SAAL,CAAenC,IAAf;AACD;;;WAED,qBAAY;AACV,UAAMA,IAAI,GAAG,KAAK2E,WAAL,EAAb;AACA,WAAKxC,SAAL,CAAenC,IAAf;AACD;;;WAED,wBAAe;AACb,WAAKmC,SAAL,CAAe,KAAKjB,kBAApB;AACD;;;WAED,0BAAiB;AACf,UAAQ0D,gBAAR,GAA6B,KAAKjF,OAAlC,CAAQiF,gBAAR;AACA,WAAK9C,IAAL;AACA8C,MAAAA,gBAAgB;AACjB;;;WAED,8BAAqB;AACnB,UAAQC,oBAAR,GAAiC,KAAKlF,OAAtC,CAAQkF,oBAAR;AACA,WAAK/C,IAAL;AACA+C,MAAAA,oBAAoB;AACrB;;;WAED,uBAAc;AACZ,UAAQC,IAAR,GAAiB,KAAKnF,OAAtB,CAAQmF,IAAR;AACA,UAAMC,YAAY,GAAG,KAAKC,eAAL,EAArB;AACA,UAAMC,iBAAiB,GAAGF,YAAY,GAAG,CAAzC;;AACA,UAAI,CAAC,KAAKG,iBAAL,CAAuBD,iBAAvB,CAAL,EAAgD;AAC9C,eAAOH,IAAI,GAAG,KAAKJ,YAAL,EAAH,GAAyB,KAAKS,cAAL,EAApC;AACD;;AACD,aAAO,KAAKZ,cAAL,CAAoBU,iBAApB,CAAP;AACD;;;WAED,2BAAkB;AAChB,UAAQH,IAAR,GAAiB,KAAKnF,OAAtB,CAAQmF,IAAR;AACA,UAAMC,YAAY,GAAG,KAAKC,eAAL,EAArB;AACA,UAAMI,iBAAiB,GAAGL,YAAY,GAAG,CAAzC;;AACA,UAAI,CAAC,KAAKM,iBAAL,CAAuBD,iBAAvB,CAAL,EAAgD;AAC9C,eAAON,IAAI,GAAG,KAAKH,WAAL,EAAH,GAAwB,KAAKW,kBAAL,EAAnC;AACD;;AACD,aAAO,KAAKf,cAAL,CAAoBa,iBAApB,CAAP;AACD;;;WAED,2BAAkB7C,KAAlB,EAAyB;AACvB,aAAO,KAAKa,KAAL,CAAWmC,MAAX,GAAoBhD,KAA3B;AACD;;;WAED,2BAAkBA,KAAlB,EAAyB;AACvB,aAAOA,KAAK,IAAI,CAAhB;AACD;;;WAED,wBAAeA,KAAf,EAAsB;AACpB,aAAO,KAAKa,KAAL,CAAWb,KAAX,CAAP;AACD;;;WAED,4BAAmBU,IAAnB,EAAyB;AACvB,aAAO,KAAKG,KAAL,CAAWC,SAAX,CAAqB,UAACrD,IAAD;AAAA,eAAUA,IAAI,KAAKiD,IAAnB;AAAA,OAArB,CAAP;AACD;;;WAED,2BAAkB;AAChB,aAAO,KAAKgB,kBAAL,CAAwB3E,QAAQ,CAACW,aAAjC,CAAP;AACD;;;WAED,0BAAiB;AACf,UAAMsC,KAAK,GAAG,KAAKyC,eAAL,EAAd;AACA,aAAOzC,KAAK,GAAG,CAAC,CAAT,IAAc,KAAKa,KAAL,CAAWb,KAAX,CAArB;AACD;;;WAED,yBAAgB;AACd,aAAO,KAAKyC,eAAL,OAA2B,CAAC,CAAnC;AACD;;;WAED,wBAAe;AACb,aAAO,CAAC,CAAC,KAAK5B,KAAL,CAAWmC,MAAb,IAAuB,KAAKnC,KAAL,CAAW,CAAX,CAA9B;AACD;;;WAED,uBAAc;AACZ,aAAO,CAAC,CAAC,KAAKA,KAAL,CAAWmC,MAAb,IAAuB,KAAKnC,KAAL,CAAW,KAAKA,KAAL,CAAWmC,MAAX,GAAoB,CAA/B,CAA9B;AACD;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FocusGroupContext.js","sources":["../../../src/FocusGroup/FocusGroupContext.tsx"],"sourcesContent":["import React from 'react';\n\nexport default React.createContext();\n"],"names":["React","createContext"],"mappings":";;;;;;;;AAEA,qCAAeA,yBAAK,CAACC,aAAN,EAAf;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FocusGroupManager.js","sources":["../../../src/FocusGroup/FocusGroupManager.tsx"],"sourcesContent":["import React, { Component, useEffect } from 'react';\nimport { isFunction } from '@elliemae/ds-utilities';\nimport FocusGroup from './FocusGroup';\nimport FocusGroupContext from './FocusGroupContext';\n\nconst noop = () => null;\n\nexport default class FocusGroupProvider extends Component {\n activated = false;\n\n static defaultProps = {\n exitWhenNoPrevious: false,\n exitWhenNoNext: false,\n keyBindings: {},\n onFocus: noop,\n onExitFocusGroup: noop,\n onFocusPreviousGroup: noop,\n onFocusNextGroup: noop,\n onFocusGroupSet: noop,\n };\n\n constructor(props) {\n super(props);\n\n this.focusGroup = new FocusGroup(props);\n\n props.onFocusGroupSet(this);\n\n this.actions = {\n activate: this.activate.bind(this),\n deactivate: this.deactivate.bind(this),\n register: this.focusGroup.register,\n unregister: this.unregister.bind(this),\n focusFirst: this.focusGroup.focusFirst,\n focusLast: this.focusGroup.focusLast,\n focusItemByIndex: this.focusItemByIndex.bind(this),\n focusItemByNode: this.focusItemByNode.bind(this),\n focus: this.focusGroup.focusCurrent,\n isGroupActive: this.focusGroup.isGroupActive,\n focusNext: this.focusGroup.focusNext,\n focusPrevious: this.focusGroup.focusPrevious,\n };\n }\n\n componentDidMount() {\n const { autoFocusOnMount } = this.props;\n\n this.activate();\n\n if (autoFocusOnMount) {\n setTimeout(() => {\n this.actions.focusFirst();\n }, 0);\n }\n }\n\n componentWillUnmount() {\n this.deactivate();\n }\n\n activate() {\n const { onActivate } = this.props;\n this.focusGroup.activate();\n this.activated = true;\n if (isFunction(onActivate)) onActivate();\n }\n\n deactivate() {\n const { onExitFocusGroup } = this.props;\n this.activated = false;\n this.focusGroup.deactivate();\n if (isFunction(onExitFocusGroup)) {\n onExitFocusGroup();\n }\n }\n\n register(item) {\n this.focusGroup.register(item);\n }\n\n unregister(item) {\n this.focusGroup.unregister(item);\n }\n\n focusItemByIndex(index) {\n if (!this.activated) this.activate();\n setTimeout(() => {\n this.focusGroup.focusByIndex(index);\n }, 200);\n }\n\n focusItemByNode(node) {\n if (!this.activated) this.activate();\n const index = this.focusGroup.getItemIndexByNode(node);\n this.focusItemByIndex(index);\n }\n\n render() {\n const { children } = this.props;\n return (\n <FocusGroupContext.Provider value={this.actions}>\n {children}\n </FocusGroupContext.Provider>\n );\n }\n}\n"],"names":["noop","FocusGroupProvider","props","focusGroup","FocusGroup","onFocusGroupSet","actions","activate","bind","deactivate","register","unregister","focusFirst","focusLast","focusItemByIndex","focusItemByNode","focus","focusCurrent","isGroupActive","focusNext","focusPrevious","autoFocusOnMount","setTimeout","onActivate","activated","isFunction","onExitFocusGroup","item","index","focusByIndex","node","getItemIndexByNode","children","React","FocusGroupContext","Component","exitWhenNoPrevious","exitWhenNoNext","keyBindings","onFocus","onFocusPreviousGroup","onFocusNextGroup"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"focusGroupManagerHoc.js","sources":["../../../src/FocusGroup/focusGroupManagerHoc.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\nimport FocusGroupManager from './FocusGroupManager';\n\nexport default function FocusGroupHoc(WrappedComponent, options = {}) {\n return ({\n onExitFocusGroup,\n onFocusPrevGroup,\n focusKeyBindings,\n ...props\n }) => (\n <FocusGroupManager\n keyBindings={focusKeyBindings}\n onExitFocusGroup={onExitFocusGroup}\n onFocusPrevGroup={onFocusPrevGroup}\n {...options}\n >\n <WrappedComponent {...props} {...options} />\n </FocusGroupManager>\n );\n}\n"],"names":["FocusGroupHoc","WrappedComponent","options","onExitFocusGroup","onFocusPrevGroup","focusKeyBindings","props","React","FocusGroupManager"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIe,SAASA,aAAT,CAAuBC,gBAAvB,EAAuD;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACpE,SAAO;AAAA,QACLC,gBADK,QACLA,gBADK;AAAA,QAELC,gBAFK,QAELA,gBAFK;AAAA,QAGLC,gBAHK,QAGLA,gBAHK;AAAA,QAIFC,KAJE;;AAAA,wBAMLC,wCAACC,4BAAD;AACE,MAAA,WAAW,EAAEH,gBADf;AAEE,MAAA,gBAAgB,EAAEF,gBAFpB;AAGE,MAAA,gBAAgB,EAAEC;AAHpB,OAIMF,OAJN,gBAMEK,wCAAC,gBAAD,mCAAsBD,KAAtB,EAAiCJ,OAAjC,EANF,CANK;AAAA,GAAP;AAeD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFocusGroupItem.js","sources":["../../../src/FocusGroup/useFocusGroupItem.tsx"],"sourcesContent":["import { useContext, useEffect } from 'react';\nimport FocusGroupContext from './FocusGroupContext';\n\nexport default function useFocusGroupItem(ref = {}, props) {\n const { register, unregister, ...otherActions } =\n useContext(FocusGroupContext) || {};\n\n useEffect(() => {\n if (ref.current && register) register(ref.current, props);\n return () => {\n if (ref.current && unregister) unregister(ref.current);\n };\n });\n\n // if the focus item is not wrapped with the focus provider then return null\n if (!register) return {};\n return otherActions;\n}\n\nexport const useFocusGroupWithState = (ref = {}, props) => {\n const { register, unregister, ...otherActions } =\n useContext(FocusGroupContext) || {};\n\n useEffect(() => {\n if (ref && register) register(ref, props);\n return () => {\n if (ref && unregister) unregister(ref);\n };\n }, [ref]);\n\n // if the focus item is not wrapped with the focus provider then return null\n if (!register) return {};\n return otherActions;\n};\n"],"names":["useFocusGroupItem","ref","props","useContext","FocusGroupContext","register","unregister","otherActions","useEffect","current","useFocusGroupWithState"],"mappings":";;;;;;;;;;;;;;AAGe,SAASA,iBAAT,GAA4C;AAAA,MAAjBC,GAAiB,uEAAX,EAAW;AAAA,MAAPC,KAAO;;AACzD,aACEC,gBAAU,CAACC,4BAAD,CAAV,IAAiC,EADnC;AAAA,MAAQC,QAAR,QAAQA,QAAR;AAAA,MAAkBC,UAAlB,QAAkBA,UAAlB;AAAA,MAAiCC,YAAjC;;AAGAC,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIP,GAAG,CAACQ,OAAJ,IAAeJ,QAAnB,EAA6BA,QAAQ,CAACJ,GAAG,CAACQ,OAAL,EAAcP,KAAd,CAAR;AAC7B,WAAO,YAAM;AACX,UAAID,GAAG,CAACQ,OAAJ,IAAeH,UAAnB,EAA+BA,UAAU,CAACL,GAAG,CAACQ,OAAL,CAAV;AAChC,KAFD;AAGD,GALQ,CAAT,CAJyD;;AAYzD,MAAI,CAACJ,QAAL,EAAe,OAAO,EAAP;AACf,SAAOE,YAAP;AACD;IAEYG,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAqB;AAAA,MAApBT,GAAoB,uEAAd,EAAc;AAAA,MAAVC,KAAU;;AACzD,cACEC,gBAAU,CAACC,4BAAD,CAAV,IAAiC,EADnC;AAAA,MAAQC,QAAR,SAAQA,QAAR;AAAA,MAAkBC,UAAlB,SAAkBA,UAAlB;AAAA,MAAiCC,YAAjC;;AAGAC,EAAAA,eAAS,CAAC,YAAM;AACd,QAAIP,GAAG,IAAII,QAAX,EAAqBA,QAAQ,CAACJ,GAAD,EAAMC,KAAN,CAAR;AACrB,WAAO,YAAM;AACX,UAAID,GAAG,IAAIK,UAAX,EAAuBA,UAAU,CAACL,GAAD,CAAV;AACxB,KAFD;AAGD,GALQ,EAKN,CAACA,GAAD,CALM,CAAT,CAJyD;;AAYzD,MAAI,CAACI,QAAL,EAAe,OAAO,EAAP;AACf,SAAOE,YAAP;AACD;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getNextCellPosition.js","sources":["../../../../src/FocusGroup/utils/getNextCellPosition.tsx"],"sourcesContent":["// eslint-disable-next-line max-statements\nexport default function getNextCellPosition({\n grid,\n currentRow = 0,\n currentCell = 0,\n directionY,\n directionX,\n shouldWrapCells,\n shouldWrapRows,\n}) {\n let nextRow = currentRow + directionY;\n let nextCell = currentCell + directionX;\n const rowCount = grid.length;\n const isLeftRight = directionX !== 0;\n\n if (!rowCount) {\n return false;\n }\n\n const cellsLength = grid[0].length;\n\n // moving horizontally\n if (shouldWrapCells && isLeftRight) {\n // to left\n if (nextCell < 0) {\n nextCell = cellsLength - 1;\n nextRow -= 1;\n }\n\n if (nextCell >= cellsLength) {\n nextCell = 0;\n nextRow += 1;\n }\n }\n\n // moving vertically\n if (shouldWrapRows && !isLeftRight) {\n // to top\n if (nextRow < 0) {\n nextCell -= 1;\n nextRow = rowCount - 1;\n if (grid[nextRow] && nextCell >= 0 && !grid[nextRow][nextCell]) {\n nextRow -= 1;\n }\n } else if (nextRow >= rowCount || !grid[nextRow][nextCell]) {\n nextRow = 0;\n nextCell += 1;\n }\n }\n\n return {\n cellIndex: nextCell,\n rowIndex: nextRow,\n };\n}\n"],"names":["getNextCellPosition","grid","currentRow","currentCell","directionY","directionX","shouldWrapCells","shouldWrapRows","nextRow","nextCell","rowCount","length","isLeftRight","cellsLength","cellIndex","rowIndex"],"mappings":";;AAAA;AACe,SAASA,mBAAT,OAQZ;AAAA,MAPDC,IAOC,QAPDA,IAOC;AAAA,6BANDC,UAMC;AAAA,MANDA,UAMC,gCANY,CAMZ;AAAA,8BALDC,WAKC;AAAA,MALDA,WAKC,iCALa,CAKb;AAAA,MAJDC,UAIC,QAJDA,UAIC;AAAA,MAHDC,UAGC,QAHDA,UAGC;AAAA,MAFDC,eAEC,QAFDA,eAEC;AAAA,MADDC,cACC,QADDA,cACC;AACD,MAAIC,OAAO,GAAGN,UAAU,GAAGE,UAA3B;AACA,MAAIK,QAAQ,GAAGN,WAAW,GAAGE,UAA7B;AACA,MAAMK,QAAQ,GAAGT,IAAI,CAACU,MAAtB;AACA,MAAMC,WAAW,GAAGP,UAAU,KAAK,CAAnC;;AAEA,MAAI,CAACK,QAAL,EAAe;AACb,WAAO,KAAP;AACD;;AAED,MAAMG,WAAW,GAAGZ,IAAI,CAAC,CAAD,CAAJ,CAAQU,MAA5B,CAVC;;AAaD,MAAIL,eAAe,IAAIM,WAAvB,EAAoC;AAClC;AACA,QAAIH,QAAQ,GAAG,CAAf,EAAkB;AAChBA,MAAAA,QAAQ,GAAGI,WAAW,GAAG,CAAzB;AACAL,MAAAA,OAAO,IAAI,CAAX;AACD;;AAED,QAAIC,QAAQ,IAAII,WAAhB,EAA6B;AAC3BJ,MAAAA,QAAQ,GAAG,CAAX;AACAD,MAAAA,OAAO,IAAI,CAAX;AACD;AACF,GAxBA;;;AA2BD,MAAID,cAAc,IAAI,CAACK,WAAvB,EAAoC;AAClC;AACA,QAAIJ,OAAO,GAAG,CAAd,EAAiB;AACfC,MAAAA,QAAQ,IAAI,CAAZ;AACAD,MAAAA,OAAO,GAAGE,QAAQ,GAAG,CAArB;;AACA,UAAIT,IAAI,CAACO,OAAD,CAAJ,IAAiBC,QAAQ,IAAI,CAA7B,IAAkC,CAACR,IAAI,CAACO,OAAD,CAAJ,CAAcC,QAAd,CAAvC,EAAgE;AAC9DD,QAAAA,OAAO,IAAI,CAAX;AACD;AACF,KAND,MAMO,IAAIA,OAAO,IAAIE,QAAX,IAAuB,CAACT,IAAI,CAACO,OAAD,CAAJ,CAAcC,QAAd,CAA5B,EAAqD;AAC1DD,MAAAA,OAAO,GAAG,CAAV;AACAC,MAAAA,QAAQ,IAAI,CAAZ;AACD;AACF;;AAED,SAAO;AACLK,IAAAA,SAAS,EAAEL,QADN;AAELM,IAAAA,QAAQ,EAAEP;AAFL,GAAP;AAID;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Group.js","sources":["../../../src/GroupContext/Group.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-state */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { GroupContext } from './GroupContext';\n\nconst getValueItem = (e) => {\n const { target, currentTarget } = e;\n if (target) {\n const { value } = target;\n return value;\n }\n if (currentTarget) {\n const { value } = currentTarget;\n return value;\n }\n return e;\n};\n\nconst toggleItemValue = (array, e) => {\n const newvalue = getValueItem(e);\n const res = array;\n const index = array.indexOf(newvalue);\n\n if (index === -1) {\n res.push(newvalue);\n } else {\n res.splice(index, 1);\n }\n\n return res;\n};\n\nconst { Provider } = GroupContext;\n/** deprecated use CheckableGroup instead */\nclass Group extends Component {\n constructor(props) {\n super(props);\n const { activeValue, disabled } = props;\n this.state = {\n activeValue,\n disabled,\n prevValue: null,\n onChange: this.handleChange.bind(this),\n };\n }\n\n static getDerivedStateFromProps(nextProps, { prevValue }) {\n if (nextProps.activeValue === prevValue) return null;\n return {\n activeValue: nextProps.activeValue,\n prevValue: nextProps.activeValue,\n };\n }\n\n handleChange(e, ...rest) {\n const { multiple, onChange } = this.props;\n const { activeValue } = this.state;\n const value = getValueItem(e);\n let newValue;\n if (multiple) {\n newValue = toggleItemValue(activeValue || [], value);\n } else if (activeValue !== value) {\n // default behaviour it will be toggle the active value\n newValue = value;\n }\n\n this.setState({\n activeValue: newValue,\n });\n\n if (onChange) onChange(newValue, ...rest);\n }\n\n render() {\n const { children } = this.props;\n return <Provider value={this.state}>{children}</Provider>;\n }\n}\n\nGroup.defaultProps = {\n multiple: false,\n};\n\nGroup.propTypes = {\n children: PropTypes.array,\n multiple: PropTypes.bool,\n onChange: PropTypes.func,\n activeValue: PropTypes.oneOfType([PropTypes.array, PropTypes.number]),\n disabled: PropTypes.bool,\n};\n\nexport default Group;\n"],"names":["getValueItem","e","target","currentTarget","value","toggleItemValue","array","newvalue","res","index","indexOf","push","splice","Provider","GroupContext","Group","props","activeValue","disabled","state","prevValue","onChange","handleChange","bind","multiple","newValue","setState","rest","children","React","nextProps","Component","defaultProps","propTypes","PropTypes","bool","func","oneOfType","number"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GroupContext.js","sources":["../../../src/GroupContext/GroupContext.tsx"],"sourcesContent":["import React from 'react';\n\nexport const GroupContext = React.createContext();\n"],"names":["GroupContext","React","createContext"],"mappings":";;;;;;;;;;IAEaA,YAAY,gBAAGC,yBAAK,CAACC,aAAN;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GroupItem.js","sources":["../../../src/GroupContext/GroupItem.tsx"],"sourcesContent":["import React from 'react';\nimport { GroupContext } from './GroupContext';\n\nconst { Consumer } = GroupContext;\n\nconst GroupItem = ({ render }) => (\n <Consumer>{context => render(context)}</Consumer>\n);\n\nexport default GroupItem;\n"],"names":["Consumer","GroupContext","GroupItem","render","React","context"],"mappings":";;;;;;;;;AAGA,IAAQA,QAAR,GAAqBC,sCAArB,CAAQD,QAAR;;IAEME,SAAS,GAAG,SAAZA,SAAY;AAAA,MAAGC,MAAH,QAAGA,MAAH;AAAA,sBAChBC,wCAAC,QAAD,QAAW,UAAAC,OAAO;AAAA,WAAIF,MAAM,CAACE,OAAD,CAAV;AAAA,GAAlB,CADgB;AAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScrollSync.js","sources":["../../../src/ScrollSync/ScrollSync.tsx"],"sourcesContent":["import React, { Component } from 'react';\n\nexport const ScrollSyncContext = React.createContext();\n\nconst { Provider } = ScrollSyncContext;\n\nexport default class ScrollSync extends Component {\n panes = {};\n\n static defaultProps = {\n proportional: true,\n vertical: true,\n horizontal: true,\n enabled: true,\n };\n\n constructor(props) {\n super(props);\n this.syncContext = {\n registerPane: this.registerPane,\n unregisterPane: this.unregisterPane,\n };\n }\n\n registerPane = (node, groups) => {\n groups.forEach((group) => {\n if (!this.panes[group]) {\n this.panes[group] = [];\n }\n\n if (this.panes[group].length > 0) {\n this.syncScrollPosition(this.panes[group][0], node);\n }\n this.panes[group].push(node);\n });\n this.addEvents(node, groups);\n };\n\n unregisterPane = (node, groups) => {\n groups.forEach((group) => {\n if (this.findPane(node, group)) {\n this.removeEvents(node);\n this.panes[group].splice(this.panes[group].indexOf(node), 1);\n }\n });\n };\n\n addEvents = (node, groups) => {\n /* For some reason element.addEventListener doesnt work with document.body */\n node.onscroll = this.handlePaneScroll.bind(this, node, groups); // eslint-disable-line\n };\n\n removeEvents = (node) => {\n /* For some reason element.removeEventListener doesnt work with document.body */\n node.onscroll = null; // eslint-disable-line\n };\n\n findPane = (node, group) => {\n if (!this.panes[group]) {\n return false;\n }\n\n return this.panes[group].find((pane) => pane === node);\n };\n\n handlePaneScroll = (node, groups, e) => {\n const { enabled } = this.props;\n if (this.props.onScroll) this.props.onScroll(e);\n\n if (!enabled) return;\n\n window.requestAnimationFrame(() => {\n this.syncScrollPositions(node, groups);\n });\n };\n\n syncScrollPositions = (scrolledPane, groups) => {\n groups.forEach((group) => {\n this.panes[group].forEach((pane) => {\n /* For all panes beside the currently scrolling one */\n if (scrolledPane !== pane) {\n /* Remove event listeners from the node that we'll manipulate */\n this.removeEvents(pane, group);\n this.syncScrollPosition(scrolledPane, pane);\n /* Re-attach event listeners after we're done scrolling */\n window.requestAnimationFrame(() => {\n this.addEvents(pane, groups);\n });\n }\n });\n });\n };\n\n syncScrollPosition(scrolledPane, pane) {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = scrolledPane;\n\n const scrollTopOffset = scrollHeight - clientHeight;\n const scrollLeftOffset = scrollWidth - clientWidth;\n\n const { proportional, vertical, horizontal } = this.props;\n\n /* Calculate the actual pane height */\n const paneHeight = pane.scrollHeight - clientHeight;\n const paneWidth = pane.scrollWidth - clientWidth;\n /* Adjust the scrollTop position of it accordingly */\n if (vertical && scrollTopOffset > 0) {\n pane.scrollTop = proportional\n ? (paneHeight * scrollTop) / scrollTopOffset\n : scrollTop; // eslint-disable-line\n }\n if (horizontal && scrollLeftOffset > 0) {\n pane.scrollLeft = proportional\n ? (paneWidth * scrollLeft) / scrollLeftOffset\n : scrollLeft; // eslint-disable-line\n }\n }\n\n render() {\n const { children } = this.props;\n return (\n <Provider value={this.syncContext}>\n {React.Children.only(children)}\n </Provider>\n );\n }\n}\n"],"names":["ScrollSyncContext","React","createContext","Provider","ScrollSync","props","node","groups","forEach","group","panes","length","syncScrollPosition","push","addEvents","findPane","removeEvents","splice","indexOf","onscroll","handlePaneScroll","bind","find","pane","e","enabled","onScroll","window","requestAnimationFrame","syncScrollPositions","scrolledPane","syncContext","registerPane","unregisterPane","scrollTop","scrollHeight","clientHeight","scrollLeft","scrollWidth","clientWidth","scrollTopOffset","scrollLeftOffset","proportional","vertical","horizontal","paneHeight","paneWidth","children","Children","only","Component"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScrollSyncPane.js","sources":["../../../src/ScrollSync/ScrollSyncPane.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React, { Component } from 'react';\nimport { ScrollSyncContext } from './ScrollSync';\n\n/**\n * MODIFIED FROM react-scroll-sync\n *\n * ScrollSyncPane Component\n *\n * Wrap your content in it to keep its scroll position in sync with other panes\n *\n * @param groups\n * @example ./example.md\n */\nclass ScrollSyncPane extends Component {\n static defaultProps = {\n group: 'default',\n enabled: true,\n };\n\n componentWillUnmount() {\n const { enabled, group, syncContext } = this.props;\n const { unregisterPane } = syncContext;\n\n if (enabled) unregisterPane(this.node, this.toArray(group));\n }\n\n toArray = groups => [].concat(groups);\n\n render() {\n const { children, group, syncContext, notPaginated } = this.props;\n const { registerPane } = syncContext;\n\n return children({\n registerPane: node => {\n if (notPaginated) {\n const virtualizedBody = node.querySelector(\n '.virtualized-body-wrapper',\n );\n if (virtualizedBody) {\n registerPane(virtualizedBody, this.toArray(group));\n }\n }\n return registerPane(node, this.toArray(group));\n },\n });\n }\n}\n\nexport default props => (\n <ScrollSyncContext.Consumer>\n {context => <ScrollSyncPane {...props} syncContext={context} />}\n </ScrollSyncContext.Consumer>\n);\n"],"names":["ScrollSyncPane","groups","concat","props","enabled","group","syncContext","unregisterPane","node","toArray","children","notPaginated","registerPane","virtualizedBody","querySelector","Component","React","ScrollSyncContext","context"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACMA;;;;;;;;;;;;;;;;sGAaM,UAAAC,MAAM;AAAA,aAAI,GAAGC,MAAH,CAAUD,MAAV,CAAJ;AAAA;;;;;;;WAPhB,gCAAuB;AACrB,wBAAwC,KAAKE,KAA7C;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,KAAjB,eAAiBA,KAAjB;AAAA,UAAwBC,WAAxB,eAAwBA,WAAxB;AACA,UAAQC,cAAR,GAA2BD,WAA3B,CAAQC,cAAR;AAEA,UAAIH,OAAJ,EAAaG,cAAc,CAAC,KAAKC,IAAN,EAAY,KAAKC,OAAL,CAAaJ,KAAb,CAAZ,CAAd;AACd;;;WAID,kBAAS;AAAA;;AACP,yBAAuD,KAAKF,KAA5D;AAAA,UAAQO,QAAR,gBAAQA,QAAR;AAAA,UAAkBL,KAAlB,gBAAkBA,KAAlB;AAAA,UAAyBC,WAAzB,gBAAyBA,WAAzB;AAAA,UAAsCK,YAAtC,gBAAsCA,YAAtC;AACA,UAAQC,aAAR,GAAyBN,WAAzB,CAAQM,YAAR;AAEA,aAAOF,QAAQ,CAAC;AACdE,QAAAA,YAAY,EAAE,sBAAAJ,IAAI,EAAI;AACpB,cAAIG,YAAJ,EAAkB;AAChB,gBAAME,eAAe,GAAGL,IAAI,CAACM,aAAL,CACtB,2BADsB,CAAxB;;AAGA,gBAAID,eAAJ,EAAqB;AACnBD,cAAAA,aAAY,CAACC,eAAD,EAAkB,MAAI,CAACJ,OAAL,CAAaJ,KAAb,CAAlB,CAAZ;AACD;AACF;;AACD,iBAAOO,aAAY,CAACJ,IAAD,EAAO,MAAI,CAACC,OAAL,CAAaJ,KAAb,CAAP,CAAnB;AACD;AAXa,OAAD,CAAf;AAaD;;;;EAhC0BU;;oCAAvBf,gCACkB;AACpBK,EAAAA,KAAK,EAAE,SADa;AAEpBD,EAAAA,OAAO,EAAE;AAFW;;AAkCxB,wBAAe,UAAAD,KAAK;AAAA,sBAClBa,wCAACC,uCAAD,CAAmB,QAAnB,QACG,UAAAC,OAAO;AAAA,wBAAIF,wCAAC,cAAD,mCAAoBb,KAApB;AAA2B,MAAA,WAAW,EAAEe;AAAxC,OAAJ;AAAA,GADV,CADkB;AAAA,CAApB;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScrollSyncProvider.js","sources":["../../../src/ScrollSync/ScrollSyncProvider.tsx"],"sourcesContent":["import React from 'react';\nimport raf from 'raf';\nimport PropTypes from 'prop-types';\n\nconst ScrollSyncContext = React.createContext();\n\nconst { Provider } = ScrollSyncContext;\n\nfunction ScrollSyncProvider({ enabled, horizontal, vertical, children }) {\n const panes = useRef();\n\n const registerPane = (node, groups) => {\n groups.forEach(group => {\n if (!this.panes[group]) {\n this.panes[group] = [];\n }\n\n if (!this.findPane(node, group)) {\n if (this.panes[group].length > 0) {\n this.syncScrollPosition(this.panes[group][0], node);\n }\n this.panes[group].push(node);\n }\n });\n this.addEvents(node, groups);\n };\n const unregisterPane = (node, groups) => {\n groups.forEach(group => {\n if (this.findPane(node, group)) {\n this.removeEvents(node);\n this.panes[group].splice(this.panes[group].indexOf(node), 1);\n }\n });\n };\n const addEvents = (node, groups) => {\n /* For some reason element.addEventListener doesnt work with document.body */\n node.onscroll = this.handlePaneScroll.bind(this, node, groups); // eslint-disable-line\n };\n const removeEvents = node => {\n /* For some reason element.removeEventListener doesnt work with document.body */\n node.onscroll = null; // eslint-disable-line\n };\n const findPane = (node, group) => {\n if (!this.panes[group]) {\n return false;\n }\n\n return this.panes[group].find(pane => pane === node);\n };\n const handlePaneScroll = (node, groups) => {\n if (!enabled) return;\n\n window.requestAnimationFrame(() => {\n this.syncScrollPositions(node, groups);\n });\n };\n const syncScrollPositions = (scrolledPane, groups) => {\n groups.forEach(group => {\n this.panes[group].forEach(pane => {\n /* For all panes beside the currently scrolling one */\n if (scrolledPane !== pane) {\n /* Remove event listeners from the node that we'll manipulate */\n this.removeEvents(pane, group);\n this.syncScrollPosition(scrolledPane, pane);\n /* Re-attach event listeners after we're done scrolling */\n window.requestAnimationFrame(() => {\n this.addEvents(pane, groups);\n });\n }\n });\n });\n };\n const syncScrollPosition = raf((scrolledPane, pane) => {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollLeft,\n scrollWidth,\n clientWidth,\n } = scrolledPane;\n\n const scrollTopOffset = scrollHeight - clientHeight;\n const scrollLeftOffset = scrollWidth - clientWidth;\n\n const { proportional, vertical, horizontal } = this.props;\n\n /* Calculate the actual pane height */\n const paneHeight = pane.scrollHeight - clientHeight;\n const paneWidth = pane.scrollWidth - clientWidth;\n /* Adjust the scrollTop position of it accordingly */\n if (vertical && scrollTopOffset > 0) {\n pane.scrollTop = proportional\n ? (paneHeight * scrollTop) / scrollTopOffset\n : scrollTop; // eslint-disable-line\n }\n if (horizontal && scrollLeftOffset > 0) {\n pane.scrollLeft = proportional\n ? (paneWidth * scrollLeft) / scrollLeftOffset\n : scrollLeft; // eslint-disable-line\n }\n });\n\n return <Provider>{children}</Provider>;\n}\n\nScrollSyncProvider.propTypes = {};\nScrollSyncProvider.defaultProps = {};\n\nexport default ScrollSyncProvider;\n"],"names":["ScrollSyncContext","React","createContext","Provider","ScrollSyncProvider","enabled","horizontal","vertical","children","useRef","raf","scrolledPane","pane","scrollTop","scrollHeight","clientHeight","scrollLeft","scrollWidth","clientWidth","scrollTopOffset","scrollLeftOffset","props","proportional","paneHeight","paneWidth","propTypes","defaultProps"],"mappings":";;;;;;;;;;AAIA,IAAMA,iBAAiB,gBAAGC,yBAAK,CAACC,aAAN,EAA1B;AAEA,IAAQC,QAAR,GAAqBH,iBAArB,CAAQG,QAAR;;AAEA,SAASC,kBAAT,OAAyE;AAAA;;AAAA,OAA3CC,OAA2C;AAAA,WAAlCC,UAAkC;AAAA,WAAtBC,QAAsB;AAAA,UAAZC,QAAY,QAAZA;AAC3D,EAAcC,MAAM;;AA+DpB,EAA2BC,uBAAG,CAAC,UAACC,YAAD,EAAeC,IAAf,EAAwB;AACrD,QACEC,SADF,GAOIF,YAPJ,CACEE,SADF;AAAA,QAEEC,YAFF,GAOIH,YAPJ,CAEEG,YAFF;AAAA,QAGEC,YAHF,GAOIJ,YAPJ,CAGEI,YAHF;AAAA,QAIEC,UAJF,GAOIL,YAPJ,CAIEK,UAJF;AAAA,QAKEC,WALF,GAOIN,YAPJ,CAKEM,WALF;AAAA,QAMEC,WANF,GAOIP,YAPJ,CAMEO,WANF;AASA,QAAMC,eAAe,GAAGL,YAAY,GAAGC,YAAvC;AACA,QAAMK,gBAAgB,GAAGH,WAAW,GAAGC,WAAvC;AAEA,sBAA+C,KAAI,CAACG,KAApD;AAAA,QAAQC,YAAR,eAAQA,YAAR;AAAA,QAAsBf,QAAtB,eAAsBA,QAAtB;AAAA,QAAgCD,UAAhC,eAAgCA,UAAhC;AAEA;;AACA,QAAMiB,UAAU,GAAGX,IAAI,CAACE,YAAL,GAAoBC,YAAvC;AACA,QAAMS,SAAS,GAAGZ,IAAI,CAACK,WAAL,GAAmBC,WAArC;AACA;;AACA,QAAIX,QAAQ,IAAIY,eAAe,GAAG,CAAlC,EAAqC;AACnCP,MAAAA,IAAI,CAACC,SAAL,GAAiBS,YAAY,GACxBC,UAAU,GAAGV,SAAd,GAA2BM,eADF,GAEzBN,SAFJ,CADmC;AAIpC;;AACD,QAAIP,UAAU,IAAIc,gBAAgB,GAAG,CAArC,EAAwC;AACtCR,MAAAA,IAAI,CAACI,UAAL,GAAkBM,YAAY,GACzBE,SAAS,GAAGR,UAAb,GAA2BI,gBADD,GAE1BJ,UAFJ,CADsC;AAIvC;AACF,GA7B6B;AA+B9B,sBAAOf,wCAAC,QAAD,QAAWO,QAAX,CAAP;AACD;;AAEDJ,kBAAkB,CAACqB,SAAnB,GAA+B,EAA/B;AACArB,kBAAkB,CAACsB,YAAnB,GAAkC,EAAlC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useScrollSync.js","sources":["../../../src/ScrollSync/useScrollSync.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction useScrollSync(props) {\n return {};\n}\n\nuseScrollSync.propTypes = {};\nuseScrollSync.defaultProps = {};\n\nexport default useScrollSync;\n"],"names":["useScrollSync","props","propTypes","defaultProps"],"mappings":";;AAGA,SAASA,aAAT,CAAuBC,KAAvB,EAA8B;AAC5B,SAAO,EAAP;AACD;;AAEDD,aAAa,CAACE,SAAd,GAA0B,EAA1B;AACAF,aAAa,CAACG,YAAd,GAA6B,EAA7B;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sources":["../../src/constants.tsx"],"sourcesContent":["export const DEFAULT_DELAY_OPEN = 200;\nexport const DEFAULT_DELAY_CLOSE = 300;\nexport const sizeOptions = ['small', 'medium', 'large', 'x-large'];\n"],"names":["DEFAULT_DELAY_OPEN","DEFAULT_DELAY_CLOSE","sizeOptions"],"mappings":";;;;IAAaA,kBAAkB,GAAG;IACrBC,mBAAmB,GAAG;IACtBC,WAAW,GAAG,CAAC,OAAD,EAAU,QAAV,EAAoB,OAApB,EAA6B,SAA7B;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createInstancePlugin.js","sources":["../../../src/createDataInstance/createInstancePlugin.tsx"],"sourcesContent":["function getDecoratorsFromHooks(hooks, decorators) {\n const nextDecorators = { ...decorators };\n\n Object.keys(hooks).forEach(decorator => {\n if (Array.isArray(decorators[decorator])) {\n nextDecorators[decorator] = [...decorators[decorator], hooks[decorator]];\n } else {\n nextDecorators[decorator] = hooks[decorator];\n }\n });\n\n return nextDecorators;\n}\n\nexport default function createInstancePlugin(name, hooks) {\n return decorators => getDecoratorsFromHooks(hooks, decorators);\n}\n"],"names":["getDecoratorsFromHooks","hooks","decorators","nextDecorators","Object","keys","forEach","decorator","Array","isArray","createInstancePlugin","name"],"mappings":";;;;;;;;;;;;;;AAAA,SAASA,sBAAT,CAAgCC,KAAhC,EAAuCC,UAAvC,EAAmD;AACjD,MAAMC,cAAc,qBAAQD,UAAR,CAApB;;AAEAE,EAAAA,MAAM,CAACC,IAAP,CAAYJ,KAAZ,EAAmBK,OAAnB,CAA2B,UAAAC,SAAS,EAAI;AACtC,QAAIC,KAAK,CAACC,OAAN,CAAcP,UAAU,CAACK,SAAD,CAAxB,CAAJ,EAA0C;AACxCJ,MAAAA,cAAc,CAACI,SAAD,CAAd,oDAAgCL,UAAU,CAACK,SAAD,CAA1C,IAAuDN,KAAK,CAACM,SAAD,CAA5D;AACD,KAFD,MAEO;AACLJ,MAAAA,cAAc,CAACI,SAAD,CAAd,GAA4BN,KAAK,CAACM,SAAD,CAAjC;AACD;AACF,GAND;AAQA,SAAOJ,cAAP;AACD;;AAEc,SAASO,oBAAT,CAA8BC,IAA9B,EAAoCV,KAApC,EAA2C;AACxD,SAAO,UAAAC,UAAU;AAAA,WAAIF,sBAAsB,CAACC,KAAD,EAAQC,UAAR,CAA1B;AAAA,GAAjB;AACD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createInstanceRef.js","sources":["../../../src/createDataInstance/createInstanceRef.tsx"],"sourcesContent":["import { v4 as uuidv4 } from 'uuid';\nimport { useMemo, useRef, useState } from 'react';\nimport { orderBy } from 'lodash';\nimport {\n mergeInstance,\n registerHotKeysHookToInstance,\n registerStateHookToInstance,\n} from './utils';\n\nconst defaultDecorators = {\n instance: [],\n state: [],\n hotKeys: [],\n renderers: [],\n composeData: [],\n};\n\nexport default function createDataInstanceRef({\n uuid: uuidProp,\n data,\n renderers,\n plugins,\n customDecorators,\n ...props\n}) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const instance = useRef();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [uuid] = useState(uuidProp || (() => uuidv4()));\n\n instance.current = {\n uuid,\n state: {},\n actions: {},\n hotKeys: {}, // keyboard hotkeys to run specific actions\n originalData: data,\n records: [], // item abstraction with meta data for originalData\n renderers,\n ref(key) {\n // eslint-disable-next-line no-return-assign\n return (node) => (instance.current.refs[key] = node);\n },\n getInstance() {\n return instance.current;\n },\n props,\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const decorators = useMemo(() => {\n let nextDecorators = { ...defaultDecorators, ...customDecorators };\n\n plugins.forEach((plugin) => {\n if (!plugin) return;\n nextDecorators = plugin(nextDecorators);\n });\n\n Object.keys(nextDecorators).forEach((key) => {\n if (Array.isArray(nextDecorators[key]))\n nextDecorators[key] = orderBy(\n nextDecorators[key],\n (item) => item.order,\n );\n });\n\n return nextDecorators;\n }, []); // the plugins are defined on creation, but not changed at runtime\n\n // todo: test if getting the hooks without registering them\n // here would be beneficial to memoize instance and squeeze performance\n instance.current = decorators.instance.reduce(\n mergeInstance,\n instance.current,\n );\n instance.current = decorators.state.reduce(\n registerStateHookToInstance,\n instance.current,\n );\n instance.current = decorators.hotKeys.reduce(\n registerHotKeysHookToInstance,\n instance.current,\n );\n instance.current.renderers = decorators.renderers.reduce(\n (result, decorator) => decorator(result, instance.current),\n renderers,\n );\n\n return { instance, decorators };\n}\n"],"names":["defaultDecorators","instance","state","hotKeys","renderers","composeData","createDataInstanceRef","uuidProp","uuid","data","plugins","customDecorators","props","useRef","useState","uuidv4","current","actions","originalData","records","ref","key","node","refs","getInstance","decorators","useMemo","nextDecorators","forEach","plugin","Object","keys","Array","isArray","orderBy","item","order","reduce","mergeInstance","registerStateHookToInstance","registerHotKeysHookToInstance","result","decorator"],"mappings":";;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,iBAAiB,GAAG;AACxBC,EAAAA,QAAQ,EAAE,EADc;AAExBC,EAAAA,KAAK,EAAE,EAFiB;AAGxBC,EAAAA,OAAO,EAAE,EAHe;AAIxBC,EAAAA,SAAS,EAAE,EAJa;AAKxBC,EAAAA,WAAW,EAAE;AALW,CAA1B;AAQe,SAASC,qBAAT,OAOZ;AAAA,MANKC,QAML,QANDC,IAMC;AAAA,MALDC,IAKC,QALDA,IAKC;AAAA,MAJDL,SAIC,QAJDA,SAIC;AAAA,MAHDM,OAGC,QAHDA,OAGC;AAAA,MAFDC,gBAEC,QAFDA,gBAEC;AAAA,MADEC,KACF;;AACD;AACA,MAAMX,QAAQ,GAAGY,YAAM,EAAvB,CAFC;;AAID,kBAAeC,cAAQ,CAACP,QAAQ,IAAK;AAAA,WAAMQ,OAAM,EAAZ;AAAA,GAAd,CAAvB;AAAA;AAAA,MAAOP,MAAP;;AAEAP,EAAAA,QAAQ,CAACe,OAAT,GAAmB;AACjBR,IAAAA,IAAI,EAAJA,MADiB;AAEjBN,IAAAA,KAAK,EAAE,EAFU;AAGjBe,IAAAA,OAAO,EAAE,EAHQ;AAIjBd,IAAAA,OAAO,EAAE,EAJQ;AAIJ;AACbe,IAAAA,YAAY,EAAET,IALG;AAMjBU,IAAAA,OAAO,EAAE,EANQ;AAMJ;AACbf,IAAAA,SAAS,EAATA,SAPiB;AAQjBgB,IAAAA,GARiB,eAQbC,GARa,EAQR;AACP;AACA,aAAO,UAACC,IAAD;AAAA,eAAWrB,QAAQ,CAACe,OAAT,CAAiBO,IAAjB,CAAsBF,GAAtB,IAA6BC,IAAxC;AAAA,OAAP;AACD,KAXgB;AAYjBE,IAAAA,WAZiB,yBAYH;AACZ,aAAOvB,QAAQ,CAACe,OAAhB;AACD,KAdgB;AAejBJ,IAAAA,KAAK,EAALA;AAfiB,GAAnB,CANC;;AAyBD,MAAMa,UAAU,GAAGC,aAAO,CAAC,YAAM;AAC/B,QAAIC,cAAc,mCAAQ3B,iBAAR,GAA8BW,gBAA9B,CAAlB;;AAEAD,IAAAA,OAAO,CAACkB,OAAR,CAAgB,UAACC,MAAD,EAAY;AAC1B,UAAI,CAACA,MAAL,EAAa;AACbF,MAAAA,cAAc,GAAGE,MAAM,CAACF,cAAD,CAAvB;AACD,KAHD;AAKAG,IAAAA,MAAM,CAACC,IAAP,CAAYJ,cAAZ,EAA4BC,OAA5B,CAAoC,UAACP,GAAD,EAAS;AAC3C,UAAIW,KAAK,CAACC,OAAN,CAAcN,cAAc,CAACN,GAAD,CAA5B,CAAJ,EACEM,cAAc,CAACN,GAAD,CAAd,GAAsBa,cAAO,CAC3BP,cAAc,CAACN,GAAD,CADa,EAE3B,UAACc,IAAD;AAAA,eAAUA,IAAI,CAACC,KAAf;AAAA,OAF2B,CAA7B;AAIH,KAND;AAQA,WAAOT,cAAP;AACD,GAjByB,EAiBvB,EAjBuB,CAA1B,CAzBC;AA4CD;AACA;;AACA1B,EAAAA,QAAQ,CAACe,OAAT,GAAmBS,UAAU,CAACxB,QAAX,CAAoBoC,MAApB,CACjBC,sCADiB,EAEjBrC,QAAQ,CAACe,OAFQ,CAAnB;AAIAf,EAAAA,QAAQ,CAACe,OAAT,GAAmBS,UAAU,CAACvB,KAAX,CAAiBmC,MAAjB,CACjBE,oDADiB,EAEjBtC,QAAQ,CAACe,OAFQ,CAAnB;AAIAf,EAAAA,QAAQ,CAACe,OAAT,GAAmBS,UAAU,CAACtB,OAAX,CAAmBkC,MAAnB,CACjBG,sDADiB,EAEjBvC,QAAQ,CAACe,OAFQ,CAAnB;AAIAf,EAAAA,QAAQ,CAACe,OAAT,CAAiBZ,SAAjB,GAA6BqB,UAAU,CAACrB,SAAX,CAAqBiC,MAArB,CAC3B,UAACI,MAAD,EAASC,SAAT;AAAA,WAAuBA,SAAS,CAACD,MAAD,EAASxC,QAAQ,CAACe,OAAlB,CAAhC;AAAA,GAD2B,EAE3BZ,SAF2B,CAA7B;AAKA,SAAO;AAAEH,IAAAA,QAAQ,EAARA,QAAF;AAAYwB,IAAAA,UAAU,EAAVA;AAAZ,GAAP;AACD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/createDataInstance/utils.tsx"],"sourcesContent":["export const reducePropsGetter = (decorators = [], grid) => (\n props = {},\n extraParams,\n) => {\n let nextProps = props;\n decorators.forEach((decorator) => {\n nextProps = decorator(nextProps, grid, extraParams);\n });\n return nextProps;\n};\n\n/* eslint-disable-next-line max-params */\nexport function evaluateTransforms(\n transforms,\n value,\n extraParams = {},\n props = {},\n grid,\n) {\n let nextProps = props;\n transforms.forEach((transform) => {\n nextProps = transform(value, extraParams, nextProps, grid);\n });\n return nextProps;\n}\n\n/* eslint-disable-next-line max-params */\nexport function evaluateFormatters(formatters, value, extraParams = {}, grid) {\n return formatters.reduce(\n (result, formatter) => formatter(result, extraParams, grid),\n value,\n );\n}\n\nexport function composeFormatters(\n formatters,\n instance,\n getItemValue = (record) => record.data.name,\n) {\n // todo: make the formatters subscribe to the item props instead of getting the whole instance\n // todo: addd should formatter update to memoize specific ones\n return (props) =>\n formatters.reduce(\n (result, formatter) => formatter(result, props, instance),\n getItemValue(props.record),\n );\n}\n\nexport const applyDecorators = (subject, decorators = [], ...args) =>\n decorators.reduce(\n (nextSubject, decorator) => decorator(nextSubject, ...args),\n subject,\n );\n\nexport const decorateColumns = (columns, decorators, grid) => {\n const nextColumns = applyDecorators(\n columns,\n decorators.decorateColumns,\n grid,\n );\n return nextColumns.map((column, index) =>\n applyDecorators(column, decorators.decorateColumn, grid, index),\n );\n};\n\nexport const mergeInstance = (instance, instanceHook) => ({\n ...instance,\n ...instanceHook(instance),\n});\n\nexport const registerStateHookToInstance = (instance, stateHook) => {\n const { state, actions } = stateHook(instance);\n return {\n ...instance,\n state: {\n ...instance.state,\n ...state,\n },\n actions: {\n ...instance.actions,\n ...actions,\n },\n };\n};\n\nconst reduceHotKey = (\n instance,\n { key, handler, options, allowDocumentHandler },\n) => ({\n ...instance,\n hotKeys: {\n ...instance.hotKeys,\n [key]: { handler, options, allowDocumentHandler },\n },\n});\n\nexport const registerHotKeysHookToInstance = (instance, hotKeysHook) => {\n const hotKeys = hotKeysHook(instance);\n if (Array.isArray(hotKeys)) {\n return hotKeys.reduce(reduceHotKey, instance);\n }\n return reduceHotKey(instance, hotKeys);\n};\n"],"names":["reducePropsGetter","decorators","grid","props","extraParams","nextProps","forEach","decorator","evaluateTransforms","transforms","value","transform","evaluateFormatters","formatters","reduce","result","formatter","composeFormatters","instance","getItemValue","record","data","name","applyDecorators","subject","args","nextSubject","decorateColumns","columns","nextColumns","map","column","index","decorateColumn","mergeInstance","instanceHook","registerStateHookToInstance","stateHook","state","actions","reduceHotKey","key","handler","options","allowDocumentHandler","hotKeys","registerHotKeysHookToInstance","hotKeysHook","Array","isArray"],"mappings":";;;;;;;;;;;;;;IAAaA,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,MAACC,UAAD,uEAAc,EAAd;AAAA,MAAkBC,IAAlB;AAAA,SAA2B,YAGvD;AAAA,QAFHC,KAEG,uEAFK,EAEL;AAAA,QADHC,WACG;AACH,QAAIC,SAAS,GAAGF,KAAhB;AACAF,IAAAA,UAAU,CAACK,OAAX,CAAmB,UAACC,SAAD,EAAe;AAChCF,MAAAA,SAAS,GAAGE,SAAS,CAACF,SAAD,EAAYH,IAAZ,EAAkBE,WAAlB,CAArB;AACD,KAFD;AAGA,WAAOC,SAAP;AACD,GATgC;AAAA;AAWjC;;AACO,SAASG,kBAAT,CACLC,UADK,EAELC,KAFK,EAML;AAAA,MAHAN,WAGA,uEAHc,EAGd;AAAA,MAFAD,KAEA,uEAFQ,EAER;AAAA,MADAD,IACA;AACA,MAAIG,SAAS,GAAGF,KAAhB;AACAM,EAAAA,UAAU,CAACH,OAAX,CAAmB,UAACK,SAAD,EAAe;AAChCN,IAAAA,SAAS,GAAGM,SAAS,CAACD,KAAD,EAAQN,WAAR,EAAqBC,SAArB,EAAgCH,IAAhC,CAArB;AACD,GAFD;AAGA,SAAOG,SAAP;AACD;AAED;;AACO,SAASO,kBAAT,CAA4BC,UAA5B,EAAwCH,KAAxC,EAAuE;AAAA,MAAxBN,WAAwB,uEAAV,EAAU;AAAA,MAANF,IAAM;AAC5E,SAAOW,UAAU,CAACC,MAAX,CACL,UAACC,MAAD,EAASC,SAAT;AAAA,WAAuBA,SAAS,CAACD,MAAD,EAASX,WAAT,EAAsBF,IAAtB,CAAhC;AAAA,GADK,EAELQ,KAFK,CAAP;AAID;AAEM,SAASO,iBAAT,CACLJ,UADK,EAELK,QAFK,EAIL;AAAA,MADAC,YACA,uEADe,UAACC,MAAD;AAAA,WAAYA,MAAM,CAACC,IAAP,CAAYC,IAAxB;AAAA,GACf;AACA;AACA;AACA,SAAO,UAACnB,KAAD;AAAA,WACLU,UAAU,CAACC,MAAX,CACE,UAACC,MAAD,EAASC,SAAT;AAAA,aAAuBA,SAAS,CAACD,MAAD,EAASZ,KAAT,EAAgBe,QAAhB,CAAhC;AAAA,KADF,EAEEC,YAAY,CAAChB,KAAK,CAACiB,MAAP,CAFd,CADK;AAAA,GAAP;AAKD;IAEYG,eAAe,GAAG,SAAlBA,eAAkB,CAACC,OAAD;AAAA,MAAUvB,UAAV,uEAAuB,EAAvB;;AAAA,oCAA8BwB,IAA9B;AAA8BA,IAAAA,IAA9B;AAAA;;AAAA,SAC7BxB,UAAU,CAACa,MAAX,CACE,UAACY,WAAD,EAAcnB,SAAd;AAAA,WAA4BA,SAAS,MAAT,UAAUmB,WAAV,SAA0BD,IAA1B,EAA5B;AAAA,GADF,EAEED,OAFF,CAD6B;AAAA;IAMlBG,eAAe,GAAG,SAAlBA,eAAkB,CAACC,OAAD,EAAU3B,UAAV,EAAsBC,IAAtB,EAA+B;AAC5D,MAAM2B,WAAW,GAAGN,eAAe,CACjCK,OADiC,EAEjC3B,UAAU,CAAC0B,eAFsB,EAGjCzB,IAHiC,CAAnC;AAKA,SAAO2B,WAAW,CAACC,GAAZ,CAAgB,UAACC,MAAD,EAASC,KAAT;AAAA,WACrBT,eAAe,CAACQ,MAAD,EAAS9B,UAAU,CAACgC,cAApB,EAAoC/B,IAApC,EAA0C8B,KAA1C,CADM;AAAA,GAAhB,CAAP;AAGD;IAEYE,aAAa,GAAG,SAAhBA,aAAgB,CAAChB,QAAD,EAAWiB,YAAX;AAAA,yCACxBjB,QADwB,GAExBiB,YAAY,CAACjB,QAAD,CAFY;AAAA;IAKhBkB,2BAA2B,GAAG,SAA9BA,2BAA8B,CAAClB,QAAD,EAAWmB,SAAX,EAAyB;AAClE,mBAA2BA,SAAS,CAACnB,QAAD,CAApC;AAAA,MAAQoB,KAAR,cAAQA,KAAR;AAAA,MAAeC,OAAf,cAAeA,OAAf;;AACA,yCACKrB,QADL;AAEEoB,IAAAA,KAAK,kCACApB,QAAQ,CAACoB,KADT,GAEAA,KAFA,CAFP;AAMEC,IAAAA,OAAO,kCACFrB,QAAQ,CAACqB,OADP,GAEFA,OAFE;AANT;AAWD;;AAED,IAAMC,YAAY,GAAG,SAAfA,YAAe,CACnBtB,QADmB;AAAA,MAEjBuB,GAFiB,QAEjBA,GAFiB;AAAA,MAEZC,OAFY,QAEZA,OAFY;AAAA,MAEHC,OAFG,QAEHA,OAFG;AAAA,MAEMC,oBAFN,QAEMA,oBAFN;AAAA,yCAIhB1B,QAJgB;AAKnB2B,IAAAA,OAAO,kCACF3B,QAAQ,CAAC2B,OADP,+CAEJJ,GAFI,EAEE;AAAEC,MAAAA,OAAO,EAAPA,OAAF;AAAWC,MAAAA,OAAO,EAAPA,OAAX;AAAoBC,MAAAA,oBAAoB,EAApBA;AAApB,KAFF;AALY;AAAA,CAArB;;IAWaE,6BAA6B,GAAG,SAAhCA,6BAAgC,CAAC5B,QAAD,EAAW6B,WAAX,EAA2B;AACtE,MAAMF,OAAO,GAAGE,WAAW,CAAC7B,QAAD,CAA3B;;AACA,MAAI8B,KAAK,CAACC,OAAN,CAAcJ,OAAd,CAAJ,EAA4B;AAC1B,WAAOA,OAAO,CAAC/B,MAAR,CAAe0B,YAAf,EAA6BtB,QAA7B,CAAP;AACD;;AACD,SAAOsB,YAAY,CAACtB,QAAD,EAAW2B,OAAX,CAAnB;AACD;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/defer-render-hoc/index.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport raf from 'raf';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\n\n/**\n * Allows two animation frames to complete to allow other components to update\n * and re-render before mounting and rendering an expensive `WrappedComponent`.\n *\n * @param WrappedComponent\n * @param fallback\n */\nexport default function deferComponentRender(WrappedComponent, fallback) {\n class DeferredRenderWrapper extends PureComponent {\n state = { shouldRender: false };\n\n componentDidMount() {\n raf(() => raf(() => this.setState({ shouldRender: true })));\n }\n\n render() {\n // eslint-disable-next-line react/destructuring-assignment\n return this.state.shouldRender ? (\n <WrappedComponent {...this.props} />\n ) : (\n fallback\n );\n }\n }\n\n return hoistNonReactStatic(DeferredRenderWrapper, WrappedComponent);\n}\n"],"names":["deferComponentRender","WrappedComponent","fallback","DeferredRenderWrapper","shouldRender","raf","setState","state","React","props","PureComponent","hoistNonReactStatic"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACe,SAASA,oBAAT,CAA8BC,gBAA9B,EAAgDC,QAAhD,EAA0D;AAAA,MACjEC,qBADiE;AAAA;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA,sGAE7D;AAAEC,QAAAA,YAAY,EAAE;AAAhB,OAF6D;;AAAA;AAAA;;AAAA;AAAA;AAAA,aAIrE,6BAAoB;AAAA;;AAClBC,QAAAA,uBAAG,CAAC;AAAA,iBAAMA,uBAAG,CAAC;AAAA,mBAAM,MAAI,CAACC,QAAL,CAAc;AAAEF,cAAAA,YAAY,EAAE;AAAhB,aAAd,CAAN;AAAA,WAAD,CAAT;AAAA,SAAD,CAAH;AACD;AANoE;AAAA;AAAA,aAQrE,kBAAS;AACP;AACA,eAAO,KAAKG,KAAL,CAAWH,YAAX,gBACLI,wCAAC,gBAAD,EAAsB,KAAKC,KAA3B,CADK,GAGLP,QAHF;AAKD;AAfoE;;AAAA;AAAA,IACnCQ,mBADmC;;AAkBvE,SAAOC,uCAAmB,CAACR,qBAAD,EAAwBF,gBAAxB,CAA1B;AACD;;;;"}
package/cjs/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"renderprops.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolbarProvider.js","sources":["../../../src/toolbar/ToolbarProvider.tsx"],"sourcesContent":["import React, { useMemo, useRef, useState, useEffect } from 'react';\nimport DSPopover from '@elliemae/ds-popper';\nimport { useOnClickOutside } from '@elliemae/ds-utilities';\n\nexport const ToolbarContext = React.createContext();\n\nconst { Provider } = ToolbarContext;\n\nconst useScrollListener = (callback, dependencies) => {\n useEffect(() => {\n window.addEventListener('scroll', callback, true);\n return () => {\n window.removeEventListener('scroll', callback, true);\n };\n }, [dependencies]);\n};\n\nconst noop = () => null;\nfunction ToolbarProvider({ delay = 200, children, onHide = noop, onShow = noop }) {\n const showTimer = useRef();\n const hideTimer = useRef();\n const toolbarRef = useRef();\n const [tooltipState, setTooltipState] = useState({});\n\n const show = (state) => {\n if (state.reference === tooltipState.reference) clearTimeout(hideTimer.current);\n showTimer.current = setTimeout(\n () =>\n setTooltipState({\n ...state,\n visible: true,\n }),\n delay,\n );\n onShow();\n };\n\n const hide = (e, force) => {\n if (!force) clearTimeout(showTimer.current);\n hideTimer.current = setTimeout(\n () =>\n setTooltipState((prevState) => ({\n ...prevState,\n visible: false,\n })),\n 100,\n );\n onHide(tooltipState, e);\n };\n\n useScrollListener((e) => hide(e, true), tooltipState.visible);\n useOnClickOutside(toolbarRef, () => hide());\n\n const keyDownHandler = (e) => {\n if (e.key === 'Escape') {\n hide(e);\n }\n };\n\n useEffect(() => {\n window.addEventListener('keydown', keyDownHandler);\n return () => {\n window.removeEventListener('keydown', keyDownHandler);\n };\n });\n\n const value = useMemo(\n () => ({\n state: tooltipState,\n show,\n hide,\n }),\n [tooltipState.reference],\n );\n\n return (\n <Provider value={value}>\n {children}\n <DSPopover\n boundaries=\"scrollParent\"\n {...(tooltipState.options || {})}\n content={tooltipState.renderer}\n placement=\"left\"\n referenceEl={tooltipState.reference}\n renderer={({ as: Component, style, children: Content }) => (\n <div ref={toolbarRef} onMouseEnter={(e) => show(tooltipState, e)} onMouseLeave={hide}>\n <Component style={style}>{Content}</Component>\n </div>\n )}\n style={tooltipState.style}\n visible={tooltipState.visible}\n />\n </Provider>\n );\n}\n\nexport default React.memo(ToolbarProvider);\n"],"names":["ToolbarContext","React","createContext","Provider","useScrollListener","callback","dependencies","useEffect","window","addEventListener","removeEventListener","noop","ToolbarProvider","delay","children","onHide","onShow","showTimer","useRef","hideTimer","toolbarRef","useState","tooltipState","setTooltipState","show","state","reference","clearTimeout","current","setTimeout","visible","hide","e","force","prevState","useOnClickOutside","keyDownHandler","key","value","useMemo","DSPopover","options","renderer","Component","as","style","Content","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;IAIaA,cAAc,gBAAGC,yBAAK,CAACC,aAAN;AAE9B,IAAQC,QAAR,GAAqBH,cAArB,CAAQG,QAAR;;AAEA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,QAAD,EAAWC,YAAX,EAA4B;AACpDC,EAAAA,eAAS,CAAC,YAAM;AACdC,IAAAA,MAAM,CAACC,gBAAP,CAAwB,QAAxB,EAAkCJ,QAAlC,EAA4C,IAA5C;AACA,WAAO,YAAM;AACXG,MAAAA,MAAM,CAACE,mBAAP,CAA2B,QAA3B,EAAqCL,QAArC,EAA+C,IAA/C;AACD,KAFD;AAGD,GALQ,EAKN,CAACC,YAAD,CALM,CAAT;AAMD,CAPD;;AASA,IAAMK,IAAI,GAAG,SAAPA,IAAO;AAAA,SAAM,IAAN;AAAA,CAAb;;AACA,SAASC,eAAT,OAAkF;AAAA,wBAAvDC,KAAuD;AAAA,MAAvDA,KAAuD,2BAA/C,GAA+C;AAAA,MAA1CC,QAA0C,QAA1CA,QAA0C;AAAA,yBAAhCC,MAAgC;AAAA,MAAhCA,MAAgC,4BAAvBJ,IAAuB;AAAA,yBAAjBK,MAAiB;AAAA,MAAjBA,MAAiB,4BAARL,IAAQ;AAChF,MAAMM,SAAS,GAAGC,YAAM,EAAxB;AACA,MAAMC,SAAS,GAAGD,YAAM,EAAxB;AACA,MAAME,UAAU,GAAGF,YAAM,EAAzB;;AACA,kBAAwCG,cAAQ,CAAC,EAAD,CAAhD;AAAA;AAAA,MAAOC,YAAP;AAAA,MAAqBC,eAArB;;AAEA,MAAMC,IAAI,GAAG,SAAPA,IAAO,CAACC,KAAD,EAAW;AACtB,QAAIA,KAAK,CAACC,SAAN,KAAoBJ,YAAY,CAACI,SAArC,EAAgDC,YAAY,CAACR,SAAS,CAACS,OAAX,CAAZ;AAChDX,IAAAA,SAAS,CAACW,OAAV,GAAoBC,UAAU,CAC5B;AAAA,aACEN,eAAe,iCACVE,KADU;AAEbK,QAAAA,OAAO,EAAE;AAFI,SADjB;AAAA,KAD4B,EAM5BjB,KAN4B,CAA9B;AAQAG,IAAAA,MAAM;AACP,GAXD;;AAaA,MAAMe,IAAI,GAAG,SAAPA,IAAO,CAACC,CAAD,EAAIC,KAAJ,EAAc;AACzB,QAAI,CAACA,KAAL,EAAYN,YAAY,CAACV,SAAS,CAACW,OAAX,CAAZ;AACZT,IAAAA,SAAS,CAACS,OAAV,GAAoBC,UAAU,CAC5B;AAAA,aACEN,eAAe,CAAC,UAACW,SAAD;AAAA,+CACXA,SADW;AAEdJ,UAAAA,OAAO,EAAE;AAFK;AAAA,OAAD,CADjB;AAAA,KAD4B,EAM5B,GAN4B,CAA9B;AAQAf,IAAAA,MAAM,CAACO,YAAD,EAAeU,CAAf,CAAN;AACD,GAXD;;AAaA5B,EAAAA,iBAAiB,CAAC,UAAC4B,CAAD;AAAA,WAAOD,IAAI,CAACC,CAAD,EAAI,IAAJ,CAAX;AAAA,GAAD,EAAuBV,YAAY,CAACQ,OAApC,CAAjB;AACAK,EAAAA,6BAAiB,CAACf,UAAD,EAAa;AAAA,WAAMW,IAAI,EAAV;AAAA,GAAb,CAAjB;;AAEA,MAAMK,cAAc,GAAG,SAAjBA,cAAiB,CAACJ,CAAD,EAAO;AAC5B,QAAIA,CAAC,CAACK,GAAF,KAAU,QAAd,EAAwB;AACtBN,MAAAA,IAAI,CAACC,CAAD,CAAJ;AACD;AACF,GAJD;;AAMAzB,EAAAA,eAAS,CAAC,YAAM;AACdC,IAAAA,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmC2B,cAAnC;AACA,WAAO,YAAM;AACX5B,MAAAA,MAAM,CAACE,mBAAP,CAA2B,SAA3B,EAAsC0B,cAAtC;AACD,KAFD;AAGD,GALQ,CAAT;AAOA,MAAME,KAAK,GAAGC,aAAO,CACnB;AAAA,WAAO;AACLd,MAAAA,KAAK,EAAEH,YADF;AAELE,MAAAA,IAAI,EAAJA,IAFK;AAGLO,MAAAA,IAAI,EAAJA;AAHK,KAAP;AAAA,GADmB,EAMnB,CAACT,YAAY,CAACI,SAAd,CANmB,CAArB;AASA,sBACEzB,wCAAC,QAAD;AAAU,IAAA,KAAK,EAAEqC;AAAjB,KACGxB,QADH,eAEEb,wCAACuC,6BAAD;AACE,IAAA,UAAU,EAAC;AADb,KAEOlB,YAAY,CAACmB,OAAb,IAAwB,EAF/B;AAGE,IAAA,OAAO,EAAEnB,YAAY,CAACoB,QAHxB;AAIE,IAAA,SAAS,EAAC,MAJZ;AAKE,IAAA,WAAW,EAAEpB,YAAY,CAACI,SAL5B;AAME,IAAA,QAAQ,EAAE;AAAA,UAAOiB,SAAP,SAAGC,EAAH;AAAA,UAAkBC,KAAlB,SAAkBA,KAAlB;AAAA,UAAmCC,OAAnC,SAAyBhC,QAAzB;AAAA,0BACRb;AAAK,QAAA,GAAG,EAAEmB,UAAV;AAAsB,QAAA,YAAY,EAAE,sBAACY,CAAD;AAAA,iBAAOR,IAAI,CAACF,YAAD,CAAX;AAAA,SAApC;AAAkE,QAAA,YAAY,EAAES;AAAhF,sBACE9B,wCAAC,SAAD;AAAW,QAAA,KAAK,EAAE4C;AAAlB,SAA0BC,OAA1B,CADF,CADQ;AAAA,KANZ;AAWE,IAAA,KAAK,EAAExB,YAAY,CAACuB,KAXtB;AAYE,IAAA,OAAO,EAAEvB,YAAY,CAACQ;AAZxB,KAFF,CADF;AAmBD;;AAED,qCAAe7B,yBAAK,CAAC8C,IAAN,CAAWnC,eAAX,CAAf;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"VolatileRowsListener.js","sources":["../../../src/useDataGrid/VolatileRowsListener.tsx"],"sourcesContent":["import { safeCall } from '@elliemae/ds-utilities';\n\nexport default class VolatileRowsListener {\n observers = [];\n\n observe(listener) {\n this.observers.push(listener);\n }\n\n notify(nextRows) {\n this.observers.forEach(observer => safeCall(observer, nextRows));\n this.observers = [];\n }\n}\n"],"names":["VolatileRowsListener","listener","observers","push","nextRows","forEach","observer","safeCall"],"mappings":";;;;;;;;;;;;;IAEqBA;;;;2DACP;;;;;WAEZ,iBAAQC,QAAR,EAAkB;AAChB,WAAKC,SAAL,CAAeC,IAAf,CAAoBF,QAApB;AACD;;;WAED,gBAAOG,QAAP,EAAiB;AACf,WAAKF,SAAL,CAAeG,OAAf,CAAuB,UAAAC,QAAQ;AAAA,eAAIC,oBAAQ,CAACD,QAAD,EAAWF,QAAX,CAAZ;AAAA,OAA/B;AACA,WAAKF,SAAL,GAAiB,EAAjB;AACD;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"initColumnDefinition.js","sources":["../../../src/useDataGrid/initColumnDefinition.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable react/display-name */\nimport React from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport {\n get,\n curry,\n set,\n cloneDeep,\n isFunction,\n} from '@elliemae/ds-utilities';\n\n// TODO: use lenses to access nested fields\n\nexport const appendHeaderFormatter = curry((formatter, column) => ({\n ...column,\n header: {\n ...column.header,\n formatters: [...get(column, 'header.formatters', []), formatter],\n },\n}));\n\nexport const appendCellFormatter = curry(\n (formatter, column, path = 'formatters') => {\n const nextColumn = cloneDeep(column);\n const formatters = get(nextColumn, ['cell', path], []);\n const scrollingFormatters = get(nextColumn, 'cell.scrollingFormatters', []);\n if (Array.isArray(formatter)) {\n if (formatter[1]) scrollingFormatters.push(formatter[1]);\n formatters.push(formatter[0]);\n } else {\n formatters.push(formatter);\n scrollingFormatters.push(formatter);\n }\n set(nextColumn, ['cell', path], formatters);\n set(nextColumn, 'cell.scrollingFormatters', scrollingFormatters);\n return nextColumn;\n },\n);\n\nconst defaultColumnDefinitionOptions = {\n normalize: false,\n useTextTruncation: true,\n isUserColumn: true,\n visible: true,\n};\n\nexport const mergeClassNameToColumnHeader = curry((className, column) => {\n const headerProps = get(column, ['header', 'props'], {});\n const headerClassName = headerProps.className || '';\n return {\n ...column,\n header: {\n ...column.header,\n props: {\n ...headerProps,\n className: `${headerClassName} ${className}`,\n },\n },\n };\n});\n\nexport default function initColumnDefinition(options = {}) {\n // eslint-disable-next-line complexity\n return (column) => {\n // todo: clean this\n if (column.type === 'number') {\n // eslint-disable-next-line no-param-reassign\n column.cellStyle = {\n textAlign: 'right',\n };\n }\n const { useTextTruncation = true, isUserColumn, visible, normalize } = {\n ...defaultColumnDefinitionOptions,\n ...options,\n };\n\n if (normalize) {\n // eslint-disable-next-line no-param-reassign\n column.originalProperty = column.property;\n // eslint-disable-next-line no-param-reassign\n column.property = column.property.replace(/\\s+/g, '');\n }\n\n // eslint-disable-next-line no-param-reassign\n column.props = {\n ...column.props,\n style: {},\n };\n // eslint-disable-next-line no-param-reassign\n column.header = {\n ...column.header,\n label: column.label,\n formatters: [...get(column, ['header', 'formatters'], [])],\n props: {\n style: column.headerStyle || {},\n },\n };\n if (\n useTextTruncation &&\n !(\n isFunction(column.customHeaderRenderer) ||\n column.header.formatters.length\n )\n ) {\n column.header.formatters.push((value) => (\n <span className=\"cell-value\">{value}</span>\n ));\n }\n\n // eslint-disable-next-line no-param-reassign\n column.cell = {\n ...column.cell,\n transforms: [],\n formatters: [...get(column, ['cell', 'formatters'], [])],\n scrollingFormatters: [...get(column, ['cell', 'formatters'], [])],\n props: {\n style: column.cellStyle || {},\n },\n };\n\n if (\n useTextTruncation &&\n !(isFunction(column.customRenderer) || column.cell.formatters.length)\n ) {\n column.cell.formatters.push((value) => (\n <span\n className=\"cell-value\"\n style={{\n justifyContent:\n column.type === 'number' ? 'flex-end' : 'flex-start',\n }}\n >\n {value}\n </span>\n ));\n }\n // eslint-disable-next-line no-param-reassign\n column.uuid = column.uuid || uuidv4();\n // eslint-disable-next-line no-param-reassign\n column.visible = column.visible === undefined ? visible : column.visible;\n // eslint-disable-next-line no-param-reassign, max-lines\n column.isUserColumn = column.isUserColumn || isUserColumn;\n // eslint-disable-next-line no-param-reassign\n column.headerHookEffects = [];\n return column;\n };\n}\n"],"names":["appendHeaderFormatter","curry","formatter","column","header","formatters","get","appendCellFormatter","path","nextColumn","cloneDeep","scrollingFormatters","Array","isArray","push","set","defaultColumnDefinitionOptions","normalize","useTextTruncation","isUserColumn","visible","mergeClassNameToColumnHeader","className","headerProps","headerClassName","props","initColumnDefinition","options","type","cellStyle","textAlign","originalProperty","property","replace","style","label","headerStyle","isFunction","customHeaderRenderer","length","value","React","cell","transforms","customRenderer","justifyContent","uuid","uuidv4","undefined","headerHookEffects"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDataGrid.js","sources":["../../../src/useDataGrid/useDataGrid.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport {\n cloneDeep,\n compose,\n isEqual,\n isObject,\n setRef, \n usePrevious, \n useDerivedStateFromProps \n} from '@elliemae/ds-utilities';\nimport { useMemo, useRef, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport * as resolve from 'table-resolver';\nimport initColumnDefinition from './initColumnDefinition';\nimport {\n applyDecorators,\n decorateColumns,\n reducePropsGetter,\n} from '../createDataInstance/utils';\nimport VolatileRowsListener from './VolatileRowsListener';\nimport { isInternetExplorer } from '../utils';\n\nconst IS_INTERNET_EXPLORER = isInternetExplorer();\n\n// TODO: Reuse createDataInstance for the grid the same\n// way as the list does ex: packages/ds-shared/src/useDataList/useDataList.js\n// eslint-disable-next-line max-statements\nexport default function useDataGrid({\n uuid: uuidProp,\n plugins: pluginsFromProps,\n rows,\n columns,\n renderers = {},\n ...props\n}) {\n const plugins = pluginsFromProps;\n const instance = useRef();\n const tableRef = useRef();\n const headerRef = useRef();\n const bodyRef = useRef();\n const bodyInnerRef = useRef();\n const [uuid] = useState(uuidProp || (() => uuidv4()));\n const [hasScroll, setHasScroll] = useState(false);\n const [isRowDragging, setIsRowDragging] = useState(false);\n const isScrolling = useRef();\n const shouldRefocus = useRef(); // todo: we probably need a plugin for focus related stuff\n const [RowsObserver] = useState(() => new VolatileRowsListener());\n\n // todo move this with rows composition\n const [originalRows, updateRows] = useDerivedStateFromProps(rows, {\n onUpdate: resolve.resolve({\n columns,\n method: (extra) =>\n compose(\n resolve.byFunction('valueTransformation')(extra),\n resolve.nested(extra),\n ),\n }),\n updateOnStateChange: true,\n });\n\n instance.current = {\n decoratedRenderers: cloneDeep(renderers),\n decoratedColumns: columns,\n columns,\n rows,\n composedRows: originalRows,\n getRowProps: [],\n getHeaderRowProps: [],\n getBodyProps: [],\n getTableProps: [],\n effects: [],\n uuid,\n props,\n refs: {\n table: tableRef,\n body: bodyRef,\n header: headerRef,\n innerBody: bodyInnerRef,\n },\n state: {\n hasScroll,\n },\n actions: {\n updateRows,\n },\n updateRows,\n // eslint-disable-next-line no-return-assign\n enableEvents: () =>\n (document.body.style.pointerEvents = IS_INTERNET_EXPLORER ? '' : null),\n // eslint-disable-next-line no-return-assign\n disableEvents: () => (document.body.style.pointerEvents = 'none'),\n observeRows: (observer) => RowsObserver.observe(observer),\n hotKeys: {},\n shouldRefocus,\n isScrolling,\n setHasScroll,\n setIsRowDragging,\n isRowDragging,\n plugins,\n };\n instance.current.getState = () => instance.current.state;\n instance.current.getInstance = () => instance.current;\n\n const defaultDecorators = {\n decorateGrid: [],\n registerStateHook: [],\n registerHotKeys: [],\n decorateColumn: [],\n decorateColumns: [\n (cols) =>\n cols.map((col) =>\n initColumnDefinition({\n useTextTruncation: col.useTextTruncation,\n wrapText: props.wrapText,\n normalize: props.normalizeDataKeys,\n })(col),\n ),\n ],\n decorateRenderers: [],\n getRowProps: [],\n getHeaderRowProps: [],\n getBodyProps: [],\n getTableProps: [],\n getHeaderProps: [],\n composeRows: [],\n };\n\n const decorators = useMemo(() => {\n let nextDecorators = defaultDecorators;\n // eslint-disable-next-line no-return-assign\n plugins.forEach((plugin) => (nextDecorators = plugin(nextDecorators)));\n return nextDecorators;\n }, [plugins]);\n\n instance.current = decorators.decorateGrid.reduce(\n (nextInstance, decorator) => ({\n ...nextInstance,\n ...decorator(instance.current),\n }),\n instance.current,\n );\n\n instance.current = decorators.registerStateHook.reduce(\n (nextInstance, decorator) => {\n const { state, actions } = decorator(instance.current);\n return {\n ...nextInstance,\n state: {\n ...nextInstance.state,\n ...state,\n },\n actions: {\n ...nextInstance.actions,\n ...actions,\n },\n };\n },\n instance.current,\n );\n\n const reduceHotKey = (nextInstance, { key, handler, options }) => ({\n ...nextInstance,\n hotKeys: {\n ...nextInstance.hotKeys,\n [key]: { handler, options },\n },\n });\n instance.current = decorators.registerHotKeys.reduce(\n (nextInstance, decorator) => {\n const hotKeys = decorator(nextInstance);\n if (Array.isArray(hotKeys)) {\n return hotKeys.reduce(reduceHotKey, nextInstance);\n }\n return reduceHotKey(nextInstance, hotKeys);\n },\n instance.current,\n );\n\n instance.current.decoratedRenderers = applyDecorators(\n instance.current.decoratedRenderers,\n decorators.decorateRenderers,\n instance.current,\n );\n\n instance.current.decoratedColumns = useMemo(() => {\n const visibleColumns = cloneDeep(columns).filter(\n (column) => typeof column.visible === 'undefined' || column.visible,\n );\n return visibleColumns.length\n ? decorateColumns(visibleColumns, decorators, instance.current)\n : [];\n }, [columns]);\n\n instance.current.getBodyProps = reducePropsGetter(\n decorators.getBodyProps,\n instance.current,\n );\n instance.current.getHeaderProps = reducePropsGetter(\n decorators.getHeaderProps,\n instance.current,\n );\n instance.current.getRowProps = reducePropsGetter(\n decorators.getRowProps,\n instance.current,\n );\n instance.current.getHeaderRowProps = reducePropsGetter(\n decorators.getHeaderRowProps,\n instance.current,\n );\n instance.current.getTableProps = reducePropsGetter(\n decorators.getTableProps,\n instance.current,\n );\n\n instance.current.composedRows = decorators.composeRows.reduce(\n (nextRows, getter) => getter(nextRows, instance.current),\n instance.current.composedRows,\n );\n\n RowsObserver.notify(instance.current.composedRows);\n\n const currentShouldRefocus = instance.current.shouldRefocus.current;\n const prevState = usePrevious(instance.current.state);\n if (isObject(currentShouldRefocus) && currentShouldRefocus.forced) {\n instance.current.shouldRefocus.current = currentShouldRefocus.value;\n } else {\n instance.current.shouldRefocus.current = !isEqual(\n prevState,\n instance.current.state,\n );\n }\n\n if (props.instanceRef) setRef(props.instanceRef, instance.current);\n\n return {\n ...instance.current,\n decorators,\n };\n}\n"],"names":["IS_INTERNET_EXPLORER","isInternetExplorer","useDataGrid","uuidProp","uuid","pluginsFromProps","plugins","rows","columns","renderers","props","instance","useRef","tableRef","headerRef","bodyRef","bodyInnerRef","useState","uuidv4","hasScroll","setHasScroll","isRowDragging","setIsRowDragging","isScrolling","shouldRefocus","VolatileRowsListener","RowsObserver","useDerivedStateFromProps","onUpdate","resolve","method","extra","compose","byFunction","nested","updateOnStateChange","originalRows","updateRows","current","decoratedRenderers","cloneDeep","decoratedColumns","composedRows","getRowProps","getHeaderRowProps","getBodyProps","getTableProps","effects","refs","table","body","header","innerBody","state","actions","enableEvents","document","style","pointerEvents","disableEvents","observeRows","observer","observe","hotKeys","getState","getInstance","defaultDecorators","decorateGrid","registerStateHook","registerHotKeys","decorateColumn","decorateColumns","cols","map","col","initColumnDefinition","useTextTruncation","wrapText","normalize","normalizeDataKeys","decorateRenderers","getHeaderProps","composeRows","decorators","useMemo","nextDecorators","forEach","plugin","reduce","nextInstance","decorator","reduceHotKey","key","handler","options","Array","isArray","applyDecorators","visibleColumns","filter","column","visible","length","reducePropsGetter","nextRows","getter","notify","currentShouldRefocus","prevState","usePrevious","isObject","forced","value","isEqual","instanceRef","setRef"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"recordIterator.js","sources":["../../../src/useDataList/recordIterator.tsx"],"sourcesContent":["const defaultStrategy = () => {\n throw Error('Implement an iterator strategy for record iterator');\n};\n\nexport function recordIterator(\n records,\n strategy = defaultStrategy,\n decorators = [],\n instance,\n) {\n const nextRows = [];\n\n strategy({\n data: records,\n cb: row => {\n let nextRow = row;\n\n // eslint-disable-next-line no-loops/no-loops,no-plusplus\n for (let i = 0; i < decorators.length; i++) {\n nextRow = decorators[i](nextRow, instance);\n if (!nextRow) break;\n }\n\n if (nextRow) nextRows.push(nextRow);\n },\n instance,\n });\n\n return nextRows;\n}\n"],"names":["defaultStrategy","Error","recordIterator","records","strategy","decorators","instance","nextRows","data","cb","row","nextRow","i","length","push"],"mappings":";;;;AAAA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5B,QAAMC,KAAK,CAAC,oDAAD,CAAX;AACD,CAFD;;AAIO,SAASC,cAAT,CACLC,OADK,EAKL;AAAA,MAHAC,QAGA,uEAHWJ,eAGX;AAAA,MAFAK,UAEA,uEAFa,EAEb;AAAA,MADAC,QACA;AACA,MAAMC,QAAQ,GAAG,EAAjB;AAEAH,EAAAA,QAAQ,CAAC;AACPI,IAAAA,IAAI,EAAEL,OADC;AAEPM,IAAAA,EAAE,EAAE,YAAAC,GAAG,EAAI;AACT,UAAIC,OAAO,GAAGD,GAAd,CADS;;AAIT,WAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGP,UAAU,CAACQ,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;AAC1CD,QAAAA,OAAO,GAAGN,UAAU,CAACO,CAAD,CAAV,CAAcD,OAAd,EAAuBL,QAAvB,CAAV;AACA,YAAI,CAACK,OAAL,EAAc;AACf;;AAED,UAAIA,OAAJ,EAAaJ,QAAQ,CAACO,IAAT,CAAcH,OAAd;AACd,KAZM;AAaPL,IAAAA,QAAQ,EAARA;AAbO,GAAD,CAAR;AAgBA,SAAOC,QAAP;AACD;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDataList.js","sources":["../../../src/useDataList/useDataList.tsx"],"sourcesContent":["import { useMemo, useRef } from 'react';\nimport { setRef } from '@elliemae/ds-utilities';\nimport get from 'lodash/get';\nimport {\n composeFormatters,\n reducePropsGetter,\n} from '../createDataInstance/utils';\nimport { recordIterator } from './recordIterator';\nimport createInstanceRef from '../createDataInstance/createInstanceRef';\n\nexport const getItemLabel = (record, nameKey = 'name') =>\n get(record, ['data', nameKey]);\nexport const getItemChildren = (record, childrenKey = 'children') =>\n get(record, ['data', childrenKey]);\n\nconst listRenderers = {\n list: 'ul',\n item: 'li',\n};\n\n// todo: check if a plugin is a LIST plugin rather than GRID\nexport default function useDataList({\n data = [],\n plugins = [],\n renderers = listRenderers,\n itemRenderer = [],\n customDecorators,\n ...props\n}) {\n const listRef = useRef();\n const { instance, decorators } = createInstanceRef({\n data,\n renderers,\n plugins,\n customDecorators: {\n ...customDecorators,\n recordIterator,\n getListProps: [],\n getItemProps: [],\n itemRenderer: [...itemRenderer], // components reduce to compose item content\n record: [],\n records: [],\n },\n ...props,\n });\n instance.current.getListRef = () => listRef;\n instance.current.setListRef = (ref) => {\n listRef.current = ref;\n };\n instance.current.getItemLabel = (record) =>\n getItemLabel(record, props.nameKey);\n instance.current.getItemChildren = (record) =>\n getItemChildren(record, props.childrenKey);\n\n instance.current.decorators = decorators;\n instance.current.getListProps = reducePropsGetter(\n decorators.getListProps,\n instance.current,\n );\n instance.current.getItemProps = reducePropsGetter(\n decorators.getItemProps,\n instance.current,\n );\n instance.current.itemRenderer = composeFormatters(\n instance.current.decorators.itemRenderer,\n instance.current,\n );\n\n instance.current.records = useMemo(() => {\n // record iterator TREE / Simple\n let nextRecords = recordIterator(\n data,\n instance.current.decorators.recordIterator,\n decorators.record,\n instance.current,\n );\n\n // compose all records\n nextRecords = decorators.records.reduce(\n (nextRows, getter) => getter(nextRows, instance.current),\n nextRecords,\n );\n\n return nextRecords;\n });\n\n if (props.instanceRef) setRef(props.instanceRef, instance.current);\n\n return instance.current;\n}\n"],"names":["getItemLabel","record","nameKey","get","getItemChildren","childrenKey","listRenderers","list","item","useDataList","data","plugins","renderers","itemRenderer","customDecorators","props","listRef","useRef","createInstanceRef","recordIterator","getListProps","getItemProps","records","instance","decorators","current","getListRef","setListRef","ref","reducePropsGetter","composeFormatters","useMemo","nextRecords","reduce","nextRows","getter","instanceRef","setRef"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUaA,YAAY,GAAG,SAAfA,YAAe,CAACC,MAAD;AAAA,MAASC,OAAT,uEAAmB,MAAnB;AAAA,SAC1BC,uBAAG,CAACF,MAAD,EAAS,CAAC,MAAD,EAASC,OAAT,CAAT,CADuB;AAAA;IAEfE,eAAe,GAAG,SAAlBA,eAAkB,CAACH,MAAD;AAAA,MAASI,WAAT,uEAAuB,UAAvB;AAAA,SAC7BF,uBAAG,CAACF,MAAD,EAAS,CAAC,MAAD,EAASI,WAAT,CAAT,CAD0B;AAAA;AAG/B,IAAMC,aAAa,GAAG;AACpBC,EAAAA,IAAI,EAAE,IADc;AAEpBC,EAAAA,IAAI,EAAE;AAFc,CAAtB;;AAMe,SAASC,WAAT,OAOZ;AAAA,uBANDC,IAMC;AAAA,MANDA,IAMC,0BANM,EAMN;AAAA,0BALDC,OAKC;AAAA,MALDA,OAKC,6BALS,EAKT;AAAA,4BAJDC,SAIC;AAAA,MAJDA,SAIC,+BAJWN,aAIX;AAAA,+BAHDO,YAGC;AAAA,MAHDA,YAGC,kCAHc,EAGd;AAAA,MAFDC,gBAEC,QAFDA,gBAEC;AAAA,MADEC,KACF;;AACD,MAAMC,OAAO,GAAGC,YAAM,EAAtB;;AACA,2BAAiCC,oCAAiB;AAChDR,IAAAA,IAAI,EAAJA,IADgD;AAEhDE,IAAAA,SAAS,EAATA,SAFgD;AAGhDD,IAAAA,OAAO,EAAPA,OAHgD;AAIhDG,IAAAA,gBAAgB,kCACXA,gBADW;AAEdK,MAAAA,cAAc,EAAdA,yCAFc;AAGdC,MAAAA,YAAY,EAAE,EAHA;AAIdC,MAAAA,YAAY,EAAE,EAJA;AAKdR,MAAAA,YAAY,yCAAMA,YAAN,CALE;AAKmB;AACjCZ,MAAAA,MAAM,EAAE,EANM;AAOdqB,MAAAA,OAAO,EAAE;AAPK;AAJgC,KAa7CP,KAb6C,EAAlD;AAAA,MAAQQ,QAAR,sBAAQA,QAAR;AAAA,MAAkBC,UAAlB,sBAAkBA,UAAlB;;AAeAD,EAAAA,QAAQ,CAACE,OAAT,CAAiBC,UAAjB,GAA8B;AAAA,WAAMV,OAAN;AAAA,GAA9B;;AACAO,EAAAA,QAAQ,CAACE,OAAT,CAAiBE,UAAjB,GAA8B,UAACC,GAAD,EAAS;AACrCZ,IAAAA,OAAO,CAACS,OAAR,GAAkBG,GAAlB;AACD,GAFD;;AAGAL,EAAAA,QAAQ,CAACE,OAAT,CAAiBzB,YAAjB,GAAgC,UAACC,MAAD;AAAA,WAC9BD,YAAY,CAACC,MAAD,EAASc,KAAK,CAACb,OAAf,CADkB;AAAA,GAAhC;;AAEAqB,EAAAA,QAAQ,CAACE,OAAT,CAAiBrB,eAAjB,GAAmC,UAACH,MAAD;AAAA,WACjCG,eAAe,CAACH,MAAD,EAASc,KAAK,CAACV,WAAf,CADkB;AAAA,GAAnC;;AAGAkB,EAAAA,QAAQ,CAACE,OAAT,CAAiBD,UAAjB,GAA8BA,UAA9B;AACAD,EAAAA,QAAQ,CAACE,OAAT,CAAiBL,YAAjB,GAAgCS,0CAAiB,CAC/CL,UAAU,CAACJ,YADoC,EAE/CG,QAAQ,CAACE,OAFsC,CAAjD;AAIAF,EAAAA,QAAQ,CAACE,OAAT,CAAiBJ,YAAjB,GAAgCQ,0CAAiB,CAC/CL,UAAU,CAACH,YADoC,EAE/CE,QAAQ,CAACE,OAFsC,CAAjD;AAIAF,EAAAA,QAAQ,CAACE,OAAT,CAAiBZ,YAAjB,GAAgCiB,0CAAiB,CAC/CP,QAAQ,CAACE,OAAT,CAAiBD,UAAjB,CAA4BX,YADmB,EAE/CU,QAAQ,CAACE,OAFsC,CAAjD;AAKAF,EAAAA,QAAQ,CAACE,OAAT,CAAiBH,OAAjB,GAA2BS,aAAO,CAAC,YAAM;AACvC;AACA,QAAIC,WAAW,GAAGb,yCAAc,CAC9BT,IAD8B,EAE9Ba,QAAQ,CAACE,OAAT,CAAiBD,UAAjB,CAA4BL,cAFE,EAG9BK,UAAU,CAACvB,MAHmB,EAI9BsB,QAAQ,CAACE,OAJqB,CAAhC,CAFuC;;AAUvCO,IAAAA,WAAW,GAAGR,UAAU,CAACF,OAAX,CAAmBW,MAAnB,CACZ,UAACC,QAAD,EAAWC,MAAX;AAAA,aAAsBA,MAAM,CAACD,QAAD,EAAWX,QAAQ,CAACE,OAApB,CAA5B;AAAA,KADY,EAEZO,WAFY,CAAd;AAKA,WAAOA,WAAP;AACD,GAhBiC,CAAlC;AAkBA,MAAIjB,KAAK,CAACqB,WAAV,EAAuBC,kBAAM,CAACtB,KAAK,CAACqB,WAAP,EAAoBb,QAAQ,CAACE,OAA7B,CAAN;AAEvB,SAAOF,QAAQ,CAACE,OAAhB;AACD;;;;;;"}