kui-complex 0.0.44 → 0.0.46

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 (165) hide show
  1. package/Avatar/cjs/index.js +3 -3
  2. package/Avatar/cjs/index.js.map +1 -1
  3. package/Avatar/index.d.ts +1 -1
  4. package/Avatar/index.js +4 -4
  5. package/Avatar/index.js.map +1 -1
  6. package/ButtonSelect/cjs/index.js +12 -3
  7. package/ButtonSelect/cjs/index.js.map +1 -1
  8. package/ButtonSelect/index.js +12 -3
  9. package/ButtonSelect/index.js.map +1 -1
  10. package/ButtonTab/cjs/index.js +6 -5
  11. package/ButtonTab/cjs/index.js.map +1 -1
  12. package/ButtonTab/cjs/package.json +4 -1
  13. package/ButtonTab/index.d.ts +4 -2
  14. package/ButtonTab/index.js +4 -3
  15. package/ButtonTab/index.js.map +1 -1
  16. package/ButtonTab/package.json +4 -1
  17. package/ButtonsPanel/cjs/index.js +6 -6
  18. package/ButtonsPanel/cjs/index.js.map +1 -1
  19. package/ButtonsPanel/index.d.ts +3 -7
  20. package/ButtonsPanel/index.js +7 -7
  21. package/ButtonsPanel/index.js.map +1 -1
  22. package/CalendarHeaderWithSelect/cjs/index.js +36 -21
  23. package/CalendarHeaderWithSelect/cjs/index.js.map +1 -1
  24. package/CalendarHeaderWithSelect/cjs/package.json +1 -0
  25. package/CalendarHeaderWithSelect/index.d.ts +11 -6
  26. package/CalendarHeaderWithSelect/index.js +36 -21
  27. package/CalendarHeaderWithSelect/index.js.map +1 -1
  28. package/CalendarHeaderWithSelect/package.json +1 -0
  29. package/CalendarStandardContainer/cjs/index.js +4 -3
  30. package/CalendarStandardContainer/cjs/index.js.map +1 -1
  31. package/CalendarStandardContainer/index.d.ts +4 -3
  32. package/CalendarStandardContainer/index.js +4 -3
  33. package/CalendarStandardContainer/index.js.map +1 -1
  34. package/CalendarStandardHeader/cjs/index.js +4 -3
  35. package/CalendarStandardHeader/cjs/index.js.map +1 -1
  36. package/CalendarStandardHeader/index.d.ts +3 -1
  37. package/CalendarStandardHeader/index.js +4 -3
  38. package/CalendarStandardHeader/index.js.map +1 -1
  39. package/DesktopInputWithMonthPicker/cjs/index.js +11 -11
  40. package/DesktopInputWithMonthPicker/cjs/index.js.map +1 -1
  41. package/DesktopInputWithMonthPicker/index.d.ts +3 -1
  42. package/DesktopInputWithMonthPicker/index.js +12 -12
  43. package/DesktopInputWithMonthPicker/index.js.map +1 -1
  44. package/DesktopMenuPanel/cjs/index.js +10 -10
  45. package/DesktopMenuPanel/cjs/index.js.map +1 -1
  46. package/DesktopMenuPanel/index.d.ts +4 -2
  47. package/DesktopMenuPanel/index.js +8 -8
  48. package/DesktopMenuPanel/index.js.map +1 -1
  49. package/InputPassword/cjs/index.js +8 -8
  50. package/InputPassword/cjs/index.js.map +1 -1
  51. package/InputPassword/index.d.ts +6 -5
  52. package/InputPassword/index.js +9 -9
  53. package/InputPassword/index.js.map +1 -1
  54. package/InputSelect/cjs/index.js +12 -3
  55. package/InputSelect/cjs/index.js.map +1 -1
  56. package/InputSelect/index.js +12 -3
  57. package/InputSelect/index.js.map +1 -1
  58. package/InputSelectDropdown/cjs/index.js +12 -3
  59. package/InputSelectDropdown/cjs/index.js.map +1 -1
  60. package/InputSelectDropdown/index.d.ts +4 -2
  61. package/InputSelectDropdown/index.js +12 -3
  62. package/InputSelectDropdown/index.js.map +1 -1
  63. package/InputTextAreaMobile/cjs/index.js +3 -3
  64. package/InputTextAreaMobile/cjs/index.js.map +1 -1
  65. package/InputTextAreaMobile/index.d.ts +3 -1
  66. package/InputTextAreaMobile/index.js +3 -3
  67. package/InputTextAreaMobile/index.js.map +1 -1
  68. package/InputWithController/cjs/index.js +2 -2
  69. package/InputWithController/cjs/index.js.map +1 -1
  70. package/InputWithController/index.d.ts +5 -5
  71. package/InputWithController/index.js +2 -2
  72. package/InputWithController/index.js.map +1 -1
  73. package/InputWithDatePicker/cjs/index.js +84 -41
  74. package/InputWithDatePicker/cjs/index.js.map +1 -1
  75. package/InputWithDatePicker/index.d.ts +6 -1
  76. package/InputWithDatePicker/index.js +86 -42
  77. package/InputWithDatePicker/index.js.map +1 -1
  78. package/InputWithMonthPicker/cjs/index.js +17 -17
  79. package/InputWithMonthPicker/cjs/index.js.map +1 -1
  80. package/InputWithMonthPicker/index.js +18 -18
  81. package/InputWithMonthPicker/index.js.map +1 -1
  82. package/MenuItem/cjs/index.js +7 -7
  83. package/MenuItem/cjs/index.js.map +1 -1
  84. package/MenuItem/index.d.ts +4 -2
  85. package/MenuItem/index.js +5 -5
  86. package/MenuItem/index.js.map +1 -1
  87. package/MenuPanel/cjs/index.js +13 -13
  88. package/MenuPanel/cjs/index.js.map +1 -1
  89. package/MenuPanel/index.d.ts +4 -7
  90. package/MenuPanel/index.js +15 -15
  91. package/MenuPanel/index.js.map +1 -1
  92. package/MobileInputWithMonthPicker/cjs/index.js +13 -13
  93. package/MobileInputWithMonthPicker/cjs/index.js.map +1 -1
  94. package/MobileInputWithMonthPicker/index.d.ts +3 -1
  95. package/MobileInputWithMonthPicker/index.js +14 -14
  96. package/MobileInputWithMonthPicker/index.js.map +1 -1
  97. package/MobileMenuPanel/cjs/index.js +11 -11
  98. package/MobileMenuPanel/cjs/index.js.map +1 -1
  99. package/MobileMenuPanel/index.d.ts +4 -2
  100. package/MobileMenuPanel/index.js +8 -8
  101. package/MobileMenuPanel/index.js.map +1 -1
  102. package/ModalFooter/cjs/index.js +4 -3
  103. package/ModalFooter/cjs/index.js.map +1 -1
  104. package/ModalFooter/index.d.ts +6 -8
  105. package/ModalFooter/index.js +5 -4
  106. package/ModalFooter/index.js.map +1 -1
  107. package/MonthPickerContainer/cjs/index.js +5 -4
  108. package/MonthPickerContainer/cjs/index.js.map +1 -1
  109. package/MonthPickerContainer/index.d.ts +1 -1
  110. package/MonthPickerContainer/index.js +5 -4
  111. package/MonthPickerContainer/index.js.map +1 -1
  112. package/MonthPickerHeader/cjs/index.js +4 -3
  113. package/MonthPickerHeader/cjs/index.js.map +1 -1
  114. package/MonthPickerHeader/index.d.ts +3 -1
  115. package/MonthPickerHeader/index.js +5 -4
  116. package/MonthPickerHeader/index.js.map +1 -1
  117. package/PassportStrengthBar/cjs/index.js +4 -3
  118. package/PassportStrengthBar/cjs/index.js.map +1 -1
  119. package/PassportStrengthBar/cjs/package.json +4 -1
  120. package/PassportStrengthBar/index.d.ts +4 -2
  121. package/PassportStrengthBar/index.js +5 -4
  122. package/PassportStrengthBar/index.js.map +1 -1
  123. package/PassportStrengthBar/package.json +4 -1
  124. package/SelectMonth/cjs/index.js +19 -10
  125. package/SelectMonth/cjs/index.js.map +1 -1
  126. package/SelectMonth/index.d.ts +6 -2
  127. package/SelectMonth/index.js +19 -10
  128. package/SelectMonth/index.js.map +1 -1
  129. package/SelectYear/cjs/index.js +21 -10
  130. package/SelectYear/cjs/index.js.map +1 -1
  131. package/SelectYear/index.d.ts +6 -5
  132. package/SelectYear/index.js +21 -10
  133. package/SelectYear/index.js.map +1 -1
  134. package/Switch/cjs/index.js +4 -3
  135. package/Switch/cjs/index.js.map +1 -1
  136. package/Switch/cjs/package.json +1 -0
  137. package/Switch/index.d.ts +8 -6
  138. package/Switch/index.js +4 -3
  139. package/Switch/index.js.map +1 -1
  140. package/Switch/package.json +1 -0
  141. package/Table/cjs/index.js +2 -1
  142. package/Table/cjs/index.js.map +1 -1
  143. package/Table/index.d.ts +1 -1
  144. package/Table/index.js +2 -1
  145. package/Table/index.js.map +1 -1
  146. package/TableRow/cjs/index.js +14 -4
  147. package/TableRow/cjs/index.js.map +1 -1
  148. package/TableRow/index.d.ts +1 -1
  149. package/TableRow/index.js +15 -4
  150. package/TableRow/index.js.map +1 -1
  151. package/TestForm/cjs/index.js +111 -66
  152. package/TestForm/cjs/index.js.map +1 -1
  153. package/TestForm/index.js +112 -67
  154. package/TestForm/index.js.map +1 -1
  155. package/UndefinedAvatar/cjs/index.js +4 -3
  156. package/UndefinedAvatar/cjs/index.js.map +1 -1
  157. package/UndefinedAvatar/index.d.ts +5 -6
  158. package/UndefinedAvatar/index.js +5 -4
  159. package/UndefinedAvatar/index.js.map +1 -1
  160. package/cjs/index.js +140 -96
  161. package/cjs/index.js.map +1 -1
  162. package/index.d.ts +75 -60
  163. package/index.js +142 -98
  164. package/index.js.map +1 -1
  165. package/package.json +1 -1
package/index.js CHANGED
@@ -6,18 +6,18 @@ import { css, Global } from '@emotion/react';
6
6
  import * as React from 'react';
7
7
  import { forwardRef, useEffect, useRef, useState } from 'react';
8
8
  import { jsx, jsxs as jsxs$1, Fragment as Fragment$1 } from 'react/jsx-runtime';
9
- import { theme, Caption, Button, Container, Grid, InputWithAdornments, Heading, IconButton, InputWithMask as InputWithMask$1, LinearProgress, Divider, Modal, Switch as Switch$1, InputWithCountryDropdown } from 'kui-basic';
9
+ import { Caption, theme, Button, Container, Grid, InputWithAdornments, Heading, IconButton, InputWithMask as InputWithMask$1, LinearProgress, Divider, Modal, Switch as Switch$1, InputWithCountryDropdown } from 'kui-basic';
10
10
  import { useNavigate } from 'react-router-dom';
11
+ import { DateTime } from 'luxon';
11
12
  import { HalfArrowIcon, PrevArrowIcon, NextArrowIcon, CalendarIcon, ArrowBackIcon, ArrowNextIcon, ClosedEyeIcon, OpenEyeIcon, CheckIcon } from 'kui-icon';
12
13
  import _ from 'lodash';
13
- import DatePicker, { registerLocale } from 'react-datepicker';
14
+ import DatePicker from 'react-datepicker';
14
15
  import { Controller, useController } from 'react-hook-form';
15
16
  import InputMask from 'react-input-mask';
16
17
  import { scroller, Events, Link, animateScroll, Element } from 'react-scroll';
17
18
  import ru from 'date-fns/locale/ru';
18
- import { DateTime } from 'luxon';
19
- import Swiper from 'react-id-swiper';
20
19
  import { useLocation } from 'react-router';
20
+ import Swiper from 'react-id-swiper';
21
21
  import * as ReactDOM from 'react-dom';
22
22
  import classNames from 'classnames';
23
23
 
@@ -64,7 +64,7 @@ function __makeTemplateObject(cooked, raw) {
64
64
  return cooked;
65
65
  }
66
66
 
67
- var UndefinedAvatar = function (_a) {
67
+ var UndefinedAvatar = forwardRef(function (_a, ref) {
68
68
  var label = _a.label, otherProps = __rest(_a, ["label"]);
69
69
  if (!label) {
70
70
  return jsx("div", {});
@@ -74,8 +74,8 @@ var UndefinedAvatar = function (_a) {
74
74
  .map(function (el) { return el[0]; })
75
75
  .slice(0, 3)
76
76
  .join("");
77
- return (jsx(Wrapper$8, __assign({ "data-testid": "undefined_avatar" }, { children: jsx(Caption, __assign({ size: "xs", weight: 600, colorGroup: "brand", color: "main" }, otherProps, { children: formattedLabel })) })));
78
- };
77
+ return (jsx(Wrapper$8, __assign({ "data-testid": "undefined_avatar", ref: ref }, { children: jsx(Caption, __assign({ size: "xs", weight: 600, colorGroup: "brand", color: "main" }, otherProps, { children: formattedLabel })) })));
78
+ });
79
79
  var Wrapper$8 = styled.div(templateObject_1$u || (templateObject_1$u = __makeTemplateObject(["\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: ", ";\n display: flex;\n justify-content: center;\n align-items: center;\n &,\n p {\n transition: all ease-out 0.3s;\n }\n @media (min-width: 900px) {\n &:hover {\n background-color: ", ";\n p {\n color: white;\n }\n }\n }\n"], ["\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: ", ";\n display: flex;\n justify-content: center;\n align-items: center;\n &,\n p {\n transition: all ease-out 0.3s;\n }\n @media (min-width: 900px) {\n &:hover {\n background-color: ", ";\n p {\n color: white;\n }\n }\n }\n"])), theme.palette.brand.light, theme.palette.brand.main);
80
80
  var templateObject_1$u;
81
81
 
@@ -98,18 +98,18 @@ var sizeStyles = {
98
98
  };
99
99
  var templateObject_1$t, templateObject_2$f, templateObject_3$7, templateObject_4$2, templateObject_5$1, templateObject_6;
100
100
 
101
- var ButtonTab = function (_a) {
101
+ var ButtonTab = forwardRef(function (_a, ref) {
102
102
  var index = _a.index, onClick = _a.onClick, isActive = _a.isActive, label = _a.label;
103
103
  var handleClick = function () {
104
104
  onClick(index);
105
105
  };
106
- return (jsx$1(StyledButton, __assign({ variant: isActive ? "orange" : "white", captionWeight: isActive ? 600 : 400, onClick: handleClick, css: !isActive && inactiveStyles, size: "s" }, { children: label })));
107
- };
106
+ return (jsx$1(StyledButton, __assign({ variant: isActive ? "orange" : "white", captionWeight: isActive ? 600 : 400, onClick: handleClick, css: !isActive && inactiveStyles, size: "s", ref: ref }, { children: label })));
107
+ });
108
108
  var StyledButton = styled(Button)(templateObject_1$s || (templateObject_1$s = __makeTemplateObject(["\n margin-right: 24px;\n &:last-of-type {\n margin-right: 0;\n }\n"], ["\n margin-right: 24px;\n &:last-of-type {\n margin-right: 0;\n }\n"])));
109
109
  var inactiveStyles = css(templateObject_2$e || (templateObject_2$e = __makeTemplateObject(["\n p {\n color: ", ";\n }\n"], ["\n p {\n color: ", ";\n }\n"])), theme.palette.grey.seventy);
110
110
  var templateObject_1$s, templateObject_2$e;
111
111
 
112
- var ButtonsPanel = function (_a) {
112
+ var ButtonsPanel = forwardRef(function (_a, ref) {
113
113
  var tabs = _a.tabs, tabPanels = _a.tabPanels, paths = _a.paths, activeTab = _a.activeTab, isSticky = _a.isSticky, onChange = _a.onChange, otherProps = __rest(_a, ["tabs", "tabPanels", "paths", "activeTab", "isSticky", "onChange"]);
114
114
  var _b = React.useState(Number(activeTab)), value = _b[0], setValue = _b[1];
115
115
  var navigate = useNavigate();
@@ -125,8 +125,8 @@ var ButtonsPanel = function (_a) {
125
125
  useEffect(function () {
126
126
  setValue(Number(activeTab));
127
127
  }, [activeTab]);
128
- return (jsxs(Fragment, { children: [jsx$1(StyledContainer$1, __assign({ css: isSticky && { position: "sticky" } }, otherProps, { children: jsx$1(Container, { children: tabs.map(function (item, index) { return (jsx$1(ButtonTab, { index: index, onClick: handleChange, isActive: index === value, label: item.label }, item.label)); }) }) })), tabPanels.map(function (item, index) { return (jsx$1(Content, __assign({ role: "tabpanel", hidden: value !== index }, { children: value === index && jsx$1(Fragment, { children: item }) }), index)); })] }));
129
- };
128
+ return (jsxs(Fragment, { children: [jsx$1(StyledContainer$1, __assign({ css: isSticky && { position: "sticky" }, ref: ref }, otherProps, { children: jsx$1(Container, { children: tabs.map(function (item, index) { return (jsx$1(ButtonTab, { index: index, onClick: handleChange, isActive: index === value, label: item.label }, item.label)); }) }) })), tabPanels.map(function (item, index) { return (jsx$1(Content, __assign({ role: "tabpanel", hidden: value !== index }, { children: value === index && jsx$1(Fragment, { children: item }) }), index)); })] }));
129
+ });
130
130
  ButtonsPanel.defaultProps = {
131
131
  isSticky: false,
132
132
  };
@@ -169,7 +169,7 @@ var InputDropdown = forwardRef(function (_a, ref) {
169
169
  });
170
170
  var templateObject_1$q;
171
171
 
172
- var InputSelectDropdown = function (_a) {
172
+ var InputSelectDropdown = forwardRef(function (_a, ref) {
173
173
  var options = _a.options, inputRef = _a.inputRef, isOpenDropdown = _a.isOpenDropdown, handleCloseDropdown = _a.handleCloseDropdown, handleSelect = _a.handleSelect, selectedValue = _a.selectedValue;
174
174
  var dropdownRef = useRef(null);
175
175
  useEffect(function () {
@@ -186,11 +186,20 @@ var InputSelectDropdown = function (_a) {
186
186
  }
187
187
  }
188
188
  }, [isOpenDropdown]);
189
- return (jsx$1(InputDropdown, __assign({ ref: dropdownRef, buttonRef: inputRef, isOpen: isOpenDropdown, handleClose: handleCloseDropdown, css: {
189
+ var forwardedRef = function (elem) {
190
+ if (ref) {
191
+ if (typeof ref === "function")
192
+ ref(elem);
193
+ else
194
+ ref.current = elem;
195
+ }
196
+ dropdownRef.current = elem;
197
+ };
198
+ return (jsx$1(InputDropdown, __assign({ ref: forwardedRef, buttonRef: inputRef, isOpen: isOpenDropdown, handleClose: handleCloseDropdown, css: {
190
199
  maxHeight: "142px",
191
200
  padding: "4px",
192
201
  } }, { children: options.map(function (option, key) { return (jsx$1(OptionWrapper, __assign({ onClick: function () { return handleSelect(option); }, "data-value": "autocomplete_option_".concat(option.value), "data-testid": "autocomplete_option_".concat(key) }, { children: jsx$1(StyledOption, __assign({ css: selectedValue === option.value && selectedStyles }, { children: jsx$1(Caption, __assign({ size: "sm", weight: 500 }, { children: option.label })) })) }), option.label)); }) })));
193
- };
202
+ });
194
203
  var OptionWrapper = styled.div(templateObject_1$p || (templateObject_1$p = __makeTemplateObject(["\n width: 100%;\n padding: 2px 0;\n cursor: pointer;\n"], ["\n width: 100%;\n padding: 2px 0;\n cursor: pointer;\n"])));
195
204
  var StyledOption = styled.div(templateObject_2$c || (templateObject_2$c = __makeTemplateObject(["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n &:hover {\n background-color: ", ";\n }\n"], ["\n padding: 8px;\n transition: all ease-out 0.3s;\n border-radius: 4px;\n &:hover {\n background-color: ", ";\n }\n"])), theme.palette.background.light1);
196
205
  var selectedStyles = css(templateObject_3$6 || (templateObject_3$6 = __makeTemplateObject(["\n background-color: ", ";\n"], ["\n background-color: ", ";\n"])), theme.palette.background.light1);
@@ -272,13 +281,16 @@ var StyledInput = styled(InputWithAdornments)(templateObject_2$b || (templateObj
272
281
  var StyledIconWrapper = styled.div(templateObject_3$5 || (templateObject_3$5 = __makeTemplateObject(["\n padding-right: 8px;\n padding-bottom: 4px;\n"], ["\n padding-right: 8px;\n padding-bottom: 4px;\n"])));
273
282
  var templateObject_1$o, templateObject_2$b, templateObject_3$5;
274
283
 
275
- var SelectYear = function (_a) {
276
- var yearOptions = _a.yearOptions; _a.options; var props = __rest(_a, ["yearOptions", "options"]);
277
- return (
278
- // @ts-ignore
279
- jsx(InputSelect, __assign({ label: "Year", options: yearOptions }, props)));
280
- };
284
+ var checkDisabled$1 = function (year, min, max) {
285
+ return (min && year <= min) || (max && year >= max);
286
+ };
287
+ var SelectYear = forwardRef(function (_a, ref) {
288
+ var yearOptions = _a.yearOptions; _a.options; var min = _a.min, max = _a.max, props = __rest(_a, ["yearOptions", "options", "min", "max"]);
289
+ var formattedYearOptions = yearOptions.map(function (year) { return (__assign(__assign({}, year), { disabled: checkDisabled$1(Number(year.value), min, max) })); });
290
+ return (jsx(InputSelect, __assign({ ref: ref, label: "Year", options: formattedYearOptions }, props)));
291
+ });
281
292
 
293
+ var checkDisabled = function (month, min, max) { return (min && month <= min) || (max && month >= max); };
282
294
  var monthValues = [
283
295
  { value: 0, label: "January" },
284
296
  { value: 1, label: "February" },
@@ -293,34 +305,36 @@ var monthValues = [
293
305
  { value: 10, label: "November" },
294
306
  { value: 11, label: "December" },
295
307
  ];
296
- var SelectMonth = function (_a) {
297
- _a.options; var props = __rest(_a, ["options"]);
298
- return (
299
- // @ts-ignore
300
- jsx(InputSelect, __assign({ label: "Month", options: monthValues }, props)));
301
- };
308
+ var SelectMonth = forwardRef(function (props, ref) {
309
+ var min = props.min, max = props.max; props.options; var other = __rest(props, ["min", "max", "options"]);
310
+ var formattedMonths = monthValues.map(function (month) { return (__assign(__assign({}, month), { disabled: checkDisabled(month.value, min, max) })); });
311
+ return (jsx(InputSelect, __assign({ ref: ref, label: "Month", options: formattedMonths }, other)));
312
+ });
302
313
 
303
- var CalendarHeaderWithSelect = function (_a) {
304
- var changeMonth = _a.changeMonth, changeYear = _a.changeYear, date = _a.date, yearOptions = _a.yearOptions;
314
+ var CalendarHeaderWithSelect = forwardRef(function (_a, ref) {
315
+ var changeMonth = _a.changeMonth, changeYear = _a.changeYear, date = _a.date, yearOptions = _a.yearOptions, max = _a.max, min = _a.min;
305
316
  var year = date.getFullYear();
306
- var month = date.getMonth() + 1;
307
- return (jsx(Wrapper$5, { children: jsxs$1(Grid, __assign({ container: true, spacing: 2 }, { children: [jsx(Grid, __assign({ item: true, xs: 6 }, { children: jsx(SelectYear, { yearOptions: yearOptions, value: year, handleChange: changeYear }) })), jsx(Grid, __assign({ item: true, xs: 6 }, { children: jsx(SelectMonth, { value: month, handleChange: changeMonth }) }))] })) }));
308
- };
317
+ var month = date.getMonth();
318
+ var currentYear = DateTime.now().year;
319
+ var minMonth = (min === null || min === void 0 ? void 0 : min.year) === currentYear ? min === null || min === void 0 ? void 0 : min.month : 0;
320
+ var maxMonth = (max === null || max === void 0 ? void 0 : max.year) === currentYear ? max === null || max === void 0 ? void 0 : max.month : 11;
321
+ return (jsx(Wrapper$5, __assign({ ref: ref }, { children: jsxs$1(Grid, __assign({ container: true, spacing: 2 }, { children: [jsx(Grid, __assign({ item: true, xs: 6 }, { children: jsx(SelectYear, { min: min === null || min === void 0 ? void 0 : min.year, max: max === null || max === void 0 ? void 0 : max.year, yearOptions: yearOptions, value: year, handleChange: changeYear }) })), jsx(Grid, __assign({ item: true, xs: 6 }, { children: jsx(SelectMonth, { min: (Number(min === null || min === void 0 ? void 0 : min.year) >= currentYear && minMonth), max: (Number(max === null || max === void 0 ? void 0 : max.year) <= currentYear && maxMonth), value: month, handleChange: changeMonth }) }))] })) })));
322
+ });
309
323
  var Wrapper$5 = styled.div(templateObject_1$n || (templateObject_1$n = __makeTemplateObject(["\n margin-bottom: 24px;\n @media (max-width: 900px) {\n padding: 0 18px;\n margin-bottom: 20px;\n }\n"], ["\n margin-bottom: 24px;\n @media (max-width: 900px) {\n padding: 0 18px;\n margin-bottom: 20px;\n }\n"])));
310
324
  var templateObject_1$n;
311
325
 
312
- var CalendarStandardContainer = function (_a) {
326
+ var CalendarStandardContainer = forwardRef(function (_a, ref) {
313
327
  _a.arrowProps; _a.showPopperArrow; var props = __rest(_a, ["arrowProps", "showPopperArrow"]);
314
- return jsx(DatePickerContainer, __assign({}, props));
315
- };
328
+ return jsx(DatePickerContainer, __assign({ ref: ref }, props));
329
+ });
316
330
  var DatePickerContainer = styled.div(templateObject_1$m || (templateObject_1$m = __makeTemplateObject(["\n padding: 0;\n border: none !important;\n border-radius: 0 !important;\n background: transparent !important;\n overflow: hidden;\n width: 100%;\n height: 100%;\n .react-datepicker__header {\n background-color: transparent !important;\n }\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__day-names {\n display: flex;\n justify-content: space-between;\n .react-datepicker__day-name {\n font-family: \"Inter\", sans-serif;\n font-weight: 600;\n font-size: 14px;\n color: ", ";\n text-transform: uppercase;\n margin: 0;\n width: 33px;\n line-height: normal;\n }\n }\n .react-datepicker__month {\n padding: 0;\n margin: 20px 0 0 !important;\n border: none;\n width: 100%;\n height: calc(100% - 85px);\n .react-datepicker__week {\n display: flex;\n justify-content: space-between;\n }\n }\n .react-datepicker__week {\n margin-bottom: 10px;\n &:last-of-type {\n margin-bottom: 0;\n }\n }\n .react-datepicker__day {\n width: 33px;\n height: 33px;\n user-select: none;\n border-radius: 50% !important;\n transition: background ease-out 0.3s;\n border: 1px solid transparent;\n margin: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: 500;\n font-size: 16px;\n &:hover {\n background: ", ";\n }\n &:active {\n background: ", ";\n }\n }\n .react-datepicker__day--outside-month,\n .react-datepicker__day--disabled {\n color: #a6aebc;\n p {\n color: #a6aebc;\n }\n }\n .react-datepicker__day--keyboard-selected {\n background: transparent;\n color: inherit;\n }\n .react-datepicker__day--selected {\n background: white;\n border: 1px solid #e1e4e8;\n color: ", ";\n p {\n color: ", ";\n }\n }\n .react-datepicker__day--selected.warning_day {\n border-color: ", ";\n background-color: ", ";\n color: ", ";\n }\n @media (max-width: 600px) {\n .react-datepicker__day {\n max-width: 48px;\n max-height: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n height: calc((100vw - (18px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n max-width: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n }\n }\n }\n @media (max-width: 350px) {\n .react-datepicker__day {\n width: calc((100vw - (6px * 7)) / 7);\n height: calc((100vw - (6px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n width: calc((100vw - (6px * 7)) / 7);\n }\n }\n }\n"], ["\n padding: 0;\n border: none !important;\n border-radius: 0 !important;\n background: transparent !important;\n overflow: hidden;\n width: 100%;\n height: 100%;\n .react-datepicker__header {\n background-color: transparent !important;\n }\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__day-names {\n display: flex;\n justify-content: space-between;\n .react-datepicker__day-name {\n font-family: \"Inter\", sans-serif;\n font-weight: 600;\n font-size: 14px;\n color: ", ";\n text-transform: uppercase;\n margin: 0;\n width: 33px;\n line-height: normal;\n }\n }\n .react-datepicker__month {\n padding: 0;\n margin: 20px 0 0 !important;\n border: none;\n width: 100%;\n height: calc(100% - 85px);\n .react-datepicker__week {\n display: flex;\n justify-content: space-between;\n }\n }\n .react-datepicker__week {\n margin-bottom: 10px;\n &:last-of-type {\n margin-bottom: 0;\n }\n }\n .react-datepicker__day {\n width: 33px;\n height: 33px;\n user-select: none;\n border-radius: 50% !important;\n transition: background ease-out 0.3s;\n border: 1px solid transparent;\n margin: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: 500;\n font-size: 16px;\n &:hover {\n background: ", ";\n }\n &:active {\n background: ", ";\n }\n }\n .react-datepicker__day--outside-month,\n .react-datepicker__day--disabled {\n color: #a6aebc;\n p {\n color: #a6aebc;\n }\n }\n .react-datepicker__day--keyboard-selected {\n background: transparent;\n color: inherit;\n }\n .react-datepicker__day--selected {\n background: white;\n border: 1px solid #e1e4e8;\n color: ", ";\n p {\n color: ", ";\n }\n }\n .react-datepicker__day--selected.warning_day {\n border-color: ", ";\n background-color: ", ";\n color: ", ";\n }\n @media (max-width: 600px) {\n .react-datepicker__day {\n max-width: 48px;\n max-height: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n height: calc((100vw - (18px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n max-width: 48px;\n width: calc((100vw - (18px * 7)) / 7);\n }\n }\n }\n @media (max-width: 350px) {\n .react-datepicker__day {\n width: calc((100vw - (6px * 7)) / 7);\n height: calc((100vw - (6px * 7)) / 7);\n }\n .react-datepicker__day-names {\n .react-datepicker__day-name {\n width: calc((100vw - (6px * 7)) / 7);\n }\n }\n }\n"])), theme.palette.grey.fiftyP, theme.palette.background.light3, theme.palette.background.light3, theme.palette.brand.main, theme.palette.brand.main, theme.palette.grey.fifteenB, theme.palette.red.seventy, theme.palette.grey.zero);
317
331
  var templateObject_1$m;
318
332
 
319
- var CalendarStandardHeader = function (_a) {
333
+ var CalendarStandardHeader = forwardRef(function (_a, ref) {
320
334
  var decreaseMonth = _a.decreaseMonth, increaseMonth = _a.increaseMonth, nextMonthButtonDisabled = _a.nextMonthButtonDisabled, prevMonthButtonDisabled = _a.prevMonthButtonDisabled, date = _a.date;
321
335
  var title = _.capitalize(date.toLocaleString("ru", { month: "long", year: "numeric" })).slice(0, -3);
322
- return (jsxs$1(HeaderWrapper, __assign({ container: true, alignItems: "center", justify: "space-between" }, { children: [jsx(Grid, __assign({ item: true }, { children: jsx(StyledHeading, __assign({ size: "h4" }, { children: title })) })), jsx(Grid, __assign({ item: true }, { children: jsxs$1(Grid, __assign({ container: true, spacing: 2 }, { children: [jsx(Grid, __assign({ item: true }, { children: jsx(CircleButtonStyled, __assign({ isCircle: true, size: "xs", "data-testid": "prev_month_button", variant: "white", disabled: prevMonthButtonDisabled, onClick: decreaseMonth }, { children: jsx(PrevArrowIcon, { width: 10, height: 10 }) })) })), jsx(Grid, __assign({ item: true }, { children: jsx(CircleButtonStyled, __assign({ isCircle: true, size: "xs", variant: "white", disabled: nextMonthButtonDisabled, onClick: increaseMonth }, { children: jsx(NextArrowIcon, { width: 10, height: 10 }) })) }))] })) }))] })));
323
- };
336
+ return (jsxs$1(HeaderWrapper, __assign({ container: true, alignItems: "center", justify: "space-between", ref: ref }, { children: [jsx(Grid, __assign({ item: true }, { children: jsx(StyledHeading, __assign({ size: "h4" }, { children: title })) })), jsx(Grid, __assign({ item: true }, { children: jsxs$1(Grid, __assign({ container: true, spacing: 2 }, { children: [jsx(Grid, __assign({ item: true }, { children: jsx(CircleButtonStyled, __assign({ isCircle: true, size: "xs", "data-testid": "prev_month_button", variant: "white", disabled: prevMonthButtonDisabled, onClick: decreaseMonth }, { children: jsx(PrevArrowIcon, { width: 10, height: 10 }) })) })), jsx(Grid, __assign({ item: true }, { children: jsx(CircleButtonStyled, __assign({ isCircle: true, size: "xs", variant: "white", disabled: nextMonthButtonDisabled, onClick: increaseMonth }, { children: jsx(NextArrowIcon, { width: 10, height: 10 }) })) }))] })) }))] })));
337
+ });
324
338
  var HeaderWrapper = styled(Grid)(templateObject_1$l || (templateObject_1$l = __makeTemplateObject(["\n padding: 0 6px 34px;\n @media (max-width: 600px) {\n h2 {\n font-size: 16px;\n }\n }\n"], ["\n padding: 0 6px 34px;\n @media (max-width: 600px) {\n h2 {\n font-size: 16px;\n }\n }\n"])));
325
339
  var StyledHeading = styled(Heading)(templateObject_2$a || (templateObject_2$a = __makeTemplateObject(["\n @media (max-width: 600px) {\n font-weight: 700;\n }\n"], ["\n @media (max-width: 600px) {\n font-weight: 700;\n }\n"])));
326
340
  var CircleButtonStyled = styled(Button)(templateObject_3$4 || (templateObject_3$4 = __makeTemplateObject(["\n border-color: transparent !important;\n &:disabled {\n background-color: white !important;\n }\n"], ["\n border-color: transparent !important;\n &:disabled {\n background-color: white !important;\n }\n"])));
@@ -342,33 +356,33 @@ var InputForDatepicker = forwardRef(function (_a, ref) {
342
356
  var IconWrapper = styled.div(templateObject_1$k || (templateObject_1$k = __makeTemplateObject(["\n display: flex;\n align-items: center;\n cursor: pointer;\n z-index: 1;\n"], ["\n display: flex;\n align-items: center;\n cursor: pointer;\n z-index: 1;\n"])));
343
357
  var templateObject_1$k;
344
358
 
345
- var MonthPickerContainer = function (_a) {
359
+ var MonthPickerContainer = forwardRef(function (_a, ref) {
346
360
  _a.arrowProps; _a.showPopperArrow; var props = __rest(_a, ["arrowProps", "showPopperArrow"]);
347
- return jsx(StyledContainer, __assign({}, props));
348
- };
349
- var StyledContainer = styled.div(templateObject_1$j || (templateObject_1$j = __makeTemplateObject(["\n box-shadow: 0px 26px 34px rgba(0, 0, 0, 0.1);\n border-radius: 12px !important;\n border: 1px solid ", " !important;\n background: #fff;\n overflow: hidden;\n z-index: 5;\n .react-datepicker-wrapper,\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n .react-datepicker__header,\n .react-datepicker__header:not(.react-datepicker__header--has-time-select) {\n padding: 0;\n border: none;\n background-color: #fff;\n }\n .react-datepicker__month {\n margin: 0px 8px 8px !important;\n border-radius: 12px;\n border: 1px solid ", ";\n width: 238px;\n height: 169px;\n display: flex;\n flex-direction: column;\n }\n .react-datepicker__month-text {\n margin: 4px !important;\n /*width: auto !important;*/\n width: calc(100% / 3) !important;\n position: relative;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n .react-datepicker__month-wrapper {\n height: calc(100% / 4);\n display: flex;\n }\n\n .react-datepicker__month-text:after {\n content: \"\";\n display: block;\n height: calc(100% + 8px);\n width: 1px;\n position: absolute;\n top: -4px;\n right: -4px;\n background: ", ";\n }\n\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n\n .react-datepicker__month--selected,\n .react-datepicker__month-text--keyboard-selected {\n background-color: ", " !important;\n border-radius: 8px !important;\n color: white;\n }\n .react-datepicker__month-wrapper {\n border-bottom: 1px solid ", ";\n }\n\n .react-datepicker__month-wrapper:last-child {\n border-bottom: none;\n }\n\n @media (max-width: 600px) {\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__month {\n margin: 0px 16px 16px !important;\n height: calc(100% - 58px);\n text-align: center;\n width: auto;\n }\n .react-datepicker__month-text {\n margin: 8px !important;\n }\n .react-datepicker__month-text:after {\n height: calc(100% + 16px);\n top: -8px;\n right: -8px;\n }\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n }\n @media (max-width: 600px) {\n width: 100%;\n height: 262px;\n box-shadow: 0px 5px 16px rgba(0, 0, 0, 0.1);\n }\n"], ["\n box-shadow: 0px 26px 34px rgba(0, 0, 0, 0.1);\n border-radius: 12px !important;\n border: 1px solid ", " !important;\n background: #fff;\n overflow: hidden;\n z-index: 5;\n .react-datepicker-wrapper,\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n .react-datepicker__header,\n .react-datepicker__header:not(.react-datepicker__header--has-time-select) {\n padding: 0;\n border: none;\n background-color: #fff;\n }\n .react-datepicker__month {\n margin: 0px 8px 8px !important;\n border-radius: 12px;\n border: 1px solid ", ";\n width: 238px;\n height: 169px;\n display: flex;\n flex-direction: column;\n }\n .react-datepicker__month-text {\n margin: 4px !important;\n /*width: auto !important;*/\n width: calc(100% / 3) !important;\n position: relative;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n .react-datepicker__month-wrapper {\n height: calc(100% / 4);\n display: flex;\n }\n\n .react-datepicker__month-text:after {\n content: \"\";\n display: block;\n height: calc(100% + 8px);\n width: 1px;\n position: absolute;\n top: -4px;\n right: -4px;\n background: ", ";\n }\n\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n\n .react-datepicker__month--selected,\n .react-datepicker__month-text--keyboard-selected {\n background-color: ", " !important;\n border-radius: 8px !important;\n color: white;\n }\n .react-datepicker__month-wrapper {\n border-bottom: 1px solid ", ";\n }\n\n .react-datepicker__month-wrapper:last-child {\n border-bottom: none;\n }\n\n @media (max-width: 600px) {\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__month {\n margin: 0px 16px 16px !important;\n height: calc(100% - 58px);\n text-align: center;\n width: auto;\n }\n .react-datepicker__month-text {\n margin: 8px !important;\n }\n .react-datepicker__month-text:after {\n height: calc(100% + 16px);\n top: -8px;\n right: -8px;\n }\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n }\n @media (max-width: 600px) {\n width: 100%;\n height: 262px;\n box-shadow: 0px 5px 16px rgba(0, 0, 0, 0.1);\n }\n"])), theme.palette.background.light1, theme.palette.grey.fifteenB, theme.palette.grey.fifteenB, theme.palette.brand.main, theme.palette.grey.fifteenB);
361
+ return jsx(StyledContainer, __assign({ ref: ref }, props));
362
+ });
363
+ var StyledContainer = styled.div(templateObject_1$j || (templateObject_1$j = __makeTemplateObject(["\n box-shadow: 0px 26px 34px rgba(0, 0, 0, 0.1);\n border-radius: 12px !important;\n border: 1px solid ", " !important;\n background: #fff;\n overflow: hidden;\n z-index: 5;\n .react-datepicker-wrapper,\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n .react-datepicker__header,\n .react-datepicker__header:not(.react-datepicker__header--has-time-select) {\n padding: 0;\n border: none;\n background-color: #fff;\n }\n .react-datepicker__month {\n margin: 0px 8px 8px !important;\n border-radius: 12px;\n border: 1px solid ", ";\n width: 238px;\n height: 169px;\n display: flex;\n flex-direction: column;\n }\n .react-datepicker__month-text {\n margin: 4px !important;\n /*width: auto !important;*/\n width: calc(100% / 3) !important;\n position: relative;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n .react-datepicker__month-wrapper {\n height: calc(100% / 4);\n display: flex;\n }\n\n .react-datepicker__month-text:after {\n content: \"\";\n display: block;\n height: calc(100% + 8px);\n width: 1px;\n position: absolute;\n top: -4px;\n right: -4px;\n background: ", ";\n }\n\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n\n .react-datepicker__month--selected,\n .react-datepicker__month-text--keyboard-selected {\n background-color: ", " !important;\n border-radius: 8px !important;\n color: white !important;\n }\n .react-datepicker__month-wrapper {\n border-bottom: 1px solid ", ";\n }\n\n .react-datepicker__month-wrapper:last-child {\n border-bottom: none;\n }\n\n @media (max-width: 600px) {\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__month {\n margin: 0px 16px 16px !important;\n height: calc(100% - 58px);\n text-align: center;\n width: auto;\n }\n .react-datepicker__month-text {\n margin: 8px !important;\n }\n .react-datepicker__month-text:after {\n height: calc(100% + 16px);\n top: -8px;\n right: -8px;\n }\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n }\n @media (max-width: 600px) {\n width: 100%;\n height: 262px;\n box-shadow: 0px 5px 16px rgba(0, 0, 0, 0.1);\n }\n"], ["\n box-shadow: 0px 26px 34px rgba(0, 0, 0, 0.1);\n border-radius: 12px !important;\n border: 1px solid ", " !important;\n background: #fff;\n overflow: hidden;\n z-index: 5;\n .react-datepicker-wrapper,\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n .react-datepicker__header,\n .react-datepicker__header:not(.react-datepicker__header--has-time-select) {\n padding: 0;\n border: none;\n background-color: #fff;\n }\n .react-datepicker__month {\n margin: 0px 8px 8px !important;\n border-radius: 12px;\n border: 1px solid ", ";\n width: 238px;\n height: 169px;\n display: flex;\n flex-direction: column;\n }\n .react-datepicker__month-text {\n margin: 4px !important;\n /*width: auto !important;*/\n width: calc(100% / 3) !important;\n position: relative;\n display: flex !important;\n justify-content: center;\n align-items: center;\n }\n\n .react-datepicker__month-wrapper {\n height: calc(100% / 4);\n display: flex;\n }\n\n .react-datepicker__month-text:after {\n content: \"\";\n display: block;\n height: calc(100% + 8px);\n width: 1px;\n position: absolute;\n top: -4px;\n right: -4px;\n background: ", ";\n }\n\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n\n .react-datepicker__month--selected,\n .react-datepicker__month-text--keyboard-selected {\n background-color: ", " !important;\n border-radius: 8px !important;\n color: white !important;\n }\n .react-datepicker__month-wrapper {\n border-bottom: 1px solid ", ";\n }\n\n .react-datepicker__month-wrapper:last-child {\n border-bottom: none;\n }\n\n @media (max-width: 600px) {\n .react-datepicker__month-container {\n width: 100%;\n height: 100%;\n }\n .react-datepicker__month {\n margin: 0px 16px 16px !important;\n height: calc(100% - 58px);\n text-align: center;\n width: auto;\n }\n .react-datepicker__month-text {\n margin: 8px !important;\n }\n .react-datepicker__month-text:after {\n height: calc(100% + 16px);\n top: -8px;\n right: -8px;\n }\n .react-datepicker__month-text:nth-child(3n):after {\n content: none;\n }\n }\n @media (max-width: 600px) {\n width: 100%;\n height: 262px;\n box-shadow: 0px 5px 16px rgba(0, 0, 0, 0.1);\n }\n"])), theme.palette.background.light1, theme.palette.grey.fifteenB, theme.palette.grey.fifteenB, theme.palette.brand.main, theme.palette.grey.fifteenB);
350
364
  var templateObject_1$j;
351
365
 
352
- var MonthPickerHeader = function (_a) {
366
+ var MonthPickerHeader = forwardRef(function (_a, ref) {
353
367
  var decreaseYear = _a.decreaseYear, increaseYear = _a.increaseYear, nextYearButtonDisabled = _a.nextYearButtonDisabled, prevYearButtonDisabled = _a.prevYearButtonDisabled, date = _a.date;
354
- return (jsxs$1(StyledHeader, __assign({ container: true, alignItems: "center", justify: "space-between" }, { children: [jsx(Grid, __assign({ item: true }, { children: jsx(StyledIconButton, __assign({ disabled: prevYearButtonDisabled, onClick: decreaseYear }, { children: jsx(ArrowBackIcon, { width: 14, height: 12 }) })) })), jsx(Grid, __assign({ item: true }, { children: jsx(Caption, __assign({ size: "sm", weight: 600 }, { children: date.getFullYear() })) })), jsx(Grid, __assign({ item: true }, { children: jsx(StyledIconButton, __assign({ disabled: nextYearButtonDisabled, onClick: increaseYear }, { children: jsx(ArrowNextIcon, { width: 14, height: 12 }) })) }))] })));
355
- };
368
+ return (jsxs$1(StyledHeader, __assign({ container: true, alignItems: "center", justify: "space-between", ref: ref }, { children: [jsx(Grid, __assign({ item: true }, { children: jsx(StyledIconButton, __assign({ disabled: prevYearButtonDisabled, onClick: decreaseYear }, { children: jsx(ArrowBackIcon, { width: 14, height: 12 }) })) })), jsx(Grid, __assign({ item: true }, { children: jsx(Caption, __assign({ size: "sm", weight: 600 }, { children: date.getFullYear() })) })), jsx(Grid, __assign({ item: true }, { children: jsx(StyledIconButton, __assign({ disabled: nextYearButtonDisabled, onClick: increaseYear }, { children: jsx(ArrowNextIcon, { width: 14, height: 12 }) })) }))] })));
369
+ });
356
370
  var StyledIconButton = styled(IconButton)(templateObject_1$i || (templateObject_1$i = __makeTemplateObject(["\n height: 36px;\n &:disabled {\n opacity: 0;\n }\n"], ["\n height: 36px;\n &:disabled {\n opacity: 0;\n }\n"])));
357
371
  var StyledHeader = styled(Grid)(templateObject_2$9 || (templateObject_2$9 = __makeTemplateObject(["\n background: #fff;\n padding: 4px 16px;\n border-radius: 12px 12px 0 0;\n"], ["\n background: #fff;\n padding: 4px 16px;\n border-radius: 12px 12px 0 0;\n"])));
358
372
  var templateObject_1$i, templateObject_2$9;
359
373
 
360
- var DesktopInputWithMonthPicker = function (_a) {
374
+ var DesktopInputWithMonthPicker = forwardRef(function (_a, ref) {
361
375
  var name = _a.name, form = _a.form, disabled = _a.disabled, datePickerProps = _a.datePickerProps, otherProps = __rest(_a, ["name", "form", "disabled", "datePickerProps"]);
362
- return (jsx(Wrapper$4, { children: jsx(Controller, { name: name, control: form.control, render: function (_a) {
376
+ return (jsx(Wrapper$4, __assign({ ref: ref }, { children: jsx(Controller, { name: name, control: form.control, render: function (_a) {
363
377
  var _b;
364
378
  var field = _a.field, fieldState = _a.fieldState;
365
379
  return (jsx(DatePicker, __assign({ selected: field.value, onChange: field.onChange, disabled: disabled, customInput: jsx(InputForDatepicker, __assign({ mask: "99.9999", name: name, disabled: disabled, message: (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message }, otherProps)), showMonthYearPicker: true, dateFormat: "MM.yyyy", popperPlacement: "bottom-end", calendarContainer: MonthPickerContainer, renderCustomHeader: function (props) { return (jsx(MonthPickerHeader, __assign({}, props))); } }, datePickerProps)));
366
- } }) }));
367
- };
380
+ } }) })));
381
+ });
368
382
  var Wrapper$4 = styled.div(templateObject_1$h || (templateObject_1$h = __makeTemplateObject(["\n @media (max-width: 600px) {\n display: none;\n }\n"], ["\n @media (max-width: 600px) {\n display: none;\n }\n"])));
369
383
  var templateObject_1$h;
370
384
 
371
- var MenuItem = function (_a) {
385
+ var MenuItem = forwardRef(function (_a, ref) {
372
386
  var tab = _a.tab, active = _a.active, index = _a.index, handleClick = _a.handleClick, offset = _a.offset, isScrolling = _a.isScrolling, setIsScrolling = _a.setIsScrolling;
373
387
  var startScrolling = function () {
374
388
  setIsScrolling(true);
@@ -399,16 +413,16 @@ var MenuItem = function (_a) {
399
413
  Events.scrollEvent.remove("end");
400
414
  };
401
415
  }, []);
402
- return (jsx$1(Link, __assign({ to: tab.label, spy: true, smooth: true, duration: 500, offset: offset, onSetActive: handleSelect }, { children: jsx$1(ButtonWrapper$1, { children: jsx$1(Button, __assign({ variant: Number(active) === index ? "orange" : "transparentWithBorder", size: "xs", css: Number(active) !== index && disabledStyles }, { children: tab.label })) }) })));
403
- };
416
+ return (jsx$1(Link, __assign({ to: tab.label, spy: true, smooth: true, duration: 500, offset: offset, onSetActive: handleSelect }, { children: jsx$1(ButtonWrapper$1, __assign({ ref: ref }, { children: jsx$1(Button, __assign({ variant: Number(active) === index ? "orange" : "transparentWithBorder", size: "xs", css: Number(active) !== index && disabledStyles }, { children: tab.label })) })) })));
417
+ });
404
418
  var ButtonWrapper$1 = styled.div(templateObject_1$g || (templateObject_1$g = __makeTemplateObject(["\n margin-right: 8px;\n width: max-content;\n max-width: 150px;\n @media (max-width: 900px) {\n max-width: unset;\n }\n"], ["\n margin-right: 8px;\n width: max-content;\n max-width: 150px;\n @media (max-width: 900px) {\n max-width: unset;\n }\n"])));
405
419
  var disabledStyles = css(templateObject_2$8 || (templateObject_2$8 = __makeTemplateObject(["\n p {\n color: ", ";\n font-weight: 400;\n },\n"], ["\n p {\n color: ", ";\n font-weight: 400;\n },\n"])), theme.palette.grey.seventy);
406
420
  var templateObject_1$g, templateObject_2$8;
407
421
 
408
- var DesktopMenuPanel = function (_a) {
422
+ var DesktopMenuPanel = forwardRef(function (_a, ref) {
409
423
  var tabs = _a.tabs, variant = _a.variant, other = __rest(_a, ["tabs", "variant"]);
410
- return (jsx$1(Wrapper$3, __assign({ container: true, css: variant === "white" && { background: "white" } }, { children: tabs.map(function (tab, index) { return (jsx$1(Grid, __assign({ item: true }, { children: jsx$1(MenuItem, __assign({ tab: tab, index: index, offset: -121 }, other), tab.label) }), index)); }) })));
411
- };
424
+ return (jsx$1(Wrapper$3, __assign({ container: true, css: variant === "white" && { background: "white" }, ref: ref }, { children: tabs.map(function (tab, index) { return (jsx$1(Grid, __assign({ item: true }, { children: jsx$1(MenuItem, __assign({ tab: tab, index: index, offset: -121 }, other), tab.label) }), index)); }) })));
425
+ });
412
426
  var Wrapper$3 = styled(Grid)(templateObject_1$f || (templateObject_1$f = __makeTemplateObject(["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background-color: ", ";\n padding: 16px 16px 24px;\n @media (max-width: 900px) {\n justify-content: space-between;\n }\n @media (max-width: 765px) {\n display: none;\n }\n"], ["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background-color: ", ";\n padding: 16px 16px 24px;\n @media (max-width: 900px) {\n justify-content: space-between;\n }\n @media (max-width: 765px) {\n display: none;\n }\n"])), theme.palette.background.light1);
413
427
  var templateObject_1$f;
414
428
 
@@ -443,7 +457,7 @@ var InputWithMask = forwardRef(function (_a, ref) {
443
457
  });
444
458
 
445
459
  var InputWithController = forwardRef(function (_a, ref) {
446
- var form = _a.form, name = _a.name, error = _a.error, inputProps = __rest(_a, ["form", "name", "error"]);
460
+ var form = _a.form, name = _a.name, error = _a.error, value = _a.value, inputProps = __rest(_a, ["form", "name", "error", "value"]);
447
461
  var handleChange = function (e, field) {
448
462
  field.onChange(e);
449
463
  if (inputProps.onChange) {
@@ -468,7 +482,7 @@ var InputWithController = forwardRef(function (_a, ref) {
468
482
  var field = _a.field, fieldState = _a.fieldState;
469
483
  return (jsx(InputWithAdornments, __assign({ message: getError(fieldState) }, field, inputProps, { onChange: function (e) {
470
484
  return handleChange(e, field);
471
- }, value: field.value || "", ref: function (e) { return forwardedRef(e, field); } })));
485
+ }, value: typeof value !== "undefined" ? value : field.value || "", ref: function (e) { return forwardedRef(e, field); } })));
472
486
  } }));
473
487
  });
474
488
 
@@ -490,7 +504,7 @@ var strengthTexts = {
490
504
  medium: "Средний",
491
505
  hard: "Сложный",
492
506
  };
493
- var PassportStrengthBar = function (_a) {
507
+ var PassportStrengthBar = forwardRef(function (_a, ref) {
494
508
  var strength = _a.strength;
495
509
  var color = strength
496
510
  ? strengthColors[strength]
@@ -498,8 +512,8 @@ var PassportStrengthBar = function (_a) {
498
512
  var strengthKey = strength
499
513
  ? strengthCoefficients[strength]
500
514
  : -1;
501
- return (jsxs(Wrapper$2, __assign({ "data-testid": "strength_bar", className: String(!strength && "hidden") }, { children: [jsx$1(ReliabilityLevelWrapper, { children: Object.keys(strengthCoefficients).map(function (item, key) { return (jsx$1(ReliabilityLevel, { children: jsx$1(StyledLinearProgress, { "data-testid": "progress_item_".concat(item), value: strengthKey >= key ? 100 : 0, color: color }) }, item)); }) }), jsx$1(Caption, __assign({ "data-testid": "strength_bar_explanation", size: "s", css: { color: color } }, { children: strength && strengthTexts[strength] })), jsx$1(Description, __assign({ size: "s", color: "fiftyP" }, { children: "\u041F\u0430\u0440\u043E\u043B\u044C \u0434\u043E\u043B\u0436\u0435\u043D \u0441\u043E\u0441\u0442\u043E\u044F\u0442\u044C \u0438\u0437 10 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u0446\u0438\u0444\u0440\u044B, \u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u0438 \u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0435 \u0431\u0443\u0432\u044B" }))] })));
502
- };
515
+ return (jsxs(Wrapper$2, __assign({ "data-testid": "strength_bar", className: String(!strength && "hidden"), ref: ref }, { children: [jsx$1(ReliabilityLevelWrapper, { children: Object.keys(strengthCoefficients).map(function (item, key) { return (jsx$1(ReliabilityLevel, { children: jsx$1(StyledLinearProgress, { "data-testid": "progress_item_".concat(item), value: strengthKey >= key ? 100 : 0, color: color }) }, item)); }) }), jsx$1(Caption, __assign({ "data-testid": "strength_bar_explanation", size: "s", css: { color: color } }, { children: strength && strengthTexts[strength] })), jsx$1(Description, __assign({ size: "s", color: "fiftyP" }, { children: "\u041F\u0430\u0440\u043E\u043B\u044C \u0434\u043E\u043B\u0436\u0435\u043D \u0441\u043E\u0441\u0442\u043E\u044F\u0442\u044C \u0438\u0437 10 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432, \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u0446\u0438\u0444\u0440\u044B, \u0431\u043E\u043B\u044C\u0448\u0438\u0435 \u0438 \u0441\u0442\u0440\u043E\u0447\u043D\u044B\u0435 \u043B\u0430\u0442\u0438\u043D\u0441\u043A\u0438\u0435 \u0431\u0443\u0432\u044B" }))] })));
516
+ });
503
517
  var Wrapper$2 = styled.div(templateObject_1$e || (templateObject_1$e = __makeTemplateObject(["\n margin-top: 16px;\n min-height: 86px;\n @media (max-width: 900px) {\n min-height: unset;\n }\n &.hidden {\n opacity: 0;\n @media (max-width: 900px) {\n display: none;\n }\n }\n"], ["\n margin-top: 16px;\n min-height: 86px;\n @media (max-width: 900px) {\n min-height: unset;\n }\n &.hidden {\n opacity: 0;\n @media (max-width: 900px) {\n display: none;\n }\n }\n"])));
504
518
  var ReliabilityLevelWrapper = styled.div(templateObject_2$7 || (templateObject_2$7 = __makeTemplateObject(["\n display: flex;\n margin-bottom: 8px;\n"], ["\n display: flex;\n margin-bottom: 8px;\n"])));
505
519
  var ReliabilityLevel = styled.div(templateObject_3$3 || (templateObject_3$3 = __makeTemplateObject(["\n width: calc(100% / 4);\n margin-right: 16px;\n &:last-of-type {\n margin-right: 0;\n }\n"], ["\n width: calc(100% / 4);\n margin-right: 16px;\n &:last-of-type {\n margin-right: 0;\n }\n"])));
@@ -515,7 +529,7 @@ var simplePasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{10,
515
529
  var mediumPasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{12,}$/;
516
530
  var strongPasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{14,}$/;
517
531
 
518
- var InputPassword = function (props) {
532
+ var InputPassword = forwardRef(function (props, ref) {
519
533
  var _a = useState(false), showPassword = _a[0], setShowPassword = _a[1];
520
534
  var _b = useState(null), strength = _b[0], setStrength = _b[1];
521
535
  var handleShowChange = function () {
@@ -550,12 +564,12 @@ var InputPassword = function (props) {
550
564
  checkPasswordStrength(fieldValue);
551
565
  }
552
566
  }, []);
553
- return (jsxs$1(Fragment$1, { children: [jsx(InputWithController, __assign({ type: showPassword ? "text" : "password", autoComplete: "new_password", onChange: handleChange, "data-testid": "input_password", endIcon: jsx(EyeIconWrapper, __assign({ "data-testid": "show_value_btn", onClick: handleShowChange }, { children: showPassword ? jsx(ClosedEyeIcon, {}) : jsx(OpenEyeIcon, {}) })) }, props)), jsx(PassportStrengthBar, { strength: strength })] }));
554
- };
567
+ return (jsxs$1(Fragment$1, { children: [jsx(InputWithController, __assign({ type: showPassword ? "text" : "password", autoComplete: "new_password", onChange: handleChange, "data-testid": "input_password", ref: ref, endIcon: jsx(EyeIconWrapper, __assign({ "data-testid": "show_value_btn", onClick: handleShowChange }, { children: showPassword ? jsx(ClosedEyeIcon, {}) : jsx(OpenEyeIcon, {}) })) }, props)), jsx(PassportStrengthBar, { strength: strength })] }));
568
+ });
555
569
  var EyeIconWrapper = styled.div(templateObject_1$d || (templateObject_1$d = __makeTemplateObject(["\n height: 18px;\n display: flex;\n align-items: center;\n cursor: pointer;\n"], ["\n height: 18px;\n display: flex;\n align-items: center;\n cursor: pointer;\n"])));
556
570
  var templateObject_1$d;
557
571
 
558
- var InputTextAreaMobile = function (props) { return (jsxs$1(Fragment$1, { children: [jsx(InputWrapper, { children: jsx(InputWithController, __assign({}, props)) }), jsx(TextAreaWrapper, { children: jsx(InputWithController, __assign({ isTextArea: true }, props)) })] })); };
572
+ var InputTextAreaMobile = forwardRef(function (props) { return (jsxs$1(Fragment$1, { children: [jsx(InputWrapper, { children: jsx(InputWithController, __assign({}, props)) }), jsx(TextAreaWrapper, { children: jsx(InputWithController, __assign({ isTextArea: true }, props)) })] })); });
559
573
  var InputWrapper = styled.div(templateObject_1$c || (templateObject_1$c = __makeTemplateObject(["\n @media (max-width: 900px) {\n display: none;\n }\n"], ["\n @media (max-width: 900px) {\n display: none;\n }\n"])));
560
574
  var TextAreaWrapper = styled.div(templateObject_2$6 || (templateObject_2$6 = __makeTemplateObject(["\n @media (min-width: 901px) {\n display: none;\n }\n"], ["\n @media (min-width: 901px) {\n display: none;\n }\n"])));
561
575
  var templateObject_1$c, templateObject_2$6;
@@ -572,17 +586,18 @@ var useToggle = function (isModalOpen) {
572
586
  return [isOpen, handleOpen, handleClose];
573
587
  };
574
588
 
575
- var ModalFooter = function (_a) {
589
+ var ModalFooter = forwardRef(function (_a, ref) {
576
590
  var label = _a.label, button = _a.button, otherProps = __rest(_a, ["label", "button"]);
577
- return (jsxs$1(StyledFooter, { children: [jsx(Divider, {}), jsx(ButtonWrapper, { children: button || (jsx(ButtonStyled, __assign({ fullWidth: true, size: "s", endIcon: jsx(CheckIcon, {}) }, otherProps, { children: label }))) })] }));
578
- };
591
+ return (jsxs$1(StyledFooter, __assign({ ref: ref }, { children: [jsx(Divider, {}), jsx(ButtonWrapper, { children: button || (jsx(ButtonStyled, __assign({ fullWidth: true, size: "s", endIcon: jsx(CheckIcon, {}) }, otherProps, { children: label }))) })] })));
592
+ });
579
593
  var StyledFooter = styled.div(templateObject_1$b || (templateObject_1$b = __makeTemplateObject(["\n background: ", ";\n border-radius: 0 0 12px 12px;\n z-index: 10;\n position: sticky;\n bottom: 0;\n left: 0;\n"], ["\n background: ", ";\n border-radius: 0 0 12px 12px;\n z-index: 10;\n position: sticky;\n bottom: 0;\n left: 0;\n"])), theme.palette.grey.zero);
580
594
  var ButtonWrapper = styled.div(templateObject_2$5 || (templateObject_2$5 = __makeTemplateObject(["\n display: flex;\n justify-content: flex-end;\n padding: 24px 40px;\n @media (max-width: 600px) {\n padding: 24px 16px;\n }\n"], ["\n display: flex;\n justify-content: flex-end;\n padding: 24px 40px;\n @media (max-width: 600px) {\n padding: 24px 16px;\n }\n"])));
581
595
  var ButtonStyled = styled(Button)(templateObject_3$2 || (templateObject_3$2 = __makeTemplateObject(["\n @media (max-width: 600px) {\n width: 100%;\n }\n"], ["\n @media (max-width: 600px) {\n width: 100%;\n }\n"])));
582
596
  var templateObject_1$b, templateObject_2$5, templateObject_3$2;
583
597
 
584
- registerLocale("ru", ru);
585
598
  var generateYearRange = function (offsetFromCurrent, maxYearCount) {
599
+ if (!offsetFromCurrent || !maxYearCount)
600
+ return [];
586
601
  var endYear = DateTime.now().year - offsetFromCurrent;
587
602
  return _.range(maxYearCount).map(function (elem) {
588
603
  var fullYear = endYear - elem;
@@ -594,44 +609,74 @@ var generateYearRange = function (offsetFromCurrent, maxYearCount) {
594
609
  };
595
610
  var InputWithDatePicker = forwardRef(function (_a, ref) {
596
611
  var _b;
597
- var title = _a.title, description = _a.description, name = _a.name, form = _a.form, disabled = _a.disabled, yearParams = _a.yearParams, props = __rest(_a, ["title", "description", "name", "form", "disabled", "yearParams"]);
612
+ var title = _a.title, description = _a.description, name = _a.name, form = _a.form, disabled = _a.disabled, yearParams = _a.yearParams, onChange = _a.onChange, max = _a.max, min = _a.min, footerLabel = _a.footerLabel, datePickerProps = _a.datePickerProps, props = __rest(_a, ["title", "description", "name", "form", "disabled", "yearParams", "onChange", "max", "min", "footerLabel", "datePickerProps"]);
598
613
  var _c = useController({
599
614
  name: name,
600
615
  control: form.control,
601
616
  }), field = _c.field, fieldState = _c.fieldState;
602
617
  var error = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message;
618
+ var formattedValue = field.value ? field.value.toFormat("dd.MM.yyyy") : "";
619
+ var formattedDate = field.value ? field.value.toJSDate() : null;
603
620
  var _d = useToggle(), isModalOpen = _d[0], handleModalOpen = _d[1], handleModalClose = _d[2];
604
- var _e = useState(field.value
605
- ? DateTime.fromJSDate(new Date(String(field.value))).toFormat("dd.MM.yyyy")
606
- : null), value = _e[0], setValue = _e[1];
607
- var _f = useState(value ? DateTime.fromFormat(value, "dd.MM.yyyy").toJSDate() : null), date = _f[0], setDate = _f[1];
608
- var yearList = generateYearRange(yearParams.min, yearParams.max);
621
+ var _e = useState(formattedDate), date = _e[0], setDate = _e[1];
622
+ var _f = useState(formattedValue), value = _f[0], setValue = _f[1];
623
+ var yearList = generateYearRange(yearParams === null || yearParams === void 0 ? void 0 : yearParams.min, yearParams === null || yearParams === void 0 ? void 0 : yearParams.max);
624
+ useEffect(function () {
625
+ if (!isModalOpen) {
626
+ setDate(null);
627
+ }
628
+ else {
629
+ setDate(formattedDate);
630
+ }
631
+ }, [isModalOpen]);
609
632
  var handleChange = function (e) {
610
633
  var targetValue = e.target.value;
611
634
  setValue(targetValue);
612
635
  if (targetValue.length !== 0 && isValidWithMaskExp.test(targetValue)) {
613
- var jsDate = DateTime.fromFormat(targetValue, "dd.MM.yyyy").toJSDate();
614
- setDate(jsDate);
615
- field === null || field === void 0 ? void 0 : field.onChange({ target: { value: jsDate, name: name }, type: "change" });
636
+ var targetDate = DateTime.fromFormat(targetValue, "dd.MM.yyyy");
637
+ setDate(targetDate.toJSDate());
638
+ field === null || field === void 0 ? void 0 : field.onChange({ target: { value: targetDate, name: name }, type: "change" });
639
+ if (onChange) {
640
+ onChange(targetDate);
641
+ }
616
642
  }
617
643
  else {
618
644
  setDate(null);
619
645
  field === null || field === void 0 ? void 0 : field.onChange({ target: { value: null, name: name }, type: "change" });
646
+ if (onChange) {
647
+ onChange(null);
648
+ }
620
649
  }
621
650
  };
622
651
  var acceptWithDateSelected = function () {
623
652
  if (date) {
624
- setValue(DateTime.fromJSDate(date).toFormat("dd.MM.yyyy"));
625
- field === null || field === void 0 ? void 0 : field.onChange({ target: { value: date, name: name }, type: "change" });
653
+ var dateObj = DateTime.fromJSDate(date);
654
+ setValue(dateObj.toFormat("dd.MM.yyyy"));
655
+ field === null || field === void 0 ? void 0 : field.onChange({ target: { value: dateObj, name: name }, type: "change" });
656
+ if (onChange) {
657
+ onChange(dateObj);
658
+ }
626
659
  handleModalClose();
627
660
  }
628
661
  };
629
- return (jsxs(Fragment, { children: [jsx$1(InputForDatepicker, __assign({ mask: "99.99.9999", name: name, handleCLick: handleModalOpen, value: value, onChange: handleChange, disabled: disabled, message: error, ref: ref }, props)), jsxs(Modal, __assign({ title: title, description: description, isOpen: isModalOpen, handleClose: handleModalClose }, { children: [jsx$1(ContentWrapper$1, { children: jsx$1(DatePicker, { inline: true, selected: date, onChange: function (newDate) { return setDate(newDate); }, locale: "ru", calendarContainer: StyledCalendarStandardContainer, renderCustomHeader: function (headProps) { return (jsx$1(CalendarHeaderWithSelect, __assign({ yearOptions: yearList }, headProps))); }, renderDayContents: function (day) { return (jsx$1(DayContent, { children: day })); } }) }), jsx$1(ModalFooter, { fullWidth: true, disabled: !date, onClick: acceptWithDateSelected, label: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C" })] }))] }));
662
+ var handleDateChange = function (newDate) {
663
+ setDate(newDate);
664
+ };
665
+ var forwardedRef = function (elem) {
666
+ if (ref) {
667
+ // eslint-disable-next-line no-param-reassign
668
+ // @ts-ignore
669
+ ref.current = elem;
670
+ }
671
+ field.ref(elem);
672
+ };
673
+ return (jsxs(Fragment, { children: [jsx$1(InputForDatepicker, __assign({ mask: "99.99.9999", name: name, handleCLick: handleModalOpen, value: formattedValue || value, onChange: handleChange, disabled: disabled, message: error, ref: forwardedRef }, props)), jsxs(Modal, __assign({ title: title, description: description, isOpen: isModalOpen, handleClose: handleModalClose }, { children: [jsx$1(ContentWrapper$1, { children: jsx$1(DatePicker, __assign({ inline: true, selected: date || formattedDate, onChange: handleDateChange, calendarContainer: StyledCalendarStandardContainer, renderCustomHeader: function (headProps) { return (jsx$1(CalendarHeaderWithSelect, __assign({ yearOptions: yearList, max: max, min: min }, headProps))); }, renderDayContents: function (day) { return (jsx$1(DayContent, { children: day })); }, maxDate: max === null || max === void 0 ? void 0 : max.toJSDate(), minDate: min === null || min === void 0 ? void 0 : min.toJSDate() }, datePickerProps)) }), jsx$1(ModalFooter, { fullWidth: true, disabled: !formattedDate && !date, onClick: acceptWithDateSelected, label: footerLabel })] }))] }));
630
674
  });
631
675
  InputWithDatePicker.defaultProps = {
632
676
  title: "Дата рождения",
633
677
  description: "Выберите год, месяц и число вашего рождения",
634
678
  yearParams: { min: 18, max: 120 },
679
+ footerLabel: "Подтвердить",
635
680
  };
636
681
  var ContentWrapper$1 = styled.div(templateObject_1$a || (templateObject_1$a = __makeTemplateObject(["\n padding: 36px 40px 24px;\n @media (max-width: 600px) {\n padding: 20px 0 0;\n }\n"], ["\n padding: 36px 40px 24px;\n @media (max-width: 600px) {\n padding: 20px 0 0;\n }\n"])));
637
682
  var StyledCalendarStandardContainer = styled(CalendarStandardContainer)(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["\n height: 410px;\n .react-datepicker__header {\n padding: 0 !important;\n }\n .react-datepicker__day-names {\n padding: 35px 22px 0;\n background-color: ", ";\n border-radius: 16px 16px 0 0;\n @media (max-width: 900px) {\n padding: 24px 16px 0;\n }\n }\n .react-datepicker__month {\n justify-content: space-between;\n height: calc(100% - 124px);\n background-color: ", ";\n border-radius: 0 0 16px 16px;\n padding: 20px 22px 24px;\n margin: 0 !important;\n box-sizing: border-box;\n @media (max-width: 900px) {\n padding: 20px 16px 24px;\n }\n }\n @media (max-width: 600px) {\n height: auto;\n margin-bottom: -4px;\n }\n"], ["\n height: 410px;\n .react-datepicker__header {\n padding: 0 !important;\n }\n .react-datepicker__day-names {\n padding: 35px 22px 0;\n background-color: ", ";\n border-radius: 16px 16px 0 0;\n @media (max-width: 900px) {\n padding: 24px 16px 0;\n }\n }\n .react-datepicker__month {\n justify-content: space-between;\n height: calc(100% - 124px);\n background-color: ", ";\n border-radius: 0 0 16px 16px;\n padding: 20px 22px 24px;\n margin: 0 !important;\n box-sizing: border-box;\n @media (max-width: 900px) {\n padding: 20px 16px 24px;\n }\n }\n @media (max-width: 600px) {\n height: auto;\n margin-bottom: -4px;\n }\n"])), theme.palette.background.light1, theme.palette.background.light1);
@@ -661,7 +706,7 @@ var ruCustom = __assign(__assign({}, ru), { localize: {
661
706
  dayPeriod: function () { return ""; },
662
707
  day: function () { return ""; },
663
708
  } });
664
- var MobileInputWithMonthPicker = function (_a) {
709
+ var MobileInputWithMonthPicker = forwardRef(function (_a, ref) {
665
710
  var _b;
666
711
  var title = _a.title, name = _a.name, form = _a.form, disabled = _a.disabled, datePickerProps = _a.datePickerProps, props = __rest(_a, ["title", "name", "form", "disabled", "datePickerProps"]);
667
712
  var _c = useController({
@@ -697,15 +742,15 @@ var MobileInputWithMonthPicker = function (_a) {
697
742
  field === null || field === void 0 ? void 0 : field.onChange({ target: { value: date, name: name }, type: "change" });
698
743
  handleModalClose();
699
744
  };
700
- return (jsxs$1(Wrapper$1, { children: [jsx(InputForDatepicker, __assign({ mask: "99.9999", name: name, handleCLick: handleModalOpen, value: value, onChange: handleChange, disabled: disabled, message: error, isLabelShrink: Boolean(field.value) }, props)), jsxs$1(Modal, __assign({ title: title, isOpen: isModalOpen, handleClose: handleModalClose }, { children: [jsx(ContentWrapper, { children: jsx(DatePicker, __assign({ inline: true, showMonthYearPicker: true, dateFormat: "MM.yyyy", selected: date, onChange: function (newDate) { return setDate(newDate); }, locale: ruCustom, calendarContainer: MonthPickerContainer, renderCustomHeader: function (headProps) { return (jsx(MonthPickerHeader, __assign({}, headProps))); } }, datePickerProps)) }), jsx(ModalFooter, { fullWidth: true, disabled: !date, onClick: acceptWithDateSelected, label: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C" })] }))] }));
701
- };
745
+ return (jsxs$1(Wrapper$1, __assign({ ref: ref }, { children: [jsx(InputForDatepicker, __assign({ mask: "99.9999", name: name, handleCLick: handleModalOpen, value: value, onChange: handleChange, disabled: disabled, message: error, isLabelShrink: Boolean(field.value) }, props)), jsxs$1(Modal, __assign({ title: title, isOpen: isModalOpen, handleClose: handleModalClose }, { children: [jsx(ContentWrapper, { children: jsx(DatePicker, __assign({ inline: true, showMonthYearPicker: true, dateFormat: "MM.yyyy", selected: date, onChange: function (newDate) { return setDate(newDate); }, locale: ruCustom, calendarContainer: MonthPickerContainer, renderCustomHeader: function (headProps) { return (jsx(MonthPickerHeader, __assign({}, headProps))); } }, datePickerProps)) }), jsx(ModalFooter, { fullWidth: true, disabled: !date, onClick: acceptWithDateSelected, label: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C" })] }))] })));
746
+ });
702
747
  var Wrapper$1 = styled.div(templateObject_1$9 || (templateObject_1$9 = __makeTemplateObject(["\n @media (min-width: 601px) {\n display: none;\n }\n"], ["\n @media (min-width: 601px) {\n display: none;\n }\n"])));
703
748
  var ContentWrapper = styled.div(templateObject_2$3 || (templateObject_2$3 = __makeTemplateObject(["\n @media (max-width: 600px) {\n padding: 16px 16px 8px;\n }\n"], ["\n @media (max-width: 600px) {\n padding: 16px 16px 8px;\n }\n"])));
704
749
  var templateObject_1$9, templateObject_2$3;
705
750
 
706
751
  var InputWithMonthPicker = function (props) { return (jsxs$1(Fragment$1, { children: [jsx(DesktopInputWithMonthPicker, __assign({}, props)), jsx(MobileInputWithMonthPicker, __assign({}, props))] })); };
707
752
 
708
- var MobileMenuPanel = function (_a) {
753
+ var MobileMenuPanel = forwardRef(function (_a, ref) {
709
754
  var tabs = _a.tabs, handleClick = _a.handleClick, variant = _a.variant, other = __rest(_a, ["tabs", "handleClick", "variant"]);
710
755
  var swiperRef = useRef(null);
711
756
  var slideTo = function (index) {
@@ -715,8 +760,8 @@ var MobileMenuPanel = function (_a) {
715
760
  }, 16);
716
761
  handleClick(index);
717
762
  };
718
- return (jsx$1(Wrapper, __assign({ css: variant === "white" && { background: "white" } }, { children: jsx$1(Swiper, __assign({ spaceBetween: 8, slidesPerView: "auto", slideToClickedSlide: true, ref: swiperRef }, { children: tabs.map(function (tab, index) { return (jsx$1(SlideWrapper, { children: jsx$1(MenuItem, __assign({ tab: tab, index: index, handleClick: slideTo, offset: -121 }, other), tab.label) }, index)); }) })) })));
719
- };
763
+ return (jsx$1(Wrapper, __assign({ css: variant === "white" && { background: "white" }, ref: ref }, { children: jsx$1(Swiper, __assign({ spaceBetween: 8, slidesPerView: "auto", slideToClickedSlide: true, ref: swiperRef }, { children: tabs.map(function (tab, index) { return (jsx$1(SlideWrapper, { children: jsx$1(MenuItem, __assign({ tab: tab, index: index, handleClick: slideTo, offset: -121 }, other), tab.label) }, index)); }) })) })));
764
+ });
720
765
  var Wrapper = styled.div(templateObject_1$8 || (templateObject_1$8 = __makeTemplateObject(["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background: ", ";\n padding: 16px 0 24px;\n @media (min-width: 766px) {\n display: none;\n }\n"], ["\n position: sticky;\n top: 49px;\n left: 0;\n z-index: 11;\n background: ", ";\n padding: 16px 0 24px;\n @media (min-width: 766px) {\n display: none;\n }\n"])), theme.palette.background.light1);
721
766
  var SlideWrapper = styled.div(templateObject_2$2 || (templateObject_2$2 = __makeTemplateObject(["\n width: max-content !important;\n &:first-of-type {\n padding-left: 16px;\n }\n"], ["\n width: max-content !important;\n &:first-of-type {\n padding-left: 16px;\n }\n"])));
722
767
  var templateObject_1$8, templateObject_2$2;
@@ -735,7 +780,7 @@ var useWindowWidth = function (time) {
735
780
  return width;
736
781
  };
737
782
 
738
- var MenuPanel = function (_a) {
783
+ var MenuPanel = forwardRef(function (_a, ref) {
739
784
  var tabs = _a.tabs, tabPanels = _a.tabPanels, paths = _a.paths, activeTab = _a.activeTab, variant = _a.variant;
740
785
  var width = useWindowWidth();
741
786
  var _b = React.useState(activeTab), value = _b[0], setValue = _b[1];
@@ -764,21 +809,21 @@ var MenuPanel = function (_a) {
764
809
  if (width === 0) {
765
810
  return null;
766
811
  }
767
- return (jsxs("div", { children: [width > 765 ? (jsx$1(DesktopMenuPanel, { tabs: tabs, active: value, handleClick: handleClick, variant: variant, isScrolling: isScrolling, setIsScrolling: setIsScrolling })) : (jsx$1(MobileMenuPanel, { tabs: tabs, active: value, handleClick: handleClick, variant: variant, isScrolling: isScrolling, setIsScrolling: setIsScrolling })), tabPanels.map(function (item, index) { return (jsx$1("div", __assign({ css: index === tabPanels.length - 1 && fullHeightStyles }, { children: jsx$1(Element, __assign({ name: tabs[index].label, "data-index": index }, { children: item }), index) }), index)); })] }));
768
- };
812
+ return (jsxs("div", __assign({ ref: ref }, { children: [width > 765 ? (jsx$1(DesktopMenuPanel, { tabs: tabs, active: value, handleClick: handleClick, variant: variant, isScrolling: isScrolling, setIsScrolling: setIsScrolling })) : (jsx$1(MobileMenuPanel, { tabs: tabs, active: value, handleClick: handleClick, variant: variant, isScrolling: isScrolling, setIsScrolling: setIsScrolling })), tabPanels.map(function (item, index) { return (jsx$1("div", __assign({ css: index === tabPanels.length - 1 && fullHeightStyles }, { children: jsx$1(Element, __assign({ name: tabs[index].label, "data-index": index }, { children: item }), index) }), index)); })] })));
813
+ });
769
814
  MenuPanel.defaultProps = {
770
815
  variant: "grey",
771
816
  };
772
817
  var fullHeightStyles = css(templateObject_1$7 || (templateObject_1$7 = __makeTemplateObject(["\n height: calc(100vh - 121px);\n"], ["\n height: calc(100vh - 121px);\n"])));
773
818
  var templateObject_1$7;
774
819
 
775
- var Switch = function (_a) {
820
+ var Switch = forwardRef(function (_a, ref) {
776
821
  var form = _a.form, name = _a.name, props = __rest(_a, ["form", "name"]);
777
822
  return (jsx$1(Controller, { control: form === null || form === void 0 ? void 0 : form.control, name: name, render: function (_a) {
778
823
  var field = _a.field;
779
- return (jsx$1(Switch$1, __assign({ checked: Boolean(field.value), onChange: field.onChange, "data-testid": name }, props)));
824
+ return (jsx$1(Switch$1, __assign({ checked: Boolean(field.value), onChange: field.onChange, "data-testid": name, ref: ref }, props)));
780
825
  } }));
781
- };
826
+ });
782
827
 
783
828
  var InputPhoneWithForm = forwardRef(function (props, ref) {
784
829
  var _a;
@@ -823,7 +868,7 @@ InputPhoneWithForm.defaultProps = {
823
868
  name: "phone",
824
869
  };
825
870
 
826
- var Table = function (props) { return jsx(StyledTable, __assign({ cellSpacing: "0" }, props)); };
871
+ var Table = forwardRef(function (props, ref) { return jsx(StyledTable, __assign({ cellSpacing: "0", ref: ref }, props)); });
827
872
  var StyledTable = styled.table(templateObject_1$6 || (templateObject_1$6 = __makeTemplateObject(["\n width: 100%;\n border-spacing: 0;\n"], ["\n width: 100%;\n border-spacing: 0;\n"])));
828
873
  var templateObject_1$6;
829
874
 
@@ -833,12 +878,11 @@ var templateObject_1$5;
833
878
  var TableCell = styled.td(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n padding: 0;\n"], ["\n padding: 0;\n"])));
834
879
  var templateObject_1$4;
835
880
 
836
- var TableRow = function (_a) {
881
+ var TableRow = forwardRef(function (_a, ref) {
837
882
  var children = _a.children, other = __rest(_a, ["children"]);
838
883
  var childrenArr = React.Children.toArray(children);
839
- // @ts-ignore
840
- return jsx("tr", { children: childrenArr.map(function (child) { return React.cloneElement(child, other); }) });
841
- };
884
+ return (jsx("tr", __assign({ ref: ref }, { children: childrenArr.map(function (child) { return React.cloneElement(child, other); }) })));
885
+ });
842
886
 
843
887
  var placementsPositions = {
844
888
  bottomStart: {