@mailstep/design-system 0.8.15 → 0.8.16-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/ui/Blocks/CommonGrid/CommonGridContainer.js +9 -3
- package/ui/Blocks/CommonGrid/HoC/withReduxActions.js +1 -0
- package/ui/Blocks/CommonGrid/components/ControlButtons/ControlButtons.d.ts +3 -0
- package/ui/Blocks/CommonGrid/components/ControlButtons/ControlButtons.js +16 -8
- package/ui/Blocks/CommonGrid/components/ExtraControlButtons/ExtraControlButtons.d.ts +2 -1
- package/ui/Blocks/CommonGrid/components/ExtraControlButtons/ExtraControlButtons.js +30 -10
- package/ui/Blocks/CommonGrid/components/Filters/DatePickerRange/DatePickerRange.d.ts +1 -0
- package/ui/Blocks/CommonGrid/components/Filters/DatePickerRange/DatePickerRange.js +17 -5
- package/ui/Blocks/CommonGrid/components/GridInfo/index.js +3 -1
- package/ui/Blocks/CommonGrid/components/MobileFilterModal.d.ts +20 -0
- package/ui/Blocks/CommonGrid/components/MobileFilterModal.js +69 -0
- package/ui/Blocks/CommonGrid/components/MobileOverlayWrapper.d.ts +1 -0
- package/ui/Blocks/CommonGrid/components/MobileOverlayWrapper.js +7 -0
- package/ui/Blocks/CommonGrid/components/MobileSortModal.d.ts +13 -0
- package/ui/Blocks/CommonGrid/components/MobileSortModal.js +34 -0
- package/ui/Blocks/CommonGrid/components/QuickFilter/QuickFilter.d.ts +1 -1
- package/ui/Blocks/CommonGrid/components/QuickFilter/QuickFilter.js +2 -2
- package/ui/Blocks/CommonGrid/store/index.d.ts +4 -6
- package/ui/Blocks/CommonGrid/store/index.js +9 -2
- package/ui/Blocks/CommonGrid/storybook/stories/complexWithPaginationAndRedux.stories.d.ts +30 -0
- package/ui/Blocks/CommonGrid/storybook/stories/complexWithPaginationAndRedux.stories.js +59 -9
- package/ui/Blocks/CommonGrid/storybook/utils/columnDefinition.d.ts +2 -0
- package/ui/Blocks/CommonGrid/storybook/utils/columnDefinition.js +19 -9
- package/ui/Blocks/CommonGrid/styles.d.ts +1 -0
- package/ui/Blocks/CommonGrid/styles.js +6 -3
- package/ui/Blocks/CommonGrid/types.d.ts +1 -0
- package/ui/Blocks/CommonGrid/utils/index.d.ts +2 -0
- package/ui/Blocks/CommonGrid/utils/index.js +10 -0
- package/ui/Elements/DropdownMenu/components/MenuItem.js +1 -1
- package/ui/Elements/Icon/icons/Filter.d.ts +4 -0
- package/ui/Elements/Icon/icons/Filter.js +13 -0
- package/ui/Elements/Icon/icons/Sort.d.ts +4 -0
- package/ui/Elements/Icon/icons/Sort.js +13 -0
- package/ui/Elements/Icon/icons/index.d.ts +2 -0
- package/ui/Elements/Icon/icons/index.js +2 -0
- package/ui/index.es.js +15226 -15032
- package/ui/index.umd.js +500 -462
- package/ui/utils/translations.js +1 -1
|
@@ -5,16 +5,9 @@ import withReduxActions from '../../HoC/withReduxActions';
|
|
|
5
5
|
import { useAddFilter } from '../../hooks/useAddFilter';
|
|
6
6
|
import { ExtraControlButtonPosition } from '../../types';
|
|
7
7
|
import { onRowEditClick, onRowReadClick, onRowAction, onRowClick, onBatchAction } from '../utils/actions';
|
|
8
|
-
import { columnDefinitions, enumColumn } from '../utils/columnDefinition';
|
|
8
|
+
import { columnDefinitions, enumColumn, columnDefinitionsWithSticky } from '../utils/columnDefinition';
|
|
9
9
|
import { ReduxGrid, createRandomData, enumValues, gridDummyActions, onAsyncLoadFilterOptions } from '../utils/utils';
|
|
10
10
|
import withRedux from '../utils/withRedux';
|
|
11
|
-
var ActionColumnButtons = {
|
|
12
|
-
flexBasis: 80,
|
|
13
|
-
forceCheckboxes: true,
|
|
14
|
-
addRowNumbers: false,
|
|
15
|
-
canRowEdit: true,
|
|
16
|
-
canRowRead: false
|
|
17
|
-
};
|
|
18
11
|
var FilterSetter = function (_a) {
|
|
19
12
|
var gridActions = _a.gridActions;
|
|
20
13
|
var handleAddFilter = useAddFilter(gridActions === null || gridActions === void 0 ? void 0 : gridActions.addFilter);
|
|
@@ -30,6 +23,29 @@ var extraControlButtons = [
|
|
|
30
23
|
position: ExtraControlButtonPosition.TopRight,
|
|
31
24
|
label: 'Create',
|
|
32
25
|
onClick: alert
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
position: ExtraControlButtonPosition.TopRight,
|
|
29
|
+
label: 'Print',
|
|
30
|
+
onSelect: function (value) {
|
|
31
|
+
console.log(value);
|
|
32
|
+
},
|
|
33
|
+
options: [
|
|
34
|
+
{ label: 'CSV', value: 'CSV' },
|
|
35
|
+
{ label: 'ODS', value: 'ODS' },
|
|
36
|
+
{ label: 'XLSX', value: 'XLSX' }
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
position: ExtraControlButtonPosition.TopRight,
|
|
41
|
+
label: 'Allocate',
|
|
42
|
+
onSelect: function (value) {
|
|
43
|
+
console.log(value);
|
|
44
|
+
},
|
|
45
|
+
options: [
|
|
46
|
+
{ label: 'Allocate all', value: 'all' },
|
|
47
|
+
{ label: 'Allocate selected', value: 'selected' }
|
|
48
|
+
]
|
|
33
49
|
}
|
|
34
50
|
];
|
|
35
51
|
var comparators = {
|
|
@@ -47,7 +63,41 @@ export default {
|
|
|
47
63
|
title: 'Blocks/CommonGrid',
|
|
48
64
|
decorators: [withRedux]
|
|
49
65
|
};
|
|
50
|
-
export var ComplexWithPaginationAndRedux = function () { return (_jsxs(LinguiContainer, { children: [_jsx(ConnectedFilterSetter, { gridActions: gridDummyActions }), _jsx(ReduxGrid, { columnsDefinitions: columnDefinitions,
|
|
66
|
+
export var ComplexWithPaginationAndRedux = function () { return (_jsxs(LinguiContainer, { children: [_jsx(ConnectedFilterSetter, { gridActions: gridDummyActions }), _jsx(ReduxGrid, { columnsDefinitions: columnDefinitions, rowsData: createRandomData(10), onRowAction: onRowAction, onRowClick: onRowClick, onRowReadClick: onRowReadClick, onRowEditClick: onRowEditClick, totalRowsCount: 200, onBatchAction: onBatchAction, getRowsPerPage: getRowsPerPage, onAsyncLoadFilterOptions: onAsyncLoadFilterOptions, quickFilter: "textColumn", extraControlButtons: extraControlButtons, comparators: comparators, gridName: "gridName" })] })); };
|
|
51
67
|
ComplexWithPaginationAndRedux.story = {
|
|
52
68
|
name: 'Complex, with pagination and redux'
|
|
53
69
|
};
|
|
70
|
+
export var ComplexWithReload = function () { return (_jsxs(LinguiContainer, { children: [_jsx(ConnectedFilterSetter, { gridActions: gridDummyActions }), _jsx(ReduxGrid, { columnsDefinitions: columnDefinitions, rowsData: createRandomData(10), onRowAction: onRowAction, onRowClick: onRowClick, onRowReadClick: onRowReadClick, onRowEditClick: onRowEditClick, totalRowsCount: 200, onBatchAction: onBatchAction, getRowsPerPage: getRowsPerPage, onAsyncLoadFilterOptions: onAsyncLoadFilterOptions, quickFilter: "textColumn", extraControlButtons: extraControlButtons, comparators: comparators, gridName: "gridName", onReload: function () {
|
|
71
|
+
console.log('reload');
|
|
72
|
+
} })] })); };
|
|
73
|
+
ComplexWithReload.story = {
|
|
74
|
+
name: 'Complex, with reload button'
|
|
75
|
+
};
|
|
76
|
+
export var ComplexWithTooManyResults = function () { return (_jsxs(LinguiContainer, { children: [_jsx(ConnectedFilterSetter, { gridActions: gridDummyActions }), _jsx(ReduxGrid, { columnsDefinitions: columnDefinitions, rowsData: createRandomData(10), onRowAction: onRowAction, onRowClick: onRowClick, onRowReadClick: onRowReadClick, onRowEditClick: onRowEditClick, totalRowsCount: 200, onBatchAction: onBatchAction, getRowsPerPage: getRowsPerPage, onAsyncLoadFilterOptions: onAsyncLoadFilterOptions, quickFilter: "textColumn", extraControlButtons: extraControlButtons, comparators: comparators, gridName: "gridName", allowSortingOnlyUnderTotalRows: [10, 10] })] })); };
|
|
77
|
+
ComplexWithTooManyResults.story = {
|
|
78
|
+
name: 'Complex, with too many results'
|
|
79
|
+
};
|
|
80
|
+
export var ComplexWithCheckbox = function () { return (_jsxs(LinguiContainer, { children: [_jsx(ConnectedFilterSetter, { gridActions: gridDummyActions }), _jsx(ReduxGrid, { columnsDefinitions: columnDefinitions, rowsData: createRandomData(10), onRowAction: onRowAction, onRowClick: onRowClick, onRowReadClick: onRowReadClick, onRowEditClick: onRowEditClick, totalRowsCount: 200, onBatchAction: onBatchAction, getRowsPerPage: getRowsPerPage, onAsyncLoadFilterOptions: onAsyncLoadFilterOptions, quickFilter: "textColumn", extraControlButtons: extraControlButtons, comparators: comparators, gridName: "gridName", actionColumnDefinition: {
|
|
81
|
+
flexBasis: 40,
|
|
82
|
+
forceCheckboxes: true,
|
|
83
|
+
addRowNumbers: false,
|
|
84
|
+
canRowEdit: false,
|
|
85
|
+
canRowRead: false
|
|
86
|
+
} })] })); };
|
|
87
|
+
ComplexWithCheckbox.story = {
|
|
88
|
+
name: 'Complex, with checkbox'
|
|
89
|
+
};
|
|
90
|
+
export var ComplexWithEditButton = function () { return (_jsxs(LinguiContainer, { children: [_jsx(ConnectedFilterSetter, { gridActions: gridDummyActions }), _jsx(ReduxGrid, { columnsDefinitions: columnDefinitions, rowsData: createRandomData(10), onRowAction: onRowAction, onRowClick: onRowClick, onRowReadClick: onRowReadClick, onRowEditClick: onRowEditClick, totalRowsCount: 200, onBatchAction: onBatchAction, getRowsPerPage: getRowsPerPage, onAsyncLoadFilterOptions: onAsyncLoadFilterOptions, quickFilter: "textColumn", extraControlButtons: extraControlButtons, comparators: comparators, gridName: "gridName", actionColumnDefinition: {
|
|
91
|
+
flexBasis: 70,
|
|
92
|
+
forceCheckboxes: true,
|
|
93
|
+
addRowNumbers: false,
|
|
94
|
+
canRowEdit: true,
|
|
95
|
+
canRowRead: false
|
|
96
|
+
} })] })); };
|
|
97
|
+
ComplexWithEditButton.story = {
|
|
98
|
+
name: 'Complex, with edit button'
|
|
99
|
+
};
|
|
100
|
+
export var ComplexWithStickyColumn = function () { return (_jsxs(LinguiContainer, { children: [_jsx(ConnectedFilterSetter, { gridActions: gridDummyActions }), _jsx(ReduxGrid, { columnsDefinitions: columnDefinitionsWithSticky, rowsData: createRandomData(10), onRowAction: onRowAction, onRowClick: onRowClick, onRowReadClick: onRowReadClick, onRowEditClick: onRowEditClick, totalRowsCount: 200, onBatchAction: onBatchAction, getRowsPerPage: getRowsPerPage, onAsyncLoadFilterOptions: onAsyncLoadFilterOptions, quickFilter: "textColumn", extraControlButtons: extraControlButtons, comparators: comparators, gridName: "gridNameSticky" })] })); };
|
|
101
|
+
ComplexWithStickyColumn.story = {
|
|
102
|
+
name: 'Complex, with sticky column'
|
|
103
|
+
};
|
|
@@ -8,3 +8,5 @@ export declare const oversizedColumnDefinition: {
|
|
|
8
8
|
}[];
|
|
9
9
|
export declare const enumColumn: ColumnDefinition;
|
|
10
10
|
export declare const columnDefinitions: ColumnDefinition[];
|
|
11
|
+
export declare const stickyColumn: ColumnDefinition;
|
|
12
|
+
export declare const columnDefinitionsWithSticky: ColumnDefinition[];
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
2
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
3
|
+
if (ar || !(i in from)) {
|
|
4
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
5
|
+
ar[i] = from[i];
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
9
|
+
};
|
|
1
10
|
import { ComplexCell } from '../components/ComplexCell';
|
|
2
11
|
import { EnumCellExample } from '../components/EnumCellExample';
|
|
3
12
|
import { enumValues } from './utils';
|
|
@@ -101,18 +110,19 @@ export var columnDefinitions = [
|
|
|
101
110
|
flexBasis: 350,
|
|
102
111
|
cellComponent: ComplexCell
|
|
103
112
|
},
|
|
104
|
-
{
|
|
105
|
-
name: 'stickyColumn',
|
|
106
|
-
title: 'Sticky Column',
|
|
107
|
-
flexBasis: 160,
|
|
108
|
-
alwaysOn: true,
|
|
109
|
-
sticky: true,
|
|
110
|
-
stickTo: 'right'
|
|
111
|
-
},
|
|
112
113
|
{
|
|
113
114
|
name: 'alwaysOffColumn',
|
|
114
115
|
title: 'Always Off Column',
|
|
115
116
|
flexBasis: 0,
|
|
116
|
-
alwaysOff: true
|
|
117
|
+
alwaysOff: true
|
|
117
118
|
}
|
|
118
119
|
];
|
|
120
|
+
export var stickyColumn = {
|
|
121
|
+
name: 'stickyColumn',
|
|
122
|
+
title: 'Sticky Column',
|
|
123
|
+
flexBasis: 160,
|
|
124
|
+
alwaysOn: true,
|
|
125
|
+
sticky: true,
|
|
126
|
+
stickTo: 'right'
|
|
127
|
+
};
|
|
128
|
+
export var columnDefinitionsWithSticky = __spreadArray(__spreadArray([], columnDefinitions, true), [stickyColumn], false);
|
|
@@ -21,14 +21,17 @@ export var CommonGridWrap = styled(x.div)(templateObject_3 || (templateObject_3
|
|
|
21
21
|
var withPagination = _a.withPagination;
|
|
22
22
|
return (withPagination ? gridFooterHeight : 0);
|
|
23
23
|
});
|
|
24
|
-
export var StyledButtonStrip = styled(x.div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: relative;\n
|
|
25
|
-
export var CommonGridWithStyles = styled(CommonGrid)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n height: calc(100% - ", "px);\n\n & .cell {\n padding: 0 4px;\n }\n & .dataRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: normal;\n border-bottom: 1px solid;\n border-color: lightGray3;\n height: ", "px;\n }\n & .gridHead {\n height: ", "px;\n background-color: neutral20;\n padding-bottom: 8px;\n position: sticky;\n top: -1px;\n z-index: 2;\n border-top: 1px solid ", ";\n }\n & .headRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: bold;\n border-bottom: none; // TODO fix in common-grid\n\n & .cell {\n overflow: hidden;\n max-height: 32px;\n position: relative;\n }\n\n & .sticky {\n background-color: bgLightGray1;\n }\n }\n\n & .filterRow {\n & .cell {\n overflow: visible;\n }\n\n & .cell > div {\n width: 100%; // TODO fix in common-grid\n }\n\n & .sticky {\n background-color: bgLightGray1;\n }\n border-bottom: none; // TODO fix in common-grid\n }\n\n & .body {\n flex-grow: 1;\n }\n\n & .gridWrapper {\n background-color: ", ";\n width: auto;\n padding-bottom: 35px;\n\n @media (min-width: 1024px) {\n height: 100%;\n overflow-y: auto;\n padding-bottom: 0;\n }\n @media print {\n margin: 0;\n width: 100%;\n height: auto;\n overflow-x: hidden;\n }\n }\n\n & .fullWidthGrid > .gridWrapper > div {\n width: 100% !important;\n }\n\n & .paginatorWrapper,\n & .buttonsStrip {\n @media print {\n display: none;\n }\n }\n & .cell {\n padding-left: 4px;\n padding-right: 4px;\n @media print {\n white-space: unset;\n }\n }\n\n .dataRow {\n &.grayedOut {\n background: lightGray1;\n }\n\n .sticky-right,\n .sticky-left {\n background: white;\n }\n\n .sticky-right {\n border-left: 1px solid #dfe1e6;\n }\n\n .sticky-left {\n border-right: 1px solid #dfe1e6;\n }\n\n &:hover,\n &.checked,\n &.selected {\n background-color: red30;\n }\n }\n\n .dataRow:nth-child(even) {\n .sticky-left,\n .sticky-right {\n background-color: bgLightGray;\n }\n }\n\n @media print {\n .filterRow .sticky {\n display: none;\n }\n\n .headRow .sticky {\n display: none;\n }\n\n .dataRow .sticky {\n display: none;\n }\n }\n\n .resizer {\n z-index: unset;\n }\n\n // hotfix table head\n .cell .sortable {\n display: flex;\n align-items: center;\n padding-right: 2px;\n }\n\n .sticky {\n position: sticky !important;\n z-index: 1;\n }\n\n .sticky-left {\n left: 0;\n }\n\n .sticky-right {\n right: 0;\n }\n"], ["\n height: calc(100% - ", "px);\n\n & .cell {\n padding: 0 4px;\n }\n & .dataRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: normal;\n border-bottom: 1px solid;\n border-color: lightGray3;\n height: ", "px;\n }\n & .gridHead {\n height: ", "px;\n background-color: neutral20;\n padding-bottom: 8px;\n position: sticky;\n top: -1px;\n z-index: 2;\n border-top: 1px solid ", ";\n }\n & .headRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: bold;\n border-bottom: none; // TODO fix in common-grid\n\n & .cell {\n overflow: hidden;\n max-height: 32px;\n position: relative;\n }\n\n & .sticky {\n background-color: bgLightGray1;\n }\n }\n\n & .filterRow {\n & .cell {\n overflow: visible;\n }\n\n & .cell > div {\n width: 100%; // TODO fix in common-grid\n }\n\n & .sticky {\n background-color: bgLightGray1;\n }\n border-bottom: none; // TODO fix in common-grid\n }\n\n & .body {\n flex-grow: 1;\n }\n\n & .gridWrapper {\n background-color: ", ";\n width: auto;\n padding-bottom: 35px;\n\n @media (min-width: 1024px) {\n height: 100%;\n overflow-y: auto;\n padding-bottom: 0;\n }\n @media print {\n margin: 0;\n width: 100%;\n height: auto;\n overflow-x: hidden;\n }\n }\n\n & .fullWidthGrid > .gridWrapper > div {\n width: 100% !important;\n }\n\n & .paginatorWrapper,\n & .buttonsStrip {\n @media print {\n display: none;\n }\n }\n & .cell {\n padding-left: 4px;\n padding-right: 4px;\n @media print {\n white-space: unset;\n }\n }\n\n .dataRow {\n &.grayedOut {\n background: lightGray1;\n }\n\n .sticky-right,\n .sticky-left {\n background: white;\n }\n\n .sticky-right {\n border-left: 1px solid #dfe1e6;\n }\n\n .sticky-left {\n border-right: 1px solid #dfe1e6;\n }\n\n &:hover,\n &.checked,\n &.selected {\n background-color: red30;\n }\n }\n\n .dataRow:nth-child(even) {\n .sticky-left,\n .sticky-right {\n background-color: bgLightGray;\n }\n }\n\n @media print {\n .filterRow .sticky {\n display: none;\n }\n\n .headRow .sticky {\n display: none;\n }\n\n .dataRow .sticky {\n display: none;\n }\n }\n\n .resizer {\n z-index: unset;\n }\n\n // hotfix table head\n .cell .sortable {\n display: flex;\n align-items: center;\n padding-right: 2px;\n }\n\n .sticky {\n position: sticky !important;\n z-index: 1;\n }\n\n .sticky-left {\n left: 0;\n }\n\n .sticky-right {\n right: 0;\n }\n"])), function (_a) {
|
|
24
|
+
export var StyledButtonStrip = styled(x.div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: relative;\n display: flex;\n justify-content: space-between;\n width: 100%;\n min-height: auto;\n padding: 10px;\n flex-wrap: wrap;\n z-index: 3;\n\n @media (min-width: 768px) {\n min-height: ", "px;\n padding: 18px 20px;\n }\n"], ["\n position: relative;\n display: flex;\n justify-content: space-between;\n width: 100%;\n min-height: auto;\n padding: 10px;\n flex-wrap: wrap;\n z-index: 3;\n\n @media (min-width: 768px) {\n min-height: ", "px;\n padding: 18px 20px;\n }\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\n & .filterRow {\n display: none;\n }\n\n @media (min-width: 1023px) {\n & .gridHead {\n height: ", "px;\n }\n & .filterRow {\n display: flex;\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 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\n & .filterRow {\n display: none;\n }\n\n @media (min-width: 1023px) {\n & .gridHead {\n height: ", "px;\n }\n & .filterRow {\n display: flex;\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 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) {
|
|
29
|
+
var hasGroups = _a.hasGroups;
|
|
30
|
+
return gridHeadHeight + (hasGroups ? gridFilterHeight : 0);
|
|
31
|
+
}, th('colors.lightGray6'), function (_a) {
|
|
29
32
|
var hasGroupsOrFilters = _a.hasGroupsOrFilters;
|
|
30
33
|
return gridHeadHeight + (hasGroupsOrFilters ? gridFilterHeight : 0);
|
|
31
|
-
}, th('
|
|
34
|
+
}, th('fonts.primary'), function (_a) {
|
|
32
35
|
var theme = _a.theme;
|
|
33
36
|
return theme.colors.white;
|
|
34
37
|
});
|
|
@@ -229,6 +229,7 @@ export type GridActionsType = {
|
|
|
229
229
|
setFilters?: (filters: Filtering) => void;
|
|
230
230
|
resetFilters?: () => void;
|
|
231
231
|
addSorting?: (column: string, direction: SortingValueType) => void;
|
|
232
|
+
resetSorting?: () => void;
|
|
232
233
|
openConfigForm?: () => void;
|
|
233
234
|
closeConfigForm?: () => void;
|
|
234
235
|
clearSettings?: () => void;
|
|
@@ -19,5 +19,7 @@ export declare const getGroups: (columns: ColumnDefinition[]) => Group[];
|
|
|
19
19
|
export declare const getGroupClassNames: (group?: Group) => string;
|
|
20
20
|
export declare const getStickyCollClassNames: (sticky: boolean, stickTo?: StickTo) => string;
|
|
21
21
|
export declare const getFilters: (optimizeFilters: boolean) => FiltersConfig;
|
|
22
|
+
/** Returns true when a filter value should be counted / applied */
|
|
23
|
+
export declare const isFilterActive: (value: any) => boolean;
|
|
22
24
|
export declare const checksColumnsOrder: (colsOrder: string[], columnsDefinitions: ColumnDefinition[]) => void;
|
|
23
25
|
export {};
|
|
@@ -76,6 +76,16 @@ export var getFilters = function (optimizeFilters) {
|
|
|
76
76
|
}
|
|
77
77
|
return filters;
|
|
78
78
|
};
|
|
79
|
+
/** Returns true when a filter value should be counted / applied */
|
|
80
|
+
export var isFilterActive = function (value) {
|
|
81
|
+
if (value == null)
|
|
82
|
+
return false;
|
|
83
|
+
if (Array.isArray(value))
|
|
84
|
+
return !!value.length;
|
|
85
|
+
if (typeof value === 'object')
|
|
86
|
+
return value.value != null && value.value !== '';
|
|
87
|
+
return value !== '';
|
|
88
|
+
};
|
|
79
89
|
export var checksColumnsOrder = function (colsOrder, columnsDefinitions) {
|
|
80
90
|
var stickyRightColls = columnsDefinitions.filter(function (col) { return col.sticky === true && col.stickTo === 'right'; });
|
|
81
91
|
var stickyLeftColls = columnsDefinitions.filter(function (col) { return col.sticky === true && col.stickTo !== 'right'; });
|
|
@@ -18,7 +18,7 @@ import { useCallback } from 'react';
|
|
|
18
18
|
import { useLocation } from 'react-router';
|
|
19
19
|
import Link from '../../Link/Link';
|
|
20
20
|
import styled, { css } from '@xstyled/styled-components';
|
|
21
|
-
var StyledLink = styled(Link)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: block;\n border-top: ", ";\n padding-top: ", ";\n color: typoPrimary;\n\n :hover > * {\n color: typoPrimary;\n background-color: bgLightGray1;\n border-radius: 6px;\n }\n ", "\n"], ["\n display: block;\n border-top: ", ";\n padding-top: ", ";\n color: typoPrimary;\n\n :hover > * {\n color: typoPrimary;\n background-color: bgLightGray1;\n border-radius: 6px;\n }\n ", "\n"])), function (_a) {
|
|
21
|
+
var StyledLink = styled(Link)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: block;\n border-top: ", ";\n padding-top: ", ";\n color: typoPrimary;\n text-decoration: none;\n\n :hover > * {\n color: typoPrimary;\n background-color: bgLightGray1;\n border-radius: 6px;\n }\n ", "\n"], ["\n display: block;\n border-top: ", ";\n padding-top: ", ";\n color: typoPrimary;\n text-decoration: none;\n\n :hover > * {\n color: typoPrimary;\n background-color: bgLightGray1;\n border-radius: 6px;\n }\n ", "\n"])), function (_a) {
|
|
22
22
|
var $hasSeparator = _a.$hasSeparator;
|
|
23
23
|
return ($hasSeparator ? '1px solid #D2D8DF' : 'none');
|
|
24
24
|
}, function (_a) {
|
|
@@ -0,0 +1,13 @@
|
|
|
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 } from "react/jsx-runtime";
|
|
13
|
+
export var Filter = function (props) { return (_jsx("svg", __assign({ width: "14", height: "9", viewBox: "0 0 14 9", fill: "#DB2B19", xmlns: "http://www.w3.org/2000/svg" }, props, { children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M0 0V1.5H13.5V0H0ZM5.25 9H8.25V7.5H5.25V9ZM11.25 5.25H2.25V3.75H11.25V5.25Z" }) }))); };
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
export var Sort = function (props) { return (_jsxs("svg", __assign({ width: "14", height: "14", viewBox: "0 0 14 14", stroke: "#DB2B19", xmlns: "http://www.w3.org/2000/svg" }, props, { children: [_jsx("path", { d: "M3.5 1.5V12.5M3.5 12.5L1.5 10.5M3.5 12.5L5.5 10.5", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M10.5 12.5V1.5M10.5 1.5L8.5 3.5M10.5 1.5L12.5 3.5", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] }))); };
|
|
@@ -87,3 +87,5 @@ export { ArrowsLeftRight } from './ArrowsLeftRight';
|
|
|
87
87
|
export { ArrowsUpDown } from './ArrowsUpDown';
|
|
88
88
|
export { Weight } from './Weight';
|
|
89
89
|
export { ArrowUpRightDownLeft } from './ArrowUpRightDownLeft';
|
|
90
|
+
export { Filter } from './Filter';
|
|
91
|
+
export { Sort } from './Sort';
|
|
@@ -87,3 +87,5 @@ export { ArrowsLeftRight } from './ArrowsLeftRight';
|
|
|
87
87
|
export { ArrowsUpDown } from './ArrowsUpDown';
|
|
88
88
|
export { Weight } from './Weight';
|
|
89
89
|
export { ArrowUpRightDownLeft } from './ArrowUpRightDownLeft';
|
|
90
|
+
export { Filter } from './Filter';
|
|
91
|
+
export { Sort } from './Sort';
|