@mailstep/design-system 0.6.3-beta.16 → 0.6.3-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/CommonGrid.d.ts +2 -5
- package/ui/Blocks/CommonGrid/CommonGrid.js +35 -4
- package/ui/Blocks/CommonGrid/CommonGridContainer.js +3 -4
- package/ui/Blocks/CommonGrid/components/HeadRow.d.ts +3 -3
- package/ui/Blocks/CommonGrid/components/HeadRow.js +26 -1
- package/ui/Blocks/CommonGrid/hooks/useManageColumn.d.ts +2 -4
- package/ui/Blocks/CommonGrid/hooks/useManageColumn.js +35 -48
- package/ui/Blocks/CommonGrid/styles.d.ts +1 -3
- package/ui/Blocks/CommonGrid/utils/index.d.ts +0 -1
- package/ui/Blocks/CommonGrid/utils/index.js +0 -13
- package/ui/index.es.js +5296 -5286
- package/ui/index.umd.js +248 -248
package/package.json
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { CommonGridProps, FiltersConfig
|
|
2
|
-
import { DropResult } from 'react-beautiful-dnd';
|
|
1
|
+
import { CommonGridProps, FiltersConfig } from './types';
|
|
3
2
|
type Props = CommonGridProps & {
|
|
4
3
|
filters?: FiltersConfig;
|
|
5
|
-
handleDragEnd: (item: DropResult) => void;
|
|
6
|
-
displayColumnsDefinitions: ColumnDefinition[];
|
|
7
4
|
};
|
|
8
|
-
declare const CommonGrid: ({ filters,
|
|
5
|
+
declare const CommonGrid: ({ filters, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, columnsDefinitions, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction, onRowEditClick, onRowReadClick, onRowClick, columnLayout, hideColumnConfig, className, gridRef, minColumnWidth, errorMessage, floatingButtonProps, }: Props) => JSX.Element;
|
|
9
6
|
export default CommonGrid;
|
|
@@ -21,7 +21,7 @@ import HeadRow from './components/HeadRow';
|
|
|
21
21
|
import useUxReset from './hooks/useUxReset';
|
|
22
22
|
import useRowsKeyControls from './hooks/useRowsKeyControls';
|
|
23
23
|
import useColumnSizes from './hooks/useColumnSizes';
|
|
24
|
-
import { getGroups } from './utils';
|
|
24
|
+
import { isColumnOn, getGroups } from './utils';
|
|
25
25
|
import { initialState } from './store';
|
|
26
26
|
import { Trans } from '@lingui/react';
|
|
27
27
|
import FloatingButton from './components/FloatingButton/FloatingButton';
|
|
@@ -35,16 +35,47 @@ var defaultVoidFunction = function () {
|
|
|
35
35
|
};
|
|
36
36
|
var defaultUxState = initialState.uxState;
|
|
37
37
|
var defaultColumnsWidth = {};
|
|
38
|
+
var defaultPerPageOptions = [10, 20, 50, 100];
|
|
38
39
|
var CommonGrid = function (_a) {
|
|
39
|
-
var filters = _a.filters,
|
|
40
|
+
var filters = _a.filters,
|
|
40
41
|
// redux props
|
|
41
42
|
gridSelectors = _a.gridSelectors, gridActions = _a.gridActions,
|
|
42
43
|
// input props
|
|
43
|
-
isLoading = _a.isLoading, rowsData = _a.rowsData, hasColouredRows = _a.hasColouredRows, columnsDefinitions = _a.columnsDefinitions, 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,
|
|
44
|
+
isLoading = _a.isLoading, rowsData = _a.rowsData, hasColouredRows = _a.hasColouredRows, columnsDefinitions = _a.columnsDefinitions, 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, hideColumnConfig = _a.hideColumnConfig, className = _a.className, gridRef = _a.gridRef, minColumnWidth = _a.minColumnWidth, errorMessage = _a.errorMessage, floatingButtonProps = _a.floatingButtonProps;
|
|
44
45
|
var _c = gridSelectors.uxState, uxState = _c === void 0 ? defaultUxState : _c, columnConfig = gridSelectors.columnConfig, _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
46
|
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, _k = gridActions.setColumnsOrder, setColumnsOrder = _k === void 0 ? defaultVoidFunction : _k;
|
|
46
47
|
var handleRowsKeyDown = useRowsKeyControls(rowsData, uxState, handleUxChange);
|
|
47
48
|
useUxReset(rowsData, uxState, clearUxState);
|
|
49
|
+
var checksColumnsOrder = React.useCallback(function (colsOrder) {
|
|
50
|
+
var stickyRightColls = columnsDefinitions.filter(function (col) { return col.sticky === true && col.stickTo === 'right'; });
|
|
51
|
+
var stickyLeftColls = columnsDefinitions.filter(function (col) { return col.sticky === true && col.stickTo !== 'right'; });
|
|
52
|
+
if (stickyLeftColls.length > 1 || stickyRightColls.length > 1) {
|
|
53
|
+
console.error('Grid can have only sticky column on each side.');
|
|
54
|
+
}
|
|
55
|
+
if (stickyLeftColls.length && colsOrder.indexOf(stickyLeftColls[0].name) !== 0) {
|
|
56
|
+
console.error('The left sticky column should be the first one in a row');
|
|
57
|
+
}
|
|
58
|
+
if (stickyRightColls.length && colsOrder.indexOf(stickyRightColls[0].name) !== colsOrder.length - 1) {
|
|
59
|
+
console.error('The Right sticky column should be the last one in a row');
|
|
60
|
+
}
|
|
61
|
+
}, [columnsDefinitions]);
|
|
62
|
+
// todo refactor as part of definitions
|
|
63
|
+
var columnsOrder = React.useMemo(function () {
|
|
64
|
+
var _a;
|
|
65
|
+
var order = ((_a = gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.columnsOrder) === null || _a === void 0 ? void 0 : _a.length)
|
|
66
|
+
? gridSelectors.columnsOrder
|
|
67
|
+
: columnsDefinitions.map(function (column) { return column.name; });
|
|
68
|
+
checksColumnsOrder(order);
|
|
69
|
+
return order;
|
|
70
|
+
}, [columnsDefinitions, gridSelectors.columnsOrder]);
|
|
71
|
+
// filtered and ordered columns definition, relevant columns definition to iterate over and render
|
|
72
|
+
var displayColumnsDefinitions = React.useMemo(function () {
|
|
73
|
+
return (!hideColumnConfig ? columnsDefinitions.filter(function (column) { return isColumnOn(column, columnConfig); }) : columnsDefinitions).sort(function (col1, col2) {
|
|
74
|
+
var i = (columnsOrder || []).indexOf(col1.name);
|
|
75
|
+
var j = (columnsOrder || []).indexOf(col2.name);
|
|
76
|
+
return i > j ? 1 : i < j ? -1 : 0;
|
|
77
|
+
});
|
|
78
|
+
}, [hideColumnConfig, columnConfig, columnsDefinitions, columnsOrder]);
|
|
48
79
|
var GridMessage;
|
|
49
80
|
var messageClass = 'info';
|
|
50
81
|
if (isLoading)
|
|
@@ -63,7 +94,7 @@ var CommonGrid = function (_a) {
|
|
|
63
94
|
gridBoxRef.current = node;
|
|
64
95
|
!!gridRef && (gridRef.current = node);
|
|
65
96
|
}, []);
|
|
66
|
-
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), children: GridMessage }) })), ref: commonGridRef, children: [_jsxs("div", { className: "gridHead", children: [columnsDefinitions.find(function (col) { return col.group; }) && (_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
|
|
97
|
+
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), children: GridMessage }) })), ref: commonGridRef, children: [_jsxs("div", { className: "gridHead", children: [columnsDefinitions.find(function (col) { return col.group; }) && (_jsx(GroupRow, { actionColumn: actionColumnDefinition, columns: displayColumnsDefinitions, displayColumnsWidth: displayColumnsWidth, groups: groups })), _jsx(HeadRow, { columns: displayColumnsDefinitions, actionColumn: actionColumnDefinition, onAddSort: addSorting, columnLayout: columnLayout, setColumnsOrder: setColumnsOrder, columnsOrder: columnsOrder, sortingValues: sorting, displayColumnsWidth: displayColumnsWidth, handleResizeDrag: handleResizeDrag, groups: groups }), columnsDefinitions.find(function (col) { return col.filtering; }) && (_jsx(FilterRow, { filters: filters, 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
98
|
rowsData &&
|
|
68
99
|
displayColumnsDefinitions &&
|
|
69
100
|
rowsData.map(function (row, index) {
|
|
@@ -40,7 +40,7 @@ import ManageColumnForm from './components/ManageColumnForm';
|
|
|
40
40
|
import { Trans } from '@lingui/react';
|
|
41
41
|
import { Settings2 } from '../../Elements/Icon/icons/Settings2';
|
|
42
42
|
var StyledCommonGrid = function (props) {
|
|
43
|
-
var _a = props.optimizeFilters, optimizeFilters = _a === void 0 ? false : _a, extraControlButtons = props.extraControlButtons, eshopSelect = props.eshopSelect, onBatchAction = props.onBatchAction, processCheckedValues = props.processCheckedValues, processCheckedValuesTitle = props.processCheckedValuesTitle, hideControlButtons = props.hideControlButtons, floatingButtonProps = props.floatingButtonProps, queryRowsParam = props.queryRowsParam, customPaginationHandler = props.customPaginationHandler,
|
|
43
|
+
var _a = props.optimizeFilters, optimizeFilters = _a === void 0 ? false : _a, extraControlButtons = props.extraControlButtons, eshopSelect = props.eshopSelect, onBatchAction = props.onBatchAction, processCheckedValues = props.processCheckedValues, processCheckedValuesTitle = props.processCheckedValuesTitle, hideControlButtons = props.hideControlButtons, floatingButtonProps = props.floatingButtonProps, queryRowsParam = props.queryRowsParam, customPaginationHandler = props.customPaginationHandler, passDownProps = __rest(props, ["optimizeFilters", "extraControlButtons", "eshopSelect", "onBatchAction", "processCheckedValues", "processCheckedValuesTitle", "hideControlButtons", "floatingButtonProps", "queryRowsParam", "customPaginationHandler"]);
|
|
44
44
|
var gridActions = passDownProps.gridActions, gridSelectors = passDownProps.gridSelectors, rowsData = passDownProps.rowsData, actionColumnDefinition = passDownProps.actionColumnDefinition;
|
|
45
45
|
var _b = useGetGridHeight(), gridHeight = _b.gridHeight, gridRef = _b.gridRef, paginationRef = _b.paginationRef;
|
|
46
46
|
useEffect(function () {
|
|
@@ -60,8 +60,7 @@ var StyledCommonGrid = function (props) {
|
|
|
60
60
|
gridActions: gridActions,
|
|
61
61
|
gridSelectors: gridSelectors,
|
|
62
62
|
onClose: onClose,
|
|
63
|
-
|
|
64
|
-
}),
|
|
65
|
-
return (_jsxs(ContentContainer, { children: [_jsxs(CommonGridWrap, { children: [_jsx(HidePrint, { children: _jsxs(StyledButtonStrip, { className: "buttonsStrip", children: [!hideControlButtons && (_jsx(ControlButtons, { extraControlButtons: extraControlButtons, gridActions: gridActions, gridSelectors: gridSelectors, eshopSelect: eshopSelect })), _jsx(StyledColumnButton, { type: "button", sizing: "iconLg", appearance: "ghost", icon: _jsx(Settings2, {}), onClick: openManageColumnForm, children: _jsx(H6, { variant: "semiBold", children: _jsx(Trans, { id: "manageColumn.title", message: "Manage column" }) }) })] }) }), _jsx(CommonGridWithStyles, __assign({}, passDownProps, modifiedPassDownProps, { filters: filters, gridRef: gridRef, height: gridHeight, floatingButtonProps: floatingButtonProps, handleDragEnd: handleDragEnd(false), displayColumnsDefinitions: displayColumnsDefinitions, hasColouredRows: true }))] }), _jsx(HidePrint, { children: _jsxs(BottomWrapper, { ref: paginationRef, isFixed: !!gridHeight, children: [processCheckedValues && (_jsx(ActionHead, { rowsData: rowsData, onBatchAction: onBatchAction, gridActions: gridActions, gridSelectors: gridSelectors, actionColumn: actionColumnDefinition, processCheckedValues: processCheckedValues, processCheckedValuesTitle: processCheckedValuesTitle })), _jsxs(x.div, { display: "flex", justifyContent: "center", alignItems: "center", className: "paginatorWrapper", w: "100%", h: window.innerWidth > 1204 ? '60px' : '32px', children: [_jsx(Pagination, { page: gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.page, itemCount: passDownProps === null || passDownProps === void 0 ? void 0 : passDownProps.totalRowsCount, itemPerPage: (gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.rowsPerPage) || 10, onPageChange: gridActions === null || gridActions === void 0 ? void 0 : gridActions.setPage, customPaginationHandler: customPaginationHandler }), _jsx(TablePagination, { gridActions: gridActions, gridSelectors: gridSelectors, customPaginationHandler: customPaginationHandler })] })] }) }), manageColumnFormVisible && (_jsx(Modal, { title: _jsx(Trans, { id: "manageColumn.title", message: "Manage columns" }), onClose: onCloseForm, onCancel: onCloseForm, onExtraAction: resetColumnConfig, onConfirm: onConfirmForm, width: "auto", minWidth: "350px", hasFooter: true, extraActionLabel: _jsx(Trans, { id: "dataGrid.buttonClearConfig", message: "Reset config" }), cancelLabel: _jsx(Trans, { id: "form.buttonCancel", message: "Cancel" }), confirmLabel: _jsx(Trans, { id: "form.buttonConfirm", message: "Confirm" }), children: _jsx(ManageColumnForm, { columns: manageColumnsFormDefinitions, columnsConfigValues: columnsConfigValues, setColumnsConfigOptions: setColumnsConfigOptions, handleDragEnd: handleDragEnd(true) }) }))] }));
|
|
63
|
+
}), columnsConfigValues = _d.columnsConfigValues, setColumnsConfigOptions = _d.setColumnsConfigOptions, onConfirmForm = _d.onConfirmForm, resetColumnConfig = _d.resetColumnConfig, handleDragEnd = _d.handleDragEnd, onCloseForm = _d.onCloseForm, displayColumnsDefinitions = _d.displayColumnsDefinitions;
|
|
64
|
+
return (_jsxs(ContentContainer, { children: [_jsxs(CommonGridWrap, { children: [_jsx(HidePrint, { children: _jsxs(StyledButtonStrip, { className: "buttonsStrip", children: [!hideControlButtons && (_jsx(ControlButtons, { extraControlButtons: extraControlButtons, gridActions: gridActions, gridSelectors: gridSelectors, eshopSelect: eshopSelect })), _jsx(StyledColumnButton, { type: "button", sizing: "iconLg", appearance: "ghost", icon: _jsx(Settings2, {}), onClick: openManageColumnForm, children: _jsx(H6, { variant: "semiBold", children: _jsx(Trans, { id: "manageColumn.title", message: "Manage column" }) }) })] }) }), _jsx(CommonGridWithStyles, __assign({}, passDownProps, modifiedPassDownProps, { filters: filters, gridRef: gridRef, height: gridHeight, floatingButtonProps: floatingButtonProps, hasColouredRows: true }))] }), _jsx(HidePrint, { children: _jsxs(BottomWrapper, { ref: paginationRef, isFixed: !!gridHeight, children: [processCheckedValues && (_jsx(ActionHead, { rowsData: rowsData, onBatchAction: onBatchAction, gridActions: gridActions, gridSelectors: gridSelectors, actionColumn: actionColumnDefinition, processCheckedValues: processCheckedValues, processCheckedValuesTitle: processCheckedValuesTitle })), _jsxs(x.div, { display: "flex", justifyContent: "center", alignItems: "center", className: "paginatorWrapper", w: "100%", h: window.innerWidth > 1204 ? '60px' : '32px', children: [_jsx(Pagination, { page: gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.page, itemCount: passDownProps === null || passDownProps === void 0 ? void 0 : passDownProps.totalRowsCount, itemPerPage: (gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.rowsPerPage) || 10, onPageChange: gridActions === null || gridActions === void 0 ? void 0 : gridActions.setPage, customPaginationHandler: customPaginationHandler }), _jsx(TablePagination, { gridActions: gridActions, gridSelectors: gridSelectors, customPaginationHandler: customPaginationHandler })] })] }) }), manageColumnFormVisible && (_jsx(Modal, { title: _jsx(Trans, { id: "manageColumn.title", message: "Manage columns" }), onClose: onCloseForm, onCancel: onCloseForm, onExtraAction: resetColumnConfig, onConfirm: onConfirmForm, width: "auto", minWidth: "350px", hasFooter: true, extraActionLabel: _jsx(Trans, { id: "dataGrid.buttonClearConfig", message: "Reset config" }), cancelLabel: _jsx(Trans, { id: "form.buttonCancel", message: "Cancel" }), confirmLabel: _jsx(Trans, { id: "form.buttonConfirm", message: "Confirm" }), children: _jsx(ManageColumnForm, { columns: displayColumnsDefinitions, columnsConfigValues: columnsConfigValues, setColumnsConfigOptions: setColumnsConfigOptions, handleDragEnd: handleDragEnd }) }))] }));
|
|
66
65
|
};
|
|
67
66
|
export default StyledCommonGrid;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { DropResult } from 'react-beautiful-dnd';
|
|
2
1
|
import { Settings, ColumnDefinition, ActionColumn, GridSelectorsType, Group, CommonGridProps, GridActionsType } from '../types';
|
|
3
2
|
type HeadRowProps = {
|
|
4
3
|
actionColumn?: ActionColumn;
|
|
5
4
|
columns: ColumnDefinition[];
|
|
5
|
+
columnsOrder?: string[];
|
|
6
6
|
onAddSort: GridActionsType['addSorting'];
|
|
7
|
+
setColumnsOrder: (columnsOrder: string[]) => void;
|
|
7
8
|
sortingValues?: Settings['sorting'];
|
|
8
9
|
displayColumnsWidth: Required<GridSelectorsType>['columnsWidth'];
|
|
9
10
|
columnLayout: Required<CommonGridProps>['columnLayout'];
|
|
10
11
|
handleResizeDrag: (column: string, width: number) => void;
|
|
11
|
-
handleDragEnd: (item: DropResult) => void;
|
|
12
12
|
groups: Group[];
|
|
13
13
|
};
|
|
14
|
-
declare const HeadRow: ({ columns, actionColumn, onAddSort,
|
|
14
|
+
declare const HeadRow: ({ columns, actionColumn, onAddSort, setColumnsOrder, columnsOrder, sortingValues, displayColumnsWidth, columnLayout, handleResizeDrag, groups, }: HeadRowProps) => JSX.Element;
|
|
15
15
|
export default HeadRow;
|
|
@@ -9,6 +9,15 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
13
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
14
|
+
if (ar || !(i in from)) {
|
|
15
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
16
|
+
ar[i] = from[i];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
|
+
};
|
|
12
21
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
22
|
import React, { useEffect, useState } from 'react';
|
|
14
23
|
import { DragDropContext, Droppable, Draggable, } from 'react-beautiful-dnd';
|
|
@@ -21,11 +30,27 @@ var getStickyComponent = function (columns, stickyTo, displayColumnsWidth) {
|
|
|
21
30
|
};
|
|
22
31
|
var HeadRow = function (_a) {
|
|
23
32
|
var _b;
|
|
24
|
-
var columns = _a.columns, actionColumn = _a.actionColumn, onAddSort = _a.onAddSort,
|
|
33
|
+
var columns = _a.columns, actionColumn = _a.actionColumn, onAddSort = _a.onAddSort, setColumnsOrder = _a.setColumnsOrder, columnsOrder = _a.columnsOrder, _c = _a.sortingValues, sortingValues = _c === void 0 ? [] : _c, displayColumnsWidth = _a.displayColumnsWidth, columnLayout = _a.columnLayout, handleResizeDrag = _a.handleResizeDrag, groups = _a.groups;
|
|
25
34
|
var _d = useState(false), showUIElements = _d[0], setShowUIElements = _d[1];
|
|
26
35
|
useEffect(function () {
|
|
27
36
|
setShowUIElements(true);
|
|
28
37
|
}, []);
|
|
38
|
+
var handleDragEnd = React.useCallback(function (item) {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
var to = (_a = item.destination) === null || _a === void 0 ? void 0 : _a.index;
|
|
41
|
+
var from = (_b = item.source) === null || _b === void 0 ? void 0 : _b.index;
|
|
42
|
+
if (to === from || !item.destination) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
var newOrderColumns = __spreadArray([], (columnsOrder || []), true);
|
|
46
|
+
var fromIndex = newOrderColumns.findIndex(function (column) { return columns[from].name === column; });
|
|
47
|
+
var toIndex = newOrderColumns.findIndex(function (column) { return to && columns[to].name === column; });
|
|
48
|
+
// move column from a position to the new position
|
|
49
|
+
var column = newOrderColumns[fromIndex];
|
|
50
|
+
newOrderColumns.splice(fromIndex, 1);
|
|
51
|
+
newOrderColumns.splice(toIndex === -1 ? 0 : toIndex, 0, column);
|
|
52
|
+
setColumnsOrder(newOrderColumns);
|
|
53
|
+
}, [setColumnsOrder, columnsOrder, columns]);
|
|
29
54
|
var _e = useState(false), isDragDisabled = _e[0], setIsDragDisabled = _e[1];
|
|
30
55
|
var onResizeOver = React.useCallback(function () {
|
|
31
56
|
setIsDragDisabled(true);
|
|
@@ -6,9 +6,8 @@ type Props = {
|
|
|
6
6
|
gridActions: GridActionsType;
|
|
7
7
|
gridSelectors: GridSelectorsType;
|
|
8
8
|
onClose?: () => void;
|
|
9
|
-
hideColumnConfig?: boolean;
|
|
10
9
|
};
|
|
11
|
-
declare const useManageColumn: ({ columns, gridSelectors, gridActions, onClose
|
|
10
|
+
declare const useManageColumn: ({ columns, gridSelectors, gridActions, onClose }: Props) => {
|
|
12
11
|
columnsConfigValues: string[];
|
|
13
12
|
setColumnsConfigOptions: import("react").Dispatch<import("react").SetStateAction<{
|
|
14
13
|
[x: string]: {
|
|
@@ -17,9 +16,8 @@ declare const useManageColumn: ({ columns, gridSelectors, gridActions, onClose,
|
|
|
17
16
|
}>>;
|
|
18
17
|
onConfirmForm: () => void;
|
|
19
18
|
resetColumnConfig: () => void;
|
|
20
|
-
handleDragEnd: (
|
|
19
|
+
handleDragEnd: (item: DropResult) => void;
|
|
21
20
|
onCloseForm: () => void;
|
|
22
21
|
displayColumnsDefinitions: import("../types").ColumnDefinition<string>[];
|
|
23
|
-
manageColumnsFormDefinitions: import("../types").ColumnDefinition<string>[];
|
|
24
22
|
};
|
|
25
23
|
export default useManageColumn;
|
|
@@ -18,16 +18,14 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
18
18
|
}
|
|
19
19
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
20
|
};
|
|
21
|
-
import { useCallback,
|
|
22
|
-
import { checksColumnsOrder, isColumnOn } from '../utils';
|
|
21
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
23
22
|
var useManageColumn = function (_a) {
|
|
24
|
-
var columns = _a.columns, gridSelectors = _a.gridSelectors, gridActions = _a.gridActions, onClose = _a.onClose
|
|
23
|
+
var columns = _a.columns, gridSelectors = _a.gridSelectors, gridActions = _a.gridActions, onClose = _a.onClose;
|
|
25
24
|
var resetGrid = gridActions.resetGrid, setColumnConfig = gridActions.setColumnConfig, setColumnsOrder = gridActions.setColumnsOrder;
|
|
26
25
|
var columnConfig = gridSelectors.columnConfig, columnsOrder = gridSelectors.columnsOrder;
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
var _c = useState(columnsOrderValue), updatedColumnsOrder = _c[0], setUpdatedColumnsOrder = _c[1];
|
|
26
|
+
var _b = useState(__assign({}, columnConfig)), columnsConfigOptions = _b[0], setColumnsConfigOptions = _b[1];
|
|
27
|
+
var _c = useState(columnsOrder || []), updatedColumnsOrder = _c[0], setUpdatedColumnsOrder = _c[1];
|
|
28
|
+
console.log('columnConfig', columnConfig, 'columnsOrder', columnsOrder, 'columnsConfigOptions', columnsConfigOptions, 'updatedColumnsOrder', updatedColumnsOrder);
|
|
31
29
|
var columnsConfigValues = useMemo(function () {
|
|
32
30
|
return columns === null || columns === void 0 ? void 0 : columns.filter(function (column) {
|
|
33
31
|
var _a;
|
|
@@ -39,52 +37,42 @@ var useManageColumn = function (_a) {
|
|
|
39
37
|
setColumnConfig === null || setColumnConfig === void 0 ? void 0 : setColumnConfig(columnsConfigOptions);
|
|
40
38
|
setColumnsOrder === null || setColumnsOrder === void 0 ? void 0 : setColumnsOrder(updatedColumnsOrder);
|
|
41
39
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
42
|
-
}, [columnsConfigOptions, updatedColumnsOrder, onClose, setColumnConfig
|
|
40
|
+
}, [columnsConfigOptions, updatedColumnsOrder, onClose, setColumnConfig]);
|
|
43
41
|
var resetColumnConfig = useCallback(function () {
|
|
44
|
-
setUpdatedColumnsOrder(
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
setUpdatedColumnsOrder(columnsOrder || []);
|
|
43
|
+
if (resetGrid) {
|
|
44
|
+
resetGrid();
|
|
45
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
46
|
+
}
|
|
47
47
|
setColumnsConfigOptions(columnConfig || {});
|
|
48
|
-
}, [onClose, resetGrid
|
|
48
|
+
}, [onClose, resetGrid]);
|
|
49
49
|
var onCloseForm = useCallback(function () {
|
|
50
|
-
setUpdatedColumnsOrder(
|
|
50
|
+
setUpdatedColumnsOrder(columnsOrder !== null && columnsOrder !== void 0 ? columnsOrder : []);
|
|
51
51
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
52
|
-
}, [
|
|
53
|
-
var
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
}, []);
|
|
53
|
+
var handleDragEnd = useCallback(function (item) {
|
|
54
|
+
var destination = item.destination, source = item.source;
|
|
55
|
+
var to = destination === null || destination === void 0 ? void 0 : destination.index;
|
|
56
|
+
var from = source === null || source === void 0 ? void 0 : source.index;
|
|
57
|
+
if (to === from || !destination) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
var newOrderColumns = __spreadArray([], updatedColumnsOrder, true);
|
|
61
|
+
var fromIndex = newOrderColumns.findIndex(function (column) { return columns[from].name === column; });
|
|
62
|
+
var toIndex = newOrderColumns.findIndex(function (column) { return to && columns[to].name === column; });
|
|
63
|
+
// move column from a position to the new position
|
|
64
|
+
var column = newOrderColumns[fromIndex];
|
|
65
|
+
newOrderColumns.splice(fromIndex, 1);
|
|
66
|
+
newOrderColumns.splice(toIndex === -1 ? 0 : toIndex, 0, column);
|
|
67
|
+
setUpdatedColumnsOrder(newOrderColumns);
|
|
68
|
+
}, [columns, updatedColumnsOrder]);
|
|
69
|
+
var displayColumnsDefinitions = useMemo(function () {
|
|
70
|
+
return columns.sort(function (col1, col2) {
|
|
71
|
+
var i = (updatedColumnsOrder || []).indexOf(col1.name);
|
|
72
|
+
var j = (updatedColumnsOrder || []).indexOf(col2.name);
|
|
57
73
|
return i > j ? 1 : i < j ? -1 : 0;
|
|
58
74
|
});
|
|
59
|
-
}, [
|
|
60
|
-
var displayColumnsDefinitions = useMemo(function () { return getSortedColumns(columnsOrderValue); }, [columnsOrderValue]);
|
|
61
|
-
var manageColumnsFormDefinitions = useMemo(function () { return getSortedColumns(updatedColumnsOrder); }, [updatedColumnsOrder]);
|
|
62
|
-
var handleDragEnd = useCallback(function (isManageModal) {
|
|
63
|
-
if (isManageModal === void 0) { isManageModal = false; }
|
|
64
|
-
return function (item) {
|
|
65
|
-
var destination = item.destination, source = item.source;
|
|
66
|
-
var to = destination === null || destination === void 0 ? void 0 : destination.index;
|
|
67
|
-
var from = source === null || source === void 0 ? void 0 : source.index;
|
|
68
|
-
if (to === from || !destination) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
var columns = isManageModal ? manageColumnsFormDefinitions : displayColumnsDefinitions;
|
|
72
|
-
var newOrderColumns = __spreadArray([], (isManageModal ? updatedColumnsOrder : columnsOrderValue), true);
|
|
73
|
-
var fromIndex = newOrderColumns.findIndex(function (column) { return columns[from].name === column; });
|
|
74
|
-
var toIndex = newOrderColumns.findIndex(function (column) { return columns[to !== null && to !== void 0 ? to : 0].name === column; });
|
|
75
|
-
// move column from a position to the new position
|
|
76
|
-
var column = newOrderColumns[fromIndex];
|
|
77
|
-
newOrderColumns.splice(fromIndex, 1);
|
|
78
|
-
newOrderColumns.splice(toIndex === -1 ? 0 : toIndex, 0, column);
|
|
79
|
-
if (!isManageModal) {
|
|
80
|
-
setColumnsOrder === null || setColumnsOrder === void 0 ? void 0 : setColumnsOrder(newOrderColumns);
|
|
81
|
-
}
|
|
82
|
-
setUpdatedColumnsOrder(newOrderColumns);
|
|
83
|
-
};
|
|
84
|
-
}, [updatedColumnsOrder, columnsOrderValue, setColumnsOrder, manageColumnsFormDefinitions, displayColumnsDefinitions]);
|
|
85
|
-
useEffect(function () {
|
|
86
|
-
checksColumnsOrder(columnsOrderValue, columns);
|
|
87
|
-
}, []);
|
|
75
|
+
}, [columns, updatedColumnsOrder]);
|
|
88
76
|
return {
|
|
89
77
|
columnsConfigValues: columnsConfigValues,
|
|
90
78
|
setColumnsConfigOptions: setColumnsConfigOptions,
|
|
@@ -93,7 +81,6 @@ var useManageColumn = function (_a) {
|
|
|
93
81
|
handleDragEnd: handleDragEnd,
|
|
94
82
|
onCloseForm: onCloseForm,
|
|
95
83
|
displayColumnsDefinitions: displayColumnsDefinitions,
|
|
96
|
-
manageColumnsFormDefinitions: manageColumnsFormDefinitions,
|
|
97
84
|
};
|
|
98
85
|
};
|
|
99
86
|
export default useManageColumn;
|
|
@@ -6,10 +6,8 @@ export declare const ContentContainer: import("styled-components").StyledCompone
|
|
|
6
6
|
export declare const CommonGridWrap: 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">;
|
|
7
7
|
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">;
|
|
8
8
|
export declare const StyledColumnButton: import("styled-components").StyledComponent<({ isLoading, loadingText, icon, appearance, disabled, sizing, buttonRef, onClick, fullWidth, ...props }: import("../../Elements/Button/types").Props) => JSX.Element, import("@xstyled/system").Theme, {}, never>;
|
|
9
|
-
export declare const CommonGridWithStyles: import("styled-components").StyledComponent<({ filters,
|
|
9
|
+
export declare const CommonGridWithStyles: import("styled-components").StyledComponent<({ filters, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, columnsDefinitions, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction, onRowEditClick, onRowReadClick, onRowClick, columnLayout, hideColumnConfig, className, gridRef, minColumnWidth, errorMessage, floatingButtonProps, }: import("./types").CommonGridProps & {
|
|
10
10
|
filters?: import("./types").FiltersConfig | undefined;
|
|
11
|
-
handleDragEnd: (item: import("react-beautiful-dnd").DropResult) => void;
|
|
12
|
-
displayColumnsDefinitions: import("./types").ColumnDefinition[];
|
|
13
11
|
}) => JSX.Element, import("@xstyled/system").Theme, {
|
|
14
12
|
onRowClick?: Function | undefined;
|
|
15
13
|
height?: number | undefined;
|
|
@@ -18,4 +18,3 @@ export declare const getStickyCollClassNames: (sticky: boolean, stickTo?: StickT
|
|
|
18
18
|
export declare const GRID_MIN_ROWS = 6;
|
|
19
19
|
export declare const rowHeight = 40;
|
|
20
20
|
export declare const getFilters: (optimizeFilters: boolean) => FiltersConfig;
|
|
21
|
-
export declare const checksColumnsOrder: (colsOrder: string[], columnsDefinitions: ColumnDefinition[]) => void;
|
|
@@ -77,16 +77,3 @@ export var getFilters = function (optimizeFilters) {
|
|
|
77
77
|
filters.text.defaultExtraProps = { defaultComparator: 'eq' };
|
|
78
78
|
return filters;
|
|
79
79
|
};
|
|
80
|
-
export var checksColumnsOrder = function (colsOrder, columnsDefinitions) {
|
|
81
|
-
var stickyRightColls = columnsDefinitions.filter(function (col) { return col.sticky === true && col.stickTo === 'right'; });
|
|
82
|
-
var stickyLeftColls = columnsDefinitions.filter(function (col) { return col.sticky === true && col.stickTo !== 'right'; });
|
|
83
|
-
if (stickyLeftColls.length > 1 || stickyRightColls.length > 1) {
|
|
84
|
-
console.error('Grid can have only sticky column on each side.');
|
|
85
|
-
}
|
|
86
|
-
if (stickyLeftColls.length && colsOrder.indexOf(stickyLeftColls[0].name) !== 0) {
|
|
87
|
-
console.error('The left sticky column should be the first one in a row');
|
|
88
|
-
}
|
|
89
|
-
if (stickyRightColls.length && colsOrder.indexOf(stickyRightColls[0].name) !== colsOrder.length - 1) {
|
|
90
|
-
console.error('The Right sticky column should be the last one in a row');
|
|
91
|
-
}
|
|
92
|
-
};
|