kui-complex 0.0.43 → 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.
- package/Avatar/cjs/index.js +12 -11
- package/Avatar/cjs/index.js.map +1 -1
- package/Avatar/index.d.ts +8 -12
- package/Avatar/index.js +9 -8
- package/Avatar/index.js.map +1 -1
- package/ButtonSelect/cjs/index.js +12 -3
- package/ButtonSelect/cjs/index.js.map +1 -1
- package/ButtonSelect/index.js +12 -3
- package/ButtonSelect/index.js.map +1 -1
- package/ButtonTab/cjs/index.js +6 -5
- package/ButtonTab/cjs/index.js.map +1 -1
- package/ButtonTab/cjs/package.json +4 -1
- package/ButtonTab/index.d.ts +4 -2
- package/ButtonTab/index.js +4 -3
- package/ButtonTab/index.js.map +1 -1
- package/ButtonTab/package.json +4 -1
- package/ButtonsPanel/cjs/index.js +6 -6
- package/ButtonsPanel/cjs/index.js.map +1 -1
- package/ButtonsPanel/index.d.ts +3 -7
- package/ButtonsPanel/index.js +7 -7
- package/ButtonsPanel/index.js.map +1 -1
- package/CalendarHeaderWithSelect/cjs/index.js +36 -21
- package/CalendarHeaderWithSelect/cjs/index.js.map +1 -1
- package/CalendarHeaderWithSelect/cjs/package.json +1 -0
- package/CalendarHeaderWithSelect/index.d.ts +11 -6
- package/CalendarHeaderWithSelect/index.js +36 -21
- package/CalendarHeaderWithSelect/index.js.map +1 -1
- package/CalendarHeaderWithSelect/package.json +1 -0
- package/CalendarStandardContainer/cjs/index.js +4 -3
- package/CalendarStandardContainer/cjs/index.js.map +1 -1
- package/CalendarStandardContainer/index.d.ts +4 -3
- package/CalendarStandardContainer/index.js +4 -3
- package/CalendarStandardContainer/index.js.map +1 -1
- package/CalendarStandardHeader/cjs/index.js +4 -3
- package/CalendarStandardHeader/cjs/index.js.map +1 -1
- package/CalendarStandardHeader/index.d.ts +3 -1
- package/CalendarStandardHeader/index.js +4 -3
- package/CalendarStandardHeader/index.js.map +1 -1
- package/DesktopInputWithMonthPicker/cjs/index.js +11 -11
- package/DesktopInputWithMonthPicker/cjs/index.js.map +1 -1
- package/DesktopInputWithMonthPicker/index.d.ts +3 -1
- package/DesktopInputWithMonthPicker/index.js +12 -12
- package/DesktopInputWithMonthPicker/index.js.map +1 -1
- package/DesktopMenuPanel/cjs/index.js +10 -10
- package/DesktopMenuPanel/cjs/index.js.map +1 -1
- package/DesktopMenuPanel/index.d.ts +4 -2
- package/DesktopMenuPanel/index.js +8 -8
- package/DesktopMenuPanel/index.js.map +1 -1
- package/InputPassword/cjs/index.js +8 -8
- package/InputPassword/cjs/index.js.map +1 -1
- package/InputPassword/index.d.ts +6 -5
- package/InputPassword/index.js +9 -9
- package/InputPassword/index.js.map +1 -1
- package/InputSelect/cjs/index.js +12 -3
- package/InputSelect/cjs/index.js.map +1 -1
- package/InputSelect/index.js +12 -3
- package/InputSelect/index.js.map +1 -1
- package/InputSelectDropdown/cjs/index.js +12 -3
- package/InputSelectDropdown/cjs/index.js.map +1 -1
- package/InputSelectDropdown/index.d.ts +4 -2
- package/InputSelectDropdown/index.js +12 -3
- package/InputSelectDropdown/index.js.map +1 -1
- package/InputTextAreaMobile/cjs/index.js +3 -3
- package/InputTextAreaMobile/cjs/index.js.map +1 -1
- package/InputTextAreaMobile/index.d.ts +3 -1
- package/InputTextAreaMobile/index.js +3 -3
- package/InputTextAreaMobile/index.js.map +1 -1
- package/InputWithController/cjs/index.js +2 -2
- package/InputWithController/cjs/index.js.map +1 -1
- package/InputWithController/index.d.ts +5 -5
- package/InputWithController/index.js +2 -2
- package/InputWithController/index.js.map +1 -1
- package/InputWithDatePicker/cjs/index.js +84 -41
- package/InputWithDatePicker/cjs/index.js.map +1 -1
- package/InputWithDatePicker/index.d.ts +6 -1
- package/InputWithDatePicker/index.js +86 -42
- package/InputWithDatePicker/index.js.map +1 -1
- package/InputWithMonthPicker/cjs/index.js +17 -17
- package/InputWithMonthPicker/cjs/index.js.map +1 -1
- package/InputWithMonthPicker/index.js +18 -18
- package/InputWithMonthPicker/index.js.map +1 -1
- package/MenuItem/cjs/index.js +7 -7
- package/MenuItem/cjs/index.js.map +1 -1
- package/MenuItem/index.d.ts +4 -2
- package/MenuItem/index.js +5 -5
- package/MenuItem/index.js.map +1 -1
- package/MenuPanel/cjs/index.js +13 -13
- package/MenuPanel/cjs/index.js.map +1 -1
- package/MenuPanel/index.d.ts +4 -7
- package/MenuPanel/index.js +15 -15
- package/MenuPanel/index.js.map +1 -1
- package/MobileInputWithMonthPicker/cjs/index.js +13 -13
- package/MobileInputWithMonthPicker/cjs/index.js.map +1 -1
- package/MobileInputWithMonthPicker/index.d.ts +3 -1
- package/MobileInputWithMonthPicker/index.js +14 -14
- package/MobileInputWithMonthPicker/index.js.map +1 -1
- package/MobileMenuPanel/cjs/index.js +11 -11
- package/MobileMenuPanel/cjs/index.js.map +1 -1
- package/MobileMenuPanel/index.d.ts +4 -2
- package/MobileMenuPanel/index.js +8 -8
- package/MobileMenuPanel/index.js.map +1 -1
- package/ModalFooter/cjs/index.js +4 -3
- package/ModalFooter/cjs/index.js.map +1 -1
- package/ModalFooter/index.d.ts +6 -8
- package/ModalFooter/index.js +5 -4
- package/ModalFooter/index.js.map +1 -1
- package/MonthPickerContainer/cjs/index.js +5 -4
- package/MonthPickerContainer/cjs/index.js.map +1 -1
- package/MonthPickerContainer/index.d.ts +1 -1
- package/MonthPickerContainer/index.js +5 -4
- package/MonthPickerContainer/index.js.map +1 -1
- package/MonthPickerHeader/cjs/index.js +4 -3
- package/MonthPickerHeader/cjs/index.js.map +1 -1
- package/MonthPickerHeader/index.d.ts +3 -1
- package/MonthPickerHeader/index.js +5 -4
- package/MonthPickerHeader/index.js.map +1 -1
- package/PassportStrengthBar/cjs/index.js +4 -3
- package/PassportStrengthBar/cjs/index.js.map +1 -1
- package/PassportStrengthBar/cjs/package.json +4 -1
- package/PassportStrengthBar/index.d.ts +4 -2
- package/PassportStrengthBar/index.js +5 -4
- package/PassportStrengthBar/index.js.map +1 -1
- package/PassportStrengthBar/package.json +4 -1
- package/SelectMonth/cjs/index.js +19 -10
- package/SelectMonth/cjs/index.js.map +1 -1
- package/SelectMonth/index.d.ts +6 -2
- package/SelectMonth/index.js +19 -10
- package/SelectMonth/index.js.map +1 -1
- package/SelectYear/cjs/index.js +21 -10
- package/SelectYear/cjs/index.js.map +1 -1
- package/SelectYear/index.d.ts +6 -5
- package/SelectYear/index.js +21 -10
- package/SelectYear/index.js.map +1 -1
- package/Switch/cjs/index.js +4 -3
- package/Switch/cjs/index.js.map +1 -1
- package/Switch/cjs/package.json +1 -0
- package/Switch/index.d.ts +8 -6
- package/Switch/index.js +4 -3
- package/Switch/index.js.map +1 -1
- package/Switch/package.json +1 -0
- package/Table/cjs/index.js +2 -1
- package/Table/cjs/index.js.map +1 -1
- package/Table/index.d.ts +1 -1
- package/Table/index.js +2 -1
- package/Table/index.js.map +1 -1
- package/TableRow/cjs/index.js +14 -4
- package/TableRow/cjs/index.js.map +1 -1
- package/TableRow/index.d.ts +1 -1
- package/TableRow/index.js +15 -4
- package/TableRow/index.js.map +1 -1
- package/TestForm/cjs/index.js +111 -66
- package/TestForm/cjs/index.js.map +1 -1
- package/TestForm/index.js +112 -67
- package/TestForm/index.js.map +1 -1
- package/UndefinedAvatar/cjs/index.js +4 -3
- package/UndefinedAvatar/cjs/index.js.map +1 -1
- package/UndefinedAvatar/index.d.ts +5 -6
- package/UndefinedAvatar/index.js +5 -4
- package/UndefinedAvatar/index.js.map +1 -1
- package/cjs/index.js +145 -101
- package/cjs/index.js.map +1 -1
- package/index.d.ts +83 -70
- package/index.js +148 -104
- package/index.js.map +1 -1
- package/package.json +1 -1
package/TestForm/index.js
CHANGED
|
@@ -3,16 +3,16 @@ import { Controller, useController, useForm } from 'react-hook-form';
|
|
|
3
3
|
import * as yup from 'yup';
|
|
4
4
|
import { yupResolver } from '@hookform/resolvers/yup';
|
|
5
5
|
import { forwardRef, useRef, useEffect, useState } from 'react';
|
|
6
|
-
import { InputWithAdornments, Grid, theme, Caption,
|
|
6
|
+
import { InputWithAdornments, Grid, theme, Caption, Divider, Button, Modal, IconButton, InputWithCountryDropdown, Switch as Switch$1, LinearProgress, InputWithMask as InputWithMask$1 } from 'kui-basic';
|
|
7
7
|
import { jsx as jsx$1, jsxs, Fragment } from '@emotion/react/jsx-runtime';
|
|
8
8
|
import styled from '@emotion/styled';
|
|
9
9
|
import { HalfArrowIcon, CalendarIcon, CheckIcon, ArrowBackIcon, ArrowNextIcon, ClosedEyeIcon, OpenEyeIcon } from 'kui-icon';
|
|
10
10
|
import { css } from '@emotion/react';
|
|
11
|
-
import DatePicker
|
|
12
|
-
import ru from 'date-fns/locale/ru';
|
|
11
|
+
import DatePicker from 'react-datepicker';
|
|
13
12
|
import { DateTime } from 'luxon';
|
|
14
13
|
import _ from 'lodash';
|
|
15
14
|
import InputMask from 'react-input-mask';
|
|
15
|
+
import ru from 'date-fns/locale/ru';
|
|
16
16
|
|
|
17
17
|
/******************************************************************************
|
|
18
18
|
Copyright (c) Microsoft Corporation.
|
|
@@ -58,7 +58,7 @@ function __makeTemplateObject(cooked, raw) {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
var InputWithController = forwardRef(function (_a, ref) {
|
|
61
|
-
var form = _a.form, name = _a.name, error = _a.error, inputProps = __rest(_a, ["form", "name", "error"]);
|
|
61
|
+
var form = _a.form, name = _a.name, error = _a.error, value = _a.value, inputProps = __rest(_a, ["form", "name", "error", "value"]);
|
|
62
62
|
var handleChange = function (e, field) {
|
|
63
63
|
field.onChange(e);
|
|
64
64
|
if (inputProps.onChange) {
|
|
@@ -83,7 +83,7 @@ var InputWithController = forwardRef(function (_a, ref) {
|
|
|
83
83
|
var field = _a.field, fieldState = _a.fieldState;
|
|
84
84
|
return (jsx(InputWithAdornments, __assign({ message: getError(fieldState) }, field, inputProps, { onChange: function (e) {
|
|
85
85
|
return handleChange(e, field);
|
|
86
|
-
}, value: field.value || "", ref: function (e) { return forwardedRef(e, field); } })));
|
|
86
|
+
}, value: typeof value !== "undefined" ? value : field.value || "", ref: function (e) { return forwardedRef(e, field); } })));
|
|
87
87
|
} }));
|
|
88
88
|
});
|
|
89
89
|
|
|
@@ -122,7 +122,7 @@ var InputDropdown = forwardRef(function (_a, ref) {
|
|
|
122
122
|
});
|
|
123
123
|
var templateObject_1$d;
|
|
124
124
|
|
|
125
|
-
var InputSelectDropdown = function (_a) {
|
|
125
|
+
var InputSelectDropdown = forwardRef(function (_a, ref) {
|
|
126
126
|
var options = _a.options, inputRef = _a.inputRef, isOpenDropdown = _a.isOpenDropdown, handleCloseDropdown = _a.handleCloseDropdown, handleSelect = _a.handleSelect, selectedValue = _a.selectedValue;
|
|
127
127
|
var dropdownRef = useRef(null);
|
|
128
128
|
useEffect(function () {
|
|
@@ -139,11 +139,20 @@ var InputSelectDropdown = function (_a) {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
}, [isOpenDropdown]);
|
|
142
|
-
|
|
142
|
+
var forwardedRef = function (elem) {
|
|
143
|
+
if (ref) {
|
|
144
|
+
if (typeof ref === "function")
|
|
145
|
+
ref(elem);
|
|
146
|
+
else
|
|
147
|
+
ref.current = elem;
|
|
148
|
+
}
|
|
149
|
+
dropdownRef.current = elem;
|
|
150
|
+
};
|
|
151
|
+
return (jsx$1(InputDropdown, __assign({ ref: forwardedRef, buttonRef: inputRef, isOpen: isOpenDropdown, handleClose: handleCloseDropdown, css: {
|
|
143
152
|
maxHeight: "142px",
|
|
144
153
|
padding: "4px",
|
|
145
154
|
} }, { 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)); }) })));
|
|
146
|
-
};
|
|
155
|
+
});
|
|
147
156
|
var OptionWrapper = styled.div(templateObject_1$c || (templateObject_1$c = __makeTemplateObject(["\n width: 100%;\n padding: 2px 0;\n cursor: pointer;\n"], ["\n width: 100%;\n padding: 2px 0;\n cursor: pointer;\n"])));
|
|
148
157
|
var StyledOption = styled.div(templateObject_2$6 || (templateObject_2$6 = __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);
|
|
149
158
|
var selectedStyles = css(templateObject_3$4 || (templateObject_3$4 = __makeTemplateObject(["\n background-color: ", ";\n"], ["\n background-color: ", ";\n"])), theme.palette.background.light1);
|
|
@@ -258,13 +267,16 @@ var simplePasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{10,
|
|
|
258
267
|
var mediumPasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{12,}$/;
|
|
259
268
|
var strongPasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{14,}$/;
|
|
260
269
|
|
|
261
|
-
var
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
};
|
|
270
|
+
var checkDisabled$1 = function (year, min, max) {
|
|
271
|
+
return (min && year <= min) || (max && year >= max);
|
|
272
|
+
};
|
|
273
|
+
var SelectYear = forwardRef(function (_a, ref) {
|
|
274
|
+
var yearOptions = _a.yearOptions; _a.options; var min = _a.min, max = _a.max, props = __rest(_a, ["yearOptions", "options", "min", "max"]);
|
|
275
|
+
var formattedYearOptions = yearOptions.map(function (year) { return (__assign(__assign({}, year), { disabled: checkDisabled$1(Number(year.value), min, max) })); });
|
|
276
|
+
return (jsx(InputSelect, __assign({ ref: ref, label: "Year", options: formattedYearOptions }, props)));
|
|
277
|
+
});
|
|
267
278
|
|
|
279
|
+
var checkDisabled = function (month, min, max) { return (min && month <= min) || (max && month >= max); };
|
|
268
280
|
var monthValues = [
|
|
269
281
|
{ value: 0, label: "January" },
|
|
270
282
|
{ value: 1, label: "February" },
|
|
@@ -279,40 +291,43 @@ var monthValues = [
|
|
|
279
291
|
{ value: 10, label: "November" },
|
|
280
292
|
{ value: 11, label: "December" },
|
|
281
293
|
];
|
|
282
|
-
var SelectMonth = function (
|
|
283
|
-
|
|
284
|
-
return (
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
};
|
|
294
|
+
var SelectMonth = forwardRef(function (props, ref) {
|
|
295
|
+
var min = props.min, max = props.max; props.options; var other = __rest(props, ["min", "max", "options"]);
|
|
296
|
+
var formattedMonths = monthValues.map(function (month) { return (__assign(__assign({}, month), { disabled: checkDisabled(month.value, min, max) })); });
|
|
297
|
+
return (jsx(InputSelect, __assign({ ref: ref, label: "Month", options: formattedMonths }, other)));
|
|
298
|
+
});
|
|
288
299
|
|
|
289
|
-
var CalendarHeaderWithSelect = function (_a) {
|
|
290
|
-
var changeMonth = _a.changeMonth, changeYear = _a.changeYear, date = _a.date, yearOptions = _a.yearOptions;
|
|
300
|
+
var CalendarHeaderWithSelect = forwardRef(function (_a, ref) {
|
|
301
|
+
var changeMonth = _a.changeMonth, changeYear = _a.changeYear, date = _a.date, yearOptions = _a.yearOptions, max = _a.max, min = _a.min;
|
|
291
302
|
var year = date.getFullYear();
|
|
292
|
-
var month = date.getMonth()
|
|
293
|
-
|
|
294
|
-
|
|
303
|
+
var month = date.getMonth();
|
|
304
|
+
var currentYear = DateTime.now().year;
|
|
305
|
+
var minMonth = (min === null || min === void 0 ? void 0 : min.year) === currentYear ? min === null || min === void 0 ? void 0 : min.month : 0;
|
|
306
|
+
var maxMonth = (max === null || max === void 0 ? void 0 : max.year) === currentYear ? max === null || max === void 0 ? void 0 : max.month : 11;
|
|
307
|
+
return (jsx(Wrapper$3, __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 }) }))] })) })));
|
|
308
|
+
});
|
|
295
309
|
var Wrapper$3 = styled.div(templateObject_1$9 || (templateObject_1$9 = __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"])));
|
|
296
310
|
var templateObject_1$9;
|
|
297
311
|
|
|
298
|
-
var ModalFooter = function (_a) {
|
|
312
|
+
var ModalFooter = forwardRef(function (_a, ref) {
|
|
299
313
|
var label = _a.label, button = _a.button, otherProps = __rest(_a, ["label", "button"]);
|
|
300
|
-
return (jsxs$1(StyledFooter, { children: [jsx(Divider, {}), jsx(ButtonWrapper, { children: button || (jsx(ButtonStyled, __assign({ fullWidth: true, size: "s", endIcon: jsx(CheckIcon, {}) }, otherProps, { children: label }))) })] }));
|
|
301
|
-
};
|
|
314
|
+
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 }))) })] })));
|
|
315
|
+
});
|
|
302
316
|
var StyledFooter = styled.div(templateObject_1$8 || (templateObject_1$8 = __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);
|
|
303
317
|
var ButtonWrapper = styled.div(templateObject_2$4 || (templateObject_2$4 = __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"])));
|
|
304
318
|
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"])));
|
|
305
319
|
var templateObject_1$8, templateObject_2$4, templateObject_3$2;
|
|
306
320
|
|
|
307
|
-
var CalendarStandardContainer = function (_a) {
|
|
321
|
+
var CalendarStandardContainer = forwardRef(function (_a, ref) {
|
|
308
322
|
_a.arrowProps; _a.showPopperArrow; var props = __rest(_a, ["arrowProps", "showPopperArrow"]);
|
|
309
|
-
return jsx(DatePickerContainer, __assign({}, props));
|
|
310
|
-
};
|
|
323
|
+
return jsx(DatePickerContainer, __assign({ ref: ref }, props));
|
|
324
|
+
});
|
|
311
325
|
var DatePickerContainer = styled.div(templateObject_1$7 || (templateObject_1$7 = __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);
|
|
312
326
|
var templateObject_1$7;
|
|
313
327
|
|
|
314
|
-
registerLocale("ru", ru);
|
|
315
328
|
var generateYearRange = function (offsetFromCurrent, maxYearCount) {
|
|
329
|
+
if (!offsetFromCurrent || !maxYearCount)
|
|
330
|
+
return [];
|
|
316
331
|
var endYear = DateTime.now().year - offsetFromCurrent;
|
|
317
332
|
return _.range(maxYearCount).map(function (elem) {
|
|
318
333
|
var fullYear = endYear - elem;
|
|
@@ -324,73 +339,103 @@ var generateYearRange = function (offsetFromCurrent, maxYearCount) {
|
|
|
324
339
|
};
|
|
325
340
|
var InputWithDatePicker = forwardRef(function (_a, ref) {
|
|
326
341
|
var _b;
|
|
327
|
-
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"]);
|
|
342
|
+
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"]);
|
|
328
343
|
var _c = useController({
|
|
329
344
|
name: name,
|
|
330
345
|
control: form.control,
|
|
331
346
|
}), field = _c.field, fieldState = _c.fieldState;
|
|
332
347
|
var error = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message;
|
|
348
|
+
var formattedValue = field.value ? field.value.toFormat("dd.MM.yyyy") : "";
|
|
349
|
+
var formattedDate = field.value ? field.value.toJSDate() : null;
|
|
333
350
|
var _d = useToggle(), isModalOpen = _d[0], handleModalOpen = _d[1], handleModalClose = _d[2];
|
|
334
|
-
var _e = useState(
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
351
|
+
var _e = useState(formattedDate), date = _e[0], setDate = _e[1];
|
|
352
|
+
var _f = useState(formattedValue), value = _f[0], setValue = _f[1];
|
|
353
|
+
var yearList = generateYearRange(yearParams === null || yearParams === void 0 ? void 0 : yearParams.min, yearParams === null || yearParams === void 0 ? void 0 : yearParams.max);
|
|
354
|
+
useEffect(function () {
|
|
355
|
+
if (!isModalOpen) {
|
|
356
|
+
setDate(null);
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
setDate(formattedDate);
|
|
360
|
+
}
|
|
361
|
+
}, [isModalOpen]);
|
|
339
362
|
var handleChange = function (e) {
|
|
340
363
|
var targetValue = e.target.value;
|
|
341
364
|
setValue(targetValue);
|
|
342
365
|
if (targetValue.length !== 0 && isValidWithMaskExp.test(targetValue)) {
|
|
343
|
-
var
|
|
344
|
-
setDate(
|
|
345
|
-
field === null || field === void 0 ? void 0 : field.onChange({ target: { value:
|
|
366
|
+
var targetDate = DateTime.fromFormat(targetValue, "dd.MM.yyyy");
|
|
367
|
+
setDate(targetDate.toJSDate());
|
|
368
|
+
field === null || field === void 0 ? void 0 : field.onChange({ target: { value: targetDate, name: name }, type: "change" });
|
|
369
|
+
if (onChange) {
|
|
370
|
+
onChange(targetDate);
|
|
371
|
+
}
|
|
346
372
|
}
|
|
347
373
|
else {
|
|
348
374
|
setDate(null);
|
|
349
375
|
field === null || field === void 0 ? void 0 : field.onChange({ target: { value: null, name: name }, type: "change" });
|
|
376
|
+
if (onChange) {
|
|
377
|
+
onChange(null);
|
|
378
|
+
}
|
|
350
379
|
}
|
|
351
380
|
};
|
|
352
381
|
var acceptWithDateSelected = function () {
|
|
353
382
|
if (date) {
|
|
354
|
-
|
|
355
|
-
|
|
383
|
+
var dateObj = DateTime.fromJSDate(date);
|
|
384
|
+
setValue(dateObj.toFormat("dd.MM.yyyy"));
|
|
385
|
+
field === null || field === void 0 ? void 0 : field.onChange({ target: { value: dateObj, name: name }, type: "change" });
|
|
386
|
+
if (onChange) {
|
|
387
|
+
onChange(dateObj);
|
|
388
|
+
}
|
|
356
389
|
handleModalClose();
|
|
357
390
|
}
|
|
358
391
|
};
|
|
359
|
-
|
|
392
|
+
var handleDateChange = function (newDate) {
|
|
393
|
+
setDate(newDate);
|
|
394
|
+
};
|
|
395
|
+
var forwardedRef = function (elem) {
|
|
396
|
+
if (ref) {
|
|
397
|
+
// eslint-disable-next-line no-param-reassign
|
|
398
|
+
// @ts-ignore
|
|
399
|
+
ref.current = elem;
|
|
400
|
+
}
|
|
401
|
+
field.ref(elem);
|
|
402
|
+
};
|
|
403
|
+
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 })] }))] }));
|
|
360
404
|
});
|
|
361
405
|
InputWithDatePicker.defaultProps = {
|
|
362
406
|
title: "Дата рождения",
|
|
363
407
|
description: "Выберите год, месяц и число вашего рождения",
|
|
364
408
|
yearParams: { min: 18, max: 120 },
|
|
409
|
+
footerLabel: "Подтвердить",
|
|
365
410
|
};
|
|
366
411
|
var ContentWrapper$1 = styled.div(templateObject_1$6 || (templateObject_1$6 = __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"])));
|
|
367
412
|
var StyledCalendarStandardContainer = styled(CalendarStandardContainer)(templateObject_2$3 || (templateObject_2$3 = __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);
|
|
368
413
|
var DayContent = styled.span(templateObject_3$1 || (templateObject_3$1 = __makeTemplateObject(["\n padding-top: 1px;\n @media (max-width: 600px) {\n font-weight: 400;\n }\n"], ["\n padding-top: 1px;\n @media (max-width: 600px) {\n font-weight: 400;\n }\n"])));
|
|
369
414
|
var templateObject_1$6, templateObject_2$3, templateObject_3$1;
|
|
370
415
|
|
|
371
|
-
var MonthPickerContainer = function (_a) {
|
|
416
|
+
var MonthPickerContainer = forwardRef(function (_a, ref) {
|
|
372
417
|
_a.arrowProps; _a.showPopperArrow; var props = __rest(_a, ["arrowProps", "showPopperArrow"]);
|
|
373
|
-
return jsx(StyledContainer, __assign({}, props));
|
|
374
|
-
};
|
|
375
|
-
var StyledContainer = styled.div(templateObject_1$5 || (templateObject_1$5 = __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);
|
|
418
|
+
return jsx(StyledContainer, __assign({ ref: ref }, props));
|
|
419
|
+
});
|
|
420
|
+
var StyledContainer = styled.div(templateObject_1$5 || (templateObject_1$5 = __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);
|
|
376
421
|
var templateObject_1$5;
|
|
377
422
|
|
|
378
|
-
var MonthPickerHeader = function (_a) {
|
|
423
|
+
var MonthPickerHeader = forwardRef(function (_a, ref) {
|
|
379
424
|
var decreaseYear = _a.decreaseYear, increaseYear = _a.increaseYear, nextYearButtonDisabled = _a.nextYearButtonDisabled, prevYearButtonDisabled = _a.prevYearButtonDisabled, date = _a.date;
|
|
380
|
-
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 }) })) }))] })));
|
|
381
|
-
};
|
|
425
|
+
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 }) })) }))] })));
|
|
426
|
+
});
|
|
382
427
|
var StyledIconButton = styled(IconButton)(templateObject_1$4 || (templateObject_1$4 = __makeTemplateObject(["\n height: 36px;\n &:disabled {\n opacity: 0;\n }\n"], ["\n height: 36px;\n &:disabled {\n opacity: 0;\n }\n"])));
|
|
383
428
|
var StyledHeader = styled(Grid)(templateObject_2$2 || (templateObject_2$2 = __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"])));
|
|
384
429
|
var templateObject_1$4, templateObject_2$2;
|
|
385
430
|
|
|
386
|
-
var DesktopInputWithMonthPicker = function (_a) {
|
|
431
|
+
var DesktopInputWithMonthPicker = forwardRef(function (_a, ref) {
|
|
387
432
|
var name = _a.name, form = _a.form, disabled = _a.disabled, datePickerProps = _a.datePickerProps, otherProps = __rest(_a, ["name", "form", "disabled", "datePickerProps"]);
|
|
388
|
-
return (jsx(Wrapper$2, { children: jsx(Controller, { name: name, control: form.control, render: function (_a) {
|
|
433
|
+
return (jsx(Wrapper$2, __assign({ ref: ref }, { children: jsx(Controller, { name: name, control: form.control, render: function (_a) {
|
|
389
434
|
var _b;
|
|
390
435
|
var field = _a.field, fieldState = _a.fieldState;
|
|
391
436
|
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)));
|
|
392
|
-
} }) }));
|
|
393
|
-
};
|
|
437
|
+
} }) })));
|
|
438
|
+
});
|
|
394
439
|
var Wrapper$2 = styled.div(templateObject_1$3 || (templateObject_1$3 = __makeTemplateObject(["\n @media (max-width: 600px) {\n display: none;\n }\n"], ["\n @media (max-width: 600px) {\n display: none;\n }\n"])));
|
|
395
440
|
var templateObject_1$3;
|
|
396
441
|
|
|
@@ -417,7 +462,7 @@ var ruCustom = __assign(__assign({}, ru), { localize: {
|
|
|
417
462
|
dayPeriod: function () { return ""; },
|
|
418
463
|
day: function () { return ""; },
|
|
419
464
|
} });
|
|
420
|
-
var MobileInputWithMonthPicker = function (_a) {
|
|
465
|
+
var MobileInputWithMonthPicker = forwardRef(function (_a, ref) {
|
|
421
466
|
var _b;
|
|
422
467
|
var title = _a.title, name = _a.name, form = _a.form, disabled = _a.disabled, datePickerProps = _a.datePickerProps, props = __rest(_a, ["title", "name", "form", "disabled", "datePickerProps"]);
|
|
423
468
|
var _c = useController({
|
|
@@ -453,8 +498,8 @@ var MobileInputWithMonthPicker = function (_a) {
|
|
|
453
498
|
field === null || field === void 0 ? void 0 : field.onChange({ target: { value: date, name: name }, type: "change" });
|
|
454
499
|
handleModalClose();
|
|
455
500
|
};
|
|
456
|
-
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" })] }))] }));
|
|
457
|
-
};
|
|
501
|
+
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" })] }))] })));
|
|
502
|
+
});
|
|
458
503
|
var Wrapper$1 = styled.div(templateObject_1$2 || (templateObject_1$2 = __makeTemplateObject(["\n @media (min-width: 601px) {\n display: none;\n }\n"], ["\n @media (min-width: 601px) {\n display: none;\n }\n"])));
|
|
459
504
|
var ContentWrapper = styled.div(templateObject_2$1 || (templateObject_2$1 = __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"])));
|
|
460
505
|
var templateObject_1$2, templateObject_2$1;
|
|
@@ -504,13 +549,13 @@ InputPhoneWithForm.defaultProps = {
|
|
|
504
549
|
name: "phone",
|
|
505
550
|
};
|
|
506
551
|
|
|
507
|
-
var Switch = function (_a) {
|
|
552
|
+
var Switch = forwardRef(function (_a, ref) {
|
|
508
553
|
var form = _a.form, name = _a.name, props = __rest(_a, ["form", "name"]);
|
|
509
554
|
return (jsx$1(Controller, { control: form === null || form === void 0 ? void 0 : form.control, name: name, render: function (_a) {
|
|
510
555
|
var field = _a.field;
|
|
511
|
-
return (jsx$1(Switch$1, __assign({ checked: Boolean(field.value), onChange: field.onChange, "data-testid": name }, props)));
|
|
556
|
+
return (jsx$1(Switch$1, __assign({ checked: Boolean(field.value), onChange: field.onChange, "data-testid": name, ref: ref }, props)));
|
|
512
557
|
} }));
|
|
513
|
-
};
|
|
558
|
+
});
|
|
514
559
|
|
|
515
560
|
var strengthCoefficients = {
|
|
516
561
|
weak: 0,
|
|
@@ -530,7 +575,7 @@ var strengthTexts = {
|
|
|
530
575
|
medium: "Средний",
|
|
531
576
|
hard: "Сложный",
|
|
532
577
|
};
|
|
533
|
-
var PassportStrengthBar = function (_a) {
|
|
578
|
+
var PassportStrengthBar = forwardRef(function (_a, ref) {
|
|
534
579
|
var strength = _a.strength;
|
|
535
580
|
var color = strength
|
|
536
581
|
? strengthColors[strength]
|
|
@@ -538,8 +583,8 @@ var PassportStrengthBar = function (_a) {
|
|
|
538
583
|
var strengthKey = strength
|
|
539
584
|
? strengthCoefficients[strength]
|
|
540
585
|
: -1;
|
|
541
|
-
return (jsxs(Wrapper, __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" }))] })));
|
|
542
|
-
};
|
|
586
|
+
return (jsxs(Wrapper, __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" }))] })));
|
|
587
|
+
});
|
|
543
588
|
var Wrapper = styled.div(templateObject_1$1 || (templateObject_1$1 = __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"])));
|
|
544
589
|
var ReliabilityLevelWrapper = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n margin-bottom: 8px;\n"], ["\n display: flex;\n margin-bottom: 8px;\n"])));
|
|
545
590
|
var ReliabilityLevel = styled.div(templateObject_3 || (templateObject_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"])));
|
|
@@ -550,7 +595,7 @@ var StyledLinearProgress = styled(LinearProgress)(templateObject_4 || (templateO
|
|
|
550
595
|
var Description = styled(Caption)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n margin-top: 16px;\n @media (max-width: 900px) {\n margin-top: 8px;\n font-size: 12px;\n }\n"], ["\n margin-top: 16px;\n @media (max-width: 900px) {\n margin-top: 8px;\n font-size: 12px;\n }\n"])));
|
|
551
596
|
var templateObject_1$1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
552
597
|
|
|
553
|
-
var InputPassword = function (props) {
|
|
598
|
+
var InputPassword = forwardRef(function (props, ref) {
|
|
554
599
|
var _a = useState(false), showPassword = _a[0], setShowPassword = _a[1];
|
|
555
600
|
var _b = useState(null), strength = _b[0], setStrength = _b[1];
|
|
556
601
|
var handleShowChange = function () {
|
|
@@ -585,8 +630,8 @@ var InputPassword = function (props) {
|
|
|
585
630
|
checkPasswordStrength(fieldValue);
|
|
586
631
|
}
|
|
587
632
|
}, []);
|
|
588
|
-
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 })] }));
|
|
589
|
-
};
|
|
633
|
+
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 })] }));
|
|
634
|
+
});
|
|
590
635
|
var EyeIconWrapper = styled.div(templateObject_1 || (templateObject_1 = __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"])));
|
|
591
636
|
var templateObject_1;
|
|
592
637
|
|