@steroidsjs/core 3.0.1 → 3.0.3

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.
Files changed (85) hide show
  1. package/docs-autogen-result.json +97 -10
  2. package/en.json +6 -0
  3. package/hooks/useApplication.d.ts +1 -1
  4. package/package.json +1 -1
  5. package/ui/content/DropDown/DropDown.js +1 -3
  6. package/ui/content/Kanban/Kanban.d.ts +7 -1
  7. package/ui/content/Kanban/Kanban.js +2 -1
  8. package/ui/content/Kanban/hooks/useKanban.d.ts +6 -0
  9. package/ui/content/Kanban/hooks/useKanban.js +2 -1
  10. package/ui/content/Slider/Slider.d.ts +2 -1
  11. package/ui/content/Slider/Slider.js +19 -3
  12. package/ui/form/AutoCompleteField/AutoCompleteField.d.ts +1 -2
  13. package/ui/form/AutoCompleteField/AutoCompleteField.js +24 -11
  14. package/ui/form/Button/Button.d.ts +1 -1
  15. package/ui/form/Button/Button.js +29 -5
  16. package/ui/form/CheckboxField/CheckboxField.d.ts +1 -1
  17. package/ui/form/CheckboxField/CheckboxField.js +13 -4
  18. package/ui/form/CheckboxListField/CheckboxListField.d.ts +2 -1
  19. package/ui/form/CheckboxListField/CheckboxListField.js +13 -4
  20. package/ui/form/CheckboxTreeField/CheckboxTreeField.d.ts +1 -1
  21. package/ui/form/CheckboxTreeField/CheckboxTreeField.js +9 -1
  22. package/ui/form/DateField/DateField.js +3 -1
  23. package/ui/form/DateRangeField/DateRangeField.js +18 -13
  24. package/ui/form/DateTimeField/DateTimeField.d.ts +1 -1
  25. package/ui/form/DateTimeField/DateTimeField.js +19 -1
  26. package/ui/form/DateTimeRangeField/DateTimeRangeField.js +20 -1
  27. package/ui/form/DropDownField/DropDownField.js +34 -2
  28. package/ui/form/EmailField/EmailField.js +53 -3
  29. package/ui/form/Field/Field.js +3 -3
  30. package/ui/form/FieldLayout/FieldLayout.js +12 -12
  31. package/ui/form/FieldList/FieldList.d.ts +1 -1
  32. package/ui/form/FieldList/FieldList.js +7 -6
  33. package/ui/form/FieldSet/FieldSet.js +6 -1
  34. package/ui/form/FileField/FileField.js +13 -3
  35. package/ui/form/Form/Form.d.ts +1 -1
  36. package/ui/form/Form/Form.js +12 -14
  37. package/ui/form/HtmlField/HtmlField.d.ts +20 -1
  38. package/ui/form/HtmlField/HtmlField.js +11 -12
  39. package/ui/form/ImageField/ImageField.js +12 -8
  40. package/ui/form/InputField/InputField.js +24 -3
  41. package/ui/form/MaskField/MaskField.js +1 -13
  42. package/ui/form/NavField/NavField.js +12 -2
  43. package/ui/form/NumberField/NumberField.js +16 -3
  44. package/ui/form/PasswordField/PasswordField.js +15 -2
  45. package/ui/form/RadioField/RadioField.d.ts +1 -1
  46. package/ui/form/RadioField/RadioField.js +15 -4
  47. package/ui/form/RadioListField/RadioListField.d.ts +2 -1
  48. package/ui/form/RadioListField/RadioListField.js +14 -4
  49. package/ui/form/RateField/RateField.js +11 -1
  50. package/ui/form/ReCaptchaField/ReCaptchaField.js +6 -12
  51. package/ui/form/SliderField/SliderField.d.ts +1 -1
  52. package/ui/form/SliderField/SliderField.js +5 -3
  53. package/ui/form/SwitcherField/SwitcherField.d.ts +1 -1
  54. package/ui/form/SwitcherField/SwitcherField.js +14 -4
  55. package/ui/form/TextField/TextField.js +2 -1
  56. package/ui/form/TimeField/TimeField.js +3 -1
  57. package/ui/form/TimeRangeField/TimeRangeField.js +4 -1
  58. package/ui/layout/Notifications/Notifications.d.ts +1 -1
  59. package/ui/layout/Notifications/Notifications.js +7 -3
  60. package/ui/layout/ProgressBar/ProgressBar.d.ts +1 -1
  61. package/ui/layout/ProgressBar/ProgressBar.js +22 -26
  62. package/ui/layout/Sidebar/Sidebar.js +16 -12
  63. package/ui/list/ControlsColumn/ControlsColumn.js +7 -1
  64. package/ui/list/Grid/Grid.d.ts +1 -1
  65. package/ui/list/Grid/Grid.js +33 -8
  66. package/ui/list/LayoutNames/LayoutNames.d.ts +1 -1
  67. package/ui/list/LayoutNames/LayoutNames.js +2 -3
  68. package/ui/list/List/List.js +19 -4
  69. package/ui/list/Pagination/Pagination.d.ts +1 -1
  70. package/ui/list/Pagination/Pagination.js +22 -6
  71. package/ui/list/PaginationSize/PaginationSize.d.ts +1 -1
  72. package/ui/list/PaginationSize/PaginationSize.js +10 -4
  73. package/ui/modal/Modal/Modal.d.ts +2 -2
  74. package/ui/modal/Modal/Modal.js +16 -3
  75. package/ui/modal/ModalPortal/ModalPortal.js +2 -3
  76. package/ui/nav/Breadcrumbs/Breadcrumbs.js +10 -12
  77. package/ui/nav/ButtonGroup/ButtonGroup.js +19 -38
  78. package/ui/nav/Controls/Controls.js +6 -1
  79. package/ui/nav/Nav/Nav.d.ts +9 -1
  80. package/ui/nav/Nav/Nav.js +16 -7
  81. package/ui/nav/Router/Router.d.ts +2 -2
  82. package/ui/nav/Router/Router.js +17 -16
  83. package/ui/nav/Router/helpers.d.ts +1 -1
  84. package/ui/nav/Router/helpers.js +19 -16
  85. package/ui/nav/Tree/Tree.js +10 -12
@@ -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
- return (React.createElement(ImageFieldView, __assign({}, props, { item: item, onClick: onBrowse })));
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', __assign(__assign(__assign({}, props), props.viewProps), { inputProps: inputProps,
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
- var mask = props.mask, maskProps = props.maskProps, inputProps = __rest(props, ["mask", "maskProps"]);
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 React = __importStar(require("react"));
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
- return (React.createElement(Nav_1["default"], __assign({}, props.navProps, { layout: props.navProps.layout, items: items, activeTab: props.input.value, onChange: props.onChange, disabled: props.disabled })));
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 }, props.inputProps));
80
- }, [props.input.name, props.input.value, props.min, props.max, props.step, props.placeholder, props.disabled, props.inputProps, onInputChange, onKeyDown]);
81
- return components.ui.renderView(props.view || 'form.NumberFieldView', __assign(__assign({}, props), { inputProps: inputProps, onStepUp: onStepUp, onStepDown: onStepDown, inputRef: currentInputRef }));
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 : '', onChange: onChange, type: type, placeholder: props.placeholder, disabled: props.disabled, ref: inputRef }, props.inputProps));
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
- return components.ui.renderView(props.view || 'form.PasswordFieldView' || 'form.InputFieldView', __assign(__assign({}, props), { inputProps: inputProps, securityLevel: props.showSecurityBar ? (0, exports.checkPassword)(props.input.value) : null, onClear: onClear, onShowButtonClick: onShowButtonClick }));
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,
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import React from 'react';
2
2
  import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
3
3
  /**
4
4
  * RadioField
@@ -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 React = __importStar(require("react"));
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 = React.useCallback(function () {
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 = React.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
- return components.ui.renderView(props.view || 'form.RadioFieldView', __assign(__assign({}, props), { inputProps: inputProps }));
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 * as React from 'react';
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 React = __importStar(require("react"));
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 React.createElement(RadioFieldView, __assign({}, radioProps)); };
79
- return components.ui.renderView(props.view || 'form.RadioListFieldView', __assign(__assign({}, props), { items: items, inputProps: inputProps, onItemSelect: onItemSelect, selectedIds: selectedIds, renderRadio: renderRadio }));
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
- return components.ui.renderView(props.view || 'form.RateFieldView', __assign(__assign({}, props), { inputProps: inputProps, onItemClick: onItemClick, items: items }));
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
- return components.ui.renderView(props.view || 'form.ReCaptchaFieldView', __assign(__assign({}, props), { recaptchaOptions: recaptchaOptions }));
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);
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import React from 'react';
2
2
  import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
3
3
  /**
4
4
  * SliderField
@@ -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, props.input.onChange, props.valuePostfix, props.defaultValue, props.tooltipIsVisible]);
42
- return components.ui.renderView(props.view || 'form.SliderFieldView', __assign(__assign({}, props), { sliderProps: sliderProps }));
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 * as React from 'react';
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 React = __importStar(require("react"));
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 = React.useMemo(function () { return (__assign(__assign({}, props.inputProps), { type: 'checkbox', name: props.input.name, disabled: props.disabled })); }, [props.disabled, props.input.name, props.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
- return components.ui.renderView(props.view || 'form.SwitcherFieldView', __assign(__assign({}, props), { items: items, inputProps: inputProps, hoveredId: hoveredId, selectedIds: selectedIds, onItemHover: onItemHover, onItemSelect: onItemSelect }));
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
- return components.ui.renderView(props.view || 'form.TextFieldView', __assign(__assign({}, props), { inputProps: inputProps, onClear: onClear }));
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
- return components.ui.renderView(props.view || 'form.TimeFieldView', __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, showRemove: props.showRemove }));
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
- return components.ui.renderView(props.view || 'form.TimeRangeFieldView', __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, timePanelFromViewProps: timePanelFromViewProps, timePanelToViewProps: timePanelToViewProps, size: props.size, icon: props.icon, disabled: props.disabled, showRemove: props.showRemove, className: props.className }));
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,
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import React from 'react';
2
2
  /**
3
3
  * Перед тем как использовать компонент Notification поместите его в DOM дереве следующим образом:
4
4
  * ```
@@ -37,9 +37,8 @@ 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 React = __importStar(require("react"));
40
+ var react_1 = __importStar(require("react"));
41
41
  var orderBy_1 = __importDefault(require("lodash-es/orderBy"));
42
- var react_1 = require("react");
43
42
  var react_use_1 = require("react-use");
44
43
  var useDispatch_1 = __importDefault(require("../../../hooks/useDispatch"));
45
44
  var hooks_1 = require("../../../hooks");
@@ -85,7 +84,12 @@ function Notifications(props) {
85
84
  var items = (0, react_1.useMemo)(function () { return ((0, orderBy_1["default"])([].concat(innerNotifications).concat(closing), ['id'], 'asc')
86
85
  .map(function (item) { return (__assign(__assign({}, item), { isClosing: closingIds.includes(item.id), onClose: function () { return onClose(item.id); } })); })); }, [innerNotifications, closing, closingIds, onClose]);
87
86
  var NotificationsItemView = props.itemView || components.ui.getView('layout.NotificationsItemView');
88
- return components.ui.renderView(props.view || 'layout.NotificationsView', __assign(__assign({}, props), { position: position || '', children: items.map(function (item) { return (React.createElement(NotificationsItemView, __assign({ key: item.id }, item))); }) }));
87
+ var viewProps = (0, react_1.useMemo)(function () { return ({
88
+ className: props.className,
89
+ position: position || '',
90
+ children: items.map(function (item) { return (react_1["default"].createElement(NotificationsItemView, __assign({ key: item.id }, item))); })
91
+ }); }, [props.className, position, items, NotificationsItemView]);
92
+ return components.ui.renderView(props.view || 'layout.NotificationsView', viewProps);
89
93
  }
90
94
  Notifications.defaultProps = {
91
95
  closeTimeoutMs: 1500
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import React from 'react';
2
2
  export interface IProgressBarViewProps {
3
3
  percent: number;
4
4
  status?: 'normal' | 'success' | 'exception';
@@ -26,40 +26,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  exports.__esModule = true;
29
- var React = __importStar(require("react"));
29
+ var react_1 = __importStar(require("react"));
30
30
  var Icon_1 = __importDefault(require("../../content/Icon/Icon"));
31
31
  var hooks_1 = require("../../../hooks");
32
32
  function ProgressBar(props) {
33
33
  var components = (0, hooks_1.useComponents)();
34
- var getLabel = (function () {
35
- if (!props.showLabel) {
36
- return null;
37
- }
38
- if (props.icon) {
39
- return props.icon(props.status, props.percent);
40
- }
41
- if (props.status === 'success') {
42
- return React.createElement(Icon_1["default"], { name: "check" });
43
- }
44
- if (props.status === 'exception') {
45
- return React.createElement(Icon_1["default"], { name: "times" });
46
- }
47
- return props.label(props.percent);
48
- });
49
- if (props.type === 'line') {
50
- return components.ui.renderView('layout.LineProgressBarView', {
34
+ var viewProps = (0, react_1.useMemo)(function () {
35
+ var getLabel = (function () {
36
+ if (!props.showLabel) {
37
+ return null;
38
+ }
39
+ if (props.icon) {
40
+ return props.icon(props.status, props.percent);
41
+ }
42
+ if (props.status === 'success') {
43
+ return react_1["default"].createElement(Icon_1["default"], { name: "check" });
44
+ }
45
+ if (props.status === 'exception') {
46
+ return react_1["default"].createElement(Icon_1["default"], { name: "times" });
47
+ }
48
+ return props.label(props.percent);
49
+ });
50
+ return {
51
51
  percent: props.percent,
52
52
  status: props.status,
53
53
  size: props.size,
54
54
  label: getLabel()
55
- });
56
- }
57
- return components.ui.renderView('layout.CircleProgressBarView', {
58
- percent: props.percent,
59
- status: props.status,
60
- size: props.size,
61
- label: getLabel()
62
- });
55
+ };
56
+ }, [props]);
57
+ var ViewComponent = props.type === 'line' ? 'layout.LineProgressBarView' : 'layout.CircleProgressBarView';
58
+ return components.ui.renderView(ViewComponent, viewProps);
63
59
  }
64
60
  ProgressBar.defaultProps = {
65
61
  status: 'normal',
@@ -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);
@@ -48,7 +37,22 @@ function Sidebar(props) {
48
37
  props.onClickItem(itemId);
49
38
  }
50
39
  }, [props]);
51
- return components.ui.renderView(props.view || 'layout.SidebarView', __assign(__assign({}, props), { isOpened: isOpened, toggleSidebar: toggleSidebar, onClickNav: onClickNav }));
40
+ var viewProps = (0, react_1.useMemo)(function () { return ({
41
+ isOpened: isOpened,
42
+ toggleSidebar: toggleSidebar,
43
+ onClickNav: onClickNav,
44
+ hasSeparatedNavItem: props.hasSeparatedNavItem,
45
+ className: props.className,
46
+ style: props.style,
47
+ logo: props.logo,
48
+ menu: props.menu,
49
+ user: props.user,
50
+ items: props.items,
51
+ footerIcons: props.footerIcons,
52
+ isShink: props.isShink
53
+ }); }, [isOpened, onClickNav, props.className, props.footerIcons, props.hasSeparatedNavItem, props.isShink, props.items,
54
+ props.logo, props.menu, props.style, props.user, toggleSidebar]);
55
+ return components.ui.renderView(props.view || 'layout.SidebarView', viewProps);
52
56
  }
53
57
  exports["default"] = Sidebar;
54
58
  Sidebar.defaultProps = {
@@ -25,6 +25,12 @@ function ControlsColumn(props) {
25
25
  : props.controls;
26
26
  return controls.map(function (control) { return (__assign(__assign({}, control), { position: 'left', visible: control.visible !== false && props.item['can' + (0, upperFirst_1["default"])(control.id)] !== false })); });
27
27
  }, [props]);
28
- return components.ui.renderView(props.view || 'list.ControlsColumnView', __assign(__assign({}, props), { items: items }));
28
+ var viewProps = (0, react_1.useMemo)(function () { return ({
29
+ items: items,
30
+ view: props.view,
31
+ controls: props.controls,
32
+ primaryKey: props.primaryKey
33
+ }); }, [items, props.controls, props.primaryKey, props.view]);
34
+ return components.ui.renderView(props.view || 'list.ControlsColumnView', viewProps);
29
35
  }
30
36
  exports["default"] = ControlsColumn;