@steroidsjs/core 3.0.24 → 3.0.26
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 +17 -0
- package/en.json +1 -0
- package/package.json +1 -1
- package/ui/form/CheckboxTreeField/CheckboxTreeField.d.ts +5 -0
- package/ui/form/CheckboxTreeField/CheckboxTreeField.js +5 -2
- package/ui/form/Field/fieldWrapper.js +3 -1
- package/ui/form/FieldLayout/FieldLayout.js +1 -1
package/docs-autogen-result.json
CHANGED
|
@@ -16002,6 +16002,15 @@
|
|
|
16002
16002
|
"example": null,
|
|
16003
16003
|
"defaultValue": null
|
|
16004
16004
|
},
|
|
16005
|
+
{
|
|
16006
|
+
"name": "itemView",
|
|
16007
|
+
"decorators": [],
|
|
16008
|
+
"description": "View компонент для элемента дерева",
|
|
16009
|
+
"required": false,
|
|
16010
|
+
"type": "React.ReactNode | {}",
|
|
16011
|
+
"example": null,
|
|
16012
|
+
"defaultValue": null
|
|
16013
|
+
},
|
|
16005
16014
|
{
|
|
16006
16015
|
"name": "items",
|
|
16007
16016
|
"decorators": [],
|
|
@@ -16255,6 +16264,14 @@
|
|
|
16255
16264
|
"type": "IInputParams",
|
|
16256
16265
|
"example": null
|
|
16257
16266
|
},
|
|
16267
|
+
{
|
|
16268
|
+
"name": "itemView",
|
|
16269
|
+
"decorators": [],
|
|
16270
|
+
"description": "",
|
|
16271
|
+
"required": true,
|
|
16272
|
+
"type": "React.ReactNode | {}",
|
|
16273
|
+
"example": null
|
|
16274
|
+
},
|
|
16258
16275
|
{
|
|
16259
16276
|
"name": "items",
|
|
16260
16277
|
"decorators": [],
|
package/en.json
CHANGED
|
@@ -998,6 +998,7 @@
|
|
|
998
998
|
"Компоненты для подключения wysiwyg редактора": "",
|
|
999
999
|
"Текст при отсутствии элементов": "",
|
|
1000
1000
|
"Отображать чекбоксы только на узлах, не имеющих вложенных элементов": "",
|
|
1001
|
+
"View компонент для элемента дерева": "",
|
|
1001
1002
|
"Разделитель для даты и времени, не влияет на отображение": "",
|
|
1002
1003
|
"Начальные элементы списка": "",
|
|
1003
1004
|
"Значения для полей при нажатии кнопки 'Добавить'": "",
|
package/package.json
CHANGED
|
@@ -50,6 +50,10 @@ export interface ICheckboxTreeFieldProps extends IFieldWrapperInputProps, Omit<I
|
|
|
50
50
|
* Отображать чекбоксы только на узлах, не имеющих вложенных элементов
|
|
51
51
|
*/
|
|
52
52
|
hasOnlyLeafCheckboxes?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* View компонент для элемента дерева
|
|
55
|
+
*/
|
|
56
|
+
itemView?: CustomView;
|
|
53
57
|
[key: string]: any;
|
|
54
58
|
}
|
|
55
59
|
export interface ICheckboxTreeFieldViewProps extends IFieldWrapperOutputProps, Pick<ITreeProps, 'levelPadding' | 'hasIconExpandOnly' | 'customIcon'> {
|
|
@@ -66,6 +70,7 @@ export interface ICheckboxTreeFieldViewProps extends IFieldWrapperOutputProps, P
|
|
|
66
70
|
renderCheckbox: (checkboxProps: ICheckboxFieldViewProps) => JSX.Element;
|
|
67
71
|
size?: Size;
|
|
68
72
|
hasOnlyLeafCheckboxes?: boolean;
|
|
73
|
+
itemView: CustomView;
|
|
69
74
|
}
|
|
70
75
|
export declare const getNestedItemsIds: (item: any, groupAttribute: any, hasOnlyLeafCheckboxes?: boolean) => any[];
|
|
71
76
|
declare const _default: import("../../../ui/form/Field/fieldWrapper").FieldWrapperComponent<ICheckboxTreeFieldProps>;
|
|
@@ -67,6 +67,7 @@ var getNestedItemsIds = function (item, groupAttribute, hasOnlyLeafCheckboxes) {
|
|
|
67
67
|
exports.getNestedItemsIds = getNestedItemsIds;
|
|
68
68
|
function CheckboxTreeField(props) {
|
|
69
69
|
var components = (0, hooks_1.useComponents)();
|
|
70
|
+
var TreeItemView = props.itemView || components.ui.getView('nav.TreeItemView');
|
|
70
71
|
var inputSelectedIds = (0, react_1.useMemo)(function () { return props.selectedIds || [].concat(props.input.value || []); }, [props.input.value, props.selectedIds]);
|
|
71
72
|
// Data Provider
|
|
72
73
|
var items = (0, hooks_1.useDataProvider)({
|
|
@@ -129,8 +130,10 @@ function CheckboxTreeField(props) {
|
|
|
129
130
|
size: props.size,
|
|
130
131
|
levelPadding: props.levelPadding,
|
|
131
132
|
hasOnlyLeafCheckboxes: props.hasOnlyLeafCheckboxes,
|
|
132
|
-
hasIconExpandOnly: props.hasIconExpandOnly
|
|
133
|
-
|
|
133
|
+
hasIconExpandOnly: props.hasIconExpandOnly,
|
|
134
|
+
itemView: TreeItemView
|
|
135
|
+
}); }, [treeItems, onItemSelect, selectedIds, renderCheckbox, props.size, props.levelPadding, props.hasOnlyLeafCheckboxes,
|
|
136
|
+
props.hasIconExpandOnly, TreeItemView]);
|
|
134
137
|
return components.ui.renderView(props.view || 'form.CheckboxTreeFieldView', viewProps);
|
|
135
138
|
}
|
|
136
139
|
CheckboxTreeField.defaultProps = {
|
|
@@ -125,6 +125,8 @@ function fieldWrapper(componentId, Component, optionsConfig) {
|
|
|
125
125
|
return obj;
|
|
126
126
|
}, {});
|
|
127
127
|
var attribute = Object.values(attributesProps)[0];
|
|
128
|
+
// Get full path to the field, it is necessary for displaying errors in nested fields, for example, in FieldList
|
|
129
|
+
var errorsAttribute = [props.prefix, attribute].filter(Boolean).join('.');
|
|
128
130
|
// Get UI props and create Field Class dynamically (for add field props - input, errors, model, ...)
|
|
129
131
|
var metaProps = (0, react_1.useMemo)(function () { return components.ui.getFieldProps(componentId, model, attribute); }, [components.ui, attribute, model]);
|
|
130
132
|
if (!Component.DynamicField) {
|
|
@@ -136,7 +138,7 @@ function fieldWrapper(componentId, Component, optionsConfig) {
|
|
|
136
138
|
return components.ui.renderView(Component.DynamicField, __assign(__assign({}, props), { size: props.size || DEFAULT_SIZE }));
|
|
137
139
|
}
|
|
138
140
|
var size = props.size || context.size || DEFAULT_SIZE;
|
|
139
|
-
return components.ui.renderView(FieldLayout_1["default"], __assign(__assign({}, attributesProps), { size: size, className: props.fieldLayoutClassName, required: (0, has_1["default"])(props, 'required') ? props.required : metaProps.required, label: options.label === false ? null : ((0, has_1["default"])(props, 'label') ? props.label : metaProps.label), hint: (0, has_1["default"])(props, 'hint') ? props.hint : metaProps.hint, errors: props.errors, id: inputId, children: (React.createElement(Component.DynamicField, __assign({}, props, { id: inputId, size: size }))) }));
|
|
141
|
+
return components.ui.renderView(FieldLayout_1["default"], __assign(__assign({}, attributesProps), { errorsAttribute: errorsAttribute, size: size, className: props.fieldLayoutClassName, required: (0, has_1["default"])(props, 'required') ? props.required : metaProps.required, label: options.label === false ? null : ((0, has_1["default"])(props, 'label') ? props.label : metaProps.label), hint: (0, has_1["default"])(props, 'hint') ? props.hint : metaProps.hint, errors: props.errors, id: inputId, children: (React.createElement(Component.DynamicField, __assign({}, props, { id: inputId, size: size }))) }));
|
|
140
142
|
};
|
|
141
143
|
NewComponent.WrappedComponent = Component;
|
|
142
144
|
NewComponent.displayName = componentId;
|
|
@@ -33,7 +33,7 @@ var hooks_1 = require("../../../hooks");
|
|
|
33
33
|
function FieldLayout(props) {
|
|
34
34
|
var components = (0, hooks_1.useComponents)();
|
|
35
35
|
// Error from state
|
|
36
|
-
var errors = (0, hooks_1.useForm)().formSelector(function (state) { return (0, get_1["default"])(state, 'errors.' + props.
|
|
36
|
+
var errors = (0, hooks_1.useForm)().formSelector(function (state) { return (0, get_1["default"])(state, 'errors.' + props.errorsAttribute); });
|
|
37
37
|
var viewProps = (0, react_1.useMemo)(function () { return ({
|
|
38
38
|
errors: props.errors || errors,
|
|
39
39
|
className: props.className,
|