@mailstep/design-system 0.6.3-beta.5 → 0.6.3-beta.7
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 +5 -2
- package/ui/Blocks/CommonGrid/CommonGrid.js +4 -13
- package/ui/Blocks/CommonGrid/CommonGridContainer.js +4 -3
- package/ui/Blocks/CommonGrid/components/HeadRow.d.ts +3 -3
- package/ui/Blocks/CommonGrid/components/HeadRow.js +1 -26
- package/ui/Blocks/CommonGrid/hooks/useManageColumn.d.ts +6 -4
- package/ui/Blocks/CommonGrid/hooks/useManageColumn.js +39 -25
- package/ui/Blocks/CommonGrid/styles.d.ts +3 -1
- package/ui/index.es.js +7047 -7050
- package/ui/index.umd.js +291 -291
package/package.json
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { CommonGridProps, FiltersConfig } from './types';
|
|
1
|
+
import { CommonGridProps, FiltersConfig, ColumnDefinition } from './types';
|
|
2
|
+
import { DropResult } from 'react-beautiful-dnd';
|
|
2
3
|
type Props = CommonGridProps & {
|
|
3
4
|
filters?: FiltersConfig;
|
|
5
|
+
handleDragEnd: (item: DropResult) => void;
|
|
6
|
+
displayColumnsDefinitions: ColumnDefinition[];
|
|
4
7
|
};
|
|
5
|
-
declare const CommonGrid: ({ filters, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, columnsDefinitions, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction, onRowEditClick, onRowReadClick, onRowClick, columnLayout,
|
|
8
|
+
declare const CommonGrid: ({ filters, handleDragEnd, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, columnsDefinitions, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction, onRowEditClick, onRowReadClick, onRowClick, columnLayout, displayColumnsDefinitions, className, gridRef, minColumnWidth, errorMessage, floatingButtonProps, }: Props) => JSX.Element;
|
|
6
9
|
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 {
|
|
24
|
+
import { 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,13 +35,12 @@ var defaultVoidFunction = function () {
|
|
|
35
35
|
};
|
|
36
36
|
var defaultUxState = initialState.uxState;
|
|
37
37
|
var defaultColumnsWidth = {};
|
|
38
|
-
var defaultPerPageOptions = [10, 20, 50, 100];
|
|
39
38
|
var CommonGrid = function (_a) {
|
|
40
|
-
var filters = _a.filters,
|
|
39
|
+
var filters = _a.filters, handleDragEnd = _a.handleDragEnd,
|
|
41
40
|
// redux props
|
|
42
41
|
gridSelectors = _a.gridSelectors, gridActions = _a.gridActions,
|
|
43
42
|
// input props
|
|
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,
|
|
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, displayColumnsDefinitions = _a.displayColumnsDefinitions, className = _a.className, gridRef = _a.gridRef, minColumnWidth = _a.minColumnWidth, errorMessage = _a.errorMessage, floatingButtonProps = _a.floatingButtonProps;
|
|
45
44
|
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;
|
|
46
45
|
var clearUxState = gridActions.clearUxState, handleUxChange = gridActions.handleUxChange, _g = gridActions.addFilter, addFilter = _g === void 0 ? defaultVoidFunction : _g, _h = gridActions.addSorting, addSorting = _h === void 0 ? defaultVoidFunction : _h, _j = gridActions.setColumnWidth, setColumnWidth = _j === void 0 ? defaultVoidFunction : _j, _k = gridActions.setColumnsOrder, setColumnsOrder = _k === void 0 ? defaultVoidFunction : _k;
|
|
47
46
|
var handleRowsKeyDown = useRowsKeyControls(rowsData, uxState, handleUxChange);
|
|
@@ -68,14 +67,6 @@ var CommonGrid = function (_a) {
|
|
|
68
67
|
checksColumnsOrder(order);
|
|
69
68
|
return order;
|
|
70
69
|
}, [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]);
|
|
79
70
|
var GridMessage;
|
|
80
71
|
var messageClass = 'info';
|
|
81
72
|
if (isLoading)
|
|
@@ -94,7 +85,7 @@ var CommonGrid = function (_a) {
|
|
|
94
85
|
gridBoxRef.current = node;
|
|
95
86
|
!!gridRef && (gridRef.current = node);
|
|
96
87
|
}, []);
|
|
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,
|
|
88
|
+
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, handleDragEnd: handleDragEnd }), 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 &&
|
|
98
89
|
rowsData &&
|
|
99
90
|
displayColumnsDefinitions &&
|
|
100
91
|
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, passDownProps = __rest(props, ["optimizeFilters", "extraControlButtons", "eshopSelect", "onBatchAction", "processCheckedValues", "processCheckedValuesTitle", "hideControlButtons", "floatingButtonProps", "queryRowsParam", "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, hideColumnConfig = props.hideColumnConfig, passDownProps = __rest(props, ["optimizeFilters", "extraControlButtons", "eshopSelect", "onBatchAction", "processCheckedValues", "processCheckedValuesTitle", "hideControlButtons", "floatingButtonProps", "queryRowsParam", "customPaginationHandler", "hideColumnConfig"]);
|
|
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,7 +60,8 @@ var StyledCommonGrid = function (props) {
|
|
|
60
60
|
gridActions: gridActions,
|
|
61
61
|
gridSelectors: gridSelectors,
|
|
62
62
|
onClose: onClose,
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
hideColumnConfig: hideColumnConfig,
|
|
64
|
+
}), columnsConfigValues = _d.columnsConfigValues, setColumnsConfigOptions = _d.setColumnsConfigOptions, onConfirmForm = _d.onConfirmForm, resetColumnConfig = _d.resetColumnConfig, handleDragEnd = _d.handleDragEnd, onCloseForm = _d.onCloseForm, displayColumnsDefinitions = _d.displayColumnsDefinitions, manageColumnsFormDefinitions = _d.manageColumnsFormDefinitions;
|
|
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) }) }))] }));
|
|
65
66
|
};
|
|
66
67
|
export default StyledCommonGrid;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
+
import { DropResult } from 'react-beautiful-dnd';
|
|
1
2
|
import { Settings, ColumnDefinition, ActionColumn, GridSelectorsType, Group, CommonGridProps, GridActionsType } from '../types';
|
|
2
3
|
type HeadRowProps = {
|
|
3
4
|
actionColumn?: ActionColumn;
|
|
4
5
|
columns: ColumnDefinition[];
|
|
5
|
-
columnsOrder?: string[];
|
|
6
6
|
onAddSort: GridActionsType['addSorting'];
|
|
7
|
-
setColumnsOrder: (columnsOrder: string[]) => void;
|
|
8
7
|
sortingValues?: Settings['sorting'];
|
|
9
8
|
displayColumnsWidth: Required<GridSelectorsType>['columnsWidth'];
|
|
10
9
|
columnLayout: Required<CommonGridProps>['columnLayout'];
|
|
11
10
|
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, handleDragEnd, sortingValues, displayColumnsWidth, columnLayout, handleResizeDrag, groups, }: HeadRowProps) => JSX.Element;
|
|
15
15
|
export default HeadRow;
|
|
@@ -9,15 +9,6 @@ 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
|
-
};
|
|
21
12
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
22
13
|
import React, { useEffect, useState } from 'react';
|
|
23
14
|
import { DragDropContext, Droppable, Draggable, } from 'react-beautiful-dnd';
|
|
@@ -30,27 +21,11 @@ var getStickyComponent = function (columns, stickyTo, displayColumnsWidth) {
|
|
|
30
21
|
};
|
|
31
22
|
var HeadRow = function (_a) {
|
|
32
23
|
var _b;
|
|
33
|
-
var columns = _a.columns, actionColumn = _a.actionColumn, onAddSort = _a.onAddSort,
|
|
24
|
+
var columns = _a.columns, actionColumn = _a.actionColumn, onAddSort = _a.onAddSort, handleDragEnd = _a.handleDragEnd, _c = _a.sortingValues, sortingValues = _c === void 0 ? [] : _c, displayColumnsWidth = _a.displayColumnsWidth, columnLayout = _a.columnLayout, handleResizeDrag = _a.handleResizeDrag, groups = _a.groups;
|
|
34
25
|
var _d = useState(false), showUIElements = _d[0], setShowUIElements = _d[1];
|
|
35
26
|
useEffect(function () {
|
|
36
27
|
setShowUIElements(true);
|
|
37
28
|
}, []);
|
|
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]);
|
|
54
29
|
var _e = useState(false), isDragDisabled = _e[0], setIsDragDisabled = _e[1];
|
|
55
30
|
var onResizeOver = React.useCallback(function () {
|
|
56
31
|
setIsDragDisabled(true);
|
|
@@ -1,23 +1,25 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { DropResult } from 'react-beautiful-dnd';
|
|
3
2
|
import { CommonGridProps, GridActionsType, GridSelectorsType } from '../types';
|
|
3
|
+
import React from 'react';
|
|
4
4
|
type Props = {
|
|
5
5
|
columns: CommonGridProps['columnsDefinitions'];
|
|
6
6
|
gridActions: GridActionsType;
|
|
7
7
|
gridSelectors: GridSelectorsType;
|
|
8
8
|
onClose?: () => void;
|
|
9
|
+
hideColumnConfig?: boolean;
|
|
9
10
|
};
|
|
10
|
-
declare const useManageColumn: ({ columns, gridSelectors, gridActions, onClose }: Props) => {
|
|
11
|
+
declare const useManageColumn: ({ columns, gridSelectors, gridActions, onClose, hideColumnConfig }: Props) => {
|
|
11
12
|
columnsConfigValues: string[];
|
|
12
|
-
setColumnsConfigOptions:
|
|
13
|
+
setColumnsConfigOptions: React.Dispatch<React.SetStateAction<{
|
|
13
14
|
[x: string]: {
|
|
14
15
|
isHidden?: boolean | undefined;
|
|
15
16
|
};
|
|
16
17
|
}>>;
|
|
17
18
|
onConfirmForm: () => void;
|
|
18
19
|
resetColumnConfig: () => void;
|
|
19
|
-
handleDragEnd: (item: DropResult) => void;
|
|
20
|
+
handleDragEnd: (isManageModal?: boolean) => (item: DropResult) => void;
|
|
20
21
|
onCloseForm: () => void;
|
|
21
22
|
displayColumnsDefinitions: import("../types").ColumnDefinition<string>[];
|
|
23
|
+
manageColumnsFormDefinitions: import("../types").ColumnDefinition<string>[];
|
|
22
24
|
};
|
|
23
25
|
export default useManageColumn;
|
|
@@ -19,12 +19,13 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
19
19
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
20
|
};
|
|
21
21
|
import { useCallback, useMemo, useState } from 'react';
|
|
22
|
+
import { isColumnOn } from '../utils';
|
|
22
23
|
var useManageColumn = function (_a) {
|
|
23
|
-
var columns = _a.columns, gridSelectors = _a.gridSelectors, gridActions = _a.gridActions, onClose = _a.onClose;
|
|
24
|
+
var columns = _a.columns, gridSelectors = _a.gridSelectors, gridActions = _a.gridActions, onClose = _a.onClose, hideColumnConfig = _a.hideColumnConfig;
|
|
24
25
|
var resetGrid = gridActions.resetGrid, setColumnConfig = gridActions.setColumnConfig, setColumnsOrder = gridActions.setColumnsOrder;
|
|
25
26
|
var columnConfig = gridSelectors.columnConfig, columnsOrder = gridSelectors.columnsOrder;
|
|
26
27
|
var _b = useState(__assign({}, columnConfig)), columnsConfigOptions = _b[0], setColumnsConfigOptions = _b[1];
|
|
27
|
-
var _c = useState(columnsOrder
|
|
28
|
+
var _c = useState(columnsOrder !== null && columnsOrder !== void 0 ? columnsOrder : []), updatedColumnsOrder = _c[0], setUpdatedColumnsOrder = _c[1];
|
|
28
29
|
console.log('columnConfig', columnConfig);
|
|
29
30
|
console.log('columnsOrder', columnsOrder);
|
|
30
31
|
console.log('columnsConfigOptions', columnsConfigOptions);
|
|
@@ -36,45 +37,57 @@ var useManageColumn = function (_a) {
|
|
|
36
37
|
return (column === null || column === void 0 ? void 0 : column.alwaysOn) || typeof isHidden === 'boolean' ? !isHidden : !(column === null || column === void 0 ? void 0 : column.defaultHidden);
|
|
37
38
|
}).map(function (column) { return column.name; });
|
|
38
39
|
}, [columnConfig, columns]);
|
|
39
|
-
var columnsOrderValues = useMemo(function () {
|
|
40
|
-
var order = (columnsOrder === null || columnsOrder === void 0 ? void 0 : columnsOrder.length) ? columnsOrder : columns.map(function (column) { return column.name; });
|
|
41
|
-
return order;
|
|
42
|
-
}, [columns, columnsOrder]);
|
|
43
40
|
var onConfirmForm = useCallback(function () {
|
|
44
|
-
|
|
41
|
+
setColumnConfig === null || setColumnConfig === void 0 ? void 0 : setColumnConfig(columnsConfigOptions);
|
|
42
|
+
setColumnsOrder === null || setColumnsOrder === void 0 ? void 0 : setColumnsOrder(updatedColumnsOrder);
|
|
43
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
45
44
|
}, [columnsConfigOptions, updatedColumnsOrder, onClose, setColumnConfig]);
|
|
46
45
|
var resetColumnConfig = useCallback(function () {
|
|
47
46
|
setUpdatedColumnsOrder([]);
|
|
48
|
-
|
|
47
|
+
resetGrid === null || resetGrid === void 0 ? void 0 : resetGrid();
|
|
48
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
49
49
|
setColumnsConfigOptions(columnConfig || {});
|
|
50
50
|
}, [onClose, resetGrid]);
|
|
51
51
|
var onCloseForm = useCallback(function () {
|
|
52
52
|
setUpdatedColumnsOrder(columnsOrder !== null && columnsOrder !== void 0 ? columnsOrder : []);
|
|
53
53
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
54
54
|
}, []);
|
|
55
|
-
var handleDragEnd = useCallback(function (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
55
|
+
var handleDragEnd = useCallback(function (isManageModal) {
|
|
56
|
+
if (isManageModal === void 0) { isManageModal = false; }
|
|
57
|
+
return function (item) {
|
|
58
|
+
var destination = item.destination, source = item.source;
|
|
59
|
+
var to = destination === null || destination === void 0 ? void 0 : destination.index;
|
|
60
|
+
var from = source === null || source === void 0 ? void 0 : source.index;
|
|
61
|
+
if (to === from || !destination) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
var newOrderColumns = __spreadArray([], (updatedColumnsOrder !== null && updatedColumnsOrder !== void 0 ? updatedColumnsOrder : []), true);
|
|
65
|
+
var fromIndex = newOrderColumns.findIndex(function (column) { return columns[from].name === column; });
|
|
66
|
+
var toIndex = newOrderColumns.findIndex(function (column) { return to && columns[to].name === column; });
|
|
67
|
+
// move column from a position to the new position
|
|
68
|
+
var column = newOrderColumns[fromIndex];
|
|
69
|
+
newOrderColumns.splice(fromIndex, 1);
|
|
70
|
+
newOrderColumns.splice(toIndex < 0 ? 0 : toIndex, 0, column);
|
|
71
|
+
if (!isManageModal) {
|
|
72
|
+
setColumnsOrder === null || setColumnsOrder === void 0 ? void 0 : setColumnsOrder(newOrderColumns);
|
|
73
|
+
}
|
|
74
|
+
setUpdatedColumnsOrder(newOrderColumns);
|
|
75
|
+
};
|
|
70
76
|
}, [columns, updatedColumnsOrder]);
|
|
71
77
|
var displayColumnsDefinitions = useMemo(function () {
|
|
72
|
-
return columns.sort(function (col1, col2) {
|
|
78
|
+
return (!hideColumnConfig ? columns.filter(function (column) { return isColumnOn(column, columnConfig); }) : columns).sort(function (col1, col2) {
|
|
73
79
|
var i = (columnsOrder || []).indexOf(col1.name);
|
|
74
80
|
var j = (columnsOrder || []).indexOf(col2.name);
|
|
75
81
|
return i > j ? 1 : i < j ? -1 : 0;
|
|
76
82
|
});
|
|
77
|
-
}, [columns, columnsOrder]);
|
|
83
|
+
}, [hideColumnConfig, columnConfig, columns, columnsOrder]);
|
|
84
|
+
var manageColumnsFormDefinitions = useMemo(function () {
|
|
85
|
+
return (!hideColumnConfig ? columns.filter(function (column) { return isColumnOn(column, columnConfig); }) : columns).sort(function (col1, col2) {
|
|
86
|
+
var i = (updatedColumnsOrder || []).indexOf(col1.name);
|
|
87
|
+
var j = (updatedColumnsOrder || []).indexOf(col2.name);
|
|
88
|
+
return i > j ? 1 : i < j ? -1 : 0;
|
|
89
|
+
});
|
|
90
|
+
}, [hideColumnConfig, columnConfig, columns, columnsOrder]);
|
|
78
91
|
return {
|
|
79
92
|
columnsConfigValues: columnsConfigValues,
|
|
80
93
|
setColumnsConfigOptions: setColumnsConfigOptions,
|
|
@@ -83,6 +96,7 @@ var useManageColumn = function (_a) {
|
|
|
83
96
|
handleDragEnd: handleDragEnd,
|
|
84
97
|
onCloseForm: onCloseForm,
|
|
85
98
|
displayColumnsDefinitions: displayColumnsDefinitions,
|
|
99
|
+
manageColumnsFormDefinitions: manageColumnsFormDefinitions,
|
|
86
100
|
};
|
|
87
101
|
};
|
|
88
102
|
export default useManageColumn;
|
|
@@ -6,8 +6,10 @@ 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, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, columnsDefinitions, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction, onRowEditClick, onRowReadClick, onRowClick, columnLayout,
|
|
9
|
+
export declare const CommonGridWithStyles: import("styled-components").StyledComponent<({ filters, handleDragEnd, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, columnsDefinitions, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction, onRowEditClick, onRowReadClick, onRowClick, columnLayout, displayColumnsDefinitions, 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[];
|
|
11
13
|
}) => JSX.Element, import("@xstyled/system").Theme, {
|
|
12
14
|
onRowClick?: Function | undefined;
|
|
13
15
|
height?: number | undefined;
|