@mailstep/design-system 0.7.47-beta.9 → 0.7.47
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/package.json +1 -1
- package/ui/Blocks/CommonGrid/CommonGrid.d.ts +2 -2
- package/ui/Blocks/CommonGrid/CommonGrid.js +2 -3
- package/ui/Blocks/CommonGrid/components/ColumnFilterCell.d.ts +6 -2
- package/ui/Blocks/CommonGrid/components/ColumnFilterCell.js +2 -2
- package/ui/Blocks/CommonGrid/components/DataCell.d.ts +1 -0
- package/ui/Blocks/CommonGrid/components/DataCell.js +2 -2
- package/ui/Blocks/CommonGrid/components/DataRow.d.ts +2 -3
- package/ui/Blocks/CommonGrid/components/DataRow.js +4 -21
- package/ui/Blocks/CommonGrid/components/FilterRow.d.ts +1 -1
- package/ui/Blocks/CommonGrid/components/FilterRow.js +5 -29
- package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/ActionsFilter.d.ts +10 -0
- package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/ActionsFilter.js +14 -0
- package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/index.d.ts +2 -0
- package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/index.js +2 -0
- package/ui/Blocks/CommonGrid/components/GroupRow.d.ts +1 -1
- package/ui/Blocks/CommonGrid/components/GroupRow.js +2 -4
- package/ui/Blocks/CommonGrid/components/HeadRow.js +3 -3
- package/ui/Blocks/CommonGrid/components/gridCells/Date.js +1 -1
- package/ui/Blocks/CommonGrid/components/gridCells/DateTime.js +1 -1
- package/ui/Blocks/CommonGrid/components/gridCells/EnumInCell.js +1 -1
- package/ui/Blocks/CommonGrid/components/gridCells/RowActionsCell.d.ts +3 -1
- package/ui/Blocks/CommonGrid/components/gridCells/RowActionsCell.js +2 -5
- package/ui/Blocks/CommonGrid/components/gridCells/StringJoin.js +1 -1
- package/ui/Blocks/CommonGrid/hooks/useEditReadAsColumn.d.ts +0 -1
- package/ui/Blocks/CommonGrid/hooks/useEditReadAsColumn.js +9 -26
- package/ui/Blocks/CommonGrid/hooks/useToggleAllCheckbox.d.ts +2 -2
- package/ui/Blocks/CommonGrid/hooks/useToggleAllCheckbox.js +3 -3
- package/ui/Blocks/CommonGrid/storybook/stories/complexWithPaginationAndRedux.stories.js +4 -1
- package/ui/Blocks/CommonGrid/styles.d.ts +1 -1
- package/ui/Blocks/CommonGrid/styles.js +2 -2
- package/ui/Blocks/CommonGrid/types.d.ts +2 -1
- package/ui/Blocks/CommonGrid/utils/index.d.ts +1 -2
- package/ui/Blocks/CommonGrid/utils/index.js +12 -15
- package/ui/index.es.js +21571 -21582
- package/ui/index.umd.js +708 -702
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DropResult } from 'react-beautiful-dnd';
|
|
2
|
-
import { CommonGridProps, FiltersConfig, ColumnDefinition } from './types';
|
|
2
|
+
import type { CommonGridProps, FiltersConfig, ColumnDefinition } from './types';
|
|
3
3
|
type Props = CommonGridProps & {
|
|
4
4
|
filters?: FiltersConfig;
|
|
5
5
|
handleDragEnd: (item: DropResult) => void;
|
|
@@ -7,5 +7,5 @@ type Props = CommonGridProps & {
|
|
|
7
7
|
hasGroups: boolean;
|
|
8
8
|
hasFilters: boolean;
|
|
9
9
|
};
|
|
10
|
-
declare const CommonGrid: ({ filters, comparators, handleDragEnd, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction,
|
|
10
|
+
declare const CommonGrid: ({ filters, comparators, handleDragEnd, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction, onRowClick, columnLayout, displayColumnsDefinitions, className, minColumnWidth, errorMessage, floatingButtonProps, hasGroups, hasFilters }: Props) => JSX.Element;
|
|
11
11
|
export default CommonGrid;
|
|
@@ -40,7 +40,7 @@ var CommonGrid = function (_a) {
|
|
|
40
40
|
// redux props
|
|
41
41
|
gridSelectors = _a.gridSelectors, gridActions = _a.gridActions,
|
|
42
42
|
// input props
|
|
43
|
-
isLoading = _a.isLoading, rowsData = _a.rowsData, hasColouredRows = _a.hasColouredRows, actionColumnDefinition = _a.actionColumnDefinition, allowRowSelect = _a.allowRowSelect, allowRowSelectOnAction = _a.allowRowSelectOnAction, onRowAction = _a.onRowAction,
|
|
43
|
+
isLoading = _a.isLoading, rowsData = _a.rowsData, hasColouredRows = _a.hasColouredRows, actionColumnDefinition = _a.actionColumnDefinition, allowRowSelect = _a.allowRowSelect, allowRowSelectOnAction = _a.allowRowSelectOnAction, onRowAction = _a.onRowAction, onRowClick = _a.onRowClick, _b = _a.columnLayout, columnLayout = _b === void 0 ? 'normal' : _b, displayColumnsDefinitions = _a.displayColumnsDefinitions, className = _a.className, minColumnWidth = _a.minColumnWidth, errorMessage = _a.errorMessage, floatingButtonProps = _a.floatingButtonProps, hasGroups = _a.hasGroups, hasFilters = _a.hasFilters;
|
|
44
44
|
var _c = gridSelectors.uxState, uxState = _c === void 0 ? defaultUxState : _c, _d = gridSelectors.columnsWidth, columnsWidth = _d === void 0 ? defaultColumnsWidth : _d, columnsWidthVariant = gridSelectors.columnsWidthVariant, _e = gridSelectors.page, page = _e === void 0 ? 1 : _e, filter = gridSelectors.filter, sorting = gridSelectors.sorting, _f = gridSelectors.rowsPerPage, rowsPerPage = _f === void 0 ? 10 : _f;
|
|
45
45
|
var clearUxState = gridActions.clearUxState, handleUxChange = gridActions.handleUxChange, _g = gridActions.addFilter, addFilter = _g === void 0 ? defaultVoidFunction : _g, _h = gridActions.addSorting, addSorting = _h === void 0 ? defaultVoidFunction : _h, _j = gridActions.setColumnWidth, setColumnWidth = _j === void 0 ? defaultVoidFunction : _j;
|
|
46
46
|
var handleRowsKeyDown = useRowsKeyControls(rowsData, uxState, handleUxChange);
|
|
@@ -62,13 +62,12 @@ var CommonGrid = function (_a) {
|
|
|
62
62
|
var commonGridRef = React.useCallback(function (node) {
|
|
63
63
|
gridBoxRef.current = node;
|
|
64
64
|
}, []);
|
|
65
|
-
console.log(actionColumnDefinition);
|
|
66
65
|
return (_jsxs(_Fragment, { children: [_jsx(x.div, { className: className || '', children: _jsxs(OversizedScroll, { columnLayout: columnLayout, isLoading: isLoading, totalColumnsWidth: totalColumnsWidth, floatingChildren: GridMessage && (_jsx(Row, { className: "dataRow", align: "center", children: _jsx(MessageCell, { align: "center", className: "gridMessage ".concat(messageClass), width: window.innerWidth, children: GridMessage }) })), ref: commonGridRef, children: [_jsxs("div", { className: "gridHead", children: [hasGroups && (_jsx(GroupRow, { actionColumn: actionColumnDefinition, columns: displayColumnsDefinitions, displayColumnsWidth: displayColumnsWidth, groups: groups })), _jsx(HeadRow, { columns: displayColumnsDefinitions, actionColumn: actionColumnDefinition, onAddSort: addSorting, columnLayout: columnLayout, sortingValues: sorting, displayColumnsWidth: displayColumnsWidth, handleResizeDrag: handleResizeDrag, groups: groups, handleDragEnd: handleDragEnd }), hasFilters && (_jsx(FilterRow, { filters: filters, comparators: comparators, columns: displayColumnsDefinitions, actionColumn: actionColumnDefinition, onChange: addFilter, filterValues: filter, displayColumnsWidth: displayColumnsWidth, groups: groups, rowsData: rowsData, uxState: uxState, handleUxChange: handleUxChange }))] }), _jsx("div", { className: "body flx_1", style: rowsStyles, tabIndex: -1, onKeyDown: handleRowsKeyDown, children: !isLoading &&
|
|
67
66
|
rowsData &&
|
|
68
67
|
displayColumnsDefinitions &&
|
|
69
68
|
rowsData.map(function (row, index) {
|
|
70
69
|
var rowIndex = rowsPerPage * page + (index + 1) - rowsPerPage;
|
|
71
|
-
return (_jsx(DataRow, { rowData: row, rowIndex: rowIndex, uxState: uxState, isEven: hasColouredRows && (index + 1) % 2 === 0, allowRowSelect: allowRowSelect, allowRowSelectOnAction: allowRowSelectOnAction, onRowAction: onRowAction, onUxChange: handleUxChange, onRowClick: onRowClick, columns: displayColumnsDefinitions,
|
|
70
|
+
return (_jsx(DataRow, { rowData: row, rowIndex: rowIndex, uxState: uxState, isEven: hasColouredRows && (index + 1) % 2 === 0, allowRowSelect: allowRowSelect, allowRowSelectOnAction: allowRowSelectOnAction, onRowAction: onRowAction, onUxChange: handleUxChange, onRowClick: onRowClick, columns: displayColumnsDefinitions, displayColumnsWidth: displayColumnsWidth, groups: groups }, row.id));
|
|
72
71
|
}) })] }) }), floatingButtonProps && _jsx(FloatingButton, __assign({}, floatingButtonProps))] }));
|
|
73
72
|
};
|
|
74
73
|
export default CommonGrid;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ColumnDefinition, GridActionsType, FiltersConfig, CustomComparators, Group } from '../types';
|
|
1
|
+
import type { ColumnDefinition, GridActionsType, FiltersConfig, CustomComparators, Group, ActionColumn, UxState, RowProps } from '../types';
|
|
2
2
|
type Props = {
|
|
3
3
|
onChange: Required<GridActionsType>['addFilter'];
|
|
4
4
|
value?: any;
|
|
@@ -8,6 +8,10 @@ type Props = {
|
|
|
8
8
|
filters?: FiltersConfig;
|
|
9
9
|
group?: Group;
|
|
10
10
|
comparators?: CustomComparators;
|
|
11
|
+
actionColumn?: ActionColumn;
|
|
12
|
+
rowsData: RowProps[];
|
|
13
|
+
uxState: UxState;
|
|
14
|
+
handleUxChange: GridActionsType['handleUxChange'];
|
|
11
15
|
};
|
|
12
|
-
declare const ColumnFilterCell: ({ onChange, value, others, displayColumnWidth, filters, column: columnDefinition, group, comparators }: Props) => JSX.Element;
|
|
16
|
+
declare const ColumnFilterCell: ({ onChange, value, others, displayColumnWidth, filters, column: columnDefinition, group, comparators, actionColumn, rowsData, uxState, handleUxChange }: Props) => JSX.Element;
|
|
13
17
|
export default ColumnFilterCell;
|
|
@@ -17,7 +17,7 @@ import { x } from '@xstyled/styled-components';
|
|
|
17
17
|
import OverlayComponent from './FilterDropdown';
|
|
18
18
|
import { Cell } from './Table';
|
|
19
19
|
var ColumnFilterCell = function (_a) {
|
|
20
|
-
var onChange = _a.onChange, value = _a.value, others = _a.others, displayColumnWidth = _a.displayColumnWidth, filters = _a.filters, columnDefinition = _a.column, group = _a.group, comparators = _a.comparators;
|
|
20
|
+
var onChange = _a.onChange, value = _a.value, others = _a.others, displayColumnWidth = _a.displayColumnWidth, filters = _a.filters, columnDefinition = _a.column, group = _a.group, comparators = _a.comparators, actionColumn = _a.actionColumn, rowsData = _a.rowsData, uxState = _a.uxState, handleUxChange = _a.handleUxChange;
|
|
21
21
|
var cellSizeProps = getCellSizeProps(columnDefinition, displayColumnWidth);
|
|
22
22
|
var handleAddFilter = useAddFilter(onChange);
|
|
23
23
|
var handleChange = React.useCallback(function (event, others) {
|
|
@@ -35,6 +35,6 @@ var ColumnFilterCell = function (_a) {
|
|
|
35
35
|
console.error("ERROR, using unknown filter type ".concat(filterType));
|
|
36
36
|
return (_jsx(x.div, { children: _jsx("span", { children: "".concat(filterType, " filter") }) }));
|
|
37
37
|
}
|
|
38
|
-
return (_jsx(Cell, __assign({ className: cellClassName }, cellSizeProps, { children: _jsx(x.div, { children: _jsx(RenderComponent, __assign({ "data-test": columnDefinition.name, name: columnDefinition.name, onChange: handleChange, value: value, others: others, OverlayComponent: OverlayComponent, comparators: defaultComparators }, filterConfig === null || filterConfig === void 0 ? void 0 : filterConfig.defaultExtraProps, columnDefinition.filterExtraProps, (filterType == 'options' && { options: columnDefinition.filterOptions }))) }) })));
|
|
38
|
+
return (_jsx(Cell, __assign({ className: cellClassName }, cellSizeProps, { children: _jsx(x.div, { children: _jsx(RenderComponent, __assign({ "data-test": columnDefinition.name, name: columnDefinition.name, onChange: handleChange, value: value, others: others, OverlayComponent: OverlayComponent, comparators: defaultComparators, actionColumn: actionColumn, rowsData: rowsData, uxState: uxState, handleUxChange: handleUxChange }, filterConfig === null || filterConfig === void 0 ? void 0 : filterConfig.defaultExtraProps, columnDefinition.filterExtraProps, (filterType == 'options' && { options: columnDefinition.filterOptions }))) }) })));
|
|
39
39
|
};
|
|
40
40
|
export default ColumnFilterCell;
|
|
@@ -6,6 +6,7 @@ type DataCellPros = {
|
|
|
6
6
|
onRowAction?: (id: string, field: string, value: any, rowData?: RowProps) => void;
|
|
7
7
|
displayColumnWidth: number;
|
|
8
8
|
group: Group;
|
|
9
|
+
rowIndex: number;
|
|
9
10
|
};
|
|
10
11
|
declare const MemoDataCell: React.NamedExoticComponent<DataCellPros>;
|
|
11
12
|
export default MemoDataCell;
|
|
@@ -15,14 +15,14 @@ import get from 'lodash/fp/get';
|
|
|
15
15
|
import { TextCell } from './Table';
|
|
16
16
|
import { getCellSizeProps, getGroupClassNames, getStickyCollClassNames } from '../utils';
|
|
17
17
|
var DataCell = function (_a) {
|
|
18
|
-
var column = _a.column, group = _a.group, rowData = _a.rowData, onRowAction = _a.onRowAction, displayColumnWidth = _a.displayColumnWidth;
|
|
18
|
+
var column = _a.column, group = _a.group, rowData = _a.rowData, onRowAction = _a.onRowAction, displayColumnWidth = _a.displayColumnWidth, rowIndex = _a.rowIndex;
|
|
19
19
|
var Wrapper = column.fixedSize ? 'div' : TextCell;
|
|
20
20
|
var wrapperBaseProps = column.fixedSize
|
|
21
21
|
? { style: __assign(__assign({}, getCellSizeProps(column, displayColumnWidth)), { alignSelf: 'center' }) }
|
|
22
22
|
: getCellSizeProps(column, displayColumnWidth);
|
|
23
23
|
var cellClassName = "cell".concat(getStickyCollClassNames(!!column.sticky, column.stickTo), " ").concat(getGroupClassNames(group));
|
|
24
24
|
if (column.cellComponent) {
|
|
25
|
-
return (_jsx(Wrapper, __assign({ className: cellClassName }, wrapperBaseProps, { children: _jsx(column.cellComponent, { rowData: rowData, onRowAction: onRowAction, column: column }) })));
|
|
25
|
+
return (_jsx(Wrapper, __assign({ className: cellClassName }, wrapperBaseProps, { children: _jsx(column.cellComponent, { rowData: rowData, onRowAction: onRowAction, column: column, rowIndex: rowIndex }) })));
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
28
|
return (_jsx(Wrapper, __assign({ className: cellClassName }, wrapperBaseProps, { children: column.formatRowValue ? column.formatRowValue(rowData) : get(column.name, rowData) })));
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { ColumnDefinition,
|
|
1
|
+
import type { ColumnDefinition, RowProps, UxState, GridSelectorsType, Group } from '../types';
|
|
2
2
|
type DataRowProps = {
|
|
3
3
|
columns: ColumnDefinition[];
|
|
4
|
-
actionColumn?: ActionColumn;
|
|
5
4
|
rowData: RowProps;
|
|
6
5
|
rowIndex: number;
|
|
7
6
|
uxState: UxState;
|
|
@@ -15,5 +14,5 @@ type DataRowProps = {
|
|
|
15
14
|
groups: Group[];
|
|
16
15
|
isEven?: boolean;
|
|
17
16
|
};
|
|
18
|
-
declare const DataRow: ({ columns,
|
|
17
|
+
declare const DataRow: ({ columns, rowData, rowIndex, uxState, allowRowSelect, allowRowSelectOnAction, onUxChange, onRowClick, onRowAction, displayColumnsWidth, groups, isEven }: DataRowProps) => JSX.Element;
|
|
19
18
|
export default DataRow;
|
|
@@ -1,25 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
2
|
import React from 'react';
|
|
14
3
|
import { rowClassSymbol } from '../types';
|
|
15
|
-
import { getActionCellSizeProps } from '../utils';
|
|
16
|
-
import { x } from '@xstyled/styled-components';
|
|
17
4
|
import MemoDataCell from './DataCell';
|
|
18
|
-
import {
|
|
5
|
+
import { StyledDataRow } from './Table';
|
|
19
6
|
import { useTimeMeasurement } from './utils';
|
|
20
7
|
var DataRow = function (_a) {
|
|
21
8
|
var _b;
|
|
22
|
-
var columns = _a.columns,
|
|
9
|
+
var columns = _a.columns, rowData = _a.rowData, rowIndex = _a.rowIndex, uxState = _a.uxState, allowRowSelect = _a.allowRowSelect, allowRowSelectOnAction = _a.allowRowSelectOnAction, onUxChange = _a.onUxChange, onRowClick = _a.onRowClick, onRowAction = _a.onRowAction, displayColumnsWidth = _a.displayColumnsWidth, groups = _a.groups, isEven = _a.isEven;
|
|
23
10
|
var isChecked = !!((_b = uxState.checkedRows) === null || _b === void 0 ? void 0 : _b[rowData.id]);
|
|
24
11
|
var handleRowAction = React.useCallback(function (id, field, value, rowData) {
|
|
25
12
|
onRowAction === null || onRowAction === void 0 ? void 0 : onRowAction(id, field, value, rowData);
|
|
@@ -51,10 +38,6 @@ var DataRow = function (_a) {
|
|
|
51
38
|
return classes.join(' ');
|
|
52
39
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
53
40
|
}, [isChecked, uxState, rowData]);
|
|
54
|
-
|
|
55
|
-
var actionColumnStyle = React.useMemo(function () {
|
|
56
|
-
return actionColumn ? __assign({}, getActionCellSizeProps(actionColumn)) : {};
|
|
57
|
-
}, [actionColumn]);
|
|
58
|
-
return (_jsxs(StyledDataRow, { className: rowClassName, hasRowClick: !!onRowClick, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, isEven: !!isEven, children: [actionColumn && (_jsx(_Fragment, { children: (actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.addRowNumbers) && (_jsx(Cell, { className: "cell", style: actionColumnStyle, children: _jsx(x.div, { children: rowIndex }) })) })), columns.map(function (column, key) { return (_jsx(MemoDataCell, { column: column, rowData: rowData, onRowAction: handleRowAction, displayColumnWidth: displayColumnsWidth[column.name], group: groups === null || groups === void 0 ? void 0 : groups[key] }, column.name)); })] }));
|
|
41
|
+
return (_jsx(StyledDataRow, { className: rowClassName, hasRowClick: !!onRowClick, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, isEven: !!isEven, children: columns.map(function (column, key) { return (_jsx(MemoDataCell, { column: column, rowData: rowData, rowIndex: rowIndex, onRowAction: handleRowAction, displayColumnWidth: displayColumnsWidth[column.name], group: groups === null || groups === void 0 ? void 0 : groups[key] }, column.name)); }) }));
|
|
59
42
|
};
|
|
60
43
|
export default DataRow;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Settings, ColumnDefinition as ColumnDefinitionType, ActionColumn, GridActionsType, GridSelectorsType, Group, CustomComparators, FiltersConfig, UxState, RowProps } from '../types';
|
|
1
|
+
import type { Settings, ColumnDefinition as ColumnDefinitionType, ActionColumn, GridActionsType, GridSelectorsType, Group, CustomComparators, FiltersConfig, UxState, RowProps } from '../types';
|
|
2
2
|
type Props = {
|
|
3
3
|
columns: ColumnDefinitionType[];
|
|
4
4
|
actionColumn?: ActionColumn;
|
|
@@ -1,36 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
import React from 'react';
|
|
14
|
-
import Checkbox from '../../../Forms/Checkbox';
|
|
15
|
-
import { useToggleAllCheckbox } from '../hooks/useToggleAllCheckbox';
|
|
16
|
-
import { getActionCellSizeProps, getFilterName } from '../utils';
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { getFilterName } from '../utils';
|
|
17
3
|
import get from 'lodash/fp/get';
|
|
18
4
|
import throttle from 'lodash/throttle';
|
|
19
5
|
import ColumnFilterCell from './ColumnFilterCell';
|
|
20
|
-
import { Row
|
|
6
|
+
import { Row } from './Table';
|
|
21
7
|
var FilterRow = function (_a) {
|
|
22
|
-
var _b,
|
|
23
|
-
var columns = _a.columns, groups = _a.groups, actionColumn = _a.actionColumn, onChange = _a.onChange, _d = _a.filterValues, filterValues = _d === void 0 ? {} : _d, displayColumnsWidth = _a.displayColumnsWidth, filters = _a.filters, comparators = _a.comparators, handleUxChange = _a.handleUxChange, rowsData = _a.rowsData, uxState = _a.uxState;
|
|
8
|
+
var columns = _a.columns, groups = _a.groups, actionColumn = _a.actionColumn, onChange = _a.onChange, _b = _a.filterValues, filterValues = _b === void 0 ? {} : _b, displayColumnsWidth = _a.displayColumnsWidth, filters = _a.filters, comparators = _a.comparators, handleUxChange = _a.handleUxChange, rowsData = _a.rowsData, uxState = _a.uxState;
|
|
24
9
|
var handleOnChange = throttle(onChange, 500);
|
|
25
|
-
|
|
26
|
-
return actionColumn ? __assign({}, getActionCellSizeProps(actionColumn)) : {};
|
|
27
|
-
}, [actionColumn]);
|
|
28
|
-
var _e = useToggleAllCheckbox(rowsData, uxState, handleUxChange), allChecked = _e[0], toggleCheckbox = _e[1];
|
|
29
|
-
var displayCheckbox = ((_b = actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionOptions) === null || _b === void 0 ? void 0 : _b.length) || (actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.forceCheckboxes);
|
|
30
|
-
var displayRowNumberLabel = actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.addRowNumbers;
|
|
31
|
-
var rowsNumberLabel = (_c = actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.addRowNumbersLabel) !== null && _c !== void 0 ? _c : '#';
|
|
32
|
-
return (_jsxs(Row, { className: "filterRow", children: [displayCheckbox && (_jsx(Cell, { className: "cell sticky sticky-left", style: actionColumnStyle, children: _jsx(Checkbox, { checked: allChecked, onChange: toggleCheckbox, label: "" }, "check-all") })), displayRowNumberLabel && (_jsx(Cell, { className: "cell", style: actionColumnStyle, children: _jsx("div", { children: rowsNumberLabel }) })), !!(!displayCheckbox && !displayRowNumberLabel && actionColumn) && (_jsx(Cell, { className: "cell sticky sticky-left", style: actionColumnStyle })), columns
|
|
33
|
-
.filter(function (column) { return !column.sticky; })
|
|
34
|
-
.map(function (column, index) { return (_jsx(ColumnFilterCell, { column: column, onChange: handleOnChange, value: get([getFilterName(column), 'value'], filterValues), others: get([getFilterName(column), 'others'], filterValues), displayColumnWidth: displayColumnsWidth[column.name], filters: filters, comparators: comparators, group: groups === null || groups === void 0 ? void 0 : groups[index] }, index)); })] }));
|
|
10
|
+
return (_jsx(Row, { className: "filterRow", children: columns.map(function (column, index) { return (_jsx(ColumnFilterCell, { column: column, actionColumn: actionColumn, rowsData: rowsData, uxState: uxState, handleUxChange: handleUxChange, onChange: handleOnChange, value: get([getFilterName(column), 'value'], filterValues), others: get([getFilterName(column), 'others'], filterValues), displayColumnWidth: displayColumnsWidth[column.name], filters: filters, comparators: comparators, group: groups === null || groups === void 0 ? void 0 : groups[index] }, index)); }) }));
|
|
35
11
|
};
|
|
36
12
|
export default FilterRow;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { ActionColumn, GridActionsType, RowProps, UxState } from '../../../types';
|
|
3
|
+
type Props = {
|
|
4
|
+
actionColumn?: ActionColumn;
|
|
5
|
+
rowsData?: RowProps[];
|
|
6
|
+
uxState?: UxState;
|
|
7
|
+
handleUxChange?: GridActionsType['handleUxChange'];
|
|
8
|
+
};
|
|
9
|
+
declare const ActionsFilter: FC<Props>;
|
|
10
|
+
export default ActionsFilter;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import Checkbox from '../../../../../Forms/Checkbox';
|
|
3
|
+
import { useToggleAllCheckbox } from '../../../hooks/useToggleAllCheckbox';
|
|
4
|
+
import { x } from '@xstyled/styled-components';
|
|
5
|
+
var ActionsFilter = function (_a) {
|
|
6
|
+
var _b, _c;
|
|
7
|
+
var actionColumn = _a.actionColumn, rowsData = _a.rowsData, uxState = _a.uxState, handleUxChange = _a.handleUxChange;
|
|
8
|
+
var _d = useToggleAllCheckbox(rowsData, uxState, handleUxChange), allChecked = _d[0], toggleCheckbox = _d[1];
|
|
9
|
+
var displayRowNumberLabel = actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.addRowNumbers;
|
|
10
|
+
var rowsNumberLabel = (_b = actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.addRowNumbersLabel) !== null && _b !== void 0 ? _b : '#';
|
|
11
|
+
var displayCheckbox = ((_c = actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionOptions) === null || _c === void 0 ? void 0 : _c.length) || (actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.forceCheckboxes);
|
|
12
|
+
return (_jsxs(x.div, { display: "flex", alignItems: "center", justifyContent: "space-between", gap: "16px", pl: "4px", children: [displayCheckbox && (_jsx(x.div, { w: "100%", children: _jsx(Checkbox, { checked: allChecked, onChange: toggleCheckbox, label: "" }, "check-all") })), displayRowNumberLabel && (_jsx(x.div, { w: "100%", pr: "12px", display: "flex", justifyContent: "center", children: rowsNumberLabel }))] }));
|
|
13
|
+
};
|
|
14
|
+
export default ActionsFilter;
|
|
@@ -10,9 +10,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
import
|
|
13
|
+
import { getCellSizeProps, getGroupClassNames, getStickyCollClassNames } from '../utils';
|
|
14
14
|
import { Row, Cell } from './Table';
|
|
15
|
-
import { getCellSizeProps, getActionCellSizeProps, getGroupClassNames, getStickyCollClassNames } from '../utils';
|
|
16
15
|
var GroupCell = function (_a) {
|
|
17
16
|
var column = _a.column, group = _a.group, displayColumnWidth = _a.displayColumnWidth;
|
|
18
17
|
var cellSizeProps = getCellSizeProps(column, displayColumnWidth);
|
|
@@ -21,7 +20,6 @@ var GroupCell = function (_a) {
|
|
|
21
20
|
};
|
|
22
21
|
var GroupRow = function (_a) {
|
|
23
22
|
var actionColumn = _a.actionColumn, columns = _a.columns, groups = _a.groups, displayColumnsWidth = _a.displayColumnsWidth;
|
|
24
|
-
|
|
25
|
-
return (_jsxs(Row, { className: "group-row", children: [actionColumn && _jsx(Cell, { className: "cell", style: actionColumnStyle }, "actions"), groups.map(function (group, key) { return (_jsx(GroupCell, { column: columns[key], group: group, displayColumnWidth: displayColumnsWidth[columns[key].name] }, key)); })] }));
|
|
23
|
+
return (_jsxs(Row, { className: "group-row", children: [actionColumn && _jsx(Cell, { className: "cell", flexBasis: actionColumn.flexBasis, flexGrow: 0, flexShrink: 0 }, "actions"), groups.map(function (group, key) { return (_jsx(GroupCell, { column: columns[key], group: group, displayColumnWidth: displayColumnsWidth[columns[key].name] }, key)); })] }));
|
|
26
24
|
};
|
|
27
25
|
export default GroupRow;
|
|
@@ -9,10 +9,10 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
import { jsx as _jsx,
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
13
|
import React, { useEffect, useState } from 'react';
|
|
14
14
|
import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
|
|
15
|
-
import {
|
|
15
|
+
import { getCellSizeProps, getGroupClassNames, getSortName, getStickyCollClassNames } from '../utils';
|
|
16
16
|
import ColumnTitle from './ColumnTitle';
|
|
17
17
|
import Resize from './Resize';
|
|
18
18
|
import { Row, Cell } from './Table';
|
|
@@ -42,7 +42,7 @@ var HeadRow = function (_a) {
|
|
|
42
42
|
var onSetSort = React.useCallback(function (name, systemName) { return function (value) {
|
|
43
43
|
onAddSort && onAddSort(systemName || name, value);
|
|
44
44
|
}; }, [onAddSort]);
|
|
45
|
-
return (_jsx(_Fragment, { children: showUIElements && (_jsx(DragDropContext, { onDragEnd: handleDragEnd, children: _jsx(Droppable, { droppableId: "droppable", direction: "horizontal", isDropDisabled: isDragDisabled, isCombineEnabled: false, ignoreContainerClipping: false, children: function (droppableProvided) { return (_jsxs(Row, __assign({ className: "headRow", accountForScrollbar: false, ref: droppableProvided.innerRef }, droppableProvided.droppableProps, { children: [
|
|
45
|
+
return (_jsx(_Fragment, { children: showUIElements && (_jsx(DragDropContext, { onDragEnd: handleDragEnd, children: _jsx(Droppable, { droppableId: "droppable", direction: "horizontal", isDropDisabled: isDragDisabled, isCombineEnabled: false, ignoreContainerClipping: false, children: function (droppableProvided) { return (_jsxs(Row, __assign({ className: "headRow", accountForScrollbar: false, ref: droppableProvided.innerRef }, droppableProvided.droppableProps, { children: [getStickyComponent(columns, 'left', displayColumnsWidth), columns
|
|
46
46
|
.filter(function (item) { return !item.sticky; })
|
|
47
47
|
.map(function (column, index) { return (_jsx(Draggable, { draggableId: column.name, index: index, isDragDisabled: isDragDisabled || column.sticky, children: function (_a) {
|
|
48
48
|
var _b;
|
|
@@ -4,5 +4,5 @@ import { DateTime } from 'luxon';
|
|
|
4
4
|
export var DateCell = function (_a) {
|
|
5
5
|
var rowData = _a.rowData, column = _a.column;
|
|
6
6
|
var value = get(column.name, rowData);
|
|
7
|
-
return value ? _jsx("span", {
|
|
7
|
+
return value ? _jsx("span", { children: DateTime.fromISO(value).toFormat('dd. MM. yyyy') }) : null;
|
|
8
8
|
};
|
|
@@ -9,5 +9,5 @@ export var DateTimeCell = function (_a) {
|
|
|
9
9
|
var rowData = _a.rowData, column = _a.column;
|
|
10
10
|
var value = get(column.name, rowData);
|
|
11
11
|
var dateTimeFormat = ((_b = column === null || column === void 0 ? void 0 : column.passProps) !== null && _b !== void 0 ? _b : defaultProps).dateTimeFormat;
|
|
12
|
-
return value ? _jsx("span", {
|
|
12
|
+
return value ? _jsx("span", { children: DateTime.fromISO(value).toFormat(dateTimeFormat) }) : null;
|
|
13
13
|
};
|
|
@@ -28,6 +28,6 @@ export var EnumInCell = function (_a) {
|
|
|
28
28
|
}, [appearanceMap, value]);
|
|
29
29
|
if (!finalLabel)
|
|
30
30
|
return null;
|
|
31
|
-
return (_jsx(Center, { children: _jsx(HighlightBox, __assign({
|
|
31
|
+
return (_jsx(Center, { children: _jsx(HighlightBox, __assign({}, coloringProp, { size: size, prefix: "grid", children: finalLabel })) }));
|
|
32
32
|
};
|
|
33
33
|
var templateObject_1;
|
|
@@ -3,8 +3,10 @@ import type { DataCellProps, ActionColumn, UxState, GridActionsType } from '../.
|
|
|
3
3
|
type Props = DataCellProps<{
|
|
4
4
|
id: string;
|
|
5
5
|
}> & {
|
|
6
|
+
addRowNumbers?: boolean;
|
|
7
|
+
rowIndex?: number;
|
|
6
8
|
actionColumnDefinition?: ActionColumn;
|
|
7
|
-
|
|
9
|
+
checkedRows?: UxState['checkedRows'];
|
|
8
10
|
onUxChange?: GridActionsType['handleUxChange'];
|
|
9
11
|
withCheckboxes?: boolean;
|
|
10
12
|
};
|
|
@@ -16,11 +16,8 @@ import { x } from '@xstyled/styled-components';
|
|
|
16
16
|
import { isFunction } from 'lodash/fp';
|
|
17
17
|
import { IconButtonInCell } from './IconButtonInCell';
|
|
18
18
|
export var RowActionsCell = function (_a) {
|
|
19
|
-
var actionColumnDefinition = _a.actionColumnDefinition, rowData = _a.rowData,
|
|
19
|
+
var actionColumnDefinition = _a.actionColumnDefinition, rowData = _a.rowData, addRowNumbers = _a.addRowNumbers, rowIndex = _a.rowIndex, checkedRows = _a.checkedRows, withCheckboxes = _a.withCheckboxes, onUxChange = _a.onUxChange, onRowAction = _a.onRowAction;
|
|
20
20
|
var rowDataId = rowData === null || rowData === void 0 ? void 0 : rowData.id;
|
|
21
|
-
// @TODO this should be in parent component
|
|
22
|
-
console.log('uxState', uxState);
|
|
23
|
-
var checkedRows = uxState === null || uxState === void 0 ? void 0 : uxState.checkedRows;
|
|
24
21
|
var canEdit = isFunction(actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowEdit)
|
|
25
22
|
? actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowEdit(rowData)
|
|
26
23
|
: actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowEdit;
|
|
@@ -54,5 +51,5 @@ export var RowActionsCell = function (_a) {
|
|
|
54
51
|
onClick();
|
|
55
52
|
}
|
|
56
53
|
}, [onClick]);
|
|
57
|
-
return (_jsxs(x.div, { w: "100%", display: "flex",
|
|
54
|
+
return (_jsxs(x.div, { w: "100%", display: "flex", gap: "16px", pl: "4px", pr: "4px", children: [withCheckboxes && (_jsx(x.div, { w: "100%", children: _jsx(Checkbox, { checked: isChecked, onChange: onCheckboxChange, label: "" }) })), addRowNumbers && (_jsx(x.div, { display: "flex", alignItems: "center", justifyContent: "center", pr: "8px", w: "100%", children: rowIndex })), canEdit && _jsx(IconButtonInCell, { icon: "pen", onClick: handleOnClick, linkTo: linkTo }, "edit"), !canEdit && canRead && _jsx(IconButtonInCell, { icon: "chevronRight", onClick: handleOnClick, linkTo: linkTo }, "read")] }));
|
|
58
55
|
};
|
|
@@ -3,5 +3,5 @@ import get from 'lodash/fp/get';
|
|
|
3
3
|
export var StringJoinCell = function (_a) {
|
|
4
4
|
var rowData = _a.rowData, column = _a.column;
|
|
5
5
|
var values = get(column.name, rowData);
|
|
6
|
-
return values && values.length ? _jsx("span", {
|
|
6
|
+
return values && values.length ? _jsx("span", { children: values.join(', ') }) : null;
|
|
7
7
|
};
|
|
@@ -3,7 +3,6 @@ type ExcludedProps = 'components' | 'filters' | 'onBatchAction' | 'extraControlB
|
|
|
3
3
|
type Props = Omit<CommonGridProps, ExcludedProps>;
|
|
4
4
|
type UseEditReadAsColumnHook = {
|
|
5
5
|
columnsDefinitions: CommonGridProps['columnsDefinitions'];
|
|
6
|
-
actionColumnDefinition: CommonGridProps['actionColumnDefinition'];
|
|
7
6
|
onRowAction: CommonGridProps['onRowAction'];
|
|
8
7
|
};
|
|
9
8
|
declare const useEditReadAsColumn: (props: Props) => UseEditReadAsColumnHook;
|
|
@@ -14,23 +14,6 @@ import { EditReadPosition } from '../types';
|
|
|
14
14
|
var useEditReadAsColumn = function (props) {
|
|
15
15
|
var _a;
|
|
16
16
|
var onRowAction = props.onRowAction, actionColumnDefinition = props.actionColumnDefinition, columnsDefinitions = props.columnsDefinitions, gridSelectors = props.gridSelectors, gridActions = props.gridActions, onRowEditClick = props.onRowEditClick, onRowReadClick = props.onRowReadClick;
|
|
17
|
-
var modifiedActionColumnDefinition = useMemo(function () {
|
|
18
|
-
var _a;
|
|
19
|
-
if ((actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.forceCheckboxes) || ((_a = actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.actionOptions) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
20
|
-
// note: this also removes actions, because we render action trigger outside the grid anyway
|
|
21
|
-
return {
|
|
22
|
-
flexBasis: (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.flexBasis) || 88,
|
|
23
|
-
forceCheckboxes: true,
|
|
24
|
-
addRowNumbers: actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.addRowNumbers
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
else if (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.addRowNumbers) {
|
|
28
|
-
return { flexBasis: 40, addRowNumbers: true };
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
}, [actionColumnDefinition]);
|
|
34
17
|
var modifiedOnRowAction = useCallback(function (id, field, value, rowData) {
|
|
35
18
|
if (field === 'row_edit' || field === 'row_read') {
|
|
36
19
|
if (field === 'row_edit' && onRowEditClick)
|
|
@@ -42,17 +25,16 @@ var useEditReadAsColumn = function (props) {
|
|
|
42
25
|
return onRowAction(id, field, value, rowData);
|
|
43
26
|
}
|
|
44
27
|
}, [onRowAction, onRowEditClick, onRowReadClick]);
|
|
45
|
-
var
|
|
46
|
-
var canRowRead = (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowRead) !== undefined;
|
|
47
|
-
var stickTo = (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.stickTo) || 'left';
|
|
48
|
-
var flexBasis = (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.flexBasis) || 88;
|
|
28
|
+
var _b = actionColumnDefinition || {}, canRowEdit = _b.canRowEdit, canRowRead = _b.canRowRead, addRowNumbers = _b.addRowNumbers, _c = _b.stickTo, stickTo = _c === void 0 ? 'left' : _c, _d = _b.flexBasis, flexBasis = _d === void 0 ? 88 : _d;
|
|
49
29
|
var withCheckboxes = !!((_a = actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.actionOptions) === null || _a === void 0 ? void 0 : _a.length) || (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.forceCheckboxes);
|
|
50
30
|
var modifiedColumnsDefinitions = useMemo(function () {
|
|
51
|
-
|
|
31
|
+
var _a;
|
|
32
|
+
if (canRowEdit || canRowRead || withCheckboxes || addRowNumbers) {
|
|
52
33
|
var editReadColumnDefinition = {
|
|
53
|
-
name: '
|
|
34
|
+
name: 'actions',
|
|
54
35
|
flexBasis: flexBasis,
|
|
55
|
-
filtering:
|
|
36
|
+
filtering: withCheckboxes || addRowNumbers,
|
|
37
|
+
filteringType: 'actions',
|
|
56
38
|
sorting: false,
|
|
57
39
|
sticky: true,
|
|
58
40
|
stickTo: stickTo,
|
|
@@ -60,7 +42,8 @@ var useEditReadAsColumn = function (props) {
|
|
|
60
42
|
cellComponent: withProps({
|
|
61
43
|
actionColumnDefinition: actionColumnDefinition,
|
|
62
44
|
withCheckboxes: withCheckboxes,
|
|
63
|
-
|
|
45
|
+
addRowNumbers: actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.addRowNumbers,
|
|
46
|
+
checkedRows: (_a = gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.uxState) === null || _a === void 0 ? void 0 : _a.checkedRows,
|
|
64
47
|
onUxChange: gridActions === null || gridActions === void 0 ? void 0 : gridActions.handleUxChange
|
|
65
48
|
})(RowActionsCell)
|
|
66
49
|
};
|
|
@@ -75,6 +58,7 @@ var useEditReadAsColumn = function (props) {
|
|
|
75
58
|
return columnsDefinitions;
|
|
76
59
|
}
|
|
77
60
|
}, [
|
|
61
|
+
addRowNumbers,
|
|
78
62
|
flexBasis,
|
|
79
63
|
stickTo,
|
|
80
64
|
canRowEdit,
|
|
@@ -87,7 +71,6 @@ var useEditReadAsColumn = function (props) {
|
|
|
87
71
|
]);
|
|
88
72
|
return {
|
|
89
73
|
columnsDefinitions: modifiedColumnsDefinitions,
|
|
90
|
-
actionColumnDefinition: actionColumnDefinition,
|
|
91
74
|
onRowAction: modifiedOnRowAction
|
|
92
75
|
};
|
|
93
76
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { RowProps, GridActionsType, UxState } from '../types';
|
|
1
|
+
import type { RowProps, GridActionsType, UxState } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* hook for checkbox that select and unselects all row
|
|
4
4
|
* returns [checked state, toggleAllHandler()] for checkbox
|
|
5
5
|
*/
|
|
6
6
|
type ToggleAllCheckboxRet = [boolean, () => void];
|
|
7
|
-
export declare const useToggleAllCheckbox: (rowsData
|
|
7
|
+
export declare const useToggleAllCheckbox: (rowsData?: RowProps[], uxState?: UxState, handleUxChange?: GridActionsType['handleUxChange']) => ToggleAllCheckboxRet;
|
|
8
8
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMemo, useCallback } from 'react';
|
|
2
2
|
export var useToggleAllCheckbox = function (rowsData, uxState, handleUxChange) {
|
|
3
|
-
var allChecked = useMemo(function () { return (rowsData || []).length >= 1 && rowsData.every(function (row) { var _a; return (_a = uxState.checkedRows) === null || _a === void 0 ? void 0 : _a[row.id]; }); }, [rowsData, uxState.checkedRows]);
|
|
3
|
+
var allChecked = useMemo(function () { return rowsData && (rowsData || []).length >= 1 && rowsData.every(function (row) { var _a; return (_a = uxState === null || uxState === void 0 ? void 0 : uxState.checkedRows) === null || _a === void 0 ? void 0 : _a[row.id]; }); }, [rowsData, uxState === null || uxState === void 0 ? void 0 : uxState.checkedRows]);
|
|
4
4
|
var toggleAllHandler = useCallback(function () {
|
|
5
5
|
var checkedRows = {};
|
|
6
6
|
// if check all is not check, we check all
|
|
@@ -9,7 +9,7 @@ export var useToggleAllCheckbox = function (rowsData, uxState, handleUxChange) {
|
|
|
9
9
|
checkedRows[row.id] = true;
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
|
-
handleUxChange
|
|
12
|
+
handleUxChange === null || handleUxChange === void 0 ? void 0 : handleUxChange('checkedRows', checkedRows);
|
|
13
13
|
}, [handleUxChange, rowsData, allChecked]);
|
|
14
|
-
return [allChecked, toggleAllHandler];
|
|
14
|
+
return [!!allChecked, toggleAllHandler];
|
|
15
15
|
};
|
|
@@ -10,7 +10,10 @@ import { ReduxGrid, createRandomData, enumValues, gridDummyActions } from '../ut
|
|
|
10
10
|
import withRedux from '../utils/withRedux';
|
|
11
11
|
var ActionColumnButtons = {
|
|
12
12
|
flexBasis: 80,
|
|
13
|
-
forceCheckboxes: true
|
|
13
|
+
forceCheckboxes: true,
|
|
14
|
+
addRowNumbers: false,
|
|
15
|
+
canRowEdit: true,
|
|
16
|
+
canRowRead: false
|
|
14
17
|
};
|
|
15
18
|
var FilterSetter = function (_a) {
|
|
16
19
|
var gridActions = _a.gridActions;
|
|
@@ -7,7 +7,7 @@ export declare const CommonGridWrap: import("styled-components").StyledComponent
|
|
|
7
7
|
withPagination: boolean;
|
|
8
8
|
}, "color">;
|
|
9
9
|
export declare const StyledButtonStrip: import("styled-components").StyledComponent<(props: Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "color">) => import("react").ReactElement<any, "div">, import("@xstyled/system").Theme, import("@xstyled/system").SystemProps<import("@xstyled/system").Theme>, "color">;
|
|
10
|
-
export declare const CommonGridWithStyles: import("styled-components").StyledComponent<({ filters, comparators, handleDragEnd, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction,
|
|
10
|
+
export declare const CommonGridWithStyles: import("styled-components").StyledComponent<({ filters, comparators, handleDragEnd, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction, onRowClick, columnLayout, displayColumnsDefinitions, className, minColumnWidth, errorMessage, floatingButtonProps, hasGroups, hasFilters }: import("./types").CommonGridProps & {
|
|
11
11
|
filters?: import("./types").FiltersConfig | undefined;
|
|
12
12
|
handleDragEnd: (item: import("react-beautiful-dnd").DropResult) => void;
|
|
13
13
|
displayColumnsDefinitions: import("./types").ColumnDefinition[];
|
|
@@ -6,7 +6,7 @@ import { gridRowHeight, gridFooterHeight, gridButtonStripHeight, gridHeadHeight,
|
|
|
6
6
|
import styled, { x } from '@xstyled/styled-components';
|
|
7
7
|
import { th } from '@xstyled/system';
|
|
8
8
|
import CommonGrid from './CommonGrid';
|
|
9
|
-
export var BottomWrapper = styled(x.div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: fixed;\n bottom: 0px;\n padding: ", ";\n left: 0;\n width: 100%;\n height: ", "px;\n background-color: bgLightGray;\n\n & > * {\n @media (min-width: 1024px) {\n justify-content: flex-end;\n }\n }\n\n @media print {\n display: none;\n }\n\n @media (min-width: 1024px) {\n position: relative;\n bottom: 0;\n margin-bottom: 0;\n }\n"], ["\n position: fixed;\n bottom: 0px;\n padding: ", ";\n left: 0;\n width: 100%;\n height: ", "px;\n background-color: bgLightGray;\n\n & > * {\n @media (min-width: 1024px) {\n justify-content: flex-end;\n }\n }\n\n @media print {\n display: none;\n }\n\n @media (min-width: 1024px) {\n position: relative;\n bottom: 0;\n margin-bottom: 0;\n }\n"])), function (_a) {
|
|
9
|
+
export var BottomWrapper = styled(x.div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: fixed;\n z-index: 2;\n bottom: 0px;\n padding: ", ";\n left: 0;\n width: 100%;\n height: ", "px;\n background-color: bgLightGray;\n\n & > * {\n @media (min-width: 1024px) {\n justify-content: flex-end;\n }\n }\n\n @media print {\n display: none;\n }\n\n @media (min-width: 1024px) {\n position: relative;\n bottom: 0;\n margin-bottom: 0;\n }\n"], ["\n position: fixed;\n z-index: 2;\n bottom: 0px;\n padding: ", ";\n left: 0;\n width: 100%;\n height: ", "px;\n background-color: bgLightGray;\n\n & > * {\n @media (min-width: 1024px) {\n justify-content: flex-end;\n }\n }\n\n @media print {\n display: none;\n }\n\n @media (min-width: 1024px) {\n position: relative;\n bottom: 0;\n margin-bottom: 0;\n }\n"])), function (_a) {
|
|
10
10
|
var withPagination = _a.withPagination;
|
|
11
11
|
return (withPagination ? '10px 0' : '0px');
|
|
12
12
|
}, function (_a) {
|
|
@@ -22,7 +22,7 @@ export var CommonGridWrap = styled(x.div)(templateObject_3 || (templateObject_3
|
|
|
22
22
|
return (withPagination ? gridFooterHeight : 0);
|
|
23
23
|
});
|
|
24
24
|
export var StyledButtonStrip = styled(x.div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: relative;\n padding: 18px 20px;\n display: flex;\n justify-content: space-between;\n width: 100%;\n min-height: ", "px;\n flex-wrap: wrap;\n z-index: 3;\n"], ["\n position: relative;\n padding: 18px 20px;\n display: flex;\n justify-content: space-between;\n width: 100%;\n min-height: ", "px;\n flex-wrap: wrap;\n z-index: 3;\n"])), gridButtonStripHeight);
|
|
25
|
-
export var CommonGridWithStyles = styled(CommonGrid)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n height: calc(100% - ", "px);\n\n & .cell {\n padding: 0 4px;\n }\n & .dataRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: normal;\n border-bottom: 1px solid;\n border-color: lightGray3;\n height: ", "px;\n }\n & .gridHead {\n height: ", "px;\n background-color: neutral20;\n padding-bottom: 8px;\n position: sticky;\n top: -1px;\n z-index: 2;\n border-top: 1px solid ", ";\n }\n & .headRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: bold;\n border-bottom: none; // TODO fix in common-grid\n\n & .cell {\n overflow: hidden;\n max-height: 32px;\n position: relative;\n }\n\n & .sticky {\n background-color: bgLightGray1;\n }\n }\n\n & .filterRow {\n & .cell {\n overflow: visible;\n }\n\n & .cell > div {\n width: 100%; // TODO fix in common-grid\n }\n\n & .sticky {\n background-color: bgLightGray1;\n }\n border-bottom: none; // TODO fix in common-grid\n }\n\n & .body {\n
|
|
25
|
+
export var CommonGridWithStyles = styled(CommonGrid)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n height: calc(100% - ", "px);\n\n & .cell {\n padding: 0 4px;\n }\n & .dataRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: normal;\n border-bottom: 1px solid;\n border-color: lightGray3;\n height: ", "px;\n }\n & .gridHead {\n height: ", "px;\n background-color: neutral20;\n padding-bottom: 8px;\n position: sticky;\n top: -1px;\n z-index: 2;\n border-top: 1px solid ", ";\n }\n & .headRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: bold;\n border-bottom: none; // TODO fix in common-grid\n\n & .cell {\n overflow: hidden;\n max-height: 32px;\n position: relative;\n }\n\n & .sticky {\n background-color: bgLightGray1;\n }\n }\n\n & .filterRow {\n & .cell {\n overflow: visible;\n }\n\n & .cell > div {\n width: 100%; // TODO fix in common-grid\n }\n\n & .sticky {\n background-color: bgLightGray1;\n }\n border-bottom: none; // TODO fix in common-grid\n }\n\n & .body {\n flex-grow: 1;\n }\n\n & .gridWrapper {\n background-color: ", ";\n width: auto;\n padding-bottom: 35px;\n\n @media (min-width: 1024px) {\n height: 100%;\n overflow-y: auto;\n padding-bottom: 0;\n }\n @media print {\n margin: 0;\n width: 100%;\n height: auto;\n overflow-x: hidden;\n }\n }\n\n & .fullWidthGrid > .gridWrapper > div {\n width: 100% !important;\n }\n\n & .paginatorWrapper,\n & .buttonsStrip {\n @media print {\n display: none;\n }\n }\n & .cell {\n padding-left: 4px;\n padding-right: 4px;\n @media print {\n white-space: unset;\n }\n }\n\n .dataRow {\n &.grayedOut {\n background: lightGray1;\n }\n\n .sticky-right,\n .sticky-left {\n background: white;\n }\n\n .sticky-right {\n border-left: 1px solid #dfe1e6;\n }\n\n .sticky-left {\n border-right: 1px solid #dfe1e6;\n }\n\n &:hover,\n &.checked,\n &.selected {\n background-color: red30;\n }\n }\n\n .dataRow:nth-child(even) {\n .sticky-left,\n .sticky-right {\n background-color: bgLightGray;\n }\n }\n\n @media print {\n .filterRow .sticky {\n display: none;\n }\n\n .headRow .sticky {\n display: none;\n }\n\n .dataRow .sticky {\n display: none;\n }\n }\n\n .resizer {\n z-index: unset;\n }\n\n // hotfix table head\n .cell .sortable {\n display: flex;\n align-items: center;\n padding-right: 2px;\n }\n\n .sticky {\n position: sticky !important;\n z-index: 1;\n }\n\n .sticky-left {\n left: 0;\n }\n\n .sticky-right {\n right: 0;\n }\n"], ["\n height: calc(100% - ", "px);\n\n & .cell {\n padding: 0 4px;\n }\n & .dataRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: normal;\n border-bottom: 1px solid;\n border-color: lightGray3;\n height: ", "px;\n }\n & .gridHead {\n height: ", "px;\n background-color: neutral20;\n padding-bottom: 8px;\n position: sticky;\n top: -1px;\n z-index: 2;\n border-top: 1px solid ", ";\n }\n & .headRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: bold;\n border-bottom: none; // TODO fix in common-grid\n\n & .cell {\n overflow: hidden;\n max-height: 32px;\n position: relative;\n }\n\n & .sticky {\n background-color: bgLightGray1;\n }\n }\n\n & .filterRow {\n & .cell {\n overflow: visible;\n }\n\n & .cell > div {\n width: 100%; // TODO fix in common-grid\n }\n\n & .sticky {\n background-color: bgLightGray1;\n }\n border-bottom: none; // TODO fix in common-grid\n }\n\n & .body {\n flex-grow: 1;\n }\n\n & .gridWrapper {\n background-color: ", ";\n width: auto;\n padding-bottom: 35px;\n\n @media (min-width: 1024px) {\n height: 100%;\n overflow-y: auto;\n padding-bottom: 0;\n }\n @media print {\n margin: 0;\n width: 100%;\n height: auto;\n overflow-x: hidden;\n }\n }\n\n & .fullWidthGrid > .gridWrapper > div {\n width: 100% !important;\n }\n\n & .paginatorWrapper,\n & .buttonsStrip {\n @media print {\n display: none;\n }\n }\n & .cell {\n padding-left: 4px;\n padding-right: 4px;\n @media print {\n white-space: unset;\n }\n }\n\n .dataRow {\n &.grayedOut {\n background: lightGray1;\n }\n\n .sticky-right,\n .sticky-left {\n background: white;\n }\n\n .sticky-right {\n border-left: 1px solid #dfe1e6;\n }\n\n .sticky-left {\n border-right: 1px solid #dfe1e6;\n }\n\n &:hover,\n &.checked,\n &.selected {\n background-color: red30;\n }\n }\n\n .dataRow:nth-child(even) {\n .sticky-left,\n .sticky-right {\n background-color: bgLightGray;\n }\n }\n\n @media print {\n .filterRow .sticky {\n display: none;\n }\n\n .headRow .sticky {\n display: none;\n }\n\n .dataRow .sticky {\n display: none;\n }\n }\n\n .resizer {\n z-index: unset;\n }\n\n // hotfix table head\n .cell .sortable {\n display: flex;\n align-items: center;\n padding-right: 2px;\n }\n\n .sticky {\n position: sticky !important;\n z-index: 1;\n }\n\n .sticky-left {\n left: 0;\n }\n\n .sticky-right {\n right: 0;\n }\n"])), function (_a) {
|
|
26
26
|
var withButtonStrip = _a.withButtonStrip;
|
|
27
27
|
return (withButtonStrip ? gridButtonStripHeight : 0);
|
|
28
28
|
}, th('fonts.primary'), gridRowHeight, function (_a) {
|
|
@@ -106,7 +106,7 @@ export type ColumnDefinition<ColumnName extends string = string> = ColumnBasePro
|
|
|
106
106
|
systemFilter?: string;
|
|
107
107
|
title?: string | JSX.Element;
|
|
108
108
|
filtering?: boolean;
|
|
109
|
-
filteringType?: 'number' | 'text' | 'date' | 'flag' | 'options';
|
|
109
|
+
filteringType?: 'number' | 'text' | 'date' | 'flag' | 'options' | 'actions';
|
|
110
110
|
disableRowTouch?: boolean;
|
|
111
111
|
filterExtraProps?: {
|
|
112
112
|
isMulti?: boolean;
|
|
@@ -164,6 +164,7 @@ export type DataCellProps<T> = {
|
|
|
164
164
|
onRowAction?: (id: string, field: string, value: any, rowData?: T) => void | Promise<any>;
|
|
165
165
|
column: ColumnDefinition;
|
|
166
166
|
children?: React.ReactNode;
|
|
167
|
+
rowIndex?: number;
|
|
167
168
|
};
|
|
168
169
|
type SingleColumnConfig = {
|
|
169
170
|
isHidden?: boolean;
|