@elliemae/ds-datagrids 2.0.0-alpha.10 → 2.0.0-alpha.14

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 (208) 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 +9 -6
  37. package/cjs/plugins/editable/EditableComponents/TextBox.js +22 -17
  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 +28 -23
  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 +21 -20
  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 +8 -4
  132. package/esm/plugins/editable/EditableComponents/TextBox.js +21 -15
  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 +28 -22
  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 +20 -19
  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 +27 -18
  192. package/types/DSDataGrid.d.ts +744 -105
  193. package/types/components/BodyCell.d.ts +1 -1
  194. package/types/components/HeaderCell.d.ts +1 -1
  195. package/types/plugins/column-sizing/columnMeasurerTransformer.d.ts +1 -1
  196. package/types/plugins/column-sizing/ext-points/getTableProps.d.ts +1 -1
  197. package/types/plugins/expandable-grid/ExpandedRowExtra.d.ts +1 -1
  198. package/types/plugins/expandable-grid/useExpandGridState.d.ts +4 -4
  199. package/types/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.d.ts +1 -1
  200. package/types/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.d.ts +1 -1
  201. package/types/plugins/filterable/components/filterable-menus/TextFilterMenu.d.ts +1 -1
  202. package/types/plugins/filterable/helper.d.ts +15 -3
  203. package/types/plugins/pagination/components/Paginator.d.ts +1 -1
  204. package/types/plugins/pagination/components/PerPageDropdown.d.ts +1 -1
  205. package/types/plugins/sortable/sorter.d.ts +1 -1
  206. package/types/renders/styled.d.ts +3 -3
  207. package/cjs/package.json +0 -7
  208. package/esm/package.json +0 -7
@@ -1,6 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ require('core-js/modules/esnext.async-iterator.map.js');
5
+ require('core-js/modules/esnext.iterator.map.js');
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.for-each.js');
10
+ require('core-js/modules/esnext.iterator.for-each.js');
4
11
  var sortabular = require('sortabular');
5
12
 
6
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -30,9 +37,12 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
30
37
 
31
38
  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; }
32
39
 
33
- const deepSorting = (sortConfig, rows = []) => sortabular__namespace.sorter(sortConfig)(rows.map(row => row.children && row.children.length ? _objectSpread(_objectSpread({}, row), {}, {
34
- children: deepSorting(sortConfig, row.children)
35
- }) : row));
40
+ const deepSorting = function (sortConfig) {
41
+ let rows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
42
+ return sortabular__namespace.sorter(sortConfig)(rows.map(row => row.children && row.children.length ? _objectSpread(_objectSpread({}, row), {}, {
43
+ children: deepSorting(sortConfig, row.children)
44
+ }) : row));
45
+ };
36
46
 
37
47
  function sortTree(sortConfig) {
38
48
  return rows => deepSorting(sortConfig, rows);
@@ -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,