@mailstep/design-system 0.7.54 → 0.7.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/package.json +7 -3
  2. package/ui/Blocks/CommonGrid/CommonGrid.d.ts +2 -2
  3. package/ui/Blocks/CommonGrid/CommonGrid.js +1 -1
  4. package/ui/Blocks/CommonGrid/components/GridModals/index.d.ts +3 -3
  5. package/ui/Blocks/CommonGrid/components/HeadCell.d.ts +16 -0
  6. package/ui/Blocks/CommonGrid/components/HeadCell.js +29 -0
  7. package/ui/Blocks/CommonGrid/components/HeadRow.d.ts +4 -5
  8. package/ui/Blocks/CommonGrid/components/HeadRow.js +12 -13
  9. package/ui/Blocks/CommonGrid/components/ManageColumnForm/ManageColumnForm.d.ts +7 -8
  10. package/ui/Blocks/CommonGrid/components/ManageColumnForm/ManageColumnForm.js +10 -25
  11. package/ui/Blocks/CommonGrid/components/ManageColumnForm/components/ManageColumnRow.d.ts +11 -0
  12. package/ui/Blocks/CommonGrid/components/ManageColumnForm/components/ManageColumnRow.js +41 -0
  13. package/ui/Blocks/CommonGrid/components/ManageColumnForm/styles.d.ts +2 -0
  14. package/ui/Blocks/CommonGrid/components/ManageColumnForm/styles.js +8 -2
  15. package/ui/Blocks/CommonGrid/components/Table.d.ts +6 -2
  16. package/ui/Blocks/CommonGrid/components/Table.js +1 -1
  17. package/ui/Blocks/CommonGrid/hooks/useManageColumn.d.ts +2 -2
  18. package/ui/Blocks/CommonGrid/hooks/useManageColumn.js +11 -12
  19. package/ui/Blocks/CommonGrid/storybook/utils/columnDefinition.js +21 -13
  20. package/ui/Blocks/CommonGrid/storybook/utils/withRedux.d.ts +1 -0
  21. package/ui/Blocks/CommonGrid/storybook/utils/withRedux.js +5 -3
  22. package/ui/Blocks/CommonGrid/styles.d.ts +1 -1
  23. package/ui/index.es.js +23917 -27135
  24. package/ui/index.umd.js +653 -822
  25. package/ui/Blocks/CommonGrid/components/ManageColumnForm/components/ActionRow.d.ts +0 -12
  26. package/ui/Blocks/CommonGrid/components/ManageColumnForm/components/ActionRow.js +0 -30
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mailstep/design-system",
3
- "version": "0.7.54",
3
+ "version": "0.7.55",
4
4
  "license": "ISC",
5
5
  "type": "module",
6
6
  "main": "./ui/index.js",
@@ -26,6 +26,9 @@
26
26
  "@babel/preset-env": "^7.22.4",
27
27
  "@babel/preset-react": "^7.22.3",
28
28
  "@babel/preset-typescript": "^7.23.3",
29
+ "@dnd-kit/core": "^6.3.1",
30
+ "@dnd-kit/modifiers": "^9.0.0",
31
+ "@dnd-kit/sortable": "^10.0.0",
29
32
  "@fortawesome/fontawesome-svg-core": "^6.3.0",
30
33
  "@fortawesome/free-brands-svg-icons": "^6.1.1",
31
34
  "@fortawesome/pro-duotone-svg-icons": "^6.0.0",
@@ -84,7 +87,6 @@
84
87
  "moment": "^2.30.1",
85
88
  "prettier": "2.8.8",
86
89
  "react": "^18.2.0",
87
- "react-beautiful-dnd": "^13.0.0",
88
90
  "react-dom": "^18.2.0",
89
91
  "react-helmet": "^6.1.0",
90
92
  "react-image": "^4.1.0",
@@ -110,6 +112,9 @@
110
112
  "webpack": "^5.82.1"
111
113
  },
112
114
  "peerDependencies": {
115
+ "@dnd-kit/core": "^6.3.1",
116
+ "@dnd-kit/modifiers": "^9.0.0",
117
+ "@dnd-kit/sortable": "^10.0.0",
113
118
  "@fortawesome/fontawesome-svg-core": "^6.3.0",
114
119
  "@fortawesome/free-brands-svg-icons": "^6.1.1",
115
120
  "@fortawesome/pro-duotone-svg-icons": "^6.0.0",
@@ -127,7 +132,6 @@
127
132
  "luxon": "^3.4.4",
128
133
  "moment": "^2.30.1",
129
134
  "react": "^18.2.0",
130
- "react-beautiful-dnd": "^13.0.0",
131
135
  "react-dom": "^18.2.0",
132
136
  "react-helmet": "^6.1.0",
133
137
  "react-image": "^4.1.0",
@@ -1,8 +1,8 @@
1
- import { DropResult } from 'react-beautiful-dnd';
1
+ import type { DragEndEvent } from '@dnd-kit/core';
2
2
  import type { CommonGridProps, FiltersConfig, ColumnDefinition } from './types';
3
3
  type Props = CommonGridProps & {
4
4
  filters?: FiltersConfig;
5
- handleDragEnd: (item: DropResult) => void;
5
+ handleDragEnd: (item: DragEndEvent) => void;
6
6
  displayColumnsDefinitions: ColumnDefinition[];
7
7
  hasGroups: boolean;
8
8
  hasFilters: boolean;
@@ -62,7 +62,7 @@ var CommonGrid = function (_a) {
62
62
  var commonGridRef = React.useCallback(function (node) {
63
63
  gridBoxRef.current = node;
64
64
  }, []);
65
- 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), width: window.innerWidth, children: GridMessage }) })), ref: commonGridRef, children: [_jsxs("div", { className: "gridHead", children: [hasGroups && (_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 }), hasFilters && (_jsx(FilterRow, { filters: filters, comparators: comparators, 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 &&
65
+ 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), width: window.innerWidth, children: GridMessage }) })), ref: commonGridRef, children: [_jsxs("div", { className: "gridHead", children: [hasGroups && (_jsx(GroupRow, { actionColumn: actionColumnDefinition, columns: displayColumnsDefinitions, displayColumnsWidth: displayColumnsWidth, groups: groups })), _jsx(HeadRow, { columns: displayColumnsDefinitions, onAddSort: addSorting, columnLayout: columnLayout, sortingValues: sorting, displayColumnsWidth: displayColumnsWidth, handleResizeDrag: handleResizeDrag, groups: groups, handleDragEnd: handleDragEnd }), hasFilters && (_jsx(FilterRow, { filters: filters, comparators: comparators, 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 &&
66
66
  rowsData &&
67
67
  displayColumnsDefinitions &&
68
68
  rowsData.map(function (row, index) {
@@ -1,6 +1,6 @@
1
1
  import React, { type FC } from 'react';
2
- import { DropResult } from 'react-beautiful-dnd';
3
- import { ColumnConfig, ColumnDefinition, GridActionsType, GridSelectorsType } from '../../types';
2
+ import type { ColumnConfig, ColumnDefinition, GridActionsType, GridSelectorsType } from '../../types';
3
+ import type { DragEndEvent } from '@dnd-kit/core';
4
4
  type ModalsProps = {
5
5
  manageColumnFormVisible: boolean;
6
6
  onCloseForm: () => void;
@@ -9,7 +9,7 @@ type ModalsProps = {
9
9
  manageColumnsFormDefinitions: ColumnDefinition[];
10
10
  columnsConfigValues: string[];
11
11
  setColumnsConfigOptions: (value: React.SetStateAction<Record<string, ColumnConfig | {}>>) => void;
12
- handleDragEnd: (item: DropResult) => void;
12
+ handleDragEnd: (item: DragEndEvent) => void;
13
13
  gridName?: string;
14
14
  gridSelectors: GridSelectorsType;
15
15
  gridActions: GridActionsType;
@@ -0,0 +1,16 @@
1
+ import type { FC } from 'react';
2
+ import type { Group, Settings, ColumnDefinition, SortingValueType } from '../types';
3
+ type HeadCellProps = {
4
+ column: ColumnDefinition;
5
+ isDragDisabled: boolean;
6
+ displayColumnsWidth: Record<string, number>;
7
+ onResizeOut: () => void;
8
+ onResizeOver: () => void;
9
+ onResize: (column: string) => (width: number) => void;
10
+ sortingValues: Settings['sorting'];
11
+ onSetSort: (column: string, systemName?: string) => (value: SortingValueType) => void;
12
+ group: Group;
13
+ hasResize: boolean;
14
+ };
15
+ export declare const HeadCell: FC<HeadCellProps>;
16
+ export {};
@@ -0,0 +1,29 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { getCellSizeProps, getGroupClassNames, getSortName, getStickyCollClassNames } from '../utils';
14
+ import { useSortable } from '@dnd-kit/sortable';
15
+ import { CSS } from '@dnd-kit/utilities';
16
+ import ColumnTitle from './ColumnTitle';
17
+ import Resize from './Resize';
18
+ import { Cell } from './Table';
19
+ export var HeadCell = function (_a) {
20
+ var _b;
21
+ var column = _a.column, isDragDisabled = _a.isDragDisabled, displayColumnsWidth = _a.displayColumnsWidth, onResizeOut = _a.onResizeOut, onResizeOver = _a.onResizeOver, onResize = _a.onResize, sortingValues = _a.sortingValues, onSetSort = _a.onSetSort, group = _a.group, hasResize = _a.hasResize;
22
+ var _c = useSortable({
23
+ id: column.name,
24
+ disabled: isDragDisabled || !!column.sticky,
25
+ animateLayoutChanges: function () { return false; }
26
+ }), attributes = _c.attributes, listeners = _c.listeners, setNodeRef = _c.setNodeRef, transform = _c.transform, transition = _c.transition;
27
+ var cellClassName = "cell".concat(getStickyCollClassNames(!!(column === null || column === void 0 ? void 0 : column.sticky), column === null || column === void 0 ? void 0 : column.stickTo), " ").concat(getGroupClassNames(group));
28
+ return (_jsxs(Cell, __assign({}, getCellSizeProps(column, displayColumnsWidth[column.name]), attributes, listeners, { className: cellClassName, transition: transition, transform: CSS.Transform.toString(transform), ref: setNodeRef, children: [_jsx(ColumnTitle, { title: column === null || column === void 0 ? void 0 : column.title, isSortable: !!column.sorting, onSetSort: onSetSort(column.name, column.systemName), sortValue: ((_b = sortingValues.find(function (sorting) { return sorting.column === getSortName(column); })) === null || _b === void 0 ? void 0 : _b.direction) || null }), hasResize && onResizeOut && onResizeOver && (_jsx(Resize, { onResize: onResize(column.name), onResizeOver: onResizeOver, onResizeOut: onResizeOut }))] })));
29
+ };
@@ -1,15 +1,14 @@
1
- import type { DropResult } from 'react-beautiful-dnd';
2
- import type { Settings, ColumnDefinition, ActionColumn, GridSelectorsType, Group, CommonGridProps, GridActionsType } from '../types';
1
+ import type { Settings, ColumnDefinition, GridSelectorsType, Group, CommonGridProps, GridActionsType } from '../types';
2
+ import type { DragEndEvent } from '@dnd-kit/core';
3
3
  type HeadRowProps = {
4
- actionColumn?: ActionColumn;
5
4
  columns: ColumnDefinition[];
6
5
  onAddSort: GridActionsType['addSorting'];
7
6
  sortingValues?: Settings['sorting'];
8
7
  displayColumnsWidth: Required<GridSelectorsType>['columnsWidth'];
9
8
  columnLayout: Required<CommonGridProps>['columnLayout'];
10
9
  handleResizeDrag: (column: string, width: number) => void;
11
- handleDragEnd: (item: DropResult) => void;
10
+ handleDragEnd: (event: DragEndEvent) => void;
12
11
  groups: Group[];
13
12
  };
14
- declare const HeadRow: ({ columns, actionColumn, onAddSort, handleDragEnd, sortingValues, displayColumnsWidth, columnLayout, handleResizeDrag, groups }: HeadRowProps) => JSX.Element;
13
+ declare const HeadRow: ({ columns, onAddSort, handleDragEnd, sortingValues, displayColumnsWidth, columnLayout, handleResizeDrag, groups }: HeadRowProps) => JSX.Element;
15
14
  export default HeadRow;
@@ -11,10 +11,11 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
13
  import React, { useEffect, useState } from 'react';
14
- import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
15
- import { getCellSizeProps, getGroupClassNames, getSortName, getStickyCollClassNames } from '../utils';
14
+ import { getCellSizeProps, getStickyCollClassNames } from '../utils';
15
+ import { closestCenter, useSensor, useSensors, DndContext, PointerSensor } from '@dnd-kit/core';
16
+ import { SortableContext, horizontalListSortingStrategy } from '@dnd-kit/sortable';
16
17
  import ColumnTitle from './ColumnTitle';
17
- import Resize from './Resize';
18
+ import { HeadCell } from './HeadCell';
18
19
  import { Row, Cell } from './Table';
19
20
  var getStickyComponent = function (columns, stickyTo, displayColumnsWidth) {
20
21
  var _a;
@@ -24,7 +25,7 @@ var getStickyComponent = function (columns, stickyTo, displayColumnsWidth) {
24
25
  });
25
26
  };
26
27
  var HeadRow = function (_a) {
27
- var columns = _a.columns, actionColumn = _a.actionColumn, onAddSort = _a.onAddSort, handleDragEnd = _a.handleDragEnd, _b = _a.sortingValues, sortingValues = _b === void 0 ? [] : _b, displayColumnsWidth = _a.displayColumnsWidth, columnLayout = _a.columnLayout, handleResizeDrag = _a.handleResizeDrag, groups = _a.groups;
28
+ var columns = _a.columns, onAddSort = _a.onAddSort, handleDragEnd = _a.handleDragEnd, _b = _a.sortingValues, sortingValues = _b === void 0 ? [] : _b, displayColumnsWidth = _a.displayColumnsWidth, columnLayout = _a.columnLayout, handleResizeDrag = _a.handleResizeDrag, groups = _a.groups;
28
29
  var _c = useState(false), showUIElements = _c[0], setShowUIElements = _c[1];
29
30
  useEffect(function () {
30
31
  setShowUIElements(true);
@@ -40,16 +41,14 @@ var HeadRow = function (_a) {
40
41
  handleResizeDrag === null || handleResizeDrag === void 0 ? void 0 : handleResizeDrag(name, width);
41
42
  }; }, [handleResizeDrag]);
42
43
  var onSetSort = React.useCallback(function (name, systemName) { return function (value) {
43
- onAddSort && onAddSort(systemName || name, value);
44
+ onAddSort === null || onAddSort === void 0 ? void 0 : onAddSort(systemName || name, value);
44
45
  }; }, [onAddSort]);
45
- return (_jsx(_Fragment, { children: showUIElements && (_jsx(DragDropContext, { onDragEnd: handleDragEnd, children: _jsx(Droppable, { droppableId: "droppable", direction: "horizontal", isDropDisabled: isDragDisabled, isCombineEnabled: false, ignoreContainerClipping: false, children: function (droppableProvided) { return (_jsxs(Row, __assign({ className: "headRow", accountForScrollbar: false, ref: droppableProvided.innerRef }, droppableProvided.droppableProps, { children: [getStickyComponent(columns, 'left', displayColumnsWidth), columns
46
+ var sensors = useSensors(useSensor(PointerSensor));
47
+ return (_jsx(_Fragment, { children: showUIElements && (_jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: _jsx(SortableContext, { items: columns.map(function (_a) {
48
+ var name = _a.name;
49
+ return name;
50
+ }), strategy: horizontalListSortingStrategy, children: _jsxs(Row, { className: "headRow", children: [getStickyComponent(columns, 'left', displayColumnsWidth), columns
46
51
  .filter(function (item) { return !item.sticky; })
47
- .map(function (column, index) { return (_jsx(Draggable, { draggableId: column.name, index: index, isDragDisabled: isDragDisabled || column.sticky, children: function (_a) {
48
- var _b;
49
- var innerRef = _a.innerRef, draggableProps = _a.draggableProps, dragHandleProps = _a.dragHandleProps;
50
- var hasResize = columnLayout == 'normal' || !!columns[index + 1];
51
- var cellClassName = "cell".concat(getStickyCollClassNames(!!(column === null || column === void 0 ? void 0 : column.sticky), column === null || column === void 0 ? void 0 : column.stickTo), " ").concat(getGroupClassNames(groups[index]));
52
- return (_jsxs(Cell, __assign({}, getCellSizeProps(column, displayColumnsWidth[column.name]), draggableProps, dragHandleProps, { ref: innerRef, className: cellClassName, children: [_jsx(ColumnTitle, { title: column === null || column === void 0 ? void 0 : column.title, isSortable: !!column.sorting, onSetSort: onSetSort(column.name, column.systemName), sortValue: ((_b = sortingValues.find(function (sorting) { return sorting.column == getSortName(column); })) === null || _b === void 0 ? void 0 : _b.direction) || null }), hasResize && onResizeOut && onResizeOver && (_jsx(Resize, { onResize: onResize(column.name), onResizeOver: onResizeOver, onResizeOut: onResizeOut }))] })));
53
- } }, column.name)); }), getStickyComponent(columns, 'right', displayColumnsWidth), droppableProvided.placeholder] }))); } }) })) }));
52
+ .map(function (column, index) { return (_jsx(HeadCell, { column: column, isDragDisabled: isDragDisabled, displayColumnsWidth: displayColumnsWidth, onResizeOut: onResizeOut, onResizeOver: onResizeOver, onResize: onResize, sortingValues: sortingValues, onSetSort: onSetSort, group: groups[index], hasResize: columnLayout === 'normal' || !!columns[index + 1] }, column.name)); }), getStickyComponent(columns, 'right', displayColumnsWidth)] }) }) })) }));
54
53
  };
55
54
  export default HeadRow;
@@ -1,13 +1,12 @@
1
1
  import React from 'react';
2
- import { DropResult } from 'react-beautiful-dnd';
3
- import { ColumnConfig, CommonGridProps } from '../../types';
2
+ import type { FC } from 'react';
3
+ import type { ColumnConfig, CommonGridProps } from '../../types';
4
+ import type { DragEndEvent } from '@dnd-kit/core';
4
5
  type ManageColumnProps = {
5
- columns?: CommonGridProps['columnsDefinitions'];
6
+ columns: CommonGridProps['columnsDefinitions'];
6
7
  columnsConfigValues?: string[];
7
- setColumnsConfigOptions: (value: React.SetStateAction<{
8
- [x: string]: ColumnConfig | {};
9
- }>) => void;
10
- handleDragEnd: (item: DropResult) => void;
8
+ setColumnsConfigOptions: (value: React.SetStateAction<Record<string, ColumnConfig>>) => void;
9
+ handleDragEnd: (item: DragEndEvent) => void;
11
10
  };
12
- declare const ManageColumnForm: ({ columns, columnsConfigValues, setColumnsConfigOptions, handleDragEnd }: ManageColumnProps) => JSX.Element;
11
+ declare const ManageColumnForm: FC<ManageColumnProps>;
13
12
  export default ManageColumnForm;
@@ -1,23 +1,13 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
2
  import { useCallback, useState } from 'react';
14
- import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';
15
3
  import { Input } from '../../../../Forms/Input/Input';
16
- import { ActionRow } from './components/ActionRow';
4
+ import { ManageColumnRow } from './components/ManageColumnRow';
5
+ import { closestCenter, useSensor, useSensors, DndContext, PointerSensor } from '@dnd-kit/core';
6
+ import { restrictToVerticalAxis } from '@dnd-kit/modifiers';
7
+ import { SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';
17
8
  import { i18n } from '@lingui/core';
18
9
  import { x } from '@xstyled/styled-components';
19
- import { RowLayout } from './styles';
20
- import { getTranslatedValue } from './utils';
10
+ var modifiers = [restrictToVerticalAxis];
21
11
  var ManageColumnForm = function (_a) {
22
12
  var columns = _a.columns, columnsConfigValues = _a.columnsConfigValues, setColumnsConfigOptions = _a.setColumnsConfigOptions, handleDragEnd = _a.handleDragEnd;
23
13
  var _b = useState(''), searchedValue = _b[0], setSearchedValue = _b[1];
@@ -27,15 +17,10 @@ var ManageColumnForm = function (_a) {
27
17
  var clear = useCallback(function () {
28
18
  setSearchedValue('');
29
19
  }, [setSearchedValue]);
30
- return (_jsxs(x.div, { children: [_jsx(Input, { icon: "search", type: "text", value: searchedValue, placeholder: i18n._({ id: 'manageColumn.searchPlaceholder', message: 'Find column...' }), onChange: onChangeInputValue, onClear: clear, variant: "gray" }), _jsx(DragDropContext, { onDragEnd: handleDragEnd, children: _jsx(Droppable, { droppableId: "droppable", direction: "vertical", isCombineEnabled: false, ignoreContainerClipping: false, isDropDisabled: !!searchedValue, children: function (droppableProvided) { return (_jsx(x.div, __assign({ h: "400px", overflowY: "scroll", mt: "20px", ref: droppableProvided.innerRef }, droppableProvided.droppableProps, { children: columns === null || columns === void 0 ? void 0 : columns.map(function (column, index) {
31
- var translatedValue = getTranslatedValue(column);
32
- var isVisible = translatedValue &&
33
- translatedValue.toLocaleLowerCase().includes(searchedValue.toLocaleLowerCase()) &&
34
- !column.alwaysOn;
35
- return (_jsx(Draggable, { draggableId: column.name, index: index, isDragDisabled: !!searchedValue, children: function (_a) {
36
- var innerRef = _a.innerRef, draggableProps = _a.draggableProps, dragHandleProps = _a.dragHandleProps;
37
- return (_jsx(RowLayout, __assign({ "$isVisible": isVisible }, draggableProps, { ref: innerRef }, dragHandleProps, { children: _jsx(ActionRow, { column: column, columnsConfigValues: columnsConfigValues, setColumnsConfigOptions: setColumnsConfigOptions, translatedValue: translatedValue }, index) })));
38
- } }, column.name));
39
- }) }))); } }) })] }));
20
+ var sensors = useSensors(useSensor(PointerSensor));
21
+ return (_jsxs(x.div, { children: [_jsx(Input, { icon: "search", type: "text", value: searchedValue, placeholder: i18n._({ id: 'manageColumn.searchPlaceholder', message: 'Find column...' }), onChange: onChangeInputValue, onClear: clear, variant: "gray" }), _jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, modifiers: modifiers, children: _jsx(SortableContext, { items: columns.map(function (_a) {
22
+ var name = _a.name;
23
+ return name;
24
+ }), strategy: verticalListSortingStrategy, children: _jsx(x.div, { h: "400px", overflowY: "scroll", mt: "20px", children: columns.map(function (column) { return (_jsx(ManageColumnRow, { column: column, columnsConfigValues: columnsConfigValues, setColumnsConfigOptions: setColumnsConfigOptions, searchedValue: searchedValue }, column.name)); }) }) }) })] }));
40
25
  };
41
26
  export default ManageColumnForm;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { FC } from 'react';
3
+ import type { ColumnConfig, ColumnDefinition } from '../../../types';
4
+ type ActionRowProps = {
5
+ column: ColumnDefinition;
6
+ columnsConfigValues: string[] | undefined;
7
+ setColumnsConfigOptions: (value: React.SetStateAction<Record<string, ColumnConfig | {}>>) => void;
8
+ searchedValue: string;
9
+ };
10
+ export declare const ManageColumnRow: FC<ActionRowProps>;
11
+ export {};
@@ -0,0 +1,41 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { useCallback, useState } from 'react';
14
+ import { Group } from '../../../../../Elements/Icon/icons/Group';
15
+ import Toggle from '../../../../../Elements/Toggle/Toggle';
16
+ import { H6 } from '../../../../../Elements/Typography/Typography';
17
+ import { RowLayout } from '../styles';
18
+ import { getTranslatedValue } from '../utils';
19
+ import { useSortable } from '@dnd-kit/sortable';
20
+ import { CSS } from '@dnd-kit/utilities';
21
+ import { x } from '@xstyled/styled-components';
22
+ export var ManageColumnRow = function (_a) {
23
+ var _b;
24
+ var column = _a.column, columnsConfigValues = _a.columnsConfigValues, setColumnsConfigOptions = _a.setColumnsConfigOptions, searchedValue = _a.searchedValue;
25
+ var _c = useState((_b = columnsConfigValues === null || columnsConfigValues === void 0 ? void 0 : columnsConfigValues.includes(column.name)) !== null && _b !== void 0 ? _b : false), isSelected = _c[0], setIsSelected = _c[1];
26
+ var handleToggleChange = useCallback(function () {
27
+ setColumnsConfigOptions(function (prevOptions) {
28
+ var _a;
29
+ return __assign(__assign({}, prevOptions), (_a = {}, _a[column.name] = !isSelected ? {} : { isHidden: true }, _a));
30
+ });
31
+ setIsSelected(!isSelected);
32
+ }, [setColumnsConfigOptions, isSelected, column.name]);
33
+ var translatedValue = getTranslatedValue(column);
34
+ var isVisible = (translatedValue === null || translatedValue === void 0 ? void 0 : translatedValue.toLocaleLowerCase().includes(searchedValue.toLocaleLowerCase())) && !column.alwaysOn;
35
+ var _d = useSortable({
36
+ id: column.name,
37
+ disabled: !!searchedValue || !!column.sticky,
38
+ animateLayoutChanges: function () { return false; }
39
+ }), attributes = _d.attributes, listeners = _d.listeners, setNodeRef = _d.setNodeRef, transform = _d.transform, transition = _d.transition;
40
+ return (_jsx(RowLayout, { "$isVisible": isVisible, transition: transition, transform: CSS.Transform.toString(transform), ref: setNodeRef, children: _jsxs(x.div, { display: "flex", alignItems: "center", w: "100%", children: [_jsx(x.div, { w: "28px", children: _jsx(Toggle, { name: "", variant: "grid", onChange: handleToggleChange, spaceAround: false, checked: isSelected }) }), _jsxs(H6, __assign({ variant: "medium", ml: "8px", m: "0", w: "100%", p: "8px", cursor: "grab" }, attributes, listeners, { display: "flex", alignItems: "center", justifyContent: "space-between", children: [translatedValue, _jsx(Group, {})] }))] }) }));
41
+ };
@@ -1,3 +1,5 @@
1
1
  export declare const RowLayout: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {
2
2
  $isVisible: boolean;
3
+ transition?: string | undefined;
4
+ transform?: string | undefined;
3
5
  }, never>;
@@ -3,8 +3,14 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
3
3
  return cooked;
4
4
  };
5
5
  import styled, { th } from '@xstyled/styled-components';
6
- export var RowLayout = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: ", ";\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n height: 52px;\n background-color: white;\n border: 1px solid ", ";\n border-radius: 8px;\n margin-bottom: 15px;\n"], ["\n display: ", ";\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n height: 52px;\n background-color: white;\n border: 1px solid ", ";\n border-radius: 8px;\n margin-bottom: 15px;\n"])), function (_a) {
6
+ export var RowLayout = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: ", ";\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n height: 52px;\n background-color: white;\n border: 1px solid ", ";\n border-radius: 8px;\n margin-bottom: 15px;\n transition: ", ";\n transform: ", ";\n"], ["\n display: ", ";\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n height: 52px;\n background-color: white;\n border: 1px solid ", ";\n border-radius: 8px;\n margin-bottom: 15px;\n transition: ", ";\n transform: ", ";\n"])), function (_a) {
7
7
  var $isVisible = _a.$isVisible;
8
8
  return ($isVisible ? 'flex' : 'none');
9
- }, th.color('lightGray6'));
9
+ }, th.color('lightGray6'), function (_a) {
10
+ var transition = _a.transition;
11
+ return transition;
12
+ }, function (_a) {
13
+ var transform = _a.transform;
14
+ return transform;
15
+ });
10
16
  var templateObject_1;
@@ -1,6 +1,5 @@
1
1
  export declare const Row: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {
2
2
  hasRowClick?: boolean | undefined;
3
- accountForScrollbar?: boolean | undefined;
4
3
  align?: string | undefined;
5
4
  }, never>;
6
5
  export declare const Cell: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {
@@ -8,10 +7,11 @@ export declare const Cell: import("styled-components").StyledComponent<"div", im
8
7
  flexBasis?: number | undefined;
9
8
  flexGrow?: number | undefined;
10
9
  flexShrink?: number | undefined;
10
+ transition?: string | undefined;
11
+ transform?: string | undefined;
11
12
  }, never>;
12
13
  export declare const StyledDataRow: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {
13
14
  hasRowClick?: boolean | undefined;
14
- accountForScrollbar?: boolean | undefined;
15
15
  align?: string | undefined;
16
16
  } & {
17
17
  isEven: boolean;
@@ -21,12 +21,16 @@ export declare const TextCell: import("styled-components").StyledComponent<"div"
21
21
  flexBasis?: number | undefined;
22
22
  flexGrow?: number | undefined;
23
23
  flexShrink?: number | undefined;
24
+ transition?: string | undefined;
25
+ transform?: string | undefined;
24
26
  }, never>;
25
27
  export declare const MessageCell: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {
26
28
  align?: string | undefined;
27
29
  flexBasis?: number | undefined;
28
30
  flexGrow?: number | undefined;
29
31
  flexShrink?: number | undefined;
32
+ transition?: string | undefined;
33
+ transform?: string | undefined;
30
34
  } & {
31
35
  width: number;
32
36
  }, never>;
@@ -4,7 +4,7 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
4
4
  };
5
5
  import styled, { system, th } from '@xstyled/styled-components';
6
6
  export var Row = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", ";\n display: flex;\n min-height: 32px;\n border-bottom: 1px solid rgb(228, 231, 235);\n cursor: ", ";\n"], ["\n ", ";\n display: flex;\n min-height: 32px;\n border-bottom: 1px solid rgb(228, 231, 235);\n cursor: ", ";\n"])), system, function (props) { return (props.hasRowClick ? 'pointer' : 'auto'); });
7
- export var Cell = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", ";\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: ", ";\n"], ["\n ", ";\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: ", ";\n"])), system, function (props) { return props.align; });
7
+ export var Cell = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", ";\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: ", ";\n transition: ", ";\n transform: ", ";\n"], ["\n ", ";\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: ", ";\n transition: ", ";\n transform: ", ";\n"])), system, function (props) { return props.align; }, function (props) { return props.transition; }, function (props) { return props.transform; });
8
8
  export var StyledDataRow = styled(Row)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: ", ";\n"], ["\n background-color: ", ";\n"])), function (props) { return (props.isEven ? th('colors.bgLightGray') : 'white'); });
9
9
  export var TextCell = styled(Cell)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n text-overflow: ellipsis;\n white-space: nowrap;\n"], ["\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
10
10
  export var MessageCell = styled(Cell)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: ", "px;\n position: sticky;\n left: 0;\n"], ["\n width: ", "px;\n position: sticky;\n left: 0;\n"])), function (props) { return props.width; });
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { DropResult } from 'react-beautiful-dnd';
2
+ import { DragEndEvent } from '@dnd-kit/core';
3
3
  import { CommonGridProps, GridActionsType, GridSelectorsType, ColumnDefinition } from '../types';
4
4
  type Props = {
5
5
  columns: CommonGridProps['columnsDefinitions'];
@@ -16,7 +16,7 @@ declare const useManageColumn: ({ columns, gridSelectors, gridActions, onClose }
16
16
  }>>;
17
17
  onConfirmForm: () => void;
18
18
  resetColumnConfig: () => void;
19
- handleDragEnd: (isManageModal?: boolean) => (item: DropResult) => void;
19
+ handleDragEnd: (isManageModal?: boolean) => (event: DragEndEvent) => void;
20
20
  onCloseForm: () => void;
21
21
  displayColumnsDefinitions: ColumnDefinition<string>[];
22
22
  manageColumnsFormDefinitions: ColumnDefinition<string>[];
@@ -64,6 +64,10 @@ var useManageColumn = function (_a) {
64
64
  var sortFunction = function (col1, col2) {
65
65
  var i = (orderValues || []).indexOf(col1.name);
66
66
  var j = (orderValues || []).indexOf(col2.name);
67
+ // if orderValues is defined but the column is not in the order list, keep the default position by column definition
68
+ if (orderValues && (orderValues === null || orderValues === void 0 ? void 0 : orderValues.length) > 0 && i === -1) {
69
+ return 0;
70
+ }
67
71
  return i > j ? 1 : i < j ? -1 : 0;
68
72
  };
69
73
  var sortedList = __spreadArray([], list, true).sort(sortFunction);
@@ -73,21 +77,16 @@ var useManageColumn = function (_a) {
73
77
  var manageColumnsFormDefinitions = useMemo(function () { return getSortedColumns(updatedColumnsOrder, true); }, [updatedColumnsOrder]);
74
78
  var handleDragEnd = useCallback(function (isManageModal) {
75
79
  if (isManageModal === void 0) { isManageModal = false; }
76
- return function (item) {
77
- var destination = item.destination, source = item.source;
78
- var to = destination === null || destination === void 0 ? void 0 : destination.index;
79
- var from = source === null || source === void 0 ? void 0 : source.index;
80
- if (to === from || !destination) {
80
+ return function (event) {
81
+ var active = event.active, over = event.over;
82
+ if (!over || active.id === over.id) {
81
83
  return;
82
84
  }
83
- var columns = isManageModal ? manageColumnsFormDefinitions : displayColumnsDefinitions.filter(function (item) { return !item.sticky; });
84
- var newOrderColumns = __spreadArray([], (isManageModal ? updatedColumnsOrder : columnsOrderValue), true);
85
- var fromIndex = newOrderColumns.findIndex(function (column) { return columns[from].name === column; });
86
- var toIndex = newOrderColumns.findIndex(function (column) { return columns[to !== null && to !== void 0 ? to : 0].name === column; });
87
- // move column from a position to the new position
88
- var column = newOrderColumns[fromIndex];
85
+ var newOrderColumns = __spreadArray([], updatedColumnsOrder, true);
86
+ var fromIndex = updatedColumnsOrder.findIndex(function (column) { return column === active.id; });
87
+ var toIndex = updatedColumnsOrder.findIndex(function (column) { return column === over.id; });
89
88
  newOrderColumns.splice(fromIndex, 1);
90
- newOrderColumns.splice(toIndex === -1 ? 0 : toIndex, 0, column);
89
+ newOrderColumns.splice(toIndex === -1 ? 0 : toIndex, 0, active.id);
91
90
  if (!isManageModal) {
92
91
  setColumnsOrder === null || setColumnsOrder === void 0 ? void 0 : setColumnsOrder(newOrderColumns);
93
92
  }
@@ -13,7 +13,7 @@ var ComplexCell = function (props) {
13
13
  export var oversizedColumnDefinition = new Array(oversizedArrayColumns).fill(null).map(function (unused, index) { return ({
14
14
  name: "column_".concat(index),
15
15
  title: "column_".concat(index),
16
- flexBasis: 120,
16
+ flexBasis: 120
17
17
  }); });
18
18
  export var enumColumn = {
19
19
  name: 'enumColumn',
@@ -22,15 +22,23 @@ export var enumColumn = {
22
22
  filterOptions: enumValues.map(function (v) { return ({ value: v, label: v }); }),
23
23
  filterExtraProps: { isMulti: true, checkAllButton: true },
24
24
  filtering: true,
25
- sorting: false,
25
+ sorting: false
26
26
  };
27
27
  export var columnDefinitions = [
28
+ {
29
+ name: 'hiddenColumn',
30
+ title: 'Hidden column',
31
+ flexBasis: 160,
32
+ filtering: true,
33
+ sorting: true,
34
+ defaultHidden: true
35
+ },
28
36
  {
29
37
  name: 'textColumn',
30
38
  title: 'Text column',
31
39
  flexBasis: 160,
32
40
  filtering: true,
33
- sorting: true,
41
+ sorting: true
34
42
  },
35
43
  enumColumn,
36
44
  {
@@ -39,7 +47,7 @@ export var columnDefinitions = [
39
47
  flexBasis: 160,
40
48
  filtering: true,
41
49
  filteringType: 'number',
42
- sorting: true,
50
+ sorting: true
43
51
  },
44
52
  {
45
53
  name: 'numberFloatColumn',
@@ -49,8 +57,8 @@ export var columnDefinitions = [
49
57
  filteringType: 'number',
50
58
  sorting: true,
51
59
  filterExtraProps: {
52
- isFloat: true,
53
- },
60
+ isFloat: true
61
+ }
54
62
  },
55
63
  {
56
64
  name: 'dateColumn',
@@ -60,8 +68,8 @@ export var columnDefinitions = [
60
68
  filteringType: 'date',
61
69
  sorting: true,
62
70
  filterExtraProps: {
63
- filterTime: true,
64
- },
71
+ filterTime: true
72
+ }
65
73
  },
66
74
  {
67
75
  name: 'boolColumn',
@@ -72,7 +80,7 @@ export var columnDefinitions = [
72
80
  sorting: true,
73
81
  formatRowValue: function (row) {
74
82
  return row.boolColumn ? 'Yes' : 'No';
75
- },
83
+ }
76
84
  },
77
85
  {
78
86
  name: 'advancedColumn',
@@ -80,13 +88,13 @@ export var columnDefinitions = [
80
88
  flexBasis: 160,
81
89
  formatRowValue: function (row) {
82
90
  return "".concat((row.numberColumn / 4) * row.textColumn.length);
83
- },
91
+ }
84
92
  },
85
93
  {
86
94
  name: 'complexColumn',
87
95
  title: 'Complex Column',
88
96
  flexBasis: 350,
89
- cellComponent: ComplexCell,
97
+ cellComponent: ComplexCell
90
98
  },
91
99
  {
92
100
  name: 'stickyColumn',
@@ -94,6 +102,6 @@ export var columnDefinitions = [
94
102
  flexBasis: 160,
95
103
  alwaysOn: true,
96
104
  sticky: true,
97
- stickTo: 'right',
98
- },
105
+ stickTo: 'right'
106
+ }
99
107
  ];
@@ -1,2 +1,3 @@
1
+ export declare const reduxComposeEnhancer: any;
1
2
  export declare const withProvider: (story: Function) => JSX.Element;
2
3
  export default withProvider;
@@ -1,12 +1,14 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Provider } from 'react-redux';
3
- import { combineReducers, createStore } from 'redux';
3
+ import { combineReducers, createStore, compose } from 'redux';
4
4
  import commonGridReducer from '../../store';
5
+ // @ts-ignore
6
+ export var reduxComposeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
5
7
  export var withProvider = function (story) {
6
8
  var reducers = combineReducers({
7
- commonGrid: commonGridReducer,
9
+ commonGrid: commonGridReducer
8
10
  });
9
- var store = createStore(reducers);
11
+ var store = createStore(reducers, {}, reduxComposeEnhancer());
10
12
  return _jsx(Provider, { store: store, children: story() });
11
13
  };
12
14
  export default withProvider;
@@ -9,7 +9,7 @@ export declare const CommonGridWrap: import("styled-components").StyledComponent
9
9
  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">;
10
10
  export declare const CommonGridWithStyles: import("styled-components").StyledComponent<({ filters, comparators, handleDragEnd, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction, onRowClick, columnLayout, displayColumnsDefinitions, className, minColumnWidth, errorMessage, floatingButtonProps, hasGroups, hasFilters }: import("./types").CommonGridProps & {
11
11
  filters?: import("./types").FiltersConfig | undefined;
12
- handleDragEnd: (item: import("react-beautiful-dnd").DropResult) => void;
12
+ handleDragEnd: (item: import("@dnd-kit/core").DragEndEvent) => void;
13
13
  displayColumnsDefinitions: import("./types").ColumnDefinition[];
14
14
  hasGroups: boolean;
15
15
  hasFilters: boolean;