@steroidsjs/core 3.0.0-beta.104 → 3.0.0-beta.105

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 (46) hide show
  1. package/docs-autogen-result.json +3192 -1582
  2. package/hooks/useDataProvider.d.ts +17 -2
  3. package/hooks/useList.d.ts +53 -8
  4. package/hooks/useList.js +1 -1
  5. package/package.json +1 -1
  6. package/ui/content/Accordion/Accordion.d.ts +5 -2
  7. package/ui/content/Alert/Alert.d.ts +5 -2
  8. package/ui/content/Badge/Badge.d.ts +5 -1
  9. package/ui/content/Calendar/Calendar.d.ts +6 -1
  10. package/ui/content/Card/Card.d.ts +31 -25
  11. package/ui/content/Chart/Chart.d.ts +10 -2
  12. package/ui/content/Chat/Chat.d.ts +24 -22
  13. package/ui/content/CopyToClipboard/CopyToClipboard.d.ts +3 -3
  14. package/ui/content/Detail/Detail.d.ts +15 -2
  15. package/ui/content/Kanban/hooks/useKanban.d.ts +33 -26
  16. package/ui/form/CheckboxListField/CheckboxListField.d.ts +14 -2
  17. package/ui/form/DateField/useDateRange.d.ts +1 -0
  18. package/ui/form/DateField/useDateRange.js +8 -1
  19. package/ui/form/DateRangeField/DateRangeField.d.ts +11 -1
  20. package/ui/form/DateRangeField/DateRangeField.js +2 -0
  21. package/ui/form/DateTimeRangeField/DateTimeRangeField.d.ts +11 -1
  22. package/ui/form/DateTimeRangeField/DateTimeRangeField.js +2 -0
  23. package/ui/form/DropDownField/DropDownField.d.ts +19 -3
  24. package/ui/form/Field/Field.d.ts +9 -1
  25. package/ui/form/Field/Field.js +1 -1
  26. package/ui/form/Field/fieldWrapper.d.ts +9 -1
  27. package/ui/form/FieldList/FieldList.d.ts +5 -1
  28. package/ui/form/Form/Form.d.ts +21 -3
  29. package/ui/form/ImageField/ImageField.d.ts +9 -1
  30. package/ui/form/InputField/InputField.d.ts +5 -2
  31. package/ui/form/SliderField/SliderField.d.ts +10 -2
  32. package/ui/form/TimeRangeField/TimeRangeField.d.ts +10 -1
  33. package/ui/form/TimeRangeField/TimeRangeField.js +3 -1
  34. package/ui/layout/Tooltip/Tooltip.d.ts +4 -1
  35. package/ui/list/ControlsColumn/ControlsColumn.d.ts +16 -2
  36. package/ui/list/FlexGrid/FlexGrid.d.ts +11 -1
  37. package/ui/list/Grid/Grid.d.ts +42 -6
  38. package/ui/list/LayoutNames/LayoutNames.d.ts +11 -1
  39. package/ui/list/TreeTable/TreeTable.d.ts +39 -15
  40. package/ui/list/TreeTable/TreeTable.js +6 -3
  41. package/ui/modal/Modal/Modal.d.ts +7 -1
  42. package/ui/nav/Breadcrumbs/Breadcrumbs.d.ts +11 -1
  43. package/ui/nav/ButtonGroup/ButtonGroup.d.ts +13 -4
  44. package/ui/nav/Controls/Controls.d.ts +7 -1
  45. package/ui/nav/Nav/Nav.d.ts +15 -2
  46. package/ui/nav/Tree/Tree.d.ts +16 -2
@@ -86,7 +86,11 @@ export interface IDropDownFieldProps extends IFieldWrapperInputProps, Omit<IData
86
86
  groupAttribute?: string;
87
87
  /**
88
88
  * Свойство, которое устанавливает один type и src контента для всех пунктов
89
- * @example {type: 'icon', src: 'user'}
89
+ * @example
90
+ * {
91
+ * type: 'icon',
92
+ * src: 'user'
93
+ * }
90
94
  */
91
95
  itemsContent?: {
92
96
  type: ContentType | string;
@@ -94,7 +98,15 @@ export interface IDropDownFieldProps extends IFieldWrapperInputProps, Omit<IData
94
98
  };
95
99
  /**
96
100
  * Элементы вложенные внутрь DropDownField
97
- * @example [{id: 1, label: 'Ivan Ivanov', type: 'icon', typeSrc: 'user'}]
101
+ * @example
102
+ * [
103
+ * {
104
+ * id: 1,
105
+ * label: 'Ivan Ivanov',
106
+ * type: 'icon',
107
+ * typeSrc: 'user'
108
+ * }
109
+ * ]
98
110
  */
99
111
  items?: IDropDownFieldItem[] | DataProviderItems;
100
112
  /**
@@ -104,7 +116,11 @@ export interface IDropDownFieldProps extends IFieldWrapperInputProps, Omit<IData
104
116
  showEllipses?: boolean;
105
117
  /**
106
118
  * Добавляет кнопку при нажатии на которую выбираются все элементы, работает только при multiple: true
107
- * @example {label: 'All', id: 'all'}
119
+ * @example
120
+ * {
121
+ * label: 'All',
122
+ * id: 'all'
123
+ * }
108
124
  */
109
125
  itemToSelectAll?: boolean | {
110
126
  label: string;
@@ -16,7 +16,15 @@ export interface IFieldProps extends IFieldWrapperInputProps {
16
16
  attribute?: any;
17
17
  /**
18
18
  * Модель с полями формы
19
- * @example {attributes: [{attribute: 'category', field: 'DropDownField'}]}
19
+ * @example
20
+ * {
21
+ * attributes: [
22
+ * {
23
+ * attribute: 'category',
24
+ * field: 'DropDownField'
25
+ * }
26
+ * ]
27
+ * }
20
28
  */
21
29
  model?: Model;
22
30
  /**
@@ -50,7 +50,7 @@ function Field(props) {
50
50
  var fieldModel = (0, react_1.useMemo)(function () {
51
51
  var _a;
52
52
  var model = props.model || context.model;
53
- var modelAttributes = (((_a = components.meta.getModel(model)) === null || _a === void 0 ? void 0 : _a.attributes) || []);
53
+ var modelAttributes = (((_a = components.meta.getModel(model)) === null || _a === void 0 ? void 0 : _a.attributes) || (model === null || model === void 0 ? void 0 : model.attributes) || []);
54
54
  var result = modelAttributes
55
55
  .find(function (field) { return field.attribute === props.attribute; });
56
56
  return result || {};
@@ -16,7 +16,15 @@ export interface IFieldWrapperInputProps {
16
16
  attribute?: string;
17
17
  /**
18
18
  * Модель с полями формы
19
- * @example {attributes: [{attribute: 'category', field: 'DropDownField'}]}
19
+ * @example
20
+ * {
21
+ * attributes: [
22
+ * {
23
+ * attribute: 'category',
24
+ * field: 'DropDownField'
25
+ * }
26
+ * ]
27
+ * }
20
28
  */
21
29
  model?: string | ((...args: any[]) => any) | any;
22
30
  /**
@@ -34,7 +34,11 @@ export interface IFieldListItem extends IFieldWrapperInputProps, IUiComponent {
34
34
  export interface IFieldListProps extends IFieldWrapperInputProps, IUiComponent {
35
35
  /**
36
36
  * Начальные значения в полях
37
- * @example {name: 'Ivan', amount: 5}
37
+ * @example
38
+ * {
39
+ * name: 'Ivan',
40
+ * amount: 5
41
+ * }
38
42
  */
39
43
  initialValues?: {
40
44
  [key: string]: any;
@@ -19,7 +19,15 @@ export interface IFormProps extends IUiComponent {
19
19
  prefix?: string;
20
20
  /**
21
21
  * Модель с полями формы
22
- * @example {attributes: [{attribute: 'category', field: 'DropDownField'}]}
22
+ * @example
23
+ * {
24
+ * attributes: [
25
+ * {
26
+ * attribute: 'category',
27
+ * field: 'DropDownField'
28
+ * }
29
+ * ]
30
+ * }
23
31
  */
24
32
  model?: string | ((...args: any[]) => any) | any;
25
33
  /**
@@ -45,7 +53,11 @@ export interface IFormProps extends IUiComponent {
45
53
  /**
46
54
  * Набор с правилами для проверки соответствия значений полей формы определенному формату.
47
55
  * Проверка запускается в момент отправки формы (в обработчике onSubmit).
48
- * @example [['name', 'required'], ['age', 'integer']]
56
+ * @example
57
+ * [
58
+ * ['name', 'required'],
59
+ * ['age', 'integer']
60
+ * ]
49
61
  */
50
62
  validators?: any[];
51
63
  /**
@@ -97,7 +109,13 @@ export interface IFormProps extends IUiComponent {
97
109
  viewProps?: any;
98
110
  /**
99
111
  * Поля, которые необходимо поместить в форму
100
- * @example [{attribute: 'category', component: 'DropDownField'}]
112
+ * @example
113
+ * [
114
+ * {
115
+ * attribute: 'category',
116
+ * component: 'DropDownField'
117
+ * }
118
+ * ]
101
119
  */
102
120
  fields?: (string | IFieldProps)[];
103
121
  /**
@@ -6,7 +6,15 @@ import { IButtonProps } from '../Button/Button';
6
6
  export interface ICropConfig {
7
7
  /**
8
8
  * Изначальные параметры обрезки изображения
9
- * @example {unit: 'px', aspect: 1, x: 0, y: 0, width: 200, height: 200}
9
+ * @example
10
+ * {
11
+ * unit: 'px',
12
+ * aspect: 1,
13
+ * x: 0,
14
+ * y: 0,
15
+ * width: 200,
16
+ * height: 200
17
+ * }
10
18
  */
11
19
  initialValues?: Crop;
12
20
  /**
@@ -15,7 +15,7 @@ export type IElementInputType = 'button' | 'checkbox' | 'color' | 'date' | 'date
15
15
  export interface IBaseFieldProps extends IFieldWrapperInputProps, IUiComponent {
16
16
  /**
17
17
  * Свойства для элемента input
18
- * @example {onKeyDown: ...}
18
+ * @example { onKeyDown: ... }
19
19
  */
20
20
  inputProps?: InputHTMLAttributes<HTMLInputElement>;
21
21
  /**
@@ -25,7 +25,10 @@ export interface IBaseFieldProps extends IFieldWrapperInputProps, IUiComponent {
25
25
  showClear?: boolean;
26
26
  /**
27
27
  * Свойства для компонента отображения
28
- * @example {customHandler: () => {...}}
28
+ * @example
29
+ * {
30
+ * customHandler: () => {...}
31
+ * }
29
32
  */
30
33
  viewProps?: {
31
34
  [key: string]: any;
@@ -43,7 +43,12 @@ export interface ISliderFieldProps extends IFieldWrapperInputProps, IUiComponent
43
43
  * Метки на ползунке. В объекте '{'key: value'}' key определяет положение, а value определяет, что будет отображаться.
44
44
  * Если вы хотите задать стиль определенной точки метки, значением должен быть объект,
45
45
  * содержащий свойства style и label.
46
- * @example { min: 20, 40: 40, max: 100 }
46
+ * @example
47
+ * {
48
+ * min: 20,
49
+ * 40: 40,
50
+ * max: 100
51
+ * }
47
52
  */
48
53
  marks?: Record<string, {
49
54
  style: {
@@ -54,7 +59,10 @@ export interface ISliderFieldProps extends IFieldWrapperInputProps, IUiComponent
54
59
  /**
55
60
  * Функция, вызываемая после отпускания tip'а у слайдера (при событии onmouseup)
56
61
  * @see https://github.com/schrodinger/rc-slider
57
- * @example {() => console.log('Slider handler is released')}
62
+ * @example
63
+ * {
64
+ * () => console.log('Slider handler is released')
65
+ * }
58
66
  */
59
67
  onAfterChange?: (value: any) => void;
60
68
  [key: string]: any;
@@ -40,9 +40,18 @@ export interface ITimeRangeFieldProps extends IDateInputStateInput, Omit<IFieldW
40
40
  placeholder?: any;
41
41
  /**
42
42
  * Свойства для компонента DayPickerInput
43
- * @example {dayPickerProps: {showWeekNumbers: true}}
43
+ * @example
44
+ * {
45
+ * dayPickerProps: {
46
+ * showWeekNumbers: true
47
+ * }
44
48
  */
45
49
  pickerProps?: any;
50
+ /**
51
+ * Устанавливать ли фокус и показывать панель времени сразу после рендера страницы
52
+ * @example true
53
+ */
54
+ hasInitialFocus?: boolean;
46
55
  [key: string]: any;
47
56
  }
48
57
  export interface ITimeRangeFieldViewProps extends IDateInputStateOutput, Pick<ITimeRangeFieldProps, 'size' | 'errors' | 'showRemove' | 'className' | 'timePanelViewProps' | 'disabled' | 'style' | 'icon'>, Omit<IFieldWrapperOutputProps, 'input'> {
@@ -62,7 +62,8 @@ function TimeRangeField(props) {
62
62
  inputPropsTo: inputPropsTo,
63
63
  inputFrom: props.inputFrom,
64
64
  inputTo: props.inputTo,
65
- useSmartFocus: true
65
+ useSmartFocus: false,
66
+ hasInitialFocus: props.hasInitialFocus
66
67
  }), focus = _c.focus, onClose = _c.onClose, onClear = _c.onClear, extendedInputPropsFrom = _c.extendedInputPropsFrom, extendedInputPropsTo = _c.extendedInputPropsTo;
67
68
  var timePanelFromViewProps = (0, react_1.useMemo)(function () { return (__assign({ onNow: onNowFrom, onClose: onCloseFrom, value: inputPropsFrom.value, onSelect: inputPropsFrom.onChange }, props.timePanelViewProps)); }, [inputPropsFrom.onChange, inputPropsFrom.value, onCloseFrom, onNowFrom, props.timePanelViewProps]);
68
69
  var timePanelToViewProps = (0, react_1.useMemo)(function () { return (__assign({ onNow: onNowTo, onClose: onCloseTo, value: inputPropsTo.value, onSelect: inputPropsTo.onChange }, props.timePanelViewProps)); }, [inputPropsTo.onChange, inputPropsTo.value, onCloseTo, onNowTo, props.timePanelViewProps]);
@@ -73,6 +74,7 @@ TimeRangeField.defaultProps = {
73
74
  displayFormat: 'HH:mm',
74
75
  required: false,
75
76
  showRemove: true,
77
+ hasInitialFocus: false,
76
78
  type: 'text',
77
79
  valueFormat: 'HH:mm',
78
80
  useUTC: true,
@@ -72,7 +72,10 @@ export interface ITooltipProps {
72
72
  style?: ITooltipStylePosition;
73
73
  /**
74
74
  * Стили для позиционирования стрелки
75
- * @example {left: 10}
75
+ * @example
76
+ * {
77
+ * left: 10
78
+ * }
76
79
  */
77
80
  arrowPosition?: ITooltipArrowPosition;
78
81
  /**
@@ -17,13 +17,27 @@ export interface IControlsColumnProps {
17
17
  primaryKey?: string;
18
18
  /**
19
19
  * Коллекция с контролами
20
- * @example [{id: 'delete'}, {id: 'view', position: 'left'}]
20
+ * @example
21
+ * [
22
+ * {
23
+ * id: 'delete'
24
+ * },
25
+ * {
26
+ * id: 'view',
27
+ * position: 'left'
28
+ * }
29
+ * ]
21
30
  */
22
31
  controls?: IControlItem[] | ((item: any, primaryKey: string) => IControlItem[]);
23
32
  /**
24
33
  * Элемент, для которого будет отображаться список с контролами, в нём можно задать видимость контрола
25
34
  * с помощью свойства 'can' + _upperFirst(control.id)
26
- * @example {name: 'Ivan', work: 'development', canView: false}
35
+ * @example
36
+ * {
37
+ * name: 'Ivan',
38
+ * work: 'development',
39
+ * canView: false
40
+ * }
27
41
  */
28
42
  item?: any;
29
43
  /**
@@ -36,7 +36,17 @@ export interface IFlexGridItem {
36
36
  export interface IFlexGridProps extends IUiComponent {
37
37
  /**
38
38
  * Элементы FlexGrid
39
- * @example [{content: 'Block1', col: 4}, {content: 'Block2', col: 6}]
39
+ * @example
40
+ * [
41
+ * {
42
+ * content: 'Block1',
43
+ * col: 4
44
+ * },
45
+ * {
46
+ * content: 'Block2',
47
+ * col: 6
48
+ * }
49
+ * ]
40
50
  */
41
51
  items?: IFlexGridItem[];
42
52
  /**
@@ -18,7 +18,11 @@ export interface IGridColumn {
18
18
  attribute?: string;
19
19
  /**
20
20
  * Свойства для компонента форматирования
21
- * @example {component: DateFormatter, format: 'DD MMMM'}
21
+ * @example
22
+ * {
23
+ * component: DateFormatter,
24
+ * format: 'DD MMMM'
25
+ * }
22
26
  */
23
27
  formatter?: Record<string, any>;
24
28
  /**
@@ -74,7 +78,12 @@ export interface IGridColumn {
74
78
  subtitleAttribute?: string;
75
79
  /**
76
80
  * Параметры для ссылки в колонке
77
- * @example {attribute: 'name', linkProps: {target: 'blank'}, url: 'https://kozhindev.com'}
81
+ * @example
82
+ * {
83
+ * attribute: 'name',
84
+ * linkProps: {target: 'blank'},
85
+ * url: 'https://kozhindev.com'
86
+ * }
78
87
  */
79
88
  link?: {
80
89
  attribute: string;
@@ -83,7 +92,11 @@ export interface IGridColumn {
83
92
  };
84
93
  /**
85
94
  * Параметры для иконки в колонке
86
- * @example {attribute: 'icon', isLeft: true}
95
+ * @example
96
+ * {
97
+ * attribute: 'icon',
98
+ * isLeft: true
99
+ * }
87
100
  */
88
101
  icon?: {
89
102
  attribute: string;
@@ -91,7 +104,11 @@ export interface IGridColumn {
91
104
  };
92
105
  /**
93
106
  * Параметры для картинки в колонке
94
- * @example {attribute: 'icon', isLeft: true}
107
+ * @example
108
+ * {
109
+ * attribute: 'icon',
110
+ * isLeft: true
111
+ * }
95
112
  */
96
113
  picture?: {
97
114
  attribute: string;
@@ -122,13 +139,32 @@ export interface IGridProps extends IListConfig {
122
139
  view?: CustomView;
123
140
  /**
124
141
  * Коллекция с наименованиями и свойствами колонок в таблице
125
- * @example [{label: 'Name', attribute: 'name'}, {label: 'Work', attribute: 'work'}]
142
+ * @example
143
+ * [
144
+ * {
145
+ * label: 'Name',
146
+ * attribute: 'name'
147
+ * },
148
+ * {
149
+ * label: 'Work',
150
+ * attribute: 'work'
151
+ * }
152
+ * ]
126
153
  */
127
154
  columns: (string | IGridColumn)[];
128
155
  /**
129
156
  * Коллекция с элементами управления. Данная коллекция отобразится в колонке рядом с каждой записью в таблице.
130
157
  * Например, кнопки для удаления и детального просмотра записи.
131
- * @example [{id: 'delete'}, {id: 'view', position: 'left'}]
158
+ * @example
159
+ * [
160
+ * {
161
+ * id: 'delete'
162
+ * },
163
+ * {
164
+ * id: 'view',
165
+ * position: 'left'
166
+ * }
167
+ * ]
132
168
  */
133
169
  controls?: IControlItem[] | ((item: any, primaryKey: string) => IControlItem[]);
134
170
  /**
@@ -34,7 +34,17 @@ export interface ILayoutNamesProps {
34
34
  position?: ListControlPosition;
35
35
  /**
36
36
  * Коллекция с шаблонами
37
- * @example [{id: 'list', label: 'List'}, {id: 'grid', label: 'Grid'}]
37
+ * @example
38
+ * [
39
+ * {
40
+ * id: 'list',
41
+ * label: 'List'
42
+ * },
43
+ * {
44
+ * id: 'grid',
45
+ * label: 'Grid'
46
+ * }
47
+ * ]
38
48
  */
39
49
  items?: INavItem[];
40
50
  /**
@@ -1,11 +1,12 @@
1
1
  /// <reference types="react" />
2
2
  import { IColumnViewProps, IGridColumn, IGridProps } from '../Grid/Grid';
3
3
  export interface ITreeColumnViewProps extends IColumnViewProps {
4
- item: {
5
- onTreeItemClick?: (uniqueId: string, item: {
6
- [key: string]: any;
7
- }) => void;
8
- [key: string]: any;
4
+ item: ITreeTableItem & {
5
+ uniqueId: string;
6
+ level: number;
7
+ isOpened: boolean;
8
+ hasItems: boolean;
9
+ onClick: () => void;
9
10
  };
10
11
  }
11
12
  export interface ITreeTableItem {
@@ -15,14 +16,15 @@ export interface ITreeTableItem {
15
16
  id?: string | number;
16
17
  /**
17
18
  * Вложенные элементы
18
- * @example items: [{id: 3, name: 'Ivan'}]
19
+ * @example
20
+ * items: [
21
+ * {
22
+ * id: 3,
23
+ * name: 'Ivan'
24
+ * }
25
+ * ]
19
26
  */
20
- items?: any[];
21
- /**
22
- * Уникальный идентификатор,
23
- * используется для сохранения состояния открыта или закрыта ячейка
24
- */
25
- uniqueId?: string;
27
+ items?: ITreeTableItem[];
26
28
  }
27
29
  /**
28
30
  * TreeTable
@@ -32,9 +34,31 @@ export interface ITreeTableItem {
32
34
  export interface ITreeTableProps extends Omit<IGridProps, 'items'> {
33
35
  /**
34
36
  * Элементы коллекции
35
- * @example [{id: 1, name: 'Jane'}, {id: 2, name: 'John', items: [...]}]
37
+ * @example
38
+ * [
39
+ * {
40
+ * id: 1,
41
+ * name: 'Jane'
42
+ * },
43
+ * {
44
+ * id: 2,
45
+ * name: 'John',
46
+ * items: [...]
47
+ * }
48
+ * ]
36
49
  */
37
50
  items?: ITreeTableItem[];
51
+ /**
52
+ * Расстояние вложенных элементов от родителя для каждого уровня
53
+ * @example 32
54
+ */
55
+ levelPadding?: number | string;
56
+ }
57
+ export declare const addTreeColumnFieldsToFirstColumn: (columns: IGridColumn[], levelPadding: string | number) => IGridColumn[];
58
+ declare function TreeTable(props: ITreeTableProps): JSX.Element;
59
+ declare namespace TreeTable {
60
+ var defaultProps: {
61
+ levelPadding: number;
62
+ };
38
63
  }
39
- export declare const addTreeColumnFieldsToFirstColumn: (columns: IGridColumn[]) => IGridColumn[];
40
- export default function TreeTable(props: ITreeTableProps): JSX.Element;
64
+ export default TreeTable;
@@ -55,15 +55,18 @@ var TREE_COLUMN_VIEW_FIELDS = {
55
55
  valueView: 'TreeColumnView',
56
56
  headerClassName: 'TreeColumnHeader'
57
57
  };
58
- var addTreeColumnFieldsToFirstColumn = function (columns) {
58
+ var addTreeColumnFieldsToFirstColumn = function (columns, levelPadding) {
59
59
  var newColumns = __spreadArray([], columns, true);
60
60
  // Add tree view to the first column
61
- (0, merge_1["default"])(newColumns[0], TREE_COLUMN_VIEW_FIELDS);
61
+ (0, merge_1["default"])(newColumns[0], __assign(__assign({}, TREE_COLUMN_VIEW_FIELDS), { levelPadding: levelPadding }));
62
62
  return newColumns;
63
63
  };
64
64
  exports.addTreeColumnFieldsToFirstColumn = addTreeColumnFieldsToFirstColumn;
65
65
  function TreeTable(props) {
66
- var columns = (0, react_1.useMemo)(function () { return (0, exports.addTreeColumnFieldsToFirstColumn)(props.columns); }, [props.columns]);
66
+ var columns = (0, react_1.useMemo)(function () { return (0, exports.addTreeColumnFieldsToFirstColumn)(props.columns, props.levelPadding); }, [props.columns, props.levelPadding]);
67
67
  return (React.createElement(Grid_1["default"], __assign({}, props, { columns: columns, items: props.items, itemsIndexing: false, hasTreeItems: true })));
68
68
  }
69
69
  exports["default"] = TreeTable;
70
+ TreeTable.defaultProps = {
71
+ levelPadding: 32
72
+ };
@@ -21,7 +21,13 @@ export interface IModalProps {
21
21
  componentProps?: any;
22
22
  /**
23
23
  * Коллекция кнопок, которая отобразится в нижней секции Modal
24
- * @example [{label: __(('Закрыть')), onClick: () => props.onClose()}]
24
+ * @example
25
+ * [
26
+ * {
27
+ * label: __(('Закрыть')),
28
+ * onClick: () => props.onClose()
29
+ * }
30
+ * ]
25
31
  */
26
32
  buttons?: IButtonProps[];
27
33
  /**
@@ -13,7 +13,17 @@ export interface IBreadcrumbsProps {
13
13
  className?: CssClassName;
14
14
  /**
15
15
  * Коллекция элементов навигационной цепочки
16
- * @example [{id: 'root', title: 'Home'}, {id: 'catalog', title: 'Catalog'}]
16
+ * @example
17
+ * [
18
+ * {
19
+ * id: 'root',
20
+ * title: 'Home'
21
+ * },
22
+ * {
23
+ * id: 'catalog',
24
+ * title: 'Catalog'
25
+ * }
26
+ * ]
17
27
  */
18
28
  items?: IRouteItem[];
19
29
  /**
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { Dispatch, SetStateAction } from 'react';
2
2
  import { IButtonProps } from '../../form/Button/Button';
3
3
  import { DataProviderItems } from '../../../hooks/useDataProvider';
4
4
  /**
@@ -9,14 +9,19 @@ import { DataProviderItems } from '../../../hooks/useDataProvider';
9
9
  export interface IButtonGroupProps extends IUiComponent {
10
10
  /**
11
11
  * Элементы для группы кнопок
12
- * @example ['button1', 'button2', 'button3']
12
+ * @example
13
+ * [
14
+ * 'button1',
15
+ * 'button2',
16
+ * 'button3'
17
+ * ]
13
18
  */
14
19
  items: DataProviderItems;
15
20
  /**
16
21
  * Функция, которая будет вызываться при клике по кнопке
17
22
  * @example setActiveTab
18
23
  */
19
- onClick: (value: number | string | boolean) => void;
24
+ onClick: ((value: number | string | boolean) => void) | Dispatch<SetStateAction<string | number | boolean>>;
20
25
  /**
21
26
  * При указании в связке с onClick предоставляет возможность реализовать two-way binding
22
27
  * @example 'button1'
@@ -28,7 +33,11 @@ export interface IButtonGroupProps extends IUiComponent {
28
33
  defaultActiveButton?: number | string;
29
34
  /**
30
35
  * Общие свойства для всех кнопок группы
31
- * @example {outline: true, color: 'secondary'}
36
+ * @example
37
+ * {
38
+ * outline: true,
39
+ * color: 'secondary'
40
+ * }
32
41
  */
33
42
  buttonProps?: IButtonProps;
34
43
  }
@@ -27,7 +27,13 @@ export interface IControlItem extends IButtonProps {
27
27
  export interface IControlsProps {
28
28
  /**
29
29
  * Коллекция контролов
30
- * @example [{id: 'delete', onClick: () => alert("It's deleted")}]
30
+ * @example
31
+ * [
32
+ * {
33
+ * id: 'delete',
34
+ * onClick: () => alert("It's deleted")
35
+ * }
36
+ * ]
31
37
  */
32
38
  items?: IControlItem[];
33
39
  /**
@@ -41,7 +41,10 @@ export interface INavItem extends IButtonProps {
41
41
  content?: any;
42
42
  /**
43
43
  * Свойства для компонента с контентом
44
- * @example {content: 'Some text'}
44
+ * @example
45
+ * {
46
+ * content: 'Some text'
47
+ * }
45
48
  */
46
49
  contentProps?: any;
47
50
  /**
@@ -69,7 +72,17 @@ export interface INavProps {
69
72
  /**
70
73
  * Коллекция с элементами навигации. Также можно передать идентификатор роута, тогда компонент найдет все
71
74
  * вложенные роуты и отобразит их в навигации.
72
- * @example [{id: 1, label: 'One'}, {id: 2, label: 'Two'}] | 'root'
75
+ * @example
76
+ * [
77
+ * {
78
+ * id: 1,
79
+ * label: 'One'
80
+ * },
81
+ * {
82
+ * id: 2,
83
+ * label: 'Two'
84
+ * }
85
+ * ] | 'root'
73
86
  */
74
87
  items?: string | INavItem[];
75
88
  /**