@steroidsjs/core 3.0.0-beta.110 → 3.0.0-beta.112

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/en.json CHANGED
@@ -942,5 +942,17 @@
942
942
  "Иконка, которая отобразится слева от заголовка": "",
943
943
  "Метод, который можно вызвать при login": "",
944
944
  "Метод, который можно вызвать при logout": "",
945
- "Получение состояние": ""
945
+ "Получение состояние": "",
946
+ "\nСписок с вложенными чекбоксами. Используется в формах для создания иерархической структуры и выбора нескольких значений.\n": "",
947
+ "\nСоздает список из сгруппированных полей формы.\nДля загрузки файлов с помощью `FileField` внутри строк `FieldList`, нужно использовать форму с флагом `useRedux`.\n": "",
948
+ " Текущая страница, используется для корректного отображения пагинации": "",
949
+ " Количество элементов на странице, используется для корректного отображения пагинации": "",
950
+ " Параметры роутинга": "",
951
+ "Расстояние вложенных элементов от родителя для каждого уровня": "",
952
+ "Первичный ключ для доступа к вложенным элементам": "",
953
+ "Устанавливать ли фокус и показывать календарь сразу после рендера страницы": "",
954
+ "Заголовок для колонки таблицы": "",
955
+ "Будет ли отображён item?": "",
956
+ "Устанавливать ли фокус и показывать панель времени сразу после рендера страницы": "",
957
+ "Флаг, определяющий раскрывать вложенные элементы по клику на весь элемент или только на иконку": ""
946
958
  }
@@ -16,6 +16,9 @@ exports.getFlattenedItems = void 0;
16
16
  var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
17
17
  var isArray_1 = __importDefault(require("lodash-es/isArray"));
18
18
  var isNil_1 = __importDefault(require("lodash-es/isNil"));
19
+ var difference_1 = __importDefault(require("lodash-es/difference"));
20
+ var intersection_1 = __importDefault(require("lodash-es/intersection"));
21
+ var pullAll_1 = __importDefault(require("lodash-es/pullAll"));
19
22
  var react_1 = require("react");
20
23
  var react_use_1 = require("react-use");
21
24
  var defaultProps = {
@@ -77,11 +80,25 @@ function useDataSelect(config) {
77
80
  if (!config.multiple && ids.length > 1) {
78
81
  ids = [ids[0]];
79
82
  }
80
- if (selectedItems.length === ids.length) {
81
- setSelectedIds([]);
83
+ // If all elements of selectedIds are equal to ids, remove all elements
84
+ if ((0, isEqual_1["default"])(selectedIds, ids)) {
85
+ setSelectedIdsInternal([]);
86
+ return;
87
+ }
88
+ // Check if all elements from ids are contained in selectedIds
89
+ var intersection = (0, intersection_1["default"])(selectedIds, ids);
90
+ // If all elements are contained, remove them from sourceArray
91
+ if ((0, isEqual_1["default"])(intersection, ids)) {
92
+ var prevSelectedIds = __spreadArray([], selectedIds, true);
93
+ (0, pullAll_1["default"])(prevSelectedIds, ids);
94
+ setSelectedIdsInternal((prevSelectedIds || []).sort());
82
95
  return;
83
96
  }
84
- setSelectedIdsInternal(ids.sort());
97
+ // If not all elements are contained, add new ids
98
+ if (!(0, isEqual_1["default"])(intersection, ids)) {
99
+ var difference = (0, difference_1["default"])(ids, selectedIds);
100
+ setSelectedIdsInternal(__spreadArray(__spreadArray([], selectedIds, true), difference, true).sort());
101
+ }
85
102
  }
86
103
  else {
87
104
  var id_1 = ids;
@@ -108,7 +125,7 @@ function useDataSelect(config) {
108
125
  setIsOpened(false);
109
126
  }
110
127
  }
111
- }, [config.multiple, selectedIds, selectedItems.length]);
128
+ }, [config.multiple, selectedIds]);
112
129
  var setSelectedAll = (0, react_1.useCallback)(function () {
113
130
  var itemsIds = flattenedItems.map(function (item) { return item.id; });
114
131
  setSelectedIds(itemsIds);
@@ -4,7 +4,7 @@ export interface ITreeItem extends IButtonProps {
4
4
  /**
5
5
  * Идентификатор узла
6
6
  */
7
- id?: string | number;
7
+ id: string | number | boolean;
8
8
  /**
9
9
  * Вложенные элементы
10
10
  * @example
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/core",
3
- "version": "3.0.0-beta.110",
3
+ "version": "3.0.0-beta.112",
4
4
  "description": "",
5
5
  "author": "Vladimir Kozhin <hello@kozhindev.com>",
6
6
  "repository": {
@@ -22,7 +22,7 @@ export interface ITaskPriority {
22
22
  type: string;
23
23
  }
24
24
  export interface IKanbanTask {
25
- id: string;
25
+ id: number;
26
26
  title: string;
27
27
  description?: string;
28
28
  fullDescription?: string;
@@ -46,7 +46,7 @@ export interface IDragEndResult {
46
46
  combine: null;
47
47
  }
48
48
  export interface IKanbanColumn {
49
- id: string;
49
+ id: number;
50
50
  title: string;
51
51
  tasks: IKanbanTask[];
52
52
  }
@@ -111,8 +111,8 @@ export interface IKanbanColumnViewProps {
111
111
  droppableComponent: any;
112
112
  draggableComponent: any;
113
113
  task?: IKanbanTask;
114
- renderTask: (task: IKanbanTask, columnId: string, index: number) => JSX.Element;
115
- onOpenCreateTaskModal: (columnId: string) => void;
114
+ renderTask: (task: IKanbanTask, columnId: number, index: number) => JSX.Element;
115
+ onOpenCreateTaskModal: (columnId: number) => void;
116
116
  }
117
117
  export type IKanbanViewProps = IKanbanProps;
118
118
  export default function Kanban(props: IKanbanProps): JSX.Element;
@@ -94,7 +94,7 @@ function AutoCompleteField(props) {
94
94
  }, [onClose, props.inputProps, props.isOpened]);
95
95
  var inputProps = (0, react_1.useMemo)(function () {
96
96
  var _a;
97
- return (__assign(__assign({}, props.inputProps), { type: 'text', name: props.input.name, defaultValue: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', placeholder: props.placeholder, disabled: props.disabled, onChange: onChange, onBlur: onBlur }));
97
+ return (__assign(__assign({}, props.inputProps), { type: 'text', name: props.input.name, value: (_a = props.input.value) !== null && _a !== void 0 ? _a : '', placeholder: props.placeholder, disabled: props.disabled, onChange: onChange, onBlur: onBlur }));
98
98
  }, [onBlur, onChange, props.disabled, props.input.name, props.input.value, props.inputProps, props.placeholder]);
99
99
  //Sync with form
100
100
  (0, react_1.useEffect)(function () {
@@ -29,6 +29,7 @@ export interface ICheckboxFieldViewProps extends ICheckboxFieldProps, IFieldWrap
29
29
  checked: boolean;
30
30
  onChange: (value: string | React.ChangeEvent) => void;
31
31
  disabled: boolean;
32
+ required?: boolean;
32
33
  };
33
34
  }
34
35
  declare const _default: import("../Field/fieldWrapper").FieldWrapperComponent<ICheckboxFieldProps>;
@@ -53,8 +53,8 @@ function CheckboxField(props) {
53
53
  }, [props]);
54
54
  var inputProps = (0, react_1.useMemo)(function () {
55
55
  var _a, _b;
56
- 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 }, props.inputProps));
57
- }, [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]);
56
+ 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
+ }, [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
58
  return components.ui.renderView(props.view || 'form.CheckboxFieldView', __assign(__assign({}, props), { inputProps: inputProps }));
59
59
  }
60
60
  CheckboxField.defaultProps = {
@@ -0,0 +1,68 @@
1
+ /// <reference types="react" />
2
+ import { IPreparedTreeItem } from '../../../hooks/useTree';
3
+ import Enum from '../../../base/Enum';
4
+ import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../../../ui/form/Field/fieldWrapper';
5
+ import { IDataProviderConfig } from '../../../hooks/useDataProvider';
6
+ import { IDataSelectConfig } from '../../../hooks/useDataSelect';
7
+ import { ICheckboxFieldViewProps } from '../CheckboxField/CheckboxField';
8
+ import { ITreeProps } from '../../nav/Tree/Tree';
9
+ type CheckboxTreeItems = string | ({
10
+ new (): Enum;
11
+ }) | (string | number | {
12
+ id: string | number | boolean;
13
+ label: string;
14
+ color?: string;
15
+ [key: string]: any;
16
+ })[];
17
+ /**
18
+ * CheckboxTreeField
19
+ *
20
+ * Список с вложенными чекбоксами. Используется в формах для создания иерархической структуры и выбора нескольких значений.
21
+ */
22
+ export interface ICheckboxTreeFieldProps extends IFieldWrapperInputProps, Omit<IDataProviderConfig, 'items'>, Omit<IDataSelectConfig, 'items'>, IUiComponent, Pick<ITreeProps, 'levelPadding' | 'alwaysOpened'> {
23
+ /**
24
+ * Свойства для элемента input
25
+ * @example { onKeyDown: ... }
26
+ */
27
+ inputProps?: any;
28
+ /**
29
+ * Коллекция элементов
30
+ * @example
31
+ * [
32
+ * {
33
+ * id: 1,
34
+ * label: 'Krasnoyarsk',
35
+ * color: 'red'
36
+ * },
37
+ * {
38
+ * id: 2,
39
+ * label: 'Moscow',
40
+ * color: 'purple'
41
+ * }
42
+ * ]
43
+ */
44
+ items: CheckboxTreeItems;
45
+ /**
46
+ * Первичный ключ для доступа к вложенным элементам
47
+ */
48
+ primaryKey?: string;
49
+ [key: string]: any;
50
+ }
51
+ export interface ICheckboxTreeFieldViewProps extends IFieldWrapperOutputProps {
52
+ items: {
53
+ id: number | string | boolean;
54
+ label?: string;
55
+ isHovered: boolean;
56
+ color?: string;
57
+ disabled?: boolean;
58
+ required?: boolean;
59
+ } & IPreparedTreeItem[];
60
+ selectedIds: (PrimaryKey | any)[];
61
+ onItemSelect: (checkbox: IPreparedTreeItem) => void;
62
+ renderCheckbox: (checkboxProps: ICheckboxFieldViewProps) => JSX.Element;
63
+ size?: Size;
64
+ levelPadding: number;
65
+ }
66
+ export declare const getNestedItemsIds: (item: any, groupAttribute: any) => any[];
67
+ declare const _default: import("../../../ui/form/Field/fieldWrapper").FieldWrapperComponent<ICheckboxTreeFieldProps>;
68
+ export default _default;
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ exports.__esModule = true;
40
+ exports.getNestedItemsIds = void 0;
41
+ var React = __importStar(require("react"));
42
+ var react_1 = require("react");
43
+ var react_use_1 = require("react-use");
44
+ var isArray_1 = __importDefault(require("lodash-es/isArray"));
45
+ var hooks_1 = require("../../../hooks");
46
+ var fieldWrapper_1 = __importDefault(require("../../../ui/form/Field/fieldWrapper"));
47
+ var getNestedItemsIds = function (item, groupAttribute) {
48
+ if (item.disabled) {
49
+ return [];
50
+ }
51
+ var _a = item, _b = groupAttribute, _c = _a[_b], nestedItems = _c === void 0 ? [] : _c;
52
+ var result = [item.id];
53
+ if (groupAttribute && (0, isArray_1["default"])(nestedItems)) {
54
+ nestedItems.reduce(function (acc, nestedItem) {
55
+ if ((0, isArray_1["default"])(nestedItem[groupAttribute])) {
56
+ acc.push.apply(acc, (0, exports.getNestedItemsIds)(nestedItem, groupAttribute));
57
+ }
58
+ else if (!nestedItem.disabled) {
59
+ acc.push(nestedItem.id);
60
+ }
61
+ return acc;
62
+ }, result);
63
+ }
64
+ return result.sort();
65
+ };
66
+ exports.getNestedItemsIds = getNestedItemsIds;
67
+ function CheckboxTreeField(props) {
68
+ var components = (0, hooks_1.useComponents)();
69
+ var inputSelectedIds = (0, react_1.useMemo)(function () { return props.selectedIds || [].concat(props.input.value || []); }, [props.input.value, props.selectedIds]);
70
+ // Data Provider
71
+ var items = (0, hooks_1.useDataProvider)({
72
+ items: props.items
73
+ }).items;
74
+ // Tree items
75
+ var treeItems = (0, hooks_1.useTree)({
76
+ items: items,
77
+ autoOpenLevels: 0,
78
+ alwaysOpened: props.alwaysOpened
79
+ }).treeItems;
80
+ // Data select
81
+ var _a = (0, hooks_1.useDataSelect)({
82
+ selectedIds: inputSelectedIds,
83
+ multiple: true,
84
+ primaryKey: props.primaryKey,
85
+ items: treeItems,
86
+ inputValue: props.input.value
87
+ }), selectedIds = _a.selectedIds, setSelectedIds = _a.setSelectedIds;
88
+ var onItemSelect = (0, react_1.useCallback)(function (checkbox) {
89
+ if (checkbox.hasItems) {
90
+ var selectedItemIds = (0, exports.getNestedItemsIds)(checkbox, props.primaryKey);
91
+ setSelectedIds(selectedItemIds);
92
+ }
93
+ else {
94
+ setSelectedIds(checkbox.id);
95
+ }
96
+ }, [props.primaryKey, setSelectedIds]);
97
+ // Sync with form
98
+ (0, react_1.useEffect)(function () {
99
+ props.input.onChange.call(null, selectedIds);
100
+ if (props.onChange) {
101
+ props.onChange(selectedIds);
102
+ }
103
+ }, [props, props.input.onChange, selectedIds]);
104
+ var onReset = (0, react_1.useCallback)(function () {
105
+ setSelectedIds([]);
106
+ }, [setSelectedIds]);
107
+ // Reset selected ids on form reset
108
+ var prevInputValue = (0, react_use_1.usePrevious)(props.input.value);
109
+ (0, react_use_1.useUpdateEffect)(function () {
110
+ // if form reset
111
+ if (prevInputValue && props.input.value === undefined && selectedIds.length > 0) {
112
+ onReset();
113
+ }
114
+ }, [onReset, prevInputValue, props.input.value, selectedIds.length]);
115
+ var CheckboxFieldView = components.ui.getView('form.CheckboxFieldView');
116
+ var renderCheckbox = function (checkboxProps) { return (React.createElement(CheckboxFieldView, __assign({}, checkboxProps))); };
117
+ return components.ui.renderView(props.view || 'form.CheckboxTreeFieldView', __assign(__assign({}, props), { items: treeItems, onItemSelect: onItemSelect, selectedIds: selectedIds, levelPadding: props.levelPadding, renderCheckbox: renderCheckbox }));
118
+ }
119
+ CheckboxTreeField.defaultProps = {
120
+ disabled: false,
121
+ required: false,
122
+ className: '',
123
+ levelPadding: 32,
124
+ alwaysOpened: false,
125
+ primaryKey: 'items'
126
+ };
127
+ exports["default"] = (0, fieldWrapper_1["default"])('CheckboxTreeField', CheckboxTreeField);
@@ -0,0 +1,2 @@
1
+ import CheckboxTreeField from './CheckboxTreeField';
2
+ export default CheckboxTreeField;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ exports.__esModule = true;
6
+ var CheckboxTreeField_1 = __importDefault(require("./CheckboxTreeField"));
7
+ exports["default"] = CheckboxTreeField_1["default"];
@@ -16,6 +16,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  exports.__esModule = true;
17
17
  var react_1 = require("react");
18
18
  var react_use_1 = require("react-use");
19
+ var isNil_1 = __importDefault(require("lodash-es/isNil"));
19
20
  var dayjs_1 = __importDefault(require("dayjs"));
20
21
  var calendar_1 = require("@steroidsjs/core/utils/calendar");
21
22
  function useDateRange(props) {
@@ -61,6 +62,9 @@ function useDateRange(props) {
61
62
  if (!props.hasInitialFocus && isFirstMount) {
62
63
  return;
63
64
  }
65
+ if ((0, isNil_1["default"])(props.inputFrom.value) && (0, isNil_1["default"])(props.inputTo.value)) {
66
+ return;
67
+ }
64
68
  if (props.useSmartFocus) {
65
69
  if (focus === 'from' && !valueToRef.current && prevValueFrom !== props.inputFrom.value) {
66
70
  valueFromRef.current = props.inputFrom.value;
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../../form/Field/fieldWrapper';
3
3
  export interface IFieldListItem extends IFieldWrapperInputProps, IUiComponent {
4
4
  /**
5
- * Будет ли отображён item ?
5
+ * Будет ли отображён item?
6
6
  * @example true
7
7
  */
8
8
  visible?: boolean;
@@ -21,7 +21,7 @@ export interface IFieldListItem extends IFieldWrapperInputProps, IUiComponent {
21
21
  */
22
22
  headerClassName?: CssClassName;
23
23
  /**
24
- * Заголовок для колонки таблицы.
24
+ * Заголовок для колонки таблицы
25
25
  */
26
26
  title?: string;
27
27
  [key: string]: any;
@@ -30,6 +30,7 @@ export interface IFieldListItem extends IFieldWrapperInputProps, IUiComponent {
30
30
  * FieldList
31
31
  *
32
32
  * Создает список из сгруппированных полей формы.
33
+ * Для загрузки файлов с помощью `FileField` внутри строк `FieldList`, нужно использовать форму с флагом `useRedux`.
33
34
  */
34
35
  export interface IFieldListProps extends IFieldWrapperInputProps, IUiComponent {
35
36
  /**
@@ -69,7 +69,7 @@ function FieldList(props) {
69
69
  var isWithReduxForm = (0, hooks_1.useSelector)(function (state) { return (0, get_1["default"])(state, ['form', context.formId]) || null; });
70
70
  var dispatch = context.provider.useDispatch();
71
71
  // Mapper for preserving the correct sequence of rows on the UI
72
- var _b = (0, react_1.useState)([]), storeToRowIndexMap = _b[0], setStoreToRowIndexMap = _b[1];
72
+ var _b = (0, react_1.useState)((0, range_1["default"])(props.input.value) || []), storeToRowIndexMap = _b[0], setStoreToRowIndexMap = _b[1];
73
73
  var addRowIndexes = (0, react_1.useCallback)(function (rowsCount) {
74
74
  setStoreToRowIndexMap(function (prevMap) {
75
75
  var lastIndex = !(0, isEmpty_1["default"])(prevMap) ? (0, last_1["default"])(prevMap) + 1 : 0;
@@ -4,6 +4,7 @@ import BlankField from './BlankField';
4
4
  import Button from './Button';
5
5
  import CheckboxField from './CheckboxField';
6
6
  import CheckboxListField from './CheckboxListField';
7
+ import CheckboxTreeField from './CheckboxTreeField';
7
8
  import DateField from './DateField';
8
9
  import DateRangeField from './DateRangeField';
9
10
  import DateTimeField from './DateTimeField';
@@ -30,13 +31,14 @@ import TimeField from './TimeField';
30
31
  import RateField from './RateField';
31
32
  import MaskField from './MaskField';
32
33
  import EmailField from './EmailField';
33
- export { AutoCompleteField, BlankField, Button, CheckboxField, CheckboxListField, DateField, DateRangeField, DateTimeField, DateTimeRangeField, DropDownField, Field, FieldLayout, FieldList, FieldSet, FileField, Form, HtmlField, InputField, NavField, NumberField, PasswordField, RadioField, RadioListField, ReCaptchaField, SliderField, SwitcherField, TextField, TimeField, RateField, MaskField, EmailField, };
34
+ export { AutoCompleteField, BlankField, Button, CheckboxField, CheckboxListField, CheckboxTreeField, DateField, DateRangeField, DateTimeField, DateTimeRangeField, DropDownField, Field, FieldLayout, FieldList, FieldSet, FileField, Form, HtmlField, InputField, NavField, NumberField, PasswordField, RadioField, RadioListField, ReCaptchaField, SliderField, SwitcherField, TextField, TimeField, RateField, MaskField, EmailField, };
34
35
  declare const _default: {
35
36
  AutoCompleteField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./AutoCompleteField/AutoCompleteField").IAutoCompleteFieldProps>;
36
37
  BlankField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./BlankField/BlankField").IBlankFieldProps>;
37
38
  Button: typeof Button;
38
39
  CheckboxField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./CheckboxField/CheckboxField").ICheckboxFieldProps>;
39
40
  CheckboxListField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./CheckboxListField/CheckboxListField").ICheckboxListFieldProps>;
41
+ CheckboxTreeField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./CheckboxTreeField/CheckboxTreeField").ICheckboxTreeFieldProps>;
40
42
  DateField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./DateField/DateField").IDateFieldProps>;
41
43
  DateRangeField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./DateRangeField/DateRangeField").IDateRangeFieldProps>;
42
44
  DateTimeField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./DateTimeField/DateTimeField").IDateTimeFieldProps>;
package/ui/form/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  exports.__esModule = true;
6
- exports.EmailField = exports.MaskField = exports.RateField = exports.TimeField = exports.TextField = exports.SwitcherField = exports.SliderField = exports.ReCaptchaField = exports.RadioListField = exports.RadioField = exports.PasswordField = exports.NumberField = exports.NavField = exports.InputField = exports.HtmlField = exports.Form = exports.FileField = exports.FieldSet = exports.FieldList = exports.FieldLayout = exports.Field = exports.DropDownField = exports.DateTimeRangeField = exports.DateTimeField = exports.DateRangeField = exports.DateField = exports.CheckboxListField = exports.CheckboxField = exports.Button = exports.BlankField = exports.AutoCompleteField = void 0;
6
+ exports.EmailField = exports.MaskField = exports.RateField = exports.TimeField = exports.TextField = exports.SwitcherField = exports.SliderField = exports.ReCaptchaField = exports.RadioListField = exports.RadioField = exports.PasswordField = exports.NumberField = exports.NavField = exports.InputField = exports.HtmlField = exports.Form = exports.FileField = exports.FieldSet = exports.FieldList = exports.FieldLayout = exports.Field = exports.DropDownField = exports.DateTimeRangeField = exports.DateTimeField = exports.DateRangeField = exports.DateField = exports.CheckboxTreeField = exports.CheckboxListField = exports.CheckboxField = exports.Button = exports.BlankField = exports.AutoCompleteField = void 0;
7
7
  var AutoCompleteField_1 = __importDefault(require("./AutoCompleteField"));
8
8
  exports.AutoCompleteField = AutoCompleteField_1["default"];
9
9
  var BlankField_1 = __importDefault(require("./BlankField"));
@@ -14,6 +14,8 @@ var CheckboxField_1 = __importDefault(require("./CheckboxField"));
14
14
  exports.CheckboxField = CheckboxField_1["default"];
15
15
  var CheckboxListField_1 = __importDefault(require("./CheckboxListField"));
16
16
  exports.CheckboxListField = CheckboxListField_1["default"];
17
+ var CheckboxTreeField_1 = __importDefault(require("./CheckboxTreeField"));
18
+ exports.CheckboxTreeField = CheckboxTreeField_1["default"];
17
19
  var DateField_1 = __importDefault(require("./DateField"));
18
20
  exports.DateField = DateField_1["default"];
19
21
  var DateRangeField_1 = __importDefault(require("./DateRangeField"));
@@ -72,6 +74,7 @@ exports["default"] = {
72
74
  Button: Button_1["default"],
73
75
  CheckboxField: CheckboxField_1["default"],
74
76
  CheckboxListField: CheckboxListField_1["default"],
77
+ CheckboxTreeField: CheckboxTreeField_1["default"],
75
78
  DateField: DateField_1["default"],
76
79
  DateRangeField: DateRangeField_1["default"],
77
80
  DateTimeField: DateTimeField_1["default"],
@@ -41,6 +41,11 @@ export interface ITreeProps extends Omit<ITreeConfig, 'currentPage' | 'itemsOnPa
41
41
  * @example 32
42
42
  */
43
43
  levelPadding?: number;
44
+ /**
45
+ * Флаг, определяющий раскрывать вложенные элементы по клику на весь элемент или только на иконку
46
+ * @example false
47
+ */
48
+ hasIconExpandOnly?: boolean;
44
49
  [key: string]: any;
45
50
  }
46
51
  declare function Tree(props: ITreeProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
@@ -51,6 +56,7 @@ declare namespace Tree {
51
56
  autoSave: boolean;
52
57
  level: number;
53
58
  levelPadding: number;
59
+ hasIconExpandOnly: boolean;
54
60
  };
55
61
  }
56
62
  export default Tree;
@@ -32,5 +32,6 @@ Tree.defaultProps = {
32
32
  autoOpenLevels: 1,
33
33
  autoSave: false,
34
34
  level: 0,
35
- levelPadding: 32
35
+ levelPadding: 32,
36
+ hasIconExpandOnly: false
36
37
  };