@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.
Files changed (36) hide show
  1. package/package.json +1 -1
  2. package/ui/Blocks/CommonGrid/CommonGrid.d.ts +2 -2
  3. package/ui/Blocks/CommonGrid/CommonGrid.js +2 -3
  4. package/ui/Blocks/CommonGrid/components/ColumnFilterCell.d.ts +6 -2
  5. package/ui/Blocks/CommonGrid/components/ColumnFilterCell.js +2 -2
  6. package/ui/Blocks/CommonGrid/components/DataCell.d.ts +1 -0
  7. package/ui/Blocks/CommonGrid/components/DataCell.js +2 -2
  8. package/ui/Blocks/CommonGrid/components/DataRow.d.ts +2 -3
  9. package/ui/Blocks/CommonGrid/components/DataRow.js +4 -21
  10. package/ui/Blocks/CommonGrid/components/FilterRow.d.ts +1 -1
  11. package/ui/Blocks/CommonGrid/components/FilterRow.js +5 -29
  12. package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/ActionsFilter.d.ts +10 -0
  13. package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/ActionsFilter.js +14 -0
  14. package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/index.d.ts +2 -0
  15. package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/index.js +2 -0
  16. package/ui/Blocks/CommonGrid/components/GroupRow.d.ts +1 -1
  17. package/ui/Blocks/CommonGrid/components/GroupRow.js +2 -4
  18. package/ui/Blocks/CommonGrid/components/HeadRow.js +3 -3
  19. package/ui/Blocks/CommonGrid/components/gridCells/Date.js +1 -1
  20. package/ui/Blocks/CommonGrid/components/gridCells/DateTime.js +1 -1
  21. package/ui/Blocks/CommonGrid/components/gridCells/EnumInCell.js +1 -1
  22. package/ui/Blocks/CommonGrid/components/gridCells/RowActionsCell.d.ts +3 -1
  23. package/ui/Blocks/CommonGrid/components/gridCells/RowActionsCell.js +2 -5
  24. package/ui/Blocks/CommonGrid/components/gridCells/StringJoin.js +1 -1
  25. package/ui/Blocks/CommonGrid/hooks/useEditReadAsColumn.d.ts +0 -1
  26. package/ui/Blocks/CommonGrid/hooks/useEditReadAsColumn.js +9 -26
  27. package/ui/Blocks/CommonGrid/hooks/useToggleAllCheckbox.d.ts +2 -2
  28. package/ui/Blocks/CommonGrid/hooks/useToggleAllCheckbox.js +3 -3
  29. package/ui/Blocks/CommonGrid/storybook/stories/complexWithPaginationAndRedux.stories.js +4 -1
  30. package/ui/Blocks/CommonGrid/styles.d.ts +1 -1
  31. package/ui/Blocks/CommonGrid/styles.js +2 -2
  32. package/ui/Blocks/CommonGrid/types.d.ts +2 -1
  33. package/ui/Blocks/CommonGrid/utils/index.d.ts +1 -2
  34. package/ui/Blocks/CommonGrid/utils/index.js +12 -15
  35. package/ui/index.es.js +21571 -21582
  36. package/ui/index.umd.js +708 -702
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mailstep/design-system",
3
- "version": "0.7.47-beta.9",
3
+ "version": "0.7.47",
4
4
  "license": "ISC",
5
5
  "type": "module",
6
6
  "main": "./ui/index.js",
@@ -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, onRowEditClick, onRowReadClick, onRowClick, columnLayout, displayColumnsDefinitions, className, minColumnWidth, errorMessage, floatingButtonProps, hasGroups, hasFilters }: Props) => JSX.Element;
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, onRowEditClick = _a.onRowEditClick, onRowReadClick = _a.onRowReadClick, 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;
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, actionColumn: actionColumnDefinition, displayColumnsWidth: displayColumnsWidth, groups: groups }, row.id));
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, ActionColumn, RowProps, UxState, GridSelectorsType, Group } from '../types';
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, actionColumn, rowData, rowIndex, uxState, allowRowSelect, allowRowSelectOnAction, onUxChange, onRowClick, onRowAction, displayColumnsWidth, groups, isEven }: DataRowProps) => JSX.Element;
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
- var __assign = (this && this.__assign) || function () {
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 { Cell, StyledDataRow } from './Table';
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, actionColumn = _a.actionColumn, 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;
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
- // @TODO remove this
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
- var __assign = (this && this.__assign) || function () {
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, 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, Cell } from './Table';
6
+ import { Row } from './Table';
21
7
  var FilterRow = function (_a) {
22
- var _b, _c;
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
- var actionColumnStyle = React.useMemo(function () {
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;
@@ -0,0 +1,2 @@
1
+ import ActionsFilter from './ActionsFilter';
2
+ export default ActionsFilter;
@@ -0,0 +1,2 @@
1
+ import ActionsFilter from './ActionsFilter';
2
+ export default ActionsFilter;
@@ -1,4 +1,4 @@
1
- import { ActionColumn, Group, ColumnDefinition, GridSelectorsType } from '../types';
1
+ import type { ActionColumn, Group, ColumnDefinition, GridSelectorsType } from '../types';
2
2
  type GroupRowProps = {
3
3
  groups: Group[];
4
4
  actionColumn?: ActionColumn;
@@ -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 React from 'react';
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
- var actionColumnStyle = React.useMemo(function () { return (actionColumn ? __assign({}, getActionCellSizeProps(actionColumn)) : {}); }, [actionColumn]);
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, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
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 { getActionCellSizeProps, getCellSizeProps, getGroupClassNames, getSortName, getStickyCollClassNames } from '../utils';
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: [(actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.addRowNumbers) && (_jsx(_Fragment, { children: _jsx(Cell, { className: "cell", style: Object.assign(__assign({}, getActionCellSizeProps(actionColumn))) }) })), getStickyComponent(columns, 'left', displayColumnsWidth), columns
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", { className: "cell", children: DateTime.fromISO(value).toFormat('dd. MM. yyyy') }) : null;
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", { className: "cell", children: DateTime.fromISO(value).toFormat(dateTimeFormat) }) : null;
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({ className: "cell" }, coloringProp, { size: size, prefix: "grid", children: finalLabel })) }));
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
- uxState?: UxState;
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, uxState = _a.uxState, withCheckboxes = _a.withCheckboxes, onUxChange = _a.onUxChange, onRowAction = _a.onRowAction;
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", alignItems: "center", gap: "16px", children: [withCheckboxes && (_jsx(x.div, { w: "100%", h: "100%", display: "flex", children: _jsx(Checkbox, { checked: isChecked, onChange: onCheckboxChange, label: "" }) })), canEdit && _jsx(IconButtonInCell, { icon: "pen", onClick: handleOnClick, linkTo: linkTo }, "edit"), !canEdit && canRead && _jsx(IconButtonInCell, { icon: "chevronRight", onClick: handleOnClick, linkTo: linkTo }, "read")] }));
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", { className: "cell", children: values.join(', ') }) : null;
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 canRowEdit = (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowEdit) !== undefined;
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
- if (canRowEdit || canRowRead || withCheckboxes) {
31
+ var _a;
32
+ if (canRowEdit || canRowRead || withCheckboxes || addRowNumbers) {
52
33
  var editReadColumnDefinition = {
53
- name: 'sticky',
34
+ name: 'actions',
54
35
  flexBasis: flexBasis,
55
- filtering: false,
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
- uxState: gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.uxState,
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: RowProps[], uxState: UxState, handleUxChange?: GridActionsType['handleUxChange']) => ToggleAllCheckboxRet;
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 && handleUxChange('checkedRows', checkedRows);
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, onRowEditClick, onRowReadClick, onRowClick, columnLayout, displayColumnsDefinitions, className, minColumnWidth, errorMessage, floatingButtonProps, hasGroups, hasFilters }: import("./types").CommonGridProps & {
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 margin: 0 1px 1px 1px; // matching margin with .gridHead\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: 2px;\n padding-right: 2px;\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\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 margin: 0 1px 1px 1px; // matching margin with .gridHead\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: 2px;\n padding-right: 2px;\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\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) {
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;