@steroidsjs/core 3.0.0-beta.14 → 3.0.0-beta.16

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 (144) hide show
  1. package/hoc/bem.d.ts +1 -1
  2. package/index.d.ts +3 -3
  3. package/package.json +1 -1
  4. package/reducers/router.js +2 -2
  5. package/ui/content/Accordion/Accordion.d.ts +2 -2
  6. package/ui/content/Alert/Alert.d.ts +2 -2
  7. package/ui/content/Avatar/AvatarGroup.d.ts +3 -3
  8. package/ui/content/Badge/Badge.d.ts +4 -4
  9. package/ui/content/Badge/Badge.js +1 -1
  10. package/ui/content/Card/Card.d.ts +21 -28
  11. package/ui/content/Card/Card.js +0 -5
  12. package/ui/content/CopyToClipboard/CopyToClipboard.d.ts +1 -1
  13. package/ui/content/Detail/Detail.d.ts +1 -1
  14. package/ui/content/DropDown/DropDown.d.ts +1 -1
  15. package/ui/content/Icon/Icon.d.ts +2 -2
  16. package/ui/form/Button/Button.d.ts +2 -2
  17. package/ui/form/CheckboxField/CheckboxField.d.ts +5 -0
  18. package/ui/form/CheckboxField/CheckboxField.js +31 -6
  19. package/ui/form/CheckboxListField/CheckboxListField.d.ts +7 -1
  20. package/ui/form/CheckboxListField/CheckboxListField.js +32 -7
  21. package/ui/form/DateField/DateField.d.ts +1 -1
  22. package/ui/form/DateRangeField/DateRangeField.d.ts +1 -1
  23. package/ui/form/DateTimeField/DateTimeField.d.ts +1 -1
  24. package/ui/form/DateTimeRangeField/DateTimeRangeField.d.ts +1 -1
  25. package/ui/form/DropDownField/DropDownField.d.ts +65 -17
  26. package/ui/form/DropDownField/DropDownField.js +90 -6
  27. package/ui/form/Field/fieldWrapper.d.ts +1 -1
  28. package/ui/form/FieldLayout/FieldLayout.d.ts +2 -2
  29. package/ui/form/FieldList/FieldList.d.ts +3 -3
  30. package/ui/form/FieldSet/FieldSet.d.ts +1 -1
  31. package/ui/form/Form/Form.d.ts +2 -7
  32. package/ui/form/InputField/InputField.d.ts +2 -2
  33. package/ui/form/RadioField/RadioField.d.ts +35 -0
  34. package/ui/form/RadioField/RadioField.js +61 -0
  35. package/ui/form/RadioField/index.d.ts +2 -0
  36. package/ui/{list/LayoutNames/demo/basic.js → form/RadioField/index.js} +2 -7
  37. package/ui/form/RadioListField/RadioListField.d.ts +6 -0
  38. package/ui/form/RadioListField/RadioListField.js +32 -2
  39. package/ui/form/TimeField/TimeField.d.ts +1 -1
  40. package/ui/form/index.d.ts +3 -1
  41. package/ui/form/index.js +4 -1
  42. package/ui/layout/Header/Header.d.ts +1 -1
  43. package/ui/layout/Loader/Loader.d.ts +1 -1
  44. package/ui/layout/Notifications/Notifications.d.ts +1 -1
  45. package/ui/layout/Skeleton/Skeleton.d.ts +2 -2
  46. package/ui/layout/Tooltip/calculate.js +1 -1
  47. package/ui/list/CheckboxColumn/CheckboxColumn.d.ts +1 -1
  48. package/ui/list/ControlsColumn/ControlsColumn.d.ts +1 -1
  49. package/ui/list/Grid/Grid.d.ts +1 -1
  50. package/ui/list/Grid/demo/sort.js +4 -2
  51. package/ui/list/Pagination/Pagination.d.ts +16 -6
  52. package/ui/list/Pagination/Pagination.js +15 -7
  53. package/ui/list/PaginationSize/demo/basic.js +2 -3
  54. package/ui/list/PaginationSize/demo/size.js +2 -3
  55. package/ui/list/SearchForm/demo/basic.js +5 -2
  56. package/ui/list/Steps/Steps.d.ts +3 -3
  57. package/ui/modal/TwoFactorModal/TwoFactorModal.d.ts +1 -1
  58. package/ui/nav/Breadcrumbs/Breadcrumbs.d.ts +9 -0
  59. package/ui/nav/Controls/Controls.d.ts +3 -3
  60. package/ui/nav/Nav/Nav.d.ts +2 -2
  61. package/ui/nav/Tree/Tree.d.ts +1 -1
  62. package/ui/typography/Text/Text.d.ts +2 -2
  63. package/ui/typography/Title/Title.d.ts +2 -2
  64. package/ui/content/Card/demo/basic.d.ts +0 -8
  65. package/ui/content/Card/demo/basic.js +0 -39
  66. package/ui/content/Card/demo/border color.d.ts +0 -3
  67. package/ui/content/Card/demo/border color.js +0 -52
  68. package/ui/content/Card/demo/color.d.ts +0 -3
  69. package/ui/content/Card/demo/color.js +0 -52
  70. package/ui/content/Card/demo/header.d.ts +0 -3
  71. package/ui/content/Card/demo/header.js +0 -47
  72. package/ui/content/Card/demo/hover.d.ts +0 -3
  73. package/ui/content/Card/demo/hover.js +0 -42
  74. package/ui/content/Card/demo/link.d.ts +0 -3
  75. package/ui/content/Card/demo/link.js +0 -43
  76. package/ui/content/Card/demo/orientation.d.ts +0 -3
  77. package/ui/content/Card/demo/orientation.js +0 -46
  78. package/ui/form/CheckboxListField/demo/basic.d.ts +0 -9
  79. package/ui/form/CheckboxListField/demo/basic.js +0 -43
  80. package/ui/form/CheckboxListField/demo/disabled.d.ts +0 -8
  81. package/ui/form/CheckboxListField/demo/disabled.js +0 -38
  82. package/ui/form/CheckboxListField/demo/errors.d.ts +0 -8
  83. package/ui/form/CheckboxListField/demo/errors.js +0 -38
  84. package/ui/form/CheckboxListField/demo/required.d.ts +0 -8
  85. package/ui/form/CheckboxListField/demo/required.js +0 -38
  86. package/ui/form/DropDownField/demo/auto-complete.d.ts +0 -8
  87. package/ui/form/DropDownField/demo/auto-complete.js +0 -38
  88. package/ui/form/DropDownField/demo/basic.d.ts +0 -12
  89. package/ui/form/DropDownField/demo/basic.js +0 -56
  90. package/ui/form/DropDownField/demo/disabled.d.ts +0 -8
  91. package/ui/form/DropDownField/demo/disabled.js +0 -38
  92. package/ui/form/DropDownField/demo/errors.d.ts +0 -8
  93. package/ui/form/DropDownField/demo/errors.js +0 -38
  94. package/ui/form/DropDownField/demo/multiple.d.ts +0 -8
  95. package/ui/form/DropDownField/demo/multiple.js +0 -38
  96. package/ui/form/DropDownField/demo/no-border.d.ts +0 -8
  97. package/ui/form/DropDownField/demo/no-border.js +0 -38
  98. package/ui/form/DropDownField/demo/placeholder.d.ts +0 -8
  99. package/ui/form/DropDownField/demo/placeholder.js +0 -38
  100. package/ui/form/DropDownField/demo/required.d.ts +0 -8
  101. package/ui/form/DropDownField/demo/required.js +0 -38
  102. package/ui/form/DropDownField/demo/show-reset.d.ts +0 -8
  103. package/ui/form/DropDownField/demo/show-reset.js +0 -38
  104. package/ui/form/DropDownField/demo/size.d.ts +0 -8
  105. package/ui/form/DropDownField/demo/size.js +0 -45
  106. package/ui/form/Form/demo/basic.d.ts +0 -8
  107. package/ui/form/Form/demo/basic.js +0 -62
  108. package/ui/form/Form/demo/border.d.ts +0 -8
  109. package/ui/form/Form/demo/border.js +0 -62
  110. package/ui/form/Form/demo/horizontal.d.ts +0 -8
  111. package/ui/form/Form/demo/horizontal.js +0 -55
  112. package/ui/form/Form/demo/inline.d.ts +0 -8
  113. package/ui/form/Form/demo/inline.js +0 -53
  114. package/ui/layout/Tooltip/demo/basic.d.ts +0 -8
  115. package/ui/layout/Tooltip/demo/basic.js +0 -56
  116. package/ui/list/LayoutNames/demo/basic.d.ts +0 -7
  117. package/ui/list/List/demo/basic.d.ts +0 -12
  118. package/ui/list/List/demo/basic.js +0 -61
  119. package/ui/list/List/demo/condition.d.ts +0 -8
  120. package/ui/list/List/demo/condition.js +0 -90
  121. package/ui/list/List/demo/empty.d.ts +0 -8
  122. package/ui/list/List/demo/empty.js +0 -36
  123. package/ui/list/List/demo/layout.d.ts +0 -8
  124. package/ui/list/List/demo/layout.js +0 -49
  125. package/ui/list/List/demo/load-more.d.ts +0 -8
  126. package/ui/list/List/demo/load-more.js +0 -45
  127. package/ui/list/List/demo/pagination.d.ts +0 -8
  128. package/ui/list/List/demo/pagination.js +0 -45
  129. package/ui/list/List/demo/search-form.d.ts +0 -30
  130. package/ui/list/List/demo/search-form.js +0 -107
  131. package/ui/list/List/demo/sort.d.ts +0 -17
  132. package/ui/list/List/demo/sort.js +0 -92
  133. package/ui/list/Pagination/demo/basic.d.ts +0 -8
  134. package/ui/list/Pagination/demo/basic.js +0 -45
  135. package/ui/list/Pagination/demo/load-more.d.ts +0 -8
  136. package/ui/list/Pagination/demo/load-more.js +0 -41
  137. package/ui/list/Pagination/demo/sizes.d.ts +0 -8
  138. package/ui/list/Pagination/demo/sizes.js +0 -48
  139. package/ui/nav/Breadcrumbs/demo/basic.d.ts +0 -8
  140. package/ui/nav/Breadcrumbs/demo/basic.js +0 -37
  141. package/ui/nav/Breadcrumbs/demo/items.d.ts +0 -8
  142. package/ui/nav/Breadcrumbs/demo/items.js +0 -42
  143. package/ui/nav/Breadcrumbs/demo/page-title.d.ts +0 -8
  144. package/ui/nav/Breadcrumbs/demo/page-title.js +0 -37
@@ -10,31 +10,85 @@ 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
+ };
36
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
38
+ if (ar || !(i in from)) {
39
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
40
+ ar[i] = from[i];
41
+ }
42
+ }
43
+ return to.concat(ar || Array.prototype.slice.call(from));
44
+ };
13
45
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
46
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
47
  };
16
48
  exports.__esModule = true;
17
- var react_1 = require("react");
49
+ exports.IMG_CONTENT_TYPE = exports.ICON_CONTENT_TYPE = exports.RADIO_CONTENT_TYPE = exports.CHECKBOX_CONTENT_TYPE = exports.GROUP_CONTENT_TYPE = void 0;
50
+ var react_1 = __importStar(require("react"));
18
51
  var react_use_1 = require("react-use");
19
52
  var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
53
+ var includes_1 = __importDefault(require("lodash-es/includes"));
20
54
  var hooks_1 = require("../../../hooks");
21
55
  var fieldWrapper_1 = __importDefault(require("../../form/Field/fieldWrapper"));
56
+ exports.GROUP_CONTENT_TYPE = 'group';
57
+ exports.CHECKBOX_CONTENT_TYPE = 'checkbox';
58
+ exports.RADIO_CONTENT_TYPE = 'radio';
59
+ exports.ICON_CONTENT_TYPE = 'icon';
60
+ exports.IMG_CONTENT_TYPE = 'img';
22
61
  function DropDownField(props) {
23
62
  var components = (0, hooks_1.useComponents)();
24
63
  // Query state
25
64
  var _a = (0, react_1.useState)(''), query = _a[0], setQuery = _a[1];
65
+ var hasGroup = !!props.groupAttribute;
66
+ var _b = react_1["default"].useState([]), selectedAccordionItems = _b[0], setSelectedAccordionItems = _b[1];
67
+ var toggleCollapse = function (indexSelected) {
68
+ if (selectedAccordionItems.includes(indexSelected)) {
69
+ var newState = __spreadArray([], selectedAccordionItems, true);
70
+ var indexInArray = selectedAccordionItems.indexOf(indexSelected);
71
+ newState.splice(indexInArray, 1);
72
+ setSelectedAccordionItems(newState);
73
+ }
74
+ else {
75
+ var newState = __spreadArray([], selectedAccordionItems, true);
76
+ newState.push(indexSelected);
77
+ setSelectedAccordionItems(newState);
78
+ }
79
+ };
26
80
  var inputSelectedIds = (0, react_1.useMemo)(function () { return props.selectedIds || [].concat(props.input.value || []); }, [props.input.value, props.selectedIds]);
27
81
  // Data provider
28
- var _b = (0, hooks_1.useDataProvider)({
82
+ var _c = (0, hooks_1.useDataProvider)({
29
83
  items: props.items,
30
84
  dataProvider: props.dataProvider,
31
85
  autoComplete: props.autoComplete,
32
86
  autoFetch: props.autoFetch,
33
87
  query: query,
34
88
  initialSelectedIds: inputSelectedIds
35
- }), items = _b.items, isLoading = _b.isLoading, isAutoComplete = _b.isAutoComplete, sourceItems = _b.sourceItems;
89
+ }), items = _c.items, isLoading = _c.isLoading, isAutoComplete = _c.isAutoComplete, sourceItems = _c.sourceItems;
36
90
  // Data select
37
- var _c = (0, hooks_1.useDataSelect)({
91
+ var _d = (0, hooks_1.useDataSelect)({
38
92
  multiple: props.multiple,
39
93
  selectFirst: props.selectFirst,
40
94
  selectedIds: inputSelectedIds,
@@ -43,7 +97,7 @@ function DropDownField(props) {
43
97
  items: items,
44
98
  sourceItems: sourceItems,
45
99
  inputValue: props.input.value
46
- }), isOpened = _c.isOpened, setIsOpened = _c.setIsOpened, setIsFocused = _c.setIsFocused, hoveredId = _c.hoveredId, setHoveredId = _c.setHoveredId, selectedIds = _c.selectedIds, setSelectedIds = _c.setSelectedIds, selectedItems = _c.selectedItems;
100
+ }), isOpened = _d.isOpened, setIsOpened = _d.setIsOpened, setIsFocused = _d.setIsFocused, hoveredId = _d.hoveredId, setHoveredId = _d.setHoveredId, selectedIds = _d.selectedIds, setSelectedIds = _d.setSelectedIds, selectedItems = _d.selectedItems;
47
101
  var onOpen = (0, react_1.useCallback)(function () {
48
102
  setQuery('');
49
103
  setIsFocused(true);
@@ -98,13 +152,43 @@ function DropDownField(props) {
98
152
  onReset();
99
153
  }
100
154
  }, [onReset, prevInputValue, props.input.value, selectedIds.length]);
155
+ var renderItemView = function (item, type, src) { return components.ui.renderView('form.DropDownFieldItemView', {
156
+ item: __assign(__assign({}, item), { contentSrc: src, contentType: type }),
157
+ selectedIds: selectedIds,
158
+ size: props.size,
159
+ groupAttribute: props.groupAttribute,
160
+ hoveredId: hoveredId,
161
+ primaryKey: props.primaryKey,
162
+ type: type,
163
+ itemsContent: props.itemsContent,
164
+ onItemHover: onItemHover,
165
+ onItemSelect: onItemSelect,
166
+ isShowMore: (0, includes_1["default"])(selectedAccordionItems || [], item.id),
167
+ childIndex: item.id,
168
+ toggleCollapse: toggleCollapse
169
+ }); };
170
+ var renderItem = function (item) {
171
+ if (hasGroup && Array.isArray(item[props.groupAttribute])) {
172
+ return renderItemView(item, 'group', item[props.groupAttribute]);
173
+ }
174
+ if (item.contentType) {
175
+ return renderItemView(item, item.contentType, item.contentSrc);
176
+ }
177
+ if (props.itemsContent) {
178
+ return renderItemView(item, props.itemsContent.type, props.itemsContent.src);
179
+ }
180
+ return renderItemView(item, 'default', null);
181
+ };
101
182
  return components.ui.renderView(props.view || 'form.DropDownFieldView', __assign(__assign({}, props), { isAutoComplete: isAutoComplete, items: items, hoveredId: hoveredId, selectedIds: selectedIds, forwardedRef: forwardedRef, searchInputProps: searchInputProps, isOpened: isOpened, isLoading: isLoading, onOpen: onOpen, selectedItems: selectedItems,
102
183
  // TODO onFocus
103
184
  // TODO onBlur
104
- onItemHover: onItemHover, onItemSelect: onItemSelect, onItemRemove: onItemRemove, onReset: onReset, onClose: onClose }));
185
+ onReset: onReset, onClose: onClose, renderItem: renderItem, onItemRemove: onItemRemove, hasGroup: hasGroup }));
105
186
  }
106
187
  DropDownField.defaultProps = {
107
188
  primaryKey: 'id',
189
+ outline: false,
190
+ size: 'md',
191
+ color: 'basic',
108
192
  disabled: false,
109
193
  required: false,
110
194
  className: '',
@@ -89,5 +89,5 @@ export interface FieldWrapperComponent<T> {
89
89
  displayName: any;
90
90
  defaultProps: any;
91
91
  }
92
- export default function fieldWrapper<T = any>(componentId: any, Component: any, optionsConfig?: IFieldWrapperOptions): FieldWrapperComponent<T>;
92
+ export default function fieldWrapper<T = any>(componentId: string, Component: any, optionsConfig?: IFieldWrapperOptions): FieldWrapperComponent<T>;
93
93
  export {};
@@ -52,8 +52,8 @@ export interface IFieldLayoutViewProps {
52
52
  size: Size;
53
53
  layout?: {
54
54
  layout: FormLayoutName | boolean;
55
- className?: string;
56
- style?: any;
55
+ className?: CssClassName;
56
+ style?: CustomStyle;
57
57
  label: boolean;
58
58
  cols: number[];
59
59
  [key: string]: any;
@@ -74,7 +74,7 @@ export interface IFieldListProps extends IFieldWrapperInputProps {
74
74
  * Переопределение view React компонента для кастомизации отображения списка с группами полей
75
75
  * @example MyCustomView
76
76
  */
77
- view?: any;
77
+ view?: CustomView;
78
78
  /**
79
79
  * Пропсы для компонента отображения списка с группами полей - FieldListView
80
80
  */
@@ -105,9 +105,9 @@ export interface IFieldListViewProps {
105
105
  showRemove?: boolean;
106
106
  showAdd?: boolean;
107
107
  children?: React.ReactNode;
108
- className?: string;
108
+ className?: CssClassName;
109
109
  tableClassName?: string;
110
- style?: any;
110
+ style?: CustomStyle;
111
111
  forwardedRef?: any;
112
112
  disabled?: boolean;
113
113
  size?: Size;
@@ -27,7 +27,7 @@ export interface IFieldSetProps extends IFormContext {
27
27
  [key: string]: any;
28
28
  }
29
29
  export interface IFieldSetViewProps {
30
- className?: string;
30
+ className?: CssClassName;
31
31
  children?: React.ReactNode;
32
32
  label?: string | any;
33
33
  }
@@ -99,7 +99,7 @@ export interface IFormProps {
99
99
  * Объект CSS стилей
100
100
  * @example {width: '45%'}
101
101
  */
102
- style?: any;
102
+ style?: CustomStyle;
103
103
  /**
104
104
  * Переопределение view React компонента для кастомизации отображения
105
105
  * @example MyCustomView
@@ -140,11 +140,6 @@ export interface IFormProps {
140
140
  * @example 'addComment'
141
141
  */
142
142
  captchaActionName?: string;
143
- /**
144
- * Включает рамки и тень.
145
- * @example true
146
- */
147
- isBordered?: boolean;
148
143
  /**
149
144
  * Очищать ли данные формы с redux хранилища при размонтировании компонента. По-умолчанию - false
150
145
  * @example false
@@ -160,7 +155,7 @@ export interface IFormViewProps {
160
155
  className?: CssClassName;
161
156
  isBordered?: boolean;
162
157
  autoFocus?: boolean;
163
- style?: any;
158
+ style?: CustomStyle;
164
159
  layout?: {
165
160
  layout: FormLayoutName | boolean;
166
161
  className: CssClassName;
@@ -30,7 +30,7 @@ export interface IInputFieldProps extends IFieldWrapperInputProps {
30
30
  * Переопределение view React компонента для кастомизации отображения
31
31
  * @example MyCustomView
32
32
  */
33
- view?: any;
33
+ view?: CustomView;
34
34
  /**
35
35
  */
36
36
  viewProps?: any;
@@ -43,7 +43,7 @@ export interface IInputFieldProps extends IFieldWrapperInputProps {
43
43
  * Объект CSS стилей
44
44
  * @example {width: '45%'}
45
45
  */
46
- style?: any;
46
+ style?: CustomStyle;
47
47
  /**
48
48
  * Изображение или React-нода, которая будет отрендерена слева от поля.
49
49
  * @example require('icon.png') | <component/>
@@ -0,0 +1,35 @@
1
+ import * as React from 'react';
2
+ import { IFieldWrapperInputProps, IFieldWrapperOutputProps } from '../Field/fieldWrapper';
3
+ export interface IRadioFieldProps extends IFieldWrapperInputProps {
4
+ /**
5
+ * Свойства для элемента \<input /\>
6
+ * @example {onKeyDown: ...}
7
+ */
8
+ inputProps?: any;
9
+ /**
10
+ * Дополнительный CSS-класс для элемента \<input /\>
11
+ */
12
+ className?: CssClassName;
13
+ /**
14
+ * Переопределение view React компонента для кастомизации отображения
15
+ * @example MyCustomView
16
+ */
17
+ view?: CustomView;
18
+ /**
19
+ * Флаг определяющий включен ли элемент
20
+ * @example {'true'}
21
+ */
22
+ checked?: boolean;
23
+ [key: string]: any;
24
+ }
25
+ export interface IRadioFieldViewProps extends IRadioFieldProps, IFieldWrapperOutputProps {
26
+ inputProps: {
27
+ name: string;
28
+ type: string;
29
+ checked: boolean;
30
+ onChange: (value: string | React.ChangeEvent) => void;
31
+ disabled: boolean;
32
+ };
33
+ }
34
+ declare const _default: import("../Field/fieldWrapper").FieldWrapperComponent<IRadioFieldProps>;
35
+ export default _default;
@@ -0,0 +1,61 @@
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
+ var React = __importStar(require("react"));
41
+ var hooks_1 = require("../../../hooks");
42
+ var fieldWrapper_1 = __importDefault(require("../Field/fieldWrapper"));
43
+ function RadioField(props) {
44
+ var components = (0, hooks_1.useComponents)();
45
+ var onChangeHandler = React.useCallback(function () {
46
+ props.input.onChange(!props.input.value);
47
+ if (props.onChange) {
48
+ props.onChange();
49
+ }
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 }));
53
+ }
54
+ RadioField.defaultProps = {
55
+ disabled: false,
56
+ required: false,
57
+ className: '',
58
+ size: 'md',
59
+ inputProps: {}
60
+ };
61
+ exports["default"] = (0, fieldWrapper_1["default"])('RadioField', RadioField);
@@ -0,0 +1,2 @@
1
+ import RadioField from './RadioField';
2
+ export default RadioField;
@@ -3,10 +3,5 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  exports.__esModule = true;
6
- var layout_1 = __importDefault(require("../../List/demo/layout"));
7
- /**
8
- * List with layout switcher
9
- * @order 1
10
- * @col 6
11
- */
12
- exports["default"] = layout_1["default"];
6
+ var RadioField_1 = __importDefault(require("./RadioField"));
7
+ exports["default"] = RadioField_1["default"];
@@ -2,6 +2,7 @@ import * as 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';
5
+ import { IRadioFieldViewProps } from '../RadioField/RadioField';
5
6
  /**
6
7
  * RadioListField
7
8
  * Список с радиокнопками. Используется в формах для выбора одного значения.
@@ -16,6 +17,10 @@ export interface IRadioListFieldProps extends IFieldWrapperInputProps, IDataProv
16
17
  * Дополнительный CSS-класс для элемента отображения
17
18
  */
18
19
  className?: CssClassName;
20
+ /**
21
+ * Ориентация списка
22
+ */
23
+ orientation?: 'horizontal' | 'vertical';
19
24
  /**
20
25
  * Переопределение view React компонента для кастомизации отображения
21
26
  * @example MyCustomView
@@ -39,6 +44,7 @@ export interface IRadioListFieldViewProps extends IFieldWrapperOutputProps {
39
44
  selectedIds: (PrimaryKey | any)[];
40
45
  className?: CssClassName;
41
46
  onItemSelect: (id: PrimaryKey | any) => void;
47
+ renderRadio: (radioProps: IRadioFieldViewProps) => JSX.Element;
42
48
  }
43
49
  declare const _default: import("../../form/Field/fieldWrapper").FieldWrapperComponent<IRadioListFieldProps>;
44
50
  export default _default;
@@ -10,10 +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;
40
+ var React = __importStar(require("react"));
17
41
  var react_1 = require("react");
18
42
  var react_use_1 = require("react-use");
19
43
  var isEqual_1 = __importDefault(require("lodash-es/isEqual"));
@@ -28,6 +52,7 @@ function RadioListField(props) {
28
52
  }).items;
29
53
  // Data select
30
54
  var _a = (0, hooks_1.useDataSelect)({
55
+ multiple: props.multiple,
31
56
  selectedIds: inputSelectedIds,
32
57
  selectFirst: props.selectFirst,
33
58
  primaryKey: props.primaryKey,
@@ -49,12 +74,17 @@ function RadioListField(props) {
49
74
  }
50
75
  // eslint-disable-next-line react-hooks/exhaustive-deps
51
76
  }, [props.input.onChange, selectedIds]);
52
- return components.ui.renderView(props.view || 'form.RadioListFieldView', __assign(__assign({}, props), { items: items, inputProps: inputProps, onItemSelect: onItemSelect, selectedIds: selectedIds }));
77
+ 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 }));
53
80
  }
54
81
  RadioListField.defaultProps = {
55
82
  disabled: false,
56
83
  required: false,
57
84
  className: '',
58
- errors: null
85
+ multiple: false,
86
+ errors: null,
87
+ size: 'md',
88
+ orientation: 'vertical'
59
89
  };
60
90
  exports["default"] = (0, fieldWrapper_1["default"])('RadioListField', RadioListField);
@@ -26,7 +26,7 @@ export interface ITimeFieldProps extends IDateInputStateInput {
26
26
  * Объект CSS стилей
27
27
  * @example {width: '45%'}
28
28
  */
29
- style?: any;
29
+ style?: CustomStyle;
30
30
  /**
31
31
  * Свойства для view компонента
32
32
  */
@@ -20,6 +20,7 @@ import InputField from './InputField';
20
20
  import NavField from './NavField';
21
21
  import NumberField from './NumberField';
22
22
  import PasswordField from './PasswordField';
23
+ import RadioField from './RadioField';
23
24
  import RadioListField from './RadioListField';
24
25
  import ReCaptchaField from './ReCaptchaField';
25
26
  import SliderField from './SliderField';
@@ -27,7 +28,7 @@ import SwitcherField from './SwitcherField';
27
28
  import TextField from './TextField';
28
29
  import TimeField from './TimeField';
29
30
  import RateField from './RateField';
30
- export { AutoCompleteField, BlankField, Button, CheckboxField, CheckboxListField, DateField, DateRangeField, DateTimeField, DateTimeRangeField, DropDownField, Field, FieldLayout, FieldList, FieldSet, FileField, Form, HtmlField, InputField, NavField, NumberField, PasswordField, RadioListField, ReCaptchaField, SliderField, SwitcherField, TextField, TimeField, RateField, };
31
+ 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, };
31
32
  declare const _default: {
32
33
  AutoCompleteField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./AutoCompleteField/AutoCompleteField").IAutoCompleteFieldProps>;
33
34
  BlankField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./BlankField/BlankField").IBlankFieldProps>;
@@ -50,6 +51,7 @@ declare const _default: {
50
51
  NavField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./NavField/NavField").INavFieldProps>;
51
52
  NumberField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./NumberField/NumberField").INumberFieldProps>;
52
53
  PasswordField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./PasswordField/PasswordField").IPasswordFieldProps>;
54
+ RadioField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./RadioField/RadioField").IRadioFieldProps>;
53
55
  RadioListField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./RadioListField/RadioListField").IRadioListFieldProps>;
54
56
  ReCaptchaField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./ReCaptchaField/ReCaptchaField").IReCaptchaFieldProps>;
55
57
  SliderField: import("./Field/fieldWrapper").FieldWrapperComponent<import("./SliderField/SliderField").ISliderFieldProps>;
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.RateField = exports.TimeField = exports.TextField = exports.SwitcherField = exports.SliderField = exports.ReCaptchaField = exports.RadioListField = 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.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;
7
7
  var AutoCompleteField_1 = __importDefault(require("./AutoCompleteField"));
8
8
  exports.AutoCompleteField = AutoCompleteField_1["default"];
9
9
  var BlankField_1 = __importDefault(require("./BlankField"));
@@ -46,6 +46,8 @@ var NumberField_1 = __importDefault(require("./NumberField"));
46
46
  exports.NumberField = NumberField_1["default"];
47
47
  var PasswordField_1 = __importDefault(require("./PasswordField"));
48
48
  exports.PasswordField = PasswordField_1["default"];
49
+ var RadioField_1 = __importDefault(require("./RadioField"));
50
+ exports.RadioField = RadioField_1["default"];
49
51
  var RadioListField_1 = __importDefault(require("./RadioListField"));
50
52
  exports.RadioListField = RadioListField_1["default"];
51
53
  var ReCaptchaField_1 = __importDefault(require("./ReCaptchaField"));
@@ -82,6 +84,7 @@ exports["default"] = {
82
84
  NavField: NavField_1["default"],
83
85
  NumberField: NumberField_1["default"],
84
86
  PasswordField: PasswordField_1["default"],
87
+ RadioField: RadioField_1["default"],
85
88
  RadioListField: RadioListField_1["default"],
86
89
  ReCaptchaField: ReCaptchaField_1["default"],
87
90
  SliderField: SliderField_1["default"],
@@ -2,7 +2,7 @@
2
2
  import { INavProps } from '../../nav/Nav/Nav';
3
3
  export interface IHeaderProps {
4
4
  className?: CssClassName;
5
- view?: any;
5
+ view?: CustomView;
6
6
  logo?: {
7
7
  title: string;
8
8
  linkProps?: Record<string, unknown>;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  export interface ILoaderProps {
3
- view?: any;
3
+ view?: CustomView;
4
4
  [key: string]: any;
5
5
  }
6
6
  export default function Loader(props: ILoaderProps): JSX.Element;
@@ -34,7 +34,7 @@ export interface INotificationsProps {
34
34
  notifications?: INotificationItem[];
35
35
  closeTimeoutMs?: number;
36
36
  className?: CssClassName;
37
- view?: any;
37
+ view?: CustomView;
38
38
  itemView?: any;
39
39
  position?: string;
40
40
  [key: string]: any;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  export interface ISkeletonViewProps {
3
- className?: string;
3
+ className?: CssClassName;
4
4
  children?: React.ReactNode;
5
5
  animation?: 'pulse' | 'wave';
6
6
  type?: 'text' | 'rect' | 'circle';
@@ -8,7 +8,7 @@ export interface ISkeletonViewProps {
8
8
  width?: string | number;
9
9
  }
10
10
  export interface ISkeletonProps {
11
- className?: string;
11
+ className?: CssClassName;
12
12
  children?: React.ReactNode;
13
13
  animation?: 'pulse' | 'wave';
14
14
  type?: 'text' | 'rect' | 'circle';
@@ -80,7 +80,7 @@ function calculate(gap, position, parentRef, tooltipSize, arrowSize) {
80
80
  case 'topRight':
81
81
  case 'bottomRight':
82
82
  // Ширина tooltip больше родителя - стрелка на середину родителя
83
- style.right = document.body.clientWidth - parentDimensions.right;
83
+ style.left = parentDimensions.right - tooltipSize.width;
84
84
  if (parentDimensions.width < tooltipSize.width) {
85
85
  arrowPosition = {
86
86
  left: null,
@@ -20,7 +20,7 @@ export interface ICheckboxColumnProps {
20
20
  * Переопределение view React компонента для кастомизации отображения
21
21
  * @example MyCustomView
22
22
  */
23
- view?: any;
23
+ view?: CustomView;
24
24
  [key: string]: any;
25
25
  }
26
26
  export interface ICheckboxColumnViewProps {
@@ -29,7 +29,7 @@ export interface IControlsColumnProps {
29
29
  * Переопределение view React компонента для кастомизации отображения колонки
30
30
  * @example MyCustomView
31
31
  */
32
- view?: any;
32
+ view?: CustomView;
33
33
  [key: string]: any;
34
34
  }
35
35
  export interface IControlsColumnViewProps {
@@ -68,7 +68,7 @@ export interface IGridProps extends IListConfig {
68
68
  * Переопределение view React компонента для кастомизации отображения
69
69
  * @example MyCustomView
70
70
  */
71
- view?: any;
71
+ view?: CustomView;
72
72
  /**
73
73
  * Коллекция с наименованиями и свойствами колонок в таблице
74
74
  * @example [{label: 'Name', attribute: 'name'}, {label: 'Work', attribute: 'work'}]
@@ -28,14 +28,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  exports.__esModule = true;
29
29
  var React = __importStar(require("react"));
30
30
  var Grid_1 = __importDefault(require("../Grid"));
31
- var sort_1 = require("../../List/demo/sort");
31
+ // import {items} from '../../List/demo/sort';
32
32
  /**
33
33
  * Grid with sorting
34
34
  * @order 7
35
35
  * @col 8
36
36
  */
37
37
  exports["default"] = (function () { return (React.createElement(React.Fragment, null,
38
- React.createElement(Grid_1["default"], { listId: 'GridSortDemo', items: sort_1.items, columns: [
38
+ React.createElement(Grid_1["default"], { listId: 'GridSortDemo',
39
+ // items={items}
40
+ columns: [
39
41
  {
40
42
  attribute: 'title',
41
43
  label: 'Title'