@elliemae/ds-shared 2.2.0-alpha.3 → 3.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/cjs/Animations/BaseAnimation.js +35 -55
  2. package/cjs/Animations/Grow.js +41 -54
  3. package/cjs/Animations/GrowRight.js +41 -63
  4. package/cjs/Animations/GrowVertical.js +7 -47
  5. package/cjs/CheckableGroup.js +65 -67
  6. package/cjs/DeferRenderAfterComputation.js +24 -48
  7. package/cjs/FocusGroup/FocusGrid.js +143 -108
  8. package/cjs/FocusGroup/FocusGroup.js +147 -88
  9. package/cjs/FocusGroup/FocusGroupContext.js +11 -38
  10. package/cjs/FocusGroup/FocusGroupManager.js +47 -56
  11. package/cjs/FocusGroup/focusGroupManagerHoc.js +42 -52
  12. package/cjs/FocusGroup/index.js +21 -47
  13. package/cjs/FocusGroup/useFocusGroupItem.js +51 -59
  14. package/cjs/FocusGroup/utils/getNextCellPosition.js +27 -47
  15. package/cjs/GroupContext/Group.js +73 -64
  16. package/cjs/GroupContext/GroupContext.js +13 -36
  17. package/cjs/GroupContext/GroupItem.js +21 -39
  18. package/cjs/GroupContext/index.js +13 -39
  19. package/cjs/ScrollSync/ScrollSync.js +75 -60
  20. package/cjs/ScrollSync/ScrollSyncPane.js +60 -52
  21. package/cjs/ScrollSync/ScrollSyncProvider.js +50 -103
  22. package/cjs/ScrollSync/index.js +11 -37
  23. package/cjs/ScrollSync/useScrollSync.js +7 -38
  24. package/cjs/constants.js +46 -65
  25. package/cjs/createDataInstance/createInstancePlugin.js +29 -41
  26. package/cjs/createDataInstance/createInstanceRef.js +71 -66
  27. package/cjs/createDataInstance/utils.js +100 -76
  28. package/cjs/defer-render-hoc/index.js +41 -48
  29. package/cjs/dimsum.config.js +6 -38
  30. package/cjs/index.js +17 -40
  31. package/cjs/prop-types.js +49 -106
  32. package/cjs/react-spring/index.js +14 -28
  33. package/cjs/react-spring/renderprops.js +14 -28
  34. package/cjs/toolbar/ToolbarProvider.js +94 -82
  35. package/cjs/useDataGrid/VolatileRowsListener.js +13 -38
  36. package/cjs/useDataGrid/index.js +7 -36
  37. package/cjs/useDataGrid/initColumnDefinition.js +110 -105
  38. package/cjs/useDataGrid/useDataGrid.js +148 -122
  39. package/cjs/useDataList/index.js +7 -36
  40. package/cjs/useDataList/recordIterator.js +18 -42
  41. package/cjs/useDataList/useDataList.js +83 -74
  42. package/cjs/utils.js +80 -71
  43. package/cjs/virtualization/AutoHeightList.js +54 -62
  44. package/cjs/virtualization/FluidHeightList.js +48 -42
  45. package/cjs/virtualization/index.js +20 -48
  46. package/esm/Animations/BaseAnimation.js +29 -26
  47. package/esm/Animations/Grow.js +35 -25
  48. package/esm/Animations/GrowRight.js +35 -34
  49. package/esm/Animations/GrowVertical.js +4 -29
  50. package/esm/CheckableGroup.js +52 -35
  51. package/esm/DeferRenderAfterComputation.js +15 -16
  52. package/esm/FocusGroup/FocusGrid.js +117 -64
  53. package/esm/FocusGroup/FocusGroup.js +137 -56
  54. package/esm/FocusGroup/FocusGroupContext.js +5 -9
  55. package/esm/FocusGroup/FocusGroupManager.js +38 -24
  56. package/esm/FocusGroup/focusGroupManagerHoc.js +36 -24
  57. package/esm/FocusGroup/index.js +6 -18
  58. package/esm/FocusGroup/useFocusGroupItem.js +40 -28
  59. package/esm/FocusGroup/utils/getNextCellPosition.js +25 -18
  60. package/esm/GroupContext/Group.js +66 -34
  61. package/esm/GroupContext/GroupContext.js +5 -7
  62. package/esm/GroupContext/GroupItem.js +15 -10
  63. package/esm/GroupContext/index.js +3 -10
  64. package/esm/ScrollSync/ScrollSync.js +64 -30
  65. package/esm/ScrollSync/ScrollSyncPane.js +52 -22
  66. package/esm/ScrollSync/ScrollSyncProvider.js +42 -74
  67. package/esm/ScrollSync/index.js +2 -8
  68. package/esm/ScrollSync/useScrollSync.js +5 -9
  69. package/esm/constants.js +28 -37
  70. package/esm/createDataInstance/createInstancePlugin.js +23 -12
  71. package/esm/createDataInstance/createInstanceRef.js +59 -36
  72. package/esm/createDataInstance/utils.js +85 -48
  73. package/esm/defer-render-hoc/index.js +31 -17
  74. package/esm/dimsum.config.js +4 -9
  75. package/esm/index.js +5 -11
  76. package/esm/prop-types.js +31 -75
  77. package/esm/react-spring/index.js +1 -3
  78. package/esm/react-spring/renderprops.js +1 -3
  79. package/esm/toolbar/ToolbarProvider.js +74 -45
  80. package/esm/useDataGrid/VolatileRowsListener.js +11 -9
  81. package/esm/useDataGrid/index.js +1 -7
  82. package/esm/useDataGrid/initColumnDefinition.js +94 -78
  83. package/esm/useDataGrid/useDataGrid.js +99 -82
  84. package/esm/useDataList/index.js +1 -7
  85. package/esm/useDataList/recordIterator.js +14 -13
  86. package/esm/useDataList/useDataList.js +67 -44
  87. package/esm/utils.js +59 -42
  88. package/esm/virtualization/AutoHeightList.js +40 -28
  89. package/esm/virtualization/FluidHeightList.js +38 -14
  90. package/esm/virtualization/index.js +16 -19
  91. package/package.json +3 -3
  92. package/types/Animations/BaseAnimation.d.ts +0 -1
  93. package/types/Animations/Grow.d.ts +0 -1
  94. package/types/Animations/GrowRight.d.ts +0 -1
  95. package/types/CheckableGroup.d.ts +0 -1
  96. package/types/DeferRenderAfterComputation.d.ts +2 -3
  97. package/types/FocusGroup/FocusGrid.d.ts +3 -5
  98. package/types/FocusGroup/FocusGroup.d.ts +1 -3
  99. package/types/FocusGroup/FocusGroupContext.d.ts +2 -3
  100. package/types/FocusGroup/FocusGroupManager.d.ts +1 -3
  101. package/types/FocusGroup/focusGroupManagerHoc.d.ts +1 -3
  102. package/types/FocusGroup/index.d.ts +6 -6
  103. package/types/FocusGroup/useFocusGroupItem.d.ts +1 -3
  104. package/types/FocusGroup/utils/getNextCellPosition.d.ts +1 -3
  105. package/types/GroupContext/Group.d.ts +0 -1
  106. package/types/GroupContext/GroupItem.d.ts +0 -1
  107. package/types/GroupContext/index.d.ts +3 -3
  108. package/types/ScrollSync/ScrollSync.d.ts +2 -4
  109. package/types/ScrollSync/ScrollSyncPane.d.ts +2 -2
  110. package/types/ScrollSync/index.d.ts +2 -2
  111. package/types/ScrollSync/useScrollSync.d.ts +5 -6
  112. package/types/createDataInstance/createInstancePlugin.d.ts +1 -2
  113. package/types/createDataInstance/createInstanceRef.d.ts +1 -3
  114. package/types/dimsum.config.d.ts +2 -3
  115. package/types/index.d.ts +2 -2
  116. package/types/toolbar/ToolbarProvider.d.ts +8 -3
  117. package/types/useDataGrid/VolatileRowsListener.d.ts +1 -3
  118. package/types/useDataGrid/index.d.ts +1 -1
  119. package/types/useDataGrid/initColumnDefinition.d.ts +1 -2
  120. package/types/useDataGrid/useDataGrid.d.ts +2 -3
  121. package/types/useDataList/index.d.ts +1 -1
  122. package/types/useDataList/useDataList.d.ts +2 -3
  123. package/cjs/Animations/BaseAnimation.js.map +0 -7
  124. package/cjs/Animations/Grow.js.map +0 -7
  125. package/cjs/Animations/GrowRight.js.map +0 -7
  126. package/cjs/Animations/GrowVertical.js.map +0 -7
  127. package/cjs/CheckableGroup.js.map +0 -7
  128. package/cjs/DeferRenderAfterComputation.js.map +0 -7
  129. package/cjs/FocusGroup/FocusGrid.js.map +0 -7
  130. package/cjs/FocusGroup/FocusGroup.js.map +0 -7
  131. package/cjs/FocusGroup/FocusGroupContext.js.map +0 -7
  132. package/cjs/FocusGroup/FocusGroupManager.js.map +0 -7
  133. package/cjs/FocusGroup/focusGroupManagerHoc.js.map +0 -7
  134. package/cjs/FocusGroup/index.js.map +0 -7
  135. package/cjs/FocusGroup/useFocusGroupItem.js.map +0 -7
  136. package/cjs/FocusGroup/utils/getNextCellPosition.js.map +0 -7
  137. package/cjs/GroupContext/Group.js.map +0 -7
  138. package/cjs/GroupContext/GroupContext.js.map +0 -7
  139. package/cjs/GroupContext/GroupItem.js.map +0 -7
  140. package/cjs/GroupContext/index.js.map +0 -7
  141. package/cjs/ScrollSync/ScrollSync.js.map +0 -7
  142. package/cjs/ScrollSync/ScrollSyncPane.js.map +0 -7
  143. package/cjs/ScrollSync/ScrollSyncProvider.js.map +0 -7
  144. package/cjs/ScrollSync/index.js.map +0 -7
  145. package/cjs/ScrollSync/useScrollSync.js.map +0 -7
  146. package/cjs/constants.js.map +0 -7
  147. package/cjs/createDataInstance/createInstancePlugin.js.map +0 -7
  148. package/cjs/createDataInstance/createInstanceRef.js.map +0 -7
  149. package/cjs/createDataInstance/utils.js.map +0 -7
  150. package/cjs/defer-render-hoc/index.js.map +0 -7
  151. package/cjs/dimsum.config.js.map +0 -7
  152. package/cjs/index.js.map +0 -7
  153. package/cjs/prop-types.js.map +0 -7
  154. package/cjs/react-spring/index.js.map +0 -7
  155. package/cjs/react-spring/renderprops.js.map +0 -7
  156. package/cjs/toolbar/ToolbarProvider.js.map +0 -7
  157. package/cjs/useDataGrid/VolatileRowsListener.js.map +0 -7
  158. package/cjs/useDataGrid/index.js.map +0 -7
  159. package/cjs/useDataGrid/initColumnDefinition.js.map +0 -7
  160. package/cjs/useDataGrid/useDataGrid.js.map +0 -7
  161. package/cjs/useDataList/index.js.map +0 -7
  162. package/cjs/useDataList/recordIterator.js.map +0 -7
  163. package/cjs/useDataList/useDataList.js.map +0 -7
  164. package/cjs/utils.js.map +0 -7
  165. package/cjs/virtualization/AutoHeightList.js.map +0 -7
  166. package/cjs/virtualization/FluidHeightList.js.map +0 -7
  167. package/cjs/virtualization/index.js.map +0 -7
  168. package/esm/Animations/BaseAnimation.js.map +0 -7
  169. package/esm/Animations/Grow.js.map +0 -7
  170. package/esm/Animations/GrowRight.js.map +0 -7
  171. package/esm/Animations/GrowVertical.js.map +0 -7
  172. package/esm/CheckableGroup.js.map +0 -7
  173. package/esm/DeferRenderAfterComputation.js.map +0 -7
  174. package/esm/FocusGroup/FocusGrid.js.map +0 -7
  175. package/esm/FocusGroup/FocusGroup.js.map +0 -7
  176. package/esm/FocusGroup/FocusGroupContext.js.map +0 -7
  177. package/esm/FocusGroup/FocusGroupManager.js.map +0 -7
  178. package/esm/FocusGroup/focusGroupManagerHoc.js.map +0 -7
  179. package/esm/FocusGroup/index.js.map +0 -7
  180. package/esm/FocusGroup/useFocusGroupItem.js.map +0 -7
  181. package/esm/FocusGroup/utils/getNextCellPosition.js.map +0 -7
  182. package/esm/GroupContext/Group.js.map +0 -7
  183. package/esm/GroupContext/GroupContext.js.map +0 -7
  184. package/esm/GroupContext/GroupItem.js.map +0 -7
  185. package/esm/GroupContext/index.js.map +0 -7
  186. package/esm/ScrollSync/ScrollSync.js.map +0 -7
  187. package/esm/ScrollSync/ScrollSyncPane.js.map +0 -7
  188. package/esm/ScrollSync/ScrollSyncProvider.js.map +0 -7
  189. package/esm/ScrollSync/index.js.map +0 -7
  190. package/esm/ScrollSync/useScrollSync.js.map +0 -7
  191. package/esm/constants.js.map +0 -7
  192. package/esm/createDataInstance/createInstancePlugin.js.map +0 -7
  193. package/esm/createDataInstance/createInstanceRef.js.map +0 -7
  194. package/esm/createDataInstance/utils.js.map +0 -7
  195. package/esm/defer-render-hoc/index.js.map +0 -7
  196. package/esm/dimsum.config.js.map +0 -7
  197. package/esm/index.js.map +0 -7
  198. package/esm/prop-types.js.map +0 -7
  199. package/esm/react-spring/index.js.map +0 -7
  200. package/esm/react-spring/renderprops.js.map +0 -7
  201. package/esm/toolbar/ToolbarProvider.js.map +0 -7
  202. package/esm/useDataGrid/VolatileRowsListener.js.map +0 -7
  203. package/esm/useDataGrid/index.js.map +0 -7
  204. package/esm/useDataGrid/initColumnDefinition.js.map +0 -7
  205. package/esm/useDataGrid/useDataGrid.js.map +0 -7
  206. package/esm/useDataList/index.js.map +0 -7
  207. package/esm/useDataList/recordIterator.js.map +0 -7
  208. package/esm/useDataList/useDataList.js.map +0 -7
  209. package/esm/utils.js.map +0 -7
  210. package/esm/virtualization/AutoHeightList.js.map +0 -7
  211. package/esm/virtualization/FluidHeightList.js.map +0 -7
  212. package/esm/virtualization/index.js.map +0 -7
@@ -1,50 +1,47 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __reExport = (target, module2, copyDefault, desc) => {
13
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
- for (let key of __getOwnPropNames(module2))
15
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
- }
18
- return target;
19
- };
20
- var __toESM = (module2, isNodeMode) => {
21
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
- };
23
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
- return (module2, temp) => {
25
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
- };
27
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
- var FocusGrid_exports = {};
29
- __export(FocusGrid_exports, {
30
- FocusGrid: () => FocusGridProvider,
31
- FocusGridContext: () => FocusGridContext,
32
- FocusGridProvider: () => FocusGridProvider,
33
- default: () => FocusGrid_default
34
- });
35
- var React = __toESM(require("react"));
36
- var import_react = __toESM(require("react"));
37
- var import_ds_utilities = __toESM(require("@elliemae/ds-utilities"));
38
- var import_getNextCellPosition = __toESM(require("./utils/getNextCellPosition"));
39
- const FocusGridContext = (0, import_react.createContext)();
40
- const { Provider } = FocusGridContext;
41
- const preventDefault = (e) => e.preventDefault();
42
- function registerHotKeysHooks(hotKeys, { focusedRow, focusedCell }) {
43
- Object.keys(hotKeys).forEach((key) => {
44
- const { handler, options } = hotKeys[key];
45
- (0, import_ds_utilities.useHotkeys)({
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _jsx = require('@babel/runtime/helpers/jsx');
6
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
+ require('core-js/modules/esnext.async-iterator.for-each.js');
8
+ require('core-js/modules/esnext.iterator.constructor.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ require('core-js/modules/esnext.async-iterator.filter.js');
11
+ require('core-js/modules/esnext.iterator.filter.js');
12
+ var React = require('react');
13
+ var dsUtilities = require('@elliemae/ds-utilities');
14
+ var getNextCellPosition = require('./utils/getNextCellPosition.js');
15
+
16
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
+
18
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
19
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
21
+
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
+
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
+ const FocusGridContext = /*#__PURE__*/React.createContext();
26
+ const {
27
+ Provider
28
+ } = FocusGridContext;
29
+
30
+ const preventDefault = e => e.preventDefault();
31
+
32
+ function registerHotKeysHooks(hotKeys, _ref) {
33
+ let {
34
+ focusedRow,
35
+ focusedCell
36
+ } = _ref;
37
+ Object.keys(hotKeys).forEach(key => {
38
+ const {
39
+ handler,
40
+ options
41
+ } = hotKeys[key];
42
+ dsUtilities.useHotkeys({
46
43
  keys: key,
47
- handler: (e) => {
44
+ handler: e => {
48
45
  e.preventDefault();
49
46
  handler({
50
47
  rowIndex: focusedRow.current,
@@ -54,59 +51,76 @@ function registerHotKeysHooks(hotKeys, { focusedRow, focusedCell }) {
54
51
  options
55
52
  });
56
53
  });
57
- }
58
- const FocusGridProvider = ({
59
- shouldWrapRows = false,
60
- shouldWrapCells = false,
61
- shouldRefocus = true,
62
- children,
63
- keyBindings,
64
- hotKeys
65
- }) => {
66
- const focusedRow = (0, import_react.useRef)();
67
- const focusedCell = (0, import_react.useRef)();
68
- const grid = (0, import_react.useRef)([]);
69
- const containerRef = (0, import_react.useRef)(document);
70
- const child = import_react.default.Children.only(children);
71
- const decoratedChild = import_react.default.cloneElement(child, {
72
- innerRef: (0, import_ds_utilities.mergeRefs)(child.props.innerRef, containerRef)
54
+ } // eslint-disable-next-line max-statements
55
+
56
+
57
+ function FocusGridProvider(_ref2) {
58
+ let {
59
+ shouldWrapRows = false,
60
+ shouldWrapCells = false,
61
+ shouldRefocus = true,
62
+ children,
63
+ keyBindings,
64
+ hotKeys
65
+ } = _ref2;
66
+ const focusedRow = React.useRef();
67
+ const focusedCell = React.useRef();
68
+ const grid = React.useRef([]);
69
+ const containerRef = React.useRef(document);
70
+ const child = React__default["default"].Children.only(children);
71
+ const decoratedChild = /*#__PURE__*/React__default["default"].cloneElement(child, {
72
+ innerRef: dsUtilities.mergeRefs(child.props.innerRef, containerRef)
73
73
  });
74
- const getNode = ({ rowIndex, cellIndex }) => (0, import_ds_utilities.get)(grid.current, [rowIndex, cellIndex]);
74
+
75
+ const getNode = _ref3 => {
76
+ let {
77
+ rowIndex,
78
+ cellIndex
79
+ } = _ref3;
80
+ return dsUtilities.get(grid.current, [rowIndex, cellIndex]);
81
+ };
82
+
75
83
  const register = (node, rowIndex, columnIndex) => {
76
- if (!node)
77
- return;
84
+ if (!node) return;
85
+
78
86
  if (!Array.isArray(grid.current[rowIndex])) {
79
87
  grid.current[rowIndex] = [];
80
88
  }
89
+
81
90
  if (rowIndex === 0 && columnIndex === 0) {
82
- node.setAttribute("tabindex", 0);
91
+ node.setAttribute('tabindex', 0);
83
92
  } else {
84
- node.setAttribute("tabindex", -1);
93
+ node.setAttribute('tabindex', -1);
85
94
  }
95
+
86
96
  node.onfocus = () => {
87
97
  const prevNode = getNode({
88
98
  rowIndex: focusedRow.current,
89
99
  cellIndex: focusedCell.current
90
100
  });
91
- if (prevNode)
92
- prevNode.setAttribute("tabindex", -1);
93
- node.setAttribute("tabindex", 0);
101
+ if (prevNode) prevNode.setAttribute('tabindex', -1);
102
+ node.setAttribute('tabindex', 0);
94
103
  focusedRow.current = rowIndex;
95
104
  focusedCell.current = columnIndex;
96
105
  };
106
+
97
107
  grid.current[rowIndex][columnIndex] = node;
98
108
  };
99
- (0, import_react.useEffect)(() => {
109
+
110
+ React.useEffect(() => {
100
111
  if (shouldRefocus) {
101
112
  const rowIndex = focusedRow.current;
102
113
  const cellIndex = focusedCell.current;
103
- const node = (0, import_ds_utilities.get)(grid.current, [rowIndex, cellIndex]);
104
- if (node)
105
- node.focus();
114
+ const node = dsUtilities.get(grid.current, [rowIndex, cellIndex]);
115
+ if (node) node.focus();
106
116
  }
107
117
  });
118
+
108
119
  const focusNextCell = (directionY, directionX, position) => {
109
- const { rowIndex, cellIndex } = position || (0, import_getNextCellPosition.getNextCellPosition)({
120
+ const {
121
+ rowIndex,
122
+ cellIndex
123
+ } = position || getNextCellPosition({
110
124
  grid: grid.current,
111
125
  currentCell: focusedCell.current,
112
126
  currentRow: focusedRow.current,
@@ -115,66 +129,87 @@ const FocusGridProvider = ({
115
129
  shouldWrapCells,
116
130
  shouldWrapRows
117
131
  });
118
- const node = getNode({ rowIndex, cellIndex });
132
+ const node = getNode({
133
+ rowIndex,
134
+ cellIndex
135
+ }); // can focus
136
+
119
137
  if (node) {
120
138
  node.focus();
121
139
  focusedRow.current = rowIndex;
122
140
  focusedCell.current = cellIndex;
123
141
  }
124
142
  };
125
- registerHotKeysHooks(hotKeys, { focusedCell, focusedRow });
126
- const defaultKeyBindings = {
127
- ArrowUp: (0, import_ds_utilities.runAll)(preventDefault, () => focusNextCell(-1, 0)),
128
- ArrowRight: (0, import_ds_utilities.runAll)(preventDefault, () => focusNextCell(0, 1)),
129
- ArrowDown: (0, import_ds_utilities.runAll)(preventDefault, () => focusNextCell(1, 0)),
130
- ArrowLeft: (0, import_ds_utilities.runAll)(preventDefault, () => focusNextCell(0, -1)),
131
- Home: (0, import_ds_utilities.runAll)(preventDefault, (e) => {
143
+
144
+ registerHotKeysHooks(hotKeys, {
145
+ focusedCell,
146
+ focusedRow
147
+ });
148
+
149
+ const defaultKeyBindings = _objectSpread({
150
+ ArrowUp: dsUtilities.runAll(preventDefault, () => focusNextCell(-1, 0)),
151
+ ArrowRight: dsUtilities.runAll(preventDefault, () => focusNextCell(0, 1)),
152
+ ArrowDown: dsUtilities.runAll(preventDefault, () => focusNextCell(1, 0)),
153
+ ArrowLeft: dsUtilities.runAll(preventDefault, () => focusNextCell(0, -1)),
154
+ Home: dsUtilities.runAll(preventDefault, e => {
132
155
  let rowIndex = focusedRow.current;
156
+
133
157
  if (e.ctrlKey) {
134
158
  rowIndex = 0;
135
159
  }
136
- focusNextCell(0, 0, { rowIndex, cellIndex: 0 });
160
+
161
+ focusNextCell(0, 0, {
162
+ rowIndex,
163
+ cellIndex: 0
164
+ });
137
165
  }),
138
- End: (0, import_ds_utilities.runAll)(preventDefault, (e) => {
166
+ End: dsUtilities.runAll(preventDefault, e => {
139
167
  let rowIndex = focusedRow.current;
168
+
140
169
  if (e.ctrlKey) {
141
170
  rowIndex = grid.current.length - 1;
142
171
  }
143
- focusNextCell(0, 0, { rowIndex, cellIndex: grid.current[0].length - 1 });
144
- }),
145
- ...keyBindings
146
- };
147
- const nextKeyBindings = (0, import_ds_utilities.isFunction)(keyBindings) ? keyBindings({
172
+
173
+ focusNextCell(0, 0, {
174
+ rowIndex,
175
+ cellIndex: grid.current[0].length - 1
176
+ });
177
+ })
178
+ }, keyBindings);
179
+
180
+ const nextKeyBindings = dsUtilities.isFunction(keyBindings) ? keyBindings({
148
181
  defaultBindings: defaultKeyBindings,
149
182
  rowIndex: focusedRow.current,
150
183
  cellIndex: focusedCell.current
151
- }) : { ...defaultKeyBindings, ...keyBindings };
152
- const onKeyDown = (e) => {
153
- if (e.target.tagName.toLowerCase() === "input")
154
- return;
184
+ }) : _objectSpread(_objectSpread({}, defaultKeyBindings), keyBindings);
185
+
186
+ const onKeyDown = e => {
187
+ if (e.target.tagName.toLowerCase() === 'input') return;
155
188
  const action = nextKeyBindings[e.key];
156
- if ((0, import_ds_utilities.isFunction)(action))
157
- action(e);
189
+ if (dsUtilities.isFunction(action)) action(e);
158
190
  };
159
- const activate = (container) => {
160
- container.addEventListener("keydown", onKeyDown, true);
191
+
192
+ const activate = container => {
193
+ container.addEventListener('keydown', onKeyDown, true);
161
194
  };
162
- const deactivate = (container) => {
163
- container.removeEventListener("keydown", onKeyDown, true);
195
+
196
+ const deactivate = container => {
197
+ container.removeEventListener('keydown', onKeyDown, true);
164
198
  };
165
- (0, import_react.useEffect)(() => {
199
+
200
+ React.useEffect(() => {
166
201
  activate(containerRef.current);
167
202
  return () => {
168
203
  deactivate(containerRef.current);
169
204
  };
170
205
  }, []);
171
- const valueProvider = (0, import_react.useMemo)(() => ({
206
+ const valueProvider = React.useMemo(() => ({
172
207
  register
173
208
  }), []);
174
- return /* @__PURE__ */ import_react.default.createElement(Provider, {
209
+ return /*#__PURE__*/_jsx__default["default"](Provider, {
175
210
  value: valueProvider
176
- }, decoratedChild);
177
- };
178
- var FocusGrid_default = FocusGridProvider;
179
- module.exports = __toCommonJS(FocusGrid_exports);
180
- //# sourceMappingURL=FocusGrid.js.map
211
+ }, void 0, decoratedChild);
212
+ }
213
+
214
+ exports.FocusGridContext = FocusGridContext;
215
+ exports["default"] = FocusGridProvider;