@elliemae/ds-datagrids 2.0.0-next.0 → 2.0.0-next.12
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.
- package/cjs/DSDataGrid.js +246 -243
- package/cjs/DataGridImpl.js +18 -9
- package/cjs/PaginatedDataGrid.js +5 -0
- package/cjs/blockNames.js +2 -2
- package/cjs/columns/IconColumn.js +19 -17
- package/cjs/columns/NumberColumn.js +2 -4
- package/cjs/components/BodyCell.js +20 -12
- package/cjs/components/BodyList.js +7 -0
- package/cjs/components/ColumnVisibilityMenuOption.js +12 -6
- package/cjs/components/ColumnsOptionsMenuSection.js +35 -28
- package/cjs/components/EmptyState.js +19 -17
- package/cjs/components/HeaderCell.js +15 -9
- package/cjs/components/List.js +5 -0
- package/cjs/components/ListItem.js +7 -0
- package/cjs/components/NoResults.js +5 -0
- package/cjs/components/RowsLoader.js +5 -4
- package/cjs/components/Table.js +5 -0
- package/cjs/components/TableBody.js +5 -0
- package/cjs/components/TableHeader.js +5 -0
- package/cjs/components/footer/addOptionalFooterComponents.js +5 -4
- package/cjs/components/header/PrimaryControls.js +20 -15
- package/cjs/components/header/addOptionalHeaderComponents.js +4 -3
- package/cjs/components/renderers/defaultClassedRenderers.js +35 -23
- package/cjs/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js +50 -39
- package/cjs/plugins/column-dnd/DndColumnsPlugin.js +11 -7
- package/cjs/plugins/column-dnd/decorateGridWithDndColumns.js +2 -3
- package/cjs/plugins/column-sizing/ColumnSizingPlugin.js +11 -9
- package/cjs/plugins/column-sizing/columnMeasurerTransformer.js +13 -6
- package/cjs/plugins/column-sizing/ext-points/decorateColumn.js +3 -3
- package/cjs/plugins/column-sizing/ext-points/getTableProps.js +23 -17
- package/cjs/plugins/column-sizing/useColumnSizeService.js +13 -3
- package/cjs/plugins/column-sizing/useStylesheetHelpers.js +69 -53
- package/cjs/plugins/column-sizing/utils.js +10 -6
- package/cjs/plugins/custom-cell-renderer/addCustomRendererToCell.js +9 -4
- package/cjs/plugins/custom-cell-renderer/getRendererComponent.js +20 -21
- package/cjs/plugins/editable/EditableComponents/ComboBox.js +7 -3
- package/cjs/plugins/editable/EditableComponents/TextBox.js +20 -14
- package/cjs/plugins/editable/EditablePlugin.js +16 -15
- package/cjs/plugins/editable/decorateEditable.js +19 -11
- package/cjs/plugins/editable/getEditorComponent.js +45 -34
- package/cjs/plugins/expandable-grid/ExpandableColumn.js +60 -53
- package/cjs/plugins/expandable-grid/ExpandablePlugin.js +38 -26
- package/cjs/plugins/expandable-grid/ExpandedRow.js +28 -18
- package/cjs/plugins/expandable-grid/ExpandedRowExtra.js +18 -12
- package/cjs/plugins/expandable-grid/useExpandGridState.js +4 -8
- package/cjs/plugins/export-data/ExportDataPlugin.js +31 -17
- package/cjs/plugins/filterable/FilterablePlugin.js +7 -6
- package/cjs/plugins/filterable/addFilterToColumn.js +5 -0
- package/cjs/plugins/filterable/components/FilterableHeader.js +36 -27
- package/cjs/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js +41 -34
- package/cjs/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js +27 -22
- package/cjs/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js +122 -156
- package/cjs/plugins/filterable/components/filterable-menus/TextFilterMenu.js +29 -20
- package/cjs/plugins/filterable/filterableFormatter.js +15 -10
- package/cjs/plugins/filterable/filtering-helper/filterRowsByQuery.js +16 -4
- package/cjs/plugins/filterable/filtering-helper/strategiesOperators.js +7 -4
- package/cjs/plugins/filterable/helper.js +17 -7
- package/cjs/plugins/filterable/useFilterableState.js +12 -5
- package/cjs/plugins/grouping-by/GroupingByPlugin.js +3 -1
- package/cjs/plugins/grouping-grid/GroupingPlugin.js +10 -1
- package/cjs/plugins/grouping-grid/walkStrategy.js +13 -9
- package/cjs/plugins/infinite-scrolling/InfiniteScrollPlugin.js +8 -1
- package/cjs/plugins/pagination/PaginationPlugin.js +9 -2
- package/cjs/plugins/pagination/components/Pagination.js +10 -9
- package/cjs/plugins/pagination/components/Paginator.js +8 -7
- package/cjs/plugins/pagination/components/PerPageDropdown.js +20 -13
- package/cjs/plugins/pagination/helper.js +10 -7
- package/cjs/plugins/pagination/usePaginationState.js +8 -3
- package/cjs/plugins/resizable/ResizablePlugin.js +5 -4
- package/cjs/plugins/resizable/decorateResizable.js +14 -8
- package/cjs/plugins/resizable/useResizeHandle.js +21 -16
- package/cjs/plugins/resizable/utils.js +9 -6
- package/cjs/plugins/row-dnd/DndRowsPlugin.js +24 -16
- package/cjs/plugins/selectable/SelectablePlugin.js +11 -10
- package/cjs/plugins/selectable/addSelectableColumn.js +24 -16
- package/cjs/plugins/selectable/helper.js +12 -3
- package/cjs/plugins/selectable/selectableFormatter.js +80 -71
- package/cjs/plugins/selectable/useSelectableState.js +25 -11
- package/cjs/plugins/sortable/SortablePlugin.js +8 -7
- package/cjs/plugins/sortable/sortHeaderFormatter.js +14 -15
- package/cjs/plugins/sortable/sortTree.js +13 -3
- package/cjs/plugins/sortable/sorter.js +152 -134
- package/cjs/plugins/sortable/useSortableState.js +8 -0
- package/cjs/plugins/toolbar/RowRenderer.js +9 -3
- package/cjs/plugins/toolbar/ToolbarPlugin.js +1 -0
- package/cjs/plugins/toolbar/ToolbarTrigger.js +18 -13
- package/cjs/plugins/virtualization/AutoHeightList.js +10 -8
- package/cjs/plugins/virtualization/VirtualizationPlugin.js +32 -25
- package/cjs/plugins/virtualization/VirtualizedBody.js +20 -10
- package/cjs/plugins/virtualization/VirtualizedBodyRow.js +8 -7
- package/cjs/renders/CellWithAddons.js +20 -18
- package/cjs/renders/styled.js +5 -16
- package/cjs/utilities/getPluginsFromProps.js +5 -1
- package/cjs/utilities/getScrollbarSize.js +2 -1
- package/cjs/utilities/normalizeData.js +7 -1
- package/esm/DSDataGrid.js +246 -243
- package/esm/DataGridImpl.js +18 -9
- package/esm/PaginatedDataGrid.js +5 -0
- package/esm/blockNames.js +2 -2
- package/esm/columns/IconColumn.js +19 -17
- package/esm/columns/NumberColumn.js +2 -4
- package/esm/components/BodyCell.js +20 -12
- package/esm/components/BodyList.js +7 -0
- package/esm/components/ColumnVisibilityMenuOption.js +12 -6
- package/esm/components/ColumnsOptionsMenuSection.js +35 -28
- package/esm/components/EmptyState.js +18 -15
- package/esm/components/HeaderCell.js +15 -9
- package/esm/components/List.js +5 -0
- package/esm/components/ListItem.js +7 -0
- package/esm/components/NoResults.js +5 -0
- package/esm/components/RowsLoader.js +5 -4
- package/esm/components/Table.js +5 -0
- package/esm/components/TableBody.js +5 -0
- package/esm/components/TableHeader.js +5 -0
- package/esm/components/footer/addOptionalFooterComponents.js +5 -4
- package/esm/components/header/PrimaryControls.js +20 -14
- package/esm/components/header/addOptionalHeaderComponents.js +4 -3
- package/esm/components/renderers/defaultClassedRenderers.js +35 -23
- package/esm/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js +50 -39
- package/esm/plugins/column-dnd/DndColumnsPlugin.js +8 -4
- package/esm/plugins/column-dnd/decorateGridWithDndColumns.js +1 -1
- package/esm/plugins/column-sizing/ColumnSizingPlugin.js +10 -8
- package/esm/plugins/column-sizing/columnMeasurerTransformer.js +12 -5
- package/esm/plugins/column-sizing/ext-points/decorateColumn.js +1 -1
- package/esm/plugins/column-sizing/ext-points/getTableProps.js +22 -15
- package/esm/plugins/column-sizing/useColumnSizeService.js +13 -3
- package/esm/plugins/column-sizing/useStylesheetHelpers.js +67 -51
- package/esm/plugins/column-sizing/utils.js +8 -4
- package/esm/plugins/custom-cell-renderer/addCustomRendererToCell.js +6 -1
- package/esm/plugins/custom-cell-renderer/getRendererComponent.js +15 -11
- package/esm/plugins/editable/EditableComponents/ComboBox.js +6 -1
- package/esm/plugins/editable/EditableComponents/TextBox.js +19 -12
- package/esm/plugins/editable/EditablePlugin.js +14 -12
- package/esm/plugins/editable/decorateEditable.js +18 -9
- package/esm/plugins/editable/getEditorComponent.js +49 -38
- package/esm/plugins/expandable-grid/ExpandableColumn.js +59 -50
- package/esm/plugins/expandable-grid/ExpandablePlugin.js +34 -20
- package/esm/plugins/expandable-grid/ExpandedRow.js +27 -17
- package/esm/plugins/expandable-grid/ExpandedRowExtra.js +17 -11
- package/esm/plugins/expandable-grid/useExpandGridState.js +2 -2
- package/esm/plugins/export-data/ExportDataPlugin.js +30 -16
- package/esm/plugins/filterable/FilterablePlugin.js +5 -4
- package/esm/plugins/filterable/addFilterToColumn.js +5 -0
- package/esm/plugins/filterable/components/FilterableHeader.js +32 -22
- package/esm/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js +41 -33
- package/esm/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js +27 -21
- package/esm/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js +121 -154
- package/esm/plugins/filterable/components/filterable-menus/TextFilterMenu.js +28 -18
- package/esm/plugins/filterable/filterableFormatter.js +15 -10
- package/esm/plugins/filterable/filtering-helper/filterRowsByQuery.js +14 -2
- package/esm/plugins/filterable/filtering-helper/strategiesOperators.js +7 -4
- package/esm/plugins/filterable/helper.js +11 -1
- package/esm/plugins/filterable/useFilterableState.js +12 -5
- package/esm/plugins/grouping-by/GroupingByPlugin.js +3 -1
- package/esm/plugins/grouping-grid/GroupingPlugin.js +10 -1
- package/esm/plugins/grouping-grid/walkStrategy.js +13 -9
- package/esm/plugins/infinite-scrolling/InfiniteScrollPlugin.js +8 -1
- package/esm/plugins/pagination/PaginationPlugin.js +8 -1
- package/esm/plugins/pagination/components/Pagination.js +10 -9
- package/esm/plugins/pagination/components/Paginator.js +8 -7
- package/esm/plugins/pagination/components/PerPageDropdown.js +17 -9
- package/esm/plugins/pagination/helper.js +10 -7
- package/esm/plugins/pagination/usePaginationState.js +7 -1
- package/esm/plugins/resizable/ResizablePlugin.js +4 -3
- package/esm/plugins/resizable/decorateResizable.js +14 -8
- package/esm/plugins/resizable/useResizeHandle.js +21 -16
- package/esm/plugins/resizable/utils.js +7 -4
- package/esm/plugins/row-dnd/DndRowsPlugin.js +22 -13
- package/esm/plugins/selectable/SelectablePlugin.js +10 -9
- package/esm/plugins/selectable/addSelectableColumn.js +24 -16
- package/esm/plugins/selectable/helper.js +10 -1
- package/esm/plugins/selectable/selectableFormatter.js +79 -68
- package/esm/plugins/selectable/useSelectableState.js +20 -5
- package/esm/plugins/sortable/SortablePlugin.js +5 -4
- package/esm/plugins/sortable/sortHeaderFormatter.js +12 -11
- package/esm/plugins/sortable/sortTree.js +13 -3
- package/esm/plugins/sortable/sorter.js +152 -134
- package/esm/plugins/sortable/useSortableState.js +8 -0
- package/esm/plugins/toolbar/RowRenderer.js +8 -2
- package/esm/plugins/toolbar/ToolbarPlugin.js +1 -0
- package/esm/plugins/toolbar/ToolbarTrigger.js +17 -11
- package/esm/plugins/virtualization/AutoHeightList.js +6 -3
- package/esm/plugins/virtualization/VirtualizationPlugin.js +31 -24
- package/esm/plugins/virtualization/VirtualizedBody.js +16 -6
- package/esm/plugins/virtualization/VirtualizedBodyRow.js +8 -7
- package/esm/renders/CellWithAddons.js +15 -14
- package/esm/renders/styled.js +3 -15
- package/esm/utilities/getPluginsFromProps.js +5 -1
- package/esm/utilities/getScrollbarSize.js +2 -1
- package/esm/utilities/normalizeData.js +7 -1
- package/package.json +19 -18
- package/types/components/BodyCell.d.ts +1 -1
- package/types/components/HeaderCell.d.ts +1 -1
- package/types/plugins/column-sizing/columnMeasurerTransformer.d.ts +1 -1
- package/types/plugins/column-sizing/ext-points/getTableProps.d.ts +1 -1
- package/types/plugins/expandable-grid/ExpandedRowExtra.d.ts +1 -1
- package/types/plugins/expandable-grid/useExpandGridState.d.ts +4 -4
- package/types/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.d.ts +1 -1
- package/types/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.d.ts +1 -1
- package/types/plugins/filterable/components/filterable-menus/TextFilterMenu.d.ts +1 -1
- package/types/plugins/filterable/helper.d.ts +15 -3
- package/types/plugins/pagination/components/PerPageDropdown.d.ts +1 -1
- package/cjs/package.json +0 -7
- package/esm/package.json +0 -7
|
@@ -4,10 +4,16 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
6
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
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 reactSortableHoc = require('react-sortable-hoc');
|
|
9
|
-
var
|
|
10
|
-
var
|
|
15
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
16
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
11
17
|
var initColumnDefinition = require('@elliemae/ds-shared/useDataGrid/initColumnDefinition');
|
|
12
18
|
var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
|
|
13
19
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -16,7 +22,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
16
22
|
|
|
17
23
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
18
24
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
19
|
-
var GripperVertical__default = /*#__PURE__*/_interopDefaultLegacy(GripperVertical);
|
|
20
25
|
var createInstancePlugin__default = /*#__PURE__*/_interopDefaultLegacy(createInstancePlugin);
|
|
21
26
|
|
|
22
27
|
var _GripperVertical, _DragHandle;
|
|
@@ -25,19 +30,22 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
25
30
|
|
|
26
31
|
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; }
|
|
27
32
|
const keysToOmit = ['axis', 'contentWindow', 'disableAutoscroll', 'distance', 'getContainer', 'getHelperDimensions', 'helperClass', 'helperContainer', 'hideSortableGhost', 'keyboardSortingTransitionDuration', 'lockAxis', 'lockOffset', 'lockToContainerEdges', 'onSortEnd', 'onSortMove', 'onSortOver', 'onSortStart', 'pressDelay', 'pressThreshold', 'shouldCancelStart', 'transitionDuration', 'updateBeforeSortStart', 'useDragHandle', 'useWindowAsScrollContainer'];
|
|
28
|
-
const DragHandle = reactSortableHoc.SortableHandle(() => _GripperVertical || (_GripperVertical = /*#__PURE__*/_jsx__default["default"](
|
|
33
|
+
const DragHandle = reactSortableHoc.SortableHandle(() => _GripperVertical || (_GripperVertical = /*#__PURE__*/_jsx__default["default"](dsIcons.GripperVertical, {
|
|
29
34
|
className: "drag-handle"
|
|
30
35
|
})));
|
|
31
36
|
|
|
32
|
-
const translateDnDData =
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
const translateDnDData = _ref => {
|
|
38
|
+
let {
|
|
39
|
+
oldIndex,
|
|
40
|
+
newIndex,
|
|
41
|
+
index
|
|
42
|
+
} = _ref;
|
|
43
|
+
return {
|
|
44
|
+
sourceIndex: oldIndex,
|
|
45
|
+
targetIndex: newIndex,
|
|
46
|
+
fromIndex: index === undefined ? oldIndex : index
|
|
47
|
+
};
|
|
48
|
+
};
|
|
41
49
|
|
|
42
50
|
const decorateColumns = columns => {
|
|
43
51
|
const dragColumn = {
|
|
@@ -65,10 +73,10 @@ const getBodyProps = (props, grid) => {
|
|
|
65
73
|
grid.setIsRowDragging(false);
|
|
66
74
|
onMoveRowEnd(translateDnDData(data));
|
|
67
75
|
},
|
|
68
|
-
onSortStart: (
|
|
76
|
+
onSortStart: function () {
|
|
69
77
|
grid.disableEvents();
|
|
70
78
|
grid.setIsRowDragging(true);
|
|
71
|
-
onMoveRowStart(...
|
|
79
|
+
onMoveRowStart(...arguments);
|
|
72
80
|
},
|
|
73
81
|
onSortOver: data => {
|
|
74
82
|
onReorder(translateDnDData(data));
|
|
@@ -89,7 +97,7 @@ const decorateRenderers = renderers => {
|
|
|
89
97
|
const RowComponent = renderers.body.row;
|
|
90
98
|
const BodyWrapperComponent = renderers.body.wrapper;
|
|
91
99
|
const Row = React.useMemo(() => reactSortableHoc.SortableElement(RowComponent), []);
|
|
92
|
-
const BodyWrapper = React.useMemo(() => reactSortableHoc.SortableContainer(props => /*#__PURE__*/jsxRuntime.jsx(BodyWrapperComponent, _objectSpread({},
|
|
100
|
+
const BodyWrapper = React.useMemo(() => reactSortableHoc.SortableContainer(props => /*#__PURE__*/jsxRuntime.jsx(BodyWrapperComponent, _objectSpread({}, dsUtilities.omit(props, keysToOmit)))), []);
|
|
93
101
|
return _objectSpread(_objectSpread({}, renderers), {}, {
|
|
94
102
|
body: _objectSpread(_objectSpread({}, renderers.body), {}, {
|
|
95
103
|
wrapper: BodyWrapper,
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
5
6
|
var React = require('react');
|
|
6
7
|
var cx = require('obj-str');
|
|
7
|
-
var
|
|
8
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
8
9
|
var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
|
|
9
10
|
var addSelectableColumn = require('./addSelectableColumn.js');
|
|
10
11
|
var useSelectableState = require('./useSelectableState.js');
|
|
@@ -15,8 +16,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
15
16
|
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
16
17
|
var createInstancePlugin__default = /*#__PURE__*/_interopDefaultLegacy(createInstancePlugin);
|
|
17
18
|
|
|
18
|
-
/* eslint-disable react-hooks/rules-of-hooks */
|
|
19
|
-
|
|
20
19
|
const decorateColumns = (columns, grid) => {
|
|
21
20
|
const {
|
|
22
21
|
props: {
|
|
@@ -58,9 +57,10 @@ const decorateColumns = (columns, grid) => {
|
|
|
58
57
|
return columns;
|
|
59
58
|
};
|
|
60
59
|
|
|
61
|
-
const getRowProps = (rowProps, grid, {
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
const getRowProps = (rowProps, grid, _ref) => {
|
|
61
|
+
let {
|
|
62
|
+
rowData
|
|
63
|
+
} = _ref;
|
|
64
64
|
const {
|
|
65
65
|
props: {
|
|
66
66
|
showSelectHighlight,
|
|
@@ -100,7 +100,7 @@ const composeRows = (rows, grid) => {
|
|
|
100
100
|
}
|
|
101
101
|
} = grid.getInstance();
|
|
102
102
|
|
|
103
|
-
const selectionPredicate = row =>
|
|
103
|
+
const selectionPredicate = row => dsUtilities.isFunction(isRowSelected) ? isRowSelected(row) : !!selection.selectedRows[row[rowKey]];
|
|
104
104
|
|
|
105
105
|
return multiple ? helper.selectMultipleRow(rows, selectionPredicate) : helper.selectSingleRow(rows, selectionPredicate);
|
|
106
106
|
};
|
|
@@ -160,9 +160,10 @@ const SelectablePlugin = createInstancePlugin__default["default"]('selectable',
|
|
|
160
160
|
registerHotKeys(grid) {
|
|
161
161
|
return [{
|
|
162
162
|
key: 'space',
|
|
163
|
-
handler:
|
|
164
|
-
|
|
165
|
-
|
|
163
|
+
handler: _ref2 => {
|
|
164
|
+
let {
|
|
165
|
+
rowIndex
|
|
166
|
+
} = _ref2;
|
|
166
167
|
const {
|
|
167
168
|
composedRows,
|
|
168
169
|
props: {
|
|
@@ -2,6 +2,11 @@
|
|
|
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 _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
11
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
7
12
|
var initColumnDefinition = require('@elliemae/ds-shared/useDataGrid/initColumnDefinition');
|
|
@@ -17,26 +22,29 @@ const _excluded = ["visible", "isDataColumn", "width", "minWidth", "cellRenderer
|
|
|
17
22
|
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; }
|
|
18
23
|
|
|
19
24
|
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; }
|
|
20
|
-
function selectionColumnCreator({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
function selectionColumnCreator(_ref) {
|
|
26
|
+
let {
|
|
27
|
+
grid,
|
|
28
|
+
selectAll,
|
|
29
|
+
selectionComponent,
|
|
30
|
+
onSelectRow,
|
|
31
|
+
onSelectAll,
|
|
32
|
+
multiple,
|
|
33
|
+
// backward compatibility: later this needed to be passed through column definition
|
|
34
|
+
multiSelectFilterLabel,
|
|
35
|
+
multiSelectFilterOptions,
|
|
36
|
+
multiSelectFilterLabels,
|
|
37
|
+
multiSelectComponent // favor selectionComponent
|
|
32
38
|
|
|
33
|
-
}
|
|
39
|
+
} = _ref;
|
|
34
40
|
const {
|
|
35
41
|
props: {
|
|
36
42
|
rowKey
|
|
37
43
|
}
|
|
38
44
|
} = grid;
|
|
39
|
-
return (
|
|
45
|
+
return function () {
|
|
46
|
+
let _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
47
|
+
|
|
40
48
|
let {
|
|
41
49
|
visible = true,
|
|
42
50
|
isDataColumn = false,
|
|
@@ -46,8 +54,8 @@ function selectionColumnCreator({
|
|
|
46
54
|
headerCellRenderer,
|
|
47
55
|
customRenderer,
|
|
48
56
|
header
|
|
49
|
-
} =
|
|
50
|
-
column = _objectWithoutProperties__default["default"](
|
|
57
|
+
} = _ref2,
|
|
58
|
+
column = _objectWithoutProperties__default["default"](_ref2, _excluded);
|
|
51
59
|
|
|
52
60
|
let selectionColumn = _objectSpread(_objectSpread({}, column), {}, {
|
|
53
61
|
property: 'metaData.selected',
|
|
@@ -3,7 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
|
|
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');
|
|
15
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
7
16
|
|
|
8
17
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
18
|
|
|
@@ -17,8 +26,8 @@ const checkAllRowsSelected = (rows, selectedRows) => {
|
|
|
17
26
|
if (selectedRows.length) return 'mixed';
|
|
18
27
|
return false;
|
|
19
28
|
};
|
|
20
|
-
const toggleSelectAll = (rows, checked) => !checked ? {} : rows.reduce((nextSelRows, row) =>
|
|
21
|
-
const toggleSingleSelectable = (selectedRows, id) => !selectedRows[id] ?
|
|
29
|
+
const toggleSelectAll = (rows, checked) => !checked ? {} : rows.reduce((nextSelRows, row) => dsUtilities.toggleInObject(nextSelRows, row.id, true), {});
|
|
30
|
+
const toggleSingleSelectable = (selectedRows, id) => !selectedRows[id] ? dsUtilities.toggleInObject({}, id, true) : {};
|
|
22
31
|
|
|
23
32
|
const mergeSelectedToMetaData = selected => row => _objectSpread(_objectSpread({}, row), {}, {
|
|
24
33
|
'metaData.selected': selected
|
|
@@ -1,11 +1,15 @@
|
|
|
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 _jsx = require('@babel/runtime/helpers/jsx');
|
|
5
10
|
var React = require('react');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var DSRadio = require('@elliemae/ds-basic/form/Radio');
|
|
11
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
12
|
+
var dsForm = require('@elliemae/ds-form');
|
|
9
13
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
14
|
|
|
11
15
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -13,30 +17,32 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
13
17
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
14
18
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
15
19
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
16
|
-
var DSCheckbox__default = /*#__PURE__*/_interopDefaultLegacy(DSCheckbox);
|
|
17
|
-
var DSRadio__default = /*#__PURE__*/_interopDefaultLegacy(DSRadio);
|
|
18
20
|
|
|
19
21
|
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; }
|
|
20
22
|
|
|
21
23
|
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; }
|
|
22
24
|
|
|
23
|
-
const SelectableWrapper =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
const SelectableWrapper = _ref => {
|
|
26
|
+
let {
|
|
27
|
+
className,
|
|
28
|
+
children
|
|
29
|
+
} = _ref;
|
|
30
|
+
return /*#__PURE__*/_jsx__default["default"]("div", {
|
|
31
|
+
className: className,
|
|
32
|
+
onClick: e => e.stopPropagation()
|
|
33
|
+
}, void 0, children);
|
|
34
|
+
};
|
|
30
35
|
|
|
31
|
-
const SelectableComponent = /*#__PURE__*/React__default["default"].memo( /*#__PURE__*/React.forwardRef(({
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
const SelectableComponent = /*#__PURE__*/React__default["default"].memo( /*#__PURE__*/React.forwardRef((_ref2, ref) => {
|
|
37
|
+
let {
|
|
38
|
+
className,
|
|
39
|
+
isMultiSelect,
|
|
40
|
+
isHeader,
|
|
41
|
+
onSelect,
|
|
42
|
+
isSelected,
|
|
43
|
+
value
|
|
44
|
+
} = _ref2;
|
|
45
|
+
const SelectComponent = isMultiSelect || isHeader ? dsForm.DSCheckbox : dsForm.DSRadio;
|
|
40
46
|
return /*#__PURE__*/_jsx__default["default"](SelectableWrapper, {
|
|
41
47
|
className: className
|
|
42
48
|
}, void 0, /*#__PURE__*/_jsx__default["default"](SelectComponent, {
|
|
@@ -49,58 +55,61 @@ const SelectableComponent = /*#__PURE__*/React__default["default"].memo( /*#__PU
|
|
|
49
55
|
}));
|
|
50
56
|
}, (prev, next) => next.isScrolling));
|
|
51
57
|
|
|
52
|
-
const selectableFormatter = ({
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
58
|
+
const selectableFormatter = (_ref3, grid) => {
|
|
59
|
+
let {
|
|
60
|
+
isMultiSelect = false,
|
|
61
|
+
renderer,
|
|
62
|
+
className,
|
|
63
|
+
isHeader,
|
|
64
|
+
onSelect
|
|
65
|
+
} = _ref3;
|
|
66
|
+
return (valueRender, extraParams) => {
|
|
67
|
+
const {
|
|
68
|
+
registerFocus
|
|
69
|
+
} = extraParams;
|
|
70
|
+
const ref = React.useRef();
|
|
71
|
+
const {
|
|
72
|
+
props: {
|
|
73
|
+
rowKey
|
|
74
|
+
},
|
|
75
|
+
state: {
|
|
76
|
+
selection
|
|
77
|
+
},
|
|
78
|
+
shiftPressed,
|
|
79
|
+
lastSelectedRow
|
|
80
|
+
} = grid.getInstance();
|
|
81
|
+
const {
|
|
82
|
+
rowData,
|
|
83
|
+
isScrolling
|
|
84
|
+
} = extraParams;
|
|
85
|
+
React.useEffect(() => {
|
|
86
|
+
if (registerFocus) registerFocus(ref.current);
|
|
87
|
+
}, [ref.current]);
|
|
88
|
+
const isSelected = isHeader ? selection.selectAll : !!selection.selectedRows[rowData[rowKey]];
|
|
89
|
+
const handleSelect = isHeader ? () => onSelect(!isSelected) : () => onSelect(rowData[rowKey], extraParams.rowIndex, shiftPressed, lastSelectedRow);
|
|
82
90
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
if (dsUtilities.isFunction(renderer)) {
|
|
92
|
+
return /*#__PURE__*/_jsx__default["default"](SelectableWrapper, {
|
|
93
|
+
className: className
|
|
94
|
+
}, void 0, renderer(_objectSpread(_objectSpread({
|
|
95
|
+
rowData: {}
|
|
96
|
+
}, extraParams), {}, {
|
|
97
|
+
value: isSelected,
|
|
98
|
+
isHeader,
|
|
99
|
+
onSelect: handleSelect
|
|
100
|
+
})));
|
|
101
|
+
}
|
|
94
102
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
return /*#__PURE__*/jsxRuntime.jsx(SelectableComponent, {
|
|
104
|
+
ref: ref,
|
|
105
|
+
className: className,
|
|
106
|
+
isMultiSelect: isMultiSelect,
|
|
107
|
+
isScrolling: isScrolling,
|
|
108
|
+
isSelected: isSelected,
|
|
109
|
+
onSelect: handleSelect,
|
|
110
|
+
value: !isHeader ? rowData[rowKey] : 'header-select-all'
|
|
111
|
+
});
|
|
112
|
+
};
|
|
104
113
|
};
|
|
105
114
|
|
|
106
115
|
module.exports = selectableFormatter;
|
|
@@ -3,23 +3,36 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
7
|
+
require('core-js/modules/esnext.async-iterator.some.js');
|
|
8
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.some.js');
|
|
10
|
+
require('core-js/modules/esnext.async-iterator.map.js');
|
|
11
|
+
require('core-js/modules/esnext.iterator.map.js');
|
|
12
|
+
require('core-js/modules/esnext.async-iterator.reduce.js');
|
|
13
|
+
require('core-js/modules/esnext.iterator.reduce.js');
|
|
14
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
15
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
16
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
17
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
18
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
8
19
|
var helper = require('./helper.js');
|
|
9
20
|
|
|
10
21
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
22
|
|
|
12
23
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
13
|
-
var useDerivedStateFromProps__default = /*#__PURE__*/_interopDefaultLegacy(useDerivedStateFromProps);
|
|
14
24
|
|
|
15
25
|
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; }
|
|
16
26
|
|
|
17
27
|
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; }
|
|
18
28
|
|
|
19
29
|
function deriveSelectedStateFromPropsOnUpdate(rows) {
|
|
20
|
-
return (
|
|
30
|
+
return function () {
|
|
31
|
+
let nextProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
32
|
+
let prevProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
33
|
+
|
|
21
34
|
if (nextProp.selectAll !== prevProp.selectAll) {
|
|
22
|
-
const nextSelectedRows = nextProp.selectAll ? helper.toggleSelectAll(rows, true) :
|
|
35
|
+
const nextSelectedRows = nextProp.selectAll ? helper.toggleSelectAll(rows, true) : dsUtilities.hashArray(nextProp.selectedRows || []);
|
|
23
36
|
return {
|
|
24
37
|
selectedRows: nextSelectedRows,
|
|
25
38
|
selectAll: helper.checkAllRowsSelected(rows, Object.keys(nextSelectedRows))
|
|
@@ -27,7 +40,7 @@ function deriveSelectedStateFromPropsOnUpdate(rows) {
|
|
|
27
40
|
}
|
|
28
41
|
|
|
29
42
|
return {
|
|
30
|
-
selectedRows:
|
|
43
|
+
selectedRows: dsUtilities.hashArray(nextProp.selectedRows || []),
|
|
31
44
|
selectAll: helper.checkAllRowsSelected(rows, Object.keys(nextProp.selectedRows))
|
|
32
45
|
};
|
|
33
46
|
};
|
|
@@ -47,15 +60,16 @@ function useSelectableState(grid) {
|
|
|
47
60
|
setLastSelectedRow
|
|
48
61
|
} = grid.getInstance();
|
|
49
62
|
const multiple = selectable === 'multi';
|
|
50
|
-
const [selection, setSelectedRowsState] =
|
|
63
|
+
const [selection, setSelectedRowsState] = dsUtilities.useDerivedStateFromProps({
|
|
51
64
|
selectedRows,
|
|
52
65
|
selectAll
|
|
53
66
|
}, {
|
|
54
67
|
onUpdate: deriveSelectedStateFromPropsOnUpdate(rows)
|
|
55
68
|
}); // ACTIONS
|
|
56
69
|
|
|
57
|
-
const handleSelectRow = (id, index
|
|
58
|
-
|
|
70
|
+
const handleSelectRow = function (id, index) {
|
|
71
|
+
let shift = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
72
|
+
let lastSelectedRow = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
59
73
|
setSelectedRowsState(prevState => {
|
|
60
74
|
const {
|
|
61
75
|
rows: nextRows
|
|
@@ -63,7 +77,7 @@ function useSelectableState(grid) {
|
|
|
63
77
|
const wasSelected = Object.keys(prevState.selectedRows).some( // we need to match softly as the id may be a number
|
|
64
78
|
// eslint-disable-next-line eqeqeq
|
|
65
79
|
elem => elem == id);
|
|
66
|
-
let nextSelectedRows = multiple ?
|
|
80
|
+
let nextSelectedRows = multiple ? dsUtilities.toggleInObject(prevState.selectedRows, id, true) : helper.toggleSingleSelectable(prevState.selectedRows, id);
|
|
67
81
|
setLastSelectedRow({
|
|
68
82
|
index,
|
|
69
83
|
mode: wasSelected ? 'deselect' : 'select'
|
|
@@ -76,7 +90,7 @@ function useSelectableState(grid) {
|
|
|
76
90
|
const rowSegment = nextRows.slice(sliceStart, sliceEnd).map(row => row[rowKey]);
|
|
77
91
|
|
|
78
92
|
if (lastSelectedRow.mode === 'deselect') {
|
|
79
|
-
nextSelectedRows =
|
|
93
|
+
nextSelectedRows = dsUtilities.omit(prevState.selectedRows, rowSegment);
|
|
80
94
|
} else {
|
|
81
95
|
const selectedSegment = rowSegment.reduce((o, key) => _objectSpread(_objectSpread({}, o), {}, {
|
|
82
96
|
[key]: true
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var sortabular = require('sortabular');
|
|
6
|
-
var
|
|
6
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
7
7
|
var initColumnDefinition = require('@elliemae/ds-shared/useDataGrid/initColumnDefinition');
|
|
8
8
|
var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
|
|
9
9
|
var sortHeaderFormatter = require('./sortHeaderFormatter.js');
|
|
@@ -47,7 +47,7 @@ const decorateColumn = (column, grid) => {
|
|
|
47
47
|
onSort: grid.actions.sort,
|
|
48
48
|
strategy: sortabular__namespace.strategies.byProperty
|
|
49
49
|
}), grid);
|
|
50
|
-
return
|
|
50
|
+
return dsUtilities.compose(initColumnDefinition.appendHeaderFormatter(formatter), initColumnDefinition.mergeClassNameToColumnHeader('with-sortable'))(column);
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
const composeRows = (rows, grid) => {
|
|
@@ -67,8 +67,8 @@ const composeRows = (rows, grid) => {
|
|
|
67
67
|
} = grid.getInstance();
|
|
68
68
|
const sortingConfig = {
|
|
69
69
|
columns: decoratedColumns,
|
|
70
|
-
sortingColumns: !
|
|
71
|
-
sort:
|
|
70
|
+
sortingColumns: !dsUtilities.isEmpty(sortingColumns) && sortingColumns,
|
|
71
|
+
sort: dsUtilities.orderBy,
|
|
72
72
|
emptyLast: sortEmptyLast
|
|
73
73
|
}; // TODO: 1572 FIX
|
|
74
74
|
|
|
@@ -87,9 +87,10 @@ const SortablePlugin = createInstancePlugin__default["default"]('sortable', {
|
|
|
87
87
|
registerHotKeys(grid) {
|
|
88
88
|
return {
|
|
89
89
|
key: 'ctrl+s',
|
|
90
|
-
handler:
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
handler: _ref => {
|
|
91
|
+
let {
|
|
92
|
+
cellIndex
|
|
93
|
+
} = _ref;
|
|
93
94
|
const {
|
|
94
95
|
actions: {
|
|
95
96
|
sort
|
|
@@ -3,28 +3,26 @@
|
|
|
3
3
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var dsClassnames = require('@elliemae/ds-classnames');
|
|
6
|
-
var
|
|
7
|
-
var ArrowheadUp = require('@elliemae/ds-icons/ArrowheadUp');
|
|
6
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
8
7
|
|
|
9
8
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
9
|
|
|
11
10
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
12
11
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
13
|
-
var ArrowheadDown__default = /*#__PURE__*/_interopDefaultLegacy(ArrowheadDown);
|
|
14
|
-
var ArrowheadUp__default = /*#__PURE__*/_interopDefaultLegacy(ArrowheadUp);
|
|
15
12
|
|
|
16
13
|
var _ArrowheadUp, _ArrowheadDown;
|
|
17
14
|
const blockName = 'data-grid-sort-header';
|
|
18
15
|
const SortHeaderContainer = dsClassnames.aggregatedClasses('div')(blockName);
|
|
19
16
|
const iconColor = ['brand-primary', 800];
|
|
20
|
-
const SortHeader = /*#__PURE__*/React__default["default"].memo(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
const SortHeader = /*#__PURE__*/React__default["default"].memo(_ref => {
|
|
18
|
+
let {
|
|
19
|
+
value,
|
|
20
|
+
onClick,
|
|
21
|
+
sortState
|
|
22
|
+
} = _ref;
|
|
23
|
+
const sortIndicator = sortState === 'asc' ? _ArrowheadUp || (_ArrowheadUp = /*#__PURE__*/_jsx__default["default"](dsIcons.ArrowheadUp, {
|
|
26
24
|
color: iconColor
|
|
27
|
-
})) : _ArrowheadDown || (_ArrowheadDown = /*#__PURE__*/_jsx__default["default"](
|
|
25
|
+
})) : _ArrowheadDown || (_ArrowheadDown = /*#__PURE__*/_jsx__default["default"](dsIcons.ArrowheadDown, {
|
|
28
26
|
color: iconColor
|
|
29
27
|
}));
|
|
30
28
|
return /*#__PURE__*/_jsx__default["default"](SortHeaderContainer, {
|
|
@@ -34,10 +32,11 @@ const SortHeader = /*#__PURE__*/React__default["default"].memo(({
|
|
|
34
32
|
}, void 0, value), sortState && sortIndicator);
|
|
35
33
|
});
|
|
36
34
|
|
|
37
|
-
const sortHeaderFormatter = (sortable, grid) => (value, {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
const sortHeaderFormatter = (sortable, grid) => (value, _ref2) => {
|
|
36
|
+
let {
|
|
37
|
+
columnIndex,
|
|
38
|
+
property
|
|
39
|
+
} = _ref2;
|
|
41
40
|
const {
|
|
42
41
|
state: {
|
|
43
42
|
sortingColumns
|
|
@@ -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 =
|
|
34
|
-
|
|
35
|
-
|
|
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);
|