@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.
- 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
|
@@ -5,12 +5,21 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
6
6
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
7
7
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
8
|
+
require('core-js/modules/esnext.async-iterator.some.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
10
|
+
require('core-js/modules/esnext.iterator.some.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.map.js');
|
|
14
|
+
require('core-js/modules/esnext.iterator.map.js');
|
|
15
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
16
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
17
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
8
18
|
var React = require('react');
|
|
9
|
-
var
|
|
19
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
10
20
|
var reactWindow = require('react-window');
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var DSButton = require('@elliemae/ds-basic/Button');
|
|
21
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
22
|
+
var DSButton = require('@elliemae/ds-button');
|
|
14
23
|
var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
|
|
15
24
|
var initColumnDefinition = require('@elliemae/ds-shared/useDataGrid/initColumnDefinition');
|
|
16
25
|
var ExpandedRow = require('./ExpandedRow.js');
|
|
@@ -24,8 +33,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
24
33
|
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
25
34
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
26
35
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
27
|
-
var ArrowheadDown__default = /*#__PURE__*/_interopDefaultLegacy(ArrowheadDown);
|
|
28
|
-
var ArrowheadRight__default = /*#__PURE__*/_interopDefaultLegacy(ArrowheadRight);
|
|
29
36
|
var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
|
|
30
37
|
var createInstancePlugin__default = /*#__PURE__*/_interopDefaultLegacy(createInstancePlugin);
|
|
31
38
|
|
|
@@ -37,12 +44,15 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
37
44
|
|
|
38
45
|
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; }
|
|
39
46
|
|
|
40
|
-
const getExpandedRowSizeBySubrows =
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
const getExpandedRowSizeBySubrows = _ref => {
|
|
48
|
+
let {
|
|
49
|
+
totalAmount,
|
|
50
|
+
amountVisible,
|
|
51
|
+
isShowingAll,
|
|
52
|
+
size = 36
|
|
53
|
+
} = _ref;
|
|
54
|
+
return isShowingAll ? size * (totalAmount + 1) - 6 : size * (amountVisible + 1) + 32;
|
|
55
|
+
};
|
|
46
56
|
|
|
47
57
|
const ExpandedRows = {
|
|
48
58
|
SingleColumn: ExpandedRow,
|
|
@@ -75,10 +85,11 @@ const ExpandablePlugin = createInstancePlugin__default["default"]('expandable',
|
|
|
75
85
|
const firstColumnIndex = columns.findIndex(column => column.isUserColumn);
|
|
76
86
|
const firstColumn = columns[firstColumnIndex];
|
|
77
87
|
firstColumn.formatExpandable = true;
|
|
78
|
-
return [...columns.slice(0, firstColumnIndex), initColumnDefinition.appendCellFormatter((value, {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
88
|
+
return [...columns.slice(0, firstColumnIndex), initColumnDefinition.appendCellFormatter((value, _ref2) => {
|
|
89
|
+
let {
|
|
90
|
+
isExpanded,
|
|
91
|
+
rowData
|
|
92
|
+
} = _ref2;
|
|
82
93
|
const {
|
|
83
94
|
actions: {
|
|
84
95
|
toggleExpand
|
|
@@ -93,7 +104,7 @@ const ExpandablePlugin = createInstancePlugin__default["default"]('expandable',
|
|
|
93
104
|
children: [/*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
|
|
94
105
|
buttonType: "text",
|
|
95
106
|
className: "expandable-arrow",
|
|
96
|
-
icon: isExpanded ? _ArrowheadDown || (_ArrowheadDown = /*#__PURE__*/_jsx__default["default"](
|
|
107
|
+
icon: isExpanded ? _ArrowheadDown || (_ArrowheadDown = /*#__PURE__*/_jsx__default["default"](dsIcons.ArrowheadDown, {})) : _ArrowheadRight || (_ArrowheadRight = /*#__PURE__*/_jsx__default["default"](dsIcons.ArrowheadRight, {})),
|
|
97
108
|
onClick: e => {
|
|
98
109
|
e.stopPropagation();
|
|
99
110
|
toggleExpand(rowData);
|
|
@@ -142,13 +153,13 @@ const ExpandablePlugin = createInstancePlugin__default["default"]('expandable',
|
|
|
142
153
|
isShowingAll: children.length < expandableSubrowsVisible || expandedRows[key] && expandedRows[key].showAllRows,
|
|
143
154
|
size: subrowSizePx
|
|
144
155
|
});
|
|
145
|
-
const expandedMinSize =
|
|
156
|
+
const expandedMinSize = dsUtilities.isFunction(getExpandedRowMinSize) && getExpandedRowMinSize(index); // eslint-disable-next-line no-nested-ternary
|
|
146
157
|
|
|
147
158
|
return expandedRows[key] ? expandedMinSize > expandedSize ? expandedMinSize : expandedSize : rowSizePx;
|
|
148
159
|
};
|
|
149
160
|
|
|
150
161
|
return _objectSpread(_objectSpread({}, bodyProps), {}, {
|
|
151
|
-
className:
|
|
162
|
+
className: dsUtilities.cx(bodyProps.className, 'expandable'),
|
|
152
163
|
listComponent: reactWindow.VariableSizeList,
|
|
153
164
|
listProps: {
|
|
154
165
|
ref: listRef,
|
|
@@ -166,11 +177,11 @@ const ExpandablePlugin = createInstancePlugin__default["default"]('expandable',
|
|
|
166
177
|
const expandedRowType = isExpandableSingleColumn(grid.decoratedColumns) ? 'SingleColumn' : 'Master';
|
|
167
178
|
const ExpandedRowComponent = createExpandedRow(expandedRowType); // eslint-disable-next-line react/display-name
|
|
168
179
|
|
|
169
|
-
return
|
|
180
|
+
return _ref3 => {
|
|
170
181
|
let {
|
|
171
182
|
isExpanded
|
|
172
|
-
} =
|
|
173
|
-
rowProps = _objectWithoutProperties__default["default"](
|
|
183
|
+
} = _ref3,
|
|
184
|
+
rowProps = _objectWithoutProperties__default["default"](_ref3, _excluded);
|
|
174
185
|
|
|
175
186
|
if (isExpanded) {
|
|
176
187
|
const {
|
|
@@ -206,9 +217,10 @@ const ExpandablePlugin = createInstancePlugin__default["default"]('expandable',
|
|
|
206
217
|
return renderers;
|
|
207
218
|
},
|
|
208
219
|
|
|
209
|
-
getRowProps(rowProps, grid, {
|
|
210
|
-
|
|
211
|
-
|
|
220
|
+
getRowProps(rowProps, grid, _ref4) {
|
|
221
|
+
let {
|
|
222
|
+
rowData
|
|
223
|
+
} = _ref4;
|
|
212
224
|
const {
|
|
213
225
|
props: {
|
|
214
226
|
rowKey
|
|
@@ -220,7 +232,7 @@ const ExpandablePlugin = createInstancePlugin__default["default"]('expandable',
|
|
|
220
232
|
const key = rowData[rowKey];
|
|
221
233
|
const isExpanded = !!expandedRows[key];
|
|
222
234
|
return _objectSpread(_objectSpread({}, rowProps), {}, {
|
|
223
|
-
className:
|
|
235
|
+
className: dsUtilities.cx(rowProps.className, Object.keys(expandedRows).length > 0 && 'expandable-row', isExpanded && 'expanded'),
|
|
224
236
|
isExpanded,
|
|
225
237
|
showAllRows: expandedRows[key] && expandedRows[key].showAllRows
|
|
226
238
|
});
|
|
@@ -3,11 +3,18 @@
|
|
|
3
3
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
4
4
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
5
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
6
|
+
require('core-js/modules/esnext.async-iterator.map.js');
|
|
7
|
+
require('core-js/modules/esnext.iterator.map.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');
|
|
6
13
|
require('react');
|
|
7
|
-
var DSSeparator = require('@elliemae/ds-
|
|
8
|
-
var DSButton = require('@elliemae/ds-
|
|
14
|
+
var DSSeparator = require('@elliemae/ds-separator');
|
|
15
|
+
var DSButton = require('@elliemae/ds-button');
|
|
9
16
|
var styled = require('styled-components');
|
|
10
|
-
var
|
|
17
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
11
18
|
var deferComponentRender = require('@elliemae/ds-shared/defer-render-hoc');
|
|
12
19
|
var useDataGrid = require('@elliemae/ds-shared/useDataGrid');
|
|
13
20
|
var PaginationPlugin = require('../pagination/PaginationPlugin.js');
|
|
@@ -37,11 +44,13 @@ const _excluded = ["instanceRef"],
|
|
|
37
44
|
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; }
|
|
38
45
|
|
|
39
46
|
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; }
|
|
40
|
-
const DetailGrid = deferComponentRender__default["default"](
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
47
|
+
const DetailGrid = deferComponentRender__default["default"](_ref => {
|
|
48
|
+
let {
|
|
49
|
+
parentGrid,
|
|
50
|
+
parentRowData,
|
|
51
|
+
rows
|
|
52
|
+
} = _ref;
|
|
53
|
+
|
|
45
54
|
const _parentGrid$props = parentGrid.props,
|
|
46
55
|
parentProps = _objectWithoutProperties__default["default"](_parentGrid$props, _excluded);
|
|
47
56
|
|
|
@@ -74,15 +83,16 @@ const DetailGridWrapper = /*#__PURE__*/styled__default["default"].div.withConfig
|
|
|
74
83
|
componentId: "sc-1goa4zy-1"
|
|
75
84
|
})(["display:flex;height:calc(100% - ", "px);width:", "px;margin:12px 0;"], props => props.allRowsVisible ? 18 : 60, props => props.expandableGridDetailWidth);
|
|
76
85
|
|
|
77
|
-
function ExpandedRow({
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
function ExpandedRow(_ref2) {
|
|
87
|
+
let {
|
|
88
|
+
parentGrid,
|
|
89
|
+
detailColumns,
|
|
90
|
+
rowData,
|
|
91
|
+
rows,
|
|
92
|
+
rowProps,
|
|
93
|
+
cellComponent: CellComponent,
|
|
94
|
+
rowComponent: RowComponent
|
|
95
|
+
} = _ref2;
|
|
86
96
|
const {
|
|
87
97
|
decoratedColumns,
|
|
88
98
|
actions: {
|
|
@@ -119,7 +129,7 @@ function ExpandedRow({
|
|
|
119
129
|
}), /*#__PURE__*/_jsx__default["default"](DetailsWrapper, {
|
|
120
130
|
width: expandableGridDetailWidth
|
|
121
131
|
}, void 0, /*#__PURE__*/_jsx__default["default"](DetailGridWrapper, {
|
|
122
|
-
allRowsVisible: rows.length < expandableSubrowsVisible ||
|
|
132
|
+
allRowsVisible: rows.length < expandableSubrowsVisible || dsUtilities.get(expandedRows, [rowKey, 'showAllRows']),
|
|
123
133
|
expandableGridDetailWidth: expandableGridDetailWidth
|
|
124
134
|
}, void 0, _DSSeparator || (_DSSeparator = /*#__PURE__*/_jsx__default["default"](DSSeparator__default["default"], {
|
|
125
135
|
dashed: true,
|
|
@@ -1,10 +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
|
require('react');
|
|
6
|
-
var
|
|
7
|
-
var DSSeparator = require('@elliemae/ds-
|
|
11
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
12
|
+
var DSSeparator = require('@elliemae/ds-separator');
|
|
8
13
|
var dsClassnames = require('@elliemae/ds-classnames');
|
|
9
14
|
var blockNames = require('../../blockNames.js');
|
|
10
15
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -20,20 +25,21 @@ var _DSSeparator;
|
|
|
20
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; }
|
|
21
26
|
|
|
22
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; }
|
|
23
|
-
const blockName =
|
|
24
|
-
const DetailsWrapper = dsClassnames.aggregatedClasses('div')(
|
|
28
|
+
const blockName = "".concat(blockNames.dataGridBlockName, "-expanded-row");
|
|
29
|
+
const DetailsWrapper = dsClassnames.aggregatedClasses('div')("".concat(blockName, "-details-wrapper"), null, () => ({
|
|
25
30
|
'ie-flex-basis-auto': true
|
|
26
31
|
}));
|
|
27
32
|
|
|
28
|
-
function ExpandedRowExtra({
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
function ExpandedRowExtra(_ref) {
|
|
34
|
+
let {
|
|
35
|
+
children,
|
|
36
|
+
rowData,
|
|
37
|
+
rowProps,
|
|
38
|
+
rowComponent: RowComponent,
|
|
39
|
+
renderRowDetails = () => null
|
|
40
|
+
} = _ref;
|
|
35
41
|
return /*#__PURE__*/jsxRuntime.jsxs(RowComponent, _objectSpread(_objectSpread({}, rowProps), {}, {
|
|
36
|
-
className:
|
|
42
|
+
className: dsUtilities.cx(rowProps.className, 'expanded-detail-row'),
|
|
37
43
|
children: [/*#__PURE__*/_jsx__default["default"](RowComponent, {
|
|
38
44
|
className: "master-row-expanded"
|
|
39
45
|
}, void 0, children), _DSSeparator || (_DSSeparator = /*#__PURE__*/_jsx__default["default"](DSSeparator__default["default"], {
|
|
@@ -2,14 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
var
|
|
5
|
+
require('core-js/modules/web.dom-collections.iterator.js');
|
|
6
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
|
|
9
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
|
-
|
|
11
|
-
var useExpandState__default = /*#__PURE__*/_interopDefaultLegacy(useExpandState);
|
|
12
|
-
|
|
13
9
|
const useExpandGridState = grid => {
|
|
14
10
|
const {
|
|
15
11
|
composedRows,
|
|
@@ -27,7 +23,7 @@ const useExpandGridState = grid => {
|
|
|
27
23
|
const {
|
|
28
24
|
state,
|
|
29
25
|
actions
|
|
30
|
-
} =
|
|
26
|
+
} = dsUtilities.useExpandState({
|
|
31
27
|
items: composedRows,
|
|
32
28
|
itemKey: rowKey,
|
|
33
29
|
expanded: expandedRowsProp,
|
|
@@ -54,7 +50,7 @@ const useExpandGridState = grid => {
|
|
|
54
50
|
};
|
|
55
51
|
|
|
56
52
|
const toggleShowAllRows = row => {
|
|
57
|
-
if (
|
|
53
|
+
if (dsUtilities.isFunction(onToggleShowAllRows)) {
|
|
58
54
|
onToggleShowAllRows(row);
|
|
59
55
|
} else {
|
|
60
56
|
const key = row[rowKey];
|
|
@@ -3,10 +3,20 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
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/web.dom-collections.iterator.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.filter.js');
|
|
13
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
6
14
|
require('core-js/modules/es.string.replace.js');
|
|
7
15
|
require('core-js/modules/web.url.js');
|
|
8
16
|
require('core-js/modules/web.url-search-params.js');
|
|
9
|
-
|
|
17
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
18
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
19
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
10
20
|
var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
|
|
11
21
|
|
|
12
22
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -26,15 +36,15 @@ const isVisible = column => {
|
|
|
26
36
|
return typeof column.visible === 'undefined' || column.visible;
|
|
27
37
|
};
|
|
28
38
|
|
|
29
|
-
const getColumnValue = (row, property) =>
|
|
39
|
+
const getColumnValue = (row, property) => dsUtilities.get(row, property);
|
|
30
40
|
const getVisibleRowData = (row, columns) => columns.reduce((result, column) => {
|
|
31
41
|
const columnProperty = column.property;
|
|
32
|
-
return isVisible(column) ? [...result, getColumnValue(row,
|
|
42
|
+
return isVisible(column) ? [...result, getColumnValue(row, "_".concat(columnProperty)) || getColumnValue(row, columnProperty)] : result;
|
|
33
43
|
}, []);
|
|
34
44
|
|
|
35
45
|
const defaultOptions = uuid => ({
|
|
36
46
|
sheetName: 'SheetName',
|
|
37
|
-
fileName:
|
|
47
|
+
fileName: "datagrid-".concat(uuid),
|
|
38
48
|
type: 'csv',
|
|
39
49
|
onlySelection: false,
|
|
40
50
|
excludedColumns: undefined
|
|
@@ -50,18 +60,20 @@ const getCellValue = cell => {
|
|
|
50
60
|
const getExportedData = (rows, columns, range) => {
|
|
51
61
|
const rowsRanged = range ? rows.slice(...range) : rows;
|
|
52
62
|
const dataToExport = rowsRanged.map(row => getVisibleRowData(row, columns));
|
|
53
|
-
const columnsContent = columns.filter(c => isVisible(c)).reduce((acc, curr, idx) =>
|
|
54
|
-
const rowsContent = dataToExport.map(e => e.map(r =>
|
|
55
|
-
const csvContent =
|
|
63
|
+
const columnsContent = columns.filter(c => isVisible(c)).reduce((acc, curr, idx) => "".concat(acc).concat(idx === 0 ? '' : ',').concat(curr.label), '');
|
|
64
|
+
const rowsContent = dataToExport.map(e => e.map(r => "\"".concat(String(getCellValue(r)).replace(/"/g, '""'), "\"")).join(',')).join('\r\n');
|
|
65
|
+
const csvContent = "".concat(columnsContent, "\r\n").concat(rowsContent);
|
|
56
66
|
return csvContent;
|
|
57
67
|
}; // eslint-disable-next-line max-statements
|
|
58
68
|
|
|
59
|
-
const exportTo = (rows, columns, {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
69
|
+
const exportTo = (rows, columns, _ref) => {
|
|
70
|
+
let {
|
|
71
|
+
range,
|
|
72
|
+
fileName,
|
|
73
|
+
type,
|
|
74
|
+
excludedColumns
|
|
75
|
+
} = _ref;
|
|
76
|
+
|
|
65
77
|
if (excludedColumns) {
|
|
66
78
|
// eslint-disable-next-line no-param-reassign
|
|
67
79
|
columns = columns.filter(col => !excludedColumns.includes(col.property));
|
|
@@ -74,7 +86,7 @@ const exportTo = (rows, columns, {
|
|
|
74
86
|
|
|
75
87
|
if (navigator.msSaveBlob) {
|
|
76
88
|
// IE 10+
|
|
77
|
-
navigator.msSaveBlob(blob,
|
|
89
|
+
navigator.msSaveBlob(blob, "".concat(fileName, ".").concat(type));
|
|
78
90
|
} else {
|
|
79
91
|
const link = document.createElement('a');
|
|
80
92
|
|
|
@@ -83,7 +95,7 @@ const exportTo = (rows, columns, {
|
|
|
83
95
|
// Browsers that support HTML5 download attribute
|
|
84
96
|
const url = URL.createObjectURL(blob);
|
|
85
97
|
link.setAttribute('href', url);
|
|
86
|
-
link.setAttribute('download',
|
|
98
|
+
link.setAttribute('download', "".concat(fileName, ".").concat(type));
|
|
87
99
|
link.style.visibility = 'hidden';
|
|
88
100
|
document.body.appendChild(link);
|
|
89
101
|
link.click();
|
|
@@ -95,7 +107,8 @@ const exportTo = (rows, columns, {
|
|
|
95
107
|
const ExportDataPlugin = createInstancePlugin__default["default"]('export-data', {
|
|
96
108
|
decorateGrid(instance) {
|
|
97
109
|
return {
|
|
98
|
-
exportRows(
|
|
110
|
+
exportRows() {
|
|
111
|
+
let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
99
112
|
const {
|
|
100
113
|
composedRows: rows,
|
|
101
114
|
columns,
|
|
@@ -119,7 +132,8 @@ const ExportDataPlugin = createInstancePlugin__default["default"]('export-data',
|
|
|
119
132
|
exportTo(currentRows, columns, options);
|
|
120
133
|
},
|
|
121
134
|
|
|
122
|
-
exportVisibleRows(
|
|
135
|
+
exportVisibleRows() {
|
|
136
|
+
let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
123
137
|
const {
|
|
124
138
|
composedRows: rows,
|
|
125
139
|
columns,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
6
6
|
var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
|
|
7
7
|
var addFilterToColumn = require('./addFilterToColumn.js');
|
|
8
8
|
var filterRowsByQuery = require('./filtering-helper/filterRowsByQuery.js');
|
|
@@ -62,15 +62,16 @@ const FilterablePlugin = createInstancePlugin__default["default"]('filterable',
|
|
|
62
62
|
registerHotKeys(grid) {
|
|
63
63
|
return {
|
|
64
64
|
key: 'ctrl+f',
|
|
65
|
-
handler:
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
handler: _ref => {
|
|
66
|
+
let {
|
|
67
|
+
cellIndex
|
|
68
|
+
} = _ref;
|
|
68
69
|
const {
|
|
69
70
|
decoratedColumns
|
|
70
71
|
} = grid.getInstance();
|
|
71
72
|
const column = decoratedColumns[cellIndex];
|
|
72
|
-
const toggleMenuMethod =
|
|
73
|
-
if (
|
|
73
|
+
const toggleMenuMethod = dsUtilities.get(column, ['filterMenu', 'current', 'toggleMenu']);
|
|
74
|
+
if (dsUtilities.isFunction(toggleMenuMethod)) toggleMenuMethod();
|
|
74
75
|
}
|
|
75
76
|
};
|
|
76
77
|
}
|
|
@@ -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 React = require('react');
|
|
7
12
|
var initColumnDefinition = require('@elliemae/ds-shared/useDataGrid/initColumnDefinition');
|
|
@@ -2,11 +2,16 @@
|
|
|
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');
|
|
5
6
|
require('core-js/modules/es.string.replace.js');
|
|
7
|
+
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
8
|
+
require('core-js/modules/esnext.iterator.constructor.js');
|
|
9
|
+
require('core-js/modules/esnext.iterator.filter.js');
|
|
10
|
+
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
11
|
+
require('core-js/modules/esnext.iterator.for-each.js');
|
|
6
12
|
var React = require('react');
|
|
7
13
|
var dsClassnames = require('@elliemae/ds-classnames');
|
|
8
|
-
var
|
|
9
|
-
var useResizeObserver = require('@elliemae/ds-utilities/hooks/useResizeObserver');
|
|
14
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
10
15
|
var dsSystem = require('@elliemae/ds-system');
|
|
11
16
|
var getFilterMenuByType = require('./filterable-menus/getFilterMenuByType.js');
|
|
12
17
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -15,34 +20,37 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
15
20
|
|
|
16
21
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
17
22
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
18
|
-
var useResizeObserver__default = /*#__PURE__*/_interopDefaultLegacy(useResizeObserver);
|
|
19
23
|
|
|
20
24
|
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; }
|
|
21
25
|
|
|
22
26
|
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; }
|
|
23
27
|
const blockName = 'data-grid-filter-header';
|
|
24
|
-
const Container = dsClassnames.aggregatedClasses('div')(blockName, null,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
const Container = dsClassnames.aggregatedClasses('div')(blockName, null, _ref => {
|
|
29
|
+
let {
|
|
30
|
+
showFilter
|
|
31
|
+
} = _ref;
|
|
32
|
+
return {
|
|
33
|
+
'show-filter': showFilter
|
|
34
|
+
};
|
|
35
|
+
});
|
|
29
36
|
const FilterHeaderValue = dsClassnames.aggregatedClasses('div')(blockName, 'value');
|
|
30
37
|
const FilterHeaderButton = dsClassnames.aggregatedClasses('div')(blockName, 'button');
|
|
31
|
-
function FilterableHeader({
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
function FilterableHeader(_ref2) {
|
|
39
|
+
let {
|
|
40
|
+
column,
|
|
41
|
+
value,
|
|
42
|
+
columnData,
|
|
43
|
+
onAddFilter,
|
|
44
|
+
onRemoveFilter,
|
|
45
|
+
filterMenuRef,
|
|
46
|
+
onFilterMenuClose,
|
|
47
|
+
onFilterMenuOpen,
|
|
48
|
+
filters,
|
|
49
|
+
isMulti
|
|
50
|
+
} = _ref2;
|
|
43
51
|
const [isMenuOpened, setMenuOpened] = React.useState(false);
|
|
44
52
|
const [headerWidth, setHeaderWidth] = React.useState();
|
|
45
|
-
const debouncedWidthSetter =
|
|
53
|
+
const debouncedWidthSetter = dsUtilities.debounce(setHeaderWidth, 200);
|
|
46
54
|
const {
|
|
47
55
|
filterMenuMinWidth,
|
|
48
56
|
filterMenuMaxWidth
|
|
@@ -50,9 +58,10 @@ function FilterableHeader({
|
|
|
50
58
|
const theme = dsSystem.useTheme();
|
|
51
59
|
const dropdownMinWidth = filterMenuMinWidth || Number(theme.space.xl.replace('px', '')) * 2;
|
|
52
60
|
|
|
53
|
-
const defineHeaderWidth =
|
|
54
|
-
|
|
55
|
-
|
|
61
|
+
const defineHeaderWidth = _ref3 => {
|
|
62
|
+
let {
|
|
63
|
+
width
|
|
64
|
+
} = _ref3;
|
|
56
65
|
let nextWidth = width + 16; // todo: use dimsum space once we convert it to JS
|
|
57
66
|
|
|
58
67
|
if (nextWidth < dropdownMinWidth) nextWidth = dropdownMinWidth;
|
|
@@ -70,12 +79,12 @@ function FilterableHeader({
|
|
|
70
79
|
React.useEffect(() => {
|
|
71
80
|
if (!isMenuOpened) onFilterMenuClose(column);else onFilterMenuOpen(column);
|
|
72
81
|
});
|
|
73
|
-
const [ref] =
|
|
82
|
+
const [ref] = dsUtilities.useResizeObserver(defineHeaderWidth);
|
|
74
83
|
const handleOpenMenu = React.useCallback(open => {
|
|
75
84
|
setMenuOpened(open);
|
|
76
85
|
if (open) onFilterMenuOpen();
|
|
77
86
|
}, []);
|
|
78
|
-
const FilterMenuComponent = getFilterMenuByType(
|
|
87
|
+
const FilterMenuComponent = getFilterMenuByType(dsUtilities.get(column, ['filter', 'type']));
|
|
79
88
|
return /*#__PURE__*/jsxRuntime.jsxs(Container, {
|
|
80
89
|
ref: ref,
|
|
81
90
|
classProps: {
|
|
@@ -104,7 +113,7 @@ function FilterableHeader({
|
|
|
104
113
|
onOpenMenu: handleOpenMenu,
|
|
105
114
|
onClose: onFilterMenuClose,
|
|
106
115
|
width: headerWidth
|
|
107
|
-
},
|
|
116
|
+
}, dsUtilities.get(column, ['filter'], {}))))]
|
|
108
117
|
});
|
|
109
118
|
}
|
|
110
119
|
|