@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/Button/Button.js
CHANGED
|
@@ -34,9 +34,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
34
34
|
return result;
|
|
35
35
|
};
|
|
36
36
|
exports.__esModule = true;
|
|
37
|
-
var
|
|
37
|
+
var react_1 = __importStar(require("react"));
|
|
38
38
|
var react_redux_1 = require("react-redux");
|
|
39
|
-
var react_1 = require("react");
|
|
40
39
|
var router_1 = require("../../../actions/router");
|
|
41
40
|
var router_2 = require("../../../reducers/router");
|
|
42
41
|
var hooks_1 = require("../../../hooks");
|
|
@@ -56,7 +55,7 @@ function Button(props) {
|
|
|
56
55
|
isLoading: false,
|
|
57
56
|
isFailed: false
|
|
58
57
|
}), _b = _a[0], isLoading = _b.isLoading, isFailed = _b.isFailed, setStateFlags = _a[1];
|
|
59
|
-
|
|
58
|
+
react_1["default"].useEffect(function () {
|
|
60
59
|
setStateFlags({
|
|
61
60
|
isLoading: props.isLoading,
|
|
62
61
|
isFailed: props.isFailed
|
|
@@ -126,8 +125,33 @@ function Button(props) {
|
|
|
126
125
|
}
|
|
127
126
|
}
|
|
128
127
|
}, [dispatch, props, tag]);
|
|
129
|
-
var
|
|
130
|
-
|
|
128
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
129
|
+
badge: badge,
|
|
130
|
+
isFailed: isFailed,
|
|
131
|
+
isLoading: isLoading,
|
|
132
|
+
disabled: disabled,
|
|
133
|
+
submitting: submitting,
|
|
134
|
+
tag: tag,
|
|
135
|
+
label: props.label,
|
|
136
|
+
hint: props.hint,
|
|
137
|
+
icon: props.icon,
|
|
138
|
+
link: props.link,
|
|
139
|
+
outline: props.outline,
|
|
140
|
+
color: props.color,
|
|
141
|
+
block: props.block,
|
|
142
|
+
target: props.target,
|
|
143
|
+
type: props.type,
|
|
144
|
+
size: props.size,
|
|
145
|
+
formId: (context === null || context === void 0 ? void 0 : context.formId) || null,
|
|
146
|
+
url: url || (tag === 'a' ? '#' : null),
|
|
147
|
+
onClick: !disabled ? onClick : undefined,
|
|
148
|
+
children: props.label || props.children,
|
|
149
|
+
className: props.className,
|
|
150
|
+
style: props.style
|
|
151
|
+
}); }, [badge, context === null || context === void 0 ? void 0 : context.formId, disabled, isFailed, isLoading, onClick, props.block,
|
|
152
|
+
props.children, props.className, props.color, props.hint, props.icon, props.label,
|
|
153
|
+
props.link, props.outline, props.size, props.style, props.target, props.type, submitting, tag, url]);
|
|
154
|
+
return components.ui.renderView(props.view || 'form.ButtonView', viewProps);
|
|
131
155
|
}
|
|
132
156
|
Button.defaultProps = {
|
|
133
157
|
type: 'button',
|
|
@@ -37,14 +37,13 @@ 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 fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
|
|
43
42
|
var hooks_1 = require("../../../hooks");
|
|
44
43
|
function CheckboxField(props) {
|
|
45
44
|
var _a, _b;
|
|
46
45
|
var components = (0, hooks_1.useComponents)();
|
|
47
|
-
var onChangeHandler =
|
|
46
|
+
var onChangeHandler = react_1["default"].useCallback(function () {
|
|
48
47
|
var _a;
|
|
49
48
|
props.input.onChange(!((_a = props.input) === null || _a === void 0 ? void 0 : _a.value));
|
|
50
49
|
if (props.onChange) {
|
|
@@ -55,7 +54,17 @@ function CheckboxField(props) {
|
|
|
55
54
|
var _a, _b;
|
|
56
55
|
return (__assign({ name: (_a = props.input) === null || _a === void 0 ? void 0 : _a.name, type: 'checkbox', checked: !!((_b = props.input) === null || _b === void 0 ? void 0 : _b.value), onChange: onChangeHandler, disabled: props.disabled, required: props.required }, props.inputProps));
|
|
57
56
|
}, [onChangeHandler, props.disabled, (_a = props.input) === null || _a === void 0 ? void 0 : _a.name, (_b = props.input) === null || _b === void 0 ? void 0 : _b.value, props.inputProps, props.required]);
|
|
58
|
-
|
|
57
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
58
|
+
inputProps: inputProps,
|
|
59
|
+
color: props.color,
|
|
60
|
+
size: props.size,
|
|
61
|
+
errors: props.errors,
|
|
62
|
+
className: props.className,
|
|
63
|
+
style: props.style,
|
|
64
|
+
id: props.id,
|
|
65
|
+
label: props.label
|
|
66
|
+
}); }, [inputProps, props.className, props.color, props.errors, props.id, props.label, props.size, props.style]);
|
|
67
|
+
return components.ui.renderView(props.view || 'form.CheckboxFieldView', viewProps);
|
|
59
68
|
}
|
|
60
69
|
CheckboxField.defaultProps = {
|
|
61
70
|
disabled: false,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import Enum from '../../../base/Enum';
|
|
3
3
|
import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../../../ui/form/Field/fieldWrapper';
|
|
4
4
|
import { IDataProviderConfig } from '../../../hooks/useDataProvider';
|
|
@@ -63,6 +63,7 @@ export interface ICheckboxListFieldViewProps extends IFieldWrapperOutputProps {
|
|
|
63
63
|
isSelected: boolean;
|
|
64
64
|
isHovered: boolean;
|
|
65
65
|
color?: string;
|
|
66
|
+
required?: boolean;
|
|
66
67
|
}[];
|
|
67
68
|
selectedIds: (PrimaryKey | any)[];
|
|
68
69
|
onItemSelect: (id: PrimaryKey | any) => void;
|
|
@@ -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 hooks_1 = require("../../../hooks");
|
|
44
43
|
var fieldWrapper_1 = __importDefault(require("../../../ui/form/Field/fieldWrapper"));
|
|
@@ -80,8 +79,18 @@ function CheckboxListField(props) {
|
|
|
80
79
|
}
|
|
81
80
|
}, [onReset, prevInputValue, props.input.value, selectedIds.length]);
|
|
82
81
|
var CheckboxFieldView = props.itemView || components.ui.getView('form.CheckboxFieldView');
|
|
83
|
-
var renderCheckbox = function (checkboxProps) { return (
|
|
84
|
-
|
|
82
|
+
var renderCheckbox = function (checkboxProps) { return (react_1["default"].createElement(CheckboxFieldView, __assign({}, checkboxProps))); };
|
|
83
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
84
|
+
items: items,
|
|
85
|
+
inputProps: inputProps,
|
|
86
|
+
onItemSelect: onItemSelect,
|
|
87
|
+
selectedIds: selectedIds,
|
|
88
|
+
renderCheckbox: renderCheckbox,
|
|
89
|
+
orientation: props.orientation,
|
|
90
|
+
size: props.size,
|
|
91
|
+
disabled: props.disabled
|
|
92
|
+
}); }, [inputProps, items, onItemSelect, props.disabled, props.orientation, props.size, renderCheckbox, selectedIds]);
|
|
93
|
+
return components.ui.renderView(props.view || 'form.CheckboxListFieldView', viewProps);
|
|
85
94
|
}
|
|
86
95
|
CheckboxListField.defaultProps = {
|
|
87
96
|
disabled: false,
|
|
@@ -19,7 +19,7 @@ type CheckboxTreeItems = string | ({
|
|
|
19
19
|
*
|
|
20
20
|
* Список с вложенными чекбоксами. Используется в формах для создания иерархической структуры и выбора нескольких значений.
|
|
21
21
|
*/
|
|
22
|
-
export interface ICheckboxTreeFieldProps extends IFieldWrapperInputProps, Omit<IDataProviderConfig, 'items'>, Omit<IDataSelectConfig, 'items'>, IUiComponent, Pick<ITreeProps, 'levelPadding' | 'alwaysOpened' | '
|
|
22
|
+
export interface ICheckboxTreeFieldProps extends IFieldWrapperInputProps, Omit<IDataProviderConfig, 'items'>, Omit<IDataSelectConfig, 'items'>, IUiComponent, Pick<ITreeProps, 'levelPadding' | 'alwaysOpened' | 'customIcon'> {
|
|
23
23
|
/**
|
|
24
24
|
* Свойства для элемента input
|
|
25
25
|
* @example { onKeyDown: ... }
|
|
@@ -113,7 +113,15 @@ function CheckboxTreeField(props) {
|
|
|
113
113
|
}, [onReset, prevInputValue, props.input.value, selectedIds.length]);
|
|
114
114
|
var CheckboxFieldView = components.ui.getView('form.CheckboxFieldView');
|
|
115
115
|
var renderCheckbox = function (checkboxProps) { return (react_1["default"].createElement(CheckboxFieldView, __assign({}, checkboxProps))); };
|
|
116
|
-
|
|
116
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
117
|
+
items: treeItems,
|
|
118
|
+
onItemSelect: onItemSelect,
|
|
119
|
+
selectedIds: selectedIds,
|
|
120
|
+
renderCheckbox: renderCheckbox,
|
|
121
|
+
size: props.size,
|
|
122
|
+
levelPadding: props.levelPadding
|
|
123
|
+
}); }, [onItemSelect, props.levelPadding, props.size, renderCheckbox, selectedIds, treeItems]);
|
|
124
|
+
return components.ui.renderView(props.view || 'form.CheckboxTreeFieldView', viewProps);
|
|
117
125
|
}
|
|
118
126
|
CheckboxTreeField.defaultProps = {
|
|
119
127
|
disabled: false,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { MaskitoOptions } from '@maskito/core';
|
|
3
|
+
import { IAbsolutePositioningInputProps } from '@steroidsjs/core/hooks/useAbsolutePositioning';
|
|
3
4
|
import { ICalendarProps } from '../../content/Calendar/Calendar';
|
|
4
5
|
import { IDateInputStateInput, IDateInputStateOutput } from './useDateInputState';
|
|
5
6
|
/**
|
|
@@ -11,7 +12,7 @@ import { IDateInputStateInput, IDateInputStateOutput } from './useDateInputState
|
|
|
11
12
|
* Он предоставляет пользователю удобный интерфейс для выбора даты с помощью календаря,
|
|
12
13
|
* а также поддерживает настройку формата отображения даты и другие параметры.
|
|
13
14
|
*/
|
|
14
|
-
export interface IDateFieldProps extends IDateInputStateInput, IUiComponent {
|
|
15
|
+
export interface IDateFieldProps extends IDateInputStateInput, IUiComponent, Pick<IAbsolutePositioningInputProps, 'autoPositioning'> {
|
|
15
16
|
/**
|
|
16
17
|
* Свойства для view компонента
|
|
17
18
|
*/
|
|
@@ -26,7 +27,7 @@ export interface IDateFieldProps extends IDateInputStateInput, IUiComponent {
|
|
|
26
27
|
maskOptions?: MaskitoOptions;
|
|
27
28
|
[key: string]: any;
|
|
28
29
|
}
|
|
29
|
-
export interface IDateFieldViewProps extends IDateInputStateOutput, Pick<IDateFieldProps, 'size' | 'icon' | 'errors' | 'showRemove' | 'className' | 'calendarProps'> {
|
|
30
|
+
export interface IDateFieldViewProps extends IDateInputStateOutput, Pick<IDateFieldProps, 'size' | 'icon' | 'errors' | 'showRemove' | 'className' | 'calendarProps' | 'autoPositioning'> {
|
|
30
31
|
/**
|
|
31
32
|
* Ref для input элемента, который накладывает маску
|
|
32
33
|
*/
|
|
@@ -39,7 +39,9 @@ function DateField(props) {
|
|
|
39
39
|
}), onClear = _a.onClear, onClose = _a.onClose, isOpened = _a.isOpened, inputProps = _a.inputProps;
|
|
40
40
|
// Calendar props
|
|
41
41
|
var calendarProps = (0, react_1.useMemo)(function () { return (__assign({ value: props.input.value, onChange: props.input.onChange, valueFormat: props.valueFormat }, props.calendarProps)); }, [props.calendarProps, props.input.onChange, props.input.value, props.valueFormat]);
|
|
42
|
-
|
|
42
|
+
var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign({}, props.viewProps), { calendarProps: calendarProps, onClear: onClear, onClose: onClose, isOpened: isOpened, inputProps: inputProps, size: props.size, icon: props.icon, errors: props.errors, label: props.label, disabled: props.disabled, className: props.className, showRemove: props.showRemove, style: props.style, autoPositioning: props.autoPositioning, maskInputRef: maskInputRef })); }, [calendarProps, inputProps, isOpened, maskInputRef, onClear, onClose, props.className,
|
|
43
|
+
props.disabled, props.errors, props.icon, props.label, props.showRemove, props.size, props.style, props.viewProps]);
|
|
44
|
+
return components.ui.renderView(props.view || 'form.DateFieldView', viewProps);
|
|
43
45
|
}
|
|
44
46
|
DateField.defaultProps = {
|
|
45
47
|
disabled: false,
|
|
@@ -47,6 +49,7 @@ DateField.defaultProps = {
|
|
|
47
49
|
icon: true,
|
|
48
50
|
required: false,
|
|
49
51
|
showRemove: true,
|
|
52
|
+
autoPositioning: true,
|
|
50
53
|
valueFormat: 'YYYY-MM-DD',
|
|
51
54
|
maskOptions: (0, kit_1.maskitoDateOptionsGenerator)({
|
|
52
55
|
mode: 'dd/mm/yyyy',
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
3
|
if (k2 === undefined) k2 = k;
|
|
15
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -115,7 +104,24 @@ function DateRangeField(props) {
|
|
|
115
104
|
showFooter: false
|
|
116
105
|
}); }, [focus, props.inputFrom.onChange, props.inputFrom.value, props.inputTo.onChange,
|
|
117
106
|
props.inputTo.value, props.valueFormat]);
|
|
118
|
-
|
|
107
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
108
|
+
onClear: onClear,
|
|
109
|
+
onClose: onClose,
|
|
110
|
+
calendarProps: calendarProps,
|
|
111
|
+
icon: props.icon,
|
|
112
|
+
size: props.size,
|
|
113
|
+
disabled: props.disabled,
|
|
114
|
+
className: props.className,
|
|
115
|
+
showRemove: props.showRemove,
|
|
116
|
+
errorsFrom: props.errorsFrom,
|
|
117
|
+
errorsTo: props.errorsTo,
|
|
118
|
+
inputPropsTo: extendedInputPropsTo,
|
|
119
|
+
inputPropsFrom: extendedInputPropsFrom,
|
|
120
|
+
isOpened: focus === 'from' ? isOpenedFrom : isOpenedTo,
|
|
121
|
+
style: props.style
|
|
122
|
+
}); }, [calendarProps, extendedInputPropsFrom, extendedInputPropsTo, focus, isOpenedFrom, isOpenedTo, onClear,
|
|
123
|
+
onClose, props.className, props.disabled, props.errorsFrom, props.errorsTo, props.icon, props.showRemove, props.size, props.style]);
|
|
124
|
+
return components.ui.renderView(props.view || 'form.DateRangeFieldView', viewProps);
|
|
119
125
|
}
|
|
120
126
|
DateRangeField.defaultProps = {
|
|
121
127
|
disabled: false,
|
|
@@ -126,7 +132,6 @@ DateRangeField.defaultProps = {
|
|
|
126
132
|
showRemove: true,
|
|
127
133
|
hasInitialFocus: false,
|
|
128
134
|
icon: true,
|
|
129
|
-
noBorder: false,
|
|
130
135
|
size: 'md',
|
|
131
136
|
maskOptions: {
|
|
132
137
|
from: (0, kit_1.maskitoDateOptionsGenerator)({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { MaskitoOptions } from '@maskito/core';
|
|
3
3
|
import { ICalendarProps } from '../../content/Calendar/Calendar';
|
|
4
4
|
import { IDateInputStateInput, IDateInputStateOutput } from '../../form/DateField/useDateInputState';
|
|
@@ -59,7 +59,25 @@ function DateTimeField(props) {
|
|
|
59
59
|
value: timeValue,
|
|
60
60
|
onSelect: onTimeSelect
|
|
61
61
|
}); }, [onClose, onTimeSelect, timeValue]);
|
|
62
|
-
|
|
62
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
63
|
+
isOpened: isOpened,
|
|
64
|
+
onClear: onClear,
|
|
65
|
+
onClose: onClose,
|
|
66
|
+
maskInputRef: maskInputRef,
|
|
67
|
+
inputProps: inputProps,
|
|
68
|
+
calendarProps: calendarProps,
|
|
69
|
+
timePanelViewProps: timePanelViewProps,
|
|
70
|
+
placeholder: props.placeholder,
|
|
71
|
+
size: props.size,
|
|
72
|
+
icon: props.icon,
|
|
73
|
+
errors: props.errors,
|
|
74
|
+
className: props.className,
|
|
75
|
+
showRemove: props.showRemove,
|
|
76
|
+
disabled: props.disabled,
|
|
77
|
+
style: props.style
|
|
78
|
+
}); }, [calendarProps, inputProps, isOpened, maskInputRef, onClear, onClose, props.className, props.disabled, props.errors, props.icon,
|
|
79
|
+
props.placeholder, props.showRemove, props.size, props.style, timePanelViewProps]);
|
|
80
|
+
return components.ui.renderView(props.view || 'form.DateTimeFieldView', viewProps);
|
|
63
81
|
}
|
|
64
82
|
DateTimeField.defaultProps = {
|
|
65
83
|
disabled: false,
|
|
@@ -141,7 +141,26 @@ function DateTimeRangeField(props) {
|
|
|
141
141
|
timeValueFrom,
|
|
142
142
|
timeValueTo,
|
|
143
143
|
]);
|
|
144
|
-
|
|
144
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
145
|
+
onClear: onClear,
|
|
146
|
+
onClose: onClose,
|
|
147
|
+
calendarProps: calendarProps,
|
|
148
|
+
timePanelViewProps: timePanelViewProps,
|
|
149
|
+
icon: props.icon,
|
|
150
|
+
size: props.size,
|
|
151
|
+
errorsFrom: props.errorsFrom,
|
|
152
|
+
errorsTo: props.errorsTo,
|
|
153
|
+
className: props.className,
|
|
154
|
+
showRemove: props.showRemove,
|
|
155
|
+
inputPropsTo: extendedInputPropsTo,
|
|
156
|
+
inputPropsFrom: extendedInputPropsFrom,
|
|
157
|
+
isOpened: focus === 'from' ? isOpenedFrom : isOpenedTo,
|
|
158
|
+
disabled: props.disabled,
|
|
159
|
+
style: props.style
|
|
160
|
+
}); }, [calendarProps, extendedInputPropsFrom, extendedInputPropsTo, focus, isOpenedFrom, isOpenedTo, onClear, onClose,
|
|
161
|
+
props.className, props.disabled, props.errorsFrom, props.errorsTo, props.icon, props.showRemove, props.size,
|
|
162
|
+
props.style, timePanelViewProps]);
|
|
163
|
+
return components.ui.renderView(props.view || 'form.DateTimeRangeFieldView', viewProps);
|
|
145
164
|
}
|
|
146
165
|
DateTimeRangeField.defaultProps = {
|
|
147
166
|
disabled: false,
|
|
@@ -199,10 +199,42 @@ function DropDownField(props) {
|
|
|
199
199
|
}
|
|
200
200
|
return renderItemView(item, 'default', null);
|
|
201
201
|
};
|
|
202
|
-
|
|
202
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
203
|
+
isAutoComplete: isAutoComplete,
|
|
204
|
+
items: items,
|
|
205
|
+
hoveredId: hoveredId,
|
|
206
|
+
selectedIds: selectedIds,
|
|
207
|
+
forwardedRef: forwardedRef,
|
|
208
|
+
searchInputProps: searchInputProps,
|
|
209
|
+
isOpened: isOpened,
|
|
210
|
+
isLoading: isLoading,
|
|
211
|
+
onOpen: onOpen,
|
|
212
|
+
selectedItems: selectedItems,
|
|
203
213
|
// TODO onFocus
|
|
204
214
|
// TODO onBlur
|
|
205
|
-
onReset: onReset,
|
|
215
|
+
onReset: onReset,
|
|
216
|
+
onClose: onClose,
|
|
217
|
+
renderItem: renderItem,
|
|
218
|
+
onItemRemove: onItemRemove,
|
|
219
|
+
hasGroup: hasGroup,
|
|
220
|
+
multiple: props.multiple,
|
|
221
|
+
isSearchAutoFocus: props.isSearchAutoFocus,
|
|
222
|
+
itemToSelectAll: normalizedItemToSelectAll,
|
|
223
|
+
className: props.className,
|
|
224
|
+
style: props.style,
|
|
225
|
+
size: props.size,
|
|
226
|
+
color: props.color,
|
|
227
|
+
outline: props.outline,
|
|
228
|
+
placeholder: props.placeholder,
|
|
229
|
+
showReset: props.showReset,
|
|
230
|
+
showEllipses: props.showEllipses,
|
|
231
|
+
errors: props.errors,
|
|
232
|
+
disabled: props.disabled
|
|
233
|
+
}); }, [isAutoComplete, items, hoveredId, selectedIds, searchInputProps, isOpened, isLoading, onOpen,
|
|
234
|
+
selectedItems, onReset, onClose, renderItem, onItemRemove, hasGroup, props.multiple, props.isSearchAutoFocus,
|
|
235
|
+
props.className, props.style, props.size, props.color, props.outline, props.placeholder, props.showReset, props.showEllipses,
|
|
236
|
+
props.errors, props.disabled, normalizedItemToSelectAll]);
|
|
237
|
+
return components.ui.renderView(props.view || 'form.DropDownFieldView', viewProps);
|
|
206
238
|
}
|
|
207
239
|
DropDownField.defaultProps = {
|
|
208
240
|
primaryKey: 'id',
|
|
@@ -10,12 +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;
|
|
17
|
-
|
|
18
|
-
var react_1 = __importDefault(require("react"));
|
|
40
|
+
var react_1 = __importStar(require("react"));
|
|
19
41
|
var hooks_1 = require("../../../hooks");
|
|
20
42
|
var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
|
|
21
43
|
var useInputTypeEmail_1 = __importDefault(require("./hooks/useInputTypeEmail"));
|
|
@@ -28,7 +50,35 @@ function EmailField(props) {
|
|
|
28
50
|
var _a;
|
|
29
51
|
return (__assign({ name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', onChange: onInputChange, type: 'text', placeholder: props.placeholder, disabled: props.disabled, required: props.required }, props.inputProps));
|
|
30
52
|
}, [onInputChange, props.disabled, props.input.name, props.input.value, props.inputProps, props.placeholder, props.required]);
|
|
31
|
-
|
|
53
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
54
|
+
inputProps: inputProps,
|
|
55
|
+
inputRef: currentInputRef,
|
|
56
|
+
onClear: onClear,
|
|
57
|
+
size: props.size,
|
|
58
|
+
errors: props.errors,
|
|
59
|
+
leadIcon: props.leadIcon,
|
|
60
|
+
showClear: props.showClear,
|
|
61
|
+
disabled: props.disabled,
|
|
62
|
+
input: props.input,
|
|
63
|
+
addonAfter: props.addonAfter,
|
|
64
|
+
addonBefore: props.addonBefore,
|
|
65
|
+
textAfter: props.textAfter,
|
|
66
|
+
textBefore: props.textBefore,
|
|
67
|
+
placeholder: props.placeholder,
|
|
68
|
+
required: props.required,
|
|
69
|
+
id: props.id,
|
|
70
|
+
maskOptions: props.maskOptions,
|
|
71
|
+
maskProps: props.maskProps,
|
|
72
|
+
onBlur: props.onBlur,
|
|
73
|
+
onFocus: props.onFocus,
|
|
74
|
+
onMouseDown: props.onMouseDown,
|
|
75
|
+
className: props.className,
|
|
76
|
+
style: props.style
|
|
77
|
+
}); }, [inputProps, currentInputRef, onClear, props.size, props.errors, props.leadIcon, props.showClear,
|
|
78
|
+
props.disabled, props.input, props.addonAfter, props.addonBefore, props.textAfter, props.textBefore,
|
|
79
|
+
props.placeholder, props.required, props.id, props.maskOptions, props.maskProps, props.onBlur, props.onFocus,
|
|
80
|
+
props.onMouseDown, props.className, props.style]);
|
|
81
|
+
return components.ui.renderView(props.view || 'form.InputFieldView', viewProps);
|
|
32
82
|
}
|
|
33
83
|
EmailField.defaultProps = {
|
|
34
84
|
size: 'md',
|
package/ui/form/Field/Field.js
CHANGED
|
@@ -62,10 +62,10 @@ function Field(props) {
|
|
|
62
62
|
var ComponentField = (0, isString_1["default"])(component)
|
|
63
63
|
? components.ui.getField("form.".concat(component))
|
|
64
64
|
: component;
|
|
65
|
-
var
|
|
65
|
+
var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign(__assign(__assign({}, fieldModel), props), fieldModel.fieldProps), fieldModel.searchFieldProps)); }, [fieldModel, props]);
|
|
66
66
|
// Render
|
|
67
67
|
return (0, isFunction_1["default"])(ComponentField)
|
|
68
|
-
? ComponentField(
|
|
69
|
-
: React.createElement(ComponentField, __assign({},
|
|
68
|
+
? ComponentField(viewProps)
|
|
69
|
+
: React.createElement(ComponentField, __assign({}, viewProps));
|
|
70
70
|
}
|
|
71
71
|
exports["default"] = React.memo(Field);
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
3
|
if (k2 === undefined) k2 = k;
|
|
15
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -39,11 +28,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
28
|
exports.__esModule = true;
|
|
40
29
|
var React = __importStar(require("react"));
|
|
41
30
|
var get_1 = __importDefault(require("lodash-es/get"));
|
|
31
|
+
var react_1 = require("react");
|
|
42
32
|
var hooks_1 = require("../../../hooks");
|
|
43
33
|
function FieldLayout(props) {
|
|
44
34
|
var components = (0, hooks_1.useComponents)();
|
|
45
35
|
// Error from state
|
|
46
36
|
var errors = (0, hooks_1.useForm)().formSelector(function (state) { return (0, get_1["default"])(state, 'errors.' + props.attribute); });
|
|
47
|
-
|
|
37
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
38
|
+
errors: props.errors || errors,
|
|
39
|
+
className: props.className,
|
|
40
|
+
label: props.label,
|
|
41
|
+
id: props.id,
|
|
42
|
+
required: props.required,
|
|
43
|
+
size: props.size,
|
|
44
|
+
children: props.children,
|
|
45
|
+
hint: props.hint
|
|
46
|
+
}); }, [errors, props.children, props.className, props.errors, props.hint, props.id, props.label, props.required, props.size]);
|
|
47
|
+
return components.ui.renderView(props.view || 'form.FieldLayoutView', viewProps);
|
|
48
48
|
}
|
|
49
49
|
exports["default"] = React.memo(FieldLayout);
|
|
@@ -46,7 +46,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
46
46
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
47
47
|
};
|
|
48
48
|
exports.__esModule = true;
|
|
49
|
-
var
|
|
49
|
+
var react_1 = __importStar(require("react"));
|
|
50
50
|
var isBoolean_1 = __importDefault(require("lodash-es/isBoolean"));
|
|
51
51
|
var range_1 = __importDefault(require("lodash-es/range"));
|
|
52
52
|
var concat_1 = __importDefault(require("lodash-es/concat"));
|
|
@@ -54,7 +54,6 @@ var last_1 = __importDefault(require("lodash-es/last"));
|
|
|
54
54
|
var isEmpty_1 = __importDefault(require("lodash-es/isEmpty"));
|
|
55
55
|
var get_1 = __importDefault(require("lodash-es/get"));
|
|
56
56
|
var react_use_1 = require("react-use");
|
|
57
|
-
var react_1 = require("react");
|
|
58
57
|
var hooks_1 = require("../../../hooks");
|
|
59
58
|
var Form_1 = require("../../form/Form/Form");
|
|
60
59
|
var form_1 = require("../../../actions/form");
|
|
@@ -120,7 +119,7 @@ function FieldList(props) {
|
|
|
120
119
|
provider: context.provider,
|
|
121
120
|
reducer: context.reducer
|
|
122
121
|
}); }, [context.provider, context.reducer, props.formId, props.model, props.prefix, props.size]);
|
|
123
|
-
var commonProps = {
|
|
122
|
+
var commonProps = (0, react_1.useMemo)(function () { return ({
|
|
124
123
|
showAdd: props.showAdd,
|
|
125
124
|
showRemove: props.showRemove,
|
|
126
125
|
size: props.size,
|
|
@@ -129,11 +128,13 @@ function FieldList(props) {
|
|
|
129
128
|
className: props.className,
|
|
130
129
|
tableClassName: props.tableClassName,
|
|
131
130
|
items: items
|
|
132
|
-
};
|
|
131
|
+
}); }, [items, props.className, props.disabled, props.required, props.showAdd, props.showRemove, props.size, props.tableClassName]);
|
|
132
|
+
var viewProps = (0, react_1.useMemo)(function () { return (__assign(__assign(__assign({}, commonProps), props.viewProps), { forwardedRef: nodeRef, onAdd: onAdd, hasAlternatingColors: props.hasAlternatingColors, style: props.style, children: props.children })); }, [commonProps, onAdd, props.children, props.hasAlternatingColors, props.style, props.viewProps]);
|
|
133
|
+
var itemViewProps = (0, react_1.useMemo)(function () { return (__assign(__assign(__assign({}, commonProps), props.itemViewProps), { onRemove: onRemove })); }, [commonProps, onRemove, props.itemViewProps]);
|
|
133
134
|
var FieldListView = props.view || components.ui.getView('form.FieldListView');
|
|
134
135
|
var FieldListItemView = props.itemView || components.ui.getView('form.FieldListItemView');
|
|
135
|
-
return (
|
|
136
|
-
|
|
136
|
+
return (react_1["default"].createElement(Form_1.FormContext.Provider, { value: contextValue },
|
|
137
|
+
react_1["default"].createElement(FieldListView, __assign({}, viewProps), !(0, isEmpty_1["default"])(storeToRowIndexMap) && (0, range_1["default"])(props.input.value || 0).map(function (index) { return (react_1["default"].createElement(FieldListItemView, __assign({}, itemViewProps, { key: isWithReduxForm ? storeToRowIndexMap[index] : index, prefix: props.input.name + '.' + index, rowIndex: index }))); }))));
|
|
137
138
|
}
|
|
138
139
|
FieldList.defaultProps = {
|
|
139
140
|
initialValues: null,
|
|
@@ -56,9 +56,14 @@ function FieldSet(props) {
|
|
|
56
56
|
reducer: context.reducer
|
|
57
57
|
}); }, [context.formId, context.model, context.prefix, context.provider, context.reducer,
|
|
58
58
|
context.size, props.formId, props.model, props.prefix, props.size]);
|
|
59
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
60
|
+
className: props.className,
|
|
61
|
+
label: props.label,
|
|
62
|
+
children: props.children
|
|
63
|
+
}); }, [props]);
|
|
59
64
|
var FieldSetView = props.view || components.ui.getView('form.FieldSetView');
|
|
60
65
|
return (react_1["default"].createElement(Form_1.FormContext.Provider, { value: contextValue },
|
|
61
|
-
react_1["default"].createElement(FieldSetView, __assign({
|
|
66
|
+
react_1["default"].createElement(FieldSetView, __assign({}, viewProps),
|
|
62
67
|
props.children,
|
|
63
68
|
(props.fields || []).map(function (field, index) { return (react_1["default"].createElement(Field_1["default"], __assign({ key: index }, ((0, isString_1["default"])(field) ? { attribute: field } : field), { prefix: contextValue.prefix }))); }))));
|
|
64
69
|
}
|
|
@@ -71,9 +71,16 @@ function FileFieldComponent(props) {
|
|
|
71
71
|
props.onChange(files);
|
|
72
72
|
}
|
|
73
73
|
}, [files, props]);
|
|
74
|
-
|
|
74
|
+
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
75
|
+
buttonView: props.buttonView,
|
|
76
|
+
buttonProps: __assign({ label: props.filesLayout === FilesLayout.wall
|
|
75
77
|
? __('Upload')
|
|
76
|
-
: __('Click to Upload'), size: props.size, disabled: props.disabled, onClick: onBrowse }, props.buttonProps),
|
|
78
|
+
: __('Click to Upload'), size: props.size, disabled: props.disabled, onClick: onBrowse }, props.buttonProps),
|
|
79
|
+
itemView: FileFieldItemView,
|
|
80
|
+
filesLayout: props.filesLayout,
|
|
81
|
+
className: props.className,
|
|
82
|
+
itemProps: props.itemProps,
|
|
83
|
+
items: files.map(function (file) {
|
|
77
84
|
var data = file.getResultHttpMessage() || {};
|
|
78
85
|
var item = {
|
|
79
86
|
uid: file.getUid(),
|
|
@@ -115,7 +122,10 @@ function FileFieldComponent(props) {
|
|
|
115
122
|
};
|
|
116
123
|
}
|
|
117
124
|
return item;
|
|
118
|
-
})
|
|
125
|
+
})
|
|
126
|
+
}); }, [FileFieldItemView, files, onBrowse, onRemove, props.buttonProps, props.buttonView, props.className, props.disabled,
|
|
127
|
+
props.filesLayout, props.imagesOnly, props.imagesProcessor, props.itemProps, props.showRemove, props.size]);
|
|
128
|
+
return (React.createElement(FileFieldView, __assign({}, viewProps)));
|
|
119
129
|
}
|
|
120
130
|
function FileField(props) {
|
|
121
131
|
if (process.env.IS_SSR) {
|
package/ui/form/Form/Form.d.ts
CHANGED