@steroidsjs/core 3.0.0-beta.53 → 3.0.0-beta.54
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/list.d.ts +5 -0
- package/actions/list.js +6 -1
- package/components/UiComponent.d.ts +130 -1
- package/hooks/useList.d.ts +5 -0
- package/hooks/useList.js +1 -0
- package/package.json +2 -1
- package/providers/ComponentsProvider.d.ts +2 -1
- package/ui/content/Accordion/AccordionItem.d.ts +2 -1
- package/ui/content/Avatar/Avatar.d.ts +1 -1
- package/ui/content/Calendar/Calendar.d.ts +2 -1
- package/ui/content/Card/Card.d.ts +1 -1
- package/ui/content/CopyToClipboard/CopyToClipboard.d.ts +1 -1
- package/ui/content/Slider/Slider.d.ts +25 -0
- package/ui/content/Slider/Slider.js +19 -0
- package/ui/content/Slider/index.d.ts +2 -0
- package/ui/content/Slider/index.js +7 -0
- package/ui/content/index.d.ts +2 -1
- package/ui/content/index.js +3 -1
- package/ui/form/CheckboxField/CheckboxField.js +7 -2
- package/ui/form/Form/Form.js +6 -2
- package/ui/list/CheckboxColumn/CheckboxColumn.d.ts +2 -2
- package/ui/list/Grid/Grid.d.ts +13 -1
- package/ui/list/List/List.js +1 -0
- package/ui/nav/Tree/Tree.d.ts +1 -1
package/actions/list.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export interface IList {
|
|
|
13
13
|
* Функция обратного вызова, вызываемая при получении списка.
|
|
14
14
|
*/
|
|
15
15
|
onFetch?: (list: IList, query: Record<string, unknown>, components: any) => Promise<any>;
|
|
16
|
+
/**
|
|
17
|
+
* Обработчик события ошибки выполнения запроса
|
|
18
|
+
* @param args
|
|
19
|
+
*/
|
|
20
|
+
onError?: (error: Record<string, any>) => void;
|
|
16
21
|
/**
|
|
17
22
|
* Функция условия, используемая для определения поведения списка на основе параметров запроса.
|
|
18
23
|
*/
|
package/actions/list.js
CHANGED
|
@@ -43,6 +43,7 @@ var createList = function (listId, props) { return ({
|
|
|
43
43
|
action: props.action || props.action === '' ? props.action : null,
|
|
44
44
|
actionMethod: props.actionMethod || 'get',
|
|
45
45
|
onFetch: props.onFetch,
|
|
46
|
+
onError: props.onError,
|
|
46
47
|
condition: props.condition,
|
|
47
48
|
scope: props.scope,
|
|
48
49
|
total: props.total || null,
|
|
@@ -74,7 +75,11 @@ var httpFetchHandler = function (list, query, _a) {
|
|
|
74
75
|
}
|
|
75
76
|
return http
|
|
76
77
|
.send(list.actionMethod, url || window.location.pathname, query)
|
|
77
|
-
.then(function (response) { return response.data; })
|
|
78
|
+
.then(function (response) { return response.data; })["catch"](function (error) {
|
|
79
|
+
if (typeof list.onError === 'function') {
|
|
80
|
+
list.onError(error);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
78
83
|
};
|
|
79
84
|
exports.httpFetchHandler = httpFetchHandler;
|
|
80
85
|
var localFetchHandler = function (list, query) {
|
|
@@ -1,10 +1,139 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
1
2
|
import { ReactNode } from 'react';
|
|
2
3
|
import { IComponents } from '../providers/ComponentsProvider';
|
|
3
4
|
/**
|
|
4
5
|
* Ui Component
|
|
5
6
|
* Компонент для подгрузки и конфигурации UI компонентов приложения
|
|
6
7
|
*/
|
|
7
|
-
export
|
|
8
|
+
export interface IUiApplicationComponent {
|
|
9
|
+
/**
|
|
10
|
+
* Компоненты приложения.
|
|
11
|
+
*/
|
|
12
|
+
components: IComponents;
|
|
13
|
+
/**
|
|
14
|
+
* Иконки для использования в приложении.
|
|
15
|
+
*/
|
|
16
|
+
icons: {
|
|
17
|
+
[name: string]: string | number | ReactNode;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Компоненты полей формы для использования в приложении.
|
|
21
|
+
*/
|
|
22
|
+
fields: any;
|
|
23
|
+
/**
|
|
24
|
+
* Компоненты форматтеры для использования в приложении.
|
|
25
|
+
*/
|
|
26
|
+
formatters: any;
|
|
27
|
+
/**
|
|
28
|
+
* Зарегистрированные компоненты полей формы.
|
|
29
|
+
*/
|
|
30
|
+
_registeredFields: any;
|
|
31
|
+
/**
|
|
32
|
+
* Элемент портала.
|
|
33
|
+
*/
|
|
34
|
+
_portalElement: HTMLElement | null;
|
|
35
|
+
/**
|
|
36
|
+
* Добавляет компоненты представлений.
|
|
37
|
+
* @param {any} components - Компоненты представлений.
|
|
38
|
+
*/
|
|
39
|
+
addViews(components: any): void;
|
|
40
|
+
/**
|
|
41
|
+
* Рендерит компонент представления.
|
|
42
|
+
* @param {any} Component - Компонент или путь к компоненту представления.
|
|
43
|
+
* @param {any} props - Свойства компонента.
|
|
44
|
+
* @param {boolean} [forceNode=false] - Флаг, указывающий на принудительное отображение компонента как узла.
|
|
45
|
+
* @returns {React.ReactElement<any>|null} Возвращает элемент React или null.
|
|
46
|
+
*/
|
|
47
|
+
renderView(Component: any, props: any, forceNode?: boolean): React.ReactElement<any> | null;
|
|
48
|
+
/**
|
|
49
|
+
* Возвращает компонент представления по указанному пути.
|
|
50
|
+
* @param {string} path - Путь к компоненту представления.
|
|
51
|
+
* @returns {any} Компонент представления или undefined, если не найден.
|
|
52
|
+
*/
|
|
53
|
+
getView(path: any): any;
|
|
54
|
+
/**
|
|
55
|
+
* Добавляет компоненты полей формы.
|
|
56
|
+
* @param {any} components - Компоненты полей формы.
|
|
57
|
+
*/
|
|
58
|
+
addFields(components: any): void;
|
|
59
|
+
/**
|
|
60
|
+
* Возвращает компонент поля формы по указанному пути.
|
|
61
|
+
* @param {string} path - Путь к компоненту поля формы.
|
|
62
|
+
* @returns {React.ComponentType<any>|undefined} Компонент поля формы или undefined, если не найден.
|
|
63
|
+
*/
|
|
64
|
+
getField(path: string): React.ComponentType<any> | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Возвращает свойства конфигурации компонента поля формы по указанному пути.
|
|
67
|
+
* @param {string} path - Путь к компоненту поля формы.
|
|
68
|
+
* @param {any} model - Модель.
|
|
69
|
+
* @param {any} attribute - Атрибут.
|
|
70
|
+
* @returns {any} Свойства конфигурации компонента поля формы.
|
|
71
|
+
*/
|
|
72
|
+
getFieldProps(path: string, model?: any, attribute?: any): any;
|
|
73
|
+
/**
|
|
74
|
+
* Добавляет компоненты форматтеров.
|
|
75
|
+
* @param {any} components - Компоненты форматтеров.
|
|
76
|
+
*/
|
|
77
|
+
addFormatters(components: any): void;
|
|
78
|
+
/**
|
|
79
|
+
* Возвращает компонент форматтера по указанному пути.
|
|
80
|
+
* @param {string} path - Путь к компоненту форматтера.
|
|
81
|
+
* @returns {React.ComponentType<any>|undefined} Компонент форматтера или undefined, если не найден.
|
|
82
|
+
*/
|
|
83
|
+
getFormatter(path: string): React.ComponentType<any> | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* Возвращает свойства конфигурации компонента форматтера по указанному пути.
|
|
86
|
+
* @param {string} path - Путь к компоненту форматтера.
|
|
87
|
+
* @returns {any} Свойства конфигурации компонента форматтера.
|
|
88
|
+
*/
|
|
89
|
+
getFormatterProps(path: string): any;
|
|
90
|
+
/**
|
|
91
|
+
* Добавляет иконки.
|
|
92
|
+
* @param {{ [name: string]: string | ReactNode }} icons - Иконки.
|
|
93
|
+
*/
|
|
94
|
+
addIcons(icons: {
|
|
95
|
+
[name: string]: string | ReactNode;
|
|
96
|
+
}): void;
|
|
97
|
+
/**
|
|
98
|
+
* Возвращает иконку по указанному имени.
|
|
99
|
+
* @param {string} name - Имя иконки.
|
|
100
|
+
* @returns {string | number | ReactNode | null} Иконка или null, если не найдена.
|
|
101
|
+
*/
|
|
102
|
+
getIcon(name: string): string | number | ReactNode | null;
|
|
103
|
+
/**
|
|
104
|
+
* Добавляет модели.
|
|
105
|
+
* @param {any} models - Модели.
|
|
106
|
+
*/
|
|
107
|
+
addModels(models: any): void;
|
|
108
|
+
/**
|
|
109
|
+
* Регистрирует поле формы.
|
|
110
|
+
* @param {string} formId - Идентификатор формы.
|
|
111
|
+
* @param {string} attribute - Атрибут.
|
|
112
|
+
* @param {any} type - Тип.
|
|
113
|
+
*/
|
|
114
|
+
registerField(formId: string, attribute: string, type: any): void;
|
|
115
|
+
/**
|
|
116
|
+
* Возвращает зарегистрированные поля формы для указанного идентификатора формы.
|
|
117
|
+
* @param {string} formId - Идентификатор формы.
|
|
118
|
+
* @returns {any} Зарегистрированные поля формы.
|
|
119
|
+
*/
|
|
120
|
+
getRegisteredFields(formId: string): any;
|
|
121
|
+
/**
|
|
122
|
+
* Задает элемент портала.
|
|
123
|
+
* @param {HTMLElement} element - Элемент портала.
|
|
124
|
+
*/
|
|
125
|
+
setPortalElement(element: HTMLElement): void;
|
|
126
|
+
/**
|
|
127
|
+
* Возвращает элемент портала.
|
|
128
|
+
* @returns {HTMLElement | null} Элемент портала или null, если не задан.
|
|
129
|
+
*/
|
|
130
|
+
getPortalElement(): HTMLElement | null;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Ui Component
|
|
134
|
+
* Компонент для подгрузки и конфигурации UI компонентов приложения
|
|
135
|
+
*/
|
|
136
|
+
export default class UiComponent implements IUiApplicationComponent {
|
|
8
137
|
components: IComponents;
|
|
9
138
|
_components: any;
|
|
10
139
|
_models: any;
|
package/hooks/useList.d.ts
CHANGED
|
@@ -102,6 +102,11 @@ export interface IListConfig {
|
|
|
102
102
|
* @return {Promise}
|
|
103
103
|
*/
|
|
104
104
|
onFetch?: (list: IList, query: Record<string, unknown>, http: any) => Promise<any>;
|
|
105
|
+
/**
|
|
106
|
+
* Обработчик события ошибки выполнения запроса
|
|
107
|
+
* @param args
|
|
108
|
+
*/
|
|
109
|
+
onError?: (error: Record<string, any>) => void;
|
|
105
110
|
/**
|
|
106
111
|
* Обработчик, который составляет список условий для локальной фильтрации элементов коллекции
|
|
107
112
|
* @param {Object} query
|
package/hooks/useList.js
CHANGED
|
@@ -189,6 +189,7 @@ function useList(config) {
|
|
|
189
189
|
action: config.action || config.action === '' ? config.action : null,
|
|
190
190
|
actionMethod: config.actionMethod || exports.defaultConfig.actionMethod,
|
|
191
191
|
onFetch: config.onFetch,
|
|
192
|
+
onError: config.onError,
|
|
192
193
|
condition: config.condition,
|
|
193
194
|
scope: config.scope,
|
|
194
195
|
items: null,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steroidsjs/core",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.54",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Vladimir Kozhin <hello@kozhindev.com>",
|
|
6
6
|
"repository": {
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"@maskito/core": "^0.12.1",
|
|
29
29
|
"@maskito/kit": "^0.12.1",
|
|
30
30
|
"@maskito/react": "^0.12.1",
|
|
31
|
+
"@splidejs/react-splide": "^0.7.12",
|
|
31
32
|
"axios": "^0.21.1",
|
|
32
33
|
"connected-react-router": "^6.9.3",
|
|
33
34
|
"domready": "^1.0.8",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { PropsWithChildren } from 'react';
|
|
3
|
+
import { IUiApplicationComponent } from 'src/components/UiComponent';
|
|
3
4
|
import { IResourceComponent } from '../components/ResourceComponent';
|
|
4
5
|
declare global {
|
|
5
6
|
interface Window {
|
|
@@ -13,7 +14,7 @@ export interface IComponents {
|
|
|
13
14
|
http?: any;
|
|
14
15
|
locale?: any;
|
|
15
16
|
store?: any;
|
|
16
|
-
ui?:
|
|
17
|
+
ui?: IUiApplicationComponent;
|
|
17
18
|
resource?: IResourceComponent;
|
|
18
19
|
ws?: any;
|
|
19
20
|
pushNotification?: any;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { IAccordionItemProps } from './Accordion';
|
|
2
|
-
declare function AccordionItem(props: IAccordionItemProps): any
|
|
3
|
+
declare function AccordionItem(props: IAccordionItemProps): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
3
4
|
declare namespace AccordionItem {
|
|
4
5
|
var defaultProps: import("./Accordion").IAccordionViewProps;
|
|
5
6
|
}
|
|
@@ -49,7 +49,7 @@ export interface IAvatarViewProps extends IAvatarProps {
|
|
|
49
49
|
onError: () => void;
|
|
50
50
|
formattedTitle: () => void;
|
|
51
51
|
}
|
|
52
|
-
declare function Avatar(props: IAvatarProps): any
|
|
52
|
+
declare function Avatar(props: IAvatarProps): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
53
53
|
declare namespace Avatar {
|
|
54
54
|
var defaultProps: {
|
|
55
55
|
size: string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { DayPickerProps } from 'react-day-picker';
|
|
2
3
|
export interface ICalendarProps extends IUiComponent {
|
|
3
4
|
/**
|
|
@@ -67,7 +68,7 @@ export interface ICalendarViewProps extends ICalendarProps {
|
|
|
67
68
|
*/
|
|
68
69
|
toggleCaptionPanel: () => void;
|
|
69
70
|
}
|
|
70
|
-
declare function Calendar(props: ICalendarProps): any
|
|
71
|
+
declare function Calendar(props: ICalendarProps): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
71
72
|
declare namespace Calendar {
|
|
72
73
|
var defaultProps: {
|
|
73
74
|
numberOfMonths: number;
|
|
@@ -90,5 +90,5 @@ export interface ICardProps extends IUiComponent {
|
|
|
90
90
|
title?: string;
|
|
91
91
|
}
|
|
92
92
|
export type ICardViewProps = ICardProps;
|
|
93
|
-
declare function Card(props: ICardProps): any
|
|
93
|
+
declare function Card(props: ICardProps): import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
94
94
|
export default Card;
|
|
@@ -53,7 +53,7 @@ export interface ICopyToClipboardProps extends IUiComponent {
|
|
|
53
53
|
export interface ICopyToClipboardViewProps extends ICopyToClipboardProps {
|
|
54
54
|
onClick: () => void;
|
|
55
55
|
}
|
|
56
|
-
declare function CopyToClipboard(props: ICopyToClipboardProps): any
|
|
56
|
+
declare function CopyToClipboard(props: ICopyToClipboardProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
57
57
|
declare namespace CopyToClipboard {
|
|
58
58
|
var defaultProps: {
|
|
59
59
|
showCopyIcon: boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Options, SplideProps } from '@splidejs/react-splide';
|
|
3
|
+
/**
|
|
4
|
+
* Пропсы для компонента Slider.
|
|
5
|
+
*/
|
|
6
|
+
export interface ISliderProps extends IUiComponent, Omit<SplideProps, 'items'> {
|
|
7
|
+
/**
|
|
8
|
+
* Опции слайдера.
|
|
9
|
+
*/
|
|
10
|
+
sliderOptions: Options;
|
|
11
|
+
/**
|
|
12
|
+
* Элементы слайдера.
|
|
13
|
+
*/
|
|
14
|
+
items: Record<string, any>[];
|
|
15
|
+
/**
|
|
16
|
+
* Представление элемента слайдера.
|
|
17
|
+
*/
|
|
18
|
+
itemView: CustomView | any;
|
|
19
|
+
/**
|
|
20
|
+
* Дополнительные свойства.
|
|
21
|
+
*/
|
|
22
|
+
[key: string]: any;
|
|
23
|
+
}
|
|
24
|
+
export type ISliderViewProps = ISliderProps;
|
|
25
|
+
export default function Slider(props: ISliderProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
exports.__esModule = true;
|
|
14
|
+
var hooks_1 = require("../../../hooks");
|
|
15
|
+
function Slider(props) {
|
|
16
|
+
var components = (0, hooks_1.useComponents)();
|
|
17
|
+
return components.ui.renderView(props.view || 'content.SliderView', __assign({}, props));
|
|
18
|
+
}
|
|
19
|
+
exports["default"] = Slider;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
var Slider_1 = __importDefault(require("./Slider"));
|
|
7
|
+
exports["default"] = Slider_1["default"];
|
package/ui/content/index.d.ts
CHANGED
|
@@ -8,4 +8,5 @@ import { Detail, DetailItem } from './Detail';
|
|
|
8
8
|
import Icon from './Icon';
|
|
9
9
|
import Menu from './Menu';
|
|
10
10
|
import CopyToClipboard from './CopyToClipboard';
|
|
11
|
-
|
|
11
|
+
import Slider from './Slider';
|
|
12
|
+
export { Avatar, AvatarGroup, Accordion, AccordionItem, Alert, Card, DropDown, Badge, Detail, DetailItem, Icon, Menu, CopyToClipboard, Slider, };
|
package/ui/content/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
-
exports.CopyToClipboard = exports.Menu = exports.Icon = exports.DetailItem = exports.Detail = exports.Badge = exports.DropDown = exports.Card = exports.Alert = exports.AccordionItem = exports.Accordion = exports.AvatarGroup = exports.Avatar = void 0;
|
|
6
|
+
exports.Slider = exports.CopyToClipboard = exports.Menu = exports.Icon = exports.DetailItem = exports.Detail = exports.Badge = exports.DropDown = exports.Card = exports.Alert = exports.AccordionItem = exports.Accordion = exports.AvatarGroup = exports.Avatar = void 0;
|
|
7
7
|
var Avatar_1 = require("./Avatar");
|
|
8
8
|
exports.Avatar = Avatar_1.Avatar;
|
|
9
9
|
exports.AvatarGroup = Avatar_1.AvatarGroup;
|
|
@@ -27,3 +27,5 @@ var Menu_1 = __importDefault(require("./Menu"));
|
|
|
27
27
|
exports.Menu = Menu_1["default"];
|
|
28
28
|
var CopyToClipboard_1 = __importDefault(require("./CopyToClipboard"));
|
|
29
29
|
exports.CopyToClipboard = CopyToClipboard_1["default"];
|
|
30
|
+
var Slider_1 = __importDefault(require("./Slider"));
|
|
31
|
+
exports.Slider = Slider_1["default"];
|
|
@@ -42,14 +42,19 @@ var react_1 = require("react");
|
|
|
42
42
|
var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
|
|
43
43
|
var hooks_1 = require("../../../hooks");
|
|
44
44
|
function CheckboxField(props) {
|
|
45
|
+
var _a, _b;
|
|
45
46
|
var components = (0, hooks_1.useComponents)();
|
|
46
47
|
var onChangeHandler = React.useCallback(function () {
|
|
47
|
-
|
|
48
|
+
var _a;
|
|
49
|
+
props.input.onChange(!((_a = props.input) === null || _a === void 0 ? void 0 : _a.value));
|
|
48
50
|
if (props.onChange) {
|
|
49
51
|
props.onChange();
|
|
50
52
|
}
|
|
51
53
|
}, [props]);
|
|
52
|
-
var inputProps = (0, react_1.useMemo)(function () {
|
|
54
|
+
var inputProps = (0, react_1.useMemo)(function () {
|
|
55
|
+
var _a, _b;
|
|
56
|
+
return (__assign({ name: (_a = props.input) === null || _a === void 0 ? void 0 : _a.name, type: 'checkbox', checked: !!((_b = props.input) === null || _b === void 0 ? void 0 : _b.value), onChange: onChangeHandler, disabled: props.disabled }, props.inputProps));
|
|
57
|
+
}, [onChangeHandler, props.disabled, (_a = props.input) === null || _a === void 0 ? void 0 : _a.name, (_b = props.input) === null || _b === void 0 ? void 0 : _b.value, props.inputProps]);
|
|
53
58
|
return components.ui.renderView(props.view || 'form.CheckboxFieldView', __assign(__assign({}, props), { inputProps: inputProps }));
|
|
54
59
|
}
|
|
55
60
|
CheckboxField.defaultProps = {
|
package/ui/form/Form/Form.js
CHANGED
|
@@ -274,8 +274,12 @@ function Form(props) {
|
|
|
274
274
|
requestError_1 = _c.sent();
|
|
275
275
|
console.error(requestError_1); // eslint-disable-line no-console
|
|
276
276
|
dispatch((0, form_2.formSetSubmitting)(props.formId, false));
|
|
277
|
-
props.onError
|
|
278
|
-
|
|
277
|
+
if (typeof props.onError === 'function') {
|
|
278
|
+
props.onError(requestError_1);
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
reduxDispatch((0, notifications_1.showNotification)(props.submitErrorMessage || __('Ошибка сервера'), 'danger'));
|
|
282
|
+
}
|
|
279
283
|
return [2 /*return*/, null];
|
|
280
284
|
case 12:
|
|
281
285
|
// Skip on 2fa
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
2
|
+
import { IColumnViewProps } from '../Grid/Grid';
|
|
3
3
|
/**
|
|
4
4
|
* CheckboxColumn
|
|
5
5
|
* Колонка с чекбоксом, которая позволяет выбирать одну или все записи в таблице.
|
|
@@ -24,7 +24,7 @@ export interface ICheckboxColumnProps {
|
|
|
24
24
|
view?: CustomView;
|
|
25
25
|
[key: string]: any;
|
|
26
26
|
}
|
|
27
|
-
export interface ICheckboxColumnViewProps extends
|
|
27
|
+
export interface ICheckboxColumnViewProps extends IColumnViewProps {
|
|
28
28
|
fieldProps: Record<string, any>;
|
|
29
29
|
input: {
|
|
30
30
|
name: string;
|
package/ui/list/Grid/Grid.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { ILinkProps } from 'src/ui/nav/Link/Link';
|
|
3
3
|
import { IListConfig, ListControlPosition } from '../../../hooks/useList';
|
|
4
4
|
import { IControlItem } from '../../nav/Controls/Controls';
|
|
5
|
-
export interface
|
|
5
|
+
export interface IColumnViewProps extends IGridColumn {
|
|
6
6
|
item: Record<string, any>;
|
|
7
7
|
size: Size;
|
|
8
8
|
primaryKey: string;
|
|
@@ -97,6 +97,18 @@ export interface IGridColumn {
|
|
|
97
97
|
attribute: string;
|
|
98
98
|
isLeft?: boolean;
|
|
99
99
|
};
|
|
100
|
+
/**
|
|
101
|
+
* Диаграмма.
|
|
102
|
+
* Цвет должен соответствовать success | warning | danger | secondary.
|
|
103
|
+
* Цвета можно расширить или изменить через стили (см. colors.scss в react-bootstrap)
|
|
104
|
+
*/
|
|
105
|
+
diagram?: {
|
|
106
|
+
type: 'horizontal' | 'vertical' | 'circle';
|
|
107
|
+
items: {
|
|
108
|
+
color: 'success' | 'warning' | 'danger' | 'secondary' | string;
|
|
109
|
+
percentageAttribute: string;
|
|
110
|
+
}[];
|
|
111
|
+
};
|
|
100
112
|
}
|
|
101
113
|
/**
|
|
102
114
|
* Grid
|
package/ui/list/List/List.js
CHANGED
package/ui/nav/Tree/Tree.d.ts
CHANGED
|
@@ -86,7 +86,7 @@ export interface ITreeViewProps extends ITreeProps {
|
|
|
86
86
|
})[];
|
|
87
87
|
levelPadding?: number;
|
|
88
88
|
}
|
|
89
|
-
declare function Tree(props: ITreeProps): any
|
|
89
|
+
declare function Tree(props: ITreeProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
90
90
|
declare namespace Tree {
|
|
91
91
|
var defaultProps: {
|
|
92
92
|
itemsKey: string;
|