@steroidsjs/core 3.0.0-beta.15 → 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 (97) hide show
  1. package/hoc/bem.d.ts +1 -1
  2. package/index.d.ts +2 -2
  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 +2 -2
  9. package/ui/content/Card/Card.d.ts +2 -2
  10. package/ui/content/CopyToClipboard/CopyToClipboard.d.ts +1 -1
  11. package/ui/content/Detail/Detail.d.ts +1 -1
  12. package/ui/content/DropDown/DropDown.d.ts +1 -1
  13. package/ui/content/Icon/Icon.d.ts +2 -2
  14. package/ui/form/Button/Button.d.ts +2 -2
  15. package/ui/form/CheckboxField/CheckboxField.d.ts +5 -0
  16. package/ui/form/CheckboxField/CheckboxField.js +30 -6
  17. package/ui/form/CheckboxListField/CheckboxListField.d.ts +7 -1
  18. package/ui/form/CheckboxListField/CheckboxListField.js +32 -7
  19. package/ui/form/DateField/DateField.d.ts +1 -1
  20. package/ui/form/DateRangeField/DateRangeField.d.ts +1 -1
  21. package/ui/form/DateTimeField/DateTimeField.d.ts +1 -1
  22. package/ui/form/DateTimeRangeField/DateTimeRangeField.d.ts +1 -1
  23. package/ui/form/DropDownField/DropDownField.d.ts +24 -21
  24. package/ui/form/DropDownField/DropDownField.js +87 -6
  25. package/ui/form/Field/fieldWrapper.d.ts +1 -1
  26. package/ui/form/FieldLayout/FieldLayout.d.ts +2 -2
  27. package/ui/form/FieldList/FieldList.d.ts +3 -3
  28. package/ui/form/FieldSet/FieldSet.d.ts +1 -1
  29. package/ui/form/Form/Form.d.ts +2 -2
  30. package/ui/form/InputField/InputField.d.ts +2 -2
  31. package/ui/form/RadioField/RadioField.d.ts +35 -0
  32. package/ui/form/RadioField/RadioField.js +61 -0
  33. package/ui/form/RadioField/index.d.ts +2 -0
  34. package/ui/{list/LayoutNames/demo/basic.js → form/RadioField/index.js} +2 -7
  35. package/ui/form/RadioListField/RadioListField.d.ts +6 -0
  36. package/ui/form/RadioListField/RadioListField.js +31 -2
  37. package/ui/form/TimeField/TimeField.d.ts +1 -1
  38. package/ui/form/index.d.ts +3 -1
  39. package/ui/form/index.js +4 -1
  40. package/ui/layout/Header/Header.d.ts +1 -1
  41. package/ui/layout/Loader/Loader.d.ts +1 -1
  42. package/ui/layout/Notifications/Notifications.d.ts +1 -1
  43. package/ui/layout/Skeleton/Skeleton.d.ts +2 -2
  44. package/ui/list/CheckboxColumn/CheckboxColumn.d.ts +1 -1
  45. package/ui/list/ControlsColumn/ControlsColumn.d.ts +1 -1
  46. package/ui/list/Grid/Grid.d.ts +1 -1
  47. package/ui/list/Grid/demo/sort.js +4 -2
  48. package/ui/list/Pagination/Pagination.d.ts +16 -6
  49. package/ui/list/Pagination/Pagination.js +15 -7
  50. package/ui/list/PaginationSize/demo/basic.js +2 -3
  51. package/ui/list/PaginationSize/demo/size.js +2 -3
  52. package/ui/list/SearchForm/demo/basic.js +5 -2
  53. package/ui/list/Steps/Steps.d.ts +3 -3
  54. package/ui/modal/TwoFactorModal/TwoFactorModal.d.ts +1 -1
  55. package/ui/nav/Breadcrumbs/Breadcrumbs.d.ts +9 -0
  56. package/ui/nav/Controls/Controls.d.ts +3 -3
  57. package/ui/nav/Nav/Nav.d.ts +2 -2
  58. package/ui/nav/Tree/Tree.d.ts +1 -1
  59. package/ui/typography/Text/Text.d.ts +2 -2
  60. package/ui/typography/Title/Title.d.ts +2 -2
  61. package/ui/form/CheckboxListField/demo/basic.d.ts +0 -9
  62. package/ui/form/CheckboxListField/demo/basic.js +0 -43
  63. package/ui/form/CheckboxListField/demo/disabled.d.ts +0 -8
  64. package/ui/form/CheckboxListField/demo/disabled.js +0 -38
  65. package/ui/form/CheckboxListField/demo/errors.d.ts +0 -8
  66. package/ui/form/CheckboxListField/demo/errors.js +0 -38
  67. package/ui/form/CheckboxListField/demo/required.d.ts +0 -8
  68. package/ui/form/CheckboxListField/demo/required.js +0 -38
  69. package/ui/list/LayoutNames/demo/basic.d.ts +0 -7
  70. package/ui/list/List/demo/basic.d.ts +0 -12
  71. package/ui/list/List/demo/basic.js +0 -61
  72. package/ui/list/List/demo/condition.d.ts +0 -8
  73. package/ui/list/List/demo/condition.js +0 -90
  74. package/ui/list/List/demo/empty.d.ts +0 -8
  75. package/ui/list/List/demo/empty.js +0 -36
  76. package/ui/list/List/demo/layout.d.ts +0 -8
  77. package/ui/list/List/demo/layout.js +0 -49
  78. package/ui/list/List/demo/load-more.d.ts +0 -8
  79. package/ui/list/List/demo/load-more.js +0 -45
  80. package/ui/list/List/demo/pagination.d.ts +0 -8
  81. package/ui/list/List/demo/pagination.js +0 -45
  82. package/ui/list/List/demo/search-form.d.ts +0 -30
  83. package/ui/list/List/demo/search-form.js +0 -107
  84. package/ui/list/List/demo/sort.d.ts +0 -17
  85. package/ui/list/List/demo/sort.js +0 -92
  86. package/ui/list/Pagination/demo/basic.d.ts +0 -8
  87. package/ui/list/Pagination/demo/basic.js +0 -45
  88. package/ui/list/Pagination/demo/load-more.d.ts +0 -8
  89. package/ui/list/Pagination/demo/load-more.js +0 -41
  90. package/ui/list/Pagination/demo/sizes.d.ts +0 -8
  91. package/ui/list/Pagination/demo/sizes.js +0 -48
  92. package/ui/nav/Breadcrumbs/demo/basic.d.ts +0 -8
  93. package/ui/nav/Breadcrumbs/demo/basic.js +0 -37
  94. package/ui/nav/Breadcrumbs/demo/items.d.ts +0 -8
  95. package/ui/nav/Breadcrumbs/demo/items.js +0 -42
  96. package/ui/nav/Breadcrumbs/demo/page-title.d.ts +0 -8
  97. package/ui/nav/Breadcrumbs/demo/page-title.js +0 -37
@@ -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
@@ -155,7 +155,7 @@ export interface IFormViewProps {
155
155
  className?: CssClassName;
156
156
  isBordered?: boolean;
157
157
  autoFocus?: boolean;
158
- style?: any;
158
+ style?: CustomStyle;
159
159
  layout?: {
160
160
  layout: FormLayoutName | boolean;
161
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,13 +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: '',
85
+ multiple: false,
58
86
  errors: null,
59
- size: 'md'
87
+ size: 'md',
88
+ orientation: 'vertical'
60
89
  };
61
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';
@@ -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'
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import { ListControlPosition } from '../../../hooks/useList';
3
2
  import { IButtonProps } from '../../form/Button/Button';
4
3
  /**
5
4
  * Pagination
@@ -40,11 +39,6 @@ export interface IPaginationProps {
40
39
  * Дополнительный CSS-класс для элемента отображения
41
40
  */
42
41
  className?: CssClassName;
43
- /**
44
- * Расположение пагинации
45
- * @example 'both'
46
- */
47
- position?: ListControlPosition;
48
42
  buttonProps?: IButtonProps;
49
43
  /**
50
44
  * Переопределение view React компонента для кастомизации отображения
@@ -69,6 +63,16 @@ export interface IPaginationProps {
69
63
  * Список, для которого используется пагинация
70
64
  */
71
65
  list?: any;
66
+ /**
67
+ * Нужно ли отображать кнопки с шагом в одну страницу
68
+ * @example {'true'}
69
+ */
70
+ showSteps?: boolean;
71
+ /**
72
+ * Нужно ли отображать кнопки с шагом до первой / последней страницы
73
+ * @example {'true'}
74
+ */
75
+ showEdgeSteps?: boolean;
72
76
  [key: string]: any;
73
77
  }
74
78
  export interface IPaginationViewProps extends IPaginationProps {
@@ -80,6 +84,11 @@ export interface IPaginationViewProps extends IPaginationProps {
80
84
  }[];
81
85
  onSelect: (page: number) => void;
82
86
  onSelectNext: () => void;
87
+ onSelectPrev: () => void;
88
+ onSelectLast: () => void;
89
+ onSelectFirst: () => void;
90
+ isFirstPage: boolean;
91
+ isLastPage: boolean;
83
92
  }
84
93
  export declare const generatePages: (page: any, totalPages: any, aroundCount?: number) => any[];
85
94
  declare function Pagination(props: IPaginationProps): JSX.Element;
@@ -89,6 +98,7 @@ declare namespace Pagination {
89
98
  attribute: string;
90
99
  aroundCount: number;
91
100
  defaultValue: number;
101
+ size: string;
92
102
  loadMore: boolean;
93
103
  position: string;
94
104
  sizeAttribute: string;
@@ -44,6 +44,7 @@ var React = __importStar(require("react"));
44
44
  var hooks_1 = require("../../../hooks");
45
45
  var useForm_1 = __importDefault(require("../../../hooks/useForm"));
46
46
  var form_1 = require("../../../actions/form");
47
+ var FIRST_PAGE = 1;
47
48
  var generatePages = function (page, totalPages, aroundCount) {
48
49
  if (aroundCount === void 0) { aroundCount = 3; }
49
50
  if (!page || !totalPages) {
@@ -78,6 +79,8 @@ function Pagination(props) {
78
79
  });
79
80
  }) || initialValues, page = _e.page, pageSize = _e.pageSize;
80
81
  var totalPages = Math.ceil((((_c = props.list) === null || _c === void 0 ? void 0 : _c.total) || 0) / (pageSize || 1));
82
+ var isFirstPage = React.useMemo(function () { return page === FIRST_PAGE; }, [page]);
83
+ var isLastPage = React.useMemo(function () { return page === totalPages; }, [page, totalPages]);
81
84
  var pages = (0, react_1.useMemo)(function () { return (0, exports.generatePages)(page, totalPages, props.aroundCount)
82
85
  .map(function (pageItem, index, pagesArray) {
83
86
  // Номер страницы для '...' кнопки (выбирает страницу между двумя соседними пронумерованными)
@@ -99,26 +102,31 @@ function Pagination(props) {
99
102
  var onSelectNext = (0, react_1.useCallback)(function () {
100
103
  onSelect(page + 1);
101
104
  }, [onSelect, page]);
105
+ var onSelectPrev = (0, react_1.useCallback)(function () {
106
+ onSelect(page - 1);
107
+ }, [onSelect, page]);
108
+ var onSelectLast = (0, react_1.useCallback)(function () {
109
+ onSelect(totalPages);
110
+ }, [onSelect, totalPages]);
111
+ var onSelectFirst = (0, react_1.useCallback)(function () {
112
+ onSelect(FIRST_PAGE);
113
+ }, [onSelect]);
102
114
  if (!props.list || !page || !pageSize || props.list.total <= pageSize) {
103
115
  return null;
104
116
  }
105
117
  // Do not show in last page in 'loadMore' mode
106
- if (props.loadMore && page >= totalPages) {
118
+ if (props.loadMore && isLastPage) {
107
119
  return null;
108
120
  }
109
121
  var defaultView = (props.loadMore ? 'list.PaginationMoreView' : 'list.PaginationButtonView');
110
- return components.ui.renderView(props.view || defaultView, {
111
- totalPages: totalPages,
112
- pages: pages,
113
- onSelect: onSelect,
114
- onSelectNext: onSelectNext
115
- });
122
+ return components.ui.renderView(props.view || defaultView, __assign(__assign({}, props), { totalPages: totalPages, pages: pages, onSelect: onSelect, onSelectNext: onSelectNext, onSelectPrev: onSelectPrev, onSelectLast: onSelectLast, onSelectFirst: onSelectFirst, isFirstPage: isFirstPage, isLastPage: isLastPage }));
116
123
  }
117
124
  Pagination.defaultProps = {
118
125
  enable: true,
119
126
  attribute: 'page',
120
127
  aroundCount: 3,
121
128
  defaultValue: 1,
129
+ size: 'md',
122
130
  loadMore: false,
123
131
  position: 'bottom',
124
132
  sizeAttribute: 'pageSize'
@@ -28,7 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  exports.__esModule = true;
29
29
  var React = __importStar(require("react"));
30
30
  var PaginationSize_1 = __importDefault(require("../PaginationSize"));
31
- var basic_1 = require("../../../../ui/list/List/demo/basic");
31
+ // import {demoItems} from '../../../../ui/list/List/demo/basic';
32
32
  /**
33
33
  * Basic
34
34
  * @order 1
@@ -36,6 +36,5 @@ var basic_1 = require("../../../../ui/list/List/demo/basic");
36
36
  */
37
37
  exports["default"] = (function () { return (React.createElement(React.Fragment, null,
38
38
  React.createElement(PaginationSize_1["default"], { list: {
39
- pageSize: 3,
40
- items: basic_1.demoItems
39
+ pageSize: 3
41
40
  }, enable: true, attribute: 'pageSize', sizes: [3, 6, 9], defaultValue: 3, position: 'top' }))); });
@@ -28,7 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  exports.__esModule = true;
29
29
  var React = __importStar(require("react"));
30
30
  var PaginationSize_1 = __importDefault(require("../PaginationSize"));
31
- var basic_1 = require("../../../../ui/list/List/demo/basic");
31
+ // import {demoItems} from '../../../../ui/list/List/demo/basic';
32
32
  var sizes = {
33
33
  sm: 'Small',
34
34
  md: 'Middle',
@@ -44,6 +44,5 @@ exports["default"] = (function () { return (React.createElement(React.Fragment,
44
44
  .map(function (size) { return (React.createElement("div", { className: 'col', key: size },
45
45
  React.createElement("h6", null, sizes[size]),
46
46
  React.createElement(PaginationSize_1["default"], { list: {
47
- pageSize: 3,
48
- items: basic_1.demoItems
47
+ pageSize: 3
49
48
  }, enable: true, attribute: 'pageSize', sizes: [3, 6, 9], defaultValue: 3, size: size, position: 'top' }))); })))); });
@@ -28,12 +28,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  exports.__esModule = true;
29
29
  var React = __importStar(require("react"));
30
30
  var List_1 = __importDefault(require("../../List"));
31
- var search_form_1 = require("../../List/demo/search-form");
31
+ // import {searchForm, items} from '../../List/demo/search-form';
32
32
  /**
33
33
  * List with search form
34
34
  * @order 1
35
35
  * @col 6
36
36
  */
37
- exports["default"] = (function () { return (React.createElement(List_1["default"], { listId: 'ListDemoSearch', items: search_form_1.items, searchForm: search_form_1.searchForm, className: 'list-group', itemView: function (props) { return (React.createElement("div", { className: 'list-group-item' },
37
+ exports["default"] = (function () { return (React.createElement(List_1["default"], { listId: 'ListDemoSearch',
38
+ // items={items}
39
+ // searchForm={searchForm}
40
+ className: 'list-group', itemView: function (props) { return (React.createElement("div", { className: 'list-group-item' },
38
41
  React.createElement("div", null, props.item.name),
39
42
  React.createElement("div", null, "Category: ".concat(props.item.category)))); } })); });
@@ -3,16 +3,16 @@ interface IStepsProps {
3
3
  stepItems: IStepItem[];
4
4
  currentStep: number;
5
5
  isChangeable?: boolean;
6
- className?: string;
6
+ className?: CssClassName;
7
7
  onChange?: (index: number) => void;
8
8
  }
9
9
  export interface IStepsViewProps {
10
- className?: string;
10
+ className?: CssClassName;
11
11
  children?: React.ReactNode;
12
12
  }
13
13
  export interface IStepItemViewProps {
14
14
  stepItem: IStepItem;
15
- className?: string;
15
+ className?: CssClassName;
16
16
  index: number;
17
17
  status: string;
18
18
  disabled: boolean;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  interface ITwoFactorModalProps {
3
- view?: any;
3
+ view?: CustomView;
4
4
  providerName: string;
5
5
  onClose?: any;
6
6
  }
@@ -27,6 +27,15 @@ export interface IBreadcrumbsProps {
27
27
  * @example 'Каталог'
28
28
  */
29
29
  pageTitle?: string;
30
+ /**
31
+ * Показать иконку заменяющую первый роут
32
+ * @example true
33
+ */
34
+ showIcon?: boolean;
35
+ /**
36
+ * Кастомная иконка, заменяющая первый роут
37
+ */
38
+ customIcon?: string | React.ReactElement;
30
39
  /**
31
40
  * Переопределение view React компонента для кастомизации отображения
32
41
  * @example MyCustomView