@steroidsjs/core 3.0.0-beta.15 → 3.0.0-beta.17
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 +2 -2
- 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 +2 -2
- package/ui/content/Card/Card.d.ts +2 -2
- 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 +30 -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 +28 -25
- package/ui/form/DropDownField/DropDownField.js +87 -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 -2
- 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 +31 -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/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/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/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
|
@@ -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
|
|
@@ -155,7 +155,7 @@ export interface IFormViewProps {
|
|
|
155
155
|
className?: CssClassName;
|
|
156
156
|
isBordered?: boolean;
|
|
157
157
|
autoFocus?: boolean;
|
|
158
|
-
style?:
|
|
158
|
+
style?: CustomStyle;
|
|
159
159
|
layout?: {
|
|
160
160
|
layout: FormLayoutName | boolean;
|
|
161
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,13 +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: '',
|
|
85
|
+
multiple: false,
|
|
58
86
|
errors: null,
|
|
59
|
-
size: 'md'
|
|
87
|
+
size: 'md',
|
|
88
|
+
orientation: 'vertical'
|
|
60
89
|
};
|
|
61
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';
|
|
@@ -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'
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { ListControlPosition } from '../../../hooks/useList';
|
|
3
2
|
import { IButtonProps } from '../../form/Button/Button';
|
|
4
3
|
/**
|
|
5
4
|
* Pagination
|
|
@@ -40,11 +39,6 @@ export interface IPaginationProps {
|
|
|
40
39
|
* Дополнительный CSS-класс для элемента отображения
|
|
41
40
|
*/
|
|
42
41
|
className?: CssClassName;
|
|
43
|
-
/**
|
|
44
|
-
* Расположение пагинации
|
|
45
|
-
* @example 'both'
|
|
46
|
-
*/
|
|
47
|
-
position?: ListControlPosition;
|
|
48
42
|
buttonProps?: IButtonProps;
|
|
49
43
|
/**
|
|
50
44
|
* Переопределение view React компонента для кастомизации отображения
|
|
@@ -69,6 +63,16 @@ export interface IPaginationProps {
|
|
|
69
63
|
* Список, для которого используется пагинация
|
|
70
64
|
*/
|
|
71
65
|
list?: any;
|
|
66
|
+
/**
|
|
67
|
+
* Нужно ли отображать кнопки с шагом в одну страницу
|
|
68
|
+
* @example {'true'}
|
|
69
|
+
*/
|
|
70
|
+
showSteps?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Нужно ли отображать кнопки с шагом до первой / последней страницы
|
|
73
|
+
* @example {'true'}
|
|
74
|
+
*/
|
|
75
|
+
showEdgeSteps?: boolean;
|
|
72
76
|
[key: string]: any;
|
|
73
77
|
}
|
|
74
78
|
export interface IPaginationViewProps extends IPaginationProps {
|
|
@@ -80,6 +84,11 @@ export interface IPaginationViewProps extends IPaginationProps {
|
|
|
80
84
|
}[];
|
|
81
85
|
onSelect: (page: number) => void;
|
|
82
86
|
onSelectNext: () => void;
|
|
87
|
+
onSelectPrev: () => void;
|
|
88
|
+
onSelectLast: () => void;
|
|
89
|
+
onSelectFirst: () => void;
|
|
90
|
+
isFirstPage: boolean;
|
|
91
|
+
isLastPage: boolean;
|
|
83
92
|
}
|
|
84
93
|
export declare const generatePages: (page: any, totalPages: any, aroundCount?: number) => any[];
|
|
85
94
|
declare function Pagination(props: IPaginationProps): JSX.Element;
|
|
@@ -89,6 +98,7 @@ declare namespace Pagination {
|
|
|
89
98
|
attribute: string;
|
|
90
99
|
aroundCount: number;
|
|
91
100
|
defaultValue: number;
|
|
101
|
+
size: string;
|
|
92
102
|
loadMore: boolean;
|
|
93
103
|
position: string;
|
|
94
104
|
sizeAttribute: string;
|
|
@@ -44,6 +44,7 @@ var React = __importStar(require("react"));
|
|
|
44
44
|
var hooks_1 = require("../../../hooks");
|
|
45
45
|
var useForm_1 = __importDefault(require("../../../hooks/useForm"));
|
|
46
46
|
var form_1 = require("../../../actions/form");
|
|
47
|
+
var FIRST_PAGE = 1;
|
|
47
48
|
var generatePages = function (page, totalPages, aroundCount) {
|
|
48
49
|
if (aroundCount === void 0) { aroundCount = 3; }
|
|
49
50
|
if (!page || !totalPages) {
|
|
@@ -78,6 +79,8 @@ function Pagination(props) {
|
|
|
78
79
|
});
|
|
79
80
|
}) || initialValues, page = _e.page, pageSize = _e.pageSize;
|
|
80
81
|
var totalPages = Math.ceil((((_c = props.list) === null || _c === void 0 ? void 0 : _c.total) || 0) / (pageSize || 1));
|
|
82
|
+
var isFirstPage = React.useMemo(function () { return page === FIRST_PAGE; }, [page]);
|
|
83
|
+
var isLastPage = React.useMemo(function () { return page === totalPages; }, [page, totalPages]);
|
|
81
84
|
var pages = (0, react_1.useMemo)(function () { return (0, exports.generatePages)(page, totalPages, props.aroundCount)
|
|
82
85
|
.map(function (pageItem, index, pagesArray) {
|
|
83
86
|
// Номер страницы для '...' кнопки (выбирает страницу между двумя соседними пронумерованными)
|
|
@@ -99,26 +102,31 @@ function Pagination(props) {
|
|
|
99
102
|
var onSelectNext = (0, react_1.useCallback)(function () {
|
|
100
103
|
onSelect(page + 1);
|
|
101
104
|
}, [onSelect, page]);
|
|
105
|
+
var onSelectPrev = (0, react_1.useCallback)(function () {
|
|
106
|
+
onSelect(page - 1);
|
|
107
|
+
}, [onSelect, page]);
|
|
108
|
+
var onSelectLast = (0, react_1.useCallback)(function () {
|
|
109
|
+
onSelect(totalPages);
|
|
110
|
+
}, [onSelect, totalPages]);
|
|
111
|
+
var onSelectFirst = (0, react_1.useCallback)(function () {
|
|
112
|
+
onSelect(FIRST_PAGE);
|
|
113
|
+
}, [onSelect]);
|
|
102
114
|
if (!props.list || !page || !pageSize || props.list.total <= pageSize) {
|
|
103
115
|
return null;
|
|
104
116
|
}
|
|
105
117
|
// Do not show in last page in 'loadMore' mode
|
|
106
|
-
if (props.loadMore &&
|
|
118
|
+
if (props.loadMore && isLastPage) {
|
|
107
119
|
return null;
|
|
108
120
|
}
|
|
109
121
|
var defaultView = (props.loadMore ? 'list.PaginationMoreView' : 'list.PaginationButtonView');
|
|
110
|
-
return components.ui.renderView(props.view || defaultView, {
|
|
111
|
-
totalPages: totalPages,
|
|
112
|
-
pages: pages,
|
|
113
|
-
onSelect: onSelect,
|
|
114
|
-
onSelectNext: onSelectNext
|
|
115
|
-
});
|
|
122
|
+
return components.ui.renderView(props.view || defaultView, __assign(__assign({}, props), { totalPages: totalPages, pages: pages, onSelect: onSelect, onSelectNext: onSelectNext, onSelectPrev: onSelectPrev, onSelectLast: onSelectLast, onSelectFirst: onSelectFirst, isFirstPage: isFirstPage, isLastPage: isLastPage }));
|
|
116
123
|
}
|
|
117
124
|
Pagination.defaultProps = {
|
|
118
125
|
enable: true,
|
|
119
126
|
attribute: 'page',
|
|
120
127
|
aroundCount: 3,
|
|
121
128
|
defaultValue: 1,
|
|
129
|
+
size: 'md',
|
|
122
130
|
loadMore: false,
|
|
123
131
|
position: 'bottom',
|
|
124
132
|
sizeAttribute: 'pageSize'
|
|
@@ -28,7 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
exports.__esModule = true;
|
|
29
29
|
var React = __importStar(require("react"));
|
|
30
30
|
var PaginationSize_1 = __importDefault(require("../PaginationSize"));
|
|
31
|
-
|
|
31
|
+
// import {demoItems} from '../../../../ui/list/List/demo/basic';
|
|
32
32
|
/**
|
|
33
33
|
* Basic
|
|
34
34
|
* @order 1
|
|
@@ -36,6 +36,5 @@ var basic_1 = require("../../../../ui/list/List/demo/basic");
|
|
|
36
36
|
*/
|
|
37
37
|
exports["default"] = (function () { return (React.createElement(React.Fragment, null,
|
|
38
38
|
React.createElement(PaginationSize_1["default"], { list: {
|
|
39
|
-
pageSize: 3
|
|
40
|
-
items: basic_1.demoItems
|
|
39
|
+
pageSize: 3
|
|
41
40
|
}, enable: true, attribute: 'pageSize', sizes: [3, 6, 9], defaultValue: 3, position: 'top' }))); });
|
|
@@ -28,7 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
exports.__esModule = true;
|
|
29
29
|
var React = __importStar(require("react"));
|
|
30
30
|
var PaginationSize_1 = __importDefault(require("../PaginationSize"));
|
|
31
|
-
|
|
31
|
+
// import {demoItems} from '../../../../ui/list/List/demo/basic';
|
|
32
32
|
var sizes = {
|
|
33
33
|
sm: 'Small',
|
|
34
34
|
md: 'Middle',
|
|
@@ -44,6 +44,5 @@ exports["default"] = (function () { return (React.createElement(React.Fragment,
|
|
|
44
44
|
.map(function (size) { return (React.createElement("div", { className: 'col', key: size },
|
|
45
45
|
React.createElement("h6", null, sizes[size]),
|
|
46
46
|
React.createElement(PaginationSize_1["default"], { list: {
|
|
47
|
-
pageSize: 3
|
|
48
|
-
items: basic_1.demoItems
|
|
47
|
+
pageSize: 3
|
|
49
48
|
}, enable: true, attribute: 'pageSize', sizes: [3, 6, 9], defaultValue: 3, size: size, position: 'top' }))); })))); });
|
|
@@ -28,12 +28,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
exports.__esModule = true;
|
|
29
29
|
var React = __importStar(require("react"));
|
|
30
30
|
var List_1 = __importDefault(require("../../List"));
|
|
31
|
-
|
|
31
|
+
// import {searchForm, items} from '../../List/demo/search-form';
|
|
32
32
|
/**
|
|
33
33
|
* List with search form
|
|
34
34
|
* @order 1
|
|
35
35
|
* @col 6
|
|
36
36
|
*/
|
|
37
|
-
exports["default"] = (function () { return (React.createElement(List_1["default"], { listId: 'ListDemoSearch',
|
|
37
|
+
exports["default"] = (function () { return (React.createElement(List_1["default"], { listId: 'ListDemoSearch',
|
|
38
|
+
// items={items}
|
|
39
|
+
// searchForm={searchForm}
|
|
40
|
+
className: 'list-group', itemView: function (props) { return (React.createElement("div", { className: 'list-group-item' },
|
|
38
41
|
React.createElement("div", null, props.item.name),
|
|
39
42
|
React.createElement("div", null, "Category: ".concat(props.item.category)))); } })); });
|
package/ui/list/Steps/Steps.d.ts
CHANGED
|
@@ -3,16 +3,16 @@ interface IStepsProps {
|
|
|
3
3
|
stepItems: IStepItem[];
|
|
4
4
|
currentStep: number;
|
|
5
5
|
isChangeable?: boolean;
|
|
6
|
-
className?:
|
|
6
|
+
className?: CssClassName;
|
|
7
7
|
onChange?: (index: number) => void;
|
|
8
8
|
}
|
|
9
9
|
export interface IStepsViewProps {
|
|
10
|
-
className?:
|
|
10
|
+
className?: CssClassName;
|
|
11
11
|
children?: React.ReactNode;
|
|
12
12
|
}
|
|
13
13
|
export interface IStepItemViewProps {
|
|
14
14
|
stepItem: IStepItem;
|
|
15
|
-
className?:
|
|
15
|
+
className?: CssClassName;
|
|
16
16
|
index: number;
|
|
17
17
|
status: string;
|
|
18
18
|
disabled: boolean;
|
|
@@ -27,6 +27,15 @@ export interface IBreadcrumbsProps {
|
|
|
27
27
|
* @example 'Каталог'
|
|
28
28
|
*/
|
|
29
29
|
pageTitle?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Показать иконку заменяющую первый роут
|
|
32
|
+
* @example true
|
|
33
|
+
*/
|
|
34
|
+
showIcon?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Кастомная иконка, заменяющая первый роут
|
|
37
|
+
*/
|
|
38
|
+
customIcon?: string | React.ReactElement;
|
|
30
39
|
/**
|
|
31
40
|
* Переопределение view React компонента для кастомизации отображения
|
|
32
41
|
* @example MyCustomView
|