@steroidsjs/core 3.0.0-beta.6 → 3.0.0-beta.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/hooks/useAddressBar.js +0 -2
- package/hooks/useDispatch.d.ts +2 -1
- package/hooks/useDispatch.js +1 -0
- package/hooks/useLayout.js +1 -6
- package/hooks/useList.js +0 -6
- package/index.d.ts +1 -0
- package/package.json +1 -1
- package/ui/content/Accordion/Accordion.d.ts +65 -0
- package/ui/content/{Collapse/Collapse.js → Accordion/Accordion.js} +18 -22
- package/ui/content/Accordion/AccordionItem.d.ts +6 -0
- package/ui/content/{Collapse/CollapseItem.js → Accordion/AccordionItem.js} +8 -5
- package/ui/content/Accordion/index.d.ts +3 -0
- package/ui/content/Accordion/index.js +10 -0
- package/ui/content/Avatar/Avatar.d.ts +1 -1
- package/ui/content/CopyToClipboard/CopyToClipboard.js +0 -2
- package/ui/content/index.d.ts +2 -2
- package/ui/content/index.js +4 -4
- package/ui/crud/Crud/Crud.js +0 -4
- package/ui/crud/Crud/CrudContent.js +0 -2
- package/ui/form/Button/Button.d.ts +0 -7
- package/ui/form/Button/Button.js +4 -4
- package/ui/form/Form/Form.js +1 -6
- package/ui/layout/Notifications/Notifications.js +0 -2
- package/ui/layout/Notifications/demo/basic.js +0 -2
- package/ui/layout/Notifications/demo/position.js +0 -2
- package/ui/layout/Notifications/demo/timeOut.js +1 -4
- package/ui/layout/Portal.d.ts +1 -1
- package/ui/nav/Router/Router.js +0 -2
- package/utils/form.d.ts +2 -7
- package/ui/content/Collapse/Collapse.d.ts +0 -63
- package/ui/content/Collapse/CollapseItem.d.ts +0 -67
- package/ui/content/Collapse/demo/accordion.d.ts +0 -8
- package/ui/content/Collapse/demo/accordion.js +0 -41
- package/ui/content/Collapse/demo/basic.d.ts +0 -8
- package/ui/content/Collapse/demo/basic.js +0 -41
- package/ui/content/Collapse/demo/borderless.d.ts +0 -8
- package/ui/content/Collapse/demo/borderless.js +0 -41
- package/ui/content/Collapse/demo/disable.d.ts +0 -8
- package/ui/content/Collapse/demo/disable.js +0 -41
- package/ui/content/Collapse/demo/icon position.d.ts +0 -8
- package/ui/content/Collapse/demo/icon position.js +0 -41
- package/ui/content/Collapse/demo/icon.d.ts +0 -8
- package/ui/content/Collapse/demo/icon.js +0 -57
- package/ui/content/Collapse/demo/onChange.d.ts +0 -8
- package/ui/content/Collapse/demo/onChange.js +0 -51
- package/ui/content/Collapse/demo/show icon.d.ts +0 -8
- package/ui/content/Collapse/demo/show icon.js +0 -41
- package/ui/content/Collapse/index.d.ts +0 -8
- package/ui/content/Collapse/index.js +0 -14
- package/ui/form/Button/demo/badge.d.ts +0 -8
- package/ui/form/Button/demo/badge.js +0 -37
- package/ui/form/Button/demo/basic.d.ts +0 -8
- package/ui/form/Button/demo/basic.js +0 -37
- package/ui/form/Button/demo/block.d.ts +0 -8
- package/ui/form/Button/demo/block.js +0 -37
- package/ui/form/Button/demo/colors.d.ts +0 -8
- package/ui/form/Button/demo/colors.js +0 -49
- package/ui/form/Button/demo/confirm.d.ts +0 -8
- package/ui/form/Button/demo/confirm.js +0 -37
- package/ui/form/Button/demo/disabled.d.ts +0 -8
- package/ui/form/Button/demo/disabled.js +0 -37
- package/ui/form/Button/demo/hint.d.ts +0 -8
- package/ui/form/Button/demo/hint.js +0 -37
- package/ui/form/Button/demo/icon.d.ts +0 -8
- package/ui/form/Button/demo/icon.js +0 -37
- package/ui/form/Button/demo/link.d.ts +0 -8
- package/ui/form/Button/demo/link.js +0 -37
- package/ui/form/Button/demo/sizes.d.ts +0 -3
- package/ui/form/Button/demo/sizes.js +0 -41
- package/ui/form/Button/demo/tags.d.ts +0 -8
- package/ui/form/Button/demo/tags.js +0 -38
- package/ui/form/CheckboxField/demo/basic.d.ts +0 -8
- package/ui/form/CheckboxField/demo/basic.js +0 -37
- package/ui/form/CheckboxField/demo/disabled.d.ts +0 -8
- package/ui/form/CheckboxField/demo/disabled.js +0 -37
- package/ui/form/CheckboxField/demo/errors.d.ts +0 -8
- package/ui/form/CheckboxField/demo/errors.js +0 -37
- package/ui/form/CheckboxField/demo/required.d.ts +0 -8
- package/ui/form/CheckboxField/demo/required.js +0 -37
package/hooks/useAddressBar.js
CHANGED
|
@@ -136,8 +136,6 @@ function useAddressBar(config) {
|
|
|
136
136
|
}, {});
|
|
137
137
|
if (!(0, isEqual_1["default"])(initialQueryRef.current, normalizedValues)) {
|
|
138
138
|
initialQueryRef.current = normalizedValues;
|
|
139
|
-
//TODO Remove @ts-ignore
|
|
140
|
-
//@ts-ignore
|
|
141
139
|
dispatch((0, exports.queryReplace)(config.model, location, normalizedValues, config.useHash));
|
|
142
140
|
}
|
|
143
141
|
}
|
package/hooks/useDispatch.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { Dispatch } from 'react';
|
|
2
|
+
export default function useDispatch(): Dispatch<any>;
|
package/hooks/useDispatch.js
CHANGED
package/hooks/useLayout.js
CHANGED
|
@@ -100,8 +100,6 @@ function useLayout(initAction) {
|
|
|
100
100
|
(0, react_use_1.useMount)(function () {
|
|
101
101
|
// Callback for load initial page data (return promise)
|
|
102
102
|
if ((0, isFunction_1["default"])(initAction)) {
|
|
103
|
-
//TODO Remove @ts-ignore
|
|
104
|
-
//@ts-ignore
|
|
105
103
|
dispatch((0, auth_2.init)(true));
|
|
106
104
|
}
|
|
107
105
|
else {
|
|
@@ -113,11 +111,10 @@ function useLayout(initAction) {
|
|
|
113
111
|
if (!(0, isFunction_1["default"])(initAction) || initializeCounter <= initializeCounterPrev) {
|
|
114
112
|
return;
|
|
115
113
|
}
|
|
114
|
+
//@ts-ignore
|
|
116
115
|
(0, exports.runInitAction)(initAction, components, dispatch)
|
|
117
116
|
.then(function () {
|
|
118
117
|
if (redirectPageId) {
|
|
119
|
-
//TODO Remove @ts-ignore
|
|
120
|
-
//@ts-ignore
|
|
121
118
|
dispatch((0, router_2.goToRoute)(redirectPageId));
|
|
122
119
|
}
|
|
123
120
|
})["catch"](function (e) {
|
|
@@ -143,8 +140,6 @@ function useLayout(initAction) {
|
|
|
143
140
|
}
|
|
144
141
|
if ((0, intersection_1["default"])(pageRoles, userRoles).length === 0) {
|
|
145
142
|
if (loginRouteId && route.id !== loginRouteId) {
|
|
146
|
-
//TODO Remove @ts-ignore
|
|
147
|
-
//@ts-ignore
|
|
148
143
|
dispatch((0, router_2.goToRoute)(loginRouteId));
|
|
149
144
|
}
|
|
150
145
|
else {
|
package/hooks/useList.js
CHANGED
|
@@ -231,8 +231,6 @@ function useList(config) {
|
|
|
231
231
|
updateQuery(formValues);
|
|
232
232
|
// Send request
|
|
233
233
|
if (config.autoFetchOnFormChanges !== false) {
|
|
234
|
-
//TODO Remove @ts-ignore
|
|
235
|
-
//@ts-ignore
|
|
236
234
|
dispatch((0, list_2.listLazyFetch)(config.listId));
|
|
237
235
|
}
|
|
238
236
|
}
|
|
@@ -250,8 +248,6 @@ function useList(config) {
|
|
|
250
248
|
}, [formId, prevQuery, config.query, dispatch]);
|
|
251
249
|
// Check change items
|
|
252
250
|
(0, react_use_1.useUpdateEffect)(function () {
|
|
253
|
-
//TODO Remove @ts-ignore
|
|
254
|
-
//@ts-ignore
|
|
255
251
|
dispatch([
|
|
256
252
|
(0, list_2.listSetItems)(config.listId, config.items),
|
|
257
253
|
]);
|
|
@@ -265,8 +261,6 @@ function useList(config) {
|
|
|
265
261
|
});
|
|
266
262
|
var onFetch = (0, react_1.useCallback)(function (params) {
|
|
267
263
|
if (params === void 0) { params = {}; }
|
|
268
|
-
//TODO Remove @ts-ignore
|
|
269
|
-
//@ts-ignore
|
|
270
264
|
dispatch((0, list_2.listFetch)(config.listId, params));
|
|
271
265
|
}, [config.listId, dispatch]);
|
|
272
266
|
var onSort = (0, react_1.useCallback)(function (value) {
|
package/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface IAccordionIcon {
|
|
3
|
+
open: React.ReactElement | string;
|
|
4
|
+
close: React.ReactElement | string;
|
|
5
|
+
}
|
|
6
|
+
export interface IAccordionCommonProps {
|
|
7
|
+
view?: any;
|
|
8
|
+
style?: React.CSSProperties;
|
|
9
|
+
children?: any;
|
|
10
|
+
/**
|
|
11
|
+
* Дополнительный CSS-класс
|
|
12
|
+
*/
|
|
13
|
+
className?: CssClassName;
|
|
14
|
+
/**
|
|
15
|
+
* @example {true}
|
|
16
|
+
*/
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Пользовательская иконка svg или название иконки или объект с иконками open и close
|
|
20
|
+
* @example {'circle'}
|
|
21
|
+
*/
|
|
22
|
+
icon?: IAccordionIcon | React.ReactElement | string;
|
|
23
|
+
/**
|
|
24
|
+
* Включает режим в котором можно открыть только один AccordionItem
|
|
25
|
+
* @example {true}
|
|
26
|
+
*/
|
|
27
|
+
hasOneOpenItem?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Название AccordionItem
|
|
30
|
+
* @example {'Подробнее'}
|
|
31
|
+
*/
|
|
32
|
+
title?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Тема аккордеона
|
|
35
|
+
*/
|
|
36
|
+
theme?: 'light' | 'dark' | 'intermediate';
|
|
37
|
+
/**
|
|
38
|
+
* Номер активного AccordionItem, который может меняться динамический или быть статичным
|
|
39
|
+
* @example
|
|
40
|
+
*/
|
|
41
|
+
activeKey?: number;
|
|
42
|
+
/**
|
|
43
|
+
* Вызываемая функция при каждом изменении состояния
|
|
44
|
+
* @example {() => {console.log('success')}}
|
|
45
|
+
*/
|
|
46
|
+
onChange?: () => void;
|
|
47
|
+
/**
|
|
48
|
+
* Стилизация позиционирования.
|
|
49
|
+
* При значении "top" верхняя часть шапки будет закруглена.
|
|
50
|
+
* @example {'top'}
|
|
51
|
+
*/
|
|
52
|
+
position?: 'bottom' | 'middle' | 'top';
|
|
53
|
+
/**
|
|
54
|
+
* Отображать ли иконку у AccordionItem
|
|
55
|
+
*/
|
|
56
|
+
showIcon?: boolean;
|
|
57
|
+
}
|
|
58
|
+
export interface IAccordionCommonViewProps extends IAccordionCommonProps {
|
|
59
|
+
toggleAccordion?: (number: any) => void;
|
|
60
|
+
toggleCollapse?: (number: any) => void;
|
|
61
|
+
childIndex?: number;
|
|
62
|
+
isShowMore?: boolean;
|
|
63
|
+
}
|
|
64
|
+
declare function Accordion(props: IAccordionCommonProps): JSX.Element;
|
|
65
|
+
export default Accordion;
|
|
@@ -45,43 +45,39 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
45
45
|
exports.__esModule = true;
|
|
46
46
|
var React = __importStar(require("react"));
|
|
47
47
|
var hooks_1 = require("../../../hooks");
|
|
48
|
-
function
|
|
49
|
-
var _a = React.useState([]),
|
|
48
|
+
function Accordion(props) {
|
|
49
|
+
var _a = React.useState([]), selectedAccordionItems = _a[0], setSelectedAccordionItems = _a[1];
|
|
50
50
|
React.useEffect(function () {
|
|
51
51
|
if (props.onChange) {
|
|
52
|
-
props.onChange(
|
|
52
|
+
props.onChange();
|
|
53
53
|
}
|
|
54
54
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
55
|
-
}, [
|
|
55
|
+
}, [selectedAccordionItems]);
|
|
56
56
|
var toggleCollapse = function (indexSelected) {
|
|
57
|
-
if (
|
|
58
|
-
var newState = __spreadArray([],
|
|
59
|
-
var indexInArray =
|
|
57
|
+
if (selectedAccordionItems.includes(indexSelected)) {
|
|
58
|
+
var newState = __spreadArray([], selectedAccordionItems, true);
|
|
59
|
+
var indexInArray = selectedAccordionItems.indexOf(indexSelected);
|
|
60
60
|
newState.splice(indexInArray, 1);
|
|
61
|
-
|
|
61
|
+
setSelectedAccordionItems(newState);
|
|
62
62
|
}
|
|
63
63
|
else {
|
|
64
|
-
var newState = __spreadArray([],
|
|
64
|
+
var newState = __spreadArray([], selectedAccordionItems, true);
|
|
65
65
|
newState.push(indexSelected);
|
|
66
|
-
|
|
66
|
+
setSelectedAccordionItems(newState);
|
|
67
67
|
}
|
|
68
68
|
};
|
|
69
69
|
var toggleAccordion = function (indexSelected) {
|
|
70
|
-
if (
|
|
71
|
-
|
|
70
|
+
if (selectedAccordionItems.includes(indexSelected)) {
|
|
71
|
+
setSelectedAccordionItems([]);
|
|
72
72
|
}
|
|
73
73
|
else {
|
|
74
|
-
var
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
var newSelectedAccordion = [];
|
|
75
|
+
newSelectedAccordion.push(indexSelected);
|
|
76
|
+
setSelectedAccordionItems(newSelectedAccordion);
|
|
77
77
|
}
|
|
78
78
|
};
|
|
79
79
|
var components = (0, hooks_1.useComponents)();
|
|
80
|
-
var
|
|
81
|
-
return (React.createElement(
|
|
80
|
+
var AccordionView = components.ui.getView(props.view || 'content.AccordionView');
|
|
81
|
+
return (React.createElement(AccordionView, __assign({}, props), React.Children.map(props.children, function (child, index) { return React.cloneElement(child, __assign({ style: props.style, activeKey: props.activeKey, childIndex: index, toggleCollapse: toggleCollapse, toggleAccordion: toggleAccordion, hasOneOpenItem: props.hasOneOpenItem, isShowMore: (selectedAccordionItems || []).includes(index), icon: props.icon, showIcon: props.showIcon }, child.props)); })));
|
|
82
82
|
}
|
|
83
|
-
|
|
84
|
-
iconPosition: 'right',
|
|
85
|
-
showIcon: true
|
|
86
|
-
};
|
|
87
|
-
exports["default"] = Collapse;
|
|
83
|
+
exports["default"] = Accordion;
|
|
@@ -12,11 +12,14 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
exports.__esModule = true;
|
|
14
14
|
var hooks_1 = require("../../../hooks");
|
|
15
|
-
function
|
|
15
|
+
function AccordionItem(props) {
|
|
16
16
|
var components = (0, hooks_1.useComponents)();
|
|
17
|
-
return components.ui.renderView(props.view || 'content.
|
|
17
|
+
return components.ui.renderView(props.view || 'content.AccordionItemView', __assign({}, props));
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
title: '
|
|
19
|
+
AccordionItem.defaultProps = {
|
|
20
|
+
title: 'Accordion',
|
|
21
|
+
positionStyle: 'top',
|
|
22
|
+
theme: 'light',
|
|
23
|
+
showIcon: true
|
|
21
24
|
};
|
|
22
|
-
exports["default"] =
|
|
25
|
+
exports["default"] = AccordionItem;
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
+
exports.Accordion = exports.AccordionItem = void 0;
|
|
7
|
+
var AccordionItem_1 = __importDefault(require("./AccordionItem"));
|
|
8
|
+
exports.AccordionItem = AccordionItem_1["default"];
|
|
9
|
+
var Accordion_1 = __importDefault(require("./Accordion"));
|
|
10
|
+
exports.Accordion = Accordion_1["default"];
|
|
@@ -103,8 +103,6 @@ function CopyToClipboard(props) {
|
|
|
103
103
|
case 3:
|
|
104
104
|
if (props.notification) {
|
|
105
105
|
notification = __assign({ level: 'info', params: undefined }, (typeof props.notification === 'string' ? { message: props.notification } : props.notification));
|
|
106
|
-
//TODO Remove @ts-ignore
|
|
107
|
-
//@ts-ignore
|
|
108
106
|
dispatch((0, notifications_1.showNotification)(notification.message, notification.level, notification.params));
|
|
109
107
|
}
|
|
110
108
|
setIsCopied(true);
|
package/ui/content/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Avatar, AvatarGroup } from './Avatar';
|
|
2
|
-
import {
|
|
2
|
+
import { Accordion, AccordionItem } from './Accordion';
|
|
3
3
|
import Card from './Card';
|
|
4
4
|
import DropDown from './DropDown';
|
|
5
5
|
import Alert from './Alert';
|
|
6
6
|
import Badge from './Badge';
|
|
7
|
-
export { Avatar, AvatarGroup,
|
|
7
|
+
export { Avatar, AvatarGroup, Accordion, AccordionItem, Alert, Card, DropDown, Badge, };
|
package/ui/content/index.js
CHANGED
|
@@ -3,13 +3,13 @@ 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.Badge = exports.DropDown = exports.Card = exports.Alert = exports.
|
|
6
|
+
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;
|
|
10
|
-
var
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
10
|
+
var Accordion_1 = require("./Accordion");
|
|
11
|
+
exports.Accordion = Accordion_1.Accordion;
|
|
12
|
+
exports.AccordionItem = Accordion_1.AccordionItem;
|
|
13
13
|
var Card_1 = __importDefault(require("./Card"));
|
|
14
14
|
exports.Card = Card_1["default"];
|
|
15
15
|
var DropDown_1 = __importDefault(require("./DropDown"));
|
package/ui/crud/Crud/Crud.js
CHANGED
|
@@ -71,16 +71,12 @@ function Crud(props) {
|
|
|
71
71
|
var goToAction = (0, react_1.useCallback)(function (nextAction) {
|
|
72
72
|
var _a;
|
|
73
73
|
if (nextAction === utils_1.CRUD_ACTION_INDEX) {
|
|
74
|
-
//TODO remove @ts-ignore
|
|
75
|
-
//@ts-ignore
|
|
76
74
|
dispatch((0, list_1.listRefresh)(crudId));
|
|
77
75
|
}
|
|
78
76
|
if (routeAction !== nextAction) {
|
|
79
77
|
if (mode === MODE_MODAL) {
|
|
80
78
|
dispatch((0, modal_1.closeModal)(crudId));
|
|
81
79
|
}
|
|
82
|
-
//TODO remove @ts-ignore
|
|
83
|
-
//@ts-ignore
|
|
84
80
|
dispatch((0, router_1.goToRoute)(routeId, __assign(__assign({}, routeParams), (_a = {}, _a[props.queryKey] = null, _a[props.queryKey + 'Action'] = null, _a))));
|
|
85
81
|
}
|
|
86
82
|
}, [crudId, dispatch, mode, props.queryKey, routeAction, routeId, routeParams]);
|
|
@@ -61,8 +61,6 @@ function CrudContent(props) {
|
|
|
61
61
|
}, [props.action, props.primaryKey, props.record, props.recordId]);
|
|
62
62
|
var onFormComplete = (0, react_1.useCallback)(function () {
|
|
63
63
|
window.scrollTo(0, 0);
|
|
64
|
-
//TODO remove @ts-ignore
|
|
65
|
-
//@ts-ignore
|
|
66
64
|
dispatch((0, notifications_1.showNotification)(__('Запись успешно обновлена.')));
|
|
67
65
|
props.goToAction.call(null, utils_1.CRUD_ACTION_INDEX);
|
|
68
66
|
}, [dispatch, props.goToAction]);
|
|
@@ -21,11 +21,6 @@ export interface IButtonProps {
|
|
|
21
21
|
* @example Save
|
|
22
22
|
*/
|
|
23
23
|
hint?: string | any;
|
|
24
|
-
/**
|
|
25
|
-
* Должна ли показываться надпись на кнопке в состоянии загрузки
|
|
26
|
-
* @example true
|
|
27
|
-
*/
|
|
28
|
-
showLabelOnLoading?: boolean;
|
|
29
24
|
/**
|
|
30
25
|
* HTML Тип
|
|
31
26
|
* @example submit
|
|
@@ -170,7 +165,6 @@ export interface IButtonViewProps extends IButtonProps {
|
|
|
170
165
|
disabled?: boolean;
|
|
171
166
|
onClick?: any;
|
|
172
167
|
submitting?: boolean;
|
|
173
|
-
showLabelOnLoading: boolean;
|
|
174
168
|
}
|
|
175
169
|
declare function Button(props: IButtonProps): JSX.Element;
|
|
176
170
|
declare namespace Button {
|
|
@@ -184,7 +178,6 @@ declare namespace Button {
|
|
|
184
178
|
size: string;
|
|
185
179
|
className: string;
|
|
186
180
|
resetFailedMs: number;
|
|
187
|
-
showLabelOnLoading: boolean;
|
|
188
181
|
badge: {
|
|
189
182
|
enable: boolean;
|
|
190
183
|
value: number;
|
package/ui/form/Button/Button.js
CHANGED
|
@@ -40,7 +40,6 @@ exports.__esModule = true;
|
|
|
40
40
|
var React = __importStar(require("react"));
|
|
41
41
|
var react_redux_1 = require("react-redux");
|
|
42
42
|
var react_1 = require("react");
|
|
43
|
-
var react_use_1 = require("react-use");
|
|
44
43
|
var FieldLayout_1 = __importDefault(require("../FieldLayout"));
|
|
45
44
|
var router_1 = require("../../../actions/router");
|
|
46
45
|
var router_2 = require("../../../reducers/router");
|
|
@@ -59,7 +58,9 @@ function Button(props) {
|
|
|
59
58
|
: (routePath ? (0, router_2.buildUrl)(routePath, props.toRouteParams) : null);
|
|
60
59
|
// Flags: isLoading, isFailed
|
|
61
60
|
var _a = (0, react_1.useState)({ isLoading: false, isFailed: false }), _b = _a[0], isLoading = _b.isLoading, isFailed = _b.isFailed, setStateFlags = _a[1];
|
|
62
|
-
|
|
61
|
+
React.useEffect(function () {
|
|
62
|
+
setStateFlags({ isLoading: props.isLoading, isFailed: props.isFailed });
|
|
63
|
+
}, [props.isLoading, props.isFailed]);
|
|
63
64
|
// Form submitting
|
|
64
65
|
var context = (0, react_1.useContext)(Form_1.FormContext);
|
|
65
66
|
var form = (0, hooks_1.useForm)();
|
|
@@ -68,7 +69,7 @@ function Button(props) {
|
|
|
68
69
|
if (form) {
|
|
69
70
|
submitting = form.formSelector(function (state) { return state.isSubmitting; });
|
|
70
71
|
}
|
|
71
|
-
var disabled = submitting || props.disabled
|
|
72
|
+
var disabled = submitting || props.disabled;
|
|
72
73
|
var tag = props.tag || (props.link || url ? 'a' : 'button');
|
|
73
74
|
var layout = (0, react_1.useMemo)(function () { return (0, form_1.mergeLayoutProp)(context.layout, props.layout); }, [context.layout, props.layout]);
|
|
74
75
|
var failedTimer = (0, react_1.useRef)(null);
|
|
@@ -141,7 +142,6 @@ Button.defaultProps = {
|
|
|
141
142
|
size: 'md',
|
|
142
143
|
className: '',
|
|
143
144
|
resetFailedMs: 2000,
|
|
144
|
-
showLabelOnLoading: true,
|
|
145
145
|
badge: {
|
|
146
146
|
enable: false,
|
|
147
147
|
value: 0,
|
package/ui/form/Form/Form.js
CHANGED
|
@@ -277,12 +277,7 @@ function Form(props) {
|
|
|
277
277
|
console.error(requestError_1); // eslint-disable-line no-console
|
|
278
278
|
dispatch((0, form_2.formSetSubmitting)(props.formId, false));
|
|
279
279
|
props.onError(requestError_1);
|
|
280
|
-
|
|
281
|
-
//@ts-ignore
|
|
282
|
-
reduxDispatch(
|
|
283
|
-
//TODO Remove @ts-ignore
|
|
284
|
-
//@ts-ignore
|
|
285
|
-
(0, notifications_1.showNotification)(props.submitErrorMessage || __('Ошибка сервера'), 'danger'));
|
|
280
|
+
reduxDispatch((0, notifications_1.showNotification)(props.submitErrorMessage || __('Ошибка сервера'), 'danger'));
|
|
286
281
|
return [2 /*return*/, null];
|
|
287
282
|
case 12:
|
|
288
283
|
// Skip on 2fa
|
|
@@ -56,8 +56,6 @@ function Notifications(props) {
|
|
|
56
56
|
var dispatch = (0, useDispatch_1["default"])();
|
|
57
57
|
(0, react_use_1.useMount)(function () {
|
|
58
58
|
if (props.initialFlashes) {
|
|
59
|
-
//TODO remove @ts-ignore
|
|
60
|
-
//@ts-ignore
|
|
61
59
|
dispatch((0, notifications_1.setFlashes)(props.initialFlashes));
|
|
62
60
|
// Disable scroll or scroll to top on show notifications
|
|
63
61
|
if (!process.env.IS_SSR) {
|
|
@@ -52,8 +52,6 @@ exports["default"] = (function () {
|
|
|
52
52
|
flexFlow: 'column'
|
|
53
53
|
} }, Object.keys(notifications).map(function (level) { return ([].concat(notifications[level] || [])
|
|
54
54
|
.map(function (message) { return (React.createElement(Button_1["default"], { key: level, color: level, label: __("\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0442\u0438\u043F\u0430 \"".concat(level, "\"")), onClick: function () {
|
|
55
|
-
//TODO remove @ts-ignore
|
|
56
|
-
//@ts-ignore
|
|
57
55
|
dispatch((0, notifications_1.showNotification)(message, level));
|
|
58
56
|
}, style: { margin: '10px 0' } })); })); })));
|
|
59
57
|
});
|
|
@@ -44,8 +44,6 @@ var positions = {
|
|
|
44
44
|
exports["default"] = (function () {
|
|
45
45
|
var dispatch = (0, useDispatch_1["default"])();
|
|
46
46
|
return (React.createElement("div", { style: { display: 'grid', gridAutoFlow: 'column', gridGap: '10px', justifyContent: 'center' } }, Object.values(positions).map(function (position) { return (React.createElement(form_1.Button, { key: position, color: 'dark', label: "\u041F\u043E\u0437\u0438\u0446\u0438\u044F ".concat(position), onClick: function () {
|
|
47
|
-
//TODO remove @ts-ignore
|
|
48
|
-
//@ts-ignore
|
|
49
47
|
dispatch((0, notifications_1.showNotification)(position, 'success', { position: position, timeOut: 1000 }));
|
|
50
48
|
} })); })));
|
|
51
49
|
});
|
|
@@ -44,9 +44,6 @@ var times = {
|
|
|
44
44
|
exports["default"] = (function () {
|
|
45
45
|
var dispatch = (0, useDispatch_1["default"])();
|
|
46
46
|
return (React.createElement("div", { style: { display: 'flex', flexFlow: 'column' } }, Object.values(times).map(function (time) { return (React.createElement(form_1.Button, { key: time, color: 'primary', label: "\u0427\u0435\u0440\u0435\u0437 ".concat(time / 1000, " \u0441\u0435\u043A\u0443\u043D\u0434 \u043F\u0440\u043E\u043F\u0430\u0434\u0435\u0442 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435"), onClick: function () {
|
|
47
|
-
dispatch(
|
|
48
|
-
//TODO remove @ts-ignore
|
|
49
|
-
//@ts-ignore
|
|
50
|
-
(0, notifications_1.showNotification)("".concat(time / 1000, " \u0441\u0435\u043A\u0443\u043D\u0434"), 'info', { position: 'bottom-right', timeOut: time }));
|
|
47
|
+
dispatch((0, notifications_1.showNotification)("".concat(time / 1000, " \u0441\u0435\u043A\u0443\u043D\u0434"), 'info', { position: 'bottom-right', timeOut: time }));
|
|
51
48
|
}, style: { margin: '10px 0' } })); })));
|
|
52
49
|
});
|
package/ui/layout/Portal.d.ts
CHANGED
package/ui/nav/Router/Router.js
CHANGED
package/utils/form.d.ts
CHANGED
|
@@ -7,16 +7,11 @@ export declare const providers: {
|
|
|
7
7
|
redux: {
|
|
8
8
|
useForm: (formId: any, initialValues: any) => any;
|
|
9
9
|
useField: (formId: any, name: any, isList: any) => {
|
|
10
|
-
setValue: (value: any) =>
|
|
11
|
-
type: string;
|
|
12
|
-
formId: any;
|
|
13
|
-
nameOrObject: any;
|
|
14
|
-
value: any;
|
|
15
|
-
};
|
|
10
|
+
setValue: (value: any) => void;
|
|
16
11
|
errors: any;
|
|
17
12
|
value: any;
|
|
18
13
|
};
|
|
19
|
-
useDispatch: () => import("
|
|
14
|
+
useDispatch: () => import("react").Dispatch<any>;
|
|
20
15
|
select: (formId: any, selector: any) => any;
|
|
21
16
|
};
|
|
22
17
|
reducer: {
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
export interface ICollapseProps {
|
|
3
|
-
view?: any;
|
|
4
|
-
style?: React.CSSProperties;
|
|
5
|
-
children?: any;
|
|
6
|
-
/**
|
|
7
|
-
* Дополнительный CSS-класс
|
|
8
|
-
*/
|
|
9
|
-
className?: CssClassName;
|
|
10
|
-
/**
|
|
11
|
-
* @example {true}
|
|
12
|
-
*/
|
|
13
|
-
disabled?: boolean;
|
|
14
|
-
/**
|
|
15
|
-
* Кастомная иконка svg или название иконки
|
|
16
|
-
* @example {'circle'}
|
|
17
|
-
*/
|
|
18
|
-
icon?: React.ReactNode | string;
|
|
19
|
-
/**
|
|
20
|
-
* Показ иконки, которая показывает состояние CollapseItem. Поумолчанию включены.
|
|
21
|
-
* @example {false}
|
|
22
|
-
*/
|
|
23
|
-
showIcon?: boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Позиция иконки-индикатора
|
|
26
|
-
* @example {'left'}
|
|
27
|
-
*/
|
|
28
|
-
iconPosition?: 'left' | 'right';
|
|
29
|
-
/**
|
|
30
|
-
* Включает режим Аккордиона (только один CollapseItem может быть открыт)
|
|
31
|
-
* @example {true}
|
|
32
|
-
*/
|
|
33
|
-
isAccordion?: boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Номер активного CollapseItem, который может меняться динамический или быть статичным
|
|
36
|
-
* @example
|
|
37
|
-
*/
|
|
38
|
-
activeKey?: number;
|
|
39
|
-
/**
|
|
40
|
-
* Вызываемая функция при каждом изменении состояния
|
|
41
|
-
* @example {() => {console.log('success')}}
|
|
42
|
-
*/
|
|
43
|
-
onChange?: (state: any) => void;
|
|
44
|
-
/**
|
|
45
|
-
* Отключение внешних рамок
|
|
46
|
-
* @example {true}
|
|
47
|
-
*/
|
|
48
|
-
borderless?: boolean;
|
|
49
|
-
}
|
|
50
|
-
export interface ICollapseViewProps extends ICollapseProps {
|
|
51
|
-
toggleCollapse: (number: any) => void;
|
|
52
|
-
toggleAccordion: (number: any) => void;
|
|
53
|
-
childIndex: number;
|
|
54
|
-
isShowMore?: boolean;
|
|
55
|
-
}
|
|
56
|
-
declare function Collapse(props: ICollapseProps): JSX.Element;
|
|
57
|
-
declare namespace Collapse {
|
|
58
|
-
var defaultProps: {
|
|
59
|
-
iconPosition: string;
|
|
60
|
-
showIcon: boolean;
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
export default Collapse;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
export interface ICollapseItemProps {
|
|
3
|
-
view?: any;
|
|
4
|
-
style?: React.CSSProperties;
|
|
5
|
-
children?: any;
|
|
6
|
-
/**
|
|
7
|
-
* Дополнительный CSS-класс
|
|
8
|
-
*/
|
|
9
|
-
className?: CssClassName;
|
|
10
|
-
/**
|
|
11
|
-
* Название CollapseItem
|
|
12
|
-
* @example {'Подробнее'}
|
|
13
|
-
*/
|
|
14
|
-
title?: string;
|
|
15
|
-
/**
|
|
16
|
-
* @example {true}
|
|
17
|
-
*/
|
|
18
|
-
disabled?: boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Кастомная иконка svg или название иконки
|
|
21
|
-
* @example {'circle'}
|
|
22
|
-
*/
|
|
23
|
-
icon?: React.ReactNode | string;
|
|
24
|
-
/**
|
|
25
|
-
* Показ иконки, которая показывает состояние CollapseItem. Поумолчанию включены.
|
|
26
|
-
* @example {false}
|
|
27
|
-
*/
|
|
28
|
-
showIcon?: boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Позиция иконки-индикатора
|
|
31
|
-
* @example {'left'}
|
|
32
|
-
*/
|
|
33
|
-
iconPosition?: 'left' | 'right';
|
|
34
|
-
/**
|
|
35
|
-
* Включает режим Аккордиона (только один CollapseItem может быть открыт)
|
|
36
|
-
* @example {true}
|
|
37
|
-
*/
|
|
38
|
-
isAccordion?: boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Номер активного CollapseItem, который может меняться динамический или быть статичным
|
|
41
|
-
* @example
|
|
42
|
-
*/
|
|
43
|
-
activeKey?: number;
|
|
44
|
-
/**
|
|
45
|
-
* Вызываемая функция при каждом изменении состояния
|
|
46
|
-
* @example {() => {console.log('success')}}
|
|
47
|
-
*/
|
|
48
|
-
onChange?: () => void;
|
|
49
|
-
/**
|
|
50
|
-
* Отключение внешних рамок
|
|
51
|
-
* @example {true}
|
|
52
|
-
*/
|
|
53
|
-
borderless?: boolean;
|
|
54
|
-
}
|
|
55
|
-
export interface ICollapseItemViewProps extends ICollapseItemProps {
|
|
56
|
-
toggleCollapse?: (number: any) => void;
|
|
57
|
-
toggleAccordion?: (number: any) => void;
|
|
58
|
-
childIndex?: number;
|
|
59
|
-
isShowMore?: boolean;
|
|
60
|
-
}
|
|
61
|
-
declare function CollapseItem(props: ICollapseItemProps): any;
|
|
62
|
-
declare namespace CollapseItem {
|
|
63
|
-
var defaultProps: {
|
|
64
|
-
title: string;
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
export default CollapseItem;
|