@elliemae/ds-datagrids 2.0.0-next.7 → 2.0.0-rc.2
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 +16 -8
- package/cjs/PaginatedDataGrid.js +5 -0
- package/cjs/columns/IconColumn.js +19 -17
- package/cjs/columns/NumberColumn.js +2 -4
- package/cjs/components/BodyCell.js +17 -10
- package/cjs/components/BodyList.js +7 -0
- package/cjs/components/ColumnVisibilityMenuOption.js +10 -6
- package/cjs/components/ColumnsOptionsMenuSection.js +34 -28
- package/cjs/components/EmptyState.js +19 -17
- package/cjs/components/HeaderCell.js +14 -8
- 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 +33 -21
- package/cjs/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js +46 -35
- package/cjs/plugins/column-dnd/DndColumnsPlugin.js +9 -5
- package/cjs/plugins/column-dnd/decorateGridWithDndColumns.js +2 -3
- package/cjs/plugins/column-sizing/ColumnSizingPlugin.js +10 -8
- 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 +22 -17
- package/cjs/plugins/column-sizing/useColumnSizeService.js +9 -0
- package/cjs/plugins/column-sizing/useStylesheetHelpers.js +56 -40
- 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 +15 -15
- package/cjs/plugins/editable/decorateEditable.js +18 -11
- package/cjs/plugins/editable/getEditorComponent.js +45 -34
- package/cjs/plugins/expandable-grid/ExpandableColumn.js +57 -50
- package/cjs/plugins/expandable-grid/ExpandablePlugin.js +37 -26
- package/cjs/plugins/expandable-grid/ExpandedRow.js +28 -18
- package/cjs/plugins/expandable-grid/ExpandedRowExtra.js +16 -10
- package/cjs/plugins/expandable-grid/useExpandGridState.js +3 -8
- package/cjs/plugins/export-data/ExportDataPlugin.js +23 -10
- package/cjs/plugins/filterable/FilterablePlugin.js +7 -6
- package/cjs/plugins/filterable/addFilterToColumn.js +5 -0
- package/cjs/plugins/filterable/components/FilterableHeader.js +35 -27
- package/cjs/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js +38 -32
- package/cjs/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js +26 -22
- package/cjs/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js +119 -154
- package/cjs/plugins/filterable/components/filterable-menus/TextFilterMenu.js +28 -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 +16 -7
- package/cjs/plugins/filterable/useFilterableState.js +11 -5
- package/cjs/plugins/grouping-by/GroupingByPlugin.js +2 -0
- package/cjs/plugins/grouping-grid/GroupingPlugin.js +9 -0
- package/cjs/plugins/grouping-grid/walkStrategy.js +11 -9
- package/cjs/plugins/infinite-scrolling/InfiniteScrollPlugin.js +7 -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 +7 -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 +8 -5
- package/cjs/plugins/row-dnd/DndRowsPlugin.js +23 -16
- package/cjs/plugins/selectable/SelectablePlugin.js +10 -8
- 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 +24 -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 +151 -134
- package/cjs/plugins/sortable/useSortableState.js +7 -0
- package/cjs/plugins/toolbar/RowRenderer.js +7 -2
- package/cjs/plugins/toolbar/ToolbarTrigger.js +15 -10
- package/cjs/plugins/virtualization/AutoHeightList.js +10 -8
- package/cjs/plugins/virtualization/VirtualizationPlugin.js +32 -25
- package/cjs/plugins/virtualization/VirtualizedBody.js +18 -9
- package/cjs/plugins/virtualization/VirtualizedBodyRow.js +8 -7
- package/cjs/renders/CellWithAddons.js +20 -18
- package/cjs/renders/styled.js +3 -2
- 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 +16 -8
- package/esm/PaginatedDataGrid.js +5 -0
- package/esm/columns/IconColumn.js +18 -16
- package/esm/columns/NumberColumn.js +2 -4
- package/esm/components/BodyCell.js +17 -10
- package/esm/components/BodyList.js +7 -0
- package/esm/components/ColumnVisibilityMenuOption.js +10 -6
- package/esm/components/ColumnsOptionsMenuSection.js +34 -28
- package/esm/components/EmptyState.js +18 -15
- package/esm/components/HeaderCell.js +14 -8
- 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 +33 -21
- package/esm/plugins/body-header-scroll-sync/BodyHeaderScrollSyncPlugin.js +46 -35
- package/esm/plugins/column-dnd/DndColumnsPlugin.js +6 -2
- package/esm/plugins/column-dnd/decorateGridWithDndColumns.js +1 -1
- package/esm/plugins/column-sizing/ColumnSizingPlugin.js +9 -7
- 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 +21 -15
- package/esm/plugins/column-sizing/useColumnSizeService.js +9 -0
- package/esm/plugins/column-sizing/useStylesheetHelpers.js +54 -38
- 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 +13 -12
- package/esm/plugins/editable/decorateEditable.js +16 -8
- package/esm/plugins/editable/getEditorComponent.js +49 -38
- package/esm/plugins/expandable-grid/ExpandableColumn.js +56 -47
- package/esm/plugins/expandable-grid/ExpandablePlugin.js +33 -20
- package/esm/plugins/expandable-grid/ExpandedRow.js +27 -17
- package/esm/plugins/expandable-grid/ExpandedRowExtra.js +15 -9
- package/esm/plugins/expandable-grid/useExpandGridState.js +1 -2
- package/esm/plugins/export-data/ExportDataPlugin.js +22 -9
- package/esm/plugins/filterable/FilterablePlugin.js +5 -4
- package/esm/plugins/filterable/addFilterToColumn.js +5 -0
- package/esm/plugins/filterable/components/FilterableHeader.js +31 -22
- package/esm/plugins/filterable/components/filterable-menus/DateRangeFilterMenu.js +38 -31
- package/esm/plugins/filterable/components/filterable-menus/SingleDateFilterMenu.js +26 -21
- package/esm/plugins/filterable/components/filterable-menus/SingleRangeSwitcherMenu.js +118 -152
- package/esm/plugins/filterable/components/filterable-menus/TextFilterMenu.js +27 -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 +10 -1
- package/esm/plugins/filterable/useFilterableState.js +11 -5
- package/esm/plugins/grouping-by/GroupingByPlugin.js +2 -0
- package/esm/plugins/grouping-grid/GroupingPlugin.js +9 -0
- package/esm/plugins/grouping-grid/walkStrategy.js +11 -9
- package/esm/plugins/infinite-scrolling/InfiniteScrollPlugin.js +7 -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 +6 -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 +6 -3
- package/esm/plugins/row-dnd/DndRowsPlugin.js +21 -13
- package/esm/plugins/selectable/SelectablePlugin.js +9 -7
- 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 +19 -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 +151 -134
- package/esm/plugins/sortable/useSortableState.js +7 -0
- package/esm/plugins/toolbar/RowRenderer.js +6 -1
- package/esm/plugins/toolbar/ToolbarTrigger.js +14 -8
- package/esm/plugins/virtualization/AutoHeightList.js +6 -3
- package/esm/plugins/virtualization/VirtualizationPlugin.js +31 -24
- package/esm/plugins/virtualization/VirtualizedBody.js +14 -5
- package/esm/plugins/virtualization/VirtualizedBodyRow.js +8 -7
- package/esm/renders/CellWithAddons.js +15 -14
- package/esm/renders/styled.js +1 -1
- 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
|
@@ -3,14 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
require('core-js/modules/web.dom-collections.iterator.js');
|
|
6
|
-
var
|
|
7
|
-
var useExpandState = require('@elliemae/ds-utilities/hooks/useExpandState');
|
|
6
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
8
7
|
var React = require('react');
|
|
9
8
|
|
|
10
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
-
|
|
12
|
-
var useExpandState__default = /*#__PURE__*/_interopDefaultLegacy(useExpandState);
|
|
13
|
-
|
|
14
9
|
const useExpandGridState = grid => {
|
|
15
10
|
const {
|
|
16
11
|
composedRows,
|
|
@@ -28,7 +23,7 @@ const useExpandGridState = grid => {
|
|
|
28
23
|
const {
|
|
29
24
|
state,
|
|
30
25
|
actions
|
|
31
|
-
} =
|
|
26
|
+
} = dsUtilities.useExpandState({
|
|
32
27
|
items: composedRows,
|
|
33
28
|
itemKey: rowKey,
|
|
34
29
|
expanded: expandedRowsProp,
|
|
@@ -55,7 +50,7 @@ const useExpandGridState = grid => {
|
|
|
55
50
|
};
|
|
56
51
|
|
|
57
52
|
const toggleShowAllRows = row => {
|
|
58
|
-
if (
|
|
53
|
+
if (dsUtilities.isFunction(onToggleShowAllRows)) {
|
|
59
54
|
onToggleShowAllRows(row);
|
|
60
55
|
} else {
|
|
61
56
|
const key = row[rowKey];
|
|
@@ -3,11 +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');
|
|
6
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');
|
|
7
14
|
require('core-js/modules/es.string.replace.js');
|
|
8
15
|
require('core-js/modules/web.url.js');
|
|
9
16
|
require('core-js/modules/web.url-search-params.js');
|
|
10
|
-
|
|
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');
|
|
11
20
|
var createInstancePlugin = require('@elliemae/ds-shared/createDataInstance/createInstancePlugin');
|
|
12
21
|
|
|
13
22
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -27,7 +36,7 @@ const isVisible = column => {
|
|
|
27
36
|
return typeof column.visible === 'undefined' || column.visible;
|
|
28
37
|
};
|
|
29
38
|
|
|
30
|
-
const getColumnValue = (row, property) =>
|
|
39
|
+
const getColumnValue = (row, property) => dsUtilities.get(row, property);
|
|
31
40
|
const getVisibleRowData = (row, columns) => columns.reduce((result, column) => {
|
|
32
41
|
const columnProperty = column.property;
|
|
33
42
|
return isVisible(column) ? [...result, getColumnValue(row, "_".concat(columnProperty)) || getColumnValue(row, columnProperty)] : result;
|
|
@@ -57,12 +66,14 @@ const getExportedData = (rows, columns, range) => {
|
|
|
57
66
|
return csvContent;
|
|
58
67
|
}; // eslint-disable-next-line max-statements
|
|
59
68
|
|
|
60
|
-
const exportTo = (rows, columns, {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
const exportTo = (rows, columns, _ref) => {
|
|
70
|
+
let {
|
|
71
|
+
range,
|
|
72
|
+
fileName,
|
|
73
|
+
type,
|
|
74
|
+
excludedColumns
|
|
75
|
+
} = _ref;
|
|
76
|
+
|
|
66
77
|
if (excludedColumns) {
|
|
67
78
|
// eslint-disable-next-line no-param-reassign
|
|
68
79
|
columns = columns.filter(col => !excludedColumns.includes(col.property));
|
|
@@ -96,7 +107,8 @@ const exportTo = (rows, columns, {
|
|
|
96
107
|
const ExportDataPlugin = createInstancePlugin__default["default"]('export-data', {
|
|
97
108
|
decorateGrid(instance) {
|
|
98
109
|
return {
|
|
99
|
-
exportRows(
|
|
110
|
+
exportRows() {
|
|
111
|
+
let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
100
112
|
const {
|
|
101
113
|
composedRows: rows,
|
|
102
114
|
columns,
|
|
@@ -120,7 +132,8 @@ const ExportDataPlugin = createInstancePlugin__default["default"]('export-data',
|
|
|
120
132
|
exportTo(currentRows, columns, options);
|
|
121
133
|
},
|
|
122
134
|
|
|
123
|
-
exportVisibleRows(
|
|
135
|
+
exportVisibleRows() {
|
|
136
|
+
let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
124
137
|
const {
|
|
125
138
|
composedRows: rows,
|
|
126
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');
|
|
@@ -4,10 +4,14 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
|
4
4
|
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
5
5
|
require('core-js/modules/web.dom-collections.iterator.js');
|
|
6
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');
|
|
7
12
|
var React = require('react');
|
|
8
13
|
var dsClassnames = require('@elliemae/ds-classnames');
|
|
9
|
-
var
|
|
10
|
-
var useResizeObserver = require('@elliemae/ds-utilities/hooks/useResizeObserver');
|
|
14
|
+
var dsUtilities = require('@elliemae/ds-utilities');
|
|
11
15
|
var dsSystem = require('@elliemae/ds-system');
|
|
12
16
|
var getFilterMenuByType = require('./filterable-menus/getFilterMenuByType.js');
|
|
13
17
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -16,34 +20,37 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
16
20
|
|
|
17
21
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
18
22
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
19
|
-
var useResizeObserver__default = /*#__PURE__*/_interopDefaultLegacy(useResizeObserver);
|
|
20
23
|
|
|
21
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; }
|
|
22
25
|
|
|
23
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; }
|
|
24
27
|
const blockName = 'data-grid-filter-header';
|
|
25
|
-
const Container = dsClassnames.aggregatedClasses('div')(blockName, null,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
const Container = dsClassnames.aggregatedClasses('div')(blockName, null, _ref => {
|
|
29
|
+
let {
|
|
30
|
+
showFilter
|
|
31
|
+
} = _ref;
|
|
32
|
+
return {
|
|
33
|
+
'show-filter': showFilter
|
|
34
|
+
};
|
|
35
|
+
});
|
|
30
36
|
const FilterHeaderValue = dsClassnames.aggregatedClasses('div')(blockName, 'value');
|
|
31
37
|
const FilterHeaderButton = dsClassnames.aggregatedClasses('div')(blockName, 'button');
|
|
32
|
-
function FilterableHeader({
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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;
|
|
44
51
|
const [isMenuOpened, setMenuOpened] = React.useState(false);
|
|
45
52
|
const [headerWidth, setHeaderWidth] = React.useState();
|
|
46
|
-
const debouncedWidthSetter =
|
|
53
|
+
const debouncedWidthSetter = dsUtilities.debounce(setHeaderWidth, 200);
|
|
47
54
|
const {
|
|
48
55
|
filterMenuMinWidth,
|
|
49
56
|
filterMenuMaxWidth
|
|
@@ -51,9 +58,10 @@ function FilterableHeader({
|
|
|
51
58
|
const theme = dsSystem.useTheme();
|
|
52
59
|
const dropdownMinWidth = filterMenuMinWidth || Number(theme.space.xl.replace('px', '')) * 2;
|
|
53
60
|
|
|
54
|
-
const defineHeaderWidth =
|
|
55
|
-
|
|
56
|
-
|
|
61
|
+
const defineHeaderWidth = _ref3 => {
|
|
62
|
+
let {
|
|
63
|
+
width
|
|
64
|
+
} = _ref3;
|
|
57
65
|
let nextWidth = width + 16; // todo: use dimsum space once we convert it to JS
|
|
58
66
|
|
|
59
67
|
if (nextWidth < dropdownMinWidth) nextWidth = dropdownMinWidth;
|
|
@@ -71,12 +79,12 @@ function FilterableHeader({
|
|
|
71
79
|
React.useEffect(() => {
|
|
72
80
|
if (!isMenuOpened) onFilterMenuClose(column);else onFilterMenuOpen(column);
|
|
73
81
|
});
|
|
74
|
-
const [ref] =
|
|
82
|
+
const [ref] = dsUtilities.useResizeObserver(defineHeaderWidth);
|
|
75
83
|
const handleOpenMenu = React.useCallback(open => {
|
|
76
84
|
setMenuOpened(open);
|
|
77
85
|
if (open) onFilterMenuOpen();
|
|
78
86
|
}, []);
|
|
79
|
-
const FilterMenuComponent = getFilterMenuByType(
|
|
87
|
+
const FilterMenuComponent = getFilterMenuByType(dsUtilities.get(column, ['filter', 'type']));
|
|
80
88
|
return /*#__PURE__*/jsxRuntime.jsxs(Container, {
|
|
81
89
|
ref: ref,
|
|
82
90
|
classProps: {
|
|
@@ -105,7 +113,7 @@ function FilterableHeader({
|
|
|
105
113
|
onOpenMenu: handleOpenMenu,
|
|
106
114
|
onClose: onFilterMenuClose,
|
|
107
115
|
width: headerWidth
|
|
108
|
-
},
|
|
116
|
+
}, dsUtilities.get(column, ['filter'], {}))))]
|
|
109
117
|
});
|
|
110
118
|
}
|
|
111
119
|
|
|
@@ -4,9 +4,9 @@ var _jsx = require('@babel/runtime/helpers/jsx');
|
|
|
4
4
|
require('core-js/modules/web.dom-collections.iterator.js');
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var dsControlledForm = require('@elliemae/ds-controlled-form');
|
|
7
|
-
var DSPopper = require('@elliemae/ds-
|
|
8
|
-
var
|
|
9
|
-
var DSButton = require('@elliemae/ds-
|
|
7
|
+
var DSPopper = require('@elliemae/ds-popper');
|
|
8
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
9
|
+
var DSButton = require('@elliemae/ds-button');
|
|
10
10
|
var moment = require('moment');
|
|
11
11
|
var dsClassnames = require('@elliemae/ds-classnames');
|
|
12
12
|
var defaultDateFormat = require('./defaultDateFormat.js');
|
|
@@ -15,19 +15,19 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
15
15
|
|
|
16
16
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
17
17
|
var DSPopper__default = /*#__PURE__*/_interopDefaultLegacy(DSPopper);
|
|
18
|
-
var DatePickerIcon__default = /*#__PURE__*/_interopDefaultLegacy(DatePickerIcon);
|
|
19
18
|
var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
|
|
20
19
|
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
21
20
|
|
|
22
|
-
var
|
|
21
|
+
var _DatePicker;
|
|
23
22
|
const blockname = 'date-range';
|
|
24
23
|
const Wrapper = dsClassnames.aggregatedClasses('div')(blockname, 'wrapper');
|
|
25
24
|
const Header = dsClassnames.aggregatedClasses('div')(blockname, 'header'); // const randomString = (maxLength = 5) => Math.random().toString(36).slice(-maxLength);
|
|
26
25
|
|
|
27
|
-
const DateRangePickerContainer =
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
const DateRangePickerContainer = _ref => {
|
|
27
|
+
let {
|
|
28
|
+
onChange = () => null,
|
|
29
|
+
showHeader
|
|
30
|
+
} = _ref;
|
|
31
31
|
const [startDate, setStartDate] = React.useState('');
|
|
32
32
|
const [endDate, setEndDate] = React.useState(''); // For some reason it worked like this
|
|
33
33
|
|
|
@@ -46,10 +46,12 @@ const DateRangePickerContainer = ({
|
|
|
46
46
|
}, [startDate, endDate, lastChangeWasPicker]);
|
|
47
47
|
return /*#__PURE__*/_jsx__default["default"](Wrapper, {
|
|
48
48
|
"data-testid": "date-range__wrapper",
|
|
49
|
+
onKeyDown: e => e.code === 'Enter' && setLastChangeWasPicker(true),
|
|
49
50
|
style: {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
backgroundColor: 'white',
|
|
52
|
+
boxShadow: '0 6px 20px 0 rgb(0 0 0 / 24%)',
|
|
53
|
+
width: '261px'
|
|
54
|
+
}
|
|
53
55
|
}, void 0, showHeader && /*#__PURE__*/_jsx__default["default"](Header, {
|
|
54
56
|
style: {
|
|
55
57
|
padding: '8px',
|
|
@@ -83,35 +85,39 @@ const DateRangePickerContainer = ({
|
|
|
83
85
|
}));
|
|
84
86
|
};
|
|
85
87
|
|
|
86
|
-
const formatRangeDate = ({
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
const formatRangeDate = function (_ref2) {
|
|
89
|
+
let {
|
|
90
|
+
startDate,
|
|
91
|
+
endDate
|
|
92
|
+
} = _ref2;
|
|
93
|
+
let format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultDateFormat.DEFAULT_DATE_FORMAT;
|
|
90
94
|
const sameDay = startDate.isSame(endDate, 'day');
|
|
91
95
|
if (sameDay) return "".concat(endDate.format(format));
|
|
92
96
|
return "".concat(startDate.format(format), " - ").concat(endDate.format(format));
|
|
93
97
|
};
|
|
94
98
|
|
|
95
|
-
function DateRangeFilterMenu({
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
function DateRangeFilterMenu(_ref3) {
|
|
100
|
+
let {
|
|
101
|
+
column,
|
|
102
|
+
className,
|
|
103
|
+
isMenuOpened = false,
|
|
104
|
+
onOpenMenu = () => null,
|
|
105
|
+
placement = DSPopper.PopperPositions.BOTTOM_END,
|
|
106
|
+
onAddFilter = () => null,
|
|
107
|
+
dateFormatter = formatRangeDate,
|
|
108
|
+
showHeader = true,
|
|
109
|
+
menuProps
|
|
110
|
+
} = _ref3;
|
|
106
111
|
return /*#__PURE__*/_jsx__default["default"](DSPopper__default["default"], {
|
|
107
112
|
contentComponent: /*#__PURE__*/_jsx__default["default"]("div", {
|
|
108
113
|
className: className
|
|
109
114
|
}, void 0, /*#__PURE__*/_jsx__default["default"](DateRangePickerContainer, {
|
|
110
115
|
minimumNights: 0,
|
|
111
|
-
onChange:
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
116
|
+
onChange: _ref4 => {
|
|
117
|
+
let {
|
|
118
|
+
startDate,
|
|
119
|
+
endDate
|
|
120
|
+
} = _ref4;
|
|
115
121
|
startDate.startOf('day');
|
|
116
122
|
endDate.endOf('day');
|
|
117
123
|
onAddFilter({
|
|
@@ -140,7 +146,7 @@ function DateRangeFilterMenu({
|
|
|
140
146
|
showArrow: false,
|
|
141
147
|
triggerComponent: /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
|
|
142
148
|
buttonType: "text",
|
|
143
|
-
icon:
|
|
149
|
+
icon: _DatePicker || (_DatePicker = /*#__PURE__*/_jsx__default["default"](dsIcons.DatePicker2, {})),
|
|
144
150
|
onClick: () => !isMenuOpened ? onOpenMenu(true) : onOpenMenu(false),
|
|
145
151
|
size: "s"
|
|
146
152
|
}),
|
|
@@ -5,9 +5,9 @@ require('core-js/modules/web.dom-collections.iterator.js');
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var Grid = require('@elliemae/ds-grid');
|
|
7
7
|
var dsControlledForm = require('@elliemae/ds-controlled-form');
|
|
8
|
-
var DSPopper = require('@elliemae/ds-
|
|
9
|
-
var
|
|
10
|
-
var DSButton = require('@elliemae/ds-
|
|
8
|
+
var DSPopper = require('@elliemae/ds-popper');
|
|
9
|
+
var dsIcons = require('@elliemae/ds-icons');
|
|
10
|
+
var DSButton = require('@elliemae/ds-button');
|
|
11
11
|
var moment = require('moment');
|
|
12
12
|
var defaultDateFormat = require('./defaultDateFormat.js');
|
|
13
13
|
|
|
@@ -16,16 +16,16 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
16
16
|
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
17
17
|
var Grid__default = /*#__PURE__*/_interopDefaultLegacy(Grid);
|
|
18
18
|
var DSPopper__default = /*#__PURE__*/_interopDefaultLegacy(DSPopper);
|
|
19
|
-
var DatePickerIcon__default = /*#__PURE__*/_interopDefaultLegacy(DatePickerIcon);
|
|
20
19
|
var DSButton__default = /*#__PURE__*/_interopDefaultLegacy(DSButton);
|
|
21
20
|
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
22
21
|
|
|
23
|
-
var
|
|
22
|
+
var _DatePicker;
|
|
24
23
|
|
|
25
|
-
const SingleDatePickerContainer =
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
const SingleDatePickerContainer = _ref => {
|
|
25
|
+
let {
|
|
26
|
+
onChange = () => null,
|
|
27
|
+
showHeader
|
|
28
|
+
} = _ref;
|
|
29
29
|
const [date, setDate] = React.useState('');
|
|
30
30
|
const handleDateChange = React.useCallback(data => {
|
|
31
31
|
if (!data.includes('_')) onChange(moment__default["default"](data));
|
|
@@ -49,19 +49,23 @@ const SingleDatePickerContainer = ({
|
|
|
49
49
|
}));
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
-
const formatDate = (date
|
|
52
|
+
const formatDate = function (date) {
|
|
53
|
+
let format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultDateFormat.DEFAULT_DATE_FORMAT;
|
|
54
|
+
return date.format(format);
|
|
55
|
+
};
|
|
53
56
|
|
|
54
|
-
function SingleDateFilterMenu({
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
57
|
+
function SingleDateFilterMenu(_ref2) {
|
|
58
|
+
let {
|
|
59
|
+
column,
|
|
60
|
+
className,
|
|
61
|
+
isMenuOpened = false,
|
|
62
|
+
onOpenMenu = () => null,
|
|
63
|
+
placement = DSPopper.PopperPositions.BOTTOM_END,
|
|
64
|
+
onAddFilter = () => null,
|
|
65
|
+
dateFormatter = formatDate,
|
|
66
|
+
showHeader = false,
|
|
67
|
+
menuProps
|
|
68
|
+
} = _ref2;
|
|
65
69
|
return /*#__PURE__*/_jsx__default["default"](DSPopper__default["default"], {
|
|
66
70
|
contentComponent: /*#__PURE__*/_jsx__default["default"]("div", {
|
|
67
71
|
className: className,
|
|
@@ -92,7 +96,7 @@ function SingleDateFilterMenu({
|
|
|
92
96
|
showArrow: false,
|
|
93
97
|
triggerComponent: /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
|
|
94
98
|
buttonType: "text",
|
|
95
|
-
icon:
|
|
99
|
+
icon: _DatePicker || (_DatePicker = /*#__PURE__*/_jsx__default["default"](dsIcons.DatePicker2, {})),
|
|
96
100
|
onClick: () => !isMenuOpened ? onOpenMenu(true) : onOpenMenu(false),
|
|
97
101
|
size: "s"
|
|
98
102
|
}),
|