@megafon/ui-core 5.16.0 → 5.18.0

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 (58) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/es/components/Banner/Banner.css +43 -32
  3. package/dist/es/components/Banner/Banner.d.ts +8 -3
  4. package/dist/es/components/Banner/Banner.js +62 -44
  5. package/dist/es/components/Banner/BannerDot.css +9 -16
  6. package/dist/es/components/Banner/BannerDot.d.ts +0 -7
  7. package/dist/es/components/Banner/BannerDot.js +5 -14
  8. package/dist/es/components/Banner/slidesSettings.d.ts +5 -0
  9. package/dist/es/components/Banner/slidesSettings.js +13 -0
  10. package/dist/es/components/Button/Button.css +3 -0
  11. package/dist/es/components/ContentView/ContentView.d.ts +1 -0
  12. package/dist/es/components/ContentView/ContentView.js +9 -3
  13. package/dist/es/components/ListData/ListData.css +162 -0
  14. package/dist/es/components/ListData/ListData.d.ts +94 -0
  15. package/dist/es/components/ListData/ListData.js +203 -0
  16. package/dist/es/components/ListData/ListDataGroup.css +15 -0
  17. package/dist/es/components/ListData/ListDataGroup.d.ts +46 -0
  18. package/dist/es/components/ListData/ListDataGroup.js +195 -0
  19. package/dist/es/components/ListData/components/ListDataSortable.css +79 -0
  20. package/dist/es/components/ListData/components/ListDataSortable.d.ts +34 -0
  21. package/dist/es/components/ListData/components/ListDataSortable.js +102 -0
  22. package/dist/es/components/ListData/doc/i/img.png +0 -0
  23. package/dist/es/components/ListData/helpers.d.ts +6 -0
  24. package/dist/es/components/ListData/helpers.js +40 -0
  25. package/dist/es/components/Search/Search.d.ts +1 -0
  26. package/dist/es/components/Search/Search.js +2 -2
  27. package/dist/es/components/Snackbar/SnackbarTimer/SnackbarTimer.css +1 -1
  28. package/dist/es/index.d.ts +4 -0
  29. package/dist/es/index.js +4 -0
  30. package/dist/lib/components/Banner/Banner.css +43 -32
  31. package/dist/lib/components/Banner/Banner.d.ts +8 -3
  32. package/dist/lib/components/Banner/Banner.js +63 -44
  33. package/dist/lib/components/Banner/BannerDot.css +9 -16
  34. package/dist/lib/components/Banner/BannerDot.d.ts +0 -7
  35. package/dist/lib/components/Banner/BannerDot.js +6 -17
  36. package/dist/lib/components/Banner/slidesSettings.d.ts +5 -0
  37. package/dist/lib/components/Banner/slidesSettings.js +24 -0
  38. package/dist/lib/components/Button/Button.css +3 -0
  39. package/dist/lib/components/ContentView/ContentView.d.ts +1 -0
  40. package/dist/lib/components/ContentView/ContentView.js +8 -2
  41. package/dist/lib/components/ListData/ListData.css +162 -0
  42. package/dist/lib/components/ListData/ListData.d.ts +94 -0
  43. package/dist/lib/components/ListData/ListData.js +229 -0
  44. package/dist/lib/components/ListData/ListDataGroup.css +15 -0
  45. package/dist/lib/components/ListData/ListDataGroup.d.ts +46 -0
  46. package/dist/lib/components/ListData/ListDataGroup.js +229 -0
  47. package/dist/lib/components/ListData/components/ListDataSortable.css +79 -0
  48. package/dist/lib/components/ListData/components/ListDataSortable.d.ts +34 -0
  49. package/dist/lib/components/ListData/components/ListDataSortable.js +129 -0
  50. package/dist/lib/components/ListData/doc/i/img.png +0 -0
  51. package/dist/lib/components/ListData/helpers.d.ts +6 -0
  52. package/dist/lib/components/ListData/helpers.js +58 -0
  53. package/dist/lib/components/Search/Search.d.ts +1 -0
  54. package/dist/lib/components/Search/Search.js +2 -2
  55. package/dist/lib/components/Snackbar/SnackbarTimer/SnackbarTimer.css +1 -1
  56. package/dist/lib/index.d.ts +4 -0
  57. package/dist/lib/index.js +32 -0
  58. package/package.json +5 -3
@@ -0,0 +1,162 @@
1
+ .mfui-list-data {
2
+ position: relative;
3
+ display: -webkit-box;
4
+ display: -ms-flexbox;
5
+ display: flex;
6
+ -webkit-box-align: center;
7
+ -ms-flex-align: center;
8
+ align-items: center;
9
+ -webkit-box-sizing: border-box;
10
+ box-sizing: border-box;
11
+ width: 100%;
12
+ height: -webkit-fit-content;
13
+ height: -moz-fit-content;
14
+ height: fit-content;
15
+ padding: 8px 16px 8px 12px;
16
+ border: none;
17
+ color: var(--content);
18
+ text-decoration: none;
19
+ background-color: transparent;
20
+ -webkit-transition: background-color, opacity;
21
+ transition: background-color, opacity;
22
+ -webkit-transition-duration: 0.3s;
23
+ transition-duration: 0.3s;
24
+ }
25
+ .mfui-list-data__icon-container {
26
+ display: -webkit-box;
27
+ display: -ms-flexbox;
28
+ display: flex;
29
+ -ms-flex-negative: 0;
30
+ flex-shrink: 0;
31
+ -webkit-box-align: center;
32
+ -ms-flex-align: center;
33
+ align-items: center;
34
+ -webkit-box-pack: center;
35
+ -ms-flex-pack: center;
36
+ justify-content: center;
37
+ width: 40px;
38
+ height: 40px;
39
+ margin-right: 8px;
40
+ }
41
+ .mfui-list-data__icon-container svg {
42
+ fill: var(--content);
43
+ }
44
+ .mfui-list-data__icon-container_colored {
45
+ border-radius: 50%;
46
+ background-color: var(--brandGreen20);
47
+ }
48
+ .mfui-list-data__icon-container_colored svg {
49
+ fill: var(--brandGreen);
50
+ }
51
+ .mfui-list-data__icon {
52
+ width: 32px;
53
+ min-width: 32px;
54
+ height: 32px;
55
+ }
56
+ .mfui-list-data__icon_small {
57
+ width: 20px;
58
+ min-width: 20px;
59
+ height: 20px;
60
+ }
61
+ .mfui-list-data__header {
62
+ display: grid;
63
+ grid-template-columns: 100%;
64
+ margin-right: auto;
65
+ padding-left: 4px;
66
+ }
67
+ .mfui-list-data__header_gap {
68
+ padding-right: 8px;
69
+ }
70
+ .mfui-list-data__header_align {
71
+ -ms-flex-item-align: end;
72
+ align-self: flex-end;
73
+ }
74
+ .mfui-list-data__title {
75
+ font-size: 15px;
76
+ line-height: 24px;
77
+ /* stylelint-disable-next-line value-no-vendor-prefix */
78
+ display: -webkit-box;
79
+ overflow: hidden;
80
+ white-space: normal;
81
+ text-overflow: ellipsis;
82
+ -webkit-box-orient: vertical;
83
+ -webkit-line-clamp: 2;
84
+ font-weight: 500;
85
+ line-height: 18px;
86
+ }
87
+ .mfui-list-data__title-link {
88
+ color: var(--content);
89
+ }
90
+ .mfui-list-data__sub-title {
91
+ font-size: 12px;
92
+ line-height: 18px;
93
+ margin-top: 4px;
94
+ overflow: hidden;
95
+ color: var(--spbSky3);
96
+ font-weight: 400;
97
+ white-space: nowrap;
98
+ text-overflow: ellipsis;
99
+ }
100
+ .mfui-list-data__value-container {
101
+ display: grid;
102
+ grid-template-columns: -webkit-min-content;
103
+ grid-template-columns: min-content;
104
+ align-self: flex-start;
105
+ padding-left: 12px;
106
+ }
107
+ .mfui-list-data__value {
108
+ font-size: 15px;
109
+ line-height: 24px;
110
+ /* stylelint-disable-next-line value-no-vendor-prefix */
111
+ display: -webkit-box;
112
+ overflow: hidden;
113
+ white-space: normal;
114
+ text-overflow: ellipsis;
115
+ -webkit-box-orient: vertical;
116
+ -webkit-line-clamp: 2;
117
+ max-width: 110px;
118
+ line-height: 18px;
119
+ }
120
+ .mfui-list-data__value_color_green {
121
+ color: var(--brandGreen);
122
+ }
123
+ .mfui-list-data__sub-value {
124
+ font-size: 12px;
125
+ line-height: 18px;
126
+ max-width: 110px;
127
+ margin-top: 4px;
128
+ overflow: hidden;
129
+ color: var(--spbSky3);
130
+ font-weight: 400;
131
+ white-space: nowrap;
132
+ text-overflow: ellipsis;
133
+ }
134
+ .mfui-list-data__action-icon {
135
+ fill: var(--spbSky3);
136
+ }
137
+ .mfui-list-data__action-icon_active {
138
+ cursor: pointer;
139
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
140
+ -webkit-transition: fill 0.3s;
141
+ transition: fill 0.3s;
142
+ }
143
+ .mfui-list-data__action-icon_active:hover {
144
+ fill: var(--content);
145
+ }
146
+ .mfui-list-data__children_event-none {
147
+ pointer-events: none;
148
+ }
149
+ .mfui-list-data_active:not(.mfui-list-data_disabled) {
150
+ border-radius: 12px;
151
+ cursor: pointer;
152
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
153
+ }
154
+ .mfui-list-data_active:not(.mfui-list-data_disabled):hover {
155
+ background-color: var(--spbSky0);
156
+ }
157
+ .mfui-list-data_disabled {
158
+ opacity: 0.5;
159
+ }
160
+ .mfui-list-data_disabled .mfui-list-data__title-link {
161
+ pointer-events: none;
162
+ }
@@ -0,0 +1,94 @@
1
+ import React from 'react';
2
+ import * as PropTypes from 'prop-types';
3
+ import './ListData.less';
4
+ declare type Target = '_self' | '_blank' | '_parent' | '_top';
5
+ export declare type TitlePropsType = {
6
+ /** Текст заголовка */
7
+ text: string;
8
+ /** Ссылка */
9
+ href: string;
10
+ /** Атрибут ссылки target */
11
+ target?: Target;
12
+ /** Атрибут ссылки rel */
13
+ rel?: string;
14
+ };
15
+ declare const ValueColors: {
16
+ readonly DEFAULT: "default";
17
+ readonly GREEN: "green";
18
+ };
19
+ export declare type ValueColorsType = typeof ValueColors[keyof typeof ValueColors];
20
+ declare const Actions: {
21
+ readonly DELETE: "delete";
22
+ readonly CONTROL: "control";
23
+ };
24
+ export declare type ActionsType = typeof Actions[keyof typeof Actions];
25
+ export interface IListDataProps {
26
+ /** Заголовок */
27
+ title: string | TitlePropsType;
28
+ /** Подзаголовок */
29
+ subTitle?: string;
30
+ /** Значение */
31
+ value?: string;
32
+ /** Цвет */
33
+ valueColor?: ValueColorsType;
34
+ /** Дополнительное значение */
35
+ subValue?: string;
36
+ /** Иконка */
37
+ icon?: JSX.Element;
38
+ /** Фоновая заливка у иконки */
39
+ isIconColored?: boolean;
40
+ /** Аватар */
41
+ avatar?: JSX.Element;
42
+ /** Отключение компонента */
43
+ disabled?: boolean;
44
+ /** Элемент дополнительного действия */
45
+ actionType?: ActionsType;
46
+ /** Обработчик дополнительного действия */
47
+ onAction?: (e: React.SyntheticEvent<EventTarget>) => void;
48
+ /** Обработчик клика */
49
+ onClick?: (e: React.SyntheticEvent<EventTarget>) => void;
50
+ /** Дополнительный класс корневого элемента */
51
+ className?: string;
52
+ /** Дополнительные классы для внутренних элементов */
53
+ classes?: {
54
+ root?: string;
55
+ title?: string;
56
+ subtitle?: string;
57
+ };
58
+ /** Дополнительные data атрибуты к внутренним элементам */
59
+ dataAttrs?: {
60
+ root?: Record<string, string>;
61
+ actionIcon?: Record<string, string>;
62
+ };
63
+ /** Дочерние элементы: Button, Selector */
64
+ children?: React.ReactNode;
65
+ }
66
+ declare const ListData: React.FC<IListDataProps>;
67
+ export declare const ListDataPropType: {
68
+ title: PropTypes.Validator<string | PropTypes.InferProps<{
69
+ text: PropTypes.Validator<string>;
70
+ href: PropTypes.Validator<string>;
71
+ target: PropTypes.Requireable<string>;
72
+ rel: PropTypes.Requireable<string>;
73
+ }>>;
74
+ subTitle: PropTypes.Requireable<string>;
75
+ value: PropTypes.Requireable<string>;
76
+ valueColor: PropTypes.Requireable<"default" | "green">;
77
+ subValue: PropTypes.Requireable<string>;
78
+ icon: PropTypes.Requireable<PropTypes.ReactElementLike>;
79
+ isIconColored: PropTypes.Requireable<boolean>;
80
+ avatar: PropTypes.Requireable<PropTypes.ReactElementLike>;
81
+ disabled: PropTypes.Requireable<boolean>;
82
+ actionType: PropTypes.Requireable<"delete" | "control">;
83
+ onAction: PropTypes.Requireable<(...args: any[]) => any>;
84
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
85
+ className: PropTypes.Requireable<string>;
86
+ classes: PropTypes.Requireable<{
87
+ [x: string]: string | null | undefined;
88
+ }>;
89
+ dataAttrs: PropTypes.Requireable<{
90
+ [x: string]: object | null | undefined;
91
+ }>;
92
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
93
+ };
94
+ export default ListData;
@@ -0,0 +1,203 @@
1
+ import _typeof from "@babel/runtime/helpers/typeof";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _extends from "@babel/runtime/helpers/extends";
4
+ import "core-js/modules/es.parse-int.js";
5
+ import "core-js/modules/es.object.values.js";
6
+ import React from 'react';
7
+ import { cnCreate, convert, filterDataAttrs, textConvertConfig } from '@megafon/ui-helpers';
8
+ import * as PropTypes from 'prop-types';
9
+ import "./ListData.css";
10
+
11
+ var DeleteIcon = function DeleteIcon(props) {
12
+ return /*#__PURE__*/React.createElement("svg", _extends({
13
+ viewBox: "0 0 20 20"
14
+ }, props), /*#__PURE__*/React.createElement("path", {
15
+ d: "M16 4h-3.2c-.4-1.2-1.5-2-2.8-2s-2.4.8-2.8 2H4v4h1l1 10h8l1-10h1V4zM5 5h3v-.4C8.2 3.7 9.1 3 10 3s1.8.7 2 1.6V5h3v2H5V5zm8 12H7l-.9-9H14l-1 9z"
16
+ }));
17
+ };
18
+
19
+ var NothingIcon = function NothingIcon(props) {
20
+ return /*#__PURE__*/React.createElement("svg", _extends({
21
+ viewBox: "0 0 32 32"
22
+ }, props), /*#__PURE__*/React.createElement("circle", {
23
+ cx: 21,
24
+ cy: 16,
25
+ r: 1.5
26
+ }), /*#__PURE__*/React.createElement("circle", {
27
+ cx: 16,
28
+ cy: 16,
29
+ r: 1.5
30
+ }), /*#__PURE__*/React.createElement("circle", {
31
+ cx: 11,
32
+ cy: 16,
33
+ r: 1.5
34
+ }));
35
+ };
36
+
37
+ var LINE_COUNT = 2;
38
+ var ValueColors = {
39
+ DEFAULT: 'default',
40
+ GREEN: 'green'
41
+ };
42
+ var Actions = {
43
+ DELETE: 'delete',
44
+ CONTROL: 'control'
45
+ };
46
+ var cn = cnCreate('mfui-list-data');
47
+
48
+ var ListData = function ListData(_ref) {
49
+ var title = _ref.title,
50
+ subTitle = _ref.subTitle,
51
+ value = _ref.value,
52
+ valueColor = _ref.valueColor,
53
+ subValue = _ref.subValue,
54
+ icon = _ref.icon,
55
+ _ref$isIconColored = _ref.isIconColored,
56
+ isIconColored = _ref$isIconColored === void 0 ? false : _ref$isIconColored,
57
+ avatar = _ref.avatar,
58
+ _ref$disabled = _ref.disabled,
59
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
60
+ actionType = _ref.actionType,
61
+ onClick = _ref.onClick,
62
+ onAction = _ref.onAction,
63
+ className = _ref.className,
64
+ _ref$classes = _ref.classes,
65
+ classes = _ref$classes === void 0 ? {} : _ref$classes,
66
+ dataAttrs = _ref.dataAttrs,
67
+ children = _ref.children;
68
+ var valueRef = React.useRef(null);
69
+
70
+ var _React$useState = React.useState('right'),
71
+ _React$useState2 = _slicedToArray(_React$useState, 2),
72
+ valueAlignment = _React$useState2[0],
73
+ setValueAlignment = _React$useState2[1];
74
+
75
+ var isActive = !!onClick && !(_typeof(title) === 'object' && (title === null || title === void 0 ? void 0 : title.href));
76
+ var showActionElement = !!actionType || !!children;
77
+
78
+ var handleClick = function handleClick(e) {
79
+ !disabled && (onClick === null || onClick === void 0 ? void 0 : onClick(e));
80
+ };
81
+
82
+ var handleAction = React.useCallback(function (e) {
83
+ e.stopPropagation();
84
+ !disabled && (onAction === null || onAction === void 0 ? void 0 : onAction(e));
85
+ }, [disabled, onAction]);
86
+ React.useEffect(function () {
87
+ if (!valueRef.current) {
88
+ return;
89
+ }
90
+
91
+ var lineHeight = parseInt(getComputedStyle(valueRef.current).lineHeight, 10);
92
+ var actualHeight = valueRef.current.offsetHeight;
93
+ var currentLineCount = actualHeight / lineHeight;
94
+ setValueAlignment(currentLineCount >= LINE_COUNT ? 'left' : 'right');
95
+ }, [value]);
96
+ var renderedTitle = /*#__PURE__*/React.createElement("div", {
97
+ className: cn('title', [classes.title])
98
+ }, typeof title === 'string' ? title : /*#__PURE__*/React.createElement("a", {
99
+ className: cn('title-link'),
100
+ href: title.href,
101
+ target: title === null || title === void 0 ? void 0 : title.target,
102
+ rel: title === null || title === void 0 ? void 0 : title.rel
103
+ }, title.text));
104
+
105
+ var renderIcon = function renderIcon() {
106
+ if (!icon && !avatar) {
107
+ return null;
108
+ }
109
+
110
+ return /*#__PURE__*/React.createElement("div", {
111
+ className: cn('icon-container', {
112
+ colored: isIconColored && !avatar
113
+ })
114
+ }, avatar || /*#__PURE__*/React.createElement("div", {
115
+ className: cn('icon')
116
+ }, icon));
117
+ };
118
+
119
+ var renderExtraContent = function renderExtraContent() {
120
+ if (children) {
121
+ return /*#__PURE__*/React.createElement("div", {
122
+ className: cn('children', {
123
+ 'event-none': !!onClick
124
+ })
125
+ }, children);
126
+ }
127
+
128
+ if (value) {
129
+ return /*#__PURE__*/React.createElement("div", {
130
+ className: cn('value-container')
131
+ }, /*#__PURE__*/React.createElement("div", {
132
+ className: cn('value', {
133
+ color: valueColor
134
+ }),
135
+ ref: valueRef,
136
+ style: {
137
+ textAlign: valueAlignment
138
+ }
139
+ }, convert(value, textConvertConfig)), !!subValue && /*#__PURE__*/React.createElement("div", {
140
+ className: cn('sub-value')
141
+ }, subValue));
142
+ }
143
+
144
+ if (actionType) {
145
+ var isDelete = actionType === Actions.DELETE;
146
+ var ActionIcon = isDelete ? DeleteIcon : NothingIcon;
147
+ return /*#__PURE__*/React.createElement("div", _extends({
148
+ className: cn('icon', {
149
+ small: isDelete
150
+ })
151
+ }, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.actionIcon), {
152
+ onClick: handleAction
153
+ }), /*#__PURE__*/React.createElement(ActionIcon, {
154
+ className: cn('action-icon', {
155
+ active: !disabled
156
+ })
157
+ }));
158
+ }
159
+
160
+ return null;
161
+ };
162
+
163
+ return /*#__PURE__*/React.createElement("div", _extends({}, filterDataAttrs(dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.root), {
164
+ className: cn({
165
+ active: isActive,
166
+ disabled: disabled
167
+ }, [className, classes.root]),
168
+ onClick: handleClick
169
+ }), renderIcon(), /*#__PURE__*/React.createElement("div", {
170
+ className: cn('header', {
171
+ gap: showActionElement,
172
+ align: !!subTitle
173
+ })
174
+ }, renderedTitle, !!subTitle && /*#__PURE__*/React.createElement("div", {
175
+ className: cn('sub-title', [classes.subtitle])
176
+ }, subTitle)), renderExtraContent());
177
+ };
178
+
179
+ export var ListDataPropType = {
180
+ title: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({
181
+ text: PropTypes.string.isRequired,
182
+ href: PropTypes.string.isRequired,
183
+ target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),
184
+ rel: PropTypes.string
185
+ })]).isRequired,
186
+ subTitle: PropTypes.string,
187
+ value: PropTypes.string,
188
+ valueColor: PropTypes.oneOf(Object.values(ValueColors)),
189
+ subValue: PropTypes.string,
190
+ icon: PropTypes.element,
191
+ isIconColored: PropTypes.bool,
192
+ avatar: PropTypes.element,
193
+ disabled: PropTypes.bool,
194
+ actionType: PropTypes.oneOf(Object.values(Actions)),
195
+ onAction: PropTypes.func,
196
+ onClick: PropTypes.func,
197
+ className: PropTypes.string,
198
+ classes: PropTypes.objectOf(PropTypes.string),
199
+ dataAttrs: PropTypes.objectOf(PropTypes.object),
200
+ children: PropTypes.node
201
+ };
202
+ ListData.propTypes = ListDataPropType;
203
+ export default ListData;
@@ -0,0 +1,15 @@
1
+ .mfui-list-data-group {
2
+ display: -webkit-box;
3
+ display: -ms-flexbox;
4
+ display: flex;
5
+ -webkit-box-orient: vertical;
6
+ -webkit-box-direction: normal;
7
+ -ms-flex-direction: column;
8
+ flex-direction: column;
9
+ -webkit-box-sizing: border-box;
10
+ box-sizing: border-box;
11
+ overflow-y: hidden;
12
+ }
13
+ .mfui-list-data-group__item_divider:not(:last-child) {
14
+ border-bottom: 1px solid var(--spbSky1);
15
+ }
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ import { DragEndEvent, DragStartEvent } from '@dnd-kit/core';
3
+ import { ActivatorNodesType, GapSizesType } from './components/ListDataSortable';
4
+ import { IListDataProps } from './ListData';
5
+ import './ListDataGroup.less';
6
+ export declare type ListItemPropsType = IListDataProps & {
7
+ id: string | number;
8
+ };
9
+ declare type DragOverlayPropsType = {
10
+ className?: string;
11
+ zIndex?: number;
12
+ };
13
+ export interface IListDataGroupProps {
14
+ /** Массив элементов */
15
+ items: ListItemPropsType[];
16
+ /** Активатор события перетаскивания */
17
+ activatorNode?: ActivatorNodesType;
18
+ /** Отступ между элементами */
19
+ gap?: GapSizesType;
20
+ /** Показать разделитель */
21
+ showDivider?: boolean;
22
+ /** Обработчик начала процесса перетаскивания */
23
+ onDragStart?: (event?: DragStartEvent) => void;
24
+ /** Обработчик окончания процесса перетаскивания */
25
+ onDragEnd?: (items: ListItemPropsType[], event?: DragEndEvent) => void;
26
+ /** Отключить перетаскивание */
27
+ disabled?: boolean;
28
+ /** Параметры DragOverlay элемента */
29
+ dragOverlayProps?: DragOverlayPropsType;
30
+ /** Дополнительный класс корневого элемента */
31
+ className?: string;
32
+ /** Дополнительные классы для внутренних элементов */
33
+ classes?: {
34
+ root?: string;
35
+ cell?: string;
36
+ control?: string;
37
+ };
38
+ /** Дополнительные data атрибуты к внутренним элементам */
39
+ dataAttrs?: {
40
+ root?: Record<string, string>;
41
+ cell?: Record<string, string>;
42
+ control?: Record<string, string>;
43
+ };
44
+ }
45
+ declare const ListDataGroup: React.FC<IListDataGroupProps>;
46
+ export default ListDataGroup;