@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mailstep/design-system",
3
- "version": "0.6.3-beta.5",
3
+ "version": "0.6.3-beta.7",
4
4
  "license": "ISC",
5
5
  "type": "module",
6
6
  "main": "./ui/index.js",
@@ -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, hideColumnConfig, className, gridRef, minColumnWidth, errorMessage, floatingButtonProps, }: Props) => JSX.Element;
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 { isColumnOn, getGroups } from './utils';
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, hideColumnConfig = _a.hideColumnConfig, className = _a.className, gridRef = _a.gridRef, minColumnWidth = _a.minColumnWidth, errorMessage = _a.errorMessage, floatingButtonProps = _a.floatingButtonProps;
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, 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 &&
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
- }), 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 }) }))] }));
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, setColumnsOrder, columnsOrder, sortingValues, displayColumnsWidth, columnLayout, handleResizeDrag, groups, }: HeadRowProps) => JSX.Element;
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, 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;
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: import("react").Dispatch<import("react").SetStateAction<{
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 || columns.map(function (col) { return col.name; })), updatedColumnsOrder = _c[0], setUpdatedColumnsOrder = _c[1];
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
- (setColumnConfig === null || setColumnConfig === void 0 ? void 0 : setColumnConfig(columnsConfigOptions)) && (setColumnsOrder === null || setColumnsOrder === void 0 ? void 0 : setColumnsOrder(updatedColumnsOrder)) && (onClose === null || onClose === void 0 ? void 0 : onClose());
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
- (resetGrid === null || resetGrid === void 0 ? void 0 : resetGrid()) && (onClose === null || onClose === void 0 ? void 0 : onClose());
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 (item) {
56
- var destination = item.destination, source = item.source;
57
- var to = destination === null || destination === void 0 ? void 0 : destination.index;
58
- var from = source === null || source === void 0 ? void 0 : source.index;
59
- if (to === from || !destination) {
60
- return;
61
- }
62
- var newOrderColumns = __spreadArray([], updatedColumnsOrder, true);
63
- var fromIndex = newOrderColumns.findIndex(function (column) { return columns[from].name === column; });
64
- var toIndex = newOrderColumns.findIndex(function (column) { return to && columns[to].name === column; });
65
- // move column from a position to the new position
66
- var column = newOrderColumns[fromIndex];
67
- newOrderColumns.splice(fromIndex, 1);
68
- newOrderColumns.splice(toIndex === -1 ? 0 : toIndex, 0, column);
69
- setUpdatedColumnsOrder(newOrderColumns);
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, hideColumnConfig, className, gridRef, minColumnWidth, errorMessage, floatingButtonProps, }: import("./types").CommonGridProps & {
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;