@elliemae/ds-data-table 2.0.0-alpha.6 → 2.0.0-next.0
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/DataTableSchema.js +9 -9
- package/cjs/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +1 -0
- package/cjs/addons/Editables/DateEditableCell/DateEditableCell.js +1 -0
- package/cjs/addons/Editables/TextEditableCell/TextEditableCell.js +1 -0
- package/cjs/addons/Filters/Components/DateRangeFilter/index.js +2 -1
- package/cjs/addons/Filters/Components/NumberRangeFilter/index.js +1 -0
- package/cjs/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +1 -0
- package/cjs/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +1 -0
- package/cjs/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +1 -0
- package/cjs/addons/Filters/Components/SingleDateFilter/index.js +1 -0
- package/cjs/addons/Filters/Components/TextInputFilter/index.js +1 -0
- package/cjs/configs/constants.js +2 -1
- package/cjs/exported-related/EditableCell.js +2 -1
- package/cjs/exported-related/FilterPopover.js +6 -2
- package/cjs/exported-related/RowRenderer/useRowRendererHandlers.js +25 -2
- package/cjs/exported-related/RowRenderer/useRowStyle.js +5 -5
- package/cjs/exported-related/Toolbar/Toolbar.js +29 -14
- package/cjs/helpers/addCellData.js +1 -1
- package/cjs/parts/FilterBar/FiltersBar.js +5 -1
- package/cjs/parts/FilterBar/components/MultiSelectPill.js +3 -2
- package/cjs/parts/Filters/index.js +1 -0
- package/cjs/parts/Headers/HeaderCell.js +3 -1
- package/cjs/parts/RowVariants/index.js +1 -0
- package/cjs/styled.js +9 -2
- package/esm/DataTableSchema.js +9 -9
- package/esm/addons/Editables/ComboboxEditableCell/ComboboxEditableCell.js +1 -0
- package/esm/addons/Editables/DateEditableCell/DateEditableCell.js +1 -0
- package/esm/addons/Editables/TextEditableCell/TextEditableCell.js +1 -0
- package/esm/addons/Filters/Components/DateRangeFilter/index.js +2 -1
- package/esm/addons/Filters/Components/NumberRangeFilter/index.js +1 -0
- package/esm/addons/Filters/Components/SelectFilter/BaseSelectFilter.js +1 -0
- package/esm/addons/Filters/Components/SelectFilter/MultiSelectFilter.js +1 -0
- package/esm/addons/Filters/Components/SelectFilter/SingleSelectFilter.js +1 -0
- package/esm/addons/Filters/Components/SingleDateFilter/index.js +1 -0
- package/esm/addons/Filters/Components/TextInputFilter/index.js +1 -0
- package/esm/configs/constants.js +2 -1
- package/esm/exported-related/EditableCell.js +2 -1
- package/esm/exported-related/FilterPopover.js +6 -2
- package/esm/exported-related/RowRenderer/useRowRendererHandlers.js +25 -2
- package/esm/exported-related/RowRenderer/useRowStyle.js +5 -5
- package/esm/exported-related/Toolbar/Toolbar.js +30 -15
- package/esm/helpers/addCellData.js +1 -1
- package/esm/parts/FilterBar/FiltersBar.js +5 -1
- package/esm/parts/FilterBar/components/MultiSelectPill.js +3 -2
- package/esm/parts/Filters/index.js +1 -0
- package/esm/parts/Headers/HeaderCell.js +3 -1
- package/esm/parts/RowVariants/index.js +1 -0
- package/esm/styled.js +9 -2
- package/package.json +4 -4
- package/types/configs/constants.d.ts +1 -0
- package/types/exported-related/Toolbar/Toolbar.d.ts +2 -4
package/cjs/DataTableSchema.js
CHANGED
|
@@ -13,12 +13,12 @@ const columnPropTypes = {
|
|
|
13
13
|
accessor: reactDesc.PropTypes.string.description('The entry of the data that this column will display'),
|
|
14
14
|
id: reactDesc.PropTypes.string.description('The id of the column, will default to the Header or accessor if not present'),
|
|
15
15
|
filter: outOfTheBoxFilterType.description('out-of-the-box filters'),
|
|
16
|
-
Filter: reactDesc.PropTypes.
|
|
17
|
-
Cell: reactDesc.PropTypes.
|
|
16
|
+
Filter: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.func, reactDesc.PropTypes.element]).description('The custom component to render as a filter'),
|
|
17
|
+
Cell: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.func, reactDesc.PropTypes.element]).description('The custom cell renderer component'),
|
|
18
18
|
editable: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.string, reactDesc.PropTypes.func, reactDesc.PropTypes.element]).description('The editable out-of-the-box or component to render'),
|
|
19
19
|
disableDnD: reactDesc.PropTypes.bool.description('Whereas this column should be draggable'),
|
|
20
20
|
canResize: reactDesc.PropTypes.bool.description('Whereas this column should be resizable'),
|
|
21
|
-
width: reactDesc.PropTypes.
|
|
21
|
+
width: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.string, reactDesc.PropTypes.number]).description('Width of this column'),
|
|
22
22
|
minWidth: reactDesc.PropTypes.number.description('Minimum width of this column, useful when resizing'),
|
|
23
23
|
maxWidth: reactDesc.PropTypes.number.description('Maximum width of this column, useful when resizing'),
|
|
24
24
|
canSort: reactDesc.PropTypes.bool.description('Whereas this column is sortable'),
|
|
@@ -31,7 +31,7 @@ const columnsPropTypes = reactDesc.PropTypes.shape(columnPropTypes).description(
|
|
|
31
31
|
const rowPropTypes = {
|
|
32
32
|
row_variant_type: rowVariantType.description('Which row variant to use, will default to primary'),
|
|
33
33
|
row_variant_compact: reactDesc.PropTypes.bool.description('Whether to use the compact version of the row'),
|
|
34
|
-
tableRowDetails: reactDesc.PropTypes.
|
|
34
|
+
tableRowDetails: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.func, reactDesc.PropTypes.element]).description('Component for row details'),
|
|
35
35
|
dimsumHeaderValue: reactDesc.PropTypes.string.description('Header displayed on the header variant of the row')
|
|
36
36
|
};
|
|
37
37
|
const rowsPropTypes = reactDesc.PropTypes.shape(rowPropTypes).description('Rows props');
|
|
@@ -39,8 +39,8 @@ const DataTableSchema = {
|
|
|
39
39
|
columns: reactDesc.PropTypes.arrayOf(columnsPropTypes).description('Array of columns').isRequired,
|
|
40
40
|
data: reactDesc.PropTypes.arrayOf(rowsPropTypes).description('Array of rows'),
|
|
41
41
|
height: reactDesc.PropTypes.number.description('Height of the datatable component'),
|
|
42
|
-
width: reactDesc.PropTypes.
|
|
43
|
-
renderRowActions: reactDesc.PropTypes.
|
|
42
|
+
width: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.string, reactDesc.PropTypes.number]).description('Width of the datatable component'),
|
|
43
|
+
renderRowActions: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.object, reactDesc.PropTypes.bool]).description('The renderer to use for the action toolbar'),
|
|
44
44
|
isExpandable: reactDesc.PropTypes.bool.description('Whether the datatable is expandable').defaultValue(false),
|
|
45
45
|
uniqueRowAccessor: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.string, reactDesc.PropTypes.arrayOf(reactDesc.PropTypes.string), reactDesc.PropTypes.func]).description('Column / Combination of columns / Function to call to produce a unique identifier for each row.' + ' This is necessary for the selectable and drag and drop features'),
|
|
46
46
|
disabledRows: reactDesc.PropTypes.object.description('Object with the identifiers of the rows as keys, and booleans as values. Specifies if a row is disabled or not'),
|
|
@@ -59,7 +59,7 @@ const DataTableSchema = {
|
|
|
59
59
|
})).description('Array of filter keys and values'),
|
|
60
60
|
withFilterBar: reactDesc.PropTypes.bool.description('Whether to display the filter bar'),
|
|
61
61
|
filterBarProps: reactDesc.PropTypes.shape({
|
|
62
|
-
customPillRenderer: reactDesc.PropTypes.
|
|
62
|
+
customPillRenderer: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.func, reactDesc.PropTypes.element]).description('If you specify custom filters, you will need to render their pills here'),
|
|
63
63
|
extraOptions: reactDesc.PropTypes.arrayOf(reactDesc.PropTypes.shape({
|
|
64
64
|
type: reactDesc.PropTypes.string,
|
|
65
65
|
id: reactDesc.PropTypes.string,
|
|
@@ -68,7 +68,7 @@ const DataTableSchema = {
|
|
|
68
68
|
})).description('Any extra option you want in the dropdownmenu of the filter bar')
|
|
69
69
|
}).description('Props for the filter bar'),
|
|
70
70
|
onFiltersChange: reactDesc.PropTypes.func.description('Function invoked when filters change'),
|
|
71
|
-
pagination: reactDesc.PropTypes.
|
|
71
|
+
pagination: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.bool, reactDesc.PropTypes.shape({
|
|
72
72
|
pageIndex: reactDesc.PropTypes.number.description('Index of the current page, starting from 1'),
|
|
73
73
|
canPreviousPage: reactDesc.PropTypes.bool.description('Whether the previous button is disabled or not'),
|
|
74
74
|
canNextPage: reactDesc.PropTypes.bool.description('Whether the next button is disabled or not'),
|
|
@@ -90,7 +90,7 @@ const DataTableSchema = {
|
|
|
90
90
|
noResultsMessage: reactDesc.PropTypes.string.description('Message to show when no more data is available'),
|
|
91
91
|
noResultsSecondaryMessage: reactDesc.PropTypes.string.description('Secondary message to show when no more data is available'),
|
|
92
92
|
noResultsButtonLabel: reactDesc.PropTypes.string.description('Label of the button when no more data is available'),
|
|
93
|
-
noResultsPlaceholder: reactDesc.PropTypes.
|
|
93
|
+
noResultsPlaceholder: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.func, reactDesc.PropTypes.element]).description('Custom content to show when dataset is empty'),
|
|
94
94
|
isLoading: reactDesc.PropTypes.bool.description('Whether to show a global loader in the datatable'),
|
|
95
95
|
isLoadingAppended: reactDesc.PropTypes.bool.description('Whether to show an appended loader in the datatable'),
|
|
96
96
|
// eslint-disable-next-line max-lines
|
|
@@ -30,6 +30,7 @@ require('@elliemae/ds-icons/GripperVertical');
|
|
|
30
30
|
require('../../../parts/HoC/SortableItemContext.js');
|
|
31
31
|
var EditableCell = require('../../../exported-related/EditableCell.js');
|
|
32
32
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
33
|
+
require('@elliemae/ds-utilities/hooks');
|
|
33
34
|
require('uid');
|
|
34
35
|
require('../../../exported-related/Filters/applyOutOfTheBoxFilters.js');
|
|
35
36
|
require('moment');
|
|
@@ -29,6 +29,7 @@ require('@elliemae/ds-icons/GripperVertical');
|
|
|
29
29
|
require('../../../parts/HoC/SortableItemContext.js');
|
|
30
30
|
var EditableCell = require('../../../exported-related/EditableCell.js');
|
|
31
31
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
32
|
+
require('@elliemae/ds-utilities/hooks');
|
|
32
33
|
require('uid');
|
|
33
34
|
require('../../../exported-related/Filters/applyOutOfTheBoxFilters.js');
|
|
34
35
|
require('moment');
|
|
@@ -29,6 +29,7 @@ require('@elliemae/ds-icons/GripperVertical');
|
|
|
29
29
|
require('../../../parts/HoC/SortableItemContext.js');
|
|
30
30
|
var EditableCell = require('../../../exported-related/EditableCell.js');
|
|
31
31
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
32
|
+
require('@elliemae/ds-utilities/hooks');
|
|
32
33
|
require('uid');
|
|
33
34
|
require('../../../exported-related/Filters/applyOutOfTheBoxFilters.js');
|
|
34
35
|
require('moment');
|
|
@@ -14,6 +14,7 @@ require('react/jsx-runtime');
|
|
|
14
14
|
require('styled-components');
|
|
15
15
|
require('@elliemae/ds-button');
|
|
16
16
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
17
|
+
require('@elliemae/ds-utilities/hooks');
|
|
17
18
|
var constants = require('../../../../configs/constants.js');
|
|
18
19
|
require('react-virtual');
|
|
19
20
|
require('../../../../configs/useRowFlattenization.js');
|
|
@@ -65,7 +66,7 @@ const DateRangeFilter = props => {
|
|
|
65
66
|
setEndDate(dateRange.endDate || '');
|
|
66
67
|
}, [dateRange]);
|
|
67
68
|
React.useEffect(() => {
|
|
68
|
-
if (!startDate.includes('_') && !endDate.includes('_')) {
|
|
69
|
+
if (startDate && endDate && !startDate.includes('_') && !endDate.includes('_')) {
|
|
69
70
|
onValueChange(FilterTypes.FILTER_TYPES.DATE_RANGE, {
|
|
70
71
|
startDate,
|
|
71
72
|
endDate
|
|
@@ -15,6 +15,7 @@ require('react/jsx-runtime');
|
|
|
15
15
|
require('styled-components');
|
|
16
16
|
require('@elliemae/ds-button');
|
|
17
17
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
18
|
+
require('@elliemae/ds-utilities/hooks');
|
|
18
19
|
var constants = require('../../../../configs/constants.js');
|
|
19
20
|
require('react-virtual');
|
|
20
21
|
require('../../../../configs/useRowFlattenization.js');
|
|
@@ -32,6 +32,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
32
32
|
require('styled-components');
|
|
33
33
|
require('@elliemae/ds-button');
|
|
34
34
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
35
|
+
require('@elliemae/ds-utilities/hooks');
|
|
35
36
|
var constants = require('../../../../configs/constants.js');
|
|
36
37
|
require('../../../../configs/useRowFlattenization.js');
|
|
37
38
|
require('@babel/runtime/helpers/defineProperty');
|
|
@@ -29,6 +29,7 @@ require('../../../../parts/Footer.js');
|
|
|
29
29
|
require('@elliemae/ds-icons/GripperVertical');
|
|
30
30
|
require('../../../../parts/HoC/SortableItemContext.js');
|
|
31
31
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
32
|
+
require('@elliemae/ds-utilities/hooks');
|
|
32
33
|
require('uid');
|
|
33
34
|
var FilterTypes = require('../../../../exported-related/FilterTypes.js');
|
|
34
35
|
require('../../../../exported-related/Filters/applyOutOfTheBoxFilters.js');
|
|
@@ -29,6 +29,7 @@ require('../../../../parts/Footer.js');
|
|
|
29
29
|
require('@elliemae/ds-icons/GripperVertical');
|
|
30
30
|
require('../../../../parts/HoC/SortableItemContext.js');
|
|
31
31
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
32
|
+
require('@elliemae/ds-utilities/hooks');
|
|
32
33
|
require('uid');
|
|
33
34
|
var FilterTypes = require('../../../../exported-related/FilterTypes.js');
|
|
34
35
|
require('../../../../exported-related/Filters/applyOutOfTheBoxFilters.js');
|
|
@@ -14,6 +14,7 @@ require('react/jsx-runtime');
|
|
|
14
14
|
require('styled-components');
|
|
15
15
|
require('@elliemae/ds-button');
|
|
16
16
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
17
|
+
require('@elliemae/ds-utilities/hooks');
|
|
17
18
|
var constants = require('../../../../configs/constants.js');
|
|
18
19
|
require('react-virtual');
|
|
19
20
|
require('../../../../configs/useRowFlattenization.js');
|
|
@@ -12,6 +12,7 @@ require('react/jsx-runtime');
|
|
|
12
12
|
require('styled-components');
|
|
13
13
|
require('@elliemae/ds-button');
|
|
14
14
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
15
|
+
require('@elliemae/ds-utilities/hooks');
|
|
15
16
|
require('../../../../configs/constants.js');
|
|
16
17
|
require('react-virtual');
|
|
17
18
|
require('../../../../configs/useRowFlattenization.js');
|
package/cjs/configs/constants.js
CHANGED
|
@@ -43,7 +43,8 @@ const DATA_TESTID = {
|
|
|
43
43
|
DATA_TABLE_ROW_HEADER_CONTENT: 'data-table-row-header-content',
|
|
44
44
|
DATA_TABLE_ROW_GROUP_HEADER: 'data-table-row-group-header',
|
|
45
45
|
DATA_TABLE_COLUMN_DRAG_OVERLAY: 'data-table-drag-column-drag-overlay',
|
|
46
|
-
DATA_TABLE_HEADER_CELL_TITLE: 'header-cell-title'
|
|
46
|
+
DATA_TABLE_HEADER_CELL_TITLE: 'header-cell-title',
|
|
47
|
+
DATA_TABLE_FILTER_BAR_DD_MENU_BUTTON: 'filter-bar-ddmenu-button'
|
|
47
48
|
};
|
|
48
49
|
|
|
49
50
|
exports.DATA_TESTID = DATA_TESTID;
|
|
@@ -60,13 +60,14 @@ const EditableCell = props => {
|
|
|
60
60
|
onKeyDown: handleOnKeyDown,
|
|
61
61
|
onBlur: handleOnBlur,
|
|
62
62
|
shouldDisplayEditIcon: cell.column.alwaysDisplayEditIcon,
|
|
63
|
+
role: "cell",
|
|
63
64
|
"aria-describedby": isEditing ? undefined : cell.id,
|
|
64
65
|
children: [!isEditing ? StandardRender : EditableRenderer, !isEditing && (_StyledPencilIcon || (_StyledPencilIcon = /*#__PURE__*/_jsx__default["default"](styled.StyledPencilIcon, {}))), /*#__PURE__*/_jsx__default["default"]("span", {
|
|
65
66
|
id: cell.id,
|
|
66
67
|
style: {
|
|
67
68
|
display: 'none'
|
|
68
69
|
},
|
|
69
|
-
"aria-hidden": "
|
|
70
|
+
"aria-hidden": "true"
|
|
70
71
|
}, void 0, "Editable cell. To edit the content's of this cell, press the Enter key")]
|
|
71
72
|
});
|
|
72
73
|
};
|
|
@@ -122,10 +122,14 @@ const FilterPopover = ({
|
|
|
122
122
|
closeContextMenu: handleClickOutsideMenu,
|
|
123
123
|
"data-testid": constants.DATA_TESTID.DATA_TABLE_FILTER_MENU_CONTENT,
|
|
124
124
|
startPlacementPreference: "bottom-end",
|
|
125
|
-
customOffset: [
|
|
125
|
+
customOffset: [5, 4],
|
|
126
126
|
withoutArrow: true,
|
|
127
127
|
withoutPortal: true,
|
|
128
|
-
zIndex: 10
|
|
128
|
+
zIndex: 10,
|
|
129
|
+
extraPopperStyles: {
|
|
130
|
+
minWidth: '100%'
|
|
131
|
+
},
|
|
132
|
+
placementOrderPreference: ['bottom-end']
|
|
129
133
|
}, void 0, /*#__PURE__*/_jsx__default["default"]("div", {
|
|
130
134
|
style: {
|
|
131
135
|
backgroundColor: '#fff'
|
|
@@ -3,7 +3,28 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
+
var constants = require('../../configs/constants.js');
|
|
7
|
+
require('react-virtual');
|
|
8
|
+
require('../../configs/useRowFlattenization.js');
|
|
9
|
+
require('@babel/runtime/helpers/defineProperty');
|
|
10
|
+
require('@babel/runtime/helpers/jsx');
|
|
11
|
+
require('@elliemae/ds-icons');
|
|
12
|
+
require('styled-components');
|
|
13
|
+
require('../../styled.js');
|
|
14
|
+
require('react/jsx-runtime');
|
|
15
|
+
require('@elliemae/ds-form/Checkbox');
|
|
16
|
+
require('@elliemae/ds-form/Radio');
|
|
17
|
+
require('../../parts/TableContent.js');
|
|
18
|
+
require('@elliemae/ds-grid');
|
|
19
|
+
require('@elliemae/ds-circular-progress-indicator');
|
|
20
|
+
require('@elliemae/ds-icons/WarningTriangle');
|
|
21
|
+
require('@elliemae/ds-system');
|
|
22
|
+
require('@elliemae/ds-button');
|
|
6
23
|
var DataTableContext = require('../../DataTableContext.js');
|
|
24
|
+
require('../../parts/Row.js');
|
|
25
|
+
require('../../parts/Footer.js');
|
|
26
|
+
require('@elliemae/ds-icons/GripperVertical');
|
|
27
|
+
require('../../parts/HoC/SortableItemContext.js');
|
|
7
28
|
require('../../redux/reducers/index.js');
|
|
8
29
|
var useDispatchRowsActions = require('../../redux/reducers/rowsReducers/useDispatchRowsActions.js');
|
|
9
30
|
|
|
@@ -83,8 +104,10 @@ const useRowRendererHandlers = ({
|
|
|
83
104
|
setSelectedRowId(null);
|
|
84
105
|
}
|
|
85
106
|
}, [setSelectedRowId]);
|
|
86
|
-
const handleOnFocus = React.useCallback(
|
|
87
|
-
|
|
107
|
+
const handleOnFocus = React.useCallback(e => {
|
|
108
|
+
if (e.target && e.target.getAttribute('data-testid') === constants.DATA_TESTID.DATA_TABLE_ROW_CONTENT) {
|
|
109
|
+
setFocusedRowId(row.uid);
|
|
110
|
+
}
|
|
88
111
|
}, [row.uid, setFocusedRowId]);
|
|
89
112
|
return {
|
|
90
113
|
handleItemClick,
|
|
@@ -18,22 +18,22 @@ const useRowStyle = row => {
|
|
|
18
18
|
|
|
19
19
|
const [borderTop, borderBottom, shouldAppendDottedBorder] = React.useMemo(() => {
|
|
20
20
|
if (row.original.dimsumHeaderValue) {
|
|
21
|
-
return ['
|
|
21
|
+
return ['none', 'none', false];
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
if (row.isExpanded && row.original.subRows && row.depth === 0) {
|
|
25
|
-
return ['1px solid #EBEDF0', '
|
|
25
|
+
return ['1px solid #EBEDF0', 'none', true];
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
if (row.depth >= 1) {
|
|
29
29
|
if (row.realIndex < flattenedData.length - 1 && flattenedData[row.realIndex + 1].depth === 0) {
|
|
30
|
-
return ['
|
|
30
|
+
return ['none', '2px solid #EBEDF0', false];
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
return ['
|
|
33
|
+
return ['none', 'none', true];
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
return ['
|
|
36
|
+
return ['none', '1px solid #EBEDF0', false];
|
|
37
37
|
}, [row, flattenedData]);
|
|
38
38
|
const rowStyle = React.useMemo(() => ({
|
|
39
39
|
borderTop,
|
|
@@ -7,13 +7,14 @@ var React = require('react');
|
|
|
7
7
|
var styled = require('styled-components');
|
|
8
8
|
var DSButton = require('@elliemae/ds-button');
|
|
9
9
|
var MoreOptionsVert = require('@elliemae/ds-icons/MoreOptionsVert');
|
|
10
|
+
var hooks = require('@elliemae/ds-utilities/hooks');
|
|
10
11
|
var constants = require('../../configs/constants.js');
|
|
11
12
|
require('react-virtual');
|
|
12
13
|
require('../../configs/useRowFlattenization.js');
|
|
13
14
|
require('@babel/runtime/helpers/defineProperty');
|
|
14
15
|
require('@elliemae/ds-icons');
|
|
15
16
|
require('../../styled.js');
|
|
16
|
-
require('react/jsx-runtime');
|
|
17
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
17
18
|
require('@elliemae/ds-form/Checkbox');
|
|
18
19
|
require('@elliemae/ds-form/Radio');
|
|
19
20
|
require('../../parts/TableContent.js');
|
|
@@ -43,24 +44,38 @@ const ToolbarWrapper = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
|
43
44
|
})(["display:flex;align-items:center;height:36px;margin-right:1px;pointer-events:all;&:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,0.13),0 1px 2px 0 rgba(0,0,0,0.2);& > .toolbar-trigger{border:none;}}"]);
|
|
44
45
|
const ToolbarPosition = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
45
46
|
componentId: "sc-1ru2no0-2"
|
|
46
|
-
})(["display:flex;justify-content:flex-end;align-items:center;pointer-events:none;background:white;height:
|
|
47
|
+
})(["display:flex;justify-content:flex-end;align-items:center;pointer-events:none;background:white;height:28px;margin-top:4px;width:100%;padding-left:4px;&:hover{z-index:1;}:after{content:'';position:absolute;left:0px;top:4px;bottom:4px;width:1px;background-color:", ";z-index:7;}"], props => props.theme.colors.neutral['080']); // eslint-disable-next-line react/prop-types
|
|
47
48
|
|
|
48
49
|
const Toolbar = ({
|
|
49
50
|
children
|
|
50
51
|
}) => {
|
|
51
52
|
const [show, setShow] = React.useState(false);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
53
|
+
const [clicked, setClicked] = React.useState(false);
|
|
54
|
+
const toolbarRef = React.useRef(null);
|
|
55
|
+
const handleOnClickOutside = React.useCallback(() => {
|
|
56
|
+
setShow(false);
|
|
57
|
+
setClicked(false);
|
|
58
|
+
}, []);
|
|
59
|
+
const handleOnClick = React.useCallback(() => {
|
|
60
|
+
setShow(true);
|
|
61
|
+
setClicked(true);
|
|
62
|
+
}, []);
|
|
63
|
+
hooks.useOnClickOutside(toolbarRef, handleOnClickOutside);
|
|
64
|
+
return /*#__PURE__*/jsxRuntime.jsx(ToolbarPosition, {
|
|
65
|
+
ref: toolbarRef,
|
|
66
|
+
children: /*#__PURE__*/_jsx__default["default"](ToolbarWrapper, {
|
|
67
|
+
onMouseEnter: () => setShow(true),
|
|
68
|
+
onMouseLeave: () => setShow(clicked)
|
|
69
|
+
}, void 0, show && /*#__PURE__*/_jsx__default["default"](ToolbarBtns, {}, void 0, children), /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
|
|
70
|
+
buttonType: "text",
|
|
71
|
+
className: "toolbar-trigger",
|
|
72
|
+
"data-testid": constants.DATA_TESTID.DATA_TABLE_TOOLBAR_TRIGGER,
|
|
73
|
+
icon: _MoreOptionsVert || (_MoreOptionsVert = /*#__PURE__*/_jsx__default["default"](MoreOptionsVert__default["default"], {})),
|
|
74
|
+
onClick: handleOnClick,
|
|
75
|
+
onKeyDown: e => ['Enter', 'Space'].includes(e.code) && handleOnClick(),
|
|
76
|
+
tabIndex: 0
|
|
77
|
+
}))
|
|
78
|
+
});
|
|
64
79
|
};
|
|
65
80
|
|
|
66
81
|
exports.Toolbar = Toolbar;
|
|
@@ -9,7 +9,7 @@ var MoreOptionsVert = require('@elliemae/ds-icons/MoreOptionsVert');
|
|
|
9
9
|
require('@elliemae/ds-popperjs');
|
|
10
10
|
require('styled-components');
|
|
11
11
|
require('../../redux/reducers/index.js');
|
|
12
|
-
require('../../configs/constants.js');
|
|
12
|
+
var constants = require('../../configs/constants.js');
|
|
13
13
|
require('react-virtual');
|
|
14
14
|
require('../../configs/useRowFlattenization.js');
|
|
15
15
|
require('@babel/runtime/helpers/defineProperty');
|
|
@@ -28,6 +28,7 @@ require('../Row.js');
|
|
|
28
28
|
require('../Footer.js');
|
|
29
29
|
require('@elliemae/ds-icons/GripperVertical');
|
|
30
30
|
require('../HoC/SortableItemContext.js');
|
|
31
|
+
require('@elliemae/ds-utilities/hooks');
|
|
31
32
|
require('uid');
|
|
32
33
|
var FilterTypes = require('../../exported-related/FilterTypes.js');
|
|
33
34
|
require('../../exported-related/Filters/applyOutOfTheBoxFilters.js');
|
|
@@ -119,6 +120,9 @@ const FiltersBar = () => {
|
|
|
119
120
|
onClick: removeAllFilters
|
|
120
121
|
}, ...((filterBarProps === null || filterBarProps === void 0 ? void 0 : filterBarProps.extraOptions) || [])],
|
|
121
122
|
triggerComponent: /*#__PURE__*/_jsx__default["default"](DSButton__default["default"], {
|
|
123
|
+
containerProps: {
|
|
124
|
+
'data-testid': constants.DATA_TESTID.DATA_TABLE_FILTER_BAR_DD_MENU_BUTTON
|
|
125
|
+
},
|
|
122
126
|
buttonType: "text",
|
|
123
127
|
innerRef: dropdownMenuRef,
|
|
124
128
|
icon: _VerticalElipsis || (_VerticalElipsis = /*#__PURE__*/_jsx__default["default"](MoreOptionsVert__default["default"], {}))
|
|
@@ -27,6 +27,7 @@ const MultiSelectPill = ({
|
|
|
27
27
|
|
|
28
28
|
if (newFilters[filterIndex].value.length === 0) {
|
|
29
29
|
if (prevRef !== null && prevRef !== void 0 && prevRef.current) prevRef.current.focus();else nextRef.current.focus();
|
|
30
|
+
newFilters.splice(filterIndex, 1);
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
onFiltersChange(newFilters);
|
|
@@ -34,11 +35,11 @@ const MultiSelectPill = ({
|
|
|
34
35
|
return value !== null && value !== void 0 && value.length ? /*#__PURE__*/_jsx__default["default"](dsPills.DSPillGroupV2, {}, void 0, /*#__PURE__*/_jsx__default["default"](dsPills.DSPillV2, {
|
|
35
36
|
type: "label",
|
|
36
37
|
label: columnHeader
|
|
37
|
-
}), value.map(val => /*#__PURE__*/_jsx__default["default"](dsPills.DSPillV2, {
|
|
38
|
+
}), value.map((val, index) => /*#__PURE__*/_jsx__default["default"](dsPills.DSPillV2, {
|
|
38
39
|
type: "removable",
|
|
39
40
|
label: val,
|
|
40
41
|
onRemove: () => handleOnRemove(val),
|
|
41
|
-
innerRef: innerRef
|
|
42
|
+
innerRef: index === value.length - 1 ? innerRef : {}
|
|
42
43
|
}, val))) : null;
|
|
43
44
|
};
|
|
44
45
|
|
|
@@ -34,6 +34,7 @@ require('../Footer.js');
|
|
|
34
34
|
require('@elliemae/ds-icons/GripperVertical');
|
|
35
35
|
require('../HoC/SortableItemContext.js');
|
|
36
36
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
37
|
+
require('@elliemae/ds-utilities/hooks');
|
|
37
38
|
require('uid');
|
|
38
39
|
var FilterTypes = require('../../exported-related/FilterTypes.js');
|
|
39
40
|
require('../../exported-related/Filters/applyOutOfTheBoxFilters.js');
|
|
@@ -88,7 +88,8 @@ const HeaderCellComp = props => {
|
|
|
88
88
|
onFiltersChange,
|
|
89
89
|
filters,
|
|
90
90
|
textWrap
|
|
91
|
-
}
|
|
91
|
+
},
|
|
92
|
+
flattenedData
|
|
92
93
|
} = ctx;
|
|
93
94
|
const {
|
|
94
95
|
patchHeader
|
|
@@ -162,6 +163,7 @@ const HeaderCellComp = props => {
|
|
|
162
163
|
,
|
|
163
164
|
"aria-sort": hasSortingCaret ? column.isSortedDesc ? 'descending' : 'ascending' : 'none',
|
|
164
165
|
"data-testid": constants.DATA_TESTID.DATA_TABLE_HEADER,
|
|
166
|
+
isFirstRowGroup: !!flattenedData[0].original.dimsumHeaderValue,
|
|
165
167
|
tabIndex: column.isFocuseable === false ? -1 : 0,
|
|
166
168
|
isDragOverlay: isDragOverlay,
|
|
167
169
|
isDraggingActive: draggableProps && draggableProps.active,
|
|
@@ -28,6 +28,7 @@ require('../Footer.js');
|
|
|
28
28
|
require('@elliemae/ds-icons/GripperVertical');
|
|
29
29
|
require('../HoC/SortableItemContext.js');
|
|
30
30
|
require('@elliemae/ds-icons/MoreOptionsVert');
|
|
31
|
+
require('@elliemae/ds-utilities/hooks');
|
|
31
32
|
require('uid');
|
|
32
33
|
var RowVariants = require('../../exported-related/RowVariants.js');
|
|
33
34
|
require('../../exported-related/Filters/applyOutOfTheBoxFilters.js');
|
package/cjs/styled.js
CHANGED
|
@@ -115,9 +115,16 @@ const StyledHeadTr = /*#__PURE__*/styled__default["default"](Grid__default["defa
|
|
|
115
115
|
isExpandable: props.isExpandable,
|
|
116
116
|
colsLayoutStyle: props.colsLayoutStyle
|
|
117
117
|
}));
|
|
118
|
+
|
|
119
|
+
const getStyledHeadTHBorderColor = props => {
|
|
120
|
+
if (props.dragOverlay) return 'transparent';
|
|
121
|
+
if (props.isFirstRowGroup) return 'transparent';
|
|
122
|
+
return props.theme.colors.neutral['080'];
|
|
123
|
+
};
|
|
124
|
+
|
|
118
125
|
const StyledHeadTh = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
119
126
|
componentId: "sc-38sgfo-7"
|
|
120
|
-
})(["min-height:24px;line-height:normal;font-weight:600;text-transform:uppercase;font-size:0.923rem;text-align:left;", " color:#353c46;min-height:1.84615rem;position:relative;position:sticky;top:0;z-index:", ";display:flex;justify-content:space-between;box-sizing:border-box;border-right:1px solid ", ";border-bottom:1px solid ", ";outline:none;:focus{&:after{display:block;content:' ';position:absolute;top:0;left:0;right:-1px;bottom:-1px;border:2px solid ", ";pointer-events:none;z-index:", ";}}", ""], cellPadding.columnPadding, zIndexInternalConfig.ZIndexDataTable.HEADER_ROW, props => props.theme.colors.neutral['080'],
|
|
127
|
+
})(["min-height:24px;line-height:normal;font-weight:600;text-transform:uppercase;font-size:0.923rem;text-align:left;", " color:#353c46;min-height:1.84615rem;position:relative;position:sticky;top:0;z-index:", ";display:flex;justify-content:space-between;box-sizing:border-box;border-right:1px solid ", ";border-bottom:1px solid ", ";outline:none;:focus{&:after{display:block;content:' ';position:absolute;top:0;left:0;right:-1px;bottom:-1px;border:2px solid ", ";pointer-events:none;z-index:", ";}}", ""], cellPadding.columnPadding, zIndexInternalConfig.ZIndexDataTable.HEADER_ROW, props => props.theme.colors.neutral['080'], getStyledHeadTHBorderColor, props => props.theme.colors.brand[700], zIndexInternalConfig.ZIndexDataTable.FOCUS_BORDER, props => props.isDraggingActive ? '' : `:hover {
|
|
121
128
|
border-bottom: 1px solid ${props.isDragOverlay ? 'transparent' : props.theme.colors.brand[800]};
|
|
122
129
|
cursor: pointer;
|
|
123
130
|
}`);
|
|
@@ -152,7 +159,7 @@ const StyledFullsizeGrid = /*#__PURE__*/styled__default["default"](Grid__default
|
|
|
152
159
|
})(["position:relative;z-index:", ";min-height:", ";height:", ";"], zIndexInternalConfig.ZIndexDataTable.ROW, props => props.minHeight || '36px', props => props.height || 'auto');
|
|
153
160
|
const GroupHeaderContainer = /*#__PURE__*/styled__default["default"](Grid__default["default"]).withConfig({
|
|
154
161
|
componentId: "sc-38sgfo-16"
|
|
155
|
-
})(["background-color:", ";align-items:center;padding:0 ", ";border-top:solid
|
|
162
|
+
})(["position:relative;background-color:", ";align-items:center;padding:0 ", ";border-top:1px solid ", ";grid-template-columns:min-content 1fr;"], ({
|
|
156
163
|
theme
|
|
157
164
|
}) => theme.colors.brand[200], props => props.padding, ({
|
|
158
165
|
theme
|
package/esm/DataTableSchema.js
CHANGED
|
@@ -9,12 +9,12 @@ const columnPropTypes = {
|
|
|
9
9
|
accessor: PropTypes.string.description('The entry of the data that this column will display'),
|
|
10
10
|
id: PropTypes.string.description('The id of the column, will default to the Header or accessor if not present'),
|
|
11
11
|
filter: outOfTheBoxFilterType.description('out-of-the-box filters'),
|
|
12
|
-
Filter: PropTypes.
|
|
13
|
-
Cell: PropTypes.
|
|
12
|
+
Filter: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).description('The custom component to render as a filter'),
|
|
13
|
+
Cell: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).description('The custom cell renderer component'),
|
|
14
14
|
editable: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.element]).description('The editable out-of-the-box or component to render'),
|
|
15
15
|
disableDnD: PropTypes.bool.description('Whereas this column should be draggable'),
|
|
16
16
|
canResize: PropTypes.bool.description('Whereas this column should be resizable'),
|
|
17
|
-
width: PropTypes.
|
|
17
|
+
width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('Width of this column'),
|
|
18
18
|
minWidth: PropTypes.number.description('Minimum width of this column, useful when resizing'),
|
|
19
19
|
maxWidth: PropTypes.number.description('Maximum width of this column, useful when resizing'),
|
|
20
20
|
canSort: PropTypes.bool.description('Whereas this column is sortable'),
|
|
@@ -27,7 +27,7 @@ const columnsPropTypes = PropTypes.shape(columnPropTypes).description('Columns p
|
|
|
27
27
|
const rowPropTypes = {
|
|
28
28
|
row_variant_type: rowVariantType.description('Which row variant to use, will default to primary'),
|
|
29
29
|
row_variant_compact: PropTypes.bool.description('Whether to use the compact version of the row'),
|
|
30
|
-
tableRowDetails: PropTypes.
|
|
30
|
+
tableRowDetails: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).description('Component for row details'),
|
|
31
31
|
dimsumHeaderValue: PropTypes.string.description('Header displayed on the header variant of the row')
|
|
32
32
|
};
|
|
33
33
|
const rowsPropTypes = PropTypes.shape(rowPropTypes).description('Rows props');
|
|
@@ -35,8 +35,8 @@ const DataTableSchema = {
|
|
|
35
35
|
columns: PropTypes.arrayOf(columnsPropTypes).description('Array of columns').isRequired,
|
|
36
36
|
data: PropTypes.arrayOf(rowsPropTypes).description('Array of rows'),
|
|
37
37
|
height: PropTypes.number.description('Height of the datatable component'),
|
|
38
|
-
width: PropTypes.
|
|
39
|
-
renderRowActions: PropTypes.
|
|
38
|
+
width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('Width of the datatable component'),
|
|
39
|
+
renderRowActions: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]).description('The renderer to use for the action toolbar'),
|
|
40
40
|
isExpandable: PropTypes.bool.description('Whether the datatable is expandable').defaultValue(false),
|
|
41
41
|
uniqueRowAccessor: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string), PropTypes.func]).description('Column / Combination of columns / Function to call to produce a unique identifier for each row.' + ' This is necessary for the selectable and drag and drop features'),
|
|
42
42
|
disabledRows: PropTypes.object.description('Object with the identifiers of the rows as keys, and booleans as values. Specifies if a row is disabled or not'),
|
|
@@ -55,7 +55,7 @@ const DataTableSchema = {
|
|
|
55
55
|
})).description('Array of filter keys and values'),
|
|
56
56
|
withFilterBar: PropTypes.bool.description('Whether to display the filter bar'),
|
|
57
57
|
filterBarProps: PropTypes.shape({
|
|
58
|
-
customPillRenderer: PropTypes.
|
|
58
|
+
customPillRenderer: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).description('If you specify custom filters, you will need to render their pills here'),
|
|
59
59
|
extraOptions: PropTypes.arrayOf(PropTypes.shape({
|
|
60
60
|
type: PropTypes.string,
|
|
61
61
|
id: PropTypes.string,
|
|
@@ -64,7 +64,7 @@ const DataTableSchema = {
|
|
|
64
64
|
})).description('Any extra option you want in the dropdownmenu of the filter bar')
|
|
65
65
|
}).description('Props for the filter bar'),
|
|
66
66
|
onFiltersChange: PropTypes.func.description('Function invoked when filters change'),
|
|
67
|
-
pagination: PropTypes.
|
|
67
|
+
pagination: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({
|
|
68
68
|
pageIndex: PropTypes.number.description('Index of the current page, starting from 1'),
|
|
69
69
|
canPreviousPage: PropTypes.bool.description('Whether the previous button is disabled or not'),
|
|
70
70
|
canNextPage: PropTypes.bool.description('Whether the next button is disabled or not'),
|
|
@@ -86,7 +86,7 @@ const DataTableSchema = {
|
|
|
86
86
|
noResultsMessage: PropTypes.string.description('Message to show when no more data is available'),
|
|
87
87
|
noResultsSecondaryMessage: PropTypes.string.description('Secondary message to show when no more data is available'),
|
|
88
88
|
noResultsButtonLabel: PropTypes.string.description('Label of the button when no more data is available'),
|
|
89
|
-
noResultsPlaceholder: PropTypes.
|
|
89
|
+
noResultsPlaceholder: PropTypes.oneOfType([PropTypes.func, PropTypes.element]).description('Custom content to show when dataset is empty'),
|
|
90
90
|
isLoading: PropTypes.bool.description('Whether to show a global loader in the datatable'),
|
|
91
91
|
isLoadingAppended: PropTypes.bool.description('Whether to show an appended loader in the datatable'),
|
|
92
92
|
// eslint-disable-next-line max-lines
|
|
@@ -26,6 +26,7 @@ import '@elliemae/ds-icons/GripperVertical';
|
|
|
26
26
|
import '../../../parts/HoC/SortableItemContext.js';
|
|
27
27
|
import { EditableCell } from '../../../exported-related/EditableCell.js';
|
|
28
28
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
29
|
+
import '@elliemae/ds-utilities/hooks';
|
|
29
30
|
import 'uid';
|
|
30
31
|
import '../../../exported-related/Filters/applyOutOfTheBoxFilters.js';
|
|
31
32
|
import 'moment';
|
|
@@ -25,6 +25,7 @@ import '@elliemae/ds-icons/GripperVertical';
|
|
|
25
25
|
import '../../../parts/HoC/SortableItemContext.js';
|
|
26
26
|
import { EditableCell } from '../../../exported-related/EditableCell.js';
|
|
27
27
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
28
|
+
import '@elliemae/ds-utilities/hooks';
|
|
28
29
|
import 'uid';
|
|
29
30
|
import '../../../exported-related/Filters/applyOutOfTheBoxFilters.js';
|
|
30
31
|
import 'moment';
|
|
@@ -25,6 +25,7 @@ import '@elliemae/ds-icons/GripperVertical';
|
|
|
25
25
|
import '../../../parts/HoC/SortableItemContext.js';
|
|
26
26
|
import { EditableCell } from '../../../exported-related/EditableCell.js';
|
|
27
27
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
28
|
+
import '@elliemae/ds-utilities/hooks';
|
|
28
29
|
import 'uid';
|
|
29
30
|
import '../../../exported-related/Filters/applyOutOfTheBoxFilters.js';
|
|
30
31
|
import 'moment';
|
|
@@ -10,6 +10,7 @@ import 'react/jsx-runtime';
|
|
|
10
10
|
import 'styled-components';
|
|
11
11
|
import '@elliemae/ds-button';
|
|
12
12
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
13
|
+
import '@elliemae/ds-utilities/hooks';
|
|
13
14
|
import { DATA_TESTID } from '../../../../configs/constants.js';
|
|
14
15
|
import 'react-virtual';
|
|
15
16
|
import '../../../../configs/useRowFlattenization.js';
|
|
@@ -55,7 +56,7 @@ const DateRangeFilter = props => {
|
|
|
55
56
|
setEndDate(dateRange.endDate || '');
|
|
56
57
|
}, [dateRange]);
|
|
57
58
|
useEffect(() => {
|
|
58
|
-
if (!startDate.includes('_') && !endDate.includes('_')) {
|
|
59
|
+
if (startDate && endDate && !startDate.includes('_') && !endDate.includes('_')) {
|
|
59
60
|
onValueChange(FILTER_TYPES.DATE_RANGE, {
|
|
60
61
|
startDate,
|
|
61
62
|
endDate
|
|
@@ -11,6 +11,7 @@ import 'react/jsx-runtime';
|
|
|
11
11
|
import 'styled-components';
|
|
12
12
|
import '@elliemae/ds-button';
|
|
13
13
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
14
|
+
import '@elliemae/ds-utilities/hooks';
|
|
14
15
|
import { DATA_TESTID } from '../../../../configs/constants.js';
|
|
15
16
|
import 'react-virtual';
|
|
16
17
|
import '../../../../configs/useRowFlattenization.js';
|
|
@@ -28,6 +28,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
28
28
|
import 'styled-components';
|
|
29
29
|
import '@elliemae/ds-button';
|
|
30
30
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
31
|
+
import '@elliemae/ds-utilities/hooks';
|
|
31
32
|
import { DATA_TESTID } from '../../../../configs/constants.js';
|
|
32
33
|
import '../../../../configs/useRowFlattenization.js';
|
|
33
34
|
import '@babel/runtime/helpers/esm/defineProperty';
|
|
@@ -25,6 +25,7 @@ import '../../../../parts/Footer.js';
|
|
|
25
25
|
import '@elliemae/ds-icons/GripperVertical';
|
|
26
26
|
import '../../../../parts/HoC/SortableItemContext.js';
|
|
27
27
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
28
|
+
import '@elliemae/ds-utilities/hooks';
|
|
28
29
|
import 'uid';
|
|
29
30
|
import { FILTER_TYPES } from '../../../../exported-related/FilterTypes.js';
|
|
30
31
|
import '../../../../exported-related/Filters/applyOutOfTheBoxFilters.js';
|
|
@@ -25,6 +25,7 @@ import '../../../../parts/Footer.js';
|
|
|
25
25
|
import '@elliemae/ds-icons/GripperVertical';
|
|
26
26
|
import '../../../../parts/HoC/SortableItemContext.js';
|
|
27
27
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
28
|
+
import '@elliemae/ds-utilities/hooks';
|
|
28
29
|
import 'uid';
|
|
29
30
|
import { FILTER_TYPES } from '../../../../exported-related/FilterTypes.js';
|
|
30
31
|
import '../../../../exported-related/Filters/applyOutOfTheBoxFilters.js';
|
|
@@ -10,6 +10,7 @@ import 'react/jsx-runtime';
|
|
|
10
10
|
import 'styled-components';
|
|
11
11
|
import '@elliemae/ds-button';
|
|
12
12
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
13
|
+
import '@elliemae/ds-utilities/hooks';
|
|
13
14
|
import { DATA_TESTID } from '../../../../configs/constants.js';
|
|
14
15
|
import 'react-virtual';
|
|
15
16
|
import '../../../../configs/useRowFlattenization.js';
|
|
@@ -8,6 +8,7 @@ import 'react/jsx-runtime';
|
|
|
8
8
|
import 'styled-components';
|
|
9
9
|
import '@elliemae/ds-button';
|
|
10
10
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
11
|
+
import '@elliemae/ds-utilities/hooks';
|
|
11
12
|
import '../../../../configs/constants.js';
|
|
12
13
|
import 'react-virtual';
|
|
13
14
|
import '../../../../configs/useRowFlattenization.js';
|
package/esm/configs/constants.js
CHANGED
|
@@ -39,7 +39,8 @@ const DATA_TESTID = {
|
|
|
39
39
|
DATA_TABLE_ROW_HEADER_CONTENT: 'data-table-row-header-content',
|
|
40
40
|
DATA_TABLE_ROW_GROUP_HEADER: 'data-table-row-group-header',
|
|
41
41
|
DATA_TABLE_COLUMN_DRAG_OVERLAY: 'data-table-drag-column-drag-overlay',
|
|
42
|
-
DATA_TABLE_HEADER_CELL_TITLE: 'header-cell-title'
|
|
42
|
+
DATA_TABLE_HEADER_CELL_TITLE: 'header-cell-title',
|
|
43
|
+
DATA_TABLE_FILTER_BAR_DD_MENU_BUTTON: 'filter-bar-ddmenu-button'
|
|
43
44
|
};
|
|
44
45
|
|
|
45
46
|
export { ColsLayoutStyle, DATA_TESTID, momentFormat };
|
|
@@ -52,13 +52,14 @@ const EditableCell = props => {
|
|
|
52
52
|
onKeyDown: handleOnKeyDown,
|
|
53
53
|
onBlur: handleOnBlur,
|
|
54
54
|
shouldDisplayEditIcon: cell.column.alwaysDisplayEditIcon,
|
|
55
|
+
role: "cell",
|
|
55
56
|
"aria-describedby": isEditing ? undefined : cell.id,
|
|
56
57
|
children: [!isEditing ? StandardRender : EditableRenderer, !isEditing && (_StyledPencilIcon || (_StyledPencilIcon = /*#__PURE__*/_jsx(StyledPencilIcon, {}))), /*#__PURE__*/_jsx("span", {
|
|
57
58
|
id: cell.id,
|
|
58
59
|
style: {
|
|
59
60
|
display: 'none'
|
|
60
61
|
},
|
|
61
|
-
"aria-hidden": "
|
|
62
|
+
"aria-hidden": "true"
|
|
62
63
|
}, void 0, "Editable cell. To edit the content's of this cell, press the Enter key")]
|
|
63
64
|
});
|
|
64
65
|
};
|
|
@@ -112,10 +112,14 @@ const FilterPopover = ({
|
|
|
112
112
|
closeContextMenu: handleClickOutsideMenu,
|
|
113
113
|
"data-testid": DATA_TESTID.DATA_TABLE_FILTER_MENU_CONTENT,
|
|
114
114
|
startPlacementPreference: "bottom-end",
|
|
115
|
-
customOffset: [
|
|
115
|
+
customOffset: [5, 4],
|
|
116
116
|
withoutArrow: true,
|
|
117
117
|
withoutPortal: true,
|
|
118
|
-
zIndex: 10
|
|
118
|
+
zIndex: 10,
|
|
119
|
+
extraPopperStyles: {
|
|
120
|
+
minWidth: '100%'
|
|
121
|
+
},
|
|
122
|
+
placementOrderPreference: ['bottom-end']
|
|
119
123
|
}, void 0, /*#__PURE__*/_jsx("div", {
|
|
120
124
|
style: {
|
|
121
125
|
backgroundColor: '#fff'
|
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
import { useContext, useCallback } from 'react';
|
|
2
|
+
import { DATA_TESTID } from '../../configs/constants.js';
|
|
3
|
+
import 'react-virtual';
|
|
4
|
+
import '../../configs/useRowFlattenization.js';
|
|
5
|
+
import '@babel/runtime/helpers/esm/defineProperty';
|
|
6
|
+
import '@babel/runtime/helpers/esm/jsx';
|
|
7
|
+
import '@elliemae/ds-icons';
|
|
8
|
+
import 'styled-components';
|
|
9
|
+
import '../../styled.js';
|
|
10
|
+
import 'react/jsx-runtime';
|
|
11
|
+
import '@elliemae/ds-form/Checkbox';
|
|
12
|
+
import '@elliemae/ds-form/Radio';
|
|
13
|
+
import '../../parts/TableContent.js';
|
|
14
|
+
import '@elliemae/ds-grid';
|
|
15
|
+
import '@elliemae/ds-circular-progress-indicator';
|
|
16
|
+
import '@elliemae/ds-icons/WarningTriangle';
|
|
17
|
+
import '@elliemae/ds-system';
|
|
18
|
+
import '@elliemae/ds-button';
|
|
2
19
|
import DataTableContext from '../../DataTableContext.js';
|
|
20
|
+
import '../../parts/Row.js';
|
|
21
|
+
import '../../parts/Footer.js';
|
|
22
|
+
import '@elliemae/ds-icons/GripperVertical';
|
|
23
|
+
import '../../parts/HoC/SortableItemContext.js';
|
|
3
24
|
import '../../redux/reducers/index.js';
|
|
4
25
|
import { useDispatchRowsActions } from '../../redux/reducers/rowsReducers/useDispatchRowsActions.js';
|
|
5
26
|
|
|
@@ -79,8 +100,10 @@ const useRowRendererHandlers = ({
|
|
|
79
100
|
setSelectedRowId(null);
|
|
80
101
|
}
|
|
81
102
|
}, [setSelectedRowId]);
|
|
82
|
-
const handleOnFocus = useCallback(
|
|
83
|
-
|
|
103
|
+
const handleOnFocus = useCallback(e => {
|
|
104
|
+
if (e.target && e.target.getAttribute('data-testid') === DATA_TESTID.DATA_TABLE_ROW_CONTENT) {
|
|
105
|
+
setFocusedRowId(row.uid);
|
|
106
|
+
}
|
|
84
107
|
}, [row.uid, setFocusedRowId]);
|
|
85
108
|
return {
|
|
86
109
|
handleItemClick,
|
|
@@ -14,22 +14,22 @@ const useRowStyle = row => {
|
|
|
14
14
|
|
|
15
15
|
const [borderTop, borderBottom, shouldAppendDottedBorder] = useMemo(() => {
|
|
16
16
|
if (row.original.dimsumHeaderValue) {
|
|
17
|
-
return ['
|
|
17
|
+
return ['none', 'none', false];
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
if (row.isExpanded && row.original.subRows && row.depth === 0) {
|
|
21
|
-
return ['1px solid #EBEDF0', '
|
|
21
|
+
return ['1px solid #EBEDF0', 'none', true];
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
if (row.depth >= 1) {
|
|
25
25
|
if (row.realIndex < flattenedData.length - 1 && flattenedData[row.realIndex + 1].depth === 0) {
|
|
26
|
-
return ['
|
|
26
|
+
return ['none', '2px solid #EBEDF0', false];
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
return ['
|
|
29
|
+
return ['none', 'none', true];
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
return ['
|
|
32
|
+
return ['none', '1px solid #EBEDF0', false];
|
|
33
33
|
}, [row, flattenedData]);
|
|
34
34
|
const rowStyle = useMemo(() => ({
|
|
35
35
|
borderTop,
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
|
-
import { useState } from 'react';
|
|
2
|
+
import { useState, useRef, useCallback } from 'react';
|
|
3
3
|
import styled from 'styled-components';
|
|
4
4
|
import DSButton from '@elliemae/ds-button';
|
|
5
5
|
import MoreOptionsVert from '@elliemae/ds-icons/MoreOptionsVert';
|
|
6
|
+
import { useOnClickOutside } from '@elliemae/ds-utilities/hooks';
|
|
6
7
|
import { DATA_TESTID } from '../../configs/constants.js';
|
|
7
8
|
import 'react-virtual';
|
|
8
9
|
import '../../configs/useRowFlattenization.js';
|
|
9
10
|
import '@babel/runtime/helpers/esm/defineProperty';
|
|
10
11
|
import '@elliemae/ds-icons';
|
|
11
12
|
import '../../styled.js';
|
|
12
|
-
import 'react/jsx-runtime';
|
|
13
|
+
import { jsx } from 'react/jsx-runtime';
|
|
13
14
|
import '@elliemae/ds-form/Checkbox';
|
|
14
15
|
import '@elliemae/ds-form/Radio';
|
|
15
16
|
import '../../parts/TableContent.js';
|
|
@@ -32,24 +33,38 @@ const ToolbarWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
|
32
33
|
})(["display:flex;align-items:center;height:36px;margin-right:1px;pointer-events:all;&:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,0.13),0 1px 2px 0 rgba(0,0,0,0.2);& > .toolbar-trigger{border:none;}}"]);
|
|
33
34
|
const ToolbarPosition = /*#__PURE__*/styled.div.withConfig({
|
|
34
35
|
componentId: "sc-1ru2no0-2"
|
|
35
|
-
})(["display:flex;justify-content:flex-end;align-items:center;pointer-events:none;background:white;height:
|
|
36
|
+
})(["display:flex;justify-content:flex-end;align-items:center;pointer-events:none;background:white;height:28px;margin-top:4px;width:100%;padding-left:4px;&:hover{z-index:1;}:after{content:'';position:absolute;left:0px;top:4px;bottom:4px;width:1px;background-color:", ";z-index:7;}"], props => props.theme.colors.neutral['080']); // eslint-disable-next-line react/prop-types
|
|
36
37
|
|
|
37
38
|
const Toolbar = ({
|
|
38
39
|
children
|
|
39
40
|
}) => {
|
|
40
41
|
const [show, setShow] = useState(false);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
42
|
+
const [clicked, setClicked] = useState(false);
|
|
43
|
+
const toolbarRef = useRef(null);
|
|
44
|
+
const handleOnClickOutside = useCallback(() => {
|
|
45
|
+
setShow(false);
|
|
46
|
+
setClicked(false);
|
|
47
|
+
}, []);
|
|
48
|
+
const handleOnClick = useCallback(() => {
|
|
49
|
+
setShow(true);
|
|
50
|
+
setClicked(true);
|
|
51
|
+
}, []);
|
|
52
|
+
useOnClickOutside(toolbarRef, handleOnClickOutside);
|
|
53
|
+
return /*#__PURE__*/jsx(ToolbarPosition, {
|
|
54
|
+
ref: toolbarRef,
|
|
55
|
+
children: /*#__PURE__*/_jsx(ToolbarWrapper, {
|
|
56
|
+
onMouseEnter: () => setShow(true),
|
|
57
|
+
onMouseLeave: () => setShow(clicked)
|
|
58
|
+
}, void 0, show && /*#__PURE__*/_jsx(ToolbarBtns, {}, void 0, children), /*#__PURE__*/_jsx(DSButton, {
|
|
59
|
+
buttonType: "text",
|
|
60
|
+
className: "toolbar-trigger",
|
|
61
|
+
"data-testid": DATA_TESTID.DATA_TABLE_TOOLBAR_TRIGGER,
|
|
62
|
+
icon: _MoreOptionsVert || (_MoreOptionsVert = /*#__PURE__*/_jsx(MoreOptionsVert, {})),
|
|
63
|
+
onClick: handleOnClick,
|
|
64
|
+
onKeyDown: e => ['Enter', 'Space'].includes(e.code) && handleOnClick(),
|
|
65
|
+
tabIndex: 0
|
|
66
|
+
}))
|
|
67
|
+
});
|
|
53
68
|
};
|
|
54
69
|
|
|
55
70
|
export { Toolbar };
|
|
@@ -5,7 +5,7 @@ import MoreOptionsVert from '@elliemae/ds-icons/MoreOptionsVert';
|
|
|
5
5
|
import '@elliemae/ds-popperjs';
|
|
6
6
|
import 'styled-components';
|
|
7
7
|
import '../../redux/reducers/index.js';
|
|
8
|
-
import '../../configs/constants.js';
|
|
8
|
+
import { DATA_TESTID } from '../../configs/constants.js';
|
|
9
9
|
import 'react-virtual';
|
|
10
10
|
import '../../configs/useRowFlattenization.js';
|
|
11
11
|
import '@babel/runtime/helpers/esm/defineProperty';
|
|
@@ -24,6 +24,7 @@ import '../Row.js';
|
|
|
24
24
|
import '../Footer.js';
|
|
25
25
|
import '@elliemae/ds-icons/GripperVertical';
|
|
26
26
|
import '../HoC/SortableItemContext.js';
|
|
27
|
+
import '@elliemae/ds-utilities/hooks';
|
|
27
28
|
import 'uid';
|
|
28
29
|
import { FILTER_TYPES } from '../../exported-related/FilterTypes.js';
|
|
29
30
|
import '../../exported-related/Filters/applyOutOfTheBoxFilters.js';
|
|
@@ -108,6 +109,9 @@ const FiltersBar = () => {
|
|
|
108
109
|
onClick: removeAllFilters
|
|
109
110
|
}, ...((filterBarProps === null || filterBarProps === void 0 ? void 0 : filterBarProps.extraOptions) || [])],
|
|
110
111
|
triggerComponent: /*#__PURE__*/_jsx(DSButton, {
|
|
112
|
+
containerProps: {
|
|
113
|
+
'data-testid': DATA_TESTID.DATA_TABLE_FILTER_BAR_DD_MENU_BUTTON
|
|
114
|
+
},
|
|
111
115
|
buttonType: "text",
|
|
112
116
|
innerRef: dropdownMenuRef,
|
|
113
117
|
icon: _VerticalElipsis || (_VerticalElipsis = /*#__PURE__*/_jsx(MoreOptionsVert, {}))
|
|
@@ -19,6 +19,7 @@ const MultiSelectPill = ({
|
|
|
19
19
|
|
|
20
20
|
if (newFilters[filterIndex].value.length === 0) {
|
|
21
21
|
if (prevRef !== null && prevRef !== void 0 && prevRef.current) prevRef.current.focus();else nextRef.current.focus();
|
|
22
|
+
newFilters.splice(filterIndex, 1);
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
onFiltersChange(newFilters);
|
|
@@ -26,11 +27,11 @@ const MultiSelectPill = ({
|
|
|
26
27
|
return value !== null && value !== void 0 && value.length ? /*#__PURE__*/_jsx(DSPillGroupV2, {}, void 0, /*#__PURE__*/_jsx(DSPillV2, {
|
|
27
28
|
type: "label",
|
|
28
29
|
label: columnHeader
|
|
29
|
-
}), value.map(val => /*#__PURE__*/_jsx(DSPillV2, {
|
|
30
|
+
}), value.map((val, index) => /*#__PURE__*/_jsx(DSPillV2, {
|
|
30
31
|
type: "removable",
|
|
31
32
|
label: val,
|
|
32
33
|
onRemove: () => handleOnRemove(val),
|
|
33
|
-
innerRef: innerRef
|
|
34
|
+
innerRef: index === value.length - 1 ? innerRef : {}
|
|
34
35
|
}, val))) : null;
|
|
35
36
|
};
|
|
36
37
|
|
|
@@ -30,6 +30,7 @@ import '../Footer.js';
|
|
|
30
30
|
import '@elliemae/ds-icons/GripperVertical';
|
|
31
31
|
import '../HoC/SortableItemContext.js';
|
|
32
32
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
33
|
+
import '@elliemae/ds-utilities/hooks';
|
|
33
34
|
import 'uid';
|
|
34
35
|
import { FILTER_TYPES } from '../../exported-related/FilterTypes.js';
|
|
35
36
|
import '../../exported-related/Filters/applyOutOfTheBoxFilters.js';
|
|
@@ -78,7 +78,8 @@ const HeaderCellComp = props => {
|
|
|
78
78
|
onFiltersChange,
|
|
79
79
|
filters,
|
|
80
80
|
textWrap
|
|
81
|
-
}
|
|
81
|
+
},
|
|
82
|
+
flattenedData
|
|
82
83
|
} = ctx;
|
|
83
84
|
const {
|
|
84
85
|
patchHeader
|
|
@@ -152,6 +153,7 @@ const HeaderCellComp = props => {
|
|
|
152
153
|
,
|
|
153
154
|
"aria-sort": hasSortingCaret ? column.isSortedDesc ? 'descending' : 'ascending' : 'none',
|
|
154
155
|
"data-testid": DATA_TESTID.DATA_TABLE_HEADER,
|
|
156
|
+
isFirstRowGroup: !!flattenedData[0].original.dimsumHeaderValue,
|
|
155
157
|
tabIndex: column.isFocuseable === false ? -1 : 0,
|
|
156
158
|
isDragOverlay: isDragOverlay,
|
|
157
159
|
isDraggingActive: draggableProps && draggableProps.active,
|
|
@@ -24,6 +24,7 @@ import '../Footer.js';
|
|
|
24
24
|
import '@elliemae/ds-icons/GripperVertical';
|
|
25
25
|
import '../HoC/SortableItemContext.js';
|
|
26
26
|
import '@elliemae/ds-icons/MoreOptionsVert';
|
|
27
|
+
import '@elliemae/ds-utilities/hooks';
|
|
27
28
|
import 'uid';
|
|
28
29
|
import { ROW_VARIANTS } from '../../exported-related/RowVariants.js';
|
|
29
30
|
import '../../exported-related/Filters/applyOutOfTheBoxFilters.js';
|
package/esm/styled.js
CHANGED
|
@@ -105,9 +105,16 @@ const StyledHeadTr = /*#__PURE__*/styled(Grid).withConfig({
|
|
|
105
105
|
isExpandable: props.isExpandable,
|
|
106
106
|
colsLayoutStyle: props.colsLayoutStyle
|
|
107
107
|
}));
|
|
108
|
+
|
|
109
|
+
const getStyledHeadTHBorderColor = props => {
|
|
110
|
+
if (props.dragOverlay) return 'transparent';
|
|
111
|
+
if (props.isFirstRowGroup) return 'transparent';
|
|
112
|
+
return props.theme.colors.neutral['080'];
|
|
113
|
+
};
|
|
114
|
+
|
|
108
115
|
const StyledHeadTh = /*#__PURE__*/styled.div.withConfig({
|
|
109
116
|
componentId: "sc-38sgfo-7"
|
|
110
|
-
})(["min-height:24px;line-height:normal;font-weight:600;text-transform:uppercase;font-size:0.923rem;text-align:left;", " color:#353c46;min-height:1.84615rem;position:relative;position:sticky;top:0;z-index:", ";display:flex;justify-content:space-between;box-sizing:border-box;border-right:1px solid ", ";border-bottom:1px solid ", ";outline:none;:focus{&:after{display:block;content:' ';position:absolute;top:0;left:0;right:-1px;bottom:-1px;border:2px solid ", ";pointer-events:none;z-index:", ";}}", ""], columnPadding, ZIndexDataTable.HEADER_ROW, props => props.theme.colors.neutral['080'],
|
|
117
|
+
})(["min-height:24px;line-height:normal;font-weight:600;text-transform:uppercase;font-size:0.923rem;text-align:left;", " color:#353c46;min-height:1.84615rem;position:relative;position:sticky;top:0;z-index:", ";display:flex;justify-content:space-between;box-sizing:border-box;border-right:1px solid ", ";border-bottom:1px solid ", ";outline:none;:focus{&:after{display:block;content:' ';position:absolute;top:0;left:0;right:-1px;bottom:-1px;border:2px solid ", ";pointer-events:none;z-index:", ";}}", ""], columnPadding, ZIndexDataTable.HEADER_ROW, props => props.theme.colors.neutral['080'], getStyledHeadTHBorderColor, props => props.theme.colors.brand[700], ZIndexDataTable.FOCUS_BORDER, props => props.isDraggingActive ? '' : `:hover {
|
|
111
118
|
border-bottom: 1px solid ${props.isDragOverlay ? 'transparent' : props.theme.colors.brand[800]};
|
|
112
119
|
cursor: pointer;
|
|
113
120
|
}`);
|
|
@@ -142,7 +149,7 @@ const StyledFullsizeGrid = /*#__PURE__*/styled(Grid).withConfig({
|
|
|
142
149
|
})(["position:relative;z-index:", ";min-height:", ";height:", ";"], ZIndexDataTable.ROW, props => props.minHeight || '36px', props => props.height || 'auto');
|
|
143
150
|
const GroupHeaderContainer = /*#__PURE__*/styled(Grid).withConfig({
|
|
144
151
|
componentId: "sc-38sgfo-16"
|
|
145
|
-
})(["background-color:", ";align-items:center;padding:0 ", ";border-top:solid
|
|
152
|
+
})(["position:relative;background-color:", ";align-items:center;padding:0 ", ";border-top:1px solid ", ";grid-template-columns:min-content 1fr;"], ({
|
|
146
153
|
theme
|
|
147
154
|
}) => theme.colors.brand[200], props => props.padding, ({
|
|
148
155
|
theme
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-data-table",
|
|
3
|
-
"version": "2.0.0-
|
|
3
|
+
"version": "2.0.0-next.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Data Table",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -642,9 +642,9 @@
|
|
|
642
642
|
"dependencies": {
|
|
643
643
|
"@dnd-kit/core": "^3.0.4",
|
|
644
644
|
"@dnd-kit/sortable": "^3.0.1",
|
|
645
|
-
"@elliemae/ds-basic": "2.0.0-
|
|
646
|
-
"@elliemae/ds-date-picker": "2.0.0-
|
|
647
|
-
"@elliemae/ds-date-range-picker": "2.0.0-
|
|
645
|
+
"@elliemae/ds-basic": "2.0.0-next.0",
|
|
646
|
+
"@elliemae/ds-date-picker": "2.0.0-next.0",
|
|
647
|
+
"@elliemae/ds-date-range-picker": "2.0.0-next.0",
|
|
648
648
|
"@popperjs/core": "^2.9.3",
|
|
649
649
|
"@reduxjs/toolkit": "^1.5.1",
|
|
650
650
|
"array-move": "^3.0.1",
|