@steroidsjs/core 3.0.6 → 3.0.8
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/actions/auth.d.ts +2 -2
- package/actions/list.d.ts +2 -2
- package/actions/router.d.ts +1 -3
- package/components/HtmlComponent.d.ts +6 -4
- package/components/HttpComponent.d.ts +21 -5
- package/components/LocaleComponent.d.ts +6 -6
- package/components/MetaComponent.d.ts +9 -0
- package/components/MetricsComponent.d.ts +1 -1
- package/components/SocialComponent.d.ts +1 -1
- package/components/StoreComponent.d.ts +7 -2
- package/components/StoreComponent.js +1 -1
- package/components/WebSocketComponent.d.ts +7 -0
- package/docs-autogen-result.json +185 -152
- package/en.json +4 -1
- package/hooks/useDataProvider.d.ts +1 -1
- package/hooks/useDataSelect.d.ts +1 -1
- package/hooks/useDataSelect.js +5 -0
- package/hooks/useFile.d.ts +5 -5
- package/hooks/useForm.d.ts +2 -1
- package/index.d.ts +10 -0
- package/package.json +1 -1
- package/ui/form/Button/Button.d.ts +3 -3
- package/ui/form/DateField/DateField.d.ts +1 -1
- package/ui/form/Field/Field.d.ts +1 -1
- package/ui/form/FieldList/FieldList.d.ts +3 -3
- package/ui/form/FieldSet/FieldSet.d.ts +2 -2
- package/ui/form/FileField/FileField.d.ts +1 -1
- package/ui/form/FileField/FileField.js +4 -5
- package/ui/form/Form/Form.d.ts +4 -3
- package/ui/form/InputField/InputField.js +4 -3
- package/ui/form/NumberField/NumberField.d.ts +4 -0
- package/ui/form/NumberField/NumberField.js +12 -3
- package/ui/form/NumberField/hooks/useInputTypeNumber.d.ts +1 -1
- package/ui/form/NumberField/hooks/useInputTypeNumber.js +11 -5
- package/ui/form/TimeField/TimeField.d.ts +1 -1
- package/ui/form/TimeRangeField/TimeRangeField.d.ts +1 -1
- package/ui/layout/Tooltip/Tooltip.d.ts +2 -2
- package/ui/list/List/List.d.ts +3 -3
- package/ui/nav/Breadcrumbs/Breadcrumbs.d.ts +2 -2
- package/ui/nav/Controls/Controls.d.ts +1 -1
- package/ui/nav/Nav/Nav.d.ts +3 -3
package/en.json
CHANGED
|
@@ -987,5 +987,8 @@
|
|
|
987
987
|
"Параметры для кнопки отправки формы": "",
|
|
988
988
|
"Конструктор редактора 'ckeditor5-react' из библиотеки @steroidsjs/ckeditor5/packages/ckeditor5-build-classic\nПримечание: для использования встроенного отображения 'HtmlField', данный компонент должен быть передан": "",
|
|
989
989
|
"Компонент редактора 'ckeditor5-react' из библиотеки @ckeditor\nПримечание: для использования встроенного отображения 'HtmlField', данный компонент должен быть передан": "",
|
|
990
|
-
"
|
|
990
|
+
"Допустимое количество символов после разделителя": "",
|
|
991
|
+
"CSS-класс для элемента навигации.": "",
|
|
992
|
+
"Тип данных для параметров маршрута.": "",
|
|
993
|
+
"Обертка над Redux Store со встроенными middleware (thunk, multi, promise..) и react-router.": ""
|
|
991
994
|
}
|
package/hooks/useDataSelect.d.ts
CHANGED
package/hooks/useDataSelect.js
CHANGED
|
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
exports.__esModule = true;
|
|
15
15
|
exports.getFlattenedItems = void 0;
|
|
16
16
|
var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
|
|
17
|
+
var isEmpty_1 = __importDefault(require("lodash-es/isEmpty"));
|
|
17
18
|
var isArray_1 = __importDefault(require("lodash-es/isArray"));
|
|
18
19
|
var isNil_1 = __importDefault(require("lodash-es/isNil"));
|
|
19
20
|
var difference_1 = __importDefault(require("lodash-es/difference"));
|
|
@@ -80,6 +81,10 @@ function useDataSelect(config) {
|
|
|
80
81
|
if (!config.multiple && ids.length > 1) {
|
|
81
82
|
ids = [ids[0]];
|
|
82
83
|
}
|
|
84
|
+
if ((0, isEmpty_1["default"])(ids)) {
|
|
85
|
+
setSelectedIdsInternal([]);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
83
88
|
// If all elements of selectedIds are equal to ids, remove all elements
|
|
84
89
|
if ((0, isEqual_1["default"])(selectedIds, ids)) {
|
|
85
90
|
setSelectedIdsInternal([]);
|
package/hooks/useFile.d.ts
CHANGED
|
@@ -15,20 +15,20 @@ export interface IFileInput {
|
|
|
15
15
|
* Экшен для отправки на бэкенд
|
|
16
16
|
* @example '/api/v1/user/avatar/crop'
|
|
17
17
|
*/
|
|
18
|
-
backendUrl?:
|
|
18
|
+
backendUrl?: string;
|
|
19
19
|
/**
|
|
20
20
|
* Список mime-типов
|
|
21
21
|
*/
|
|
22
|
-
mimeTypes?:
|
|
22
|
+
mimeTypes?: string[];
|
|
23
23
|
/**
|
|
24
24
|
* Использовать только изображения
|
|
25
25
|
*/
|
|
26
|
-
imagesOnly?:
|
|
27
|
-
imagesProcessor?:
|
|
26
|
+
imagesOnly?: boolean;
|
|
27
|
+
imagesProcessor?: string;
|
|
28
28
|
/**
|
|
29
29
|
* Точные размеры изображений
|
|
30
30
|
*/
|
|
31
|
-
imagesExactSize?:
|
|
31
|
+
imagesExactSize?: string;
|
|
32
32
|
/**
|
|
33
33
|
* Начальные файлы
|
|
34
34
|
*/
|
package/hooks/useForm.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
export default function useForm(): {
|
|
2
3
|
formId: string;
|
|
3
4
|
model: any;
|
|
4
5
|
prefix: string | boolean;
|
|
5
6
|
size: string;
|
|
6
|
-
formDispatch: any
|
|
7
|
+
formDispatch: import("react").Dispatch<any>;
|
|
7
8
|
formSelector: (selector: (state: any, setValue: any) => any) => any;
|
|
8
9
|
};
|
package/index.d.ts
CHANGED
|
@@ -79,6 +79,11 @@ declare type CustomStyle = React.CSSProperties;
|
|
|
79
79
|
*/
|
|
80
80
|
declare type CustomView = React.ReactNode | ((props: React.ComponentProps<any>) => JSX.Element);
|
|
81
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Свойства для view компонента
|
|
84
|
+
*/
|
|
85
|
+
declare type CustomViewProps = React.ComponentProps<any>;
|
|
86
|
+
|
|
82
87
|
/**
|
|
83
88
|
* Кастомная иконка
|
|
84
89
|
* @example custom-icon
|
|
@@ -108,3 +113,8 @@ declare interface IUiComponent {
|
|
|
108
113
|
*/
|
|
109
114
|
style?: CustomStyle,
|
|
110
115
|
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Тип данных для параметров маршрута.
|
|
119
|
+
*/
|
|
120
|
+
declare type RouteParams = Record<string, any> | null;
|
package/package.json
CHANGED
|
@@ -31,12 +31,12 @@ export interface IButtonProps extends IUiComponent {
|
|
|
31
31
|
* Текст кнопки или ссылки
|
|
32
32
|
* @example Save
|
|
33
33
|
*/
|
|
34
|
-
label?: string
|
|
34
|
+
label?: string;
|
|
35
35
|
/**
|
|
36
36
|
* Подсказка, отображается при наведении (через тег title)
|
|
37
37
|
* @example Save
|
|
38
38
|
*/
|
|
39
|
-
hint?: string
|
|
39
|
+
hint?: string;
|
|
40
40
|
/**
|
|
41
41
|
* HTML Тип
|
|
42
42
|
* @example submit
|
|
@@ -148,7 +148,7 @@ export interface IButtonProps extends IUiComponent {
|
|
|
148
148
|
/**
|
|
149
149
|
* Цвет текста кнопки или ссылки
|
|
150
150
|
*/
|
|
151
|
-
textColor?:
|
|
151
|
+
textColor?: string;
|
|
152
152
|
[key: string]: any;
|
|
153
153
|
}
|
|
154
154
|
export interface IButtonViewProps extends IButtonProps {
|
package/ui/form/Field/Field.d.ts
CHANGED
|
@@ -70,16 +70,16 @@ export interface IFieldListProps extends IFieldWrapperInputProps, IUiComponent {
|
|
|
70
70
|
/**
|
|
71
71
|
* Пропсы для компонента отображения списка с группами полей - FieldListView
|
|
72
72
|
*/
|
|
73
|
-
viewProps?:
|
|
73
|
+
viewProps?: CustomViewProps;
|
|
74
74
|
/**
|
|
75
75
|
* Переопределение view React компонента для кастомизации отображения группы полей
|
|
76
76
|
* @example MyCustomView
|
|
77
77
|
*/
|
|
78
|
-
itemView?:
|
|
78
|
+
itemView?: CustomView;
|
|
79
79
|
/**
|
|
80
80
|
* Пропсы для компонента отображения группы полей - FieldListItemView
|
|
81
81
|
*/
|
|
82
|
-
itemViewProps?:
|
|
82
|
+
itemViewProps?: CustomViewProps;
|
|
83
83
|
/**
|
|
84
84
|
* При фокусировке на одном из элементов формы и нажатию на клавиши стрелок вверх/вниз + Shift
|
|
85
85
|
* происходит добавление группы полей сверху или снизу соответственно
|
|
@@ -14,7 +14,7 @@ export interface IFieldSetProps extends IFormContext {
|
|
|
14
14
|
* Заголовок для группы полей в форме
|
|
15
15
|
* @example Save
|
|
16
16
|
*/
|
|
17
|
-
label?:
|
|
17
|
+
label?: string;
|
|
18
18
|
/**
|
|
19
19
|
* Переопределение view React компонента для кастомизации отображения
|
|
20
20
|
* @example MyCustomView
|
|
@@ -29,7 +29,7 @@ export interface IFieldSetProps extends IFormContext {
|
|
|
29
29
|
export interface IFieldSetViewProps {
|
|
30
30
|
className?: CssClassName;
|
|
31
31
|
children?: React.ReactNode;
|
|
32
|
-
label?: string
|
|
32
|
+
label?: string;
|
|
33
33
|
}
|
|
34
34
|
declare function FieldSet(props: IFieldSetProps): JSX.Element;
|
|
35
35
|
export default FieldSet;
|
|
@@ -38,11 +38,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
40
|
exports.FilesLayout = void 0;
|
|
41
|
-
var React = __importStar(require("react"));
|
|
42
41
|
var File_1 = __importDefault(require("fileup-core/lib/models/File"));
|
|
43
42
|
var first_1 = __importDefault(require("lodash-es/first"));
|
|
44
43
|
var values_1 = __importDefault(require("lodash-es/values"));
|
|
45
|
-
var react_1 = require("react");
|
|
44
|
+
var react_1 = __importStar(require("react"));
|
|
46
45
|
var useFile_1 = __importDefault(require("../../../hooks/useFile"));
|
|
47
46
|
var hooks_1 = require("../../../hooks");
|
|
48
47
|
var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
|
|
@@ -55,7 +54,7 @@ var FILE_STATUS_END = 'end';
|
|
|
55
54
|
function FileFieldComponent(props) {
|
|
56
55
|
var components = (0, hooks_1.useComponents)();
|
|
57
56
|
var _a = (0, useFile_1["default"])(props), files = _a.files, onBrowse = _a.onBrowse, onRemove = _a.onRemove;
|
|
58
|
-
var _b =
|
|
57
|
+
var _b = react_1["default"].useState(false), isFilesLoaded = _b[0], setIsFilesLoaded = _b[1];
|
|
59
58
|
var FileFieldView = props.view || components.ui.getView('form.FileFieldView');
|
|
60
59
|
var FileFieldItemView = props.itemView || components.ui.getView('form.FileFieldItemView');
|
|
61
60
|
(0, react_1.useEffect)(function () {
|
|
@@ -125,13 +124,13 @@ function FileFieldComponent(props) {
|
|
|
125
124
|
})
|
|
126
125
|
}); }, [FileFieldItemView, files, onBrowse, onRemove, props.buttonProps, props.buttonView, props.className, props.disabled,
|
|
127
126
|
props.filesLayout, props.imagesOnly, props.imagesProcessor, props.itemProps, props.showRemove, props.size]);
|
|
128
|
-
return (
|
|
127
|
+
return (react_1["default"].createElement(FileFieldView, __assign({}, viewProps)));
|
|
129
128
|
}
|
|
130
129
|
function FileField(props) {
|
|
131
130
|
if (process.env.IS_SSR) {
|
|
132
131
|
return null;
|
|
133
132
|
}
|
|
134
|
-
return (
|
|
133
|
+
return (react_1["default"].createElement(FileFieldComponent, __assign({}, props)));
|
|
135
134
|
}
|
|
136
135
|
FileField.defaultProps = {
|
|
137
136
|
disabled: false,
|
package/ui/form/Form/Form.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { IButtonProps } from '@steroidsjs/core/ui/form/Button/Button';
|
|
3
3
|
import { IAddressBarConfig } from '../../../hooks/useAddressBar';
|
|
4
4
|
import { IFieldProps } from '../Field/Field';
|
|
5
|
+
import { providers } from '../../../utils/form';
|
|
5
6
|
/**
|
|
6
7
|
* Form
|
|
7
8
|
*
|
|
@@ -60,7 +61,7 @@ export interface IFormProps extends IUiComponent {
|
|
|
60
61
|
* ['age', 'integer']
|
|
61
62
|
* ]
|
|
62
63
|
*/
|
|
63
|
-
validators?:
|
|
64
|
+
validators?: string[] | Array<string[]> | Array<Record<string, any>>;
|
|
64
65
|
/**
|
|
65
66
|
* Обработчик события перед отправкой формы
|
|
66
67
|
* @param args
|
|
@@ -207,7 +208,7 @@ export interface IFormContext {
|
|
|
207
208
|
/**
|
|
208
209
|
* Провайдер
|
|
209
210
|
*/
|
|
210
|
-
provider?:
|
|
211
|
+
provider?: typeof providers.redux | typeof providers.reducer;
|
|
211
212
|
/**
|
|
212
213
|
* Редьюсер
|
|
213
214
|
*/
|
|
@@ -218,7 +219,7 @@ export interface IFormContext {
|
|
|
218
219
|
/**
|
|
219
220
|
* Диспатч
|
|
220
221
|
*/
|
|
221
|
-
dispatch?: any
|
|
222
|
+
dispatch?: React.Dispatch<any>;
|
|
222
223
|
}
|
|
223
224
|
export declare const FormContext: React.Context<IFormContext>;
|
|
224
225
|
declare function Form(props: IFormProps): JSX.Element;
|
|
@@ -100,8 +100,8 @@ function InputField(props) {
|
|
|
100
100
|
var onClear = React.useCallback(function () { return props.input.onChange(''); }, [props.input]);
|
|
101
101
|
var inputProps = (0, react_1.useMemo)(function () {
|
|
102
102
|
var _a;
|
|
103
|
-
return (__assign({ type: props.type, name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', onInput: onChange, placeholder: props.placeholder
|
|
104
|
-
}, [onChange, props.
|
|
103
|
+
return (__assign({ type: props.type, name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', onInput: onChange, placeholder: props.placeholder }, props.inputProps));
|
|
104
|
+
}, [onChange, props.input.name, props.input.value, props.inputProps, props.placeholder, props.type]);
|
|
105
105
|
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
106
106
|
inputRef: useInputFieldWarningByType_1.INPUT_TYPES_SUPPORTED_SELECTION.includes(props.type) ? inputRef : null,
|
|
107
107
|
onClear: onClear,
|
|
@@ -123,7 +123,8 @@ function InputField(props) {
|
|
|
123
123
|
placeholder: props.placeholder,
|
|
124
124
|
required: props.required,
|
|
125
125
|
id: props.id,
|
|
126
|
-
viewProps: props.viewProps
|
|
126
|
+
viewProps: props.viewProps,
|
|
127
|
+
disabled: props.disabled
|
|
127
128
|
}); }, [inputProps, inputRef, onClear, props]);
|
|
128
129
|
// No render for hidden input
|
|
129
130
|
if (props.type === 'hidden') {
|
|
@@ -22,6 +22,10 @@ export interface INumberFieldProps extends IBaseFieldProps {
|
|
|
22
22
|
* @example 5
|
|
23
23
|
*/
|
|
24
24
|
step?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Допустимое количество символов после разделителя
|
|
27
|
+
*/
|
|
28
|
+
decimal?: number;
|
|
25
29
|
}
|
|
26
30
|
export interface INumberFieldViewProps extends INumberFieldProps, IFieldWrapperOutputProps {
|
|
27
31
|
inputProps: {
|
|
@@ -52,11 +52,20 @@ function NumberField(props) {
|
|
|
52
52
|
min: props.min,
|
|
53
53
|
value: props.input.value,
|
|
54
54
|
required: props.required
|
|
55
|
-
}, onChange).onInputChange;
|
|
55
|
+
}, onChange, props.decimal).onInputChange;
|
|
56
56
|
var onStep = (0, react_1.useCallback)(function (isIncrement) {
|
|
57
57
|
var _a;
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
var currentValue = Number((_a = currentInputRef === null || currentInputRef === void 0 ? void 0 : currentInputRef.current) === null || _a === void 0 ? void 0 : _a.value);
|
|
59
|
+
var newValue;
|
|
60
|
+
var fixToDecimal = function (value) { return props.decimal ? value.toFixed(props.decimal) : value; };
|
|
61
|
+
if (isIncrement) {
|
|
62
|
+
newValue = fixToDecimal(currentValue + step);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
newValue = fixToDecimal(currentValue - step);
|
|
66
|
+
}
|
|
67
|
+
onChange(null, String(newValue));
|
|
68
|
+
}, [currentInputRef, onChange, props.decimal, step]);
|
|
60
69
|
var onStepUp = (0, react_1.useCallback)(function () {
|
|
61
70
|
if (!(Number(currentInputRef.current.value) + step > props.max)) {
|
|
62
71
|
onStep(true);
|
|
@@ -5,7 +5,7 @@ interface IInputTypeNumberProps {
|
|
|
5
5
|
value: string | undefined | null;
|
|
6
6
|
required?: boolean;
|
|
7
7
|
}
|
|
8
|
-
declare const useInputTypeNumber: (currentInputRef: React.MutableRefObject<HTMLInputElement>, inputTypeNumberProps: IInputTypeNumberProps, onChange: (event: React.ChangeEvent<HTMLInputElement>, value?: any) => void) => {
|
|
8
|
+
declare const useInputTypeNumber: (currentInputRef: React.MutableRefObject<HTMLInputElement>, inputTypeNumberProps: IInputTypeNumberProps, onChange: (event: React.ChangeEvent<HTMLInputElement>, value?: any) => void, decimal: number) => {
|
|
9
9
|
onInputChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
10
10
|
};
|
|
11
11
|
export default useInputTypeNumber;
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
exports.__esModule = true;
|
|
6
6
|
var react_1 = __importDefault(require("react"));
|
|
7
|
-
var useInputTypeNumber = function (currentInputRef, inputTypeNumberProps, onChange) {
|
|
7
|
+
var useInputTypeNumber = function (currentInputRef, inputTypeNumberProps, onChange, decimal) {
|
|
8
8
|
react_1["default"].useEffect(function () {
|
|
9
9
|
var _a;
|
|
10
10
|
var defaultValidity = __('The number is not valid.');
|
|
@@ -21,12 +21,18 @@ var useInputTypeNumber = function (currentInputRef, inputTypeNumberProps, onChan
|
|
|
21
21
|
return true;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
* Подходят как отрицательные так и положительные числа
|
|
25
|
-
* @example -1
|
|
24
|
+
* Подходят как отрицательные так и положительные числа с плавающей точкой
|
|
25
|
+
* @example -1.0
|
|
26
|
+
* @example 1.1
|
|
27
|
+
*/
|
|
28
|
+
var numericFloatRegExp = new RegExp("^-?\\d*\\.?\\d{0,".concat(decimal, "}$"));
|
|
29
|
+
/**
|
|
30
|
+
* Подходят как отрицательные так и положительные целые числа
|
|
26
31
|
* @example 1
|
|
32
|
+
* @example -2
|
|
27
33
|
*/
|
|
28
|
-
var
|
|
29
|
-
return
|
|
34
|
+
var numericRegExp = new RegExp('^-?\\d*$');
|
|
35
|
+
return decimal ? numericFloatRegExp.test(value) : numericRegExp.test(value);
|
|
30
36
|
};
|
|
31
37
|
var onInputChange = function (event) {
|
|
32
38
|
var _a;
|
|
@@ -42,7 +42,7 @@ export interface ITooltipProps {
|
|
|
42
42
|
* Текст подсказки
|
|
43
43
|
* @example 'Это всплывающая подсказка.'
|
|
44
44
|
*/
|
|
45
|
-
content?: string
|
|
45
|
+
content?: string;
|
|
46
46
|
/**
|
|
47
47
|
* Вложенные элементы
|
|
48
48
|
*/
|
|
@@ -90,7 +90,7 @@ export interface ITooltipProps {
|
|
|
90
90
|
}
|
|
91
91
|
export interface ITooltipViewProps extends ITooltipProps {
|
|
92
92
|
isTooltipVisible: boolean;
|
|
93
|
-
content: string
|
|
93
|
+
content: string;
|
|
94
94
|
position: PositionType;
|
|
95
95
|
style: ITooltipStylePosition;
|
|
96
96
|
className?: CssClassName;
|
package/ui/list/List/List.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface IListProps extends IListConfig {
|
|
|
13
13
|
/**
|
|
14
14
|
* Свойства для элемента коллекции
|
|
15
15
|
*/
|
|
16
|
-
itemProps?:
|
|
16
|
+
itemProps?: CustomViewProps;
|
|
17
17
|
/**
|
|
18
18
|
* Переопределение view React компонента для кастомизации отображения
|
|
19
19
|
* @example MyCustomView
|
|
@@ -37,8 +37,8 @@ export interface IListItemViewProps {
|
|
|
37
37
|
primaryKey: PrimaryKey;
|
|
38
38
|
item: {
|
|
39
39
|
id?: PrimaryKey;
|
|
40
|
-
title?: string
|
|
41
|
-
label?: string
|
|
40
|
+
title?: string;
|
|
41
|
+
label?: string;
|
|
42
42
|
[key: string]: any;
|
|
43
43
|
};
|
|
44
44
|
index: number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { IRouteItem } from '../Router/Router';
|
|
3
3
|
/**
|
|
4
4
|
* Breadcrumbs
|
|
@@ -55,6 +55,6 @@ export interface IBreadcrumbsProps {
|
|
|
55
55
|
[key: string]: any;
|
|
56
56
|
}
|
|
57
57
|
export type IBreadcrumbsViewProps = IBreadcrumbsProps & {
|
|
58
|
-
routeParams?:
|
|
58
|
+
routeParams?: Record<string, unknown>;
|
|
59
59
|
};
|
|
60
60
|
export default function Breadcrumbs(props: IBreadcrumbsProps): JSX.Element;
|
package/ui/nav/Nav/Nav.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
2
|
import { IButtonProps } from '../../form/Button/Button';
|
|
3
3
|
export interface INavItem extends IButtonProps {
|
|
4
4
|
/**
|
|
@@ -38,7 +38,7 @@ export interface INavItem extends IButtonProps {
|
|
|
38
38
|
* Контент, который отобразится, если элемент навигации будет активен
|
|
39
39
|
* @example ContentComponent
|
|
40
40
|
*/
|
|
41
|
-
content?: any;
|
|
41
|
+
content?: ComponentType<any> | string;
|
|
42
42
|
/**
|
|
43
43
|
* Свойства для компонента с контентом
|
|
44
44
|
* @example
|
|
@@ -46,7 +46,7 @@ export interface INavItem extends IButtonProps {
|
|
|
46
46
|
* content: 'Some text'
|
|
47
47
|
* }
|
|
48
48
|
*/
|
|
49
|
-
contentProps?: any
|
|
49
|
+
contentProps?: Record<string, any>;
|
|
50
50
|
/**
|
|
51
51
|
* Вложенные элементы
|
|
52
52
|
*/
|