@elliemae/ds-datagrids 2.0.0-next.1 → 2.0.0-next.13

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 (204) hide show
  1. package/cjs/DSDataGrid.js +246 -243
  2. package/cjs/DataGridImpl.js +18 -9
  3. package/cjs/PaginatedDataGrid.js +5 -0
  4. package/cjs/blockNames.js +2 -2
  5. package/cjs/columns/IconColumn.js +19 -17
  6. package/cjs/columns/NumberColumn.js +2 -4
  7. package/cjs/components/BodyCell.js +20 -12
  8. package/cjs/components/BodyList.js +7 -0
  9. package/cjs/components/ColumnVisibilityMenuOption.js +12 -6
  10. package/cjs/components/ColumnsOptionsMenuSection.js +35 -28
  11. package/cjs/components/EmptyState.js +19 -17
  12. package/cjs/components/HeaderCell.js +15 -9
  13. package/cjs/components/List.js +5 -0
  14. package/cjs/components/ListItem.js +7 -0
  15. package/cjs/components/NoResults.js +5 -0
  16. package/cjs/components/RowsLoader.js +5 -4
  17. package/cjs/components/Table.js +5 -0
  18. package/cjs/components/TableBody.js +5 -0
  19. package/cjs/components/TableHeader.js +5 -0
  20. package/cjs/components/footer/addOptionalFooterComponents.js +5 -4
  21. package/cjs/components/header/PrimaryControls.js +20 -15
  22. package/cjs/components/header/addOptionalHeaderComponents.js +4 -3
  23. package/cjs/components/renderers/defaultClassedRenderers.js +35 -23
  24. package/cjs/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js +50 -39
  25. package/cjs/plugins/column-dnd/DndColumnsPlugin.js +11 -7
  26. package/cjs/plugins/column-dnd/decorateGridWithDndColumns.js +2 -3
  27. package/cjs/plugins/column-sizing/ColumnSizingPlugin.js +11 -9
  28. package/cjs/plugins/column-sizing/columnMeasurerTransformer.js +13 -6
  29. package/cjs/plugins/column-sizing/ext-points/decorateColumn.js +3 -3
  30. package/cjs/plugins/column-sizing/ext-points/getTableProps.js +23 -17
  31. package/cjs/plugins/column-sizing/useColumnSizeService.js +13 -3
  32. package/cjs/plugins/column-sizing/useStylesheetHelpers.js +69 -53
  33. package/cjs/plugins/column-sizing/utils.js +10 -6
  34. package/cjs/plugins/custom-cell-renderer/addCustomRendererToCell.js +9 -4
  35. package/cjs/plugins/custom-cell-renderer/getRendererComponent.js +20 -21
  36. package/cjs/plugins/editable/EditableComponents/ComboBox.js +7 -3
  37. package/cjs/plugins/editable/EditableComponents/TextBox.js +20 -14
  38. package/cjs/plugins/editable/EditablePlugin.js +16 -15
  39. package/cjs/plugins/editable/decorateEditable.js +19 -11
  40. package/cjs/plugins/editable/getEditorComponent.js +45 -34
  41. package/cjs/plugins/expandable-grid/ExpandableColumn.js +60 -53
  42. package/cjs/plugins/expandable-grid/ExpandablePlugin.js +38 -26
  43. package/cjs/plugins/expandable-grid/ExpandedRow.js +28 -18
  44. package/cjs/plugins/expandable-grid/ExpandedRowExtra.js +18 -12
  45. package/cjs/plugins/expandable-grid/useExpandGridState.js +4 -8
  46. package/cjs/plugins/export-data/ExportDataPlugin.js +31 -17
  47. package/cjs/plugins/filterable/FilterablePlugin.js +7 -6
  48. package/cjs/plugins/filterable/addFilterToColumn.js +5 -0
  49. package/cjs/plugins/filterable/components/FilterableHeader.js +36 -27
  50. package/cjs/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js +41 -34
  51. package/cjs/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js +27 -22
  52. package/cjs/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js +122 -156
  53. package/cjs/plugins/filterable/components/filterable-menus/TextFilterMenu.js +29 -20
  54. package/cjs/plugins/filterable/filterableFormatter.js +15 -10
  55. package/cjs/plugins/filterable/filtering-helper/filterRowsByQuery.js +16 -4
  56. package/cjs/plugins/filterable/filtering-helper/strategiesOperators.js +7 -4
  57. package/cjs/plugins/filterable/helper.js +17 -7
  58. package/cjs/plugins/filterable/useFilterableState.js +12 -5
  59. package/cjs/plugins/grouping-by/GroupingByPlugin.js +3 -1
  60. package/cjs/plugins/grouping-grid/GroupingPlugin.js +10 -1
  61. package/cjs/plugins/grouping-grid/walkStrategy.js +13 -9
  62. package/cjs/plugins/infinite-scrolling/InfiniteScrollPlugin.js +8 -1
  63. package/cjs/plugins/pagination/PaginationPlugin.js +9 -2
  64. package/cjs/plugins/pagination/components/Pagination.js +10 -9
  65. package/cjs/plugins/pagination/components/Paginator.js +8 -7
  66. package/cjs/plugins/pagination/components/PerPageDropdown.js +20 -13
  67. package/cjs/plugins/pagination/helper.js +10 -7
  68. package/cjs/plugins/pagination/usePaginationState.js +8 -3
  69. package/cjs/plugins/resizable/ResizablePlugin.js +5 -4
  70. package/cjs/plugins/resizable/decorateResizable.js +14 -8
  71. package/cjs/plugins/resizable/useResizeHandle.js +21 -16
  72. package/cjs/plugins/resizable/utils.js +9 -6
  73. package/cjs/plugins/row-dnd/DndRowsPlugin.js +24 -16
  74. package/cjs/plugins/selectable/SelectablePlugin.js +11 -10
  75. package/cjs/plugins/selectable/addSelectableColumn.js +24 -16
  76. package/cjs/plugins/selectable/helper.js +12 -3
  77. package/cjs/plugins/selectable/selectableFormatter.js +80 -71
  78. package/cjs/plugins/selectable/useSelectableState.js +25 -11
  79. package/cjs/plugins/sortable/SortablePlugin.js +8 -7
  80. package/cjs/plugins/sortable/sortHeaderFormatter.js +14 -15
  81. package/cjs/plugins/sortable/sortTree.js +13 -3
  82. package/cjs/plugins/sortable/sorter.js +152 -134
  83. package/cjs/plugins/sortable/useSortableState.js +8 -0
  84. package/cjs/plugins/toolbar/RowRenderer.js +9 -3
  85. package/cjs/plugins/toolbar/ToolbarPlugin.js +1 -0
  86. package/cjs/plugins/toolbar/ToolbarTrigger.js +18 -13
  87. package/cjs/plugins/virtualization/AutoHeightList.js +10 -8
  88. package/cjs/plugins/virtualization/VirtualizationPlugin.js +32 -25
  89. package/cjs/plugins/virtualization/VirtualizedBody.js +20 -10
  90. package/cjs/plugins/virtualization/VirtualizedBodyRow.js +8 -7
  91. package/cjs/renders/CellWithAddons.js +20 -18
  92. package/cjs/renders/styled.js +5 -16
  93. package/cjs/utilities/getPluginsFromProps.js +5 -1
  94. package/cjs/utilities/getScrollbarSize.js +2 -1
  95. package/cjs/utilities/normalizeData.js +7 -1
  96. package/esm/DSDataGrid.js +246 -243
  97. package/esm/DataGridImpl.js +18 -9
  98. package/esm/PaginatedDataGrid.js +5 -0
  99. package/esm/blockNames.js +2 -2
  100. package/esm/columns/IconColumn.js +19 -17
  101. package/esm/columns/NumberColumn.js +2 -4
  102. package/esm/components/BodyCell.js +20 -12
  103. package/esm/components/BodyList.js +7 -0
  104. package/esm/components/ColumnVisibilityMenuOption.js +12 -6
  105. package/esm/components/ColumnsOptionsMenuSection.js +35 -28
  106. package/esm/components/EmptyState.js +18 -15
  107. package/esm/components/HeaderCell.js +15 -9
  108. package/esm/components/List.js +5 -0
  109. package/esm/components/ListItem.js +7 -0
  110. package/esm/components/NoResults.js +5 -0
  111. package/esm/components/RowsLoader.js +5 -4
  112. package/esm/components/Table.js +5 -0
  113. package/esm/components/TableBody.js +5 -0
  114. package/esm/components/TableHeader.js +5 -0
  115. package/esm/components/footer/addOptionalFooterComponents.js +5 -4
  116. package/esm/components/header/PrimaryControls.js +20 -14
  117. package/esm/components/header/addOptionalHeaderComponents.js +4 -3
  118. package/esm/components/renderers/defaultClassedRenderers.js +35 -23
  119. package/esm/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js +50 -39
  120. package/esm/plugins/column-dnd/DndColumnsPlugin.js +8 -4
  121. package/esm/plugins/column-dnd/decorateGridWithDndColumns.js +1 -1
  122. package/esm/plugins/column-sizing/ColumnSizingPlugin.js +10 -8
  123. package/esm/plugins/column-sizing/columnMeasurerTransformer.js +12 -5
  124. package/esm/plugins/column-sizing/ext-points/decorateColumn.js +1 -1
  125. package/esm/plugins/column-sizing/ext-points/getTableProps.js +22 -15
  126. package/esm/plugins/column-sizing/useColumnSizeService.js +13 -3
  127. package/esm/plugins/column-sizing/useStylesheetHelpers.js +67 -51
  128. package/esm/plugins/column-sizing/utils.js +8 -4
  129. package/esm/plugins/custom-cell-renderer/addCustomRendererToCell.js +6 -1
  130. package/esm/plugins/custom-cell-renderer/getRendererComponent.js +15 -11
  131. package/esm/plugins/editable/EditableComponents/ComboBox.js +6 -1
  132. package/esm/plugins/editable/EditableComponents/TextBox.js +19 -12
  133. package/esm/plugins/editable/EditablePlugin.js +14 -12
  134. package/esm/plugins/editable/decorateEditable.js +18 -9
  135. package/esm/plugins/editable/getEditorComponent.js +49 -38
  136. package/esm/plugins/expandable-grid/ExpandableColumn.js +59 -50
  137. package/esm/plugins/expandable-grid/ExpandablePlugin.js +34 -20
  138. package/esm/plugins/expandable-grid/ExpandedRow.js +27 -17
  139. package/esm/plugins/expandable-grid/ExpandedRowExtra.js +17 -11
  140. package/esm/plugins/expandable-grid/useExpandGridState.js +2 -2
  141. package/esm/plugins/export-data/ExportDataPlugin.js +30 -16
  142. package/esm/plugins/filterable/FilterablePlugin.js +5 -4
  143. package/esm/plugins/filterable/addFilterToColumn.js +5 -0
  144. package/esm/plugins/filterable/components/FilterableHeader.js +32 -22
  145. package/esm/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js +41 -33
  146. package/esm/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js +27 -21
  147. package/esm/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js +121 -154
  148. package/esm/plugins/filterable/components/filterable-menus/TextFilterMenu.js +28 -18
  149. package/esm/plugins/filterable/filterableFormatter.js +15 -10
  150. package/esm/plugins/filterable/filtering-helper/filterRowsByQuery.js +14 -2
  151. package/esm/plugins/filterable/filtering-helper/strategiesOperators.js +7 -4
  152. package/esm/plugins/filterable/helper.js +11 -1
  153. package/esm/plugins/filterable/useFilterableState.js +12 -5
  154. package/esm/plugins/grouping-by/GroupingByPlugin.js +3 -1
  155. package/esm/plugins/grouping-grid/GroupingPlugin.js +10 -1
  156. package/esm/plugins/grouping-grid/walkStrategy.js +13 -9
  157. package/esm/plugins/infinite-scrolling/InfiniteScrollPlugin.js +8 -1
  158. package/esm/plugins/pagination/PaginationPlugin.js +8 -1
  159. package/esm/plugins/pagination/components/Pagination.js +10 -9
  160. package/esm/plugins/pagination/components/Paginator.js +8 -7
  161. package/esm/plugins/pagination/components/PerPageDropdown.js +17 -9
  162. package/esm/plugins/pagination/helper.js +10 -7
  163. package/esm/plugins/pagination/usePaginationState.js +7 -1
  164. package/esm/plugins/resizable/ResizablePlugin.js +4 -3
  165. package/esm/plugins/resizable/decorateResizable.js +14 -8
  166. package/esm/plugins/resizable/useResizeHandle.js +21 -16
  167. package/esm/plugins/resizable/utils.js +7 -4
  168. package/esm/plugins/row-dnd/DndRowsPlugin.js +22 -13
  169. package/esm/plugins/selectable/SelectablePlugin.js +10 -9
  170. package/esm/plugins/selectable/addSelectableColumn.js +24 -16
  171. package/esm/plugins/selectable/helper.js +10 -1
  172. package/esm/plugins/selectable/selectableFormatter.js +79 -68
  173. package/esm/plugins/selectable/useSelectableState.js +20 -5
  174. package/esm/plugins/sortable/SortablePlugin.js +5 -4
  175. package/esm/plugins/sortable/sortHeaderFormatter.js +12 -11
  176. package/esm/plugins/sortable/sortTree.js +13 -3
  177. package/esm/plugins/sortable/sorter.js +152 -134
  178. package/esm/plugins/sortable/useSortableState.js +8 -0
  179. package/esm/plugins/toolbar/RowRenderer.js +8 -2
  180. package/esm/plugins/toolbar/ToolbarPlugin.js +1 -0
  181. package/esm/plugins/toolbar/ToolbarTrigger.js +17 -11
  182. package/esm/plugins/virtualization/AutoHeightList.js +6 -3
  183. package/esm/plugins/virtualization/VirtualizationPlugin.js +31 -24
  184. package/esm/plugins/virtualization/VirtualizedBody.js +16 -6
  185. package/esm/plugins/virtualization/VirtualizedBodyRow.js +8 -7
  186. package/esm/renders/CellWithAddons.js +15 -14
  187. package/esm/renders/styled.js +3 -15
  188. package/esm/utilities/getPluginsFromProps.js +5 -1
  189. package/esm/utilities/getScrollbarSize.js +2 -1
  190. package/esm/utilities/normalizeData.js +7 -1
  191. package/package.json +19 -18
  192. package/types/components/BodyCell.d.ts +1 -1
  193. package/types/components/HeaderCell.d.ts +1 -1
  194. package/types/plugins/column-sizing/columnMeasurerTransformer.d.ts +1 -1
  195. package/types/plugins/column-sizing/ext-points/getTableProps.d.ts +1 -1
  196. package/types/plugins/expandable-grid/ExpandedRowExtra.d.ts +1 -1
  197. package/types/plugins/expandable-grid/useExpandGridState.d.ts +4 -4
  198. package/types/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.d.ts +1 -1
  199. package/types/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.d.ts +1 -1
  200. package/types/plugins/filterable/components/filterable-menus/TextFilterMenu.d.ts +1 -1
  201. package/types/plugins/filterable/helper.d.ts +15 -3
  202. package/types/plugins/pagination/components/PerPageDropdown.d.ts +1 -1
  203. package/cjs/package.json +0 -7
  204. package/esm/package.json +0 -7
@@ -3,7 +3,19 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var utils = require('@elliemae/ds-utilities/utils');
6
+ require('core-js/modules/esnext.async-iterator.filter.js');
7
+ require('core-js/modules/esnext.iterator.constructor.js');
8
+ require('core-js/modules/esnext.iterator.filter.js');
9
+ require('core-js/modules/esnext.async-iterator.some.js');
10
+ require('core-js/modules/esnext.iterator.some.js');
11
+ require('core-js/modules/web.dom-collections.iterator.js');
12
+ require('core-js/modules/esnext.async-iterator.for-each.js');
13
+ require('core-js/modules/esnext.iterator.for-each.js');
14
+ require('core-js/modules/esnext.async-iterator.find.js');
15
+ require('core-js/modules/esnext.iterator.find.js');
16
+ require('core-js/modules/esnext.async-iterator.map.js');
17
+ require('core-js/modules/esnext.iterator.map.js');
18
+ var dsUtilities = require('@elliemae/ds-utilities');
7
19
  var moment = require('moment');
8
20
 
9
21
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -14,144 +26,150 @@ var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
14
26
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
15
27
 
16
28
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
17
- const sorter = ({
18
- columns,
19
- sortingColumns,
20
- sort,
21
- emptyLast
22
- } = {}) => data => {
23
- if (!columns) {
24
- throw new Error('sort.sorter - Missing "columns" argument!');
25
- }
26
-
27
- if (!sort) {
28
- throw new Error('sort.sorter - Missing "sort" argument!');
29
- }
30
-
31
- if (!sortingColumns) {
32
- return data;
33
- }
34
-
35
- const columnIndexList = new Array(sortingColumns.length);
36
- const orderList = new Array(sortingColumns.length);
37
- let actualSortFunction = sort;
38
-
39
- if (emptyLast) {
40
- actualSortFunction = (innerData, innerColumnIndexList, innerOrderList) => {
41
- const sortedData = sort(innerData, innerColumnIndexList, innerOrderList);
42
- const keys = Object.keys(sortingColumns);
43
- const withData = sortedData.filter(r => keys.some(key => !!r[key]));
44
- const withoutData = sortedData.filter(r => keys.some(key => !r[key]));
45
- return [...withData, ...withoutData];
46
- };
47
- }
48
-
49
- Object.keys(sortingColumns).forEach(sortingColumnKey => {
50
- const realColumn = columns.find(column => column.property === sortingColumnKey);
51
- if (!realColumn) return;
52
-
53
- const columnSorter = realColumn.sort || function resolveValue(row) {
54
- const {
55
- property,
56
- sortBy
57
- } = realColumn;
58
- const value = row[sortBy || property]; // Pick resolved value by convention
59
-
60
- const resolvedValue = utils.get(row, `_${property}`, value);
61
-
62
- if (realColumn.type === 'DateTime') {
63
- return moment__default["default"](resolvedValue);
64
- }
29
+ const sorter = function () {
30
+ let {
31
+ columns,
32
+ sortingColumns,
33
+ sort,
34
+ emptyLast
35
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
36
+ return data => {
37
+ if (!columns) {
38
+ throw new Error('sort.sorter - Missing "columns" argument!');
39
+ }
40
+
41
+ if (!sort) {
42
+ throw new Error('sort.sorter - Missing "sort" argument!');
43
+ }
44
+
45
+ if (!sortingColumns) {
46
+ return data;
47
+ }
48
+
49
+ const columnIndexList = new Array(sortingColumns.length);
50
+ const orderList = new Array(sortingColumns.length);
51
+ let actualSortFunction = sort;
52
+
53
+ if (emptyLast) {
54
+ actualSortFunction = (innerData, innerColumnIndexList, innerOrderList) => {
55
+ const sortedData = sort(innerData, innerColumnIndexList, innerOrderList);
56
+ const keys = Object.keys(sortingColumns);
57
+ const withData = sortedData.filter(r => keys.some(key => !!r[key]));
58
+ const withoutData = sortedData.filter(r => keys.some(key => !r[key]));
59
+ return [...withData, ...withoutData];
60
+ };
61
+ }
62
+
63
+ Object.keys(sortingColumns).forEach(sortingColumnKey => {
64
+ const realColumn = columns.find(column => column.property === sortingColumnKey);
65
+ if (!realColumn) return;
66
+
67
+ const columnSorter = realColumn.sort || function resolveValue(row) {
68
+ const {
69
+ property,
70
+ sortBy
71
+ } = realColumn;
72
+ const value = row[sortBy || property]; // Pick resolved value by convention
65
73
 
66
- return typeof resolvedValue === 'string' ? resolvedValue.toLowerCase() : resolvedValue;
67
- };
74
+ const resolvedValue = dsUtilities.get(row, "_".concat(property), value);
68
75
 
69
- const sortingColumn = sortingColumns[sortingColumnKey];
70
- columnIndexList[sortingColumn.position] = columnSorter;
71
- orderList[sortingColumn.position] = sortingColumn.direction;
72
- });
73
- return actualSortFunction(data, columnIndexList, orderList);
76
+ if (realColumn.type === 'DateTime') {
77
+ return moment__default["default"](resolvedValue);
78
+ }
79
+
80
+ return typeof resolvedValue === 'string' ? resolvedValue.toLowerCase() : resolvedValue;
81
+ };
82
+
83
+ const sortingColumn = sortingColumns[sortingColumnKey];
84
+ columnIndexList[sortingColumn.position] = columnSorter;
85
+ orderList[sortingColumn.position] = sortingColumn.direction;
86
+ });
87
+ return actualSortFunction(data, columnIndexList, orderList);
88
+ };
74
89
  };
75
- const sorterGroups = ({
76
- columns,
77
- sortingColumns,
78
- sort,
79
- emptyLast
80
- } = {}) => (data, rowsData) => {
81
- if (!columns) {
82
- throw new Error('sort.sorter - Missing "columns" argument!');
83
- }
84
-
85
- if (!sort) {
86
- throw new Error('sort.sorter - Missing "sort" argument!');
87
- }
88
-
89
- if (!sortingColumns) {
90
- return data;
91
- }
92
-
93
- const columnIndexList = new Array(sortingColumns.length);
94
- const orderList = new Array(sortingColumns.length);
95
- let actualSortFunction = sort;
96
-
97
- if (emptyLast) {
98
- actualSortFunction = (innerData, innerColumnIndexList, innerOrderList) => {
99
- const sortedData = sort(innerData, innerColumnIndexList, innerOrderList);
100
- const keys = Object.keys(sortingColumns);
101
- const withData = sortedData.filter(r => keys.some(key => !!r[key]));
102
- const withoutData = sortedData.filter(r => keys.some(key => !r[key]));
103
- return [...withData, ...withoutData];
104
- };
105
- }
106
-
107
- Object.keys(sortingColumns).forEach(sortingColumnKey => {
108
- const realColumn = columns.find(column => column.property === sortingColumnKey);
109
- if (!realColumn) return;
110
-
111
- const columnSorter = realColumn.sort || function resolveValue(row) {
112
- const {
113
- property,
114
- sortBy
115
- } = realColumn;
116
- const value = row[sortBy || property]; // Pick resolved value by convention
117
-
118
- const resolvedValue = utils.get(row, `_${property}`, value);
119
-
120
- if (realColumn.type === 'DateTime') {
121
- return moment__default["default"](resolvedValue);
122
- }
90
+ const sorterGroups = function () {
91
+ let {
92
+ columns,
93
+ sortingColumns,
94
+ sort,
95
+ emptyLast
96
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
97
+ return (data, rowsData) => {
98
+ if (!columns) {
99
+ throw new Error('sort.sorter - Missing "columns" argument!');
100
+ }
101
+
102
+ if (!sort) {
103
+ throw new Error('sort.sorter - Missing "sort" argument!');
104
+ }
105
+
106
+ if (!sortingColumns) {
107
+ return data;
108
+ }
123
109
 
124
- return typeof resolvedValue === 'string' ? resolvedValue.toLowerCase() : resolvedValue;
125
- };
126
-
127
- const sortingColumn = sortingColumns[sortingColumnKey];
128
- columnIndexList[sortingColumn.position] = columnSorter;
129
- orderList[sortingColumn.position] = sortingColumn.direction;
130
- });
131
- const groups = {};
132
- const preserveData = {};
133
- data.forEach(c => {
134
- preserveData[c.id] = _objectSpread({}, c);
135
- });
136
- rowsData.forEach(group => {
137
- groups[group.id] = {
138
- children: actualSortFunction(group.children.map(c => _objectSpread({
139
- parentNode: preserveData[c.id].parentNode,
140
- data: c
141
- }, c)), columnIndexList, orderList) // sort internally
142
-
143
- };
144
- });
145
- const sorted = actualSortFunction(data.map(r => _objectSpread(_objectSpread({}, r.data), r)), columnIndexList, orderList); // sort global
146
-
147
- let ssortGlobal = [];
148
- sorted.filter(s => !s.isGroup).forEach(sr => {
149
- if (groups[sr.parentNode.id]) {
150
- ssortGlobal = [...ssortGlobal, preserveData[sr.parentNode.id], ...groups[sr.parentNode.id].children];
151
- delete groups[sr.parentNode.id];
110
+ const columnIndexList = new Array(sortingColumns.length);
111
+ const orderList = new Array(sortingColumns.length);
112
+ let actualSortFunction = sort;
113
+
114
+ if (emptyLast) {
115
+ actualSortFunction = (innerData, innerColumnIndexList, innerOrderList) => {
116
+ const sortedData = sort(innerData, innerColumnIndexList, innerOrderList);
117
+ const keys = Object.keys(sortingColumns);
118
+ const withData = sortedData.filter(r => keys.some(key => !!r[key]));
119
+ const withoutData = sortedData.filter(r => keys.some(key => !r[key]));
120
+ return [...withData, ...withoutData];
121
+ };
152
122
  }
153
- });
154
- return ssortGlobal;
123
+
124
+ Object.keys(sortingColumns).forEach(sortingColumnKey => {
125
+ const realColumn = columns.find(column => column.property === sortingColumnKey);
126
+ if (!realColumn) return;
127
+
128
+ const columnSorter = realColumn.sort || function resolveValue(row) {
129
+ const {
130
+ property,
131
+ sortBy
132
+ } = realColumn;
133
+ const value = row[sortBy || property]; // Pick resolved value by convention
134
+
135
+ const resolvedValue = dsUtilities.get(row, "_".concat(property), value);
136
+
137
+ if (realColumn.type === 'DateTime') {
138
+ return moment__default["default"](resolvedValue);
139
+ }
140
+
141
+ return typeof resolvedValue === 'string' ? resolvedValue.toLowerCase() : resolvedValue;
142
+ };
143
+
144
+ const sortingColumn = sortingColumns[sortingColumnKey];
145
+ columnIndexList[sortingColumn.position] = columnSorter;
146
+ orderList[sortingColumn.position] = sortingColumn.direction;
147
+ });
148
+ const groups = {};
149
+ const preserveData = {};
150
+ data.forEach(c => {
151
+ preserveData[c.id] = _objectSpread({}, c);
152
+ });
153
+ rowsData.forEach(group => {
154
+ groups[group.id] = {
155
+ children: actualSortFunction(group.children.map(c => _objectSpread({
156
+ parentNode: preserveData[c.id].parentNode,
157
+ data: c
158
+ }, c)), columnIndexList, orderList) // sort internally
159
+
160
+ };
161
+ });
162
+ const sorted = actualSortFunction(data.map(r => _objectSpread(_objectSpread({}, r.data), r)), columnIndexList, orderList); // sort global
163
+
164
+ let ssortGlobal = [];
165
+ sorted.filter(s => !s.isGroup).forEach(sr => {
166
+ if (groups[sr.parentNode.id]) {
167
+ ssortGlobal = [...ssortGlobal, preserveData[sr.parentNode.id], ...groups[sr.parentNode.id].children];
168
+ delete groups[sr.parentNode.id];
169
+ }
170
+ });
171
+ return ssortGlobal;
172
+ };
155
173
  };
156
174
 
157
175
  exports.sorter = sorter;
@@ -3,6 +3,14 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ require('core-js/modules/web.dom-collections.iterator.js');
7
+ require('core-js/modules/esnext.async-iterator.find.js');
8
+ require('core-js/modules/esnext.iterator.constructor.js');
9
+ require('core-js/modules/esnext.iterator.find.js');
10
+ require('core-js/modules/esnext.async-iterator.filter.js');
11
+ require('core-js/modules/esnext.iterator.filter.js');
12
+ require('core-js/modules/esnext.async-iterator.for-each.js');
13
+ require('core-js/modules/esnext.iterator.for-each.js');
6
14
  var sortabular = require('sortabular/dist/index.js');
7
15
  var useDerivedStateFromProps = require('@elliemae/ds-utilities/hooks/useDerivedStateFromProps');
8
16
  var checkIfSortable = require('./checkIfSortable.js');
@@ -4,9 +4,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _jsx = require('@babel/runtime/helpers/jsx');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
+ require('core-js/modules/web.dom-collections.iterator.js');
8
+ require('core-js/modules/esnext.async-iterator.filter.js');
9
+ require('core-js/modules/esnext.iterator.constructor.js');
10
+ require('core-js/modules/esnext.iterator.filter.js');
11
+ require('core-js/modules/esnext.async-iterator.for-each.js');
12
+ require('core-js/modules/esnext.iterator.for-each.js');
7
13
  var React = require('react');
8
14
  var lodash = require('lodash');
9
- var utils = require('@elliemae/ds-utilities/utils');
15
+ var dsUtilities = require('@elliemae/ds-utilities');
10
16
  var ToolbarTrigger = require('./ToolbarTrigger.js');
11
17
  var rowSizes = require('../../rowSizes.js');
12
18
  var jsxRuntime = require('react/jsx-runtime');
@@ -54,7 +60,7 @@ const RowRenderer = (Row, grid) => {
54
60
  setHasVerticalScrollBar(false);
55
61
  }
56
62
 
57
- setRowStyle(utils.omit(style || {
63
+ setRowStyle(dsUtilities.omit(style || {
58
64
  height: !wrapText ? rowSizes.RowSizes[gridInstance.props.rowSize] : 'auto',
59
65
  position: 'relative'
60
66
  }, [shouldOmit]));
@@ -71,7 +77,7 @@ const RowRenderer = (Row, grid) => {
71
77
  }, props), {}, {
72
78
  style: rowStyle
73
79
  })), lodash.isEmpty(rowData) && !rowData.index && !rowData.rowIndex ? null : /*#__PURE__*/_jsx__default["default"]("div", {
74
- className: `toolbar-trigger-container ${style ? 'move' : 'stay'}`,
80
+ className: "toolbar-trigger-container ".concat(style ? 'move' : 'stay'),
75
81
  style: _objectSpread({}, popStyle)
76
82
  }, void 0, /*#__PURE__*/_jsx__default["default"](ToolbarTrigger.ToolbarTrigger, {
77
83
  grid: grid,
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _jsx = require('@babel/runtime/helpers/jsx');
6
+ require('core-js/modules/web.dom-collections.iterator.js');
6
7
  require('react');
7
8
  var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
8
9
  var initColumnDefinition = require('@elliemae/ds-shared/useDataGrid/initColumnDefinition');
@@ -4,10 +4,16 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _jsx = require('@babel/runtime/helpers/jsx');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
+ require('core-js/modules/web.dom-collections.iterator.js');
8
+ require('core-js/modules/esnext.async-iterator.filter.js');
9
+ require('core-js/modules/esnext.iterator.constructor.js');
10
+ require('core-js/modules/esnext.iterator.filter.js');
11
+ require('core-js/modules/esnext.async-iterator.for-each.js');
12
+ require('core-js/modules/esnext.iterator.for-each.js');
7
13
  var React = require('react');
8
14
  var styled = require('styled-components');
9
- var DSButton = require('@elliemae/ds-basic/Button');
10
- var MoreOptionsVert = require('@elliemae/ds-icons/MoreOptionsVert');
15
+ var DSButton = require('@elliemae/ds-button');
16
+ var dsIcons = require('@elliemae/ds-icons');
11
17
 
12
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
19
 
@@ -15,7 +21,6 @@ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
15
21
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
16
22
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
17
23
  var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
18
- var MoreOptionsVert__default = /*#__PURE__*/_interopDefaultLegacy(MoreOptionsVert);
19
24
 
20
25
  var _MoreOptionsVert;
21
26
 
@@ -27,18 +32,18 @@ const ToolbarBtns = /*#__PURE__*/styled__default["default"].div.withConfig({
27
32
  })(["& > .em-ds-toolbar{box-shadow:none;}"]);
28
33
  const ToolbarWrapper = /*#__PURE__*/styled__default["default"].div.withConfig({
29
34
  componentId: "sc-pm75g5-1"
30
- })(["display:flex;align-items:center;height:", ";margin-left:-4px;margin-right:", ";padding-right:4px;pointer-events:all;background:white;", " &:hover{box-shadow:-1px 0px 1px 0px rgba(0,0,0,0.2),1px 0px 2px 0px rgba(0,0,0,0.2);& > .toolbar-trigger{border:none;}}"], props => props.rowSize === 'normal' ? '36px' : '28px', props => props.hasScrollBar ? '0' : '-10px', props => props.showShadow ? `box-shadow: -1px 0px 1px 0px rgba(0, 0, 0, 0.2),
31
- 1px 0px 2px 0px rgba(0, 0, 0, 0.2);` : '');
35
+ })(["display:flex;align-items:center;height:", ";margin-left:-4px;margin-right:", ";padding-right:4px;pointer-events:all;background:white;", " &:hover{box-shadow:-1px 0px 1px 0px rgba(0,0,0,0.2),1px 0px 2px 0px rgba(0,0,0,0.2);& > .toolbar-trigger{border:none;}}"], props => props.rowSize === 'normal' ? '36px' : '28px', props => props.hasScrollBar ? '0' : '-10px', props => props.showShadow ? "box-shadow: -1px 0px 1px 0px rgba(0, 0, 0, 0.2),\n 1px 0px 2px 0px rgba(0, 0, 0, 0.2);" : '');
32
36
  const ToolbarPosition = /*#__PURE__*/styled__default["default"].div.withConfig({
33
37
  componentId: "sc-pm75g5-2"
34
- })(["position:absolute;z-index:10;display:flex;justify-content:flex-end;align-items:center;width:0;pointer-events:none;top:0;height:", ";margin-top:", ";"], props => props.rowRef.current ? `${props.rowRef.current.offsetHeight}px` : '36px', props => props.rowSize === 'normal' ? '0' : '0'); // eslint-disable-next-line react/prop-types
38
+ })(["position:absolute;z-index:10;display:flex;justify-content:flex-end;align-items:center;width:0;pointer-events:none;top:0;height:", ";margin-top:", ";"], props => props.rowRef.current ? "".concat(props.rowRef.current.offsetHeight, "px") : '36px', props => props.rowSize === 'normal' ? '0' : '0'); // eslint-disable-next-line react/prop-types
35
39
 
36
- const ToolbarTrigger = ({
37
- grid,
38
- rowData,
39
- hasScrollBar,
40
- rowRef
41
- }) => {
40
+ const ToolbarTrigger = _ref => {
41
+ let {
42
+ grid,
43
+ rowData,
44
+ hasScrollBar,
45
+ rowRef
46
+ } = _ref;
42
47
  const {
43
48
  props: {
44
49
  renderToolbar,
@@ -69,7 +74,7 @@ const ToolbarTrigger = ({
69
74
  buttonType: "text",
70
75
  className: "toolbar-trigger",
71
76
  "data-testid": "toolbar-trigger",
72
- icon: _MoreOptionsVert || (_MoreOptionsVert = /*#__PURE__*/_jsx__default["default"](MoreOptionsVert__default["default"], {})) // eslint-disable-next-line react/prop-types
77
+ icon: _MoreOptionsVert || (_MoreOptionsVert = /*#__PURE__*/_jsx__default["default"](dsIcons.MoreOptionsVert, {})) // eslint-disable-next-line react/prop-types
73
78
  ,
74
79
  index: rowData.index,
75
80
  onClick: () => setShow(true),
@@ -1,19 +1,21 @@
1
1
  'use strict';
2
2
 
3
+ require('core-js/modules/esnext.async-iterator.filter.js');
4
+ require('core-js/modules/esnext.iterator.constructor.js');
5
+ require('core-js/modules/esnext.iterator.filter.js');
6
+ require('core-js/modules/esnext.async-iterator.for-each.js');
7
+ require('core-js/modules/esnext.iterator.for-each.js');
3
8
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
9
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
10
  var React = require('react');
6
11
  var reactWindow = require('react-window');
7
- var utils = require('@elliemae/ds-utilities/utils');
8
- var system = require('@elliemae/ds-utilities/system');
9
- var useWindowScrollerList = require('@elliemae/ds-utilities/hooks/useWindowScrollerList');
12
+ var dsUtilities = require('@elliemae/ds-utilities');
10
13
  var jsxRuntime = require('react/jsx-runtime');
11
14
 
12
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
16
 
14
17
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
15
18
  var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
16
- var useWindowScrollerList__default = /*#__PURE__*/_interopDefaultLegacy(useWindowScrollerList);
17
19
 
18
20
  const _excluded = ["itemCount", "className", "innerRef", "itemData", "itemKey", "itemSize", "outerRef", "component"];
19
21
 
@@ -35,20 +37,20 @@ const AutoHeightList = /*#__PURE__*/React.forwardRef((_ref, ref) => {
35
37
 
36
38
  const listRef = React.useRef();
37
39
  const outerListRef = React.useRef();
38
- useWindowScrollerList__default["default"]({
40
+ dsUtilities.useWindowScrollerList({
39
41
  listInstance: listRef,
40
42
  outerListRef
41
43
  });
42
44
  return /*#__PURE__*/jsxRuntime.jsx(ListComponent, _objectSpread(_objectSpread({}, otherProps), {}, {
43
- ref: system.mergeRefs(ref, listRef),
44
- className: utils.cx(className, 'window-scroller-override'),
45
+ ref: dsUtilities.mergeRefs(ref, listRef),
46
+ className: dsUtilities.cx(className, 'window-scroller-override'),
45
47
  height: window.innerHeight,
46
48
  innerRef: innerRef,
47
49
  itemCount: itemCount,
48
50
  itemData: itemData,
49
51
  itemKey: itemKey,
50
52
  itemSize: itemSize,
51
- outerRef: system.mergeRefs(outerListRef, outerRef),
53
+ outerRef: dsUtilities.mergeRefs(outerListRef, outerRef),
52
54
  overscanCount: 10,
53
55
  useIsScrolling: true
54
56
  }));
@@ -2,13 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
5
10
  var _jsx = require('@babel/runtime/helpers/jsx');
6
11
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
12
  var React = require('react');
8
13
  var lodash = require('lodash');
9
14
  var FocusGridManager = require('@elliemae/ds-shared/FocusGroup/FocusGrid');
10
- var utils = require('@elliemae/ds-utilities/utils');
11
- var system = require('@elliemae/ds-utilities/system');
15
+ var dsUtilities = require('@elliemae/ds-utilities');
12
16
  var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
13
17
  var VirtualizedBody = require('./VirtualizedBody.js');
14
18
  var jsxRuntime = require('react/jsx-runtime');
@@ -52,33 +56,36 @@ const VirtualizationPlugin = createInstancePlugin__default["default"]('virtualiz
52
56
  const listRef = React.useRef();
53
57
 
54
58
  const nextListProps = _objectSpread(_objectSpread({}, listProps), {}, {
55
- ref: system.mergeRefs(listRef, listProps.ref)
59
+ ref: dsUtilities.mergeRefs(listRef, listProps.ref)
56
60
  });
57
61
 
58
62
  return /*#__PURE__*/_jsx__default["default"](FocusGridManager__default["default"], {
59
63
  hotKeys: hotKeys,
60
- keyBindings: ({
61
- defaultBindings
62
- }) => _objectSpread(_objectSpread({}, defaultBindings), {}, {
63
- // todo: this is kind of hacky, since it's virtualized and there's
64
- // the possibility that the firsts or lasts rows aren't rendered
65
- Home: utils.runAll(e => {
66
- if (e.ctrlKey) {
67
- listRef.current.scrollToItem(0);
68
- setTimeout(() => defaultBindings.Home(e), 10);
69
- } else {
70
- defaultBindings.Home(e);
71
- }
72
- }),
73
- End: utils.runAll(e => {
74
- if (e.ctrlKey) {
75
- listRef.current.scrollToItem(rows.length - 1);
76
- setTimeout(() => defaultBindings.End(e), 10);
77
- } else {
78
- defaultBindings.End(e);
79
- }
80
- })
81
- }),
64
+ keyBindings: _ref => {
65
+ let {
66
+ defaultBindings
67
+ } = _ref;
68
+ return _objectSpread(_objectSpread({}, defaultBindings), {}, {
69
+ // todo: this is kind of hacky, since it's virtualized and there's
70
+ // the possibility that the firsts or lasts rows aren't rendered
71
+ Home: dsUtilities.runAll(e => {
72
+ if (e.ctrlKey) {
73
+ listRef.current.scrollToItem(0);
74
+ setTimeout(() => defaultBindings.Home(e), 10);
75
+ } else {
76
+ defaultBindings.Home(e);
77
+ }
78
+ }),
79
+ End: dsUtilities.runAll(e => {
80
+ if (e.ctrlKey) {
81
+ listRef.current.scrollToItem(rows.length - 1);
82
+ setTimeout(() => defaultBindings.End(e), 10);
83
+ } else {
84
+ defaultBindings.End(e);
85
+ }
86
+ })
87
+ });
88
+ },
82
89
  shouldRefocus: false
83
90
  }, void 0, /*#__PURE__*/jsxRuntime.jsx(VirtualizedBody, _objectSpread(_objectSpread({}, props), {}, {
84
91
  autoScrollToId: autoScrollToId,
@@ -2,9 +2,18 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _jsx = require('@babel/runtime/helpers/jsx');
5
+ require('core-js/modules/web.dom-collections.iterator.js');
6
+ require('core-js/modules/esnext.async-iterator.reduce.js');
7
+ require('core-js/modules/esnext.iterator.constructor.js');
8
+ require('core-js/modules/esnext.iterator.reduce.js');
9
+ require('core-js/modules/esnext.async-iterator.map.js');
10
+ require('core-js/modules/esnext.iterator.map.js');
11
+ require('core-js/modules/esnext.async-iterator.filter.js');
12
+ require('core-js/modules/esnext.iterator.filter.js');
13
+ require('core-js/modules/esnext.async-iterator.for-each.js');
14
+ require('core-js/modules/esnext.iterator.for-each.js');
5
15
  var React = require('react');
6
- var system = require('@elliemae/ds-utilities/system');
7
- var utils = require('@elliemae/ds-utilities/utils');
16
+ var dsUtilities = require('@elliemae/ds-utilities');
8
17
  var NoResults = require('../../components/NoResults.js');
9
18
  var VirtualizedBodyRow = require('./VirtualizedBodyRow.js');
10
19
  var rowSizes = require('../../rowSizes.js');
@@ -97,9 +106,10 @@ const VirtualizedBody = props => {
97
106
  React.useEffect(() => {
98
107
  autoScrollTo(visibleHeight);
99
108
  }, [autoScrollToId, visibleHeight]);
100
- const handler = React.useCallback(utils.debounce(({
101
- target
102
- }) => {
109
+ const handler = React.useCallback(dsUtilities.debounce(_ref => {
110
+ let {
111
+ target
112
+ } = _ref;
103
113
  // Update coordinates
104
114
  setScrollTop(target.scrollTop || 0);
105
115
  }, 100), [setScrollTop]);
@@ -144,7 +154,7 @@ const VirtualizedBody = props => {
144
154
  if (virtualizedBodyRef) {
145
155
  const parsedVisibleHeight = parseFloat(window.getComputedStyle(virtualizedBodyRef, null).getPropertyValue('height')); // eslint-disable-next-line no-restricted-globals
146
156
 
147
- if (!utils.isNaN(parsedVisibleHeight)) {
157
+ if (!dsUtilities.isNaN(parsedVisibleHeight)) {
148
158
  setVisibleHeight(parsedVisibleHeight);
149
159
  autoScrollTo(parsedVisibleHeight);
150
160
  }
@@ -234,19 +244,19 @@ const VirtualizedBody = props => {
234
244
  setVirtualizedBodyRef(elem.parentElement); // eslint-disable-next-line no-param-reassign
235
245
 
236
246
  elem.parentElement.scrollTop = scrollTop;
237
- system.mergeRefs(listProps.outerRef)(elem.parentElement);
247
+ dsUtilities.mergeRefs(listProps.outerRef)(elem.parentElement);
238
248
  } else {
239
249
  setVirtualizedBodyRef(elem);
240
- system.mergeRefs(listProps.outerRef)(elem);
250
+ dsUtilities.mergeRefs(listProps.outerRef)(elem);
241
251
  }
242
252
  }
243
253
  },
244
254
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
245
255
  "data-testid": "virtualized-body",
246
- className: `virtualized-body${hasScrollBar ? ' with-scrollbar' : ''}`,
256
+ className: "virtualized-body".concat(hasScrollBar ? ' with-scrollbar' : ''),
247
257
  style: bodyStyle,
248
258
  ref: r => {
249
- system.mergeRefs(innerBody)(r);
259
+ dsUtilities.mergeRefs(innerBody)(r);
250
260
  },
251
261
  children: generateRenderedRows()
252
262
  })
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
2
 
3
- function VirtualizedBodyRow({
4
- data,
5
- index,
6
- style,
7
- key,
8
- isScrolling
9
- }) {
3
+ function VirtualizedBodyRow(_ref) {
4
+ let {
5
+ data,
6
+ index,
7
+ style,
8
+ key,
9
+ isScrolling
10
+ } = _ref;
10
11
  const {
11
12
  rows,
12
13
  renderer: {