@steroidsjs/core 2.1.0-beta.24 → 2.1.0-beta.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actions/modal.d.ts +1 -1
- package/components/SocialComponent.d.ts +1 -1
- package/components/SocialComponent.js +12 -10
- package/components/social/FacebookProvider.d.ts +1 -1
- package/components/social/FacebookProvider.js +5 -6
- package/components/social/GitlabProvider.d.ts +8 -0
- package/components/social/GitlabProvider.js +98 -0
- package/components/social/GoogleProvider.d.ts +1 -1
- package/components/social/GoogleProvider.js +2 -2
- package/components/social/SteamProvider.d.ts +1 -1
- package/components/social/SteamProvider.js +8 -9
- package/components/social/VkProvider.d.ts +1 -1
- package/components/social/VkProvider.js +8 -9
- package/hooks/useComponents.js +1 -2
- package/hooks/useDataSelect.js +6 -3
- package/hooks/useFetch.js +3 -0
- package/hooks/useLayout.js +21 -12
- package/hooks/useList.d.ts +11 -1
- package/hooks/useList.js +8 -3
- package/package.json +1 -1
- package/reducers/form.d.ts +1 -0
- package/reducers/form.js +3 -1
- package/reducers/router.js +7 -3
- package/ui/content/Detail/Detail.d.ts +1 -1
- package/ui/crud/Crud/Crud.js +4 -2
- package/ui/crud/Crud/CrudContent.d.ts +5 -1
- package/ui/crud/Crud/CrudContent.js +5 -5
- package/ui/crud/index.d.ts +1 -0
- package/ui/form/DropDownField/DropDownField.js +8 -5
- package/ui/form/Form/Form.d.ts +6 -0
- package/ui/form/Form/Form.js +1 -1
- package/ui/form/Form/demo/basic.js +1 -1
- package/ui/form/Form/demo/border.d.ts +8 -0
- package/ui/form/Form/demo/border.js +58 -0
- package/ui/form/Form/demo/horizontal.d.ts +8 -0
- package/ui/form/Form/demo/horizontal.js +51 -0
- package/ui/form/Form/demo/inline.d.ts +8 -0
- package/ui/form/Form/demo/inline.js +49 -0
- package/ui/form/SliderField/SliderField.d.ts +43 -9
- package/ui/form/SliderField/SliderField.js +18 -9
- package/ui/form/SliderField/demo/basic.js +2 -2
- package/ui/form/SliderField/demo/disabled.js +1 -1
- package/ui/form/SliderField/demo/errors.d.ts +2 -2
- package/ui/form/SliderField/demo/errors.js +3 -3
- package/ui/form/SliderField/demo/{size.d.ts → marks.d.ts} +0 -0
- package/ui/form/SliderField/demo/{size.js → marks.js} +19 -10
- package/ui/form/SliderField/demo/min-max.d.ts +1 -1
- package/ui/form/SliderField/demo/min-max.js +2 -2
- package/ui/form/SliderField/demo/onAfterChange.d.ts +8 -0
- package/ui/form/SliderField/demo/onAfterChange.js +39 -0
- package/ui/form/SliderField/demo/onChange.d.ts +8 -0
- package/ui/form/SliderField/demo/onChange.js +39 -0
- package/ui/form/SliderField/demo/range.d.ts +8 -0
- package/ui/form/SliderField/demo/{required.js → range.js} +4 -4
- package/ui/list/Grid/Grid.js +3 -1
- package/ui/list/List/List.js +4 -6
- package/ui/list/PaginationSize/PaginationSize.d.ts +2 -2
- package/ui/nav/Router/Router.d.ts +5 -0
- package/ui/nav/Router/Router.js +0 -2
- package/components/social/index.d.ts +0 -11
- package/components/social/index.js +0 -15
- package/ui/form/SliderField/demo/required.d.ts +0 -8
|
@@ -68,23 +68,23 @@ function CrudContent(props) {
|
|
|
68
68
|
ItemComponent = Grid_1["default"];
|
|
69
69
|
}
|
|
70
70
|
return (React.createElement(ItemComponent // Grid
|
|
71
|
-
, { key: props.crudId, listId: props.crudId, action: props.restApi ? props.restApi.index : props.restUrl, scope: ['model', 'permission'], primaryKey: props.primaryKey, model: props.model,
|
|
71
|
+
, __assign({ key: props.crudId, listId: props.crudId, action: props.restApi ? props.restApi.index : props.restUrl, scope: ['model', 'permission'], primaryKey: props.primaryKey, model: props.model,
|
|
72
72
|
//searchModel={props.searchModel}
|
|
73
73
|
controls: controlsGetter, columns: [props.primaryKey], pagination: {
|
|
74
74
|
loadMore: false
|
|
75
|
-
} }));
|
|
75
|
+
} }, props.grid)));
|
|
76
76
|
case utils_1.CRUD_ACTION_CREATE:
|
|
77
77
|
case utils_1.CRUD_ACTION_UPDATE:
|
|
78
78
|
if (!ItemComponent) {
|
|
79
79
|
ItemComponent = Form_1["default"];
|
|
80
80
|
}
|
|
81
|
-
if (props.action === utils_1.CRUD_ACTION_UPDATE && !props.record) {
|
|
81
|
+
if (props.action === utils_1.CRUD_ACTION_UPDATE && (props.restUrl || props.restApi) && !props.record) {
|
|
82
82
|
return null;
|
|
83
83
|
}
|
|
84
84
|
return (React.createElement(ItemComponent // Form
|
|
85
|
-
, { key: formId, formId: formId, action: props.restApi
|
|
85
|
+
, __assign({ key: formId, formId: formId, action: props.restApi
|
|
86
86
|
? (props.recordId ? props.restApi.update : props.restApi.create)
|
|
87
|
-
: [props.restUrl, props.recordId].filter(Boolean).join('/'), model: props.model, autoFocus: true, submitLabel: props.recordId ? __('Сохранить') : __('Добавить'), layout: 'horizontal', onComplete: onFormComplete, initialValues: formInitialValues }));
|
|
87
|
+
: [props.restUrl, props.recordId].filter(Boolean).join('/'), model: props.model, autoFocus: true, submitLabel: props.recordId ? __('Сохранить') : __('Добавить'), layout: 'horizontal', onComplete: onFormComplete }, props.form, { initialValues: formInitialValues })));
|
|
88
88
|
default:
|
|
89
89
|
if (ItemComponent) {
|
|
90
90
|
return (React.createElement(ItemComponent, __assign({ key: props.crudId + '_' + props.action }, props, crudItem.componentProps)));
|
package/ui/crud/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export declare const generateCrud: (routeId: string, props: ICrudGeneratorProps)
|
|
|
26
26
|
isNavVisible?: boolean;
|
|
27
27
|
models: string | string[];
|
|
28
28
|
enums: string | string[];
|
|
29
|
+
role?: string;
|
|
29
30
|
roles?: string[];
|
|
30
31
|
fetch?: import("../../hoc/fetch").IFetchHocConfigFunc;
|
|
31
32
|
items?: IRouteItem[] | {
|
|
@@ -67,6 +67,7 @@ function DropDownField(props) {
|
|
|
67
67
|
// Outside click -> close
|
|
68
68
|
var forwardedRef = react_1.useRef(null);
|
|
69
69
|
if (process.env.PLATFORM !== 'mobile') {
|
|
70
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
70
71
|
react_use_1.useClickAway(forwardedRef, onClose);
|
|
71
72
|
}
|
|
72
73
|
// Search input props
|
|
@@ -79,19 +80,21 @@ function DropDownField(props) {
|
|
|
79
80
|
// Sync with form
|
|
80
81
|
var prevSelectedIds = react_use_1.usePrevious(selectedIds);
|
|
81
82
|
react_1.useEffect(function () {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
var newValues = props.multiple ? selectedIds : ((_a = selectedIds[0]) !== null && _a !== void 0 ? _a : null);
|
|
83
|
+
if (!isEqual_1["default"](prevSelectedIds || [], selectedIds)) {
|
|
84
|
+
var newValues = props.multiple ? selectedIds : (selectedIds[0] || null);
|
|
85
85
|
props.input.onChange.call(null, newValues);
|
|
86
86
|
if (props.onChange) {
|
|
87
|
-
props.onChange(newValues);
|
|
87
|
+
props.onChange.call(null, newValues);
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
+
}, [prevSelectedIds, props.input.onChange, props.multiple, props.onChange, selectedIds]);
|
|
91
|
+
// form reset
|
|
92
|
+
react_1.useEffect(function () {
|
|
90
93
|
//if form reset
|
|
91
94
|
if (props.input.value === undefined && selectedIds.length > 0) {
|
|
92
95
|
onReset();
|
|
93
96
|
}
|
|
94
|
-
}, [
|
|
97
|
+
}, [onReset, props.input.value, selectedIds.length]);
|
|
95
98
|
return components.ui.renderView(props.view || 'form.DropDownFieldView', __assign(__assign({}, props), { isAutoComplete: isAutoComplete,
|
|
96
99
|
items: items,
|
|
97
100
|
hoveredId: hoveredId,
|
package/ui/form/Form/Form.d.ts
CHANGED
|
@@ -137,6 +137,11 @@ export interface IFormProps {
|
|
|
137
137
|
* @example 'addComment'
|
|
138
138
|
*/
|
|
139
139
|
captchaActionName?: string;
|
|
140
|
+
/**
|
|
141
|
+
* Включает рамки и тень.
|
|
142
|
+
* @example true
|
|
143
|
+
*/
|
|
144
|
+
isBordered?: boolean;
|
|
140
145
|
[key: string]: any;
|
|
141
146
|
}
|
|
142
147
|
export interface IFormViewProps {
|
|
@@ -144,6 +149,7 @@ export interface IFormViewProps {
|
|
|
144
149
|
fields?: (string | IFieldProps)[];
|
|
145
150
|
onSubmit: any;
|
|
146
151
|
className?: CssClassName;
|
|
152
|
+
isBordered?: boolean;
|
|
147
153
|
style?: any;
|
|
148
154
|
layout?: {
|
|
149
155
|
layout: FormLayoutName | boolean;
|
package/ui/form/Form/Form.js
CHANGED
|
@@ -306,7 +306,7 @@ function Form(props) {
|
|
|
306
306
|
? components.ui.renderView(props.view || 'form.FormView', __assign(__assign({}, props.viewProps), { isInvalid: isInvalid,
|
|
307
307
|
isSubmitting: isSubmitting,
|
|
308
308
|
layout: layout,
|
|
309
|
-
onSubmit: onSubmit,
|
|
309
|
+
onSubmit: onSubmit, submitLabel: props.submitLabel, fields: props.fields, children: props.children, isBordered: props.isBordered, className: props.className }))
|
|
310
310
|
: props.children));
|
|
311
311
|
}
|
|
312
312
|
Form.defaultProps = {
|
|
@@ -34,7 +34,7 @@ var InputField_1 = __importDefault(require("../../InputField"));
|
|
|
34
34
|
* @col 12
|
|
35
35
|
*/
|
|
36
36
|
exports["default"] = (function () { return (React.createElement(React.Fragment, null,
|
|
37
|
-
React.createElement(Form_1["default"], { formId: 'TestForm', useRedux: true, syncWithAddressBar: true, autoFocus: true, fields: [
|
|
37
|
+
React.createElement(Form_1["default"], { formId: 'TestForm', useRedux: true, syncWithAddressBar: true, autoFocus: true, layout: 'default', size: 'large', fields: [
|
|
38
38
|
{
|
|
39
39
|
component: InputField_1["default"],
|
|
40
40
|
attribute: 'email',
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
exports.__esModule = true;
|
|
25
|
+
var React = __importStar(require("react"));
|
|
26
|
+
var Form_1 = __importDefault(require("../Form"));
|
|
27
|
+
var DateField_1 = __importDefault(require("../../DateField"));
|
|
28
|
+
var DateTimeField_1 = __importDefault(require("../../DateTimeField"));
|
|
29
|
+
var TextField_1 = __importDefault(require("../../TextField"));
|
|
30
|
+
var InputField_1 = __importDefault(require("../../InputField"));
|
|
31
|
+
/**
|
|
32
|
+
* Обычный пример включения рамок у компонента Form.
|
|
33
|
+
* @order 4
|
|
34
|
+
* @col 12
|
|
35
|
+
*/
|
|
36
|
+
exports["default"] = (function () { return (React.createElement(React.Fragment, null,
|
|
37
|
+
React.createElement(Form_1["default"], { isBordered: true, formId: 'TestForm', useRedux: true, syncWithAddressBar: true, autoFocus: true, layout: 'default', size: 'large', fields: [
|
|
38
|
+
{
|
|
39
|
+
component: InputField_1["default"],
|
|
40
|
+
attribute: 'email',
|
|
41
|
+
label: 'Email'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
component: TextField_1["default"],
|
|
45
|
+
attribute: 'message',
|
|
46
|
+
label: 'Message'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
component: DateField_1["default"],
|
|
50
|
+
attribute: 'date',
|
|
51
|
+
label: 'Date'
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
component: DateTimeField_1["default"],
|
|
55
|
+
attribute: 'startTime',
|
|
56
|
+
label: 'Start time'
|
|
57
|
+
},
|
|
58
|
+
], submitLabel: 'Submit', validators: [['Email', 'required']] }))); });
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
exports.__esModule = true;
|
|
25
|
+
var React = __importStar(require("react"));
|
|
26
|
+
var Form_1 = __importDefault(require("../Form"));
|
|
27
|
+
var DateField_1 = __importDefault(require("../../DateField"));
|
|
28
|
+
var InputField_1 = __importDefault(require("../../InputField"));
|
|
29
|
+
/**
|
|
30
|
+
* Обычный пример использования с прокидыванием свойства layout='horizontal'.
|
|
31
|
+
* @order 2
|
|
32
|
+
* @col 12
|
|
33
|
+
*/
|
|
34
|
+
exports["default"] = (function () { return (React.createElement(React.Fragment, null,
|
|
35
|
+
React.createElement(Form_1["default"], { formId: 'TestForm', useRedux: true, syncWithAddressBar: true, autoFocus: true, layout: 'horizontal', size: 'large', fields: [
|
|
36
|
+
{
|
|
37
|
+
component: InputField_1["default"],
|
|
38
|
+
attribute: 'email',
|
|
39
|
+
label: 'Email'
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
component: function () { return React.createElement(InputField_1["default"], null); },
|
|
43
|
+
attribute: 'message',
|
|
44
|
+
label: 'Message'
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
component: DateField_1["default"],
|
|
48
|
+
attribute: 'date',
|
|
49
|
+
label: 'Date'
|
|
50
|
+
},
|
|
51
|
+
], submitLabel: 'Submit', validators: [['Email', 'required']] }))); });
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
exports.__esModule = true;
|
|
25
|
+
var React = __importStar(require("react"));
|
|
26
|
+
var form_1 = require("@steroidsjs/core/ui/form");
|
|
27
|
+
var Form_1 = __importDefault(require("../Form"));
|
|
28
|
+
var DateField_1 = __importDefault(require("../../DateField"));
|
|
29
|
+
var InputField_1 = __importDefault(require("../../InputField"));
|
|
30
|
+
/**
|
|
31
|
+
* Обычный пример использования с Form в одну строку с использованием layout='inline'.
|
|
32
|
+
* @order 3
|
|
33
|
+
* @col 12
|
|
34
|
+
*/
|
|
35
|
+
exports["default"] = (function () { return (React.createElement(React.Fragment, null,
|
|
36
|
+
React.createElement(Form_1["default"], { formId: 'TestForm', useRedux: true, syncWithAddressBar: true, autoFocus: true, layout: 'inline', size: 'large', fields: [
|
|
37
|
+
{
|
|
38
|
+
component: form_1.DropDownField,
|
|
39
|
+
attribute: 'email'
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
component: InputField_1["default"],
|
|
43
|
+
attribute: 'message'
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
component: DateField_1["default"],
|
|
47
|
+
attribute: 'date'
|
|
48
|
+
},
|
|
49
|
+
], submitLabel: 'Submit', validators: [['Email', 'required']] }))); });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
|
|
3
3
|
/**
|
|
4
4
|
* SliderField
|
|
@@ -28,17 +28,51 @@ export interface ISliderFieldProps extends IFieldWrapperInputProps {
|
|
|
28
28
|
* @example 100
|
|
29
29
|
*/
|
|
30
30
|
max?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Делает слайдер с двумя значениями
|
|
33
|
+
* @example true
|
|
34
|
+
*/
|
|
35
|
+
isRange?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Длина шага слайдера
|
|
38
|
+
* @example 10
|
|
39
|
+
*/
|
|
40
|
+
step?: null | number;
|
|
41
|
+
/**
|
|
42
|
+
* Значение по-умолчанию при первом рендере. Для isRange=false исполуется number, для isRange=true - number[]
|
|
43
|
+
* @example 1
|
|
44
|
+
*/
|
|
45
|
+
defaultValue?: number | number[];
|
|
46
|
+
/**
|
|
47
|
+
* Любое строкове значение после значения состояния слайдера в всплывающем окошке.
|
|
48
|
+
* @example '%'
|
|
49
|
+
*/
|
|
50
|
+
valuePostfix?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Метки на ползунке. В объекте ({key: value}) key определяет положение, а value определяет, что будет отображаться.
|
|
53
|
+
* Если вы хотите задать стиль определенной точки метки, значением должен быть объект,
|
|
54
|
+
* содержащий свойства style и label.
|
|
55
|
+
* @example { min: 20, 40: 40, max: 100 }
|
|
56
|
+
*/
|
|
57
|
+
marks?: {
|
|
58
|
+
number: React.ReactNode;
|
|
59
|
+
} | {
|
|
60
|
+
number: {
|
|
61
|
+
style: any;
|
|
62
|
+
label: any;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Функция, вызываемая после отпускания tip'а у слайдера (при событии onmouseup)
|
|
67
|
+
* @see https://github.com/schrodinger/rc-slider
|
|
68
|
+
* @example {() => console.log('Slider handler is released')}
|
|
69
|
+
*/
|
|
70
|
+
onAfterChange?: (value: any) => void;
|
|
31
71
|
[key: string]: any;
|
|
32
72
|
}
|
|
33
73
|
export interface ISliderFieldViewProps extends ISliderFieldProps, IFieldWrapperOutputProps {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
max: number;
|
|
37
|
-
defaultValue: number;
|
|
38
|
-
value: number;
|
|
39
|
-
onChange: (value: any) => void;
|
|
40
|
-
onAfterChange: (value: any) => void;
|
|
41
|
-
};
|
|
74
|
+
sliderDefaultValue?: number;
|
|
75
|
+
rangeDefaultValue?: number[];
|
|
42
76
|
}
|
|
43
77
|
declare const _default: {
|
|
44
78
|
(props: IFieldWrapperInputProps): JSX.Element;
|
|
@@ -21,25 +21,34 @@ var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
|
|
|
21
21
|
var normalizeValue = function (value) { return toInteger_1["default"](String(value).replace(/[0-9]g/, '')) || 0; };
|
|
22
22
|
function SliderField(props) {
|
|
23
23
|
var components = hooks_1.useComponents();
|
|
24
|
-
var
|
|
24
|
+
var sliderProps = react_1.useMemo(function () { return ({
|
|
25
25
|
min: props.min,
|
|
26
26
|
max: props.max,
|
|
27
|
-
|
|
27
|
+
step: props.step,
|
|
28
|
+
marks: props.marks,
|
|
29
|
+
isRange: props.isRange,
|
|
30
|
+
disabled: props.disabled,
|
|
31
|
+
isVertical: props.isVertical,
|
|
28
32
|
value: props.input.value || 0,
|
|
33
|
+
valuePostfix: props.valuePostfix,
|
|
34
|
+
defaultValue: props.defaultValue,
|
|
35
|
+
tooltipIsVisible: props.tooltipIsVisible,
|
|
29
36
|
onChange: function (range) { return props.input.onChange.call(null, range); },
|
|
30
37
|
onAfterChange: function (value) {
|
|
31
38
|
value = normalizeValue(value);
|
|
32
39
|
props.input.onChange.call(null, value);
|
|
33
40
|
}
|
|
34
|
-
}); }, [props.min, props.max, props.input.value, props.input.onChange]);
|
|
35
|
-
return components.ui.renderView('form.SliderFieldView', __assign(__assign({}, props), {
|
|
41
|
+
}); }, [props.min, props.max, props.step, props.marks, props.isRange, props.disabled, props.isVertical, props.input.value, props.input.onChange, props.valuePostfix, props.defaultValue, props.tooltipIsVisible]);
|
|
42
|
+
return components.ui.renderView('form.SliderFieldView', __assign(__assign({}, props), { sliderProps: sliderProps }));
|
|
36
43
|
}
|
|
37
44
|
SliderField.defaultProps = {
|
|
38
|
-
|
|
39
|
-
required: false,
|
|
40
|
-
className: '',
|
|
41
|
-
errors: null,
|
|
45
|
+
step: 1,
|
|
42
46
|
min: 0,
|
|
43
|
-
max: 100
|
|
47
|
+
max: 100,
|
|
48
|
+
errors: null,
|
|
49
|
+
className: '',
|
|
50
|
+
valuePostfix: '',
|
|
51
|
+
sliderDefaultValue: 5,
|
|
52
|
+
rangeDefaultValue: [0, 10]
|
|
44
53
|
};
|
|
45
54
|
exports["default"] = fieldWrapper_1["default"]('SliderField', SliderField);
|
|
@@ -29,5 +29,5 @@ var SliderField_1 = __importDefault(require("../SliderField"));
|
|
|
29
29
|
* @order 1
|
|
30
30
|
* @col 4
|
|
31
31
|
*/
|
|
32
|
-
exports["default"] = (function () { return (React.createElement("div", { style: { padding: '
|
|
33
|
-
React.createElement(SliderField_1["default"], { label: 'Basic'
|
|
32
|
+
exports["default"] = (function () { return (React.createElement("div", { style: { padding: '20px 30px' } },
|
|
33
|
+
React.createElement(SliderField_1["default"], { label: 'Basic' }))); });
|
|
@@ -29,5 +29,5 @@ var SliderField_1 = __importDefault(require("../SliderField"));
|
|
|
29
29
|
* @order 2
|
|
30
30
|
* @col 4
|
|
31
31
|
*/
|
|
32
|
-
exports["default"] = (function () { return (React.createElement("div", { style: { padding: '
|
|
32
|
+
exports["default"] = (function () { return (React.createElement("div", { style: { padding: '20px 30px' } },
|
|
33
33
|
React.createElement(SliderField_1["default"], { label: 'Disabled', disabled: true }))); });
|
|
@@ -25,9 +25,9 @@ exports.__esModule = true;
|
|
|
25
25
|
var React = __importStar(require("react"));
|
|
26
26
|
var SliderField_1 = __importDefault(require("../SliderField"));
|
|
27
27
|
/**
|
|
28
|
-
* Обработка
|
|
29
|
-
* @order
|
|
28
|
+
* Обработка ошибок c лейблом.
|
|
29
|
+
* @order 5
|
|
30
30
|
* @col 4
|
|
31
31
|
*/
|
|
32
|
-
exports["default"] = (function () { return (React.createElement("div", { style: { padding: '
|
|
32
|
+
exports["default"] = (function () { return (React.createElement("div", { style: { padding: '20px 30px 10px' } },
|
|
33
33
|
React.createElement(SliderField_1["default"], { label: 'Errors', errors: ['Error 1 text', 'Error 2 text'], layout: true }))); });
|
|
File without changes
|
|
@@ -21,18 +21,27 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
21
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
|
+
var _a;
|
|
24
25
|
exports.__esModule = true;
|
|
25
26
|
var React = __importStar(require("react"));
|
|
26
27
|
var SliderField_1 = __importDefault(require("../SliderField"));
|
|
27
28
|
/**
|
|
28
|
-
*
|
|
29
|
-
* @order
|
|
30
|
-
* @col
|
|
29
|
+
* Обычный пример задания отметок со описанием по всей длине слайдера.
|
|
30
|
+
* @order 7
|
|
31
|
+
* @col 4
|
|
31
32
|
*/
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
var marks = (_a = {},
|
|
34
|
+
_a[-10] = '-10°C',
|
|
35
|
+
_a[0] = React.createElement("strong", null, "0\u00B0C"),
|
|
36
|
+
_a[26] = '26°C',
|
|
37
|
+
_a[37] = '37°C',
|
|
38
|
+
_a[50] = '50°C',
|
|
39
|
+
_a[80] = {
|
|
40
|
+
style: {
|
|
41
|
+
color: 'red'
|
|
42
|
+
},
|
|
43
|
+
label: React.createElement("strong", null, "80\u00B0C")
|
|
44
|
+
},
|
|
45
|
+
_a);
|
|
46
|
+
exports["default"] = (function () { return (React.createElement("div", { style: { padding: '20px 30px' } },
|
|
47
|
+
React.createElement(SliderField_1["default"], { min: -10, max: 80, marks: marks }))); });
|
|
@@ -26,8 +26,8 @@ var React = __importStar(require("react"));
|
|
|
26
26
|
var SliderField_1 = __importDefault(require("../SliderField"));
|
|
27
27
|
/**
|
|
28
28
|
* Установлены рамки минамльного и максимального значения.
|
|
29
|
-
* @order
|
|
29
|
+
* @order 4
|
|
30
30
|
* @col 4
|
|
31
31
|
*/
|
|
32
|
-
exports["default"] = (function () { return (React.createElement("div", { style: { padding: '
|
|
32
|
+
exports["default"] = (function () { return (React.createElement("div", { style: { padding: '20px 30px' } },
|
|
33
33
|
React.createElement(SliderField_1["default"], { label: 'With min and max values', min: 10, max: 30 }))); });
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
exports.__esModule = true;
|
|
25
|
+
var React = __importStar(require("react"));
|
|
26
|
+
var layout_1 = require("@steroidsjs/core/ui/layout");
|
|
27
|
+
var SliderField_1 = __importDefault(require("../SliderField"));
|
|
28
|
+
/**
|
|
29
|
+
* Использования свойства onAfterChange для изминения значения счетчика после отпускания tip'а у слайдера.
|
|
30
|
+
* @order 9
|
|
31
|
+
* @col 6
|
|
32
|
+
*/
|
|
33
|
+
exports["default"] = (function () {
|
|
34
|
+
var _a = React.useState('0'), counter = _a[0], setCounter = _a[1];
|
|
35
|
+
return (React.createElement("div", { style: { padding: '20px 30px' } },
|
|
36
|
+
React.createElement(SliderField_1["default"], { onAfterChange: function (value) { return setCounter(value); } }),
|
|
37
|
+
React.createElement("div", null,
|
|
38
|
+
React.createElement(layout_1.Header, null, __('Значение слайдера: {counter}', { counter: counter })))));
|
|
39
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
exports.__esModule = true;
|
|
25
|
+
var React = __importStar(require("react"));
|
|
26
|
+
var layout_1 = require("@steroidsjs/core/ui/layout");
|
|
27
|
+
var SliderField_1 = __importDefault(require("../SliderField"));
|
|
28
|
+
/**
|
|
29
|
+
* Использования свойства onChange для изминения значения счетчика.
|
|
30
|
+
* @order 8
|
|
31
|
+
* @col 6
|
|
32
|
+
*/
|
|
33
|
+
exports["default"] = (function () {
|
|
34
|
+
var _a = React.useState('0'), counter = _a[0], setCounter = _a[1];
|
|
35
|
+
return (React.createElement("div", { style: { padding: '20px 30px' } },
|
|
36
|
+
React.createElement(SliderField_1["default"], { onChange: function (value) { return setCounter(value); } }),
|
|
37
|
+
React.createElement("div", null,
|
|
38
|
+
React.createElement(layout_1.Header, null, __('Значение меняется при изменения значения слайдера в реальном времени: {counter}', { counter: counter })))));
|
|
39
|
+
});
|