@steroidsjs/core 3.0.0-beta.14 → 3.0.0-beta.16
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/hoc/bem.d.ts +1 -1
- package/index.d.ts +3 -3
- package/package.json +1 -1
- package/reducers/router.js +2 -2
- package/ui/content/Accordion/Accordion.d.ts +2 -2
- package/ui/content/Alert/Alert.d.ts +2 -2
- package/ui/content/Avatar/AvatarGroup.d.ts +3 -3
- package/ui/content/Badge/Badge.d.ts +4 -4
- package/ui/content/Badge/Badge.js +1 -1
- package/ui/content/Card/Card.d.ts +21 -28
- package/ui/content/Card/Card.js +0 -5
- package/ui/content/CopyToClipboard/CopyToClipboard.d.ts +1 -1
- package/ui/content/Detail/Detail.d.ts +1 -1
- package/ui/content/DropDown/DropDown.d.ts +1 -1
- package/ui/content/Icon/Icon.d.ts +2 -2
- package/ui/form/Button/Button.d.ts +2 -2
- package/ui/form/CheckboxField/CheckboxField.d.ts +5 -0
- package/ui/form/CheckboxField/CheckboxField.js +31 -6
- package/ui/form/CheckboxListField/CheckboxListField.d.ts +7 -1
- package/ui/form/CheckboxListField/CheckboxListField.js +32 -7
- package/ui/form/DateField/DateField.d.ts +1 -1
- package/ui/form/DateRangeField/DateRangeField.d.ts +1 -1
- package/ui/form/DateTimeField/DateTimeField.d.ts +1 -1
- package/ui/form/DateTimeRangeField/DateTimeRangeField.d.ts +1 -1
- package/ui/form/DropDownField/DropDownField.d.ts +65 -17
- package/ui/form/DropDownField/DropDownField.js +90 -6
- package/ui/form/Field/fieldWrapper.d.ts +1 -1
- package/ui/form/FieldLayout/FieldLayout.d.ts +2 -2
- package/ui/form/FieldList/FieldList.d.ts +3 -3
- package/ui/form/FieldSet/FieldSet.d.ts +1 -1
- package/ui/form/Form/Form.d.ts +2 -7
- package/ui/form/InputField/InputField.d.ts +2 -2
- package/ui/form/RadioField/RadioField.d.ts +35 -0
- package/ui/form/RadioField/RadioField.js +61 -0
- package/ui/form/RadioField/index.d.ts +2 -0
- package/ui/{list/LayoutNames/demo/basic.js → form/RadioField/index.js} +2 -7
- package/ui/form/RadioListField/RadioListField.d.ts +6 -0
- package/ui/form/RadioListField/RadioListField.js +32 -2
- package/ui/form/TimeField/TimeField.d.ts +1 -1
- package/ui/form/index.d.ts +3 -1
- package/ui/form/index.js +4 -1
- package/ui/layout/Header/Header.d.ts +1 -1
- package/ui/layout/Loader/Loader.d.ts +1 -1
- package/ui/layout/Notifications/Notifications.d.ts +1 -1
- package/ui/layout/Skeleton/Skeleton.d.ts +2 -2
- package/ui/layout/Tooltip/calculate.js +1 -1
- package/ui/list/CheckboxColumn/CheckboxColumn.d.ts +1 -1
- package/ui/list/ControlsColumn/ControlsColumn.d.ts +1 -1
- package/ui/list/Grid/Grid.d.ts +1 -1
- package/ui/list/Grid/demo/sort.js +4 -2
- package/ui/list/Pagination/Pagination.d.ts +16 -6
- package/ui/list/Pagination/Pagination.js +15 -7
- package/ui/list/PaginationSize/demo/basic.js +2 -3
- package/ui/list/PaginationSize/demo/size.js +2 -3
- package/ui/list/SearchForm/demo/basic.js +5 -2
- package/ui/list/Steps/Steps.d.ts +3 -3
- package/ui/modal/TwoFactorModal/TwoFactorModal.d.ts +1 -1
- package/ui/nav/Breadcrumbs/Breadcrumbs.d.ts +9 -0
- package/ui/nav/Controls/Controls.d.ts +3 -3
- package/ui/nav/Nav/Nav.d.ts +2 -2
- package/ui/nav/Tree/Tree.d.ts +1 -1
- package/ui/typography/Text/Text.d.ts +2 -2
- package/ui/typography/Title/Title.d.ts +2 -2
- package/ui/content/Card/demo/basic.d.ts +0 -8
- package/ui/content/Card/demo/basic.js +0 -39
- package/ui/content/Card/demo/border color.d.ts +0 -3
- package/ui/content/Card/demo/border color.js +0 -52
- package/ui/content/Card/demo/color.d.ts +0 -3
- package/ui/content/Card/demo/color.js +0 -52
- package/ui/content/Card/demo/header.d.ts +0 -3
- package/ui/content/Card/demo/header.js +0 -47
- package/ui/content/Card/demo/hover.d.ts +0 -3
- package/ui/content/Card/demo/hover.js +0 -42
- package/ui/content/Card/demo/link.d.ts +0 -3
- package/ui/content/Card/demo/link.js +0 -43
- package/ui/content/Card/demo/orientation.d.ts +0 -3
- package/ui/content/Card/demo/orientation.js +0 -46
- package/ui/form/CheckboxListField/demo/basic.d.ts +0 -9
- package/ui/form/CheckboxListField/demo/basic.js +0 -43
- package/ui/form/CheckboxListField/demo/disabled.d.ts +0 -8
- package/ui/form/CheckboxListField/demo/disabled.js +0 -38
- package/ui/form/CheckboxListField/demo/errors.d.ts +0 -8
- package/ui/form/CheckboxListField/demo/errors.js +0 -38
- package/ui/form/CheckboxListField/demo/required.d.ts +0 -8
- package/ui/form/CheckboxListField/demo/required.js +0 -38
- package/ui/form/DropDownField/demo/auto-complete.d.ts +0 -8
- package/ui/form/DropDownField/demo/auto-complete.js +0 -38
- package/ui/form/DropDownField/demo/basic.d.ts +0 -12
- package/ui/form/DropDownField/demo/basic.js +0 -56
- package/ui/form/DropDownField/demo/disabled.d.ts +0 -8
- package/ui/form/DropDownField/demo/disabled.js +0 -38
- package/ui/form/DropDownField/demo/errors.d.ts +0 -8
- package/ui/form/DropDownField/demo/errors.js +0 -38
- package/ui/form/DropDownField/demo/multiple.d.ts +0 -8
- package/ui/form/DropDownField/demo/multiple.js +0 -38
- package/ui/form/DropDownField/demo/no-border.d.ts +0 -8
- package/ui/form/DropDownField/demo/no-border.js +0 -38
- package/ui/form/DropDownField/demo/placeholder.d.ts +0 -8
- package/ui/form/DropDownField/demo/placeholder.js +0 -38
- package/ui/form/DropDownField/demo/required.d.ts +0 -8
- package/ui/form/DropDownField/demo/required.js +0 -38
- package/ui/form/DropDownField/demo/show-reset.d.ts +0 -8
- package/ui/form/DropDownField/demo/show-reset.js +0 -38
- package/ui/form/DropDownField/demo/size.d.ts +0 -8
- package/ui/form/DropDownField/demo/size.js +0 -45
- package/ui/form/Form/demo/basic.d.ts +0 -8
- package/ui/form/Form/demo/basic.js +0 -62
- package/ui/form/Form/demo/border.d.ts +0 -8
- package/ui/form/Form/demo/border.js +0 -62
- package/ui/form/Form/demo/horizontal.d.ts +0 -8
- package/ui/form/Form/demo/horizontal.js +0 -55
- package/ui/form/Form/demo/inline.d.ts +0 -8
- package/ui/form/Form/demo/inline.js +0 -53
- package/ui/layout/Tooltip/demo/basic.d.ts +0 -8
- package/ui/layout/Tooltip/demo/basic.js +0 -56
- package/ui/list/LayoutNames/demo/basic.d.ts +0 -7
- package/ui/list/List/demo/basic.d.ts +0 -12
- package/ui/list/List/demo/basic.js +0 -61
- package/ui/list/List/demo/condition.d.ts +0 -8
- package/ui/list/List/demo/condition.js +0 -90
- package/ui/list/List/demo/empty.d.ts +0 -8
- package/ui/list/List/demo/empty.js +0 -36
- package/ui/list/List/demo/layout.d.ts +0 -8
- package/ui/list/List/demo/layout.js +0 -49
- package/ui/list/List/demo/load-more.d.ts +0 -8
- package/ui/list/List/demo/load-more.js +0 -45
- package/ui/list/List/demo/pagination.d.ts +0 -8
- package/ui/list/List/demo/pagination.js +0 -45
- package/ui/list/List/demo/search-form.d.ts +0 -30
- package/ui/list/List/demo/search-form.js +0 -107
- package/ui/list/List/demo/sort.d.ts +0 -17
- package/ui/list/List/demo/sort.js +0 -92
- package/ui/list/Pagination/demo/basic.d.ts +0 -8
- package/ui/list/Pagination/demo/basic.js +0 -45
- package/ui/list/Pagination/demo/load-more.d.ts +0 -8
- package/ui/list/Pagination/demo/load-more.js +0 -41
- package/ui/list/Pagination/demo/sizes.d.ts +0 -8
- package/ui/list/Pagination/demo/sizes.js +0 -48
- package/ui/nav/Breadcrumbs/demo/basic.d.ts +0 -8
- package/ui/nav/Breadcrumbs/demo/basic.js +0 -37
- package/ui/nav/Breadcrumbs/demo/items.d.ts +0 -8
- package/ui/nav/Breadcrumbs/demo/items.js +0 -42
- package/ui/nav/Breadcrumbs/demo/page-title.d.ts +0 -8
- package/ui/nav/Breadcrumbs/demo/page-title.js +0 -37
|
@@ -10,31 +10,85 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
37
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
38
|
+
if (ar || !(i in from)) {
|
|
39
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
40
|
+
ar[i] = from[i];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
44
|
+
};
|
|
13
45
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
46
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
47
|
};
|
|
16
48
|
exports.__esModule = true;
|
|
17
|
-
|
|
49
|
+
exports.IMG_CONTENT_TYPE = exports.ICON_CONTENT_TYPE = exports.RADIO_CONTENT_TYPE = exports.CHECKBOX_CONTENT_TYPE = exports.GROUP_CONTENT_TYPE = void 0;
|
|
50
|
+
var react_1 = __importStar(require("react"));
|
|
18
51
|
var react_use_1 = require("react-use");
|
|
19
52
|
var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
|
|
53
|
+
var includes_1 = __importDefault(require("lodash-es/includes"));
|
|
20
54
|
var hooks_1 = require("../../../hooks");
|
|
21
55
|
var fieldWrapper_1 = __importDefault(require("../../form/Field/fieldWrapper"));
|
|
56
|
+
exports.GROUP_CONTENT_TYPE = 'group';
|
|
57
|
+
exports.CHECKBOX_CONTENT_TYPE = 'checkbox';
|
|
58
|
+
exports.RADIO_CONTENT_TYPE = 'radio';
|
|
59
|
+
exports.ICON_CONTENT_TYPE = 'icon';
|
|
60
|
+
exports.IMG_CONTENT_TYPE = 'img';
|
|
22
61
|
function DropDownField(props) {
|
|
23
62
|
var components = (0, hooks_1.useComponents)();
|
|
24
63
|
// Query state
|
|
25
64
|
var _a = (0, react_1.useState)(''), query = _a[0], setQuery = _a[1];
|
|
65
|
+
var hasGroup = !!props.groupAttribute;
|
|
66
|
+
var _b = react_1["default"].useState([]), selectedAccordionItems = _b[0], setSelectedAccordionItems = _b[1];
|
|
67
|
+
var toggleCollapse = function (indexSelected) {
|
|
68
|
+
if (selectedAccordionItems.includes(indexSelected)) {
|
|
69
|
+
var newState = __spreadArray([], selectedAccordionItems, true);
|
|
70
|
+
var indexInArray = selectedAccordionItems.indexOf(indexSelected);
|
|
71
|
+
newState.splice(indexInArray, 1);
|
|
72
|
+
setSelectedAccordionItems(newState);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
var newState = __spreadArray([], selectedAccordionItems, true);
|
|
76
|
+
newState.push(indexSelected);
|
|
77
|
+
setSelectedAccordionItems(newState);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
26
80
|
var inputSelectedIds = (0, react_1.useMemo)(function () { return props.selectedIds || [].concat(props.input.value || []); }, [props.input.value, props.selectedIds]);
|
|
27
81
|
// Data provider
|
|
28
|
-
var
|
|
82
|
+
var _c = (0, hooks_1.useDataProvider)({
|
|
29
83
|
items: props.items,
|
|
30
84
|
dataProvider: props.dataProvider,
|
|
31
85
|
autoComplete: props.autoComplete,
|
|
32
86
|
autoFetch: props.autoFetch,
|
|
33
87
|
query: query,
|
|
34
88
|
initialSelectedIds: inputSelectedIds
|
|
35
|
-
}), items =
|
|
89
|
+
}), items = _c.items, isLoading = _c.isLoading, isAutoComplete = _c.isAutoComplete, sourceItems = _c.sourceItems;
|
|
36
90
|
// Data select
|
|
37
|
-
var
|
|
91
|
+
var _d = (0, hooks_1.useDataSelect)({
|
|
38
92
|
multiple: props.multiple,
|
|
39
93
|
selectFirst: props.selectFirst,
|
|
40
94
|
selectedIds: inputSelectedIds,
|
|
@@ -43,7 +97,7 @@ function DropDownField(props) {
|
|
|
43
97
|
items: items,
|
|
44
98
|
sourceItems: sourceItems,
|
|
45
99
|
inputValue: props.input.value
|
|
46
|
-
}), isOpened =
|
|
100
|
+
}), isOpened = _d.isOpened, setIsOpened = _d.setIsOpened, setIsFocused = _d.setIsFocused, hoveredId = _d.hoveredId, setHoveredId = _d.setHoveredId, selectedIds = _d.selectedIds, setSelectedIds = _d.setSelectedIds, selectedItems = _d.selectedItems;
|
|
47
101
|
var onOpen = (0, react_1.useCallback)(function () {
|
|
48
102
|
setQuery('');
|
|
49
103
|
setIsFocused(true);
|
|
@@ -98,13 +152,43 @@ function DropDownField(props) {
|
|
|
98
152
|
onReset();
|
|
99
153
|
}
|
|
100
154
|
}, [onReset, prevInputValue, props.input.value, selectedIds.length]);
|
|
155
|
+
var renderItemView = function (item, type, src) { return components.ui.renderView('form.DropDownFieldItemView', {
|
|
156
|
+
item: __assign(__assign({}, item), { contentSrc: src, contentType: type }),
|
|
157
|
+
selectedIds: selectedIds,
|
|
158
|
+
size: props.size,
|
|
159
|
+
groupAttribute: props.groupAttribute,
|
|
160
|
+
hoveredId: hoveredId,
|
|
161
|
+
primaryKey: props.primaryKey,
|
|
162
|
+
type: type,
|
|
163
|
+
itemsContent: props.itemsContent,
|
|
164
|
+
onItemHover: onItemHover,
|
|
165
|
+
onItemSelect: onItemSelect,
|
|
166
|
+
isShowMore: (0, includes_1["default"])(selectedAccordionItems || [], item.id),
|
|
167
|
+
childIndex: item.id,
|
|
168
|
+
toggleCollapse: toggleCollapse
|
|
169
|
+
}); };
|
|
170
|
+
var renderItem = function (item) {
|
|
171
|
+
if (hasGroup && Array.isArray(item[props.groupAttribute])) {
|
|
172
|
+
return renderItemView(item, 'group', item[props.groupAttribute]);
|
|
173
|
+
}
|
|
174
|
+
if (item.contentType) {
|
|
175
|
+
return renderItemView(item, item.contentType, item.contentSrc);
|
|
176
|
+
}
|
|
177
|
+
if (props.itemsContent) {
|
|
178
|
+
return renderItemView(item, props.itemsContent.type, props.itemsContent.src);
|
|
179
|
+
}
|
|
180
|
+
return renderItemView(item, 'default', null);
|
|
181
|
+
};
|
|
101
182
|
return components.ui.renderView(props.view || 'form.DropDownFieldView', __assign(__assign({}, props), { isAutoComplete: isAutoComplete, items: items, hoveredId: hoveredId, selectedIds: selectedIds, forwardedRef: forwardedRef, searchInputProps: searchInputProps, isOpened: isOpened, isLoading: isLoading, onOpen: onOpen, selectedItems: selectedItems,
|
|
102
183
|
// TODO onFocus
|
|
103
184
|
// TODO onBlur
|
|
104
|
-
|
|
185
|
+
onReset: onReset, onClose: onClose, renderItem: renderItem, onItemRemove: onItemRemove, hasGroup: hasGroup }));
|
|
105
186
|
}
|
|
106
187
|
DropDownField.defaultProps = {
|
|
107
188
|
primaryKey: 'id',
|
|
189
|
+
outline: false,
|
|
190
|
+
size: 'md',
|
|
191
|
+
color: 'basic',
|
|
108
192
|
disabled: false,
|
|
109
193
|
required: false,
|
|
110
194
|
className: '',
|
|
@@ -89,5 +89,5 @@ export interface FieldWrapperComponent<T> {
|
|
|
89
89
|
displayName: any;
|
|
90
90
|
defaultProps: any;
|
|
91
91
|
}
|
|
92
|
-
export default function fieldWrapper<T = any>(componentId:
|
|
92
|
+
export default function fieldWrapper<T = any>(componentId: string, Component: any, optionsConfig?: IFieldWrapperOptions): FieldWrapperComponent<T>;
|
|
93
93
|
export {};
|
|
@@ -52,8 +52,8 @@ export interface IFieldLayoutViewProps {
|
|
|
52
52
|
size: Size;
|
|
53
53
|
layout?: {
|
|
54
54
|
layout: FormLayoutName | boolean;
|
|
55
|
-
className?:
|
|
56
|
-
style?:
|
|
55
|
+
className?: CssClassName;
|
|
56
|
+
style?: CustomStyle;
|
|
57
57
|
label: boolean;
|
|
58
58
|
cols: number[];
|
|
59
59
|
[key: string]: any;
|
|
@@ -74,7 +74,7 @@ export interface IFieldListProps extends IFieldWrapperInputProps {
|
|
|
74
74
|
* Переопределение view React компонента для кастомизации отображения списка с группами полей
|
|
75
75
|
* @example MyCustomView
|
|
76
76
|
*/
|
|
77
|
-
view?:
|
|
77
|
+
view?: CustomView;
|
|
78
78
|
/**
|
|
79
79
|
* Пропсы для компонента отображения списка с группами полей - FieldListView
|
|
80
80
|
*/
|
|
@@ -105,9 +105,9 @@ export interface IFieldListViewProps {
|
|
|
105
105
|
showRemove?: boolean;
|
|
106
106
|
showAdd?: boolean;
|
|
107
107
|
children?: React.ReactNode;
|
|
108
|
-
className?:
|
|
108
|
+
className?: CssClassName;
|
|
109
109
|
tableClassName?: string;
|
|
110
|
-
style?:
|
|
110
|
+
style?: CustomStyle;
|
|
111
111
|
forwardedRef?: any;
|
|
112
112
|
disabled?: boolean;
|
|
113
113
|
size?: Size;
|
package/ui/form/Form/Form.d.ts
CHANGED
|
@@ -99,7 +99,7 @@ export interface IFormProps {
|
|
|
99
99
|
* Объект CSS стилей
|
|
100
100
|
* @example {width: '45%'}
|
|
101
101
|
*/
|
|
102
|
-
style?:
|
|
102
|
+
style?: CustomStyle;
|
|
103
103
|
/**
|
|
104
104
|
* Переопределение view React компонента для кастомизации отображения
|
|
105
105
|
* @example MyCustomView
|
|
@@ -140,11 +140,6 @@ export interface IFormProps {
|
|
|
140
140
|
* @example 'addComment'
|
|
141
141
|
*/
|
|
142
142
|
captchaActionName?: string;
|
|
143
|
-
/**
|
|
144
|
-
* Включает рамки и тень.
|
|
145
|
-
* @example true
|
|
146
|
-
*/
|
|
147
|
-
isBordered?: boolean;
|
|
148
143
|
/**
|
|
149
144
|
* Очищать ли данные формы с redux хранилища при размонтировании компонента. По-умолчанию - false
|
|
150
145
|
* @example false
|
|
@@ -160,7 +155,7 @@ export interface IFormViewProps {
|
|
|
160
155
|
className?: CssClassName;
|
|
161
156
|
isBordered?: boolean;
|
|
162
157
|
autoFocus?: boolean;
|
|
163
|
-
style?:
|
|
158
|
+
style?: CustomStyle;
|
|
164
159
|
layout?: {
|
|
165
160
|
layout: FormLayoutName | boolean;
|
|
166
161
|
className: CssClassName;
|
|
@@ -30,7 +30,7 @@ export interface IInputFieldProps extends IFieldWrapperInputProps {
|
|
|
30
30
|
* Переопределение view React компонента для кастомизации отображения
|
|
31
31
|
* @example MyCustomView
|
|
32
32
|
*/
|
|
33
|
-
view?:
|
|
33
|
+
view?: CustomView;
|
|
34
34
|
/**
|
|
35
35
|
*/
|
|
36
36
|
viewProps?: any;
|
|
@@ -43,7 +43,7 @@ export interface IInputFieldProps extends IFieldWrapperInputProps {
|
|
|
43
43
|
* Объект CSS стилей
|
|
44
44
|
* @example {width: '45%'}
|
|
45
45
|
*/
|
|
46
|
-
style?:
|
|
46
|
+
style?: CustomStyle;
|
|
47
47
|
/**
|
|
48
48
|
* Изображение или React-нода, которая будет отрендерена слева от поля.
|
|
49
49
|
* @example require('icon.png') | <component/>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
|
|
3
|
+
export interface IRadioFieldProps extends IFieldWrapperInputProps {
|
|
4
|
+
/**
|
|
5
|
+
* Свойства для элемента \<input /\>
|
|
6
|
+
* @example {onKeyDown: ...}
|
|
7
|
+
*/
|
|
8
|
+
inputProps?: any;
|
|
9
|
+
/**
|
|
10
|
+
* Дополнительный CSS-класс для элемента \<input /\>
|
|
11
|
+
*/
|
|
12
|
+
className?: CssClassName;
|
|
13
|
+
/**
|
|
14
|
+
* Переопределение view React компонента для кастомизации отображения
|
|
15
|
+
* @example MyCustomView
|
|
16
|
+
*/
|
|
17
|
+
view?: CustomView;
|
|
18
|
+
/**
|
|
19
|
+
* Флаг определяющий включен ли элемент
|
|
20
|
+
* @example {'true'}
|
|
21
|
+
*/
|
|
22
|
+
checked?: boolean;
|
|
23
|
+
[key: string]: any;
|
|
24
|
+
}
|
|
25
|
+
export interface IRadioFieldViewProps extends IRadioFieldProps, IFieldWrapperOutputProps {
|
|
26
|
+
inputProps: {
|
|
27
|
+
name: string;
|
|
28
|
+
type: string;
|
|
29
|
+
checked: boolean;
|
|
30
|
+
onChange: (value: string | React.ChangeEvent) => void;
|
|
31
|
+
disabled: boolean;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
declare const _default: import("../Field/fieldWrapper").FieldWrapperComponent<IRadioFieldProps>;
|
|
35
|
+
export default _default;
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
39
|
+
exports.__esModule = true;
|
|
40
|
+
var React = __importStar(require("react"));
|
|
41
|
+
var hooks_1 = require("../../../hooks");
|
|
42
|
+
var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
|
|
43
|
+
function RadioField(props) {
|
|
44
|
+
var components = (0, hooks_1.useComponents)();
|
|
45
|
+
var onChangeHandler = React.useCallback(function () {
|
|
46
|
+
props.input.onChange(!props.input.value);
|
|
47
|
+
if (props.onChange) {
|
|
48
|
+
props.onChange();
|
|
49
|
+
}
|
|
50
|
+
}, [props]);
|
|
51
|
+
var inputProps = React.useMemo(function () { return (__assign({ name: props.input.name, type: 'radio', checked: !!props.input.value, onChange: onChangeHandler, disabled: props.disabled }, props.inputProps)); }, [onChangeHandler, props.disabled, props.input.name, props.input.value, props.inputProps]);
|
|
52
|
+
return components.ui.renderView(props.view || 'form.RadioFieldView', __assign(__assign({}, props), { inputProps: inputProps }));
|
|
53
|
+
}
|
|
54
|
+
RadioField.defaultProps = {
|
|
55
|
+
disabled: false,
|
|
56
|
+
required: false,
|
|
57
|
+
className: '',
|
|
58
|
+
size: 'md',
|
|
59
|
+
inputProps: {}
|
|
60
|
+
};
|
|
61
|
+
exports["default"] = (0, fieldWrapper_1["default"])('RadioField', RadioField);
|
|
@@ -3,10 +3,5 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
* List with layout switcher
|
|
9
|
-
* @order 1
|
|
10
|
-
* @col 6
|
|
11
|
-
*/
|
|
12
|
-
exports["default"] = layout_1["default"];
|
|
6
|
+
var RadioField_1 = __importDefault(require("./RadioField"));
|
|
7
|
+
exports["default"] = RadioField_1["default"];
|
|
@@ -2,6 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../../form/Field/fieldWrapper';
|
|
3
3
|
import { IDataProviderConfig } from '../../../hooks/useDataProvider';
|
|
4
4
|
import { IDataSelectConfig } from '../../../hooks/useDataSelect';
|
|
5
|
+
import { IRadioFieldViewProps } from '../RadioField/RadioField';
|
|
5
6
|
/**
|
|
6
7
|
* RadioListField
|
|
7
8
|
* Список с радиокнопками. Используется в формах для выбора одного значения.
|
|
@@ -16,6 +17,10 @@ export interface IRadioListFieldProps extends IFieldWrapperInputProps, IDataProv
|
|
|
16
17
|
* Дополнительный CSS-класс для элемента отображения
|
|
17
18
|
*/
|
|
18
19
|
className?: CssClassName;
|
|
20
|
+
/**
|
|
21
|
+
* Ориентация списка
|
|
22
|
+
*/
|
|
23
|
+
orientation?: 'horizontal' | 'vertical';
|
|
19
24
|
/**
|
|
20
25
|
* Переопределение view React компонента для кастомизации отображения
|
|
21
26
|
* @example MyCustomView
|
|
@@ -39,6 +44,7 @@ export interface IRadioListFieldViewProps extends IFieldWrapperOutputProps {
|
|
|
39
44
|
selectedIds: (PrimaryKey | any)[];
|
|
40
45
|
className?: CssClassName;
|
|
41
46
|
onItemSelect: (id: PrimaryKey | any) => void;
|
|
47
|
+
renderRadio: (radioProps: IRadioFieldViewProps) => JSX.Element;
|
|
42
48
|
}
|
|
43
49
|
declare const _default: import("../../form/Field/fieldWrapper").FieldWrapperComponent<IRadioListFieldProps>;
|
|
44
50
|
export default _default;
|
|
@@ -10,10 +10,34 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
13
36
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
38
|
};
|
|
16
39
|
exports.__esModule = true;
|
|
40
|
+
var React = __importStar(require("react"));
|
|
17
41
|
var react_1 = require("react");
|
|
18
42
|
var react_use_1 = require("react-use");
|
|
19
43
|
var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
|
|
@@ -28,6 +52,7 @@ function RadioListField(props) {
|
|
|
28
52
|
}).items;
|
|
29
53
|
// Data select
|
|
30
54
|
var _a = (0, hooks_1.useDataSelect)({
|
|
55
|
+
multiple: props.multiple,
|
|
31
56
|
selectedIds: inputSelectedIds,
|
|
32
57
|
selectFirst: props.selectFirst,
|
|
33
58
|
primaryKey: props.primaryKey,
|
|
@@ -49,12 +74,17 @@ function RadioListField(props) {
|
|
|
49
74
|
}
|
|
50
75
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
51
76
|
}, [props.input.onChange, selectedIds]);
|
|
52
|
-
|
|
77
|
+
var RadioFieldView = components.ui.getView('form.RadioFieldView');
|
|
78
|
+
var renderRadio = function (radioProps) { return React.createElement(RadioFieldView, __assign({}, radioProps)); };
|
|
79
|
+
return components.ui.renderView(props.view || 'form.RadioListFieldView', __assign(__assign({}, props), { items: items, inputProps: inputProps, onItemSelect: onItemSelect, selectedIds: selectedIds, renderRadio: renderRadio }));
|
|
53
80
|
}
|
|
54
81
|
RadioListField.defaultProps = {
|
|
55
82
|
disabled: false,
|
|
56
83
|
required: false,
|
|
57
84
|
className: '',
|
|
58
|
-
|
|
85
|
+
multiple: false,
|
|
86
|
+
errors: null,
|
|
87
|
+
size: 'md',
|
|
88
|
+
orientation: 'vertical'
|
|
59
89
|
};
|
|
60
90
|
exports["default"] = (0, fieldWrapper_1["default"])('RadioListField', RadioListField);
|
package/ui/form/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ import InputField from './InputField';
|
|
|
20
20
|
import NavField from './NavField';
|
|
21
21
|
import NumberField from './NumberField';
|
|
22
22
|
import PasswordField from './PasswordField';
|
|
23
|
+
import RadioField from './RadioField';
|
|
23
24
|
import RadioListField from './RadioListField';
|
|
24
25
|
import ReCaptchaField from './ReCaptchaField';
|
|
25
26
|
import SliderField from './SliderField';
|
|
@@ -27,7 +28,7 @@ import SwitcherField from './SwitcherField';
|
|
|
27
28
|
import TextField from './TextField';
|
|
28
29
|
import TimeField from './TimeField';
|
|
29
30
|
import RateField from './RateField';
|
|
30
|
-
export { AutoCompleteField, BlankField, Button, CheckboxField, CheckboxListField, DateField, DateRangeField, DateTimeField, DateTimeRangeField, DropDownField, Field, FieldLayout, FieldList, FieldSet, FileField, Form, HtmlField, InputField, NavField, NumberField, PasswordField, RadioListField, ReCaptchaField, SliderField, SwitcherField, TextField, TimeField, RateField, };
|
|
31
|
+
export { AutoCompleteField, BlankField, Button, CheckboxField, CheckboxListField, DateField, DateRangeField, DateTimeField, DateTimeRangeField, DropDownField, Field, FieldLayout, FieldList, FieldSet, FileField, Form, HtmlField, InputField, NavField, NumberField, PasswordField, RadioField, RadioListField, ReCaptchaField, SliderField, SwitcherField, TextField, TimeField, RateField, };
|
|
31
32
|
declare const _default: {
|
|
32
33
|
AutoCompleteField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./AutoCompleteField/AutoCompleteField").IAutoCompleteFieldProps>;
|
|
33
34
|
BlankField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./BlankField/BlankField").IBlankFieldProps>;
|
|
@@ -50,6 +51,7 @@ declare const _default: {
|
|
|
50
51
|
NavField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./NavField/NavField").INavFieldProps>;
|
|
51
52
|
NumberField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./NumberField/NumberField").INumberFieldProps>;
|
|
52
53
|
PasswordField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./PasswordField/PasswordField").IPasswordFieldProps>;
|
|
54
|
+
RadioField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./RadioField/RadioField").IRadioFieldProps>;
|
|
53
55
|
RadioListField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./RadioListField/RadioListField").IRadioListFieldProps>;
|
|
54
56
|
ReCaptchaField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./ReCaptchaField/ReCaptchaField").IReCaptchaFieldProps>;
|
|
55
57
|
SliderField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./SliderField/SliderField").ISliderFieldProps>;
|
package/ui/form/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.RateField = exports.TimeField = exports.TextField = exports.SwitcherField = exports.SliderField = exports.ReCaptchaField = exports.RadioListField = exports.PasswordField = exports.NumberField = exports.NavField = exports.InputField = exports.HtmlField = exports.Form = exports.FileField = exports.FieldSet = exports.FieldList = exports.FieldLayout = exports.Field = exports.DropDownField = exports.DateTimeRangeField = exports.DateTimeField = exports.DateRangeField = exports.DateField = exports.CheckboxListField = exports.CheckboxField = exports.Button = exports.BlankField = exports.AutoCompleteField = void 0;
|
|
6
|
+
exports.RateField = exports.TimeField = exports.TextField = exports.SwitcherField = exports.SliderField = exports.ReCaptchaField = exports.RadioListField = exports.RadioField = exports.PasswordField = exports.NumberField = exports.NavField = exports.InputField = exports.HtmlField = exports.Form = exports.FileField = exports.FieldSet = exports.FieldList = exports.FieldLayout = exports.Field = exports.DropDownField = exports.DateTimeRangeField = exports.DateTimeField = exports.DateRangeField = exports.DateField = exports.CheckboxListField = exports.CheckboxField = exports.Button = exports.BlankField = exports.AutoCompleteField = void 0;
|
|
7
7
|
var AutoCompleteField_1 = __importDefault(require("./AutoCompleteField"));
|
|
8
8
|
exports.AutoCompleteField = AutoCompleteField_1["default"];
|
|
9
9
|
var BlankField_1 = __importDefault(require("./BlankField"));
|
|
@@ -46,6 +46,8 @@ var NumberField_1 = __importDefault(require("./NumberField"));
|
|
|
46
46
|
exports.NumberField = NumberField_1["default"];
|
|
47
47
|
var PasswordField_1 = __importDefault(require("./PasswordField"));
|
|
48
48
|
exports.PasswordField = PasswordField_1["default"];
|
|
49
|
+
var RadioField_1 = __importDefault(require("./RadioField"));
|
|
50
|
+
exports.RadioField = RadioField_1["default"];
|
|
49
51
|
var RadioListField_1 = __importDefault(require("./RadioListField"));
|
|
50
52
|
exports.RadioListField = RadioListField_1["default"];
|
|
51
53
|
var ReCaptchaField_1 = __importDefault(require("./ReCaptchaField"));
|
|
@@ -82,6 +84,7 @@ exports["default"] = {
|
|
|
82
84
|
NavField: NavField_1["default"],
|
|
83
85
|
NumberField: NumberField_1["default"],
|
|
84
86
|
PasswordField: PasswordField_1["default"],
|
|
87
|
+
RadioField: RadioField_1["default"],
|
|
85
88
|
RadioListField: RadioListField_1["default"],
|
|
86
89
|
ReCaptchaField: ReCaptchaField_1["default"],
|
|
87
90
|
SliderField: SliderField_1["default"],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
export interface ISkeletonViewProps {
|
|
3
|
-
className?:
|
|
3
|
+
className?: CssClassName;
|
|
4
4
|
children?: React.ReactNode;
|
|
5
5
|
animation?: 'pulse' | 'wave';
|
|
6
6
|
type?: 'text' | 'rect' | 'circle';
|
|
@@ -8,7 +8,7 @@ export interface ISkeletonViewProps {
|
|
|
8
8
|
width?: string | number;
|
|
9
9
|
}
|
|
10
10
|
export interface ISkeletonProps {
|
|
11
|
-
className?:
|
|
11
|
+
className?: CssClassName;
|
|
12
12
|
children?: React.ReactNode;
|
|
13
13
|
animation?: 'pulse' | 'wave';
|
|
14
14
|
type?: 'text' | 'rect' | 'circle';
|
|
@@ -80,7 +80,7 @@ function calculate(gap, position, parentRef, tooltipSize, arrowSize) {
|
|
|
80
80
|
case 'topRight':
|
|
81
81
|
case 'bottomRight':
|
|
82
82
|
// Ширина tooltip больше родителя - стрелка на середину родителя
|
|
83
|
-
style.
|
|
83
|
+
style.left = parentDimensions.right - tooltipSize.width;
|
|
84
84
|
if (parentDimensions.width < tooltipSize.width) {
|
|
85
85
|
arrowPosition = {
|
|
86
86
|
left: null,
|
|
@@ -29,7 +29,7 @@ export interface IControlsColumnProps {
|
|
|
29
29
|
* Переопределение view React компонента для кастомизации отображения колонки
|
|
30
30
|
* @example MyCustomView
|
|
31
31
|
*/
|
|
32
|
-
view?:
|
|
32
|
+
view?: CustomView;
|
|
33
33
|
[key: string]: any;
|
|
34
34
|
}
|
|
35
35
|
export interface IControlsColumnViewProps {
|
package/ui/list/Grid/Grid.d.ts
CHANGED
|
@@ -68,7 +68,7 @@ export interface IGridProps extends IListConfig {
|
|
|
68
68
|
* Переопределение view React компонента для кастомизации отображения
|
|
69
69
|
* @example MyCustomView
|
|
70
70
|
*/
|
|
71
|
-
view?:
|
|
71
|
+
view?: CustomView;
|
|
72
72
|
/**
|
|
73
73
|
* Коллекция с наименованиями и свойствами колонок в таблице
|
|
74
74
|
* @example [{label: 'Name', attribute: 'name'}, {label: 'Work', attribute: 'work'}]
|
|
@@ -28,14 +28,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
exports.__esModule = true;
|
|
29
29
|
var React = __importStar(require("react"));
|
|
30
30
|
var Grid_1 = __importDefault(require("../Grid"));
|
|
31
|
-
|
|
31
|
+
// import {items} from '../../List/demo/sort';
|
|
32
32
|
/**
|
|
33
33
|
* Grid with sorting
|
|
34
34
|
* @order 7
|
|
35
35
|
* @col 8
|
|
36
36
|
*/
|
|
37
37
|
exports["default"] = (function () { return (React.createElement(React.Fragment, null,
|
|
38
|
-
React.createElement(Grid_1["default"], { listId: 'GridSortDemo',
|
|
38
|
+
React.createElement(Grid_1["default"], { listId: 'GridSortDemo',
|
|
39
|
+
// items={items}
|
|
40
|
+
columns: [
|
|
39
41
|
{
|
|
40
42
|
attribute: 'title',
|
|
41
43
|
label: 'Title'
|