@steroidsjs/core 3.0.0 → 3.0.2
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/docs-autogen-result.json +144 -47
- package/en.json +8 -2
- package/hooks/useApplication.d.ts +1 -1
- package/package.json +1 -1
- package/ui/content/DropDown/DropDown.js +1 -3
- package/ui/content/Kanban/Kanban.d.ts +7 -1
- package/ui/content/Kanban/Kanban.js +2 -1
- package/ui/content/Kanban/hooks/useKanban.d.ts +6 -0
- package/ui/content/Kanban/hooks/useKanban.js +2 -1
- package/ui/form/AutoCompleteField/AutoCompleteField.d.ts +1 -2
- package/ui/form/AutoCompleteField/AutoCompleteField.js +24 -11
- package/ui/form/Button/Button.d.ts +1 -1
- package/ui/form/Button/Button.js +29 -5
- package/ui/form/CheckboxField/CheckboxField.d.ts +1 -1
- package/ui/form/CheckboxField/CheckboxField.js +13 -4
- package/ui/form/CheckboxListField/CheckboxListField.d.ts +2 -1
- package/ui/form/CheckboxListField/CheckboxListField.js +13 -4
- package/ui/form/CheckboxTreeField/CheckboxTreeField.d.ts +1 -1
- package/ui/form/CheckboxTreeField/CheckboxTreeField.js +9 -1
- package/ui/form/DateField/DateField.d.ts +4 -3
- package/ui/form/DateField/DateField.js +4 -1
- package/ui/form/DateRangeField/DateRangeField.js +18 -13
- package/ui/form/DateTimeField/DateTimeField.d.ts +1 -1
- package/ui/form/DateTimeField/DateTimeField.js +19 -1
- package/ui/form/DateTimeRangeField/DateTimeRangeField.js +20 -1
- package/ui/form/DropDownField/DropDownField.js +34 -2
- package/ui/form/EmailField/EmailField.js +53 -3
- package/ui/form/Field/Field.js +3 -3
- package/ui/form/FieldLayout/FieldLayout.js +12 -12
- package/ui/form/FieldList/FieldList.d.ts +1 -1
- package/ui/form/FieldList/FieldList.js +7 -6
- package/ui/form/FieldSet/FieldSet.js +6 -1
- package/ui/form/FileField/FileField.js +13 -3
- package/ui/form/Form/Form.d.ts +1 -1
- package/ui/form/Form/Form.js +12 -14
- package/ui/form/HtmlField/HtmlField.d.ts +20 -1
- package/ui/form/HtmlField/HtmlField.js +11 -12
- package/ui/form/ImageField/ImageField.js +12 -8
- package/ui/form/InputField/InputField.js +24 -3
- package/ui/form/MaskField/MaskField.js +1 -13
- package/ui/form/NavField/NavField.js +12 -2
- package/ui/form/NumberField/NumberField.js +16 -3
- package/ui/form/PasswordField/PasswordField.js +15 -2
- package/ui/form/RadioField/RadioField.d.ts +1 -1
- package/ui/form/RadioField/RadioField.js +15 -4
- package/ui/form/RadioListField/RadioListField.d.ts +2 -1
- package/ui/form/RadioListField/RadioListField.js +14 -4
- package/ui/form/RateField/RateField.js +11 -1
- package/ui/form/ReCaptchaField/ReCaptchaField.js +6 -12
- package/ui/form/SliderField/SliderField.d.ts +1 -1
- package/ui/form/SliderField/SliderField.js +5 -3
- package/ui/form/SwitcherField/SwitcherField.d.ts +1 -1
- package/ui/form/SwitcherField/SwitcherField.js +14 -4
- package/ui/form/TextField/TextField.js +2 -1
- package/ui/form/TimeField/TimeField.js +3 -1
- package/ui/form/TimeRangeField/TimeRangeField.js +4 -1
- package/ui/layout/Notifications/Notifications.d.ts +1 -1
- package/ui/layout/Notifications/Notifications.js +7 -3
- package/ui/layout/ProgressBar/ProgressBar.d.ts +1 -1
- package/ui/layout/ProgressBar/ProgressBar.js +24 -24
- package/ui/layout/Sidebar/Sidebar.js +16 -12
- package/ui/list/ControlsColumn/ControlsColumn.js +7 -1
- package/ui/list/Grid/Grid.d.ts +1 -1
- package/ui/list/Grid/Grid.js +33 -8
- package/ui/list/LayoutNames/LayoutNames.d.ts +1 -1
- package/ui/list/LayoutNames/LayoutNames.js +2 -3
- package/ui/list/List/List.js +19 -4
- package/ui/list/Pagination/Pagination.d.ts +1 -1
- package/ui/list/Pagination/Pagination.js +22 -6
- package/ui/list/PaginationSize/PaginationSize.d.ts +1 -1
- package/ui/list/PaginationSize/PaginationSize.js +10 -4
- package/ui/modal/Modal/Modal.d.ts +2 -2
- package/ui/modal/Modal/Modal.js +16 -3
- package/ui/modal/ModalPortal/ModalPortal.js +2 -3
- package/ui/nav/Breadcrumbs/Breadcrumbs.js +10 -12
- package/ui/nav/ButtonGroup/ButtonGroup.js +19 -38
- package/ui/nav/Controls/Controls.js +6 -1
- package/ui/nav/Nav/Nav.d.ts +9 -1
- package/ui/nav/Nav/Nav.js +16 -7
- package/ui/nav/Router/Router.d.ts +2 -2
- package/ui/nav/Router/Router.js +17 -16
- package/ui/nav/Router/helpers.d.ts +1 -1
- package/ui/nav/Router/helpers.js +19 -16
- package/ui/nav/Tree/Tree.d.ts +3 -3
- package/ui/nav/Tree/Tree.js +11 -13
|
@@ -37,9 +37,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
|
-
var
|
|
40
|
+
var react_1 = __importStar(require("react"));
|
|
41
41
|
var orderBy_1 = __importDefault(require("lodash-es/orderBy"));
|
|
42
|
-
var react_1 = require("react");
|
|
43
42
|
var react_use_1 = require("react-use");
|
|
44
43
|
var useDispatch_1 = __importDefault(require("../../../hooks/useDispatch"));
|
|
45
44
|
var hooks_1 = require("../../../hooks");
|
|
@@ -85,7 +84,12 @@ function Notifications(props) {
|
|
|
85
84
|
var items = (0, react_1.useMemo)(function () { return ((0, orderBy_1["default"])([].concat(innerNotifications).concat(closing), ['id'], 'asc')
|
|
86
85
|
.map(function (item) { return (__assign(__assign({}, item), { isClosing: closingIds.includes(item.id), onClose: function () { return onClose(item.id); } })); })); }, [innerNotifications, closing, closingIds, onClose]);
|
|
87
86
|
var NotificationsItemView = props.itemView || components.ui.getView('layout.NotificationsItemView');
|
|
88
|
-
|
|
87
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
88
|
+
className: props.className,
|
|
89
|
+
position: position || '',
|
|
90
|
+
children: items.map(function (item) { return (react_1["default"].createElement(NotificationsItemView, __assign({ key: item.id }, item))); })
|
|
91
|
+
}); }, [props.className, position, items, NotificationsItemView]);
|
|
92
|
+
return components.ui.renderView(props.view || 'layout.NotificationsView', viewProps);
|
|
89
93
|
}
|
|
90
94
|
Notifications.defaultProps = {
|
|
91
95
|
closeTimeoutMs: 1500
|
|
@@ -26,36 +26,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
exports.__esModule = true;
|
|
29
|
-
var
|
|
29
|
+
var react_1 = __importStar(require("react"));
|
|
30
30
|
var Icon_1 = __importDefault(require("../../content/Icon/Icon"));
|
|
31
31
|
var hooks_1 = require("../../../hooks");
|
|
32
32
|
function ProgressBar(props) {
|
|
33
33
|
var components = (0, hooks_1.useComponents)();
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return
|
|
34
|
+
var viewProps = (0, react_1.useMemo)(function () {
|
|
35
|
+
var getLabel = (function () {
|
|
36
|
+
if (!props.showLabel) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
if (props.icon) {
|
|
40
|
+
return props.icon(props.status, props.percent);
|
|
41
|
+
}
|
|
42
|
+
if (props.status === 'success') {
|
|
43
|
+
return react_1["default"].createElement(Icon_1["default"], { name: "check" });
|
|
44
|
+
}
|
|
45
|
+
if (props.status === 'exception') {
|
|
46
|
+
return react_1["default"].createElement(Icon_1["default"], { name: "times" });
|
|
47
|
+
}
|
|
48
|
+
return props.label(props.percent);
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
percent: props.percent,
|
|
51
52
|
status: props.status,
|
|
52
53
|
size: props.size,
|
|
53
|
-
label: getLabel()
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
label: getLabel() });
|
|
54
|
+
label: getLabel()
|
|
55
|
+
};
|
|
56
|
+
}, [props]);
|
|
57
|
+
var ViewComponent = props.type === 'line' ? 'layout.LineProgressBarView' : 'layout.CircleProgressBarView';
|
|
58
|
+
return components.ui.renderView(ViewComponent, viewProps);
|
|
59
59
|
}
|
|
60
60
|
ProgressBar.defaultProps = {
|
|
61
61
|
status: 'normal',
|
|
@@ -1,15 +1,4 @@
|
|
|
1
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
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
3
|
if (k2 === undefined) k2 = k;
|
|
15
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -48,7 +37,22 @@ function Sidebar(props) {
|
|
|
48
37
|
props.onClickItem(itemId);
|
|
49
38
|
}
|
|
50
39
|
}, [props]);
|
|
51
|
-
|
|
40
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
41
|
+
isOpened: isOpened,
|
|
42
|
+
toggleSidebar: toggleSidebar,
|
|
43
|
+
onClickNav: onClickNav,
|
|
44
|
+
hasSeparatedNavItem: props.hasSeparatedNavItem,
|
|
45
|
+
className: props.className,
|
|
46
|
+
style: props.style,
|
|
47
|
+
logo: props.logo,
|
|
48
|
+
menu: props.menu,
|
|
49
|
+
user: props.user,
|
|
50
|
+
items: props.items,
|
|
51
|
+
footerIcons: props.footerIcons,
|
|
52
|
+
isShink: props.isShink
|
|
53
|
+
}); }, [isOpened, onClickNav, props.className, props.footerIcons, props.hasSeparatedNavItem, props.isShink, props.items,
|
|
54
|
+
props.logo, props.menu, props.style, props.user, toggleSidebar]);
|
|
55
|
+
return components.ui.renderView(props.view || 'layout.SidebarView', viewProps);
|
|
52
56
|
}
|
|
53
57
|
exports["default"] = Sidebar;
|
|
54
58
|
Sidebar.defaultProps = {
|
|
@@ -25,6 +25,12 @@ function ControlsColumn(props) {
|
|
|
25
25
|
: props.controls;
|
|
26
26
|
return controls.map(function (control) { return (__assign(__assign({}, control), { position: 'left', visible: control.visible !== false && props.item['can' + (0, upperFirst_1["default"])(control.id)] !== false })); });
|
|
27
27
|
}, [props]);
|
|
28
|
-
|
|
28
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
29
|
+
items: items,
|
|
30
|
+
view: props.view,
|
|
31
|
+
controls: props.controls,
|
|
32
|
+
primaryKey: props.primaryKey
|
|
33
|
+
}); }, [items, props.controls, props.primaryKey, props.view]);
|
|
34
|
+
return components.ui.renderView(props.view || 'list.ControlsColumnView', viewProps);
|
|
29
35
|
}
|
|
30
36
|
exports["default"] = ControlsColumn;
|
package/ui/list/Grid/Grid.d.ts
CHANGED
package/ui/list/Grid/Grid.js
CHANGED
|
@@ -37,10 +37,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
|
-
var
|
|
40
|
+
var react_1 = __importStar(require("react"));
|
|
41
41
|
var upperFirst_1 = __importDefault(require("lodash-es/upperFirst"));
|
|
42
42
|
var isString_1 = __importDefault(require("lodash-es/isString"));
|
|
43
|
-
var react_1 = require("react");
|
|
44
43
|
var hooks_1 = require("../../../hooks");
|
|
45
44
|
var useList_1 = __importDefault(require("../../../hooks/useList"));
|
|
46
45
|
var ControlsColumn_1 = __importDefault(require("../ControlsColumn"));
|
|
@@ -74,7 +73,7 @@ function Grid(props) {
|
|
|
74
73
|
var renderLabel = (0, react_1.useCallback)(function (column) {
|
|
75
74
|
if (column.headerView) {
|
|
76
75
|
var HeaderView = column.headerView;
|
|
77
|
-
return (
|
|
76
|
+
return (react_1["default"].createElement(HeaderView, __assign({}, column, column.headerProps, { listId: props.listId })));
|
|
78
77
|
}
|
|
79
78
|
if (column.label || column.label === '') {
|
|
80
79
|
return column.label;
|
|
@@ -90,13 +89,13 @@ function Grid(props) {
|
|
|
90
89
|
if (column.valueView) {
|
|
91
90
|
var isValueViewString = typeof column.valueView === 'string';
|
|
92
91
|
var ValueView = isValueViewString ? components.ui.getView("list.".concat(column.valueView)) : column.valueView;
|
|
93
|
-
var
|
|
92
|
+
var viewProps_1 = __assign(__assign(__assign({}, column), column.valueProps), { listId: props.listId, primaryKey: props.primaryKey, item: item, size: props.size });
|
|
94
93
|
if (isValueViewString) {
|
|
95
|
-
return components.ui.renderView(ValueView,
|
|
94
|
+
return components.ui.renderView(ValueView, viewProps_1);
|
|
96
95
|
}
|
|
97
|
-
return (
|
|
96
|
+
return (react_1["default"].createElement(ValueView, __assign({}, viewProps_1)));
|
|
98
97
|
}
|
|
99
|
-
return (
|
|
98
|
+
return (react_1["default"].createElement(Format_1["default"], __assign({ item: item, model: props.model }, column, (column.formatter || {}))));
|
|
100
99
|
}, [props.listId, props.model, props.primaryKey]);
|
|
101
100
|
// Columns
|
|
102
101
|
var columns = (0, react_1.useMemo)(function () { return []
|
|
@@ -119,7 +118,33 @@ function Grid(props) {
|
|
|
119
118
|
.map(function (column) { return ((0, isString_1["default"])(column) ? { attribute: column } : column); })
|
|
120
119
|
.filter(function (column) { return column.visible !== false; })
|
|
121
120
|
.map(function (column) { return (__assign(__assign({}, column), { label: renderLabel(column) })); }); }, [props.columns, props.controls, props.itemsIndexing, renderLabel]);
|
|
122
|
-
|
|
121
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
122
|
+
list: list,
|
|
123
|
+
paginationPosition: paginationPosition,
|
|
124
|
+
paginationSizePosition: paginationSizePosition,
|
|
125
|
+
layoutNamesPosition: layoutNamesPosition,
|
|
126
|
+
renderList: renderList,
|
|
127
|
+
renderEmpty: renderEmpty,
|
|
128
|
+
renderPagination: renderPagination,
|
|
129
|
+
renderPaginationSize: renderPaginationSize,
|
|
130
|
+
renderLayoutNames: renderLayoutNames,
|
|
131
|
+
renderSearchForm: renderSearchForm,
|
|
132
|
+
renderValue: renderValue,
|
|
133
|
+
columns: columns,
|
|
134
|
+
onFetch: onFetch,
|
|
135
|
+
onSort: onSort,
|
|
136
|
+
items: (list === null || list === void 0 ? void 0 : list.items) || [],
|
|
137
|
+
searchForm: props.searchForm,
|
|
138
|
+
listId: props.listId,
|
|
139
|
+
isLoading: props.isLoading,
|
|
140
|
+
size: props.size,
|
|
141
|
+
hasAlternatingColors: props.hasAlternatingColors,
|
|
142
|
+
className: props.className,
|
|
143
|
+
primaryKey: props.primaryKey
|
|
144
|
+
}); }, [columns, layoutNamesPosition, list, onFetch, onSort, paginationPosition, paginationSizePosition, props.className,
|
|
145
|
+
props.hasAlternatingColors, props.isLoading, props.listId, props.primaryKey, props.searchForm, props.size, renderEmpty,
|
|
146
|
+
renderLayoutNames, renderList, renderPagination, renderPaginationSize, renderSearchForm, renderValue]);
|
|
147
|
+
return components.ui.renderView(props.view || 'list.GridView', viewProps);
|
|
123
148
|
}
|
|
124
149
|
exports["default"] = Grid;
|
|
125
150
|
Grid.defaultProps = {
|
|
@@ -38,9 +38,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
40
|
exports.normalizeLayoutNamesProps = void 0;
|
|
41
|
-
var
|
|
41
|
+
var react_1 = __importStar(require("react"));
|
|
42
42
|
var get_1 = __importDefault(require("lodash-es/get"));
|
|
43
|
-
var react_1 = require("react");
|
|
44
43
|
var hooks_1 = require("../../../hooks");
|
|
45
44
|
var list_1 = require("../../../actions/list");
|
|
46
45
|
var useDispatch_1 = __importDefault(require("../../../hooks/useDispatch"));
|
|
@@ -70,4 +69,4 @@ LayoutNames.defaultProps = {
|
|
|
70
69
|
};
|
|
71
70
|
var normalizeLayoutNamesProps = function (props) { return (__assign(__assign(__assign({}, LayoutNames.defaultProps), { enable: !!props, defaultValue: (0, get_1["default"])(props, 'items.0.id') || LayoutNames.defaultProps.defaultValue }), (typeof props === 'boolean' ? { enable: props } : props))); };
|
|
72
71
|
exports.normalizeLayoutNamesProps = normalizeLayoutNamesProps;
|
|
73
|
-
exports["default"] =
|
|
72
|
+
exports["default"] = react_1["default"].memo(LayoutNames);
|
package/ui/list/List/List.js
CHANGED
|
@@ -38,6 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
40
|
var React = __importStar(require("react"));
|
|
41
|
+
var react_1 = require("react");
|
|
41
42
|
var hooks_1 = require("../../../hooks");
|
|
42
43
|
var useList_1 = __importDefault(require("../../../hooks/useList"));
|
|
43
44
|
function List(props) {
|
|
@@ -69,9 +70,23 @@ function List(props) {
|
|
|
69
70
|
}), list = _a.list, paginationPosition = _a.paginationPosition, paginationSizePosition = _a.paginationSizePosition, layoutNamesPosition = _a.layoutNamesPosition, renderList = _a.renderList, renderEmpty = _a.renderEmpty, renderPagination = _a.renderPagination, renderPaginationSize = _a.renderPaginationSize, renderLayoutNames = _a.renderLayoutNames, renderSearchForm = _a.renderSearchForm;
|
|
70
71
|
var ItemView = props.itemView || components.ui.getView('list.ListItemView');
|
|
71
72
|
var content = ((list === null || list === void 0 ? void 0 : list.items) || []).map(function (item, index) { return (React.createElement(ItemView, __assign({}, props.itemProps, { key: item[props.primaryKey] || index, primaryKey: props.primaryKey, item: item, index: index, layoutSelected: list.layoutName }))); });
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
74
|
+
list: list,
|
|
75
|
+
paginationPosition: paginationPosition,
|
|
76
|
+
paginationSizePosition: paginationSizePosition,
|
|
77
|
+
layoutNamesPosition: layoutNamesPosition,
|
|
78
|
+
renderList: renderList,
|
|
79
|
+
renderEmpty: renderEmpty,
|
|
80
|
+
renderPagination: renderPagination,
|
|
81
|
+
renderPaginationSize: renderPaginationSize,
|
|
82
|
+
renderLayoutNames: renderLayoutNames,
|
|
83
|
+
renderSearchForm: renderSearchForm,
|
|
84
|
+
content: content,
|
|
85
|
+
isLoading: props.isLoading,
|
|
86
|
+
className: props.className,
|
|
87
|
+
contentClassName: props.contentClassName
|
|
88
|
+
}); }, [content, layoutNamesPosition, list, paginationPosition, paginationSizePosition, props.className, props.contentClassName,
|
|
89
|
+
props.isLoading, renderEmpty, renderLayoutNames, renderList, renderPagination, renderPaginationSize, renderSearchForm]);
|
|
90
|
+
return components.ui.renderView(props.view || 'list.ListView', viewProps);
|
|
76
91
|
}
|
|
77
92
|
exports["default"] = List;
|
|
@@ -39,8 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
exports.__esModule = true;
|
|
40
40
|
exports.normalizePaginationProps = exports.generatePages = void 0;
|
|
41
41
|
var get_1 = __importDefault(require("lodash-es/get"));
|
|
42
|
-
var react_1 = require("react");
|
|
43
|
-
var React = __importStar(require("react"));
|
|
42
|
+
var react_1 = __importStar(require("react"));
|
|
44
43
|
var hooks_1 = require("../../../hooks");
|
|
45
44
|
var useForm_1 = __importDefault(require("../../../hooks/useForm"));
|
|
46
45
|
var form_1 = require("../../../actions/form");
|
|
@@ -79,8 +78,8 @@ function Pagination(props) {
|
|
|
79
78
|
});
|
|
80
79
|
}) || initialValues, page = _e.page, pageSize = _e.pageSize;
|
|
81
80
|
var totalPages = Math.ceil((((_c = props.list) === null || _c === void 0 ? void 0 : _c.total) || 0) / (pageSize || 1));
|
|
82
|
-
var isFirstPage =
|
|
83
|
-
var isLastPage =
|
|
81
|
+
var isFirstPage = react_1["default"].useMemo(function () { return page === FIRST_PAGE; }, [page]);
|
|
82
|
+
var isLastPage = react_1["default"].useMemo(function () { return page === totalPages; }, [page, totalPages]);
|
|
84
83
|
var pages = (0, react_1.useMemo)(function () { return (0, exports.generatePages)(page, totalPages, props.aroundCount)
|
|
85
84
|
.map(function (pageItem, index, pagesArray) {
|
|
86
85
|
// Номер страницы для '...' кнопки (выбирает страницу между двумя соседними пронумерованными)
|
|
@@ -111,6 +110,23 @@ function Pagination(props) {
|
|
|
111
110
|
var onSelectFirst = (0, react_1.useCallback)(function () {
|
|
112
111
|
onSelect(FIRST_PAGE);
|
|
113
112
|
}, [onSelect]);
|
|
113
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
114
|
+
totalPages: totalPages,
|
|
115
|
+
pages: pages,
|
|
116
|
+
onSelect: onSelect,
|
|
117
|
+
onSelectNext: onSelectNext,
|
|
118
|
+
onSelectPrev: onSelectPrev,
|
|
119
|
+
onSelectLast: onSelectLast,
|
|
120
|
+
onSelectFirst: onSelectFirst,
|
|
121
|
+
isFirstPage: isFirstPage,
|
|
122
|
+
isLastPage: isLastPage,
|
|
123
|
+
size: props.size,
|
|
124
|
+
className: props.className,
|
|
125
|
+
showEdgeSteps: props.showEdgeSteps,
|
|
126
|
+
showSteps: props.showSteps,
|
|
127
|
+
buttonProps: props.buttonProps
|
|
128
|
+
}); }, [isFirstPage, isLastPage, onSelect, onSelectFirst, onSelectLast, onSelectNext, onSelectPrev, pages, props.buttonProps,
|
|
129
|
+
props.className, props.showEdgeSteps, props.showSteps, props.size, totalPages]);
|
|
114
130
|
if (!props.list || !page || !pageSize || props.list.total <= pageSize) {
|
|
115
131
|
return null;
|
|
116
132
|
}
|
|
@@ -119,7 +135,7 @@ function Pagination(props) {
|
|
|
119
135
|
return null;
|
|
120
136
|
}
|
|
121
137
|
var defaultView = (props.loadMore ? 'list.PaginationMoreView' : 'list.PaginationButtonView');
|
|
122
|
-
return components.ui.renderView(props.view || defaultView,
|
|
138
|
+
return components.ui.renderView(props.view || defaultView, viewProps);
|
|
123
139
|
}
|
|
124
140
|
Pagination.defaultProps = {
|
|
125
141
|
enable: true,
|
|
@@ -133,4 +149,4 @@ Pagination.defaultProps = {
|
|
|
133
149
|
};
|
|
134
150
|
var normalizePaginationProps = function (props) { return (__assign(__assign({}, Pagination.defaultProps), (typeof props === 'boolean' ? { enable: props } : props))); };
|
|
135
151
|
exports.normalizePaginationProps = normalizePaginationProps;
|
|
136
|
-
exports["default"] =
|
|
152
|
+
exports["default"] = react_1["default"].memo(Pagination);
|
|
@@ -38,9 +38,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
40
|
exports.normalizePaginationSizeProps = void 0;
|
|
41
|
-
var react_1 = require("react");
|
|
41
|
+
var react_1 = __importStar(require("react"));
|
|
42
42
|
var get_1 = __importDefault(require("lodash-es/get"));
|
|
43
|
-
var React = __importStar(require("react"));
|
|
44
43
|
var hooks_1 = require("../../../hooks");
|
|
45
44
|
var useForm_1 = __importDefault(require("../../../hooks/useForm"));
|
|
46
45
|
var form_1 = require("../../../actions/form");
|
|
@@ -60,10 +59,17 @@ function PaginationSize(props) {
|
|
|
60
59
|
props.onChange.call(null, newPage);
|
|
61
60
|
}
|
|
62
61
|
}, [formDispatch, formId, props.attribute, props.onChange]);
|
|
62
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
63
|
+
items: items,
|
|
64
|
+
onSelect: onSelect,
|
|
65
|
+
className: props.className,
|
|
66
|
+
defaultValue: props.defaultValue,
|
|
67
|
+
buttonProps: props.buttonProps
|
|
68
|
+
}); }, [items, onSelect, props.buttonProps, props.className, props.defaultValue]);
|
|
63
69
|
if (!((_b = (_a = props.list) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
64
70
|
return null;
|
|
65
71
|
}
|
|
66
|
-
return components.ui.renderView(props.view || 'list.PaginationSizeView',
|
|
72
|
+
return components.ui.renderView(props.view || 'list.PaginationSizeView', viewProps);
|
|
67
73
|
}
|
|
68
74
|
PaginationSize.defaultProps = {
|
|
69
75
|
enable: false,
|
|
@@ -77,4 +83,4 @@ PaginationSize.defaultProps = {
|
|
|
77
83
|
};
|
|
78
84
|
var normalizePaginationSizeProps = function (props) { return (__assign(__assign(__assign({}, PaginationSize.defaultProps), { enable: !!props, defaultValue: (0, get_1["default"])(props, 'sizes.0') || PaginationSize.defaultProps.defaultValue }), (typeof props === 'boolean' ? { enable: props } : props))); };
|
|
79
85
|
exports.normalizePaginationSizeProps = normalizePaginationSizeProps;
|
|
80
|
-
exports["default"] =
|
|
86
|
+
exports["default"] = react_1["default"].memo(PaginationSize);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
2
|
import { IButtonProps } from '../../form/Button/Button';
|
|
3
3
|
/**
|
|
4
4
|
* Modal
|
|
@@ -14,7 +14,7 @@ export interface IModalProps {
|
|
|
14
14
|
* Компонент, который отрендерится внутри Modal
|
|
15
15
|
* @example () => <InnerModalComponent />
|
|
16
16
|
*/
|
|
17
|
-
component?: (props:
|
|
17
|
+
component?: (props: ComponentProps<any>) => JSX.Element;
|
|
18
18
|
/**
|
|
19
19
|
* Свойства для внутреннего компонента
|
|
20
20
|
*/
|
package/ui/modal/Modal/Modal.js
CHANGED
|
@@ -34,19 +34,32 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
34
34
|
return result;
|
|
35
35
|
};
|
|
36
36
|
exports.__esModule = true;
|
|
37
|
-
var
|
|
37
|
+
var react_1 = __importStar(require("react"));
|
|
38
38
|
var hooks_1 = require("../../../hooks");
|
|
39
39
|
function Modal(props) {
|
|
40
40
|
var components = (0, hooks_1.useComponents)();
|
|
41
41
|
var ModalView = props.view || components.ui.getView('modal.ModalView');
|
|
42
42
|
var ContentComponent = props.component;
|
|
43
|
-
|
|
43
|
+
(0, react_1.useEffect)(function () {
|
|
44
44
|
if (props.closeAfterMs) {
|
|
45
45
|
setTimeout(function () { return props.onClose(); }, props.closeAfterMs);
|
|
46
46
|
}
|
|
47
47
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
48
48
|
}, []);
|
|
49
|
-
|
|
49
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
50
|
+
size: props.size,
|
|
51
|
+
className: props.className,
|
|
52
|
+
closeTimeoutMs: props.closeTimeoutMs,
|
|
53
|
+
isClosing: props.isClosing,
|
|
54
|
+
onClose: props.onClose,
|
|
55
|
+
shouldCloseOnEsc: props.shouldCloseOnEsc,
|
|
56
|
+
shouldCloseOnOverlayClick: props.shouldCloseOnOverlayClick,
|
|
57
|
+
title: props.title,
|
|
58
|
+
children: props.children,
|
|
59
|
+
buttons: props.buttons
|
|
60
|
+
}); }, [props.buttons, props.children, props.className, props.closeTimeoutMs, props.isClosing, props.onClose, props.shouldCloseOnEsc,
|
|
61
|
+
props.shouldCloseOnOverlayClick, props.size, props.title]);
|
|
62
|
+
return (react_1["default"].createElement(ModalView, __assign({}, viewProps), (ContentComponent && (react_1["default"].createElement(ContentComponent, __assign({}, props, props.componentProps)))) || (props.children)));
|
|
50
63
|
}
|
|
51
64
|
Modal.defaultProps = {
|
|
52
65
|
size: 'md',
|
|
@@ -37,9 +37,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
|
-
var
|
|
40
|
+
var react_1 = __importStar(require("react"));
|
|
41
41
|
var orderBy_1 = __importDefault(require("lodash-es/orderBy"));
|
|
42
|
-
var react_1 = require("react");
|
|
43
42
|
var hooks_1 = require("../../../hooks");
|
|
44
43
|
var useDispatch_1 = __importDefault(require("../../../hooks/useDispatch"));
|
|
45
44
|
var modal_1 = require("../../../actions/modal");
|
|
@@ -68,7 +67,7 @@ function ModalPortal(props) {
|
|
|
68
67
|
return (0, orderBy_1["default"])(opened, 'id').map(function (item, index) {
|
|
69
68
|
var ModalComponent = item.modal;
|
|
70
69
|
var modalProps = __assign(__assign({}, item.props), { index: index, group: group, isClosing: item.isClosing, onClose: function () { return onClose(item); }, closeTimeoutMs: item.props.closeTimeoutMs || props.animationDelayMc });
|
|
71
|
-
return (
|
|
70
|
+
return (react_1["default"].createElement(ModalComponent, __assign({ key: item.id }, modalProps)));
|
|
72
71
|
});
|
|
73
72
|
}
|
|
74
73
|
ModalPortal.defaultProps = {
|
|
@@ -1,16 +1,6 @@
|
|
|
1
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
2
|
exports.__esModule = true;
|
|
3
|
+
var react_1 = require("react");
|
|
14
4
|
var hooks_1 = require("../../../hooks");
|
|
15
5
|
var router_1 = require("../../../reducers/router");
|
|
16
6
|
function Breadcrumbs(props) {
|
|
@@ -18,6 +8,14 @@ function Breadcrumbs(props) {
|
|
|
18
8
|
var routeItems = (0, hooks_1.useSelector)(function (state) { return (0, router_1.getRouteBreadcrumbs)(state, props.pageId); });
|
|
19
9
|
var routeParams = (0, hooks_1.useSelector)(function (state) { return (0, router_1.getRouteParams)(state); });
|
|
20
10
|
var items = props.items || routeItems;
|
|
21
|
-
|
|
11
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
12
|
+
items: items,
|
|
13
|
+
routeParams: routeParams,
|
|
14
|
+
customIcon: props.customIcon,
|
|
15
|
+
showIcon: props.showIcon,
|
|
16
|
+
className: props.className,
|
|
17
|
+
pageTitle: props.pageTitle
|
|
18
|
+
}); }, [items, props.className, props.customIcon, props.pageTitle, props.showIcon, routeParams]);
|
|
19
|
+
return components.ui.renderView(props.view || 'nav.BreadcrumbsView', viewProps);
|
|
22
20
|
}
|
|
23
21
|
exports["default"] = Breadcrumbs;
|
|
@@ -1,59 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
28
5
|
exports.__esModule = true;
|
|
29
|
-
var react_1 =
|
|
6
|
+
var react_1 = require("react");
|
|
30
7
|
var hooks_1 = require("../../../hooks");
|
|
31
8
|
var useDataProvider_1 = __importDefault(require("../../../hooks/useDataProvider"));
|
|
32
9
|
var DEFAULT_BUTTON_GROUP_SIZE = 'md';
|
|
33
10
|
function ButtonGroup(props) {
|
|
34
|
-
var _a
|
|
11
|
+
var _a;
|
|
35
12
|
var components = (0, hooks_1.useComponents)();
|
|
36
13
|
var items = (0, useDataProvider_1["default"])({
|
|
37
14
|
items: props.items
|
|
38
15
|
}).items;
|
|
39
|
-
var
|
|
40
|
-
react_1
|
|
16
|
+
var _b = (0, react_1.useState)(props.activeButton || props.defaultActiveButton || ((_a = items[0]) === null || _a === void 0 ? void 0 : _a.id)), activeButton = _b[0], setActiveButton = _b[1];
|
|
17
|
+
(0, react_1.useEffect)(function () {
|
|
41
18
|
if (props.activeButton) {
|
|
42
19
|
setActiveButton(props.activeButton);
|
|
43
20
|
}
|
|
44
21
|
}, [props.activeButton]);
|
|
45
|
-
var onClick = function (buttonId) {
|
|
22
|
+
var onClick = (0, react_1.useCallback)(function (buttonId) {
|
|
46
23
|
setActiveButton(buttonId);
|
|
47
24
|
props.onClick(buttonId);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
25
|
+
}, [props]);
|
|
26
|
+
var viewProps = (0, react_1.useMemo)(function () {
|
|
27
|
+
var _a;
|
|
28
|
+
return ({
|
|
29
|
+
className: props.className,
|
|
30
|
+
style: props.style,
|
|
31
|
+
buttonProps: props.buttonProps,
|
|
32
|
+
size: ((_a = props.buttonProps) === null || _a === void 0 ? void 0 : _a.size) || DEFAULT_BUTTON_GROUP_SIZE,
|
|
33
|
+
activeButton: activeButton,
|
|
34
|
+
items: items,
|
|
35
|
+
onClick: onClick
|
|
36
|
+
});
|
|
37
|
+
}, [activeButton, items, onClick, props.buttonProps, props.className, props.style]);
|
|
38
|
+
return components.ui.renderView(props.view || 'nav.ButtonGroupView', viewProps);
|
|
58
39
|
}
|
|
59
40
|
exports["default"] = ButtonGroup;
|
|
@@ -51,6 +51,11 @@ function Controls(props) {
|
|
|
51
51
|
};
|
|
52
52
|
var components = (0, hooks_1.useComponents)();
|
|
53
53
|
var items = (0, react_1.useMemo)(function () { return props.items.map(function (item) { return (__assign(__assign({}, defaultItems[item.id]), item)); }); }, [defaultItems, props.items]);
|
|
54
|
-
|
|
54
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
55
|
+
items: items,
|
|
56
|
+
className: props.className,
|
|
57
|
+
navProps: props.navProps
|
|
58
|
+
}); }, [items, props.className, props.navProps]);
|
|
59
|
+
return components.ui.renderView(props.view || 'nav.ControlsView', viewProps);
|
|
55
60
|
}
|
|
56
61
|
exports["default"] = Controls;
|
package/ui/nav/Nav/Nav.d.ts
CHANGED
|
@@ -108,6 +108,15 @@ export interface INavProps {
|
|
|
108
108
|
* Размер
|
|
109
109
|
*/
|
|
110
110
|
size?: Size;
|
|
111
|
+
/**
|
|
112
|
+
* CSS-класс для элемента навигации.
|
|
113
|
+
*/
|
|
114
|
+
navClassName?: CssClassName;
|
|
115
|
+
/**
|
|
116
|
+
* Переводит кнопку в состояние "не активна"
|
|
117
|
+
* @example true
|
|
118
|
+
*/
|
|
119
|
+
disabled?: boolean;
|
|
111
120
|
[key: string]: any;
|
|
112
121
|
}
|
|
113
122
|
export interface INavViewProps extends INavProps {
|
|
@@ -116,7 +125,6 @@ export interface INavViewProps extends INavProps {
|
|
|
116
125
|
isActive: boolean;
|
|
117
126
|
isActiveNested: boolean;
|
|
118
127
|
})[];
|
|
119
|
-
navClassName?: CssClassName;
|
|
120
128
|
}
|
|
121
129
|
declare function Nav(props: INavProps): JSX.Element;
|
|
122
130
|
declare namespace Nav {
|