@redneckz/wildless-cms-uni-blocks 0.14.821 → 0.14.823

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 (159) hide show
  1. package/bundle/bundle.umd.js +101 -25
  2. package/bundle/bundle.umd.min.js +1 -1
  3. package/bundle/retail/validator/getLimitedBirthdayValidation.d.ts +2 -0
  4. package/bundle/retail/validator/validators.d.ts +8 -1
  5. package/bundle/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  6. package/dist/components/ApplicationLeadForm/ApplicationLeadForm.js +9 -2
  7. package/dist/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  8. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.js +12 -5
  9. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  10. package/dist/components/CreditCardForm/CreditCardFormStep.js +7 -1
  11. package/dist/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  12. package/dist/components/CreditForm/CreditFormStep.js +7 -1
  13. package/dist/components/CreditForm/CreditFormStep.js.map +1 -1
  14. package/dist/components/DebitForm/DebitFormStep.js +7 -1
  15. package/dist/components/DebitForm/DebitFormStep.js.map +1 -1
  16. package/dist/retail/components/Fields/DeliveryDateFiels.js +1 -1
  17. package/dist/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
  18. package/dist/retail/components/Fields/DulIssueDateField.js +6 -1
  19. package/dist/retail/components/Fields/DulIssueDateField.js.map +1 -1
  20. package/dist/retail/components/Fields/MiddleNameField.js +10 -1
  21. package/dist/retail/components/Fields/MiddleNameField.js.map +1 -1
  22. package/dist/retail/components/Fields/NameField.js +10 -1
  23. package/dist/retail/components/Fields/NameField.js.map +1 -1
  24. package/dist/retail/components/Fields/SurnameField.js +10 -1
  25. package/dist/retail/components/Fields/SurnameField.js.map +1 -1
  26. package/dist/retail/validator/getLimitedBirthdayValidation.d.ts +2 -0
  27. package/dist/retail/validator/getLimitedBirthdayValidation.js +21 -0
  28. package/dist/retail/validator/getLimitedBirthdayValidation.js.map +1 -0
  29. package/dist/retail/validator/validatorObj.js +3 -1
  30. package/dist/retail/validator/validatorObj.js.map +1 -1
  31. package/dist/retail/validator/validators.d.ts +8 -1
  32. package/dist/retail/validator/validators.js +14 -9
  33. package/dist/retail/validator/validators.js.map +1 -1
  34. package/dist/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  35. package/dist/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  36. package/lib/components/ApplicationLeadForm/ApplicationLeadForm.js +9 -2
  37. package/lib/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  38. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.js +12 -5
  39. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  40. package/lib/components/CreditCardForm/CreditCardFormStep.js +7 -1
  41. package/lib/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  42. package/lib/components/CreditForm/CreditFormStep.js +7 -1
  43. package/lib/components/CreditForm/CreditFormStep.js.map +1 -1
  44. package/lib/components/DebitForm/DebitFormStep.js +7 -1
  45. package/lib/components/DebitForm/DebitFormStep.js.map +1 -1
  46. package/lib/retail/components/Fields/DeliveryDateFiels.js +1 -1
  47. package/lib/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
  48. package/lib/retail/components/Fields/DulIssueDateField.js +6 -1
  49. package/lib/retail/components/Fields/DulIssueDateField.js.map +1 -1
  50. package/lib/retail/components/Fields/MiddleNameField.js +10 -1
  51. package/lib/retail/components/Fields/MiddleNameField.js.map +1 -1
  52. package/lib/retail/components/Fields/NameField.js +10 -1
  53. package/lib/retail/components/Fields/NameField.js.map +1 -1
  54. package/lib/retail/components/Fields/SurnameField.js +10 -1
  55. package/lib/retail/components/Fields/SurnameField.js.map +1 -1
  56. package/lib/retail/validator/getLimitedBirthdayValidation.d.ts +2 -0
  57. package/lib/retail/validator/getLimitedBirthdayValidation.js +18 -0
  58. package/lib/retail/validator/getLimitedBirthdayValidation.js.map +1 -0
  59. package/lib/retail/validator/validatorObj.js +4 -2
  60. package/lib/retail/validator/validatorObj.js.map +1 -1
  61. package/lib/retail/validator/validators.d.ts +8 -1
  62. package/lib/retail/validator/validators.js +12 -8
  63. package/lib/retail/validator/validators.js.map +1 -1
  64. package/lib/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  65. package/lib/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  66. package/mobile/bundle/bundle.umd.js +95 -24
  67. package/mobile/bundle/bundle.umd.min.js +1 -1
  68. package/mobile/bundle/retail/validator/getLimitedBirthdayValidation.d.ts +2 -0
  69. package/mobile/bundle/retail/validator/validators.d.ts +8 -1
  70. package/mobile/bundle/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  71. package/mobile/dist/components/ApplicationLeadForm/ApplicationLeadForm.js +9 -2
  72. package/mobile/dist/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  73. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.js +12 -5
  74. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  75. package/mobile/dist/components/CreditCardForm/CreditCardFormStep.js +7 -1
  76. package/mobile/dist/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  77. package/mobile/dist/components/CreditForm/CreditFormStep.js +7 -1
  78. package/mobile/dist/components/CreditForm/CreditFormStep.js.map +1 -1
  79. package/mobile/dist/components/DebitForm/DebitFormStep.js +7 -1
  80. package/mobile/dist/components/DebitForm/DebitFormStep.js.map +1 -1
  81. package/mobile/dist/retail/components/Fields/DeliveryDateFiels.js +1 -1
  82. package/mobile/dist/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
  83. package/mobile/dist/retail/components/Fields/DulIssueDateField.js +6 -1
  84. package/mobile/dist/retail/components/Fields/DulIssueDateField.js.map +1 -1
  85. package/mobile/dist/retail/components/Fields/MiddleNameField.js +10 -1
  86. package/mobile/dist/retail/components/Fields/MiddleNameField.js.map +1 -1
  87. package/mobile/dist/retail/components/Fields/NameField.js +10 -1
  88. package/mobile/dist/retail/components/Fields/NameField.js.map +1 -1
  89. package/mobile/dist/retail/components/Fields/SurnameField.js +10 -1
  90. package/mobile/dist/retail/components/Fields/SurnameField.js.map +1 -1
  91. package/mobile/dist/retail/validator/getLimitedBirthdayValidation.d.ts +2 -0
  92. package/mobile/dist/retail/validator/getLimitedBirthdayValidation.js +21 -0
  93. package/mobile/dist/retail/validator/getLimitedBirthdayValidation.js.map +1 -0
  94. package/mobile/dist/retail/validator/validatorObj.js +3 -1
  95. package/mobile/dist/retail/validator/validatorObj.js.map +1 -1
  96. package/mobile/dist/retail/validator/validators.d.ts +8 -1
  97. package/mobile/dist/retail/validator/validators.js +14 -9
  98. package/mobile/dist/retail/validator/validators.js.map +1 -1
  99. package/mobile/dist/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  100. package/mobile/dist/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  101. package/mobile/lib/components/ApplicationLeadForm/ApplicationLeadForm.js +9 -2
  102. package/mobile/lib/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  103. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.js +12 -5
  104. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  105. package/mobile/lib/components/CreditCardForm/CreditCardFormStep.js +7 -1
  106. package/mobile/lib/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  107. package/mobile/lib/components/CreditForm/CreditFormStep.js +7 -1
  108. package/mobile/lib/components/CreditForm/CreditFormStep.js.map +1 -1
  109. package/mobile/lib/components/DebitForm/DebitFormStep.js +7 -1
  110. package/mobile/lib/components/DebitForm/DebitFormStep.js.map +1 -1
  111. package/mobile/lib/retail/components/Fields/DeliveryDateFiels.js +1 -1
  112. package/mobile/lib/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
  113. package/mobile/lib/retail/components/Fields/DulIssueDateField.js +6 -1
  114. package/mobile/lib/retail/components/Fields/DulIssueDateField.js.map +1 -1
  115. package/mobile/lib/retail/components/Fields/MiddleNameField.js +10 -1
  116. package/mobile/lib/retail/components/Fields/MiddleNameField.js.map +1 -1
  117. package/mobile/lib/retail/components/Fields/NameField.js +10 -1
  118. package/mobile/lib/retail/components/Fields/NameField.js.map +1 -1
  119. package/mobile/lib/retail/components/Fields/SurnameField.js +10 -1
  120. package/mobile/lib/retail/components/Fields/SurnameField.js.map +1 -1
  121. package/mobile/lib/retail/validator/getLimitedBirthdayValidation.d.ts +2 -0
  122. package/mobile/lib/retail/validator/getLimitedBirthdayValidation.js +18 -0
  123. package/mobile/lib/retail/validator/getLimitedBirthdayValidation.js.map +1 -0
  124. package/mobile/lib/retail/validator/validatorObj.js +4 -2
  125. package/mobile/lib/retail/validator/validatorObj.js.map +1 -1
  126. package/mobile/lib/retail/validator/validators.d.ts +8 -1
  127. package/mobile/lib/retail/validator/validators.js +12 -8
  128. package/mobile/lib/retail/validator/validators.js.map +1 -1
  129. package/mobile/lib/ui-kit/DatePicker/DatePickerControl.d.ts +1 -0
  130. package/mobile/lib/ui-kit/DatePicker/DatePickerControl.js.map +1 -1
  131. package/mobile/src/components/ApplicationLeadForm/ApplicationLeadForm.tsx +17 -6
  132. package/mobile/src/components/ApplicationLeadForm/useApplicationLeadApi.tsx +13 -5
  133. package/mobile/src/components/CreditCardForm/CreditCardFormStep.tsx +9 -1
  134. package/mobile/src/components/CreditForm/CreditFormStep.tsx +10 -1
  135. package/mobile/src/components/DebitForm/DebitFormStep.tsx +9 -1
  136. package/mobile/src/retail/components/Fields/DeliveryDateFiels.tsx +1 -1
  137. package/mobile/src/retail/components/Fields/DulIssueDateField.tsx +17 -7
  138. package/mobile/src/retail/components/Fields/MiddleNameField.tsx +23 -9
  139. package/mobile/src/retail/components/Fields/NameField.tsx +23 -9
  140. package/mobile/src/retail/components/Fields/SurnameField.tsx +23 -9
  141. package/mobile/src/retail/validator/getLimitedBirthdayValidation.ts +21 -0
  142. package/mobile/src/retail/validator/validatorObj.ts +4 -2
  143. package/mobile/src/retail/validator/validators.ts +31 -13
  144. package/mobile/src/ui-kit/DatePicker/DatePickerControl.tsx +3 -1
  145. package/package.json +1 -1
  146. package/src/components/ApplicationLeadForm/ApplicationLeadForm.tsx +17 -6
  147. package/src/components/ApplicationLeadForm/useApplicationLeadApi.tsx +13 -5
  148. package/src/components/CreditCardForm/CreditCardFormStep.tsx +9 -1
  149. package/src/components/CreditForm/CreditFormStep.tsx +10 -1
  150. package/src/components/DebitForm/DebitFormStep.tsx +9 -1
  151. package/src/retail/components/Fields/DeliveryDateFiels.tsx +1 -1
  152. package/src/retail/components/Fields/DulIssueDateField.tsx +17 -7
  153. package/src/retail/components/Fields/MiddleNameField.tsx +23 -9
  154. package/src/retail/components/Fields/NameField.tsx +23 -9
  155. package/src/retail/components/Fields/SurnameField.tsx +23 -9
  156. package/src/retail/validator/getLimitedBirthdayValidation.ts +21 -0
  157. package/src/retail/validator/validatorObj.ts +4 -2
  158. package/src/retail/validator/validators.ts +31 -13
  159. package/src/ui-kit/DatePicker/DatePickerControl.tsx +3 -1
@@ -2437,25 +2437,29 @@
2437
2437
 
2438
2438
  const ERROR_MESSAGE = 'Некорректно заполненное поле';
2439
2439
  const ADDRESS_ERROR_MESSAGE = 'Укажите регион, город/населенный пункт, улицу, дом';
2440
- const MIN_AGE = 23;
2441
- const MAX_AGE = 75;
2442
- const AGE_ERROR_MESSAGE = 'Допустимый возраст заёмщика - от 23 до 75 лет';
2440
+ const retailCyrillicPattern = /^[\u0400-\u04FF-\s]+$/u;
2443
2441
  const addressDaDataValidate = (address) => Boolean(address.region && (address.city || address.locality) && address.house);
2444
2442
  const addressDaDataValidator = () => validator(addressDaDataValidate)(ADDRESS_ERROR_MESSAGE);
2445
2443
  const addressOrganizationValidator = () => validator((address) => Boolean(address.fiasCode && (address.city || address.locality) && address.house))(ADDRESS_ERROR_MESSAGE);
2446
2444
  const codeWordValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 3 && _.length <= 21 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
2445
+ const nameRetailValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 1 && retailCyrillicPattern.test(_))(errorMsg ?? ERROR_MESSAGE);
2447
2446
  const jobNumberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && /^[0-9]{1,2}$/g.test(_))(errorMsg ?? ERROR_MESSAGE);
2448
2447
  const lengthStringValidator = (inputLength, errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 1 && _.length <= inputLength)(errorMsg ?? ERROR_MESSAGE);
2449
- const limitedBirthdayValidate = (date) => {
2448
+ const limitedBirthdayValidate = ({ minAge, maxAge }) => (date) => {
2450
2449
  const today = new Date();
2451
- const minDate = new Date(today.getFullYear() - MIN_AGE, today.getMonth(), today.getDate());
2452
- const maxDate = new Date(today.getFullYear() - MAX_AGE, today.getMonth(), today.getDate());
2453
- if (!date || date > minDate || date < maxDate) {
2450
+ const minDate = new Date(today.getFullYear() - minAge, today.getMonth(), today.getDate());
2451
+ const maxDate = maxAge
2452
+ ? new Date(today.getFullYear() - maxAge, today.getMonth(), today.getDate())
2453
+ : null;
2454
+ if (!date || date > minDate) {
2455
+ return false;
2456
+ }
2457
+ if (maxDate && date < maxDate) {
2454
2458
  return false;
2455
2459
  }
2456
2460
  return true;
2457
2461
  };
2458
- const limitedBirthdayValidator = () => validator(limitedBirthdayValidate)(AGE_ERROR_MESSAGE);
2462
+ const limitedBirthdayValidator = (params) => validator(limitedBirthdayValidate(params))(params.errorMessage);
2459
2463
  const numberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 6)(errorMsg);
2460
2464
  const serieValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 4)(errorMsg);
2461
2465
  const snilsValidate = (snils) => {
@@ -2477,6 +2481,23 @@
2477
2481
  };
2478
2482
  const snilsValidator = (errorMsg) => validator(snilsValidate)(errorMsg);
2479
2483
 
2484
+ const limitedBirthdayValidationData = {
2485
+ credit: {
2486
+ minAge: 23,
2487
+ maxAge: 75,
2488
+ errorMessage: 'Допустимый возраст заёмщика - от 23 до 75 лет',
2489
+ },
2490
+ creditCard: {
2491
+ minAge: 21,
2492
+ errorMessage: 'Допустимый возраст заёмщика - от 21 года',
2493
+ },
2494
+ debitCard: {
2495
+ minAge: 18,
2496
+ errorMessage: 'Допустимый возраст - от 18 лет',
2497
+ },
2498
+ };
2499
+ const getLimitedBirthdayValidation = (productType) => limitedBirthdayValidator(limitedBirthdayValidationData[productType]);
2500
+
2480
2501
  const validatorConsentsObj = {
2481
2502
  processPersonalDataFlg: agreementValidator,
2482
2503
  consentProviderFlg: agreementValidator,
@@ -2511,7 +2532,6 @@
2511
2532
  addressRetail: defaultSelectValidator('Выберите адрес банка'),
2512
2533
  addressMatch: defaultValidator(),
2513
2534
  sex: defaultValidator('Укажите свой пол'),
2514
- limitedBirthday: limitedBirthdayValidator(),
2515
2535
  birthPlace: defaultValidator('Укажите место рождения'),
2516
2536
  education: defaultSelectValidator('Выберите ваше образование'),
2517
2537
  housing: defaultSelectValidator('Выберите тип жилья'),
@@ -2546,6 +2566,9 @@
2546
2566
  partInBusiness: defaultValidator(),
2547
2567
  regionRetail: defaultSelectValidator('Выберите регион'),
2548
2568
  latinSurname: defaultValidator('Укажите фамилию'),
2569
+ surname: nameRetailValidator('Укажите свою фамилию на кириллице'),
2570
+ name: nameRetailValidator('Укажите своё имя на кириллице'),
2571
+ middleName: nameRetailValidator('Укажите своё отчество на кириллице'),
2549
2572
  };
2550
2573
  const validatorObj = {
2551
2574
  ...validatorRetailObj,
@@ -4421,7 +4444,7 @@
4421
4444
  return (jsx(DaDataInputControl, { label: "\u0418\u041D\u041D", isInteger: true, maxLength: 12, ...input, ...field(input?.name ?? ''), onDaDataChange: onDaDataChange }));
4422
4445
  });
4423
4446
 
4424
- const DeliveryDateFiels = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438", ...field(input?.name ?? '') })));
4447
+ const DeliveryDateFiels = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438", ...field(input?.name ?? ''), minDate: new Date() })));
4425
4448
 
4426
4449
  const DeliveryTimeField = JSX(({ field, input }) => {
4427
4450
  const { data } = useLeadFormData('COURIER_DELIVERY_TIME');
@@ -4434,7 +4457,11 @@
4434
4457
 
4435
4458
  const DependentsField = JSX(({ field, input }) => (jsx(DaDataInputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0438\u043D\u044B\u0445 \u0438\u0436\u0434\u0438\u0432\u0435\u043D\u0446\u0435\u0432", placeholder: "\u0417\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u043C \u0434\u0435\u0442\u0435\u0439 \u0434\u043E 18 \u043B\u0435\u0442", isInteger: true, maxLength: 2, ...field(input?.name ?? ''), ...input })));
4436
4459
 
4437
- const DulIssueDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0432\u044B\u0434\u0430\u0447\u0438", ...field(input?.name ?? ''), disabled: input?.filledByEsia && isEsiaAuthorize(field, input?.name ?? '') })));
4460
+ const DulIssueDateField = JSX(({ field, input }) => {
4461
+ const birthDate = field('limitedBirthday')?.value;
4462
+ const startDulIssueDate = useMemo(() => new Date(birthDate.getFullYear() + 14, birthDate.getMonth(), birthDate.getDate()), [birthDate]);
4463
+ return (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0432\u044B\u0434\u0430\u0447\u0438", ...field(input?.name ?? ''), disabled: input?.filledByEsia && isEsiaAuthorize(field, input?.name ?? ''), minDate: startDulIssueDate }));
4464
+ });
4438
4465
 
4439
4466
  const DulIssuedByField = JSX(({ field, input }) => {
4440
4467
  const { value: dulSubdivisionCode, onChange: changeDulSubdivisionCode } = field('dulSubdivisionCode');
@@ -4660,9 +4687,23 @@
4660
4687
  ];
4661
4688
  const MethodObtainField = JSX(({ field, input }) => (jsx(RadioButtonGroupControl, { orientation: "horizontal", items: METHODS_OF_OBTAIN, ...field(input?.name ?? '') })));
4662
4689
 
4663
- const MiddleNameField = JSX(({ field, input }) => (jsx(DaDataInputControl, { label: "\u041E\u0442\u0447\u0435\u0441\u0442\u0432\u043E (\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E, \u043F\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u0438\u0438)", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, input?.name ?? ''), ...field(input?.name ?? ''), ...input })));
4690
+ const MiddleNameField = JSX(({ field, input }) => {
4691
+ const onChange = useCallback((value) => {
4692
+ if (retailCyrillicPattern.test(value) || value.length === 0) {
4693
+ field('middleName')?.onChange?.(value);
4694
+ }
4695
+ }, [field]);
4696
+ return (jsx(DaDataInputControl, { label: "\u041E\u0442\u0447\u0435\u0441\u0442\u0432\u043E (\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E, \u043F\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u0438\u0438)", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, input?.name ?? ''), ...field(input?.name ?? ''), ...input, onChange: onChange }));
4697
+ });
4664
4698
 
4665
- const NameField = JSX(({ field, input }) => (jsx(DaDataInputControl, { label: "\u0418\u043C\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), ...field(input?.name ?? ''), ...input })));
4699
+ const NameField = JSX(({ field, input }) => {
4700
+ const onChange = useCallback((value) => {
4701
+ if (retailCyrillicPattern.test(value) || value.length === 0) {
4702
+ field('name')?.onChange?.(value);
4703
+ }
4704
+ }, [field]);
4705
+ return (jsx(DaDataInputControl, { label: "\u0418\u043C\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), ...field(input?.name ?? ''), ...input, onChange: onChange }));
4706
+ });
4666
4707
 
4667
4708
  const OrganizationField = JSX(({ field, input }) => {
4668
4709
  const { data } = useLeadFormData('ORGANIZATION_TYPE');
@@ -4817,7 +4858,14 @@
4817
4858
  const SnilsField = JSX(({ field, input }) => (jsx(InputSnilsControl, { label: "\u0421\u041D\u0418\u041B\u0421", maxLength: 14, ...field(input?.name ?? ''), ...input })));
4818
4859
 
4819
4860
  const FIELD_NAME = 'surname';
4820
- const SurnameField = JSX(({ field, input }) => (jsx(DaDataInputControl, { label: "\u0424\u0430\u043C\u0438\u043B\u0438\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME), ...field(input?.name ?? ''), ...input })));
4861
+ const SurnameField = JSX(({ field, input }) => {
4862
+ const onChange = useCallback((value) => {
4863
+ if (retailCyrillicPattern.test(value) || value.length === 0) {
4864
+ field('surname')?.onChange?.(value);
4865
+ }
4866
+ }, [field]);
4867
+ return (jsx(DaDataInputControl, { label: "\u0424\u0430\u043C\u0438\u043B\u0438\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME), ...field(input?.name ?? ''), ...input, onChange: onChange }));
4868
+ });
4821
4869
 
4822
4870
  const TotalIncomeField = JSX(({ field, input }) => (jsx(DaDataInputControl, { label: "\u0421\u043E\u0432\u043E\u043A\u0443\u043F\u043D\u044B\u0439 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0439 \u0434\u043E\u0445\u043E\u0434 \u0432 \u043C\u0435\u0441\u044F\u0446 \u043F\u043E\u0441\u043B\u0435 \u0432\u044B\u0447\u0435\u0442\u0430 \u043D\u0430\u043B\u043E\u0433\u043E\u0432 (\u0437\u0430\u0440\u043F\u043B\u0430\u0442\u0430, \u043F\u0440\u0435\u043C\u0438\u0438)", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
4823
4871
 
@@ -5728,15 +5776,16 @@
5728
5776
  }
5729
5777
  try {
5730
5778
  startSending();
5779
+ const transformedFormData = transformFormData(formData);
5731
5780
  const profileId = await createUserProfile({
5732
- profile: { phone: formatPhone(formData.phone) },
5781
+ profile: { phone: formatPhone(transformedFormData.phone) },
5733
5782
  });
5734
- if (profileId && formData?.phone) {
5783
+ if (profileId && transformedFormData?.phone) {
5735
5784
  const sendCurrentTask = async () => {
5736
5785
  await updateUserData({
5737
5786
  programId,
5738
5787
  profileId,
5739
- formData,
5788
+ formData: transformedFormData,
5740
5789
  productType,
5741
5790
  saveUserData,
5742
5791
  sendAspects,
@@ -5746,7 +5795,7 @@
5746
5795
  openEsiaLoginDialog();
5747
5796
  }
5748
5797
  else {
5749
- consentBkiDialog.open(formData.phone, profileId);
5798
+ consentBkiDialog.open(transformedFormData.phone, profileId);
5750
5799
  }
5751
5800
  };
5752
5801
  const handleSuccessVerify = async () => {
@@ -5772,7 +5821,7 @@
5772
5821
  };
5773
5822
  const acceptedConsents = getAcceptedConsents(formData, productType);
5774
5823
  verifyPhoneDialog.open({
5775
- phone: formData?.phone,
5824
+ phone: transformedFormData?.phone,
5776
5825
  consents: acceptedConsents,
5777
5826
  onSuccess: handleSuccessVerify,
5778
5827
  });
@@ -5854,6 +5903,12 @@
5854
5903
  consentAssignmentClaimsFlg: consentOthersFlg,
5855
5904
  };
5856
5905
  };
5906
+ const transformFormData = (formData) => ({
5907
+ ...formData,
5908
+ surname: formData.surname?.trim(),
5909
+ name: formData.name?.trim(),
5910
+ middleName: formData.middleName?.trim(),
5911
+ });
5857
5912
 
5858
5913
  const useSetter = (target, key) => useCallback((value) => {
5859
5914
  const newValue = value instanceof Function ? value(target[key]) : value;
@@ -6096,8 +6151,9 @@
6096
6151
  const ApplicationLeadForm = JSX(({ className, title, programId = '', nextStepLink = '/credit-lead', button, productType = 'credit', data, ...rest }) => {
6097
6152
  const [esiaError, { setTrue: setEsiaError }] = useBool(false);
6098
6153
  const applicationFormData = useMemo(() => getApplicationFormData(productType), [productType]);
6099
- const inputs = useMemo(() => (applicationFormData?.flatMap((_) => _?.inputs) || []), [applicationFormData]);
6100
- const formValidator = useMemo(() => getFormValidator(inputs, validatorObj), [inputs]);
6154
+ const inputs = useMemo(() => getInputs(applicationFormData), [applicationFormData]);
6155
+ const extendedValidatorObj = useMemo(() => getExtendedValidatorObj(productType), [productType]);
6156
+ const formValidator = useMemo(() => getFormValidator(inputs, extendedValidatorObj), [inputs, extendedValidatorObj]);
6101
6157
  const [initialFormState, { isLoading }] = useInitApplicationLead({
6102
6158
  inputs,
6103
6159
  nextStepLink,
@@ -6123,6 +6179,11 @@
6123
6179
  }, [ok]);
6124
6180
  return (jsx(ApplicationFormLayout, { className: style('container space-y-m', className), title: title, ...rest, children: jsxs("form", { onSubmit: onSubmit, className: "space-y-m relative", children: [isLoading ? jsx(Loader, { blur: false }) : null, applicationFormData.map((_, i) => (jsxs("div", { className: style(inputColumnStyles(_.columns), 'grid gap-x-m'), children: [renderTitle(_.title), renderInputs$1({ field, inputs: _?.inputs }, productType)] }, `section-${i}`))), renderSubmitButton(button, isSending), esiaError ? (jsx(Text, { size: "text-m", font: "font-medium", color: "text-error", children: "\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0413\u043E\u0441\u0443\u0441\u043B\u0443\u0433\u0438 \u0434\u043B\u044F \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F \u0437\u0430\u044F\u0432\u043A\u0438 \u043D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043F\u043E\u043B\u044F \u0432\u0440\u0443\u0447\u043D\u0443\u044E." })) : null] }) }));
6125
6181
  });
6182
+ const getInputs = (applicationFormData) => (applicationFormData?.flatMap((_) => _?.inputs) || []);
6183
+ const getExtendedValidatorObj = (productType) => ({
6184
+ ...validatorObj,
6185
+ limitedBirthday: getLimitedBirthdayValidation(productType),
6186
+ });
6126
6187
 
6127
6188
  const NotFound = JSX(({ title, description }) => {
6128
6189
  const isMobileMode = useMobileMode();
@@ -8051,11 +8112,16 @@
8051
8112
  return [initialState, handleSubmit, isSending];
8052
8113
  };
8053
8114
 
8115
+ const PRODUCT_TYPE$1 = 'creditCard';
8116
+ const extendedValidatorObj$1 = {
8117
+ ...validatorObj,
8118
+ limitedBirthday: getLimitedBirthdayValidation(PRODUCT_TYPE$1),
8119
+ };
8054
8120
  const CreditCardFormStep = JSX(({ step, sections, onPrevStep, onNextStep, onFinish }) => {
8055
8121
  const inputs = useMemo(() => sections?.flatMap((_) => _?.inputs || []), [sections]);
8056
8122
  const formValidator = useCallback((formState) =>
8057
8123
  // TODO Слишком сложно
8058
- getFormValidator(calculateInputs((_) => formState[_])(inputs, step), validatorObj)(formState), [inputs]);
8124
+ getFormValidator(calculateInputs((_) => formState[_])(inputs, step), extendedValidatorObj$1)(formState), [inputs]);
8059
8125
  const [initialState, onSubmit, isSending] = useCreditCardFormAPI({
8060
8126
  step,
8061
8127
  onNextStep,
@@ -8791,13 +8857,18 @@
8791
8857
  return [initialState, handleSubmit, isSending];
8792
8858
  };
8793
8859
 
8860
+ const PRODUCT_TYPE = 'credit';
8861
+ const extendedValidatorObj = {
8862
+ ...validatorObj,
8863
+ limitedBirthday: getLimitedBirthdayValidation(PRODUCT_TYPE),
8864
+ };
8794
8865
  const CreditFormStep = JSX(({ step, sections, programsSource, onPrevStep, onNextStep, onFinish }) => {
8795
8866
  const { programId } = useRetailFormStore();
8796
8867
  const calcData = programsSource?.[programId ?? '']; // Need normalizator useForm, to be save defaultParams
8797
8868
  const inputs = useMemo(() => sections?.flatMap((_) => _?.inputs ?? []), [sections]);
8798
8869
  const formValidator = useCallback((formState) =>
8799
8870
  // TODO Слишком сложно
8800
- getFormValidator(calculateInputs((_) => formState[_])(inputs, step), validatorObj)(formState), [inputs]);
8871
+ getFormValidator(calculateInputs((_) => formState[_])(inputs, step), extendedValidatorObj)(formState), [inputs]);
8801
8872
  const [initialState, onSubmit, isSending] = useCreditFormAPI({
8802
8873
  step,
8803
8874
  onNextStep,
@@ -10847,7 +10918,7 @@
10847
10918
  slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
10848
10919
  });
10849
10920
 
10850
- const packageVersion = "0.14.820";
10921
+ const packageVersion = "0.14.822";
10851
10922
 
10852
10923
  exports.Blocks = Blocks;
10853
10924
  exports.ContentPage = ContentPage;