@mailstep/design-system 0.7.47-beta.1 → 0.7.47-beta.11

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 (42) hide show
  1. package/package.json +1 -1
  2. package/ui/Blocks/CommonGrid/CommonGrid.d.ts +1 -1
  3. package/ui/Blocks/CommonGrid/CommonGrid.js +1 -1
  4. package/ui/Blocks/CommonGrid/CommonGridContainer.js +1 -1
  5. package/ui/Blocks/CommonGrid/HoC/withProps.d.ts +3 -0
  6. package/ui/Blocks/CommonGrid/HoC/withProps.js +21 -0
  7. package/ui/Blocks/CommonGrid/components/ActionHead/ActionHead.d.ts +2 -2
  8. package/ui/Blocks/CommonGrid/components/ActionHead/ActionHead.js +8 -10
  9. package/ui/Blocks/CommonGrid/components/ColumnFilterCell.d.ts +6 -2
  10. package/ui/Blocks/CommonGrid/components/ColumnFilterCell.js +2 -2
  11. package/ui/Blocks/CommonGrid/components/DataCell.d.ts +1 -0
  12. package/ui/Blocks/CommonGrid/components/DataCell.js +2 -2
  13. package/ui/Blocks/CommonGrid/components/DataRow.d.ts +2 -5
  14. package/ui/Blocks/CommonGrid/components/DataRow.js +12 -79
  15. package/ui/Blocks/CommonGrid/components/FilterRow.d.ts +2 -2
  16. package/ui/Blocks/CommonGrid/components/FilterRow.js +5 -27
  17. package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/ActionsFilter.d.ts +10 -0
  18. package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/ActionsFilter.js +14 -0
  19. package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/index.d.ts +2 -0
  20. package/ui/Blocks/CommonGrid/components/Filters/ActionsFilter/index.js +2 -0
  21. package/ui/Blocks/CommonGrid/components/HeadRow.d.ts +2 -2
  22. package/ui/Blocks/CommonGrid/components/HeadRow.js +5 -7
  23. package/ui/Blocks/CommonGrid/components/Table.d.ts +9 -0
  24. package/ui/Blocks/CommonGrid/components/gridCells/IconButtonInCell.js +4 -10
  25. package/ui/Blocks/CommonGrid/components/gridCells/RowActionsCell.d.ts +12 -5
  26. package/ui/Blocks/CommonGrid/components/gridCells/RowActionsCell.js +46 -19
  27. package/ui/Blocks/CommonGrid/hooks/useEditReadAsColumn.d.ts +1 -6
  28. package/ui/Blocks/CommonGrid/hooks/useEditReadAsColumn.js +38 -17
  29. package/ui/Blocks/CommonGrid/storybook/stories/complexWithPaginationAndRedux.stories.js +5 -4
  30. package/ui/Blocks/CommonGrid/storybook/utils/columnDefinition.js +0 -4
  31. package/ui/Blocks/CommonGrid/styles.js +1 -1
  32. package/ui/Blocks/CommonGrid/types.d.ts +2 -2
  33. package/ui/Blocks/CommonGrid/utils/index.d.ts +1 -1
  34. package/ui/Blocks/CommonGrid/utils/index.js +9 -7
  35. package/ui/Blocks/Modal/hooks/useModal.d.ts +2 -8
  36. package/ui/Blocks/Modal/hooks/useModal.js +5 -7
  37. package/ui/index.es.js +24653 -24712
  38. package/ui/index.umd.js +749 -781
  39. package/ui/Blocks/CommonGrid/components/ReadEditButtonCell/ReadEditButtonCell.d.ts +0 -6
  40. package/ui/Blocks/CommonGrid/components/ReadEditButtonCell/ReadEditButtonCell.js +0 -26
  41. package/ui/Blocks/CommonGrid/components/ReadEditButtonCell/index.d.ts +0 -2
  42. package/ui/Blocks/CommonGrid/components/ReadEditButtonCell/index.js +0 -2
@@ -1,30 +1,57 @@
1
- var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
- return cooked;
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);
4
11
  };
5
- import { jsx as _jsx } from "react/jsx-runtime";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
13
  import { useCallback, useMemo } from 'react';
7
- import styled from '@xstyled/styled-components';
14
+ import Checkbox from '../../../../Forms/Checkbox';
15
+ import { x } from '@xstyled/styled-components';
8
16
  import { isFunction } from 'lodash/fp';
9
17
  import { IconButtonInCell } from './IconButtonInCell';
10
- var Center = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n justify-content: center;\n cursor: pointer;\n width: 100%;\n\n svg {\n color: blue2;\n }\n"], ["\n display: flex;\n justify-content: center;\n cursor: pointer;\n width: 100%;\n\n svg {\n color: blue2;\n }\n"])));
11
18
  export var RowActionsCell = function (_a) {
12
- var canEdit = _a.canEdit, onClick = _a.onClick, linkTo = _a.linkTo;
19
+ var actionColumnDefinition = _a.actionColumnDefinition, rowData = _a.rowData, addRowNumbers = _a.addRowNumbers, rowIndex = _a.rowIndex, uxState = _a.uxState, withCheckboxes = _a.withCheckboxes, onUxChange = _a.onUxChange, onRowAction = _a.onRowAction;
20
+ var rowDataId = rowData === null || rowData === void 0 ? void 0 : rowData.id;
21
+ // @TODO this should be in parent component
22
+ var checkedRows = uxState === null || uxState === void 0 ? void 0 : uxState.checkedRows;
23
+ var canEdit = isFunction(actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowEdit)
24
+ ? actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowEdit(rowData)
25
+ : actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowEdit;
26
+ var canRead = isFunction(actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowRead)
27
+ ? actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowRead(rowData)
28
+ : actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowRead;
29
+ // if canEdit and canRead are both true, canEdit supersedes canRead
30
+ var onClick = useCallback(function () {
31
+ var action = canEdit ? 'row_edit' : 'row_read';
32
+ onRowAction === null || onRowAction === void 0 ? void 0 : onRowAction(rowData === null || rowData === void 0 ? void 0 : rowData.id, action, rowData);
33
+ }, [canEdit, onRowAction, rowData]);
34
+ var linkTo = useMemo(function () {
35
+ var _a;
36
+ var mode = canEdit ? 'edit' : 'read';
37
+ return (_a = actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.createLink) === null || _a === void 0 ? void 0 : _a.call(actionColumnDefinition, { mode: mode, id: rowData === null || rowData === void 0 ? void 0 : rowData.id });
38
+ }, [canEdit, rowData === null || rowData === void 0 ? void 0 : rowData.id]);
39
+ var isChecked = !!(checkedRows === null || checkedRows === void 0 ? void 0 : checkedRows[rowDataId]);
40
+ // @TODO this should be in reducer
41
+ var onCheckboxChange = useCallback(function () {
42
+ var newCheckedRows = __assign({}, (checkedRows || {}));
43
+ if (!isChecked) {
44
+ newCheckedRows[rowDataId] = true;
45
+ }
46
+ else {
47
+ delete newCheckedRows[rowDataId];
48
+ }
49
+ onUxChange === null || onUxChange === void 0 ? void 0 : onUxChange('checkedRows', newCheckedRows);
50
+ }, [onUxChange, isChecked, rowDataId, checkedRows]);
13
51
  var handleOnClick = useCallback(function () {
14
52
  if (isFunction(onClick)) {
15
53
  onClick();
16
54
  }
17
55
  }, [onClick]);
18
- var actions = useMemo(function () {
19
- var actionOptions = [];
20
- if (canEdit) {
21
- actionOptions.push(_jsx(IconButtonInCell, { icon: "pen", onClick: handleOnClick, linkTo: linkTo }, "edit"));
22
- }
23
- else {
24
- actionOptions.push(_jsx(IconButtonInCell, { icon: "chevronRight", onClick: handleOnClick, linkTo: linkTo }, "read"));
25
- }
26
- return actionOptions;
27
- }, [canEdit, handleOnClick, linkTo]);
28
- return _jsx(Center, { onClick: handleOnClick, children: actions });
56
+ return (_jsxs(x.div, { w: "100%", display: "flex", gap: "16px", pl: "8px", pr: "8px", children: [withCheckboxes && (_jsx(x.div, { w: "100%", children: _jsx(Checkbox, { checked: isChecked, onChange: onCheckboxChange, label: "" }) })), addRowNumbers && _jsx(x.div, { children: rowIndex }), canEdit && _jsx(IconButtonInCell, { icon: "pen", onClick: handleOnClick, linkTo: linkTo }, "edit"), !canEdit && canRead && _jsx(IconButtonInCell, { icon: "chevronRight", onClick: handleOnClick, linkTo: linkTo }, "read")] }));
29
57
  };
30
- var templateObject_1;
@@ -1,4 +1,4 @@
1
- import { CommonGridProps } from '../types';
1
+ import type { CommonGridProps } from '../types';
2
2
  type ExcludedProps = 'components' | 'filters' | 'onBatchAction' | 'extraControlButtons';
3
3
  type Props = Omit<CommonGridProps, ExcludedProps>;
4
4
  type UseEditReadAsColumnHook = {
@@ -6,10 +6,5 @@ type UseEditReadAsColumnHook = {
6
6
  actionColumnDefinition: CommonGridProps['actionColumnDefinition'];
7
7
  onRowAction: CommonGridProps['onRowAction'];
8
8
  };
9
- /**
10
- * Because in new design we are displaying lot of the controlls differently, including read and edit buttons in grid,
11
- * easiest way to make all the definition changes is to just overwrite the here once, instead of modifying every single grid (33 instances atm).
12
- * This will also allow to easily swap back to grid provided logic, if it becomes usable for redesigned grid or if design changes again
13
- * */
14
9
  declare const useEditReadAsColumn: (props: Props) => UseEditReadAsColumnHook;
15
10
  export default useEditReadAsColumn;
@@ -8,20 +8,22 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
8
8
  return to.concat(ar || Array.prototype.slice.call(from));
9
9
  };
10
10
  import { useCallback, useMemo } from 'react';
11
- import getReadEditButtonCell from '../components/ReadEditButtonCell';
11
+ import withProps from '../HoC/withProps';
12
+ import { RowActionsCell } from '../components/gridCells';
12
13
  import { EditReadPosition } from '../types';
13
- /**
14
- * Because in new design we are displaying lot of the controlls differently, including read and edit buttons in grid,
15
- * easiest way to make all the definition changes is to just overwrite the here once, instead of modifying every single grid (33 instances atm).
16
- * This will also allow to easily swap back to grid provided logic, if it becomes usable for redesigned grid or if design changes again
17
- * */
18
14
  var useEditReadAsColumn = function (props) {
19
- var onRowAction = props.onRowAction, actionColumnDefinition = props.actionColumnDefinition, columnsDefinitions = props.columnsDefinitions, onRowEditClick = props.onRowEditClick, onRowReadClick = props.onRowReadClick;
15
+ var _a;
16
+ var onRowAction = props.onRowAction, actionColumnDefinition = props.actionColumnDefinition, columnsDefinitions = props.columnsDefinitions, gridSelectors = props.gridSelectors, gridActions = props.gridActions, onRowEditClick = props.onRowEditClick, onRowReadClick = props.onRowReadClick;
17
+ // @TODO delete this but check actionOptions before
20
18
  var modifiedActionColumnDefinition = useMemo(function () {
21
19
  var _a;
22
20
  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)) {
23
21
  // note: this also removes actions, because we render action trigger outside the grid anyway
24
- return { flexBasis: 40, forceCheckboxes: true, addRowNumbers: actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.addRowNumbers, checkAllPosition: 'top' };
22
+ return {
23
+ flexBasis: (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.flexBasis) || 88,
24
+ forceCheckboxes: true,
25
+ addRowNumbers: actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.addRowNumbers
26
+ };
25
27
  }
26
28
  else if (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.addRowNumbers) {
27
29
  return { flexBasis: 40, addRowNumbers: true };
@@ -41,20 +43,29 @@ var useEditReadAsColumn = function (props) {
41
43
  return onRowAction(id, field, value, rowData);
42
44
  }
43
45
  }, [onRowAction, onRowEditClick, onRowReadClick]);
44
- // TODO Entire logic of row edit / row read need to be completely refactored.
45
- var CellComponent = useMemo(function () { return getReadEditButtonCell(actionColumnDefinition); }, [actionColumnDefinition]);
46
+ var canRowEdit = actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowEdit;
47
+ var canRowRead = actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowRead;
48
+ var stickTo = (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.stickTo) || 'left';
49
+ var flexBasis = (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.flexBasis) || 88;
50
+ 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);
46
51
  var modifiedColumnsDefinitions = useMemo(function () {
47
- if ((actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowEdit) !== undefined || (actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowRead) !== undefined) {
48
- var stickTo = actionColumnDefinition.stickTo || 'right';
52
+ if (canRowEdit || canRowRead || withCheckboxes) {
49
53
  var editReadColumnDefinition = {
50
54
  name: 'sticky',
51
- flexBasis: actionColumnDefinition.flexBasis || 88,
52
- filtering: false,
55
+ flexBasis: flexBasis,
56
+ filtering: withCheckboxes,
57
+ filteringType: 'actions',
53
58
  sorting: false,
54
59
  sticky: true,
55
60
  stickTo: stickTo,
56
61
  alwaysOn: true,
57
- cellComponent: CellComponent
62
+ cellComponent: withProps({
63
+ actionColumnDefinition: actionColumnDefinition,
64
+ withCheckboxes: withCheckboxes,
65
+ addRowNumbers: actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.addRowNumbers,
66
+ uxState: gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.uxState,
67
+ onUxChange: gridActions === null || gridActions === void 0 ? void 0 : gridActions.handleUxChange
68
+ })(RowActionsCell)
58
69
  };
59
70
  if (stickTo === EditReadPosition.Left) {
60
71
  return __spreadArray([editReadColumnDefinition], columnsDefinitions, true);
@@ -66,10 +77,20 @@ var useEditReadAsColumn = function (props) {
66
77
  else {
67
78
  return columnsDefinitions;
68
79
  }
69
- }, [CellComponent, actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowEdit, actionColumnDefinition === null || actionColumnDefinition === void 0 ? void 0 : actionColumnDefinition.canRowRead, columnsDefinitions]);
80
+ }, [
81
+ flexBasis,
82
+ stickTo,
83
+ canRowEdit,
84
+ canRowRead,
85
+ columnsDefinitions,
86
+ withCheckboxes,
87
+ gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.uxState,
88
+ actionColumnDefinition,
89
+ gridActions === null || gridActions === void 0 ? void 0 : gridActions.handleUxChange
90
+ ]);
70
91
  return {
71
92
  columnsDefinitions: modifiedColumnsDefinitions,
72
- actionColumnDefinition: modifiedActionColumnDefinition,
93
+ actionColumnDefinition: actionColumnDefinition,
73
94
  onRowAction: modifiedOnRowAction
74
95
  };
75
96
  };
@@ -9,10 +9,11 @@ import { columnDefinitions, enumColumn } from '../utils/columnDefinition';
9
9
  import { ReduxGrid, createRandomData, enumValues, gridDummyActions } from '../utils/utils';
10
10
  import withRedux from '../utils/withRedux';
11
11
  var ActionColumnButtons = {
12
- flexBasis: 160,
13
- canRowRead: true,
14
- stickTo: 'left',
15
- canRowEdit: function (row) { return row.enumColumn !== 'option C'; }
12
+ flexBasis: 85,
13
+ forceCheckboxes: false,
14
+ addRowNumbers: false,
15
+ canRowEdit: true,
16
+ canRowRead: true
16
17
  };
17
18
  var FilterSetter = function (_a) {
18
19
  var gridActions = _a.gridActions;
@@ -54,7 +54,6 @@ export var columnDefinitions = [
54
54
  },
55
55
  {
56
56
  name: 'dateColumn',
57
- group: 'group1',
58
57
  title: 'Date Column',
59
58
  flexBasis: 160,
60
59
  filtering: true,
@@ -66,7 +65,6 @@ export var columnDefinitions = [
66
65
  },
67
66
  {
68
67
  name: 'boolColumn',
69
- group: 'group1',
70
68
  title: 'Bool Column',
71
69
  flexBasis: 160,
72
70
  filtering: true,
@@ -78,7 +76,6 @@ export var columnDefinitions = [
78
76
  },
79
77
  {
80
78
  name: 'advancedColumn',
81
- group: 'group2',
82
79
  title: 'Advanced Column',
83
80
  flexBasis: 160,
84
81
  formatRowValue: function (row) {
@@ -87,7 +84,6 @@ export var columnDefinitions = [
87
84
  },
88
85
  {
89
86
  name: 'complexColumn',
90
- group: 'group2',
91
87
  title: 'Complex Column',
92
88
  flexBasis: 350,
93
89
  cellComponent: ComplexCell,
@@ -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 padding-left: 12px;\n border-top: 1px solid ", ";\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\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 padding-left: 12px;\n\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\n\n &.grayedOut {\n background: lightGray1;\n }\n\n .sticky-right,\n .sticky-left {\n background: white;\n z-index: 1;\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 max-width: 88px;\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 padding-left: 12px;\n border-top: 1px solid ", ";\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\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 padding-left: 12px;\n\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\n\n &.grayedOut {\n background: lightGray1;\n }\n\n .sticky-right,\n .sticky-left {\n background: white;\n z-index: 1;\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 max-width: 88px;\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: 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 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) {
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;
@@ -148,7 +148,6 @@ export type ActionColumn = ColumnBaseProps & {
148
148
  canRowRead?: boolean | ((row: any) => boolean);
149
149
  createLink?: (params?: object) => string;
150
150
  forceCheckboxes?: boolean;
151
- checkAllPosition?: 'top' | 'bottom';
152
151
  stickTo?: StickTo;
153
152
  addRowNumbers?: boolean;
154
153
  addRowNumbersLabel?: string;
@@ -165,6 +164,7 @@ export type DataCellProps<T> = {
165
164
  onRowAction?: (id: string, field: string, value: any, rowData?: T) => void | Promise<any>;
166
165
  column: ColumnDefinition;
167
166
  children?: React.ReactNode;
167
+ rowIndex: number;
168
168
  };
169
169
  type SingleColumnConfig = {
170
170
  isHidden?: boolean;
@@ -1,4 +1,4 @@
1
- import { ColumnDefinition, ActionColumn, ColumnConfig, FilterProps, Group, StickTo, FiltersConfig } from '../types';
1
+ import type { ColumnDefinition, ActionColumn, ColumnConfig, FilterProps, Group, StickTo, FiltersConfig } from '../types';
2
2
  export declare const getActionCellSizeProps: (column: ActionColumn) => object;
3
3
  export declare const getCellSizeProps: (column: ColumnDefinition, columnWidth: number) => object;
4
4
  export declare const getSortName: (column: ColumnDefinition) => string;
@@ -1,14 +1,15 @@
1
- import NumberRange from '../components/Filters/NumberRange';
2
- import TextRange from '../components/Filters/TextRange';
3
- import DatePickerRange from '../components/Filters/DatePickerRange';
1
+ import ActionsFilter from '../components/Filters/ActionsFilter';
4
2
  import BooleanSelect from '../components/Filters/BooleanSelect';
3
+ import DatePickerRange from '../components/Filters/DatePickerRange';
5
4
  import GridSelect from '../components/Filters/GridSelect';
5
+ import NumberRange from '../components/Filters/NumberRange';
6
+ import TextRange from '../components/Filters/TextRange';
6
7
  var isDefined = function (val) { return typeof val !== 'undefined'; };
7
8
  export var getActionCellSizeProps = function (column) {
8
9
  return {
9
10
  flexBasis: column.flexBasis,
10
11
  flexGrow: 0,
11
- flexShrink: 0,
12
+ flexShrink: 0
12
13
  };
13
14
  };
14
15
  export var getCellSizeProps = function (column, columnWidth) {
@@ -19,7 +20,7 @@ export var getCellSizeProps = function (column, columnWidth) {
19
20
  flexBasis: columnWidth,
20
21
  flexGrow: fixedSize ? 0 : isDefined(flexGrow) ? flexGrow : 1,
21
22
  flexShrink: isDefined(flexShrink) ? flexShrink : 1,
22
- maxWidth: sticky ? columnWidth : 'auto',
23
+ maxWidth: sticky ? columnWidth : 'auto'
23
24
  };
24
25
  };
25
26
  export var getSortName = function (column) {
@@ -42,7 +43,7 @@ export var isColumnOn = function (column, columnConfig) {
42
43
  };
43
44
  export var calculatePaginator = function (page, rowsPerPage) { return ({
44
45
  offset: rowsPerPage ? rowsPerPage * (page - 1) : rowsPerPage,
45
- limit: rowsPerPage,
46
+ limit: rowsPerPage
46
47
  }); };
47
48
  export var createFilterType = function (columnDefinition) {
48
49
  if (columnDefinition.filterOptions)
@@ -56,7 +57,7 @@ export var getGroups = function (columns) {
56
57
  return {
57
58
  name: column.group,
58
59
  start: !!(column.group && (!previousGroup || (previousGroup && previousGroup !== column.group))),
59
- end: !!(column.group && (!columns[key + 1] || columns[key + 1].group !== column.group)),
60
+ end: !!(column.group && (!columns[key + 1] || columns[key + 1].group !== column.group))
60
61
  };
61
62
  });
62
63
  };
@@ -73,6 +74,7 @@ export var getFilters = function (optimizeFilters) {
73
74
  date: { CellComponent: DatePickerRange },
74
75
  flag: { CellComponent: BooleanSelect },
75
76
  options: { CellComponent: GridSelect },
77
+ actions: { CellComponent: ActionsFilter }
76
78
  };
77
79
  if (optimizeFilters) {
78
80
  filters.text.defaultExtraProps = { defaultComparator: 'eq' };
@@ -1,8 +1,2 @@
1
- import type { ControlProps, ModalData } from '../types';
2
- type UseModalProps = {
3
- initialIsOpen?: boolean;
4
- onCloseModal?: () => void;
5
- };
6
- /** @TODO This breaking change has to be fixed in WHM */
7
- export declare const useModal: <TData = ModalData>(props?: UseModalProps) => ControlProps<TData>;
8
- export {};
1
+ import { ControlProps, ModalData } from '../types';
2
+ export declare const useModal: <TData = ModalData>(initialState?: boolean) => ControlProps<TData>;
@@ -1,14 +1,12 @@
1
1
  import { useCallback, useState } from 'react';
2
- /** @TODO This breaking change has to be fixed in WHM */
3
- export var useModal = function (props) {
4
- var _a = props || {}, _b = _a.initialIsOpen, initialIsOpen = _b === void 0 ? false : _b, onCloseModal = _a.onCloseModal;
5
- var _c = useState(initialIsOpen), isOpen = _c[0], setIsOpen = _c[1];
6
- var _d = useState(), data = _d[0], setData = _d[1];
2
+ export var useModal = function (initialState) {
3
+ if (initialState === void 0) { initialState = false; }
4
+ var _a = useState(initialState), isOpen = _a[0], setIsOpen = _a[1];
5
+ var _b = useState(), data = _b[0], setData = _b[1];
7
6
  var onClose = useCallback(function () {
8
7
  setIsOpen(false);
9
8
  setData(undefined);
10
- onCloseModal === null || onCloseModal === void 0 ? void 0 : onCloseModal();
11
- }, [onCloseModal]);
9
+ }, []);
12
10
  var onOpen = useCallback(function (data) {
13
11
  data && setData(data);
14
12
  setIsOpen(true);