@steroidsjs/core 3.0.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs-autogen-result.json +144 -47
- package/en.json +8 -2
- package/hooks/useApplication.d.ts +1 -1
- package/package.json +1 -1
- package/ui/content/DropDown/DropDown.js +1 -3
- package/ui/content/Kanban/Kanban.d.ts +7 -1
- package/ui/content/Kanban/Kanban.js +2 -1
- package/ui/content/Kanban/hooks/useKanban.d.ts +6 -0
- package/ui/content/Kanban/hooks/useKanban.js +2 -1
- package/ui/form/AutoCompleteField/AutoCompleteField.d.ts +1 -2
- package/ui/form/AutoCompleteField/AutoCompleteField.js +24 -11
- package/ui/form/Button/Button.d.ts +1 -1
- package/ui/form/Button/Button.js +29 -5
- package/ui/form/CheckboxField/CheckboxField.d.ts +1 -1
- package/ui/form/CheckboxField/CheckboxField.js +13 -4
- package/ui/form/CheckboxListField/CheckboxListField.d.ts +2 -1
- package/ui/form/CheckboxListField/CheckboxListField.js +13 -4
- package/ui/form/CheckboxTreeField/CheckboxTreeField.d.ts +1 -1
- package/ui/form/CheckboxTreeField/CheckboxTreeField.js +9 -1
- package/ui/form/DateField/DateField.d.ts +4 -3
- package/ui/form/DateField/DateField.js +4 -1
- package/ui/form/DateRangeField/DateRangeField.js +18 -13
- package/ui/form/DateTimeField/DateTimeField.d.ts +1 -1
- package/ui/form/DateTimeField/DateTimeField.js +19 -1
- package/ui/form/DateTimeRangeField/DateTimeRangeField.js +20 -1
- package/ui/form/DropDownField/DropDownField.js +34 -2
- package/ui/form/EmailField/EmailField.js +53 -3
- package/ui/form/Field/Field.js +3 -3
- package/ui/form/FieldLayout/FieldLayout.js +12 -12
- package/ui/form/FieldList/FieldList.d.ts +1 -1
- package/ui/form/FieldList/FieldList.js +7 -6
- package/ui/form/FieldSet/FieldSet.js +6 -1
- package/ui/form/FileField/FileField.js +13 -3
- package/ui/form/Form/Form.d.ts +1 -1
- package/ui/form/Form/Form.js +12 -14
- package/ui/form/HtmlField/HtmlField.d.ts +20 -1
- package/ui/form/HtmlField/HtmlField.js +11 -12
- package/ui/form/ImageField/ImageField.js +12 -8
- package/ui/form/InputField/InputField.js +24 -3
- package/ui/form/MaskField/MaskField.js +1 -13
- package/ui/form/NavField/NavField.js +12 -2
- package/ui/form/NumberField/NumberField.js +16 -3
- package/ui/form/PasswordField/PasswordField.js +15 -2
- package/ui/form/RadioField/RadioField.d.ts +1 -1
- package/ui/form/RadioField/RadioField.js +15 -4
- package/ui/form/RadioListField/RadioListField.d.ts +2 -1
- package/ui/form/RadioListField/RadioListField.js +14 -4
- package/ui/form/RateField/RateField.js +11 -1
- package/ui/form/ReCaptchaField/ReCaptchaField.js +6 -12
- package/ui/form/SliderField/SliderField.d.ts +1 -1
- package/ui/form/SliderField/SliderField.js +5 -3
- package/ui/form/SwitcherField/SwitcherField.d.ts +1 -1
- package/ui/form/SwitcherField/SwitcherField.js +14 -4
- package/ui/form/TextField/TextField.js +2 -1
- package/ui/form/TimeField/TimeField.js +3 -1
- package/ui/form/TimeRangeField/TimeRangeField.js +4 -1
- package/ui/layout/Notifications/Notifications.d.ts +1 -1
- package/ui/layout/Notifications/Notifications.js +7 -3
- package/ui/layout/ProgressBar/ProgressBar.d.ts +1 -1
- package/ui/layout/ProgressBar/ProgressBar.js +24 -24
- package/ui/layout/Sidebar/Sidebar.js +16 -12
- package/ui/list/ControlsColumn/ControlsColumn.js +7 -1
- package/ui/list/Grid/Grid.d.ts +1 -1
- package/ui/list/Grid/Grid.js +33 -8
- package/ui/list/LayoutNames/LayoutNames.d.ts +1 -1
- package/ui/list/LayoutNames/LayoutNames.js +2 -3
- package/ui/list/List/List.js +19 -4
- package/ui/list/Pagination/Pagination.d.ts +1 -1
- package/ui/list/Pagination/Pagination.js +22 -6
- package/ui/list/PaginationSize/PaginationSize.d.ts +1 -1
- package/ui/list/PaginationSize/PaginationSize.js +10 -4
- package/ui/modal/Modal/Modal.d.ts +2 -2
- package/ui/modal/Modal/Modal.js +16 -3
- package/ui/modal/ModalPortal/ModalPortal.js +2 -3
- package/ui/nav/Breadcrumbs/Breadcrumbs.js +10 -12
- package/ui/nav/ButtonGroup/ButtonGroup.js +19 -38
- package/ui/nav/Controls/Controls.js +6 -1
- package/ui/nav/Nav/Nav.d.ts +9 -1
- package/ui/nav/Nav/Nav.js +16 -7
- package/ui/nav/Router/Router.d.ts +2 -2
- package/ui/nav/Router/Router.js +17 -16
- package/ui/nav/Router/helpers.d.ts +1 -1
- package/ui/nav/Router/helpers.js +19 -16
- package/ui/nav/Tree/Tree.d.ts +3 -3
- package/ui/nav/Tree/Tree.js +11 -13
package/ui/form/Form/Form.js
CHANGED
|
@@ -75,12 +75,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
75
75
|
exports.__esModule = true;
|
|
76
76
|
exports.FormContext = void 0;
|
|
77
77
|
/* eslint-disable react/prop-types */
|
|
78
|
-
var
|
|
78
|
+
var react_1 = __importStar(require("react"));
|
|
79
79
|
var get_1 = __importDefault(require("lodash-es/get"));
|
|
80
80
|
var isUndefined_1 = __importDefault(require("lodash-es/isUndefined"));
|
|
81
81
|
var set_1 = __importDefault(require("lodash-es/set"));
|
|
82
82
|
var cloneDeep_1 = __importDefault(require("lodash-es/cloneDeep"));
|
|
83
|
-
var react_1 = require("react");
|
|
84
83
|
var react_use_1 = require("react-use");
|
|
85
84
|
var notifications_1 = require("../../../actions/notifications");
|
|
86
85
|
var useAddressBar_1 = __importDefault(require("../../../hooks/useAddressBar"));
|
|
@@ -89,7 +88,7 @@ var hooks_1 = require("../../../hooks");
|
|
|
89
88
|
var form_1 = require("../../../utils/form");
|
|
90
89
|
var validate_1 = __importDefault(require("../validate"));
|
|
91
90
|
var form_2 = require("../../../actions/form");
|
|
92
|
-
exports.FormContext =
|
|
91
|
+
exports.FormContext = react_1["default"].createContext({});
|
|
93
92
|
var getCaptchaToken = function (params) {
|
|
94
93
|
var googleCaptcha = params.googleCaptcha, siteKey = params.siteKey, _a = params.actionName, actionName = _a === void 0 ? 'submit' : _a;
|
|
95
94
|
return new Promise(function (resolve) {
|
|
@@ -124,12 +123,12 @@ function Form(props) {
|
|
|
124
123
|
}
|
|
125
124
|
// Local storage
|
|
126
125
|
if (props.autoSave) {
|
|
127
|
-
initialValues = AutoSaveHelper_1["default"].restore(
|
|
126
|
+
initialValues = AutoSaveHelper_1["default"].restore(components.clientStorage, props.formId, initialValues);
|
|
128
127
|
}
|
|
129
128
|
}
|
|
130
129
|
// Init data provider
|
|
131
130
|
var provider = props.useRedux ? form_1.providers.redux : form_1.providers.reducer;
|
|
132
|
-
var _b = provider.useForm(props.formId, initialValues), values = _b.values, submitCounter = _b.submitCounter,
|
|
131
|
+
var _b = provider.useForm(props.formId, initialValues), values = _b.values, submitCounter = _b.submitCounter, isSubmitting = _b.isSubmitting, errors = _b.errors, setErrors = _b.setErrors, reducer = _b.reducer, dispatch = _b.dispatch;
|
|
133
132
|
// Sync with address bar
|
|
134
133
|
(0, react_use_1.useUpdateEffect)(function () {
|
|
135
134
|
updateQuery(values);
|
|
@@ -137,10 +136,9 @@ function Form(props) {
|
|
|
137
136
|
// Auto save
|
|
138
137
|
(0, react_use_1.useUpdateEffect)(function () {
|
|
139
138
|
if (props.autoSave && values) {
|
|
140
|
-
|
|
141
|
-
//AutoSaveHelper.save(components.clientStorage, props.formId, values);
|
|
139
|
+
AutoSaveHelper_1["default"].save(components.clientStorage, props.formId, values);
|
|
142
140
|
}
|
|
143
|
-
}, [props.autoSave, values]);
|
|
141
|
+
}, [components.clientStorage, props.autoSave, props.formId, values]);
|
|
144
142
|
// Auto destroy
|
|
145
143
|
(0, react_use_1.useUnmount)(function () {
|
|
146
144
|
if (props.autoDestroy) {
|
|
@@ -298,9 +296,7 @@ function Form(props) {
|
|
|
298
296
|
props.onComplete.call(null, cleanedValues, data, response);
|
|
299
297
|
}
|
|
300
298
|
if (props.autoSave) {
|
|
301
|
-
|
|
302
|
-
//const AutoSaveHelper = require('../ui/form/Form/AutoSaveHelper').default;
|
|
303
|
-
//AutoSaveHelper.remove(props.clientStorage, props.formId);
|
|
299
|
+
AutoSaveHelper_1["default"].remove(components.clientStorage, props.formId);
|
|
304
300
|
}
|
|
305
301
|
dispatch((0, form_2.formSetSubmitting)(props.formId, false));
|
|
306
302
|
return [2 /*return*/, null];
|
|
@@ -308,7 +304,7 @@ function Form(props) {
|
|
|
308
304
|
});
|
|
309
305
|
});
|
|
310
306
|
}, [dispatch, props, values, components.ui, components.resource,
|
|
311
|
-
components.http,
|
|
307
|
+
components.http, components.clientStorage, setErrors, reduxDispatch]);
|
|
312
308
|
// Manual submit form by reducer action
|
|
313
309
|
var prevSubmitCounter = (0, react_use_1.usePrevious)(submitCounter);
|
|
314
310
|
(0, react_use_1.useUpdateEffect)(function () {
|
|
@@ -325,13 +321,15 @@ function Form(props) {
|
|
|
325
321
|
reducer: reducer,
|
|
326
322
|
dispatch: dispatch
|
|
327
323
|
}); }, [dispatch, props.formId, props.model, props.prefix, props.size, provider, reducer]);
|
|
324
|
+
var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign({}, props.viewProps), { isSubmitting: isSubmitting, onSubmit: onSubmit, submitLabel: props.submitLabel, fields: props.fields, children: props.children, className: props.className, style: props.style, autoFocus: props.autoFocus, buttons: props.buttons })); }, [isSubmitting, onSubmit, props.autoFocus, props.buttons, props.children, props.className, props.fields, props.style,
|
|
325
|
+
props.submitLabel, props.viewProps]);
|
|
328
326
|
// Wait initialization (only for redux)
|
|
329
327
|
if (values === undefined) {
|
|
330
328
|
return null;
|
|
331
329
|
}
|
|
332
330
|
// Render context and form
|
|
333
|
-
return (
|
|
334
|
-
? components.ui.renderView(props.view || 'form.FormView',
|
|
331
|
+
return (react_1["default"].createElement(exports.FormContext.Provider, { value: formContextValue }, props.view !== false
|
|
332
|
+
? components.ui.renderView(props.view || 'form.FormView', viewProps)
|
|
335
333
|
: props.children));
|
|
336
334
|
}
|
|
337
335
|
Form.defaultProps = {
|
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
|
|
2
2
|
/**
|
|
3
3
|
* HtmlField
|
|
4
|
-
* Компонент для создания HTML-разметки, использующий WYSIWYG
|
|
4
|
+
* Компонент для создания HTML-разметки, использующий WYSIWYG редактор.
|
|
5
|
+
*
|
|
6
|
+
* Для использования WYSIWYG редактора, необходимо установить в проекте зависимости `@ckeditor/ckeditor5-react` и `@steroidsjs/ckeditor5`,
|
|
7
|
+
* затем импортировать `CKEditor` из `@ckeditor/ckeditor5-react` и `ClassicEditor` из `@steroidsjs/ckeditor5/packages/ckeditor5-build-classic`.
|
|
8
|
+
* Компонент `CKEditor` нужно передать в проп `htmlComponent`, а конструктор `ClassicEditor` в проп `editorConstructor`.
|
|
9
|
+
*
|
|
10
|
+
* При передаче `HtmlField` с бэкенда, необходимо переопределить `view` компонента, указав локальный.
|
|
11
|
+
* В локальном компоненте добавить вместо пропсов `htmlComponent` и `editorConstructor` импорты `CKEditor` и `ClassicEditor` соотвественно.
|
|
5
12
|
*/
|
|
6
13
|
export interface IHtmlFieldProps extends IFieldWrapperInputProps, IFieldWrapperOutputProps, IUiComponent {
|
|
14
|
+
/**
|
|
15
|
+
* Компонент редактора 'ckeditor5-react' из библиотеки @ckeditor
|
|
16
|
+
* Примечание: для использования встроенного отображения 'HtmlField', данный компонент должен быть передан
|
|
17
|
+
* @example CKEditor
|
|
18
|
+
*/
|
|
19
|
+
htmlComponent?: any;
|
|
20
|
+
/**
|
|
21
|
+
* Конструктор редактора 'ckeditor5-react' из библиотеки @steroidsjs/ckeditor5/packages/ckeditor5-build-classic
|
|
22
|
+
* Примечание: для использования встроенного отображения 'HtmlField', данный компонент должен быть передан
|
|
23
|
+
* @example ClassicEditor
|
|
24
|
+
*/
|
|
25
|
+
editorConstructor?: any;
|
|
7
26
|
/**
|
|
8
27
|
* Конфигурация wysiwyg реадактора
|
|
9
28
|
*/
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
@@ -46,7 +35,17 @@ function HtmlField(props) {
|
|
|
46
35
|
: '')
|
|
47
36
|
}
|
|
48
37
|
}, props.editorProps); }, [props.editorProps, uploadUrl, uploadImagesProcessor]);
|
|
49
|
-
|
|
38
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
39
|
+
onFocus: onFocus,
|
|
40
|
+
onBlur: onBlur,
|
|
41
|
+
onChange: onChange,
|
|
42
|
+
editorProps: editorProps,
|
|
43
|
+
htmlComponent: props.htmlComponent,
|
|
44
|
+
editorConstructor: props.editorConstructor,
|
|
45
|
+
disabled: props.disabled,
|
|
46
|
+
input: props.input
|
|
47
|
+
}); }, [editorProps, onBlur, onChange, onFocus, props.disabled, props.editorConstructor, props.htmlComponent, props.input]);
|
|
48
|
+
return components.ui.renderView(props.view || 'form.HtmlFieldView', viewProps);
|
|
50
49
|
}
|
|
51
50
|
HtmlField.defaultProps = {
|
|
52
51
|
disabled: false,
|
|
@@ -43,6 +43,7 @@ var first_1 = __importDefault(require("lodash-es/first"));
|
|
|
43
43
|
var values_1 = __importDefault(require("lodash-es/values"));
|
|
44
44
|
var react_1 = require("react");
|
|
45
45
|
var uniqueId_1 = __importDefault(require("lodash-es/uniqueId"));
|
|
46
|
+
var react_use_1 = require("react-use");
|
|
46
47
|
var hooks_1 = require("../../../hooks");
|
|
47
48
|
var useDispatch_1 = __importDefault(require("../../../hooks/useDispatch"));
|
|
48
49
|
var useFile_1 = __importDefault(require("../../../hooks/useFile"));
|
|
@@ -70,9 +71,10 @@ function ImageField(props) {
|
|
|
70
71
|
responseParser: props.crop ? responseParser : null
|
|
71
72
|
}
|
|
72
73
|
} }, props.uploader) })), files = _b.files, onBrowse = _b.onBrowse, onRemove = _b.onRemove, onAdd = _b.onAdd;
|
|
74
|
+
var oldCroppedImage = (0, react_use_1.usePrevious)(croppedImage);
|
|
73
75
|
// Fetch cropped image
|
|
74
76
|
(0, react_1.useEffect)(function () {
|
|
75
|
-
if (croppedImage) {
|
|
77
|
+
if (croppedImage && !oldCroppedImage) {
|
|
76
78
|
components.http.post(props.crop.backendUrl, croppedImage).then(function (res) {
|
|
77
79
|
setCroppedImage(null);
|
|
78
80
|
onAdd(new File_1["default"]({
|
|
@@ -83,9 +85,10 @@ function ImageField(props) {
|
|
|
83
85
|
resultHttpMessage: res,
|
|
84
86
|
uid: res.uid
|
|
85
87
|
}));
|
|
88
|
+
props.input.onChange(res.id);
|
|
86
89
|
});
|
|
87
90
|
}
|
|
88
|
-
}, [components.http, croppedImage, onAdd, onRemove, props.crop.backendUrl]);
|
|
91
|
+
}, [components.http, croppedImage, onAdd, onRemove, props.crop.backendUrl, props.input, oldCroppedImage]);
|
|
89
92
|
var ImageFieldView = props.view || components.ui.getView('form.ImageFieldView');
|
|
90
93
|
var item = (0, react_1.useMemo)(function () {
|
|
91
94
|
var result = null;
|
|
@@ -132,7 +135,13 @@ function ImageField(props) {
|
|
|
132
135
|
}
|
|
133
136
|
return result;
|
|
134
137
|
}, [files, onRemove, props.disabled, props.imagesProcessor, props.size]);
|
|
135
|
-
|
|
138
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
139
|
+
item: item,
|
|
140
|
+
onClick: onBrowse,
|
|
141
|
+
buttonProps: props.buttonProps,
|
|
142
|
+
label: props.label
|
|
143
|
+
}); }, [item, onBrowse, props.buttonProps, props.label]);
|
|
144
|
+
return (React.createElement(ImageFieldView, __assign({}, viewProps)));
|
|
136
145
|
}
|
|
137
146
|
ImageField.defaultProps = {
|
|
138
147
|
disabled: false,
|
|
@@ -140,11 +149,6 @@ ImageField.defaultProps = {
|
|
|
140
149
|
className: '',
|
|
141
150
|
modalProps: {},
|
|
142
151
|
label: 'Upload',
|
|
143
|
-
crop: {
|
|
144
|
-
initialValues: {
|
|
145
|
-
aspect: 1
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
152
|
buttonProps: {
|
|
149
153
|
color: 'basic',
|
|
150
154
|
outline: true
|
|
@@ -102,13 +102,34 @@ function InputField(props) {
|
|
|
102
102
|
var _a;
|
|
103
103
|
return (__assign({ type: props.type, name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', onInput: onChange, placeholder: props.placeholder, disabled: props.disabled }, props.inputProps));
|
|
104
104
|
}, [onChange, props.disabled, props.input.name, props.input.value, props.inputProps, props.placeholder, props.type]);
|
|
105
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
106
|
+
inputRef: useInputFieldWarningByType_1.INPUT_TYPES_SUPPORTED_SELECTION.includes(props.type) ? inputRef : null,
|
|
107
|
+
onClear: onClear,
|
|
108
|
+
inputProps: inputProps,
|
|
109
|
+
size: props.size,
|
|
110
|
+
errors: props.errors,
|
|
111
|
+
leadIcon: props.leadIcon,
|
|
112
|
+
showClear: props.showClear,
|
|
113
|
+
input: props.input,
|
|
114
|
+
addonAfter: props.addonAfter,
|
|
115
|
+
addonBefore: props.addonBefore,
|
|
116
|
+
textAfter: props.textAfter,
|
|
117
|
+
textBefore: props.textBefore,
|
|
118
|
+
className: props.className,
|
|
119
|
+
style: props.style,
|
|
120
|
+
onBlur: props.onBlur,
|
|
121
|
+
onFocus: props.onFocus,
|
|
122
|
+
onMouseDown: props.onMouseDown,
|
|
123
|
+
placeholder: props.placeholder,
|
|
124
|
+
required: props.required,
|
|
125
|
+
id: props.id,
|
|
126
|
+
viewProps: props.viewProps
|
|
127
|
+
}); }, [inputProps, inputRef, onClear, props]);
|
|
105
128
|
// No render for hidden input
|
|
106
129
|
if (props.type === 'hidden') {
|
|
107
130
|
return null;
|
|
108
131
|
}
|
|
109
|
-
return components.ui.renderView(props.view || 'form.InputFieldView',
|
|
110
|
-
// If type was recognized as unsupported in InputField, then we do not pass ref.
|
|
111
|
-
inputRef: useInputFieldWarningByType_1.INPUT_TYPES_SUPPORTED_SELECTION.includes(props.type) ? inputRef : null, onClear: onClear }));
|
|
132
|
+
return components.ui.renderView(props.view || 'form.InputFieldView', viewProps);
|
|
112
133
|
}
|
|
113
134
|
InputField.defaultProps = {
|
|
114
135
|
type: 'text',
|
|
@@ -10,17 +10,6 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
-
var t = {};
|
|
15
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
-
t[p] = s[p];
|
|
17
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
-
t[p[i]] = s[p[i]];
|
|
21
|
-
}
|
|
22
|
-
return t;
|
|
23
|
-
};
|
|
24
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
25
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
15
|
};
|
|
@@ -28,7 +17,6 @@ exports.__esModule = true;
|
|
|
28
17
|
var react_1 = __importDefault(require("react"));
|
|
29
18
|
var InputField_1 = __importDefault(require("../InputField/InputField"));
|
|
30
19
|
function MaskField(props) {
|
|
31
|
-
|
|
32
|
-
return (react_1["default"].createElement(InputField_1["default"], __assign({}, inputProps, { maskOptions: props.maskOptions })));
|
|
20
|
+
return (react_1["default"].createElement(InputField_1["default"], __assign({}, props)));
|
|
33
21
|
}
|
|
34
22
|
exports["default"] = MaskField;
|
|
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
|
-
var
|
|
40
|
+
var react_1 = __importStar(require("react"));
|
|
41
41
|
var Nav_1 = __importDefault(require("../../nav/Nav/Nav"));
|
|
42
42
|
var fieldWrapper_1 = __importDefault(require("../../form/Field/fieldWrapper"));
|
|
43
43
|
var hooks_1 = require("../../../hooks");
|
|
@@ -45,7 +45,17 @@ function NavField(props) {
|
|
|
45
45
|
var items = (0, hooks_1.useDataProvider)({
|
|
46
46
|
items: props.items
|
|
47
47
|
}).items;
|
|
48
|
-
|
|
48
|
+
var navProps = (0, react_1.useMemo)(function () { return ({
|
|
49
|
+
layout: props.navProps.layout,
|
|
50
|
+
items: items,
|
|
51
|
+
activeTab: props.input.value,
|
|
52
|
+
onChange: props.onChange,
|
|
53
|
+
disabled: props.disabled,
|
|
54
|
+
className: props.className,
|
|
55
|
+
view: props.view,
|
|
56
|
+
size: props.size
|
|
57
|
+
}); }, [items, props.className, props.disabled, props.input.value, props.navProps.layout, props.onChange, props.size, props.view]);
|
|
58
|
+
return (react_1["default"].createElement(Nav_1["default"], __assign({}, navProps)));
|
|
49
59
|
}
|
|
50
60
|
NavField.defaultProps = {
|
|
51
61
|
navProps: {
|
|
@@ -76,9 +76,22 @@ function NumberField(props) {
|
|
|
76
76
|
}, [onStepDown, onStepUp]);
|
|
77
77
|
var inputProps = (0, react_1.useMemo)(function () {
|
|
78
78
|
var _a;
|
|
79
|
-
return (__assign({ name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', onChange: onInputChange, type: 'text', min: props.min, max: props.max, step: props.step, placeholder: props.placeholder, disabled: props.disabled, autoComplete: 'off', onKeyDown: onKeyDown }
|
|
80
|
-
}, [props.input.name, props.input.value, props.min, props.max, props.step, props.placeholder, props.disabled,
|
|
81
|
-
|
|
79
|
+
return (__assign(__assign({}, props.inputProps), { name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', onChange: onInputChange, type: 'text', min: props.min, max: props.max, step: props.step, placeholder: props.placeholder, disabled: props.disabled, autoComplete: 'off', onKeyDown: onKeyDown }));
|
|
80
|
+
}, [props.inputProps, props.input.name, props.input.value, props.min, props.max, props.step, props.placeholder, props.disabled, onInputChange, onKeyDown]);
|
|
81
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
82
|
+
viewProps: props.viewProps,
|
|
83
|
+
inputProps: inputProps,
|
|
84
|
+
onStepUp: onStepUp,
|
|
85
|
+
onStepDown: onStepDown,
|
|
86
|
+
input: props.input,
|
|
87
|
+
inputRef: currentInputRef,
|
|
88
|
+
size: props.size,
|
|
89
|
+
errors: props.errors,
|
|
90
|
+
className: props.className,
|
|
91
|
+
disabled: props.disabled,
|
|
92
|
+
id: props.id
|
|
93
|
+
}); }, [currentInputRef, inputProps, onStepDown, onStepUp, props]);
|
|
94
|
+
return components.ui.renderView(props.view || 'form.NumberFieldView', viewProps);
|
|
82
95
|
}
|
|
83
96
|
NumberField.defaultProps = {
|
|
84
97
|
disabled: false,
|
|
@@ -62,9 +62,22 @@ function PasswordField(props) {
|
|
|
62
62
|
}, [type]);
|
|
63
63
|
var inputProps = (0, react_1.useMemo)(function () {
|
|
64
64
|
var _a;
|
|
65
|
-
return (__assign({ name: props.input.name, defaultValue: (_a = props.input.value) !== null && _a !== void 0 ? _a : '',
|
|
65
|
+
return (__assign({ name: props.input.name, defaultValue: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', placeholder: props.placeholder, disabled: props.disabled, ref: inputRef, onChange: onChange, type: type }, props.inputProps));
|
|
66
66
|
}, [inputRef, onChange, props.disabled, props.input.name, props.input.value, props.inputProps, props.placeholder, type]);
|
|
67
|
-
|
|
67
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
68
|
+
viewProps: props.viewProps,
|
|
69
|
+
inputProps: inputProps,
|
|
70
|
+
securityLevel: props.showSecurityBar ? (0, exports.checkPassword)(props.input.value) : null,
|
|
71
|
+
onClear: onClear,
|
|
72
|
+
onShowButtonClick: onShowButtonClick,
|
|
73
|
+
size: props.size,
|
|
74
|
+
input: props.input,
|
|
75
|
+
className: props.className,
|
|
76
|
+
showSecurityIcon: props.showSecurityIcon,
|
|
77
|
+
showSecurityBar: props.showSecurityBar
|
|
78
|
+
}); }, [inputProps, onClear, onShowButtonClick, props.className, props.input, props.showSecurityBar, props.showSecurityIcon,
|
|
79
|
+
props.size, props.viewProps]);
|
|
80
|
+
return components.ui.renderView(props.view || 'form.PasswordFieldView' || 'form.InputFieldView', viewProps);
|
|
68
81
|
}
|
|
69
82
|
PasswordField.defaultProps = {
|
|
70
83
|
disabled: false,
|
|
@@ -37,19 +37,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
|
-
var
|
|
40
|
+
var react_1 = __importStar(require("react"));
|
|
41
41
|
var hooks_1 = require("../../../hooks");
|
|
42
42
|
var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
|
|
43
43
|
function RadioField(props) {
|
|
44
44
|
var components = (0, hooks_1.useComponents)();
|
|
45
|
-
var onChangeHandler =
|
|
45
|
+
var onChangeHandler = react_1["default"].useCallback(function () {
|
|
46
46
|
props.input.onChange(!props.input.value);
|
|
47
47
|
if (props.onChange) {
|
|
48
48
|
props.onChange();
|
|
49
49
|
}
|
|
50
50
|
}, [props]);
|
|
51
|
-
var inputProps =
|
|
52
|
-
|
|
51
|
+
var inputProps = react_1["default"].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
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
53
|
+
inputProps: inputProps,
|
|
54
|
+
errors: props.errors,
|
|
55
|
+
size: props.size,
|
|
56
|
+
className: props.className,
|
|
57
|
+
onChange: props.onChange,
|
|
58
|
+
checked: props.checked,
|
|
59
|
+
disabled: props.disabled,
|
|
60
|
+
required: props.required,
|
|
61
|
+
label: props.label
|
|
62
|
+
}); }, [inputProps, props.checked, props.className, props.disabled, props.errors, props.label, props.onChange, props.required, props.size]);
|
|
63
|
+
return components.ui.renderView(props.view || 'form.RadioFieldView', viewProps);
|
|
53
64
|
}
|
|
54
65
|
RadioField.defaultProps = {
|
|
55
66
|
disabled: false,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import 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';
|
|
@@ -31,6 +31,7 @@ export interface IRadioListFieldViewProps extends IFieldWrapperOutputProps {
|
|
|
31
31
|
disabled?: boolean;
|
|
32
32
|
isSelected: boolean;
|
|
33
33
|
isHovered: boolean;
|
|
34
|
+
required?: boolean;
|
|
34
35
|
}[];
|
|
35
36
|
selectedIds: (PrimaryKey | any)[];
|
|
36
37
|
className?: CssClassName;
|
|
@@ -37,8 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
|
-
var
|
|
41
|
-
var react_1 = require("react");
|
|
40
|
+
var react_1 = __importStar(require("react"));
|
|
42
41
|
var react_use_1 = require("react-use");
|
|
43
42
|
var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
|
|
44
43
|
var hooks_1 = require("../../../hooks");
|
|
@@ -75,8 +74,19 @@ function RadioListField(props) {
|
|
|
75
74
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
76
75
|
}, [props.input.onChange, selectedIds]);
|
|
77
76
|
var RadioFieldView = components.ui.getView('form.RadioFieldView');
|
|
78
|
-
var renderRadio = function (radioProps) { return
|
|
79
|
-
|
|
77
|
+
var renderRadio = function (radioProps) { return react_1["default"].createElement(RadioFieldView, __assign({}, radioProps)); };
|
|
78
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
79
|
+
items: items,
|
|
80
|
+
inputProps: inputProps,
|
|
81
|
+
onItemSelect: onItemSelect,
|
|
82
|
+
selectedIds: selectedIds,
|
|
83
|
+
renderRadio: renderRadio,
|
|
84
|
+
orientation: props.orientation,
|
|
85
|
+
className: props.className,
|
|
86
|
+
disabled: props.disabled,
|
|
87
|
+
size: props.size
|
|
88
|
+
}); }, [inputProps, items, onItemSelect, props.className, props.disabled, props.orientation, props.size, renderRadio, selectedIds]);
|
|
89
|
+
return components.ui.renderView(props.view || 'form.RadioListFieldView', viewProps);
|
|
80
90
|
}
|
|
81
91
|
RadioListField.defaultProps = {
|
|
82
92
|
disabled: false,
|
|
@@ -42,7 +42,17 @@ function RateField(props) {
|
|
|
42
42
|
props.input.onChange(value);
|
|
43
43
|
}, [props.allowClear, props.input]);
|
|
44
44
|
var inputProps = (0, react_1.useMemo)(function () { return (__assign({ name: props.input.name, value: props.input.value, disabled: props.disabled }, props.inputProps)); }, [props.disabled, props.input, props.inputProps]);
|
|
45
|
-
|
|
45
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
46
|
+
inputProps: inputProps,
|
|
47
|
+
onItemClick: onItemClick,
|
|
48
|
+
items: items,
|
|
49
|
+
size: props.size,
|
|
50
|
+
disabled: props.disabled,
|
|
51
|
+
className: props.className,
|
|
52
|
+
style: props.style,
|
|
53
|
+
badge: props.badge
|
|
54
|
+
}); }, [inputProps, items, onItemClick, props.badge, props.className, props.disabled, props.size, props.style]);
|
|
55
|
+
return components.ui.renderView(props.view || 'form.RateFieldView', viewProps);
|
|
46
56
|
}
|
|
47
57
|
RateField.defaultProps = {
|
|
48
58
|
allowClear: false,
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
@@ -39,6 +28,11 @@ function ReCaptchaField(props) {
|
|
|
39
28
|
ref: props.ref,
|
|
40
29
|
sitekey: props.sitekey || components.resource.googleCaptchaSiteKey
|
|
41
30
|
}); }, [components.resource.googleCaptchaSiteKey, onChange, props.asyncScriptOnLoad, props.badge, props.hl, props.isolated, props.onErrored, props.onExpired, props.ref, props.sitekey, props.stoken, props.tabindex, props.type]);
|
|
42
|
-
|
|
31
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
32
|
+
recaptchaOptions: recaptchaOptions,
|
|
33
|
+
className: props.className,
|
|
34
|
+
style: props.style
|
|
35
|
+
}); }, [props.className, props.style, recaptchaOptions]);
|
|
36
|
+
return components.ui.renderView(props.view || 'form.ReCaptchaFieldView', viewProps);
|
|
43
37
|
}
|
|
44
38
|
exports["default"] = (0, fieldWrapper_1["default"])('ReCaptchaField', ReCaptchaField);
|
|
@@ -14,8 +14,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
16
|
exports.__esModule = true;
|
|
17
|
-
var toInteger_1 = __importDefault(require("lodash-es/toInteger"));
|
|
18
17
|
var react_1 = require("react");
|
|
18
|
+
var toInteger_1 = __importDefault(require("lodash-es/toInteger"));
|
|
19
19
|
var hooks_1 = require("../../../hooks");
|
|
20
20
|
var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
|
|
21
21
|
var normalizeValue = function (value) { return (0, toInteger_1["default"])(String(value).replace(/[0-9]g/, '')) || 0; };
|
|
@@ -38,8 +38,10 @@ function SliderField(props) {
|
|
|
38
38
|
value = normalizeValue(value);
|
|
39
39
|
props.input.onChange.call(null, value);
|
|
40
40
|
}
|
|
41
|
-
}); }, [props.min, props.max, props.step, props.marks, props.isRange, props.disabled, props.isVertical, props.input.value,
|
|
42
|
-
|
|
41
|
+
}); }, [props.min, props.max, props.step, props.marks, props.isRange, props.disabled, props.isVertical, props.input.value,
|
|
42
|
+
props.input.onChange, props.valuePostfix, props.defaultValue, props.tooltipIsVisible]);
|
|
43
|
+
var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign({}, sliderProps), { slider: props.slider, className: props.className, rangeDefaultValue: props.rangeDefaultValue, sliderDefaultValue: props.sliderDefaultValue, style: props.style })); }, [props.className, props.rangeDefaultValue, props.slider, props.sliderDefaultValue, props.style, sliderProps]);
|
|
44
|
+
return components.ui.renderView(props.view || 'form.SliderFieldView', viewProps);
|
|
43
45
|
}
|
|
44
46
|
SliderField.defaultProps = {
|
|
45
47
|
step: 1,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
|
|
3
3
|
import { IDataProviderConfig } from '../../../hooks/useDataProvider';
|
|
4
4
|
import { IDataSelectConfig } from '../../../hooks/useDataSelect';
|
|
@@ -37,8 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
exports.__esModule = true;
|
|
40
|
-
var
|
|
41
|
-
var react_1 = require("react");
|
|
40
|
+
var react_1 = __importStar(require("react"));
|
|
42
41
|
var react_use_1 = require("react-use");
|
|
43
42
|
var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
|
|
44
43
|
var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
|
|
@@ -64,7 +63,7 @@ function SwitcherField(props) {
|
|
|
64
63
|
var onItemSelect = (0, react_1.useCallback)(function (id) {
|
|
65
64
|
setSelectedIds(id);
|
|
66
65
|
}, [setSelectedIds]);
|
|
67
|
-
var inputProps =
|
|
66
|
+
var inputProps = react_1["default"].useMemo(function () { return (__assign(__assign({}, props.inputProps), { type: 'checkbox', name: props.input.name, disabled: props.disabled })); }, [props.disabled, props.input.name, props.inputProps]);
|
|
68
67
|
// Sync with form
|
|
69
68
|
var prevSelectedIds = (0, react_use_1.usePrevious)(selectedIds);
|
|
70
69
|
(0, react_1.useEffect)(function () {
|
|
@@ -76,7 +75,18 @@ function SwitcherField(props) {
|
|
|
76
75
|
}
|
|
77
76
|
}
|
|
78
77
|
}, [selectedIds, props.input.onChange, prevSelectedIds, props, items]);
|
|
79
|
-
|
|
78
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
79
|
+
items: items,
|
|
80
|
+
inputProps: inputProps,
|
|
81
|
+
hoveredId: hoveredId,
|
|
82
|
+
selectedIds: selectedIds,
|
|
83
|
+
onItemHover: onItemHover,
|
|
84
|
+
onItemSelect: onItemSelect,
|
|
85
|
+
className: props.className,
|
|
86
|
+
style: props.style,
|
|
87
|
+
size: props.size
|
|
88
|
+
}); }, [hoveredId, inputProps, items, onItemHover, onItemSelect, props.className, props.size, props.style, selectedIds]);
|
|
89
|
+
return components.ui.renderView(props.view || 'form.SwitcherFieldView', viewProps);
|
|
80
90
|
}
|
|
81
91
|
SwitcherField.defaultProps = {
|
|
82
92
|
primaryKey: 'id',
|
|
@@ -37,7 +37,8 @@ function TextField(props) {
|
|
|
37
37
|
var _a;
|
|
38
38
|
return (__assign({ name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', onChange: handleChange, onKeyUp: onKeyUp, placeholder: props.placeholder, disabled: props.disabled, ref: inputRef }, props.inputProps));
|
|
39
39
|
}, [props.input.name, props.input.value, props.placeholder, props.disabled, props.inputProps, handleChange, onKeyUp, inputRef]);
|
|
40
|
-
|
|
40
|
+
var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign({}, props.viewProps), { inputProps: inputProps, onClear: onClear, errors: props.errors, size: props.size, className: props.className, showClear: props.showClear })); }, [inputProps, onClear, props.className, props.errors, props.showClear, props.size, props.viewProps]);
|
|
41
|
+
return components.ui.renderView(props.view || 'form.TextFieldView', viewProps);
|
|
41
42
|
}
|
|
42
43
|
TextField.defaultProps = {
|
|
43
44
|
disabled: false,
|
|
@@ -33,7 +33,9 @@ function TimeField(props) {
|
|
|
33
33
|
dateInUTC: props.dateInUTC
|
|
34
34
|
}), onNow = _a.onNow, onClear = _a.onClear, onClose = _a.onClose, isOpened = _a.isOpened, inputProps = _a.inputProps;
|
|
35
35
|
var timePanelViewProps = (0, react_1.useMemo)(function () { return (__assign({ onNow: onNow, onClose: onClose, value: inputProps.value, onSelect: inputProps.onChange }, props.timePanelViewProps)); }, [inputProps.onChange, inputProps.value, onClose, onNow, props.timePanelViewProps]);
|
|
36
|
-
|
|
36
|
+
var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign({}, props.viewProps), { onNow: onNow, onClear: onClear, onClose: onClose, isOpened: isOpened, inputProps: inputProps, timePanelViewProps: timePanelViewProps, size: props.size, icon: props.icon, errors: props.errors, noBorder: props.noBorder, disabled: props.disabled, className: props.className, style: props.style, showRemove: props.showRemove })); }, [inputProps, isOpened, onClear, onClose, onNow, props.className, props.disabled, props.errors, props.icon, props.noBorder,
|
|
37
|
+
props.showRemove, props.size, props.style, props.viewProps, timePanelViewProps]);
|
|
38
|
+
return components.ui.renderView(props.view || 'form.TimeFieldView', viewProps);
|
|
37
39
|
}
|
|
38
40
|
TimeField.defaultProps = {
|
|
39
41
|
disabled: false,
|
|
@@ -67,7 +67,10 @@ function TimeRangeField(props) {
|
|
|
67
67
|
}), focus = _c.focus, onClose = _c.onClose, onClear = _c.onClear, extendedInputPropsFrom = _c.extendedInputPropsFrom, extendedInputPropsTo = _c.extendedInputPropsTo;
|
|
68
68
|
var timePanelFromViewProps = (0, react_1.useMemo)(function () { return (__assign({ onNow: onNowFrom, onClose: onCloseFrom, value: inputPropsFrom.value, onSelect: inputPropsFrom.onChange }, props.timePanelViewProps)); }, [inputPropsFrom.onChange, inputPropsFrom.value, onCloseFrom, onNowFrom, props.timePanelViewProps]);
|
|
69
69
|
var timePanelToViewProps = (0, react_1.useMemo)(function () { return (__assign({ onNow: onNowTo, onClose: onCloseTo, value: inputPropsTo.value, onSelect: inputPropsTo.onChange }, props.timePanelViewProps)); }, [inputPropsTo.onChange, inputPropsTo.value, onCloseTo, onNowTo, props.timePanelViewProps]);
|
|
70
|
-
|
|
70
|
+
var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign({}, props.viewProps), { onClear: onClear, onClose: onClose, inputPropsFrom: extendedInputPropsFrom, inputPropsTo: extendedInputPropsTo, isOpened: focus === 'from' ? isOpenedFrom : isOpenedTo, style: props.style, errorsFrom: props.errorsFrom, errorsTo: props.errorsTo, errors: props.errors, timePanelFromViewProps: timePanelFromViewProps, timePanelToViewProps: timePanelToViewProps, size: props.size, icon: props.icon, disabled: props.disabled, showRemove: props.showRemove, className: props.className })); }, [extendedInputPropsFrom, extendedInputPropsTo, focus, isOpenedFrom, isOpenedTo, onClear, onClose, props.className,
|
|
71
|
+
props.disabled, props.errors, props.errorsFrom, props.errorsTo, props.icon, props.showRemove, props.size, props.style,
|
|
72
|
+
props.viewProps, timePanelFromViewProps, timePanelToViewProps]);
|
|
73
|
+
return components.ui.renderView(props.view || 'form.TimeRangeFieldView', viewProps);
|
|
71
74
|
}
|
|
72
75
|
TimeRangeField.defaultProps = {
|
|
73
76
|
disabled: false,
|