@redneckz/wildless-cms-uni-blocks 0.14.736 → 0.14.738

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 (1449) hide show
  1. package/bundle/EventBus/defaultEventBus.d.ts +1 -3
  2. package/bundle/bundle.umd.js +598 -593
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  5. package/bundle/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  6. package/bundle/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  7. package/bundle/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  8. package/bundle/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  9. package/bundle/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  10. package/bundle/components/CreditCardForm/renderInputs.d.ts +1 -1
  11. package/bundle/components/CreditCardForm/renderStep.d.ts +1 -1
  12. package/bundle/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  13. package/bundle/components/CreditForm/renderInputs.d.ts +1 -1
  14. package/bundle/components/CreditForm/renderStep.d.ts +1 -1
  15. package/bundle/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  16. package/bundle/components/Depository/DepositoryFilter.d.ts +1 -1
  17. package/bundle/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  18. package/bundle/hooks/useAspects/handleAspects.d.ts +1 -1
  19. package/bundle/hooks/useForm/FieldOptions.d.ts +7 -0
  20. package/bundle/hooks/useForm/FormOptions.d.ts +13 -0
  21. package/bundle/hooks/useForm/shallowCompare.d.ts +1 -0
  22. package/bundle/hooks/useForm/useForm.d.ts +19 -0
  23. package/bundle/hooks/useForm/useFormValidator.d.ts +6 -0
  24. package/bundle/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  25. package/bundle/services/retail/external/types.d.ts +1 -1
  26. package/bundle/services/retail/inputs.d.ts +67 -68
  27. package/bundle/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  28. package/bundle/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  29. package/bundle/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  30. package/bundle/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  31. package/bundle/ui-kit/FormField/getField.d.ts +1 -1
  32. package/bundle/ui-kit/FormField/getObjectValidator.d.ts +2 -1
  33. package/bundle/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  34. package/bundle/ui-kit/FormField/isRenderField.d.ts +1 -1
  35. package/bundle/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  36. package/bundle/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  37. package/bundle/validation/objectValidator.d.ts +1 -1
  38. package/dist/EventBus/defaultEventBus.d.ts +1 -3
  39. package/dist/EventBus/defaultEventBus.js +1 -1
  40. package/dist/EventBus/defaultEventBus.js.map +1 -1
  41. package/dist/components/ApplicationForm/ApplicationForm.js +14 -34
  42. package/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
  43. package/dist/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  44. package/dist/components/ApplicationLeadForm/ApplicationLeadForm.js +11 -7
  45. package/dist/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  46. package/dist/components/ApplicationLeadForm/GroupedConsents.js +4 -2
  47. package/dist/components/ApplicationLeadForm/GroupedConsents.js.map +1 -1
  48. package/dist/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  49. package/dist/components/ApplicationLeadForm/renderInputs.js +1 -0
  50. package/dist/components/ApplicationLeadForm/renderInputs.js.map +1 -1
  51. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  52. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.js +5 -16
  53. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  54. package/dist/components/CalculatorBonus/CalculatorBonus.js +1 -1
  55. package/dist/components/CalculatorBonus/CalculatorBonus.js.map +1 -1
  56. package/dist/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js +1 -1
  57. package/dist/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js.map +1 -1
  58. package/dist/components/CalculatorCredit/CalculatorCredit.js +3 -6
  59. package/dist/components/CalculatorCredit/CalculatorCredit.js.map +1 -1
  60. package/dist/components/CalculatorDeposit/CalculatorDeposit.js +2 -2
  61. package/dist/components/CalculatorDeposit/CalculatorDeposit.js.map +1 -1
  62. package/dist/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  63. package/dist/components/CalculatorRefinancing/CalculatorRefinancing.js +1 -1
  64. package/dist/components/CalculatorRefinancing/CalculatorRefinancing.js.map +1 -1
  65. package/dist/components/CardTransfer/CardTransfer.js +1 -1
  66. package/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  67. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -11
  68. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  69. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  70. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +5 -0
  71. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  72. package/dist/components/CreditCardForm/CreditCardForm.js +1 -1
  73. package/dist/components/CreditCardForm/CreditCardForm.js.map +1 -1
  74. package/dist/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  75. package/dist/components/CreditCardForm/CreditCardFormStep.js +10 -3
  76. package/dist/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  77. package/dist/components/CreditCardForm/renderInputs.d.ts +1 -1
  78. package/dist/components/CreditCardForm/renderInputs.js +2 -1
  79. package/dist/components/CreditCardForm/renderInputs.js.map +1 -1
  80. package/dist/components/CreditCardForm/renderStep.d.ts +1 -1
  81. package/dist/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  82. package/dist/components/CreditCardForm/useCreditCardFormAPI.js +1 -10
  83. package/dist/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  84. package/dist/components/CreditForm/CreditForm.js +1 -1
  85. package/dist/components/CreditForm/CreditForm.js.map +1 -1
  86. package/dist/components/CreditForm/CreditFormStep.js +10 -3
  87. package/dist/components/CreditForm/CreditFormStep.js.map +1 -1
  88. package/dist/components/CreditForm/renderInputs.d.ts +1 -1
  89. package/dist/components/CreditForm/renderStep.d.ts +1 -1
  90. package/dist/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  91. package/dist/components/CreditForm/useCreditFormAPI.js +1 -10
  92. package/dist/components/CreditForm/useCreditFormAPI.js.map +1 -1
  93. package/dist/components/Depository/Depository.js +1 -1
  94. package/dist/components/Depository/Depository.js.map +1 -1
  95. package/dist/components/Depository/DepositoryFilter.d.ts +1 -1
  96. package/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +1 -1
  97. package/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
  98. package/dist/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  99. package/dist/hooks/useAspects/handleAspects.d.ts +1 -1
  100. package/dist/hooks/useAspects/handleAspects.js +1 -1
  101. package/dist/hooks/useAspects/handleAspects.js.map +1 -1
  102. package/dist/hooks/useForm/FieldOptions.d.ts +7 -0
  103. package/dist/{components/CarouselTariffsCard/CarouselTariffsCardAction.js → hooks/useForm/FieldOptions.js} +1 -1
  104. package/dist/hooks/useForm/FieldOptions.js.map +1 -0
  105. package/dist/hooks/useForm/FormOptions.d.ts +13 -0
  106. package/{mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js → dist/hooks/useForm/FormOptions.js} +1 -1
  107. package/dist/hooks/useForm/FormOptions.js.map +1 -0
  108. package/dist/hooks/useForm/shallowCompare.d.ts +1 -0
  109. package/dist/hooks/useForm/shallowCompare.js +5 -0
  110. package/dist/hooks/useForm/shallowCompare.js.map +1 -0
  111. package/dist/hooks/useForm/useForm.d.ts +19 -0
  112. package/dist/hooks/useForm/useForm.js +54 -0
  113. package/dist/hooks/useForm/useForm.js.map +1 -0
  114. package/dist/hooks/useForm/useFormValidator.d.ts +6 -0
  115. package/dist/hooks/useForm/useFormValidator.js +15 -0
  116. package/dist/hooks/useForm/useFormValidator.js.map +1 -0
  117. package/dist/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  118. package/dist/hooks/useForm/useNormalizedFormState.js +26 -0
  119. package/dist/hooks/useForm/useNormalizedFormState.js.map +1 -0
  120. package/dist/services/retail/external/types.d.ts +1 -1
  121. package/dist/services/retail/inputs.d.ts +67 -68
  122. package/dist/services/retail/inputs.js +67 -68
  123. package/dist/services/retail/inputs.js.map +1 -1
  124. package/dist/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  125. package/dist/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  126. package/dist/ui-kit/BaseFiltration/useFiltrationForm.js +3 -3
  127. package/dist/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -1
  128. package/dist/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  129. package/dist/ui-kit/CaptchaDialog/CaptchaDialog.js +8 -3
  130. package/dist/ui-kit/CaptchaDialog/CaptchaDialog.js.map +1 -1
  131. package/dist/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  132. package/dist/ui-kit/FormField/Fields/AcquiringField.js +1 -3
  133. package/dist/ui-kit/FormField/Fields/AcquiringField.js.map +1 -1
  134. package/dist/ui-kit/FormField/Fields/AddressBranchField.js +1 -3
  135. package/dist/ui-kit/FormField/Fields/AddressBranchField.js.map +1 -1
  136. package/dist/ui-kit/FormField/Fields/AddressFactField.js +1 -3
  137. package/dist/ui-kit/FormField/Fields/AddressFactField.js.map +1 -1
  138. package/dist/ui-kit/FormField/Fields/AddressField.js +1 -3
  139. package/dist/ui-kit/FormField/Fields/AddressField.js.map +1 -1
  140. package/dist/ui-kit/FormField/Fields/AddressMatchField.js +1 -3
  141. package/dist/ui-kit/FormField/Fields/AddressMatchField.js.map +1 -1
  142. package/dist/ui-kit/FormField/Fields/AddressRetailField.js +3 -6
  143. package/dist/ui-kit/FormField/Fields/AddressRetailField.js.map +1 -1
  144. package/dist/ui-kit/FormField/Fields/AmountField.js +1 -1
  145. package/dist/ui-kit/FormField/Fields/AmountField.js.map +1 -1
  146. package/dist/ui-kit/FormField/Fields/AnnualRevenueField.js +1 -3
  147. package/dist/ui-kit/FormField/Fields/AnnualRevenueField.js.map +1 -1
  148. package/dist/ui-kit/FormField/Fields/ArmyIdFlgField.js +1 -3
  149. package/dist/ui-kit/FormField/Fields/ArmyIdFlgField.js.map +1 -1
  150. package/dist/ui-kit/FormField/Fields/BankEmployeeCodeField.js +1 -3
  151. package/dist/ui-kit/FormField/Fields/BankEmployeeCodeField.js.map +1 -1
  152. package/dist/ui-kit/FormField/Fields/BankEmpoleeField.js +1 -1
  153. package/dist/ui-kit/FormField/Fields/BankEmpoleeField.js.map +1 -1
  154. package/dist/ui-kit/FormField/Fields/BankruptcyFlgField.js +1 -3
  155. package/dist/ui-kit/FormField/Fields/BankruptcyFlgField.js.map +1 -1
  156. package/dist/ui-kit/FormField/Fields/BeginDateField.js +1 -3
  157. package/dist/ui-kit/FormField/Fields/BeginDateField.js.map +1 -1
  158. package/dist/ui-kit/FormField/Fields/BirthPlaceField.js +1 -3
  159. package/dist/ui-kit/FormField/Fields/BirthPlaceField.js.map +1 -1
  160. package/dist/ui-kit/FormField/Fields/BirthdayField.js +1 -3
  161. package/dist/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  162. package/dist/ui-kit/FormField/Fields/ChildrenField.js +1 -3
  163. package/dist/ui-kit/FormField/Fields/ChildrenField.js.map +1 -1
  164. package/dist/ui-kit/FormField/Fields/CodeWordField.js +1 -3
  165. package/dist/ui-kit/FormField/Fields/CodeWordField.js.map +1 -1
  166. package/dist/ui-kit/FormField/Fields/CollectionCountField.js +1 -3
  167. package/dist/ui-kit/FormField/Fields/CollectionCountField.js.map +1 -1
  168. package/dist/ui-kit/FormField/Fields/CommentField.js +1 -3
  169. package/dist/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  170. package/dist/ui-kit/FormField/Fields/ConsentField.js +1 -3
  171. package/dist/ui-kit/FormField/Fields/ConsentField.js.map +1 -1
  172. package/dist/ui-kit/FormField/Fields/CurrencyField.js +2 -7
  173. package/dist/ui-kit/FormField/Fields/CurrencyField.js.map +1 -1
  174. package/dist/ui-kit/FormField/Fields/DeliveryDateFiels.js +1 -3
  175. package/dist/ui-kit/FormField/Fields/DeliveryDateFiels.js.map +1 -1
  176. package/dist/ui-kit/FormField/Fields/DependentsField.js +1 -3
  177. package/dist/ui-kit/FormField/Fields/DependentsField.js.map +1 -1
  178. package/dist/ui-kit/FormField/Fields/DesiredMeetingDateField.js +1 -3
  179. package/dist/ui-kit/FormField/Fields/DesiredMeetingDateField.js.map +1 -1
  180. package/dist/ui-kit/FormField/Fields/DisablePeopleFlgField.js +1 -3
  181. package/dist/ui-kit/FormField/Fields/DisablePeopleFlgField.js.map +1 -1
  182. package/dist/ui-kit/FormField/Fields/DulIssueDateField.js +1 -4
  183. package/dist/ui-kit/FormField/Fields/DulIssueDateField.js.map +1 -1
  184. package/dist/ui-kit/FormField/Fields/DulIssuedByField.js +1 -4
  185. package/dist/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -1
  186. package/dist/ui-kit/FormField/Fields/DulNumberField.js +1 -4
  187. package/dist/ui-kit/FormField/Fields/DulNumberField.js.map +1 -1
  188. package/dist/ui-kit/FormField/Fields/DulSerieField.js +1 -4
  189. package/dist/ui-kit/FormField/Fields/DulSerieField.js.map +1 -1
  190. package/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +1 -4
  191. package/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -1
  192. package/dist/ui-kit/FormField/Fields/EmailField.js +1 -4
  193. package/dist/ui-kit/FormField/Fields/EmailField.js.map +1 -1
  194. package/dist/ui-kit/FormField/Fields/ExpensesField.js +1 -3
  195. package/dist/ui-kit/FormField/Fields/ExpensesField.js.map +1 -1
  196. package/dist/ui-kit/FormField/Fields/Experience5YearsField.js +2 -5
  197. package/dist/ui-kit/FormField/Fields/Experience5YearsField.js.map +1 -1
  198. package/dist/ui-kit/FormField/Fields/FamilyMembersField.js +4 -4
  199. package/dist/ui-kit/FormField/Fields/FamilyMembersField.js.map +1 -1
  200. package/dist/ui-kit/FormField/Fields/FeedbackMethodField.js +1 -3
  201. package/dist/ui-kit/FormField/Fields/FeedbackMethodField.js.map +1 -1
  202. package/dist/ui-kit/FormField/Fields/FullNameField.js +1 -3
  203. package/dist/ui-kit/FormField/Fields/FullNameField.js.map +1 -1
  204. package/dist/ui-kit/FormField/Fields/GeneralSeniorityField.js +1 -3
  205. package/dist/ui-kit/FormField/Fields/GeneralSeniorityField.js.map +1 -1
  206. package/dist/ui-kit/FormField/Fields/InnField.js +1 -3
  207. package/dist/ui-kit/FormField/Fields/InnField.js.map +1 -1
  208. package/dist/ui-kit/FormField/Fields/IsClientField.js +1 -1
  209. package/dist/ui-kit/FormField/Fields/IsClientField.js.map +1 -1
  210. package/dist/ui-kit/FormField/Fields/JobsNumberField.js +1 -3
  211. package/dist/ui-kit/FormField/Fields/JobsNumberField.js.map +1 -1
  212. package/dist/ui-kit/FormField/Fields/LastJobExperienceField.js +1 -3
  213. package/dist/ui-kit/FormField/Fields/LastJobExperienceField.js.map +1 -1
  214. package/dist/ui-kit/FormField/Fields/LegalEntityNameField.js +1 -3
  215. package/dist/ui-kit/FormField/Fields/LegalEntityNameField.js.map +1 -1
  216. package/dist/ui-kit/FormField/Fields/LegalFormField.js +1 -3
  217. package/dist/ui-kit/FormField/Fields/LegalFormField.js.map +1 -1
  218. package/dist/ui-kit/FormField/Fields/LimitedBirthdayField.js +1 -4
  219. package/dist/ui-kit/FormField/Fields/LimitedBirthdayField.js.map +1 -1
  220. package/dist/ui-kit/FormField/Fields/LocalitiesField.js +4 -8
  221. package/dist/ui-kit/FormField/Fields/LocalitiesField.js.map +1 -1
  222. package/dist/ui-kit/FormField/Fields/MandatoryPaymentsField.js +1 -3
  223. package/dist/ui-kit/FormField/Fields/MandatoryPaymentsField.js.map +1 -1
  224. package/dist/ui-kit/FormField/Fields/MethodObtainField.js +1 -3
  225. package/dist/ui-kit/FormField/Fields/MethodObtainField.js.map +1 -1
  226. package/dist/ui-kit/FormField/Fields/MiddleNameField.js +1 -4
  227. package/dist/ui-kit/FormField/Fields/MiddleNameField.js.map +1 -1
  228. package/dist/ui-kit/FormField/Fields/NameField.js +1 -3
  229. package/dist/ui-kit/FormField/Fields/NameField.js.map +1 -1
  230. package/dist/ui-kit/FormField/Fields/OnlineCheckoutField.js +1 -1
  231. package/dist/ui-kit/FormField/Fields/OnlineCheckoutField.js.map +1 -1
  232. package/dist/ui-kit/FormField/Fields/OrganizationNameField.js +1 -3
  233. package/dist/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  234. package/dist/ui-kit/FormField/Fields/OtherIncomeField.js +1 -3
  235. package/dist/ui-kit/FormField/Fields/OtherIncomeField.js.map +1 -1
  236. package/dist/ui-kit/FormField/Fields/PartInBusinessField.js +2 -5
  237. package/dist/ui-kit/FormField/Fields/PartInBusinessField.js.map +1 -1
  238. package/dist/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js +1 -3
  239. package/dist/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js.map +1 -1
  240. package/dist/ui-kit/FormField/Fields/PartnerCommentsField.js +1 -6
  241. package/dist/ui-kit/FormField/Fields/PartnerCommentsField.js.map +1 -1
  242. package/dist/ui-kit/FormField/Fields/PaymentSystemField.js +13 -13
  243. package/dist/ui-kit/FormField/Fields/PaymentSystemField.js.map +1 -1
  244. package/dist/ui-kit/FormField/Fields/PhoneField.js +1 -3
  245. package/dist/ui-kit/FormField/Fields/PhoneField.js.map +1 -1
  246. package/dist/ui-kit/FormField/Fields/ProductField.js +1 -3
  247. package/dist/ui-kit/FormField/Fields/ProductField.js.map +1 -1
  248. package/dist/ui-kit/FormField/Fields/RegionField.js +1 -3
  249. package/dist/ui-kit/FormField/Fields/RegionField.js.map +1 -1
  250. package/dist/ui-kit/FormField/Fields/RegionPremiumField.js +1 -3
  251. package/dist/ui-kit/FormField/Fields/RegionPremiumField.js.map +1 -1
  252. package/dist/ui-kit/FormField/Fields/RegionRetailField.js +1 -3
  253. package/dist/ui-kit/FormField/Fields/RegionRetailField.js.map +1 -1
  254. package/dist/ui-kit/FormField/Fields/RetirementIncomeField.js +1 -3
  255. package/dist/ui-kit/FormField/Fields/RetirementIncomeField.js.map +1 -1
  256. package/dist/ui-kit/FormField/Fields/ServiceDirectionField.js +1 -3
  257. package/dist/ui-kit/FormField/Fields/ServiceDirectionField.js.map +1 -1
  258. package/dist/ui-kit/FormField/Fields/SexField.js +1 -3
  259. package/dist/ui-kit/FormField/Fields/SexField.js.map +1 -1
  260. package/dist/ui-kit/FormField/Fields/ShareholderFlgField.js +1 -3
  261. package/dist/ui-kit/FormField/Fields/ShareholderFlgField.js.map +1 -1
  262. package/dist/ui-kit/FormField/Fields/SnilsField.js +1 -3
  263. package/dist/ui-kit/FormField/Fields/SnilsField.js.map +1 -1
  264. package/dist/ui-kit/FormField/Fields/SurnameField.js +1 -3
  265. package/dist/ui-kit/FormField/Fields/SurnameField.js.map +1 -1
  266. package/dist/ui-kit/FormField/Fields/TotalIncomeField.js +1 -3
  267. package/dist/ui-kit/FormField/Fields/TotalIncomeField.js.map +1 -1
  268. package/dist/ui-kit/FormField/Fields/UltraPremiumField.js +1 -3
  269. package/dist/ui-kit/FormField/Fields/UltraPremiumField.js.map +1 -1
  270. package/dist/ui-kit/FormField/Fields/VedField.js +7 -8
  271. package/dist/ui-kit/FormField/Fields/VedField.js.map +1 -1
  272. package/dist/ui-kit/FormField/Fields/WagesField.js +1 -3
  273. package/dist/ui-kit/FormField/Fields/WagesField.js.map +1 -1
  274. package/dist/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js +1 -4
  275. package/dist/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js.map +1 -1
  276. package/dist/ui-kit/FormField/SelectField.js +2 -4
  277. package/dist/ui-kit/FormField/SelectField.js.map +1 -1
  278. package/dist/ui-kit/FormField/getField.d.ts +1 -1
  279. package/dist/ui-kit/FormField/getField.js +28 -28
  280. package/dist/ui-kit/FormField/getField.js.map +1 -1
  281. package/dist/ui-kit/FormField/getObjectValidator.d.ts +2 -1
  282. package/dist/ui-kit/FormField/getObjectValidator.js +18 -6
  283. package/dist/ui-kit/FormField/getObjectValidator.js.map +1 -1
  284. package/dist/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  285. package/dist/ui-kit/FormField/isRenderField.d.ts +1 -1
  286. package/dist/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  287. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  288. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  289. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +1 -1
  290. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -1
  291. package/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  292. package/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +3 -4
  293. package/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  294. package/dist/ui-kit/VerifyPhoneDialog/VerifyPhoneDialog.js +1 -1
  295. package/dist/ui-kit/VerifyPhoneDialog/VerifyPhoneDialog.js.map +1 -1
  296. package/dist/utils/getRequiredLabel.js +1 -0
  297. package/dist/utils/getRequiredLabel.js.map +1 -1
  298. package/dist/validation/objectValidator.d.ts +1 -1
  299. package/dist/validation/objectValidator.js +1 -1
  300. package/dist/validation/objectValidator.js.map +1 -1
  301. package/lib/EventBus/defaultEventBus.d.ts +1 -3
  302. package/lib/EventBus/defaultEventBus.js +1 -1
  303. package/lib/EventBus/defaultEventBus.js.map +1 -1
  304. package/lib/components/ApplicationForm/ApplicationForm.js +16 -36
  305. package/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
  306. package/lib/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  307. package/lib/components/ApplicationLeadForm/ApplicationLeadForm.js +11 -7
  308. package/lib/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  309. package/lib/components/ApplicationLeadForm/GroupedConsents.js +4 -2
  310. package/lib/components/ApplicationLeadForm/GroupedConsents.js.map +1 -1
  311. package/lib/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  312. package/lib/components/ApplicationLeadForm/renderInputs.js +1 -0
  313. package/lib/components/ApplicationLeadForm/renderInputs.js.map +1 -1
  314. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  315. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.js +5 -16
  316. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  317. package/lib/components/CalculatorBonus/CalculatorBonus.js +1 -1
  318. package/lib/components/CalculatorBonus/CalculatorBonus.js.map +1 -1
  319. package/lib/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js +1 -1
  320. package/lib/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js.map +1 -1
  321. package/lib/components/CalculatorCredit/CalculatorCredit.js +3 -6
  322. package/lib/components/CalculatorCredit/CalculatorCredit.js.map +1 -1
  323. package/lib/components/CalculatorDeposit/CalculatorDeposit.js +2 -2
  324. package/lib/components/CalculatorDeposit/CalculatorDeposit.js.map +1 -1
  325. package/lib/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  326. package/lib/components/CalculatorRefinancing/CalculatorRefinancing.js +1 -1
  327. package/lib/components/CalculatorRefinancing/CalculatorRefinancing.js.map +1 -1
  328. package/lib/components/CardTransfer/CardTransfer.js +1 -1
  329. package/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  330. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +13 -12
  331. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  332. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  333. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +3 -0
  334. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  335. package/lib/components/CreditCardForm/CreditCardForm.js +2 -2
  336. package/lib/components/CreditCardForm/CreditCardForm.js.map +1 -1
  337. package/lib/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  338. package/lib/components/CreditCardForm/CreditCardFormStep.js +11 -4
  339. package/lib/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  340. package/lib/components/CreditCardForm/renderInputs.d.ts +1 -1
  341. package/lib/components/CreditCardForm/renderInputs.js +2 -1
  342. package/lib/components/CreditCardForm/renderInputs.js.map +1 -1
  343. package/lib/components/CreditCardForm/renderStep.d.ts +1 -1
  344. package/lib/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  345. package/lib/components/CreditCardForm/useCreditCardFormAPI.js +1 -10
  346. package/lib/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  347. package/lib/components/CreditForm/CreditForm.js +2 -2
  348. package/lib/components/CreditForm/CreditForm.js.map +1 -1
  349. package/lib/components/CreditForm/CreditFormStep.js +11 -4
  350. package/lib/components/CreditForm/CreditFormStep.js.map +1 -1
  351. package/lib/components/CreditForm/renderInputs.d.ts +1 -1
  352. package/lib/components/CreditForm/renderStep.d.ts +1 -1
  353. package/lib/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  354. package/lib/components/CreditForm/useCreditFormAPI.js +1 -10
  355. package/lib/components/CreditForm/useCreditFormAPI.js.map +1 -1
  356. package/lib/components/Depository/Depository.js +1 -1
  357. package/lib/components/Depository/Depository.js.map +1 -1
  358. package/lib/components/Depository/DepositoryFilter.d.ts +1 -1
  359. package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +1 -1
  360. package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
  361. package/lib/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  362. package/lib/hooks/useAspects/handleAspects.d.ts +1 -1
  363. package/lib/hooks/useAspects/handleAspects.js +1 -1
  364. package/lib/hooks/useAspects/handleAspects.js.map +1 -1
  365. package/lib/hooks/useForm/FieldOptions.d.ts +7 -0
  366. package/lib/hooks/useForm/FieldOptions.js +2 -0
  367. package/lib/hooks/useForm/FieldOptions.js.map +1 -0
  368. package/lib/hooks/useForm/FormOptions.d.ts +13 -0
  369. package/lib/hooks/useForm/FormOptions.js +2 -0
  370. package/lib/hooks/useForm/FormOptions.js.map +1 -0
  371. package/lib/hooks/useForm/shallowCompare.d.ts +1 -0
  372. package/lib/hooks/useForm/shallowCompare.js +2 -0
  373. package/lib/hooks/useForm/shallowCompare.js.map +1 -0
  374. package/lib/hooks/useForm/useForm.d.ts +19 -0
  375. package/lib/hooks/useForm/useForm.js +51 -0
  376. package/lib/hooks/useForm/useForm.js.map +1 -0
  377. package/lib/hooks/useForm/useFormValidator.d.ts +6 -0
  378. package/lib/hooks/useForm/useFormValidator.js +12 -0
  379. package/lib/hooks/useForm/useFormValidator.js.map +1 -0
  380. package/lib/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  381. package/lib/hooks/useForm/useNormalizedFormState.js +23 -0
  382. package/lib/hooks/useForm/useNormalizedFormState.js.map +1 -0
  383. package/lib/services/retail/external/types.d.ts +1 -1
  384. package/lib/services/retail/inputs.d.ts +67 -68
  385. package/lib/services/retail/inputs.js +67 -68
  386. package/lib/services/retail/inputs.js.map +1 -1
  387. package/lib/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  388. package/lib/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  389. package/lib/ui-kit/BaseFiltration/useFiltrationForm.js +3 -3
  390. package/lib/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -1
  391. package/lib/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  392. package/lib/ui-kit/CaptchaDialog/CaptchaDialog.js +8 -3
  393. package/lib/ui-kit/CaptchaDialog/CaptchaDialog.js.map +1 -1
  394. package/lib/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  395. package/lib/ui-kit/FormField/Fields/AcquiringField.js +1 -3
  396. package/lib/ui-kit/FormField/Fields/AcquiringField.js.map +1 -1
  397. package/lib/ui-kit/FormField/Fields/AddressBranchField.js +1 -3
  398. package/lib/ui-kit/FormField/Fields/AddressBranchField.js.map +1 -1
  399. package/lib/ui-kit/FormField/Fields/AddressFactField.js +1 -3
  400. package/lib/ui-kit/FormField/Fields/AddressFactField.js.map +1 -1
  401. package/lib/ui-kit/FormField/Fields/AddressField.js +1 -3
  402. package/lib/ui-kit/FormField/Fields/AddressField.js.map +1 -1
  403. package/lib/ui-kit/FormField/Fields/AddressMatchField.js +1 -3
  404. package/lib/ui-kit/FormField/Fields/AddressMatchField.js.map +1 -1
  405. package/lib/ui-kit/FormField/Fields/AddressRetailField.js +3 -6
  406. package/lib/ui-kit/FormField/Fields/AddressRetailField.js.map +1 -1
  407. package/lib/ui-kit/FormField/Fields/AmountField.js +1 -1
  408. package/lib/ui-kit/FormField/Fields/AmountField.js.map +1 -1
  409. package/lib/ui-kit/FormField/Fields/AnnualRevenueField.js +1 -3
  410. package/lib/ui-kit/FormField/Fields/AnnualRevenueField.js.map +1 -1
  411. package/lib/ui-kit/FormField/Fields/ArmyIdFlgField.js +1 -3
  412. package/lib/ui-kit/FormField/Fields/ArmyIdFlgField.js.map +1 -1
  413. package/lib/ui-kit/FormField/Fields/BankEmployeeCodeField.js +1 -3
  414. package/lib/ui-kit/FormField/Fields/BankEmployeeCodeField.js.map +1 -1
  415. package/lib/ui-kit/FormField/Fields/BankEmpoleeField.js +1 -1
  416. package/lib/ui-kit/FormField/Fields/BankEmpoleeField.js.map +1 -1
  417. package/lib/ui-kit/FormField/Fields/BankruptcyFlgField.js +1 -3
  418. package/lib/ui-kit/FormField/Fields/BankruptcyFlgField.js.map +1 -1
  419. package/lib/ui-kit/FormField/Fields/BeginDateField.js +1 -3
  420. package/lib/ui-kit/FormField/Fields/BeginDateField.js.map +1 -1
  421. package/lib/ui-kit/FormField/Fields/BirthPlaceField.js +1 -3
  422. package/lib/ui-kit/FormField/Fields/BirthPlaceField.js.map +1 -1
  423. package/lib/ui-kit/FormField/Fields/BirthdayField.js +1 -3
  424. package/lib/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  425. package/lib/ui-kit/FormField/Fields/ChildrenField.js +1 -3
  426. package/lib/ui-kit/FormField/Fields/ChildrenField.js.map +1 -1
  427. package/lib/ui-kit/FormField/Fields/CodeWordField.js +1 -3
  428. package/lib/ui-kit/FormField/Fields/CodeWordField.js.map +1 -1
  429. package/lib/ui-kit/FormField/Fields/CollectionCountField.js +1 -3
  430. package/lib/ui-kit/FormField/Fields/CollectionCountField.js.map +1 -1
  431. package/lib/ui-kit/FormField/Fields/CommentField.js +1 -3
  432. package/lib/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  433. package/lib/ui-kit/FormField/Fields/ConsentField.js +1 -3
  434. package/lib/ui-kit/FormField/Fields/ConsentField.js.map +1 -1
  435. package/lib/ui-kit/FormField/Fields/CurrencyField.js +2 -7
  436. package/lib/ui-kit/FormField/Fields/CurrencyField.js.map +1 -1
  437. package/lib/ui-kit/FormField/Fields/DeliveryDateFiels.js +1 -3
  438. package/lib/ui-kit/FormField/Fields/DeliveryDateFiels.js.map +1 -1
  439. package/lib/ui-kit/FormField/Fields/DependentsField.js +1 -3
  440. package/lib/ui-kit/FormField/Fields/DependentsField.js.map +1 -1
  441. package/lib/ui-kit/FormField/Fields/DesiredMeetingDateField.js +1 -3
  442. package/lib/ui-kit/FormField/Fields/DesiredMeetingDateField.js.map +1 -1
  443. package/lib/ui-kit/FormField/Fields/DisablePeopleFlgField.js +1 -3
  444. package/lib/ui-kit/FormField/Fields/DisablePeopleFlgField.js.map +1 -1
  445. package/lib/ui-kit/FormField/Fields/DulIssueDateField.js +1 -4
  446. package/lib/ui-kit/FormField/Fields/DulIssueDateField.js.map +1 -1
  447. package/lib/ui-kit/FormField/Fields/DulIssuedByField.js +1 -4
  448. package/lib/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -1
  449. package/lib/ui-kit/FormField/Fields/DulNumberField.js +1 -4
  450. package/lib/ui-kit/FormField/Fields/DulNumberField.js.map +1 -1
  451. package/lib/ui-kit/FormField/Fields/DulSerieField.js +1 -4
  452. package/lib/ui-kit/FormField/Fields/DulSerieField.js.map +1 -1
  453. package/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +1 -4
  454. package/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -1
  455. package/lib/ui-kit/FormField/Fields/EmailField.js +1 -4
  456. package/lib/ui-kit/FormField/Fields/EmailField.js.map +1 -1
  457. package/lib/ui-kit/FormField/Fields/ExpensesField.js +1 -3
  458. package/lib/ui-kit/FormField/Fields/ExpensesField.js.map +1 -1
  459. package/lib/ui-kit/FormField/Fields/Experience5YearsField.js +2 -5
  460. package/lib/ui-kit/FormField/Fields/Experience5YearsField.js.map +1 -1
  461. package/lib/ui-kit/FormField/Fields/FamilyMembersField.js +4 -4
  462. package/lib/ui-kit/FormField/Fields/FamilyMembersField.js.map +1 -1
  463. package/lib/ui-kit/FormField/Fields/FeedbackMethodField.js +1 -3
  464. package/lib/ui-kit/FormField/Fields/FeedbackMethodField.js.map +1 -1
  465. package/lib/ui-kit/FormField/Fields/FullNameField.js +1 -3
  466. package/lib/ui-kit/FormField/Fields/FullNameField.js.map +1 -1
  467. package/lib/ui-kit/FormField/Fields/GeneralSeniorityField.js +1 -3
  468. package/lib/ui-kit/FormField/Fields/GeneralSeniorityField.js.map +1 -1
  469. package/lib/ui-kit/FormField/Fields/InnField.js +1 -3
  470. package/lib/ui-kit/FormField/Fields/InnField.js.map +1 -1
  471. package/lib/ui-kit/FormField/Fields/IsClientField.js +1 -1
  472. package/lib/ui-kit/FormField/Fields/IsClientField.js.map +1 -1
  473. package/lib/ui-kit/FormField/Fields/JobsNumberField.js +1 -3
  474. package/lib/ui-kit/FormField/Fields/JobsNumberField.js.map +1 -1
  475. package/lib/ui-kit/FormField/Fields/LastJobExperienceField.js +1 -3
  476. package/lib/ui-kit/FormField/Fields/LastJobExperienceField.js.map +1 -1
  477. package/lib/ui-kit/FormField/Fields/LegalEntityNameField.js +1 -3
  478. package/lib/ui-kit/FormField/Fields/LegalEntityNameField.js.map +1 -1
  479. package/lib/ui-kit/FormField/Fields/LegalFormField.js +1 -3
  480. package/lib/ui-kit/FormField/Fields/LegalFormField.js.map +1 -1
  481. package/lib/ui-kit/FormField/Fields/LimitedBirthdayField.js +1 -4
  482. package/lib/ui-kit/FormField/Fields/LimitedBirthdayField.js.map +1 -1
  483. package/lib/ui-kit/FormField/Fields/LocalitiesField.js +5 -9
  484. package/lib/ui-kit/FormField/Fields/LocalitiesField.js.map +1 -1
  485. package/lib/ui-kit/FormField/Fields/MandatoryPaymentsField.js +1 -3
  486. package/lib/ui-kit/FormField/Fields/MandatoryPaymentsField.js.map +1 -1
  487. package/lib/ui-kit/FormField/Fields/MethodObtainField.js +1 -3
  488. package/lib/ui-kit/FormField/Fields/MethodObtainField.js.map +1 -1
  489. package/lib/ui-kit/FormField/Fields/MiddleNameField.js +1 -4
  490. package/lib/ui-kit/FormField/Fields/MiddleNameField.js.map +1 -1
  491. package/lib/ui-kit/FormField/Fields/NameField.js +1 -3
  492. package/lib/ui-kit/FormField/Fields/NameField.js.map +1 -1
  493. package/lib/ui-kit/FormField/Fields/OnlineCheckoutField.js +1 -1
  494. package/lib/ui-kit/FormField/Fields/OnlineCheckoutField.js.map +1 -1
  495. package/lib/ui-kit/FormField/Fields/OrganizationNameField.js +1 -3
  496. package/lib/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  497. package/lib/ui-kit/FormField/Fields/OtherIncomeField.js +1 -3
  498. package/lib/ui-kit/FormField/Fields/OtherIncomeField.js.map +1 -1
  499. package/lib/ui-kit/FormField/Fields/PartInBusinessField.js +2 -5
  500. package/lib/ui-kit/FormField/Fields/PartInBusinessField.js.map +1 -1
  501. package/lib/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js +1 -3
  502. package/lib/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js.map +1 -1
  503. package/lib/ui-kit/FormField/Fields/PartnerCommentsField.js +1 -6
  504. package/lib/ui-kit/FormField/Fields/PartnerCommentsField.js.map +1 -1
  505. package/lib/ui-kit/FormField/Fields/PaymentSystemField.js +14 -14
  506. package/lib/ui-kit/FormField/Fields/PaymentSystemField.js.map +1 -1
  507. package/lib/ui-kit/FormField/Fields/PhoneField.js +1 -3
  508. package/lib/ui-kit/FormField/Fields/PhoneField.js.map +1 -1
  509. package/lib/ui-kit/FormField/Fields/ProductField.js +1 -3
  510. package/lib/ui-kit/FormField/Fields/ProductField.js.map +1 -1
  511. package/lib/ui-kit/FormField/Fields/RegionField.js +1 -3
  512. package/lib/ui-kit/FormField/Fields/RegionField.js.map +1 -1
  513. package/lib/ui-kit/FormField/Fields/RegionPremiumField.js +1 -3
  514. package/lib/ui-kit/FormField/Fields/RegionPremiumField.js.map +1 -1
  515. package/lib/ui-kit/FormField/Fields/RegionRetailField.js +1 -3
  516. package/lib/ui-kit/FormField/Fields/RegionRetailField.js.map +1 -1
  517. package/lib/ui-kit/FormField/Fields/RetirementIncomeField.js +1 -3
  518. package/lib/ui-kit/FormField/Fields/RetirementIncomeField.js.map +1 -1
  519. package/lib/ui-kit/FormField/Fields/ServiceDirectionField.js +1 -3
  520. package/lib/ui-kit/FormField/Fields/ServiceDirectionField.js.map +1 -1
  521. package/lib/ui-kit/FormField/Fields/SexField.js +1 -3
  522. package/lib/ui-kit/FormField/Fields/SexField.js.map +1 -1
  523. package/lib/ui-kit/FormField/Fields/ShareholderFlgField.js +1 -3
  524. package/lib/ui-kit/FormField/Fields/ShareholderFlgField.js.map +1 -1
  525. package/lib/ui-kit/FormField/Fields/SnilsField.js +1 -3
  526. package/lib/ui-kit/FormField/Fields/SnilsField.js.map +1 -1
  527. package/lib/ui-kit/FormField/Fields/SurnameField.js +1 -3
  528. package/lib/ui-kit/FormField/Fields/SurnameField.js.map +1 -1
  529. package/lib/ui-kit/FormField/Fields/TotalIncomeField.js +1 -3
  530. package/lib/ui-kit/FormField/Fields/TotalIncomeField.js.map +1 -1
  531. package/lib/ui-kit/FormField/Fields/UltraPremiumField.js +1 -3
  532. package/lib/ui-kit/FormField/Fields/UltraPremiumField.js.map +1 -1
  533. package/lib/ui-kit/FormField/Fields/VedField.js +8 -9
  534. package/lib/ui-kit/FormField/Fields/VedField.js.map +1 -1
  535. package/lib/ui-kit/FormField/Fields/WagesField.js +1 -3
  536. package/lib/ui-kit/FormField/Fields/WagesField.js.map +1 -1
  537. package/lib/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js +1 -4
  538. package/lib/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js.map +1 -1
  539. package/lib/ui-kit/FormField/SelectField.js +2 -4
  540. package/lib/ui-kit/FormField/SelectField.js.map +1 -1
  541. package/lib/ui-kit/FormField/getField.d.ts +1 -1
  542. package/lib/ui-kit/FormField/getField.js +28 -28
  543. package/lib/ui-kit/FormField/getField.js.map +1 -1
  544. package/lib/ui-kit/FormField/getObjectValidator.d.ts +2 -1
  545. package/lib/ui-kit/FormField/getObjectValidator.js +16 -4
  546. package/lib/ui-kit/FormField/getObjectValidator.js.map +1 -1
  547. package/lib/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  548. package/lib/ui-kit/FormField/isRenderField.d.ts +1 -1
  549. package/lib/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  550. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  551. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  552. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +1 -1
  553. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -1
  554. package/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  555. package/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +3 -4
  556. package/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  557. package/lib/ui-kit/VerifyPhoneDialog/VerifyPhoneDialog.js +1 -1
  558. package/lib/ui-kit/VerifyPhoneDialog/VerifyPhoneDialog.js.map +1 -1
  559. package/lib/utils/getRequiredLabel.js +1 -0
  560. package/lib/utils/getRequiredLabel.js.map +1 -1
  561. package/lib/validation/objectValidator.d.ts +1 -1
  562. package/lib/validation/objectValidator.js +1 -1
  563. package/lib/validation/objectValidator.js.map +1 -1
  564. package/mobile/bundle/EventBus/defaultEventBus.d.ts +1 -3
  565. package/mobile/bundle/bundle.umd.js +598 -593
  566. package/mobile/bundle/bundle.umd.min.js +1 -1
  567. package/mobile/bundle/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  568. package/mobile/bundle/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  569. package/mobile/bundle/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  570. package/mobile/bundle/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  571. package/mobile/bundle/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  572. package/mobile/bundle/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  573. package/mobile/bundle/components/CreditCardForm/renderInputs.d.ts +1 -1
  574. package/mobile/bundle/components/CreditCardForm/renderStep.d.ts +1 -1
  575. package/mobile/bundle/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  576. package/mobile/bundle/components/CreditForm/renderInputs.d.ts +1 -1
  577. package/mobile/bundle/components/CreditForm/renderStep.d.ts +1 -1
  578. package/mobile/bundle/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  579. package/mobile/bundle/components/Depository/DepositoryFilter.d.ts +1 -1
  580. package/mobile/bundle/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  581. package/mobile/bundle/hooks/useAspects/handleAspects.d.ts +1 -1
  582. package/mobile/bundle/hooks/useForm/FieldOptions.d.ts +7 -0
  583. package/mobile/bundle/hooks/useForm/FormOptions.d.ts +13 -0
  584. package/mobile/bundle/hooks/useForm/shallowCompare.d.ts +1 -0
  585. package/mobile/bundle/hooks/useForm/useForm.d.ts +19 -0
  586. package/mobile/bundle/hooks/useForm/useFormValidator.d.ts +6 -0
  587. package/mobile/bundle/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  588. package/mobile/bundle/services/retail/external/types.d.ts +1 -1
  589. package/mobile/bundle/services/retail/inputs.d.ts +67 -68
  590. package/mobile/bundle/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  591. package/mobile/bundle/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  592. package/mobile/bundle/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  593. package/mobile/bundle/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  594. package/mobile/bundle/ui-kit/FormField/getField.d.ts +1 -1
  595. package/mobile/bundle/ui-kit/FormField/getObjectValidator.d.ts +2 -1
  596. package/mobile/bundle/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  597. package/mobile/bundle/ui-kit/FormField/isRenderField.d.ts +1 -1
  598. package/mobile/bundle/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  599. package/mobile/bundle/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  600. package/mobile/bundle/validation/objectValidator.d.ts +1 -1
  601. package/mobile/dist/EventBus/defaultEventBus.d.ts +1 -3
  602. package/mobile/dist/EventBus/defaultEventBus.js +1 -1
  603. package/mobile/dist/EventBus/defaultEventBus.js.map +1 -1
  604. package/mobile/dist/components/ApplicationForm/ApplicationForm.js +14 -34
  605. package/mobile/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
  606. package/mobile/dist/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  607. package/mobile/dist/components/ApplicationLeadForm/ApplicationLeadForm.js +11 -7
  608. package/mobile/dist/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  609. package/mobile/dist/components/ApplicationLeadForm/GroupedConsents.js +4 -2
  610. package/mobile/dist/components/ApplicationLeadForm/GroupedConsents.js.map +1 -1
  611. package/mobile/dist/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  612. package/mobile/dist/components/ApplicationLeadForm/renderInputs.js +1 -0
  613. package/mobile/dist/components/ApplicationLeadForm/renderInputs.js.map +1 -1
  614. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  615. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.js +5 -16
  616. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  617. package/mobile/dist/components/CalculatorBonus/CalculatorBonus.js +1 -1
  618. package/mobile/dist/components/CalculatorBonus/CalculatorBonus.js.map +1 -1
  619. package/mobile/dist/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js +1 -1
  620. package/mobile/dist/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js.map +1 -1
  621. package/mobile/dist/components/CalculatorCredit/CalculatorCredit.js +3 -6
  622. package/mobile/dist/components/CalculatorCredit/CalculatorCredit.js.map +1 -1
  623. package/mobile/dist/components/CalculatorDeposit/CalculatorDeposit.js +2 -2
  624. package/mobile/dist/components/CalculatorDeposit/CalculatorDeposit.js.map +1 -1
  625. package/mobile/dist/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  626. package/mobile/dist/components/CalculatorRefinancing/CalculatorRefinancing.js +1 -1
  627. package/mobile/dist/components/CalculatorRefinancing/CalculatorRefinancing.js.map +1 -1
  628. package/mobile/dist/components/CardTransfer/CardTransfer.js +1 -1
  629. package/mobile/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  630. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -11
  631. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  632. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  633. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +5 -0
  634. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  635. package/mobile/dist/components/CreditCardForm/CreditCardForm.js +1 -1
  636. package/mobile/dist/components/CreditCardForm/CreditCardForm.js.map +1 -1
  637. package/mobile/dist/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  638. package/mobile/dist/components/CreditCardForm/CreditCardFormStep.js +10 -3
  639. package/mobile/dist/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  640. package/mobile/dist/components/CreditCardForm/renderInputs.d.ts +1 -1
  641. package/mobile/dist/components/CreditCardForm/renderInputs.js +2 -1
  642. package/mobile/dist/components/CreditCardForm/renderInputs.js.map +1 -1
  643. package/mobile/dist/components/CreditCardForm/renderStep.d.ts +1 -1
  644. package/mobile/dist/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  645. package/mobile/dist/components/CreditCardForm/useCreditCardFormAPI.js +1 -10
  646. package/mobile/dist/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  647. package/mobile/dist/components/CreditForm/CreditForm.js +1 -1
  648. package/mobile/dist/components/CreditForm/CreditForm.js.map +1 -1
  649. package/mobile/dist/components/CreditForm/CreditFormStep.js +10 -3
  650. package/mobile/dist/components/CreditForm/CreditFormStep.js.map +1 -1
  651. package/mobile/dist/components/CreditForm/renderInputs.d.ts +1 -1
  652. package/mobile/dist/components/CreditForm/renderStep.d.ts +1 -1
  653. package/mobile/dist/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  654. package/mobile/dist/components/CreditForm/useCreditFormAPI.js +1 -10
  655. package/mobile/dist/components/CreditForm/useCreditFormAPI.js.map +1 -1
  656. package/mobile/dist/components/Depository/Depository.js +1 -1
  657. package/mobile/dist/components/Depository/Depository.js.map +1 -1
  658. package/mobile/dist/components/Depository/DepositoryFilter.d.ts +1 -1
  659. package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +1 -1
  660. package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
  661. package/mobile/dist/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  662. package/mobile/dist/hooks/useAspects/handleAspects.d.ts +1 -1
  663. package/mobile/dist/hooks/useAspects/handleAspects.js +1 -1
  664. package/mobile/dist/hooks/useAspects/handleAspects.js.map +1 -1
  665. package/mobile/dist/hooks/useForm/FieldOptions.d.ts +7 -0
  666. package/mobile/dist/hooks/useForm/FieldOptions.js +2 -0
  667. package/mobile/dist/hooks/useForm/FieldOptions.js.map +1 -0
  668. package/mobile/dist/hooks/useForm/FormOptions.d.ts +13 -0
  669. package/mobile/dist/hooks/useForm/FormOptions.js +2 -0
  670. package/mobile/dist/hooks/useForm/FormOptions.js.map +1 -0
  671. package/mobile/dist/hooks/useForm/shallowCompare.d.ts +1 -0
  672. package/mobile/dist/hooks/useForm/shallowCompare.js +5 -0
  673. package/mobile/dist/hooks/useForm/shallowCompare.js.map +1 -0
  674. package/mobile/dist/hooks/useForm/useForm.d.ts +19 -0
  675. package/mobile/dist/hooks/useForm/useForm.js +54 -0
  676. package/mobile/dist/hooks/useForm/useForm.js.map +1 -0
  677. package/mobile/dist/hooks/useForm/useFormValidator.d.ts +6 -0
  678. package/mobile/dist/hooks/useForm/useFormValidator.js +15 -0
  679. package/mobile/dist/hooks/useForm/useFormValidator.js.map +1 -0
  680. package/mobile/dist/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  681. package/mobile/dist/hooks/useForm/useNormalizedFormState.js +26 -0
  682. package/mobile/dist/hooks/useForm/useNormalizedFormState.js.map +1 -0
  683. package/mobile/dist/services/retail/external/types.d.ts +1 -1
  684. package/mobile/dist/services/retail/inputs.d.ts +67 -68
  685. package/mobile/dist/services/retail/inputs.js +67 -68
  686. package/mobile/dist/services/retail/inputs.js.map +1 -1
  687. package/mobile/dist/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  688. package/mobile/dist/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  689. package/mobile/dist/ui-kit/BaseFiltration/useFiltrationForm.js +3 -3
  690. package/mobile/dist/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -1
  691. package/mobile/dist/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  692. package/mobile/dist/ui-kit/CaptchaDialog/CaptchaDialog.js +8 -3
  693. package/mobile/dist/ui-kit/CaptchaDialog/CaptchaDialog.js.map +1 -1
  694. package/mobile/dist/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  695. package/mobile/dist/ui-kit/FormField/Fields/AcquiringField.js +1 -3
  696. package/mobile/dist/ui-kit/FormField/Fields/AcquiringField.js.map +1 -1
  697. package/mobile/dist/ui-kit/FormField/Fields/AddressBranchField.js +1 -3
  698. package/mobile/dist/ui-kit/FormField/Fields/AddressBranchField.js.map +1 -1
  699. package/mobile/dist/ui-kit/FormField/Fields/AddressFactField.js +1 -3
  700. package/mobile/dist/ui-kit/FormField/Fields/AddressFactField.js.map +1 -1
  701. package/mobile/dist/ui-kit/FormField/Fields/AddressField.js +1 -3
  702. package/mobile/dist/ui-kit/FormField/Fields/AddressField.js.map +1 -1
  703. package/mobile/dist/ui-kit/FormField/Fields/AddressMatchField.js +1 -3
  704. package/mobile/dist/ui-kit/FormField/Fields/AddressMatchField.js.map +1 -1
  705. package/mobile/dist/ui-kit/FormField/Fields/AddressRetailField.js +3 -6
  706. package/mobile/dist/ui-kit/FormField/Fields/AddressRetailField.js.map +1 -1
  707. package/mobile/dist/ui-kit/FormField/Fields/AmountField.js +1 -1
  708. package/mobile/dist/ui-kit/FormField/Fields/AmountField.js.map +1 -1
  709. package/mobile/dist/ui-kit/FormField/Fields/AnnualRevenueField.js +1 -3
  710. package/mobile/dist/ui-kit/FormField/Fields/AnnualRevenueField.js.map +1 -1
  711. package/mobile/dist/ui-kit/FormField/Fields/ArmyIdFlgField.js +1 -3
  712. package/mobile/dist/ui-kit/FormField/Fields/ArmyIdFlgField.js.map +1 -1
  713. package/mobile/dist/ui-kit/FormField/Fields/BankEmployeeCodeField.js +1 -3
  714. package/mobile/dist/ui-kit/FormField/Fields/BankEmployeeCodeField.js.map +1 -1
  715. package/mobile/dist/ui-kit/FormField/Fields/BankEmpoleeField.js +1 -1
  716. package/mobile/dist/ui-kit/FormField/Fields/BankEmpoleeField.js.map +1 -1
  717. package/mobile/dist/ui-kit/FormField/Fields/BankruptcyFlgField.js +1 -3
  718. package/mobile/dist/ui-kit/FormField/Fields/BankruptcyFlgField.js.map +1 -1
  719. package/mobile/dist/ui-kit/FormField/Fields/BeginDateField.js +1 -3
  720. package/mobile/dist/ui-kit/FormField/Fields/BeginDateField.js.map +1 -1
  721. package/mobile/dist/ui-kit/FormField/Fields/BirthPlaceField.js +1 -3
  722. package/mobile/dist/ui-kit/FormField/Fields/BirthPlaceField.js.map +1 -1
  723. package/mobile/dist/ui-kit/FormField/Fields/BirthdayField.js +1 -3
  724. package/mobile/dist/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  725. package/mobile/dist/ui-kit/FormField/Fields/ChildrenField.js +1 -3
  726. package/mobile/dist/ui-kit/FormField/Fields/ChildrenField.js.map +1 -1
  727. package/mobile/dist/ui-kit/FormField/Fields/CodeWordField.js +1 -3
  728. package/mobile/dist/ui-kit/FormField/Fields/CodeWordField.js.map +1 -1
  729. package/mobile/dist/ui-kit/FormField/Fields/CollectionCountField.js +1 -3
  730. package/mobile/dist/ui-kit/FormField/Fields/CollectionCountField.js.map +1 -1
  731. package/mobile/dist/ui-kit/FormField/Fields/CommentField.js +1 -3
  732. package/mobile/dist/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  733. package/mobile/dist/ui-kit/FormField/Fields/ConsentField.js +1 -3
  734. package/mobile/dist/ui-kit/FormField/Fields/ConsentField.js.map +1 -1
  735. package/mobile/dist/ui-kit/FormField/Fields/CurrencyField.js +2 -7
  736. package/mobile/dist/ui-kit/FormField/Fields/CurrencyField.js.map +1 -1
  737. package/mobile/dist/ui-kit/FormField/Fields/DeliveryDateFiels.js +1 -3
  738. package/mobile/dist/ui-kit/FormField/Fields/DeliveryDateFiels.js.map +1 -1
  739. package/mobile/dist/ui-kit/FormField/Fields/DependentsField.js +1 -3
  740. package/mobile/dist/ui-kit/FormField/Fields/DependentsField.js.map +1 -1
  741. package/mobile/dist/ui-kit/FormField/Fields/DesiredMeetingDateField.js +1 -3
  742. package/mobile/dist/ui-kit/FormField/Fields/DesiredMeetingDateField.js.map +1 -1
  743. package/mobile/dist/ui-kit/FormField/Fields/DisablePeopleFlgField.js +1 -3
  744. package/mobile/dist/ui-kit/FormField/Fields/DisablePeopleFlgField.js.map +1 -1
  745. package/mobile/dist/ui-kit/FormField/Fields/DulIssueDateField.js +1 -4
  746. package/mobile/dist/ui-kit/FormField/Fields/DulIssueDateField.js.map +1 -1
  747. package/mobile/dist/ui-kit/FormField/Fields/DulIssuedByField.js +1 -4
  748. package/mobile/dist/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -1
  749. package/mobile/dist/ui-kit/FormField/Fields/DulNumberField.js +1 -4
  750. package/mobile/dist/ui-kit/FormField/Fields/DulNumberField.js.map +1 -1
  751. package/mobile/dist/ui-kit/FormField/Fields/DulSerieField.js +1 -4
  752. package/mobile/dist/ui-kit/FormField/Fields/DulSerieField.js.map +1 -1
  753. package/mobile/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +1 -4
  754. package/mobile/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -1
  755. package/mobile/dist/ui-kit/FormField/Fields/EmailField.js +1 -4
  756. package/mobile/dist/ui-kit/FormField/Fields/EmailField.js.map +1 -1
  757. package/mobile/dist/ui-kit/FormField/Fields/ExpensesField.js +1 -3
  758. package/mobile/dist/ui-kit/FormField/Fields/ExpensesField.js.map +1 -1
  759. package/mobile/dist/ui-kit/FormField/Fields/Experience5YearsField.js +2 -5
  760. package/mobile/dist/ui-kit/FormField/Fields/Experience5YearsField.js.map +1 -1
  761. package/mobile/dist/ui-kit/FormField/Fields/FamilyMembersField.js +4 -4
  762. package/mobile/dist/ui-kit/FormField/Fields/FamilyMembersField.js.map +1 -1
  763. package/mobile/dist/ui-kit/FormField/Fields/FeedbackMethodField.js +1 -3
  764. package/mobile/dist/ui-kit/FormField/Fields/FeedbackMethodField.js.map +1 -1
  765. package/mobile/dist/ui-kit/FormField/Fields/FullNameField.js +1 -3
  766. package/mobile/dist/ui-kit/FormField/Fields/FullNameField.js.map +1 -1
  767. package/mobile/dist/ui-kit/FormField/Fields/GeneralSeniorityField.js +1 -3
  768. package/mobile/dist/ui-kit/FormField/Fields/GeneralSeniorityField.js.map +1 -1
  769. package/mobile/dist/ui-kit/FormField/Fields/InnField.js +1 -3
  770. package/mobile/dist/ui-kit/FormField/Fields/InnField.js.map +1 -1
  771. package/mobile/dist/ui-kit/FormField/Fields/IsClientField.js +1 -1
  772. package/mobile/dist/ui-kit/FormField/Fields/IsClientField.js.map +1 -1
  773. package/mobile/dist/ui-kit/FormField/Fields/JobsNumberField.js +1 -3
  774. package/mobile/dist/ui-kit/FormField/Fields/JobsNumberField.js.map +1 -1
  775. package/mobile/dist/ui-kit/FormField/Fields/LastJobExperienceField.js +1 -3
  776. package/mobile/dist/ui-kit/FormField/Fields/LastJobExperienceField.js.map +1 -1
  777. package/mobile/dist/ui-kit/FormField/Fields/LegalEntityNameField.js +1 -3
  778. package/mobile/dist/ui-kit/FormField/Fields/LegalEntityNameField.js.map +1 -1
  779. package/mobile/dist/ui-kit/FormField/Fields/LegalFormField.js +1 -3
  780. package/mobile/dist/ui-kit/FormField/Fields/LegalFormField.js.map +1 -1
  781. package/mobile/dist/ui-kit/FormField/Fields/LimitedBirthdayField.js +1 -4
  782. package/mobile/dist/ui-kit/FormField/Fields/LimitedBirthdayField.js.map +1 -1
  783. package/mobile/dist/ui-kit/FormField/Fields/LocalitiesField.js +4 -8
  784. package/mobile/dist/ui-kit/FormField/Fields/LocalitiesField.js.map +1 -1
  785. package/mobile/dist/ui-kit/FormField/Fields/MandatoryPaymentsField.js +1 -3
  786. package/mobile/dist/ui-kit/FormField/Fields/MandatoryPaymentsField.js.map +1 -1
  787. package/mobile/dist/ui-kit/FormField/Fields/MethodObtainField.js +1 -3
  788. package/mobile/dist/ui-kit/FormField/Fields/MethodObtainField.js.map +1 -1
  789. package/mobile/dist/ui-kit/FormField/Fields/MiddleNameField.js +1 -4
  790. package/mobile/dist/ui-kit/FormField/Fields/MiddleNameField.js.map +1 -1
  791. package/mobile/dist/ui-kit/FormField/Fields/NameField.js +1 -3
  792. package/mobile/dist/ui-kit/FormField/Fields/NameField.js.map +1 -1
  793. package/mobile/dist/ui-kit/FormField/Fields/OnlineCheckoutField.js +1 -1
  794. package/mobile/dist/ui-kit/FormField/Fields/OnlineCheckoutField.js.map +1 -1
  795. package/mobile/dist/ui-kit/FormField/Fields/OrganizationNameField.js +1 -3
  796. package/mobile/dist/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  797. package/mobile/dist/ui-kit/FormField/Fields/OtherIncomeField.js +1 -3
  798. package/mobile/dist/ui-kit/FormField/Fields/OtherIncomeField.js.map +1 -1
  799. package/mobile/dist/ui-kit/FormField/Fields/PartInBusinessField.js +2 -5
  800. package/mobile/dist/ui-kit/FormField/Fields/PartInBusinessField.js.map +1 -1
  801. package/mobile/dist/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js +1 -3
  802. package/mobile/dist/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js.map +1 -1
  803. package/mobile/dist/ui-kit/FormField/Fields/PartnerCommentsField.js +1 -6
  804. package/mobile/dist/ui-kit/FormField/Fields/PartnerCommentsField.js.map +1 -1
  805. package/mobile/dist/ui-kit/FormField/Fields/PaymentSystemField.js +13 -13
  806. package/mobile/dist/ui-kit/FormField/Fields/PaymentSystemField.js.map +1 -1
  807. package/mobile/dist/ui-kit/FormField/Fields/PhoneField.js +1 -3
  808. package/mobile/dist/ui-kit/FormField/Fields/PhoneField.js.map +1 -1
  809. package/mobile/dist/ui-kit/FormField/Fields/ProductField.js +1 -3
  810. package/mobile/dist/ui-kit/FormField/Fields/ProductField.js.map +1 -1
  811. package/mobile/dist/ui-kit/FormField/Fields/RegionField.js +1 -3
  812. package/mobile/dist/ui-kit/FormField/Fields/RegionField.js.map +1 -1
  813. package/mobile/dist/ui-kit/FormField/Fields/RegionPremiumField.js +1 -3
  814. package/mobile/dist/ui-kit/FormField/Fields/RegionPremiumField.js.map +1 -1
  815. package/mobile/dist/ui-kit/FormField/Fields/RegionRetailField.js +1 -3
  816. package/mobile/dist/ui-kit/FormField/Fields/RegionRetailField.js.map +1 -1
  817. package/mobile/dist/ui-kit/FormField/Fields/RetirementIncomeField.js +1 -3
  818. package/mobile/dist/ui-kit/FormField/Fields/RetirementIncomeField.js.map +1 -1
  819. package/mobile/dist/ui-kit/FormField/Fields/ServiceDirectionField.js +1 -3
  820. package/mobile/dist/ui-kit/FormField/Fields/ServiceDirectionField.js.map +1 -1
  821. package/mobile/dist/ui-kit/FormField/Fields/SexField.js +1 -3
  822. package/mobile/dist/ui-kit/FormField/Fields/SexField.js.map +1 -1
  823. package/mobile/dist/ui-kit/FormField/Fields/ShareholderFlgField.js +1 -3
  824. package/mobile/dist/ui-kit/FormField/Fields/ShareholderFlgField.js.map +1 -1
  825. package/mobile/dist/ui-kit/FormField/Fields/SnilsField.js +1 -3
  826. package/mobile/dist/ui-kit/FormField/Fields/SnilsField.js.map +1 -1
  827. package/mobile/dist/ui-kit/FormField/Fields/SurnameField.js +1 -3
  828. package/mobile/dist/ui-kit/FormField/Fields/SurnameField.js.map +1 -1
  829. package/mobile/dist/ui-kit/FormField/Fields/TotalIncomeField.js +1 -3
  830. package/mobile/dist/ui-kit/FormField/Fields/TotalIncomeField.js.map +1 -1
  831. package/mobile/dist/ui-kit/FormField/Fields/UltraPremiumField.js +1 -3
  832. package/mobile/dist/ui-kit/FormField/Fields/UltraPremiumField.js.map +1 -1
  833. package/mobile/dist/ui-kit/FormField/Fields/VedField.js +7 -8
  834. package/mobile/dist/ui-kit/FormField/Fields/VedField.js.map +1 -1
  835. package/mobile/dist/ui-kit/FormField/Fields/WagesField.js +1 -3
  836. package/mobile/dist/ui-kit/FormField/Fields/WagesField.js.map +1 -1
  837. package/mobile/dist/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js +1 -4
  838. package/mobile/dist/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js.map +1 -1
  839. package/mobile/dist/ui-kit/FormField/SelectField.js +2 -4
  840. package/mobile/dist/ui-kit/FormField/SelectField.js.map +1 -1
  841. package/mobile/dist/ui-kit/FormField/getField.d.ts +1 -1
  842. package/mobile/dist/ui-kit/FormField/getField.js +28 -28
  843. package/mobile/dist/ui-kit/FormField/getField.js.map +1 -1
  844. package/mobile/dist/ui-kit/FormField/getObjectValidator.d.ts +2 -1
  845. package/mobile/dist/ui-kit/FormField/getObjectValidator.js +18 -6
  846. package/mobile/dist/ui-kit/FormField/getObjectValidator.js.map +1 -1
  847. package/mobile/dist/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  848. package/mobile/dist/ui-kit/FormField/isRenderField.d.ts +1 -1
  849. package/mobile/dist/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  850. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  851. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  852. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +1 -1
  853. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -1
  854. package/mobile/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  855. package/mobile/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +3 -4
  856. package/mobile/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  857. package/mobile/dist/ui-kit/VerifyPhoneDialog/VerifyPhoneDialog.js +1 -1
  858. package/mobile/dist/ui-kit/VerifyPhoneDialog/VerifyPhoneDialog.js.map +1 -1
  859. package/mobile/dist/utils/getRequiredLabel.js +1 -0
  860. package/mobile/dist/utils/getRequiredLabel.js.map +1 -1
  861. package/mobile/dist/validation/objectValidator.d.ts +1 -1
  862. package/mobile/dist/validation/objectValidator.js +1 -1
  863. package/mobile/dist/validation/objectValidator.js.map +1 -1
  864. package/mobile/lib/EventBus/defaultEventBus.d.ts +1 -3
  865. package/mobile/lib/EventBus/defaultEventBus.js +1 -1
  866. package/mobile/lib/EventBus/defaultEventBus.js.map +1 -1
  867. package/mobile/lib/components/ApplicationForm/ApplicationForm.js +16 -36
  868. package/mobile/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
  869. package/mobile/lib/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  870. package/mobile/lib/components/ApplicationLeadForm/ApplicationLeadForm.js +11 -7
  871. package/mobile/lib/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  872. package/mobile/lib/components/ApplicationLeadForm/GroupedConsents.js +4 -2
  873. package/mobile/lib/components/ApplicationLeadForm/GroupedConsents.js.map +1 -1
  874. package/mobile/lib/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  875. package/mobile/lib/components/ApplicationLeadForm/renderInputs.js +1 -0
  876. package/mobile/lib/components/ApplicationLeadForm/renderInputs.js.map +1 -1
  877. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  878. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.js +5 -16
  879. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  880. package/mobile/lib/components/CalculatorBonus/CalculatorBonus.js +1 -1
  881. package/mobile/lib/components/CalculatorBonus/CalculatorBonus.js.map +1 -1
  882. package/mobile/lib/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js +1 -1
  883. package/mobile/lib/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js.map +1 -1
  884. package/mobile/lib/components/CalculatorCredit/CalculatorCredit.js +3 -6
  885. package/mobile/lib/components/CalculatorCredit/CalculatorCredit.js.map +1 -1
  886. package/mobile/lib/components/CalculatorDeposit/CalculatorDeposit.js +2 -2
  887. package/mobile/lib/components/CalculatorDeposit/CalculatorDeposit.js.map +1 -1
  888. package/mobile/lib/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  889. package/mobile/lib/components/CalculatorRefinancing/CalculatorRefinancing.js +1 -1
  890. package/mobile/lib/components/CalculatorRefinancing/CalculatorRefinancing.js.map +1 -1
  891. package/mobile/lib/components/CardTransfer/CardTransfer.js +1 -1
  892. package/mobile/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  893. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +13 -12
  894. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  895. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  896. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +3 -0
  897. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  898. package/mobile/lib/components/CreditCardForm/CreditCardForm.js +2 -2
  899. package/mobile/lib/components/CreditCardForm/CreditCardForm.js.map +1 -1
  900. package/mobile/lib/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  901. package/mobile/lib/components/CreditCardForm/CreditCardFormStep.js +11 -4
  902. package/mobile/lib/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  903. package/mobile/lib/components/CreditCardForm/renderInputs.d.ts +1 -1
  904. package/mobile/lib/components/CreditCardForm/renderInputs.js +2 -1
  905. package/mobile/lib/components/CreditCardForm/renderInputs.js.map +1 -1
  906. package/mobile/lib/components/CreditCardForm/renderStep.d.ts +1 -1
  907. package/mobile/lib/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  908. package/mobile/lib/components/CreditCardForm/useCreditCardFormAPI.js +1 -10
  909. package/mobile/lib/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  910. package/mobile/lib/components/CreditForm/CreditForm.js +2 -2
  911. package/mobile/lib/components/CreditForm/CreditForm.js.map +1 -1
  912. package/mobile/lib/components/CreditForm/CreditFormStep.js +11 -4
  913. package/mobile/lib/components/CreditForm/CreditFormStep.js.map +1 -1
  914. package/mobile/lib/components/CreditForm/renderInputs.d.ts +1 -1
  915. package/mobile/lib/components/CreditForm/renderStep.d.ts +1 -1
  916. package/mobile/lib/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  917. package/mobile/lib/components/CreditForm/useCreditFormAPI.js +1 -10
  918. package/mobile/lib/components/CreditForm/useCreditFormAPI.js.map +1 -1
  919. package/mobile/lib/components/Depository/Depository.js +1 -1
  920. package/mobile/lib/components/Depository/Depository.js.map +1 -1
  921. package/mobile/lib/components/Depository/DepositoryFilter.d.ts +1 -1
  922. package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +1 -1
  923. package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
  924. package/mobile/lib/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  925. package/mobile/lib/hooks/useAspects/handleAspects.d.ts +1 -1
  926. package/mobile/lib/hooks/useAspects/handleAspects.js +1 -1
  927. package/mobile/lib/hooks/useAspects/handleAspects.js.map +1 -1
  928. package/mobile/lib/hooks/useForm/FieldOptions.d.ts +7 -0
  929. package/mobile/lib/hooks/useForm/FieldOptions.js +2 -0
  930. package/mobile/lib/hooks/useForm/FieldOptions.js.map +1 -0
  931. package/mobile/lib/hooks/useForm/FormOptions.d.ts +13 -0
  932. package/mobile/lib/hooks/useForm/FormOptions.js +2 -0
  933. package/mobile/lib/hooks/useForm/FormOptions.js.map +1 -0
  934. package/mobile/lib/hooks/useForm/shallowCompare.d.ts +1 -0
  935. package/mobile/lib/hooks/useForm/shallowCompare.js +2 -0
  936. package/mobile/lib/hooks/useForm/shallowCompare.js.map +1 -0
  937. package/mobile/lib/hooks/useForm/useForm.d.ts +19 -0
  938. package/mobile/lib/hooks/useForm/useForm.js +51 -0
  939. package/mobile/lib/hooks/useForm/useForm.js.map +1 -0
  940. package/mobile/lib/hooks/useForm/useFormValidator.d.ts +6 -0
  941. package/mobile/lib/hooks/useForm/useFormValidator.js +12 -0
  942. package/mobile/lib/hooks/useForm/useFormValidator.js.map +1 -0
  943. package/mobile/lib/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  944. package/mobile/lib/hooks/useForm/useNormalizedFormState.js +23 -0
  945. package/mobile/lib/hooks/useForm/useNormalizedFormState.js.map +1 -0
  946. package/mobile/lib/services/retail/external/types.d.ts +1 -1
  947. package/mobile/lib/services/retail/inputs.d.ts +67 -68
  948. package/mobile/lib/services/retail/inputs.js +67 -68
  949. package/mobile/lib/services/retail/inputs.js.map +1 -1
  950. package/mobile/lib/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  951. package/mobile/lib/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  952. package/mobile/lib/ui-kit/BaseFiltration/useFiltrationForm.js +3 -3
  953. package/mobile/lib/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -1
  954. package/mobile/lib/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  955. package/mobile/lib/ui-kit/CaptchaDialog/CaptchaDialog.js +8 -3
  956. package/mobile/lib/ui-kit/CaptchaDialog/CaptchaDialog.js.map +1 -1
  957. package/mobile/lib/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  958. package/mobile/lib/ui-kit/FormField/Fields/AcquiringField.js +1 -3
  959. package/mobile/lib/ui-kit/FormField/Fields/AcquiringField.js.map +1 -1
  960. package/mobile/lib/ui-kit/FormField/Fields/AddressBranchField.js +1 -3
  961. package/mobile/lib/ui-kit/FormField/Fields/AddressBranchField.js.map +1 -1
  962. package/mobile/lib/ui-kit/FormField/Fields/AddressFactField.js +1 -3
  963. package/mobile/lib/ui-kit/FormField/Fields/AddressFactField.js.map +1 -1
  964. package/mobile/lib/ui-kit/FormField/Fields/AddressField.js +1 -3
  965. package/mobile/lib/ui-kit/FormField/Fields/AddressField.js.map +1 -1
  966. package/mobile/lib/ui-kit/FormField/Fields/AddressMatchField.js +1 -3
  967. package/mobile/lib/ui-kit/FormField/Fields/AddressMatchField.js.map +1 -1
  968. package/mobile/lib/ui-kit/FormField/Fields/AddressRetailField.js +3 -6
  969. package/mobile/lib/ui-kit/FormField/Fields/AddressRetailField.js.map +1 -1
  970. package/mobile/lib/ui-kit/FormField/Fields/AmountField.js +1 -1
  971. package/mobile/lib/ui-kit/FormField/Fields/AmountField.js.map +1 -1
  972. package/mobile/lib/ui-kit/FormField/Fields/AnnualRevenueField.js +1 -3
  973. package/mobile/lib/ui-kit/FormField/Fields/AnnualRevenueField.js.map +1 -1
  974. package/mobile/lib/ui-kit/FormField/Fields/ArmyIdFlgField.js +1 -3
  975. package/mobile/lib/ui-kit/FormField/Fields/ArmyIdFlgField.js.map +1 -1
  976. package/mobile/lib/ui-kit/FormField/Fields/BankEmployeeCodeField.js +1 -3
  977. package/mobile/lib/ui-kit/FormField/Fields/BankEmployeeCodeField.js.map +1 -1
  978. package/mobile/lib/ui-kit/FormField/Fields/BankEmpoleeField.js +1 -1
  979. package/mobile/lib/ui-kit/FormField/Fields/BankEmpoleeField.js.map +1 -1
  980. package/mobile/lib/ui-kit/FormField/Fields/BankruptcyFlgField.js +1 -3
  981. package/mobile/lib/ui-kit/FormField/Fields/BankruptcyFlgField.js.map +1 -1
  982. package/mobile/lib/ui-kit/FormField/Fields/BeginDateField.js +1 -3
  983. package/mobile/lib/ui-kit/FormField/Fields/BeginDateField.js.map +1 -1
  984. package/mobile/lib/ui-kit/FormField/Fields/BirthPlaceField.js +1 -3
  985. package/mobile/lib/ui-kit/FormField/Fields/BirthPlaceField.js.map +1 -1
  986. package/mobile/lib/ui-kit/FormField/Fields/BirthdayField.js +1 -3
  987. package/mobile/lib/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  988. package/mobile/lib/ui-kit/FormField/Fields/ChildrenField.js +1 -3
  989. package/mobile/lib/ui-kit/FormField/Fields/ChildrenField.js.map +1 -1
  990. package/mobile/lib/ui-kit/FormField/Fields/CodeWordField.js +1 -3
  991. package/mobile/lib/ui-kit/FormField/Fields/CodeWordField.js.map +1 -1
  992. package/mobile/lib/ui-kit/FormField/Fields/CollectionCountField.js +1 -3
  993. package/mobile/lib/ui-kit/FormField/Fields/CollectionCountField.js.map +1 -1
  994. package/mobile/lib/ui-kit/FormField/Fields/CommentField.js +1 -3
  995. package/mobile/lib/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  996. package/mobile/lib/ui-kit/FormField/Fields/ConsentField.js +1 -3
  997. package/mobile/lib/ui-kit/FormField/Fields/ConsentField.js.map +1 -1
  998. package/mobile/lib/ui-kit/FormField/Fields/CurrencyField.js +2 -7
  999. package/mobile/lib/ui-kit/FormField/Fields/CurrencyField.js.map +1 -1
  1000. package/mobile/lib/ui-kit/FormField/Fields/DeliveryDateFiels.js +1 -3
  1001. package/mobile/lib/ui-kit/FormField/Fields/DeliveryDateFiels.js.map +1 -1
  1002. package/mobile/lib/ui-kit/FormField/Fields/DependentsField.js +1 -3
  1003. package/mobile/lib/ui-kit/FormField/Fields/DependentsField.js.map +1 -1
  1004. package/mobile/lib/ui-kit/FormField/Fields/DesiredMeetingDateField.js +1 -3
  1005. package/mobile/lib/ui-kit/FormField/Fields/DesiredMeetingDateField.js.map +1 -1
  1006. package/mobile/lib/ui-kit/FormField/Fields/DisablePeopleFlgField.js +1 -3
  1007. package/mobile/lib/ui-kit/FormField/Fields/DisablePeopleFlgField.js.map +1 -1
  1008. package/mobile/lib/ui-kit/FormField/Fields/DulIssueDateField.js +1 -4
  1009. package/mobile/lib/ui-kit/FormField/Fields/DulIssueDateField.js.map +1 -1
  1010. package/mobile/lib/ui-kit/FormField/Fields/DulIssuedByField.js +1 -4
  1011. package/mobile/lib/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -1
  1012. package/mobile/lib/ui-kit/FormField/Fields/DulNumberField.js +1 -4
  1013. package/mobile/lib/ui-kit/FormField/Fields/DulNumberField.js.map +1 -1
  1014. package/mobile/lib/ui-kit/FormField/Fields/DulSerieField.js +1 -4
  1015. package/mobile/lib/ui-kit/FormField/Fields/DulSerieField.js.map +1 -1
  1016. package/mobile/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +1 -4
  1017. package/mobile/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -1
  1018. package/mobile/lib/ui-kit/FormField/Fields/EmailField.js +1 -4
  1019. package/mobile/lib/ui-kit/FormField/Fields/EmailField.js.map +1 -1
  1020. package/mobile/lib/ui-kit/FormField/Fields/ExpensesField.js +1 -3
  1021. package/mobile/lib/ui-kit/FormField/Fields/ExpensesField.js.map +1 -1
  1022. package/mobile/lib/ui-kit/FormField/Fields/Experience5YearsField.js +2 -5
  1023. package/mobile/lib/ui-kit/FormField/Fields/Experience5YearsField.js.map +1 -1
  1024. package/mobile/lib/ui-kit/FormField/Fields/FamilyMembersField.js +4 -4
  1025. package/mobile/lib/ui-kit/FormField/Fields/FamilyMembersField.js.map +1 -1
  1026. package/mobile/lib/ui-kit/FormField/Fields/FeedbackMethodField.js +1 -3
  1027. package/mobile/lib/ui-kit/FormField/Fields/FeedbackMethodField.js.map +1 -1
  1028. package/mobile/lib/ui-kit/FormField/Fields/FullNameField.js +1 -3
  1029. package/mobile/lib/ui-kit/FormField/Fields/FullNameField.js.map +1 -1
  1030. package/mobile/lib/ui-kit/FormField/Fields/GeneralSeniorityField.js +1 -3
  1031. package/mobile/lib/ui-kit/FormField/Fields/GeneralSeniorityField.js.map +1 -1
  1032. package/mobile/lib/ui-kit/FormField/Fields/InnField.js +1 -3
  1033. package/mobile/lib/ui-kit/FormField/Fields/InnField.js.map +1 -1
  1034. package/mobile/lib/ui-kit/FormField/Fields/IsClientField.js +1 -1
  1035. package/mobile/lib/ui-kit/FormField/Fields/IsClientField.js.map +1 -1
  1036. package/mobile/lib/ui-kit/FormField/Fields/JobsNumberField.js +1 -3
  1037. package/mobile/lib/ui-kit/FormField/Fields/JobsNumberField.js.map +1 -1
  1038. package/mobile/lib/ui-kit/FormField/Fields/LastJobExperienceField.js +1 -3
  1039. package/mobile/lib/ui-kit/FormField/Fields/LastJobExperienceField.js.map +1 -1
  1040. package/mobile/lib/ui-kit/FormField/Fields/LegalEntityNameField.js +1 -3
  1041. package/mobile/lib/ui-kit/FormField/Fields/LegalEntityNameField.js.map +1 -1
  1042. package/mobile/lib/ui-kit/FormField/Fields/LegalFormField.js +1 -3
  1043. package/mobile/lib/ui-kit/FormField/Fields/LegalFormField.js.map +1 -1
  1044. package/mobile/lib/ui-kit/FormField/Fields/LimitedBirthdayField.js +1 -4
  1045. package/mobile/lib/ui-kit/FormField/Fields/LimitedBirthdayField.js.map +1 -1
  1046. package/mobile/lib/ui-kit/FormField/Fields/LocalitiesField.js +5 -9
  1047. package/mobile/lib/ui-kit/FormField/Fields/LocalitiesField.js.map +1 -1
  1048. package/mobile/lib/ui-kit/FormField/Fields/MandatoryPaymentsField.js +1 -3
  1049. package/mobile/lib/ui-kit/FormField/Fields/MandatoryPaymentsField.js.map +1 -1
  1050. package/mobile/lib/ui-kit/FormField/Fields/MethodObtainField.js +1 -3
  1051. package/mobile/lib/ui-kit/FormField/Fields/MethodObtainField.js.map +1 -1
  1052. package/mobile/lib/ui-kit/FormField/Fields/MiddleNameField.js +1 -4
  1053. package/mobile/lib/ui-kit/FormField/Fields/MiddleNameField.js.map +1 -1
  1054. package/mobile/lib/ui-kit/FormField/Fields/NameField.js +1 -3
  1055. package/mobile/lib/ui-kit/FormField/Fields/NameField.js.map +1 -1
  1056. package/mobile/lib/ui-kit/FormField/Fields/OnlineCheckoutField.js +1 -1
  1057. package/mobile/lib/ui-kit/FormField/Fields/OnlineCheckoutField.js.map +1 -1
  1058. package/mobile/lib/ui-kit/FormField/Fields/OrganizationNameField.js +1 -3
  1059. package/mobile/lib/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  1060. package/mobile/lib/ui-kit/FormField/Fields/OtherIncomeField.js +1 -3
  1061. package/mobile/lib/ui-kit/FormField/Fields/OtherIncomeField.js.map +1 -1
  1062. package/mobile/lib/ui-kit/FormField/Fields/PartInBusinessField.js +2 -5
  1063. package/mobile/lib/ui-kit/FormField/Fields/PartInBusinessField.js.map +1 -1
  1064. package/mobile/lib/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js +1 -3
  1065. package/mobile/lib/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js.map +1 -1
  1066. package/mobile/lib/ui-kit/FormField/Fields/PartnerCommentsField.js +1 -6
  1067. package/mobile/lib/ui-kit/FormField/Fields/PartnerCommentsField.js.map +1 -1
  1068. package/mobile/lib/ui-kit/FormField/Fields/PaymentSystemField.js +14 -14
  1069. package/mobile/lib/ui-kit/FormField/Fields/PaymentSystemField.js.map +1 -1
  1070. package/mobile/lib/ui-kit/FormField/Fields/PhoneField.js +1 -3
  1071. package/mobile/lib/ui-kit/FormField/Fields/PhoneField.js.map +1 -1
  1072. package/mobile/lib/ui-kit/FormField/Fields/ProductField.js +1 -3
  1073. package/mobile/lib/ui-kit/FormField/Fields/ProductField.js.map +1 -1
  1074. package/mobile/lib/ui-kit/FormField/Fields/RegionField.js +1 -3
  1075. package/mobile/lib/ui-kit/FormField/Fields/RegionField.js.map +1 -1
  1076. package/mobile/lib/ui-kit/FormField/Fields/RegionPremiumField.js +1 -3
  1077. package/mobile/lib/ui-kit/FormField/Fields/RegionPremiumField.js.map +1 -1
  1078. package/mobile/lib/ui-kit/FormField/Fields/RegionRetailField.js +1 -3
  1079. package/mobile/lib/ui-kit/FormField/Fields/RegionRetailField.js.map +1 -1
  1080. package/mobile/lib/ui-kit/FormField/Fields/RetirementIncomeField.js +1 -3
  1081. package/mobile/lib/ui-kit/FormField/Fields/RetirementIncomeField.js.map +1 -1
  1082. package/mobile/lib/ui-kit/FormField/Fields/ServiceDirectionField.js +1 -3
  1083. package/mobile/lib/ui-kit/FormField/Fields/ServiceDirectionField.js.map +1 -1
  1084. package/mobile/lib/ui-kit/FormField/Fields/SexField.js +1 -3
  1085. package/mobile/lib/ui-kit/FormField/Fields/SexField.js.map +1 -1
  1086. package/mobile/lib/ui-kit/FormField/Fields/ShareholderFlgField.js +1 -3
  1087. package/mobile/lib/ui-kit/FormField/Fields/ShareholderFlgField.js.map +1 -1
  1088. package/mobile/lib/ui-kit/FormField/Fields/SnilsField.js +1 -3
  1089. package/mobile/lib/ui-kit/FormField/Fields/SnilsField.js.map +1 -1
  1090. package/mobile/lib/ui-kit/FormField/Fields/SurnameField.js +1 -3
  1091. package/mobile/lib/ui-kit/FormField/Fields/SurnameField.js.map +1 -1
  1092. package/mobile/lib/ui-kit/FormField/Fields/TotalIncomeField.js +1 -3
  1093. package/mobile/lib/ui-kit/FormField/Fields/TotalIncomeField.js.map +1 -1
  1094. package/mobile/lib/ui-kit/FormField/Fields/UltraPremiumField.js +1 -3
  1095. package/mobile/lib/ui-kit/FormField/Fields/UltraPremiumField.js.map +1 -1
  1096. package/mobile/lib/ui-kit/FormField/Fields/VedField.js +8 -9
  1097. package/mobile/lib/ui-kit/FormField/Fields/VedField.js.map +1 -1
  1098. package/mobile/lib/ui-kit/FormField/Fields/WagesField.js +1 -3
  1099. package/mobile/lib/ui-kit/FormField/Fields/WagesField.js.map +1 -1
  1100. package/mobile/lib/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js +1 -4
  1101. package/mobile/lib/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js.map +1 -1
  1102. package/mobile/lib/ui-kit/FormField/SelectField.js +2 -4
  1103. package/mobile/lib/ui-kit/FormField/SelectField.js.map +1 -1
  1104. package/mobile/lib/ui-kit/FormField/getField.d.ts +1 -1
  1105. package/mobile/lib/ui-kit/FormField/getField.js +28 -28
  1106. package/mobile/lib/ui-kit/FormField/getField.js.map +1 -1
  1107. package/mobile/lib/ui-kit/FormField/getObjectValidator.d.ts +2 -1
  1108. package/mobile/lib/ui-kit/FormField/getObjectValidator.js +16 -4
  1109. package/mobile/lib/ui-kit/FormField/getObjectValidator.js.map +1 -1
  1110. package/mobile/lib/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  1111. package/mobile/lib/ui-kit/FormField/isRenderField.d.ts +1 -1
  1112. package/mobile/lib/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  1113. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  1114. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  1115. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +1 -1
  1116. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -1
  1117. package/mobile/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  1118. package/mobile/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +3 -4
  1119. package/mobile/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  1120. package/mobile/lib/ui-kit/VerifyPhoneDialog/VerifyPhoneDialog.js +1 -1
  1121. package/mobile/lib/ui-kit/VerifyPhoneDialog/VerifyPhoneDialog.js.map +1 -1
  1122. package/mobile/lib/utils/getRequiredLabel.js +1 -0
  1123. package/mobile/lib/utils/getRequiredLabel.js.map +1 -1
  1124. package/mobile/lib/validation/objectValidator.d.ts +1 -1
  1125. package/mobile/lib/validation/objectValidator.js +1 -1
  1126. package/mobile/lib/validation/objectValidator.js.map +1 -1
  1127. package/mobile/src/EventBus/defaultEventBus.ts +1 -3
  1128. package/mobile/src/components/ApplicationForm/ApplicationForm.tsx +22 -42
  1129. package/mobile/src/components/ApplicationForm/renderAgreementSubmit.tsx +1 -1
  1130. package/mobile/src/components/ApplicationLeadForm/ApplicationLeadForm.tsx +12 -7
  1131. package/mobile/src/components/ApplicationLeadForm/GroupedConsents.tsx +5 -2
  1132. package/mobile/src/components/ApplicationLeadForm/renderAgreementSubmit.tsx +1 -1
  1133. package/mobile/src/components/ApplicationLeadForm/renderInputs.tsx +1 -0
  1134. package/mobile/src/components/ApplicationLeadForm/useApplicationLeadApi.tsx +5 -23
  1135. package/mobile/src/components/CalculatorBonus/CalculatorBonus.tsx +1 -1
  1136. package/mobile/src/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.tsx +1 -1
  1137. package/mobile/src/components/CalculatorCredit/CalculatorCredit.tsx +13 -14
  1138. package/mobile/src/components/CalculatorDeposit/CalculatorDeposit.tsx +2 -2
  1139. package/mobile/src/components/CalculatorDeposit/renderDepositParamsForm.tsx +1 -1
  1140. package/mobile/src/components/CalculatorRefinancing/CalculatorRefinancing.tsx +1 -1
  1141. package/mobile/src/components/CardTransfer/CardTransfer.tsx +1 -1
  1142. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +37 -34
  1143. package/mobile/src/components/CarouselTariffsCard/carouselTariffsCardEventBus.ts +12 -0
  1144. package/mobile/src/components/CreditCardForm/CreditCardForm.tsx +2 -2
  1145. package/mobile/src/components/CreditCardForm/CreditCardFormContent.ts +1 -1
  1146. package/mobile/src/components/CreditCardForm/CreditCardFormStep.tsx +16 -4
  1147. package/mobile/src/components/CreditCardForm/renderInputs.tsx +4 -2
  1148. package/mobile/src/components/CreditCardForm/renderStep.tsx +1 -1
  1149. package/mobile/src/components/CreditCardForm/useCreditCardFormAPI.tsx +0 -20
  1150. package/mobile/src/components/CreditForm/CreditForm.tsx +3 -3
  1151. package/mobile/src/components/CreditForm/CreditFormStep.tsx +16 -4
  1152. package/mobile/src/components/CreditForm/renderInputs.tsx +1 -1
  1153. package/mobile/src/components/CreditForm/renderStep.tsx +1 -1
  1154. package/mobile/src/components/CreditForm/useCreditFormAPI.tsx +0 -20
  1155. package/mobile/src/components/Depository/Depository.tsx +1 -1
  1156. package/mobile/src/components/Depository/DepositoryFilter.tsx +1 -1
  1157. package/mobile/src/components/OfficesAtmsMap/OfficesAtmsMapLayout.tsx +1 -1
  1158. package/mobile/src/components/OfficesAtmsMap/renderFiltrationForm.tsx +1 -1
  1159. package/mobile/src/hooks/useAspects/handleAspects.ts +2 -2
  1160. package/mobile/src/hooks/useForm/FieldOptions.ts +8 -0
  1161. package/mobile/src/hooks/useForm/FormOptions.ts +18 -0
  1162. package/mobile/src/hooks/useForm/shallowCompare.ts +2 -0
  1163. package/mobile/src/hooks/useForm/useForm.ts +98 -0
  1164. package/mobile/src/hooks/useForm/useFormValidator.ts +24 -0
  1165. package/mobile/src/hooks/useForm/useNormalizedFormState.ts +37 -0
  1166. package/mobile/src/services/retail/external/types.ts +1 -1
  1167. package/mobile/src/services/retail/inputs.tsx +67 -70
  1168. package/mobile/src/ui-kit/BaseFiltration/FiltrationForm.tsx +1 -1
  1169. package/mobile/src/ui-kit/BaseFiltration/useFiltrationForm.ts +4 -4
  1170. package/mobile/src/ui-kit/Calculator/setDefaultParamsCalc.tsx +1 -1
  1171. package/mobile/src/ui-kit/CaptchaDialog/CaptchaDialog.tsx +8 -2
  1172. package/mobile/src/ui-kit/FormField/CustomFieldProps.ts +1 -1
  1173. package/mobile/src/ui-kit/FormField/Fields/AcquiringField.tsx +1 -3
  1174. package/mobile/src/ui-kit/FormField/Fields/AddressBranchField.tsx +1 -3
  1175. package/mobile/src/ui-kit/FormField/Fields/AddressFactField.tsx +1 -3
  1176. package/mobile/src/ui-kit/FormField/Fields/AddressField.tsx +1 -3
  1177. package/mobile/src/ui-kit/FormField/Fields/AddressMatchField.tsx +1 -3
  1178. package/mobile/src/ui-kit/FormField/Fields/AddressRetailField.tsx +4 -12
  1179. package/mobile/src/ui-kit/FormField/Fields/AmountField.tsx +2 -2
  1180. package/mobile/src/ui-kit/FormField/Fields/AnnualRevenueField.tsx +1 -6
  1181. package/mobile/src/ui-kit/FormField/Fields/ArmyIdFlgField.tsx +1 -6
  1182. package/mobile/src/ui-kit/FormField/Fields/BankEmployeeCodeField.tsx +1 -3
  1183. package/mobile/src/ui-kit/FormField/Fields/BankEmpoleeField.tsx +2 -2
  1184. package/mobile/src/ui-kit/FormField/Fields/BankruptcyFlgField.tsx +1 -3
  1185. package/mobile/src/ui-kit/FormField/Fields/BeginDateField.tsx +1 -3
  1186. package/mobile/src/ui-kit/FormField/Fields/BirthPlaceField.tsx +1 -3
  1187. package/mobile/src/ui-kit/FormField/Fields/BirthdayField.tsx +1 -6
  1188. package/mobile/src/ui-kit/FormField/Fields/ChildrenField.tsx +1 -3
  1189. package/mobile/src/ui-kit/FormField/Fields/CodeWordField.tsx +1 -7
  1190. package/mobile/src/ui-kit/FormField/Fields/CollectionCountField.tsx +1 -3
  1191. package/mobile/src/ui-kit/FormField/Fields/CommentField.tsx +1 -3
  1192. package/mobile/src/ui-kit/FormField/Fields/ConsentField.tsx +1 -3
  1193. package/mobile/src/ui-kit/FormField/Fields/CurrencyField.tsx +9 -17
  1194. package/mobile/src/ui-kit/FormField/Fields/DeliveryDateFiels.tsx +1 -6
  1195. package/mobile/src/ui-kit/FormField/Fields/DependentsField.tsx +1 -3
  1196. package/mobile/src/ui-kit/FormField/Fields/DesiredMeetingDateField.tsx +1 -10
  1197. package/mobile/src/ui-kit/FormField/Fields/DisablePeopleFlgField.tsx +1 -6
  1198. package/mobile/src/ui-kit/FormField/Fields/DulIssueDateField.tsx +2 -6
  1199. package/mobile/src/ui-kit/FormField/Fields/DulIssuedByField.tsx +2 -6
  1200. package/mobile/src/ui-kit/FormField/Fields/DulNumberField.tsx +2 -6
  1201. package/mobile/src/ui-kit/FormField/Fields/DulSerieField.tsx +2 -6
  1202. package/mobile/src/ui-kit/FormField/Fields/DulSubdivisionCodeField.tsx +2 -6
  1203. package/mobile/src/ui-kit/FormField/Fields/EmailField.tsx +1 -12
  1204. package/mobile/src/ui-kit/FormField/Fields/ExpensesField.tsx +1 -3
  1205. package/mobile/src/ui-kit/FormField/Fields/Experience5YearsField.tsx +2 -5
  1206. package/mobile/src/ui-kit/FormField/Fields/FamilyMembersField.tsx +4 -4
  1207. package/mobile/src/ui-kit/FormField/Fields/FeedbackMethodField.tsx +1 -3
  1208. package/mobile/src/ui-kit/FormField/Fields/FullNameField.tsx +1 -7
  1209. package/mobile/src/ui-kit/FormField/Fields/GeneralSeniorityField.tsx +1 -3
  1210. package/mobile/src/ui-kit/FormField/Fields/InnField.tsx +1 -3
  1211. package/mobile/src/ui-kit/FormField/Fields/IsClientField.tsx +5 -2
  1212. package/mobile/src/ui-kit/FormField/Fields/JobsNumberField.tsx +1 -3
  1213. package/mobile/src/ui-kit/FormField/Fields/LastJobExperienceField.tsx +1 -3
  1214. package/mobile/src/ui-kit/FormField/Fields/LegalEntityNameField.tsx +1 -3
  1215. package/mobile/src/ui-kit/FormField/Fields/LegalFormField.tsx +1 -3
  1216. package/mobile/src/ui-kit/FormField/Fields/LimitedBirthdayField.tsx +2 -6
  1217. package/mobile/src/ui-kit/FormField/Fields/LocalitiesField.tsx +8 -9
  1218. package/mobile/src/ui-kit/FormField/Fields/MandatoryPaymentsField.tsx +1 -3
  1219. package/mobile/src/ui-kit/FormField/Fields/MethodObtainField.tsx +1 -3
  1220. package/mobile/src/ui-kit/FormField/Fields/MiddleNameField.tsx +2 -6
  1221. package/mobile/src/ui-kit/FormField/Fields/NameField.tsx +1 -3
  1222. package/mobile/src/ui-kit/FormField/Fields/OnlineCheckoutField.tsx +2 -2
  1223. package/mobile/src/ui-kit/FormField/Fields/OrganizationNameField.tsx +1 -3
  1224. package/mobile/src/ui-kit/FormField/Fields/OtherIncomeField.tsx +1 -3
  1225. package/mobile/src/ui-kit/FormField/Fields/PartInBusinessField.tsx +2 -5
  1226. package/mobile/src/ui-kit/FormField/Fields/ParticipantDateRegistrationField.tsx +1 -10
  1227. package/mobile/src/ui-kit/FormField/Fields/PartnerCommentsField.tsx +8 -15
  1228. package/mobile/src/ui-kit/FormField/Fields/PaymentSystemField.tsx +18 -22
  1229. package/mobile/src/ui-kit/FormField/Fields/PhoneField.tsx +1 -3
  1230. package/mobile/src/ui-kit/FormField/Fields/ProductField.tsx +2 -4
  1231. package/mobile/src/ui-kit/FormField/Fields/RegionField.tsx +1 -4
  1232. package/mobile/src/ui-kit/FormField/Fields/RegionPremiumField.tsx +1 -3
  1233. package/mobile/src/ui-kit/FormField/Fields/RegionRetailField.tsx +1 -3
  1234. package/mobile/src/ui-kit/FormField/Fields/RetirementIncomeField.tsx +1 -3
  1235. package/mobile/src/ui-kit/FormField/Fields/ServiceDirectionField.tsx +1 -3
  1236. package/mobile/src/ui-kit/FormField/Fields/SexField.tsx +1 -3
  1237. package/mobile/src/ui-kit/FormField/Fields/ShareholderFlgField.tsx +1 -3
  1238. package/mobile/src/ui-kit/FormField/Fields/SnilsField.tsx +1 -8
  1239. package/mobile/src/ui-kit/FormField/Fields/SurnameField.tsx +1 -3
  1240. package/mobile/src/ui-kit/FormField/Fields/TotalIncomeField.tsx +1 -3
  1241. package/mobile/src/ui-kit/FormField/Fields/UltraPremiumField.tsx +1 -7
  1242. package/mobile/src/ui-kit/FormField/Fields/VedField.tsx +8 -10
  1243. package/mobile/src/ui-kit/FormField/Fields/WagesField.tsx +1 -3
  1244. package/mobile/src/ui-kit/FormField/Fields/consentToReceiveMaterialsField.tsx +1 -5
  1245. package/mobile/src/ui-kit/FormField/SelectField.tsx +1 -4
  1246. package/mobile/src/ui-kit/FormField/getField.tsx +29 -31
  1247. package/mobile/src/ui-kit/FormField/getObjectValidator.tsx +30 -5
  1248. package/mobile/src/ui-kit/FormField/isEsiaAuthorize.ts +1 -1
  1249. package/mobile/src/ui-kit/FormField/isRenderField.tsx +1 -1
  1250. package/mobile/src/ui-kit/FormField/updateOrganizationFields.ts +1 -1
  1251. package/mobile/src/ui-kit/RadioButtonGroup/RadioButtonGroup.tsx +2 -2
  1252. package/mobile/src/ui-kit/RadioButtonGroup/RadioButtonGroupControl.tsx +2 -6
  1253. package/mobile/src/ui-kit/ResponseTypeDialog/ResponseTypeDialog.tsx +25 -28
  1254. package/mobile/src/ui-kit/VerifyPhoneDialog/VerifyPhoneDialog.tsx +1 -1
  1255. package/mobile/src/utils/getRequiredLabel.ts +1 -0
  1256. package/mobile/src/validation/objectValidator.ts +6 -4
  1257. package/package.json +1 -1
  1258. package/src/EventBus/defaultEventBus.ts +1 -3
  1259. package/src/components/ApplicationForm/ApplicationForm.tsx +22 -42
  1260. package/src/components/ApplicationForm/renderAgreementSubmit.tsx +1 -1
  1261. package/src/components/ApplicationLeadForm/ApplicationLeadForm.tsx +12 -7
  1262. package/src/components/ApplicationLeadForm/GroupedConsents.tsx +5 -2
  1263. package/src/components/ApplicationLeadForm/renderAgreementSubmit.tsx +1 -1
  1264. package/src/components/ApplicationLeadForm/renderInputs.tsx +1 -0
  1265. package/src/components/ApplicationLeadForm/useApplicationLeadApi.tsx +5 -23
  1266. package/src/components/CalculatorBonus/CalculatorBonus.tsx +1 -1
  1267. package/src/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.tsx +1 -1
  1268. package/src/components/CalculatorCredit/CalculatorCredit.tsx +13 -14
  1269. package/src/components/CalculatorDeposit/CalculatorDeposit.tsx +2 -2
  1270. package/src/components/CalculatorDeposit/renderDepositParamsForm.tsx +1 -1
  1271. package/src/components/CalculatorRefinancing/CalculatorRefinancing.tsx +1 -1
  1272. package/src/components/CardTransfer/CardTransfer.tsx +1 -1
  1273. package/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +37 -34
  1274. package/src/components/CarouselTariffsCard/carouselTariffsCardEventBus.ts +12 -0
  1275. package/src/components/CreditCardForm/CreditCardForm.tsx +2 -2
  1276. package/src/components/CreditCardForm/CreditCardFormContent.ts +1 -1
  1277. package/src/components/CreditCardForm/CreditCardFormStep.tsx +16 -4
  1278. package/src/components/CreditCardForm/renderInputs.tsx +4 -2
  1279. package/src/components/CreditCardForm/renderStep.tsx +1 -1
  1280. package/src/components/CreditCardForm/useCreditCardFormAPI.tsx +0 -20
  1281. package/src/components/CreditForm/CreditForm.tsx +3 -3
  1282. package/src/components/CreditForm/CreditFormStep.tsx +16 -4
  1283. package/src/components/CreditForm/renderInputs.tsx +1 -1
  1284. package/src/components/CreditForm/renderStep.tsx +1 -1
  1285. package/src/components/CreditForm/useCreditFormAPI.tsx +0 -20
  1286. package/src/components/Depository/Depository.tsx +1 -1
  1287. package/src/components/Depository/DepositoryFilter.tsx +1 -1
  1288. package/src/components/OfficesAtmsMap/OfficesAtmsMapLayout.tsx +1 -1
  1289. package/src/components/OfficesAtmsMap/renderFiltrationForm.tsx +1 -1
  1290. package/src/hooks/useAspects/handleAspects.ts +2 -2
  1291. package/src/hooks/useForm/FieldOptions.ts +8 -0
  1292. package/src/hooks/useForm/FormOptions.ts +18 -0
  1293. package/src/hooks/useForm/shallowCompare.ts +2 -0
  1294. package/src/hooks/useForm/useForm.ts +98 -0
  1295. package/src/hooks/useForm/useFormValidator.ts +24 -0
  1296. package/src/hooks/useForm/useNormalizedFormState.ts +37 -0
  1297. package/src/services/retail/external/types.ts +1 -1
  1298. package/src/services/retail/inputs.tsx +67 -70
  1299. package/src/ui-kit/BaseFiltration/FiltrationForm.tsx +1 -1
  1300. package/src/ui-kit/BaseFiltration/useFiltrationForm.ts +4 -4
  1301. package/src/ui-kit/Calculator/setDefaultParamsCalc.tsx +1 -1
  1302. package/src/ui-kit/CaptchaDialog/CaptchaDialog.tsx +8 -2
  1303. package/src/ui-kit/FormField/CustomFieldProps.ts +1 -1
  1304. package/src/ui-kit/FormField/Fields/AcquiringField.tsx +1 -3
  1305. package/src/ui-kit/FormField/Fields/AddressBranchField.tsx +1 -3
  1306. package/src/ui-kit/FormField/Fields/AddressFactField.tsx +1 -3
  1307. package/src/ui-kit/FormField/Fields/AddressField.tsx +1 -3
  1308. package/src/ui-kit/FormField/Fields/AddressMatchField.tsx +1 -3
  1309. package/src/ui-kit/FormField/Fields/AddressRetailField.tsx +4 -12
  1310. package/src/ui-kit/FormField/Fields/AmountField.tsx +2 -2
  1311. package/src/ui-kit/FormField/Fields/AnnualRevenueField.tsx +1 -6
  1312. package/src/ui-kit/FormField/Fields/ArmyIdFlgField.tsx +1 -6
  1313. package/src/ui-kit/FormField/Fields/BankEmployeeCodeField.tsx +1 -3
  1314. package/src/ui-kit/FormField/Fields/BankEmpoleeField.tsx +2 -2
  1315. package/src/ui-kit/FormField/Fields/BankruptcyFlgField.tsx +1 -3
  1316. package/src/ui-kit/FormField/Fields/BeginDateField.tsx +1 -3
  1317. package/src/ui-kit/FormField/Fields/BirthPlaceField.tsx +1 -3
  1318. package/src/ui-kit/FormField/Fields/BirthdayField.tsx +1 -6
  1319. package/src/ui-kit/FormField/Fields/ChildrenField.tsx +1 -3
  1320. package/src/ui-kit/FormField/Fields/CodeWordField.tsx +1 -7
  1321. package/src/ui-kit/FormField/Fields/CollectionCountField.tsx +1 -3
  1322. package/src/ui-kit/FormField/Fields/CommentField.tsx +1 -3
  1323. package/src/ui-kit/FormField/Fields/ConsentField.tsx +1 -3
  1324. package/src/ui-kit/FormField/Fields/CurrencyField.tsx +9 -17
  1325. package/src/ui-kit/FormField/Fields/DeliveryDateFiels.tsx +1 -6
  1326. package/src/ui-kit/FormField/Fields/DependentsField.tsx +1 -3
  1327. package/src/ui-kit/FormField/Fields/DesiredMeetingDateField.tsx +1 -10
  1328. package/src/ui-kit/FormField/Fields/DisablePeopleFlgField.tsx +1 -6
  1329. package/src/ui-kit/FormField/Fields/DulIssueDateField.tsx +2 -6
  1330. package/src/ui-kit/FormField/Fields/DulIssuedByField.tsx +2 -6
  1331. package/src/ui-kit/FormField/Fields/DulNumberField.tsx +2 -6
  1332. package/src/ui-kit/FormField/Fields/DulSerieField.tsx +2 -6
  1333. package/src/ui-kit/FormField/Fields/DulSubdivisionCodeField.tsx +2 -6
  1334. package/src/ui-kit/FormField/Fields/EmailField.tsx +1 -12
  1335. package/src/ui-kit/FormField/Fields/ExpensesField.tsx +1 -3
  1336. package/src/ui-kit/FormField/Fields/Experience5YearsField.tsx +2 -5
  1337. package/src/ui-kit/FormField/Fields/FamilyMembersField.tsx +4 -4
  1338. package/src/ui-kit/FormField/Fields/FeedbackMethodField.tsx +1 -3
  1339. package/src/ui-kit/FormField/Fields/FullNameField.tsx +1 -7
  1340. package/src/ui-kit/FormField/Fields/GeneralSeniorityField.tsx +1 -3
  1341. package/src/ui-kit/FormField/Fields/InnField.tsx +1 -3
  1342. package/src/ui-kit/FormField/Fields/IsClientField.tsx +5 -2
  1343. package/src/ui-kit/FormField/Fields/JobsNumberField.tsx +1 -3
  1344. package/src/ui-kit/FormField/Fields/LastJobExperienceField.tsx +1 -3
  1345. package/src/ui-kit/FormField/Fields/LegalEntityNameField.tsx +1 -3
  1346. package/src/ui-kit/FormField/Fields/LegalFormField.tsx +1 -3
  1347. package/src/ui-kit/FormField/Fields/LimitedBirthdayField.tsx +2 -6
  1348. package/src/ui-kit/FormField/Fields/LocalitiesField.tsx +8 -9
  1349. package/src/ui-kit/FormField/Fields/MandatoryPaymentsField.tsx +1 -3
  1350. package/src/ui-kit/FormField/Fields/MethodObtainField.tsx +1 -3
  1351. package/src/ui-kit/FormField/Fields/MiddleNameField.tsx +2 -6
  1352. package/src/ui-kit/FormField/Fields/NameField.tsx +1 -3
  1353. package/src/ui-kit/FormField/Fields/OnlineCheckoutField.tsx +2 -2
  1354. package/src/ui-kit/FormField/Fields/OrganizationNameField.tsx +1 -3
  1355. package/src/ui-kit/FormField/Fields/OtherIncomeField.tsx +1 -3
  1356. package/src/ui-kit/FormField/Fields/PartInBusinessField.tsx +2 -5
  1357. package/src/ui-kit/FormField/Fields/ParticipantDateRegistrationField.tsx +1 -10
  1358. package/src/ui-kit/FormField/Fields/PartnerCommentsField.tsx +8 -15
  1359. package/src/ui-kit/FormField/Fields/PaymentSystemField.tsx +18 -22
  1360. package/src/ui-kit/FormField/Fields/PhoneField.tsx +1 -3
  1361. package/src/ui-kit/FormField/Fields/ProductField.tsx +2 -4
  1362. package/src/ui-kit/FormField/Fields/RegionField.tsx +1 -4
  1363. package/src/ui-kit/FormField/Fields/RegionPremiumField.tsx +1 -3
  1364. package/src/ui-kit/FormField/Fields/RegionRetailField.tsx +1 -3
  1365. package/src/ui-kit/FormField/Fields/RetirementIncomeField.tsx +1 -3
  1366. package/src/ui-kit/FormField/Fields/ServiceDirectionField.tsx +1 -3
  1367. package/src/ui-kit/FormField/Fields/SexField.tsx +1 -3
  1368. package/src/ui-kit/FormField/Fields/ShareholderFlgField.tsx +1 -3
  1369. package/src/ui-kit/FormField/Fields/SnilsField.tsx +1 -8
  1370. package/src/ui-kit/FormField/Fields/SurnameField.tsx +1 -3
  1371. package/src/ui-kit/FormField/Fields/TotalIncomeField.tsx +1 -3
  1372. package/src/ui-kit/FormField/Fields/UltraPremiumField.tsx +1 -7
  1373. package/src/ui-kit/FormField/Fields/VedField.tsx +8 -10
  1374. package/src/ui-kit/FormField/Fields/WagesField.tsx +1 -3
  1375. package/src/ui-kit/FormField/Fields/consentToReceiveMaterialsField.tsx +1 -5
  1376. package/src/ui-kit/FormField/SelectField.tsx +1 -4
  1377. package/src/ui-kit/FormField/getField.tsx +29 -31
  1378. package/src/ui-kit/FormField/getObjectValidator.tsx +30 -5
  1379. package/src/ui-kit/FormField/isEsiaAuthorize.ts +1 -1
  1380. package/src/ui-kit/FormField/isRenderField.tsx +1 -1
  1381. package/src/ui-kit/FormField/updateOrganizationFields.ts +1 -1
  1382. package/src/ui-kit/RadioButtonGroup/RadioButtonGroup.tsx +2 -2
  1383. package/src/ui-kit/RadioButtonGroup/RadioButtonGroupControl.tsx +2 -6
  1384. package/src/ui-kit/ResponseTypeDialog/ResponseTypeDialog.tsx +25 -28
  1385. package/src/ui-kit/VerifyPhoneDialog/VerifyPhoneDialog.tsx +1 -1
  1386. package/src/utils/getRequiredLabel.ts +1 -0
  1387. package/src/validation/objectValidator.ts +6 -4
  1388. package/bundle/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1389. package/bundle/hooks/useForm.d.ts +0 -23
  1390. package/bundle/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1391. package/bundle/ui-kit/FormField/getValidation.d.ts +0 -3
  1392. package/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1393. package/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  1394. package/dist/hooks/useForm.d.ts +0 -23
  1395. package/dist/hooks/useForm.js +0 -62
  1396. package/dist/hooks/useForm.js.map +0 -1
  1397. package/dist/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1398. package/dist/ui-kit/FormField/getNamesFromInput.js +0 -5
  1399. package/dist/ui-kit/FormField/getNamesFromInput.js.map +0 -1
  1400. package/dist/ui-kit/FormField/getValidation.d.ts +0 -3
  1401. package/dist/ui-kit/FormField/getValidation.js +0 -6
  1402. package/dist/ui-kit/FormField/getValidation.js.map +0 -1
  1403. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1404. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  1405. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  1406. package/lib/hooks/useForm.d.ts +0 -23
  1407. package/lib/hooks/useForm.js +0 -59
  1408. package/lib/hooks/useForm.js.map +0 -1
  1409. package/lib/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1410. package/lib/ui-kit/FormField/getNamesFromInput.js +0 -2
  1411. package/lib/ui-kit/FormField/getNamesFromInput.js.map +0 -1
  1412. package/lib/ui-kit/FormField/getValidation.d.ts +0 -3
  1413. package/lib/ui-kit/FormField/getValidation.js +0 -3
  1414. package/lib/ui-kit/FormField/getValidation.js.map +0 -1
  1415. package/mobile/bundle/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1416. package/mobile/bundle/hooks/useForm.d.ts +0 -23
  1417. package/mobile/bundle/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1418. package/mobile/bundle/ui-kit/FormField/getValidation.d.ts +0 -3
  1419. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1420. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  1421. package/mobile/dist/hooks/useForm.d.ts +0 -23
  1422. package/mobile/dist/hooks/useForm.js +0 -62
  1423. package/mobile/dist/hooks/useForm.js.map +0 -1
  1424. package/mobile/dist/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1425. package/mobile/dist/ui-kit/FormField/getNamesFromInput.js +0 -5
  1426. package/mobile/dist/ui-kit/FormField/getNamesFromInput.js.map +0 -1
  1427. package/mobile/dist/ui-kit/FormField/getValidation.d.ts +0 -3
  1428. package/mobile/dist/ui-kit/FormField/getValidation.js +0 -6
  1429. package/mobile/dist/ui-kit/FormField/getValidation.js.map +0 -1
  1430. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1431. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  1432. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  1433. package/mobile/lib/hooks/useForm.d.ts +0 -23
  1434. package/mobile/lib/hooks/useForm.js +0 -59
  1435. package/mobile/lib/hooks/useForm.js.map +0 -1
  1436. package/mobile/lib/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1437. package/mobile/lib/ui-kit/FormField/getNamesFromInput.js +0 -2
  1438. package/mobile/lib/ui-kit/FormField/getNamesFromInput.js.map +0 -1
  1439. package/mobile/lib/ui-kit/FormField/getValidation.d.ts +0 -3
  1440. package/mobile/lib/ui-kit/FormField/getValidation.js +0 -3
  1441. package/mobile/lib/ui-kit/FormField/getValidation.js.map +0 -1
  1442. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCardAction.ts +0 -6
  1443. package/mobile/src/hooks/useForm.ts +0 -120
  1444. package/mobile/src/ui-kit/FormField/getNamesFromInput.tsx +0 -4
  1445. package/mobile/src/ui-kit/FormField/getValidation.tsx +0 -6
  1446. package/src/components/CarouselTariffsCard/CarouselTariffsCardAction.ts +0 -6
  1447. package/src/hooks/useForm.ts +0 -120
  1448. package/src/ui-kit/FormField/getNamesFromInput.tsx +0 -4
  1449. package/src/ui-kit/FormField/getValidation.tsx +0 -6
@@ -1074,7 +1074,7 @@
1074
1074
  };
1075
1075
 
1076
1076
  const handleAspects = ({ aspectsAttributes, aspects, ev }) => {
1077
- for (const { aspectName, params } of aspectsAttributes) {
1077
+ for (const { aspectName, params } of aspectsAttributes ?? []) {
1078
1078
  aspects[aspectName ?? '']?.(ev, params);
1079
1079
  }
1080
1080
  };
@@ -1141,64 +1141,99 @@
1141
1141
  useAspects._impl = impl;
1142
1142
  };
1143
1143
 
1144
- const identity = (_) => _;
1144
+ function useBool(defaultValue = false) {
1145
+ const [value, setValue] = useState(defaultValue);
1146
+ const setTrue = useCallback(() => setValue(true), []);
1147
+ const setFalse = useCallback(() => setValue(false), []);
1148
+ const toggle = useCallback(() => setValue(_ => !_), []);
1149
+ return [value, { setValue, setTrue, setFalse, toggle }];
1150
+ }
1145
1151
 
1146
- // eslint-disable-next-line max-lines-per-function
1147
- const useForm = (initialState, { resetOnSubmit, onSubmit, normalize, } = {}) => {
1152
+ const objectValidator = (validatorsMap) => (o) => (o &&
1153
+ Object.entries(validatorsMap ?? {}).flatMap(([key, validator]) => validator ? validator(o[key]) : [])) ||
1154
+ [];
1155
+
1156
+ const isValidationSuccess = (info) => !info?.length;
1157
+ const validator = (predicate) => (message) => (_) => predicate(_) ? [] : [message];
1158
+
1159
+ const EMPTY_VALIDATORS_MAP = {};
1160
+ const NO_ERRORS = [];
1161
+ function useFormValidator(formState, formValidator) {
1162
+ const validatorsMap = useMemo(() => formValidator?.(formState) ?? EMPTY_VALIDATORS_MAP, [formValidator, formState]);
1163
+ const errors = useMemo(() => objectValidator(validatorsMap)(formState) ?? NO_ERRORS, [validatorsMap, formState]);
1164
+ const isValid = isValidationSuccess(errors);
1165
+ return [validatorsMap, { isValid, errors }];
1166
+ }
1167
+
1168
+ const shallowCompare = (a, b) => a && b && (a === b || Object.keys({ ...a, ...b }).every((key) => a[key] === b[key]));
1169
+
1170
+ function useNormalizedFormState(initialState, normalizer, onChange) {
1148
1171
  const [formState, setFormStateUnsafe] = useState(initialState);
1149
- const setFormState = useCallback(normalize
1150
- ? (_) => setFormStateUnsafe(_ instanceof Function
1151
- ? (prev) => {
1152
- const _normalize = normalize(_(prev));
1153
- return shellowCompare(prev, _normalize) ? prev : _normalize;
1154
- }
1155
- : normalize(_))
1156
- : setFormStateUnsafe, [normalize]);
1172
+ const setFormState = useCallback((_) => setFormStateUnsafe((prevState) => {
1173
+ const rawState = _ instanceof Function ? _(prevState) : _;
1174
+ const normalizedState = normalizer ? normalizer(rawState) : rawState;
1175
+ const hasChangedWithNormalization = !shallowCompare(rawState, normalizedState);
1176
+ const nextState = hasChangedWithNormalization ? normalizedState : rawState;
1177
+ const hasChanged = !shallowCompare(prevState, nextState);
1178
+ if (hasChanged) {
1179
+ onChange?.(nextState);
1180
+ }
1181
+ return nextState;
1182
+ }), [normalizer, onChange]);
1157
1183
  useEffect(() => {
1158
- if (normalize) {
1159
- setFormStateUnsafe(normalize);
1160
- }
1161
- }, [normalize]);
1162
- const [isDirtyForm, setDirtyForm] = useState(false);
1163
- const [dirtyFieldsMap, setDirtyFieldsMap] = useState({});
1164
- const field = useCallback((fieldName, options) => {
1165
- const { parse = identity, format = identity } = options || {};
1184
+ if (normalizer) {
1185
+ setFormStateUnsafe(normalizer);
1186
+ }
1187
+ }, [normalizer]);
1188
+ return [formState, setFormState];
1189
+ }
1190
+
1191
+ function useForm(initialState, { resetOnSubmit, formValidator, normalizer, onChange, onSubmit } = {}) {
1192
+ const [formState, setFormState] = useNormalizedFormState(initialState, normalizer, onChange);
1193
+ const [isDirtyForm, { setTrue: markAsDirty, setFalse: markAsClean }] = useBool(false);
1194
+ const dirtyFieldsMap = useRef({});
1195
+ const [fieldValidatorsMap, { isValid, errors }] = useFormValidator(formState, formValidator);
1196
+ const field = useCallback((fieldName, options = {}) => {
1197
+ const { parse, format, onChange: onFieldChange } = options;
1198
+ const value = formState[fieldName];
1199
+ const isDirty = isDirtyForm || dirtyFieldsMap.current?.[String(fieldName)];
1200
+ const fieldValidator = options?.validator ?? fieldValidatorsMap[fieldName];
1201
+ const fieldErrors = isDirty && fieldValidator ? fieldValidator(value) : [];
1166
1202
  return {
1167
- value: format(formState[fieldName]),
1168
- isDirty: isDirtyForm || dirtyFieldsMap[fieldName],
1169
- onChange: (value) => {
1170
- setFormState((prev) => ({ ...prev, [fieldName]: parse(value) }));
1171
- setDirtyFieldsMap((prev) => ({ ...prev, [fieldName]: true }));
1203
+ value: format ? format(value) : value,
1204
+ isDirty,
1205
+ errors: fieldValidator && fieldErrors,
1206
+ error: fieldErrors[0],
1207
+ onChange: (_) => {
1208
+ dirtyFieldsMap.current ||= {};
1209
+ dirtyFieldsMap.current[String(fieldName)] = true;
1210
+ const fieldVal = parse ? parse(_) : _;
1211
+ onFieldChange?.(fieldVal);
1212
+ setFormState((prev) => ({ ...prev, [fieldName]: fieldVal }));
1172
1213
  },
1173
1214
  };
1174
- }, [setFormState, isDirtyForm, dirtyFieldsMap]);
1215
+ }, [formState, isDirtyForm, fieldValidatorsMap, setFormState]);
1175
1216
  const update = useCallback((_) => {
1217
+ dirtyFieldsMap.current = _;
1176
1218
  setFormState(_);
1177
- setDirtyFieldsMap(_);
1178
- }, []);
1219
+ }, [setFormState]);
1179
1220
  const reset = useCallback(() => {
1221
+ dirtyFieldsMap.current = {};
1222
+ markAsClean();
1180
1223
  setFormState(initialState);
1181
- setDirtyForm(false);
1182
- setDirtyFieldsMap({});
1183
- }, [initialState]);
1224
+ }, [initialState, setFormState]);
1184
1225
  const handleSubmit = useCallback((ev) => {
1185
1226
  ev.preventDefault();
1186
- resetOnSubmit ? reset() : setDirtyForm(true);
1187
- onSubmit && onSubmit(formState, ev);
1188
- return formState;
1189
- }, [onSubmit, formState]);
1190
- return [
1191
- formState,
1192
- {
1193
- isDirty: isDirtyForm || Object.values(dirtyFieldsMap).some(Boolean),
1194
- field,
1195
- update,
1196
- reset,
1197
- onSubmit: handleSubmit,
1198
- },
1199
- ];
1200
- };
1201
- const shellowCompare = (a, b) => a && b && Object.keys({ ...a, ...b }).every((key) => a[key] === b[key]);
1227
+ if (isValid) {
1228
+ resetOnSubmit && reset();
1229
+ onSubmit?.(formState, ev);
1230
+ }
1231
+ else {
1232
+ markAsDirty();
1233
+ }
1234
+ }, [resetOnSubmit, formState, isValid, reset, onSubmit]);
1235
+ return [formState, { errors, field, update, reset, onSubmit: handleSubmit }];
1236
+ }
1202
1237
 
1203
1238
  const ApplicationFormLayout = JSX((props) => {
1204
1239
  const { className, title, children, ...rest } = props;
@@ -1219,14 +1254,6 @@
1219
1254
 
1220
1255
  const getConsentDataProcessing = (inputs) => inputs?.find((_) => _?.name === 'consentDataProcessing');
1221
1256
 
1222
- function useBool(defaultValue = false) {
1223
- const [value, setValue] = useState(defaultValue);
1224
- const setTrue = useCallback(() => setValue(true), []);
1225
- const setFalse = useCallback(() => setValue(false), []);
1226
- const toggle = useCallback(() => setValue(_ => !_), []);
1227
- return [value, { setValue, setTrue, setFalse, toggle }];
1228
- }
1229
-
1230
1257
  function useEventListener(target, type, listener, options) {
1231
1258
  useEffect(() => {
1232
1259
  if (!target || !listener) {
@@ -1250,6 +1277,7 @@
1250
1277
  return targetRef;
1251
1278
  }
1252
1279
 
1280
+ // TODO Базовая функицональность всех Control - надо вынести и привязать к required флагу
1253
1281
  const getRequiredLabel = ({ label, errors }) => label && errors ? `${label}*` : label;
1254
1282
 
1255
1283
  const noop = () => {
@@ -1550,182 +1578,6 @@
1550
1578
 
1551
1579
  const SelectControl = JSX(({ className = '', label, error, errors, ...rest }) => (jsxs("div", { className: className, children: [jsx(Select, { ...rest, valid: !error, label: getRequiredLabel({ label, errors }) }), renderErrorText(error)] })));
1552
1580
 
1553
- const getNamesFromInput = (inputs) => Object.values(inputs.filter((_) => _))?.map((_) => _.name);
1554
-
1555
- const isValidationSuccess = (info) => !info?.length;
1556
- const validator = (predicate) => (message) => (_) => predicate(_) ? [] : [message];
1557
-
1558
- const required = validator((_) => _ !== null && _ !== undefined && _ !== '');
1559
-
1560
- const ERROR_MESSAGE = 'Некорректно заполненное поле';
1561
- const ADDRESS_ERROR_MESSAGE = 'Укажите регион, город/населенный пункт, улицу, дом';
1562
- const MIN_AGE = 23;
1563
- const MAX_AGE = 75;
1564
- const AGE_ERROR_MESSAGE = 'Допустимый возраст заёмщика - от 23 до 75 лет';
1565
- const defaultValidator = (errorMsg) => required(errorMsg ?? ERROR_MESSAGE);
1566
- const defaultSelectValidator = (errorMsg) => validator((_) => _?.key && _?.key !== '')(errorMsg ?? ERROR_MESSAGE);
1567
- const jobNumberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 0 && _.length <= 2)(errorMsg ?? ERROR_MESSAGE);
1568
- const nameValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 1 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
1569
- const lengthStringValidator = (inputLength, errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 1 && _.length <= inputLength)(errorMsg ?? ERROR_MESSAGE);
1570
- const serieValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 4)(errorMsg);
1571
- const numberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 6)(errorMsg);
1572
- const innValidator = (errorMsg) => validator((_) => typeof _ === 'string' && (_.length === 10 || _.length === 12))(errorMsg);
1573
- const phoneValidate = (email) => /^(\+7)?[\s-]?\(?[0-9]{3}\)?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$/.test(email);
1574
- const phoneValidator = (errorMsg) => validator(phoneValidate)(errorMsg);
1575
- const agreementValidator = validator((_) => typeof _ === 'boolean' && _)('Согласие обязательно');
1576
- const snilsValidate = (snils) => {
1577
- const snl = String(snils).replace(/[^0-9]+/g, '');
1578
- if (snl.length === 11) {
1579
- let checksum = 0;
1580
- for (let i = 0; i < 9; i++) {
1581
- checksum += parseInt(snl.charAt(i)) * (9 - i);
1582
- }
1583
- if (checksum > 101) {
1584
- checksum = checksum % 101;
1585
- }
1586
- if (checksum === 100 || checksum === 101) {
1587
- checksum = 0;
1588
- }
1589
- return checksum === parseInt(snl.substr(9));
1590
- }
1591
- return false;
1592
- };
1593
- const snilsValidator = (errorMsg) => validator(snilsValidate)(errorMsg);
1594
- const emailValidate = (email) => /^[^\s@]+@[^\s@]+\.[a-zA-Z]{2,4}$/.test(email);
1595
- const emailValidator = (errorMsg) => validator((_) => emailValidate(_))(errorMsg);
1596
- const addressDaDataValidate = (address) => Boolean(address.region && address.city && address.house);
1597
- const addressDaDataValidator = () => validator(addressDaDataValidate)(ADDRESS_ERROR_MESSAGE);
1598
- const addressOrganizationValidator = () => validator((address) => Boolean(address.fiasCode && address.city && address.house))(ADDRESS_ERROR_MESSAGE);
1599
- const codeWordValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 3 && _.length <= 21 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
1600
- const cyrillicPattern = /^[\u0400-\u04FF\d\s]+$/u;
1601
- const isCyrillic = (_ = '') => cyrillicPattern.test(_);
1602
- const limitedBirthdayValidate = (date) => {
1603
- const today = new Date();
1604
- const minDate = new Date(today.getFullYear() - MIN_AGE, today.getMonth(), today.getDate());
1605
- const maxDate = new Date(today.getFullYear() - MAX_AGE, today.getMonth(), today.getDate());
1606
- if (!date || date > minDate || date < maxDate) {
1607
- return false;
1608
- }
1609
- return true;
1610
- };
1611
- const limitedBirthdayValidator = () => validator(limitedBirthdayValidate)(AGE_ERROR_MESSAGE);
1612
-
1613
- const validatorConsentsObj = {
1614
- processPersonalDataFlg: agreementValidator,
1615
- consentProviderFlg: agreementValidator,
1616
- consentInformFlg: agreementValidator,
1617
- consentPfrFlg: agreementValidator,
1618
- consentOthersFlg: agreementValidator,
1619
- };
1620
- const validatorCreditCardObj = {
1621
- addressCourier: addressDaDataValidator(),
1622
- paymentSystem: defaultValidator('Укажите тип платежной системы'),
1623
- currency: defaultValidator('Укажите валюту'),
1624
- cardCategory: defaultValidator('Укажите категорию карты'),
1625
- codeWord: codeWordValidator('Необходимо ввести кодовое слово'),
1626
- confirmationIncome: defaultSelectValidator(),
1627
- methodObtain: defaultValidator(),
1628
- deliveryDate: defaultValidator('Укажите дату доставки'),
1629
- };
1630
- const validatorRetailObj = {
1631
- organization: defaultSelectValidator('Выберите тип организации'),
1632
- organizationAddress: addressOrganizationValidator(),
1633
- organizationPhone: phoneValidator('Укажите номер телефона'),
1634
- organizationName: defaultValidator('Укажите наименование организации'),
1635
- legalForm: defaultValidator('Укажите ОПФ'),
1636
- generalSeniority: jobNumberValidator('Укажите количество лет стажа'),
1637
- lastJobExperience: jobNumberValidator('Укажите стаж на последнем месте работы'),
1638
- experience5Years: jobNumberValidator('Укажите общий стаж за последние 5 лет'),
1639
- jobsNumber: jobNumberValidator('Укажите количество мест работы за последние 5 лет'),
1640
- beginDate: defaultValidator('Укажите дату заключения трудового договора'),
1641
- addressFact: addressDaDataValidator(),
1642
- addressRegistration: addressDaDataValidator(),
1643
- addressRetail: defaultSelectValidator('Выберите адрес банка'),
1644
- addressMatch: defaultValidator(),
1645
- sex: defaultValidator('Укажите свой пол'),
1646
- limitedBirthday: limitedBirthdayValidator(),
1647
- birthPlace: defaultValidator('Укажите место рождения'),
1648
- education: defaultSelectValidator('Выберите ваше образование'),
1649
- housing: defaultSelectValidator('Выберите тип жилья'),
1650
- amountWorkers: defaultSelectValidator('Выберите информацию о количестве сотрудников'),
1651
- employment: defaultSelectValidator('Выберите информацию о трудоустройстве'),
1652
- employerActivities: defaultSelectValidator('Выберите вид деятельности организации'),
1653
- employerOrganization: defaultSelectValidator('Выберите вид организации'),
1654
- positionOrganization: defaultSelectValidator('Выберите вашу должность'),
1655
- familyStatus: defaultSelectValidator('Выберите семейное положение'),
1656
- familyMembers: lengthStringValidator(2, 'Укажите количество членов семьи'),
1657
- children: lengthStringValidator(2, 'Укажите количество детей'),
1658
- dependents: lengthStringValidator(2, 'Укажите количество иждивенцев'),
1659
- totalIncome: lengthStringValidator(19, 'Укажите среднемесячный доход от основной зарплаты'),
1660
- expenses: lengthStringValidator(10, 'Укажите сумму обязательных выплат'),
1661
- snils: snilsValidator('Некорректный номер СНИЛС'),
1662
- conscription: defaultValidator(),
1663
- armyIdFlg: agreementValidator,
1664
- dulSerie: serieValidator('Укажите серию паспорта'),
1665
- dulNumber: numberValidator('Укажите номер паспорта'),
1666
- dulIssueDateField: defaultValidator('Укажите дату выдачи паспорта'),
1667
- dulSubdivisionCode: numberValidator('Укажите код подразделения'),
1668
- dulIssuedBy: defaultValidator('Укажите организацию, выдавшую паспорт'),
1669
- participantDateRegistration: defaultValidator('Укажите дату регистрации'),
1670
- retirementIncome: defaultValidator(),
1671
- otherIncome: defaultValidator(),
1672
- wages: defaultValidator(),
1673
- mandatoryPayments: defaultValidator(),
1674
- disablePeopleFlg: defaultValidator(),
1675
- bankruptcyFlg: defaultValidator(),
1676
- shareholderFlg: defaultValidator(),
1677
- legalEntityName: defaultValidator(),
1678
- bankEmployeeCode: defaultValidator(),
1679
- partInBusiness: defaultValidator(),
1680
- regionRetail: defaultSelectValidator('Выберите регион'),
1681
- };
1682
- const validatorObj = {
1683
- fullName: defaultValidator(),
1684
- addressBranch: defaultSelectValidator(),
1685
- desiredMeetingDate: defaultValidator(),
1686
- product: defaultValidator(),
1687
- localities: defaultValidator(),
1688
- partnerComments: defaultValidator(),
1689
- collectionCount: defaultValidator(),
1690
- acquiringType: defaultSelectValidator(),
1691
- serviceType: defaultSelectValidator(),
1692
- annualRevenue: defaultValidator(),
1693
- feedbackMethod: defaultSelectValidator(),
1694
- serviceDirection: defaultSelectValidator(),
1695
- secondaryPhone: phoneValidator('Укажите номер телефона'),
1696
- region: defaultSelectValidator(),
1697
- surname: nameValidator('Укажите свою фамилию'),
1698
- name: nameValidator('Укажите своё имя'),
1699
- middleName: nameValidator('Укажите своё отчество'),
1700
- birthday: defaultValidator('Укажите дату рождения'),
1701
- phone: phoneValidator('Укажите номер телефона'),
1702
- email: emailValidator('Укажите электронную почту'),
1703
- inn: innValidator('Укажите ИНН'),
1704
- comment: defaultValidator(),
1705
- typeForm: defaultValidator(),
1706
- consentToReceiveMaterials: agreementValidator,
1707
- consentDataProcessing: agreementValidator,
1708
- ...validatorConsentsObj,
1709
- ...validatorRetailObj,
1710
- ...validatorCreditCardObj,
1711
- };
1712
- const getObjectValidator = (inputs) => {
1713
- const requiredInputs = getNamesFromInput(inputs.filter((_) => Boolean(_?.required)));
1714
- return Object.fromEntries(requiredInputs.map((_) => [_, validatorObj?.[_ || '']]).filter(([, validator]) => validator));
1715
- };
1716
-
1717
- const withValidator = (props, validator) => {
1718
- const { value, isDirty } = props;
1719
- const errors = isDirty ? validator(value) : [];
1720
- return {
1721
- ...props,
1722
- errors,
1723
- error: errors[0],
1724
- };
1725
- };
1726
-
1727
- const getValidation = (field, validator, required = false) => required && validator ? withValidator(field, validator) : field;
1728
-
1729
1581
  const ACQUIRING_TYPES = [
1730
1582
  {
1731
1583
  text: 'Торговый эквайринг',
@@ -1744,7 +1596,7 @@
1744
1596
  key: 'all',
1745
1597
  },
1746
1598
  ];
1747
- const AcquiringField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0412\u0438\u0434 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433\u0430", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433", options: ACQUIRING_TYPES, ...getValidation(field('acquiringType'), validatorObj.acquiringType, input?.required) })));
1599
+ const AcquiringField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0412\u0438\u0434 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433\u0430", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433", options: ACQUIRING_TYPES, ...field(input?.name ?? '') })));
1748
1600
  const isAcquiringTrade = (key = '') => Boolean(key === 'trade' || key === 'all');
1749
1601
 
1750
1602
  const isFilled = (_) => _ !== null && _ !== undefined;
@@ -1849,7 +1701,7 @@
1849
1701
  return (jsx(SelectControl, { label: "\u041E\u0442\u0434\u0435\u043B\u0435\u043D\u0438\u0435", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043E\u0442\u0434\u0435\u043B\u0435\u043D\u0438\u0435", options: (addressBranch || []).map(({ address = '' }) => ({
1850
1702
  key: address,
1851
1703
  text: address,
1852
- })), ...getValidation(field('addressBranch'), validatorObj.addressBranch, input?.required), isSearch: true }));
1704
+ })), ...field(input?.name ?? ''), isSearch: true }));
1853
1705
  });
1854
1706
 
1855
1707
  const useNormalizedInput = (props, { normalize, format }) => {
@@ -1913,11 +1765,11 @@
1913
1765
  const MIN_CREDIT_AMOUNT = 1000;
1914
1766
  const MAX_CREDIT_AMOUNT = 1000000000;
1915
1767
  const ITEMS_CREDIT_AMOUNT = ['От 1 000 ₽', 'До 1 000 000 000 ₽'];
1916
- const AmountField = JSX(({ field }) => (jsx(InputRange, { title: "\u0421\u0443\u043C\u043C\u0430, \u20BD", items: ITEMS_CREDIT_AMOUNT, min: MIN_CREDIT_AMOUNT, max: MAX_CREDIT_AMOUNT, ...field('amount') })));
1768
+ const AmountField = JSX(({ field, input }) => (jsx(InputRange, { title: "\u0421\u0443\u043C\u043C\u0430, \u20BD", items: ITEMS_CREDIT_AMOUNT, min: MIN_CREDIT_AMOUNT, max: MAX_CREDIT_AMOUNT, ...field(input?.name ?? '') })));
1917
1769
 
1918
- const AnnualRevenueField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0413\u043E\u0434\u043E\u0432\u0430\u044F \u0432\u044B\u0440\u0443\u0447\u043A\u0430, \u20BD", ...getValidation(field('annualRevenue'), validatorObj.annualRevenue, input?.required) })));
1770
+ const AnnualRevenueField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0413\u043E\u0434\u043E\u0432\u0430\u044F \u0432\u044B\u0440\u0443\u0447\u043A\u0430, \u20BD", ...field(input?.name ?? '') })));
1919
1771
 
1920
- const BankEmpoleeField = JSX(({ field }) => (jsx(InputControl, { label: "\u0424\u0418\u041E \u0438\u043B\u0438 \u0434\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u0432\u0448\u0435\u0433\u043E \u0412\u0430\u0441 \u0441\u043E\u0442\u0440\u0443\u0434\u043D\u0438\u043A\u0430 \u0411\u0430\u043D\u043A\u0430", ...field('bankEmpolee') })));
1772
+ const BankEmpoleeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0418\u041E \u0438\u043B\u0438 \u0434\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u0432\u0448\u0435\u0433\u043E \u0412\u0430\u0441 \u0441\u043E\u0442\u0440\u0443\u0434\u043D\u0438\u043A\u0430 \u0411\u0430\u043D\u043A\u0430", ...field(input?.name ?? '') })));
1921
1773
 
1922
1774
  const useElementSpace = (ref, heightEl) => {
1923
1775
  const [spaceAbove, setSpaceAbove] = useState(false);
@@ -2210,11 +2062,11 @@
2210
2062
 
2211
2063
  const DatePickerControl = JSX(({ className, label, error, errors, ...rest }) => (jsxs("div", { className: style('shrink-0 w-full', className), children: [jsx(DatePicker, { label: getRequiredLabel({ label, errors }), valid: Boolean(!error), ...rest }), renderErrorText(error)] })));
2212
2064
 
2213
- const BirthdayField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...getValidation(field('birthday'), validatorObj.birthday, input?.required) })));
2065
+ const BirthdayField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...field(input?.name ?? '') })));
2214
2066
 
2215
- const CollectionCountField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u0438\u043D\u043A\u0430\u0441\u0441\u0430\u0446\u0438\u0438", isInteger: true, ...getValidation(field('collectionCount'), validatorObj.collectionCount, input?.required) })));
2067
+ const CollectionCountField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u0438\u043D\u043A\u0430\u0441\u0441\u0430\u0446\u0438\u0438", isInteger: true, ...field(input?.name ?? '') })));
2216
2068
 
2217
- const CommentField = JSX(({ field, input }) => (jsx(InputControl, { className: "col-span-2", ...getValidation(field('comment'), validatorObj.comment, input?.required), placeholder: "\u0412\u0430\u0448\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435", isTextarea: true })));
2069
+ const CommentField = JSX(({ field, input }) => (jsx(InputControl, { className: "col-span-2", ...field(input?.name ?? ''), placeholder: "\u0412\u0430\u0448\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435", isTextarea: true })));
2218
2070
 
2219
2071
  const SVG = JSX(({ className, viewBox, fill = 'none', width, height, paths, ...commonOptions }) => {
2220
2072
  return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: className, viewBox: viewBox, fill: fill, width: width, height: height, children: paths.map(({ d, fill: pathFill, ...options }, i) => {
@@ -2249,14 +2101,12 @@
2249
2101
  const role = (isRadio = false) => (isRadio ? 'radio' : 'checkbox');
2250
2102
  const checkboxStyle = (value = false) => style('rounded border', { 'bg-primary-main': value });
2251
2103
 
2252
- const FIELD_NAME$c = 'consentToReceiveMaterials';
2253
- const ConsentToReceiveMaterialsField = JSX(({ field, input }) => (jsx(Checkbox, { text: "\u0421\u043E\u0433\u043B\u0430\u0441\u0435\u043D \u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445 \u0438 \u0430\u043D\u0430\u043B\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u043E\u0432 \u043F\u043E \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u0435", ...getValidation(field(FIELD_NAME$c), validatorObj[FIELD_NAME$c], input?.required) })));
2104
+ const ConsentToReceiveMaterialsField = JSX(({ field, input }) => (jsx(Checkbox, { text: "\u0421\u043E\u0433\u043B\u0430\u0441\u0435\u043D \u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445 \u0438 \u0430\u043D\u0430\u043B\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u043E\u0432 \u043F\u043E \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u0435", ...field(input?.name ?? '') })));
2254
2105
 
2255
- const DesiredMeetingDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u0434\u0430\u0442\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438", ...getValidation(field('desiredMeetingDate'), validatorObj.desiredMeetingDate, input?.required) })));
2106
+ const DesiredMeetingDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u0434\u0430\u0442\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438", ...field(input?.name ?? '') })));
2256
2107
 
2257
2108
  const EmailField = JSX(({ field, input }) => {
2258
- const { required, ...rest } = input;
2259
- return (jsx(InputControl, { label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...getValidation(field('email'), validatorObj.email, required), ...rest }));
2109
+ return jsx(InputControl, { label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...field(input?.name ?? ''), ...input });
2260
2110
  });
2261
2111
 
2262
2112
  const SERVICE_TYPES = [{ key: 'ULTRASERVICE', text: 'Ультра' }];
@@ -2269,9 +2119,9 @@
2269
2119
  { key: 'email', text: 'Электронное сообщение' },
2270
2120
  ];
2271
2121
 
2272
- const FeedbackMethodField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0421\u043F\u043E\u0441\u043E\u0431 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043E\u0442\u0432\u0435\u0442\u0430", options: FEEDBACK_METHOD, ...getValidation(field('feedbackMethod'), validatorObj.feedbackMethod, input?.required) })));
2122
+ const FeedbackMethodField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0421\u043F\u043E\u0441\u043E\u0431 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043E\u0442\u0432\u0435\u0442\u0430", options: FEEDBACK_METHOD, ...field(input?.name ?? '') })));
2273
2123
 
2274
- const FullNameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0418\u041E", ...getValidation(field('fullName'), validatorObj.fullName, input?.required), ...input })));
2124
+ const FullNameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0418\u041E", ...field(input?.name ?? ''), ...input })));
2275
2125
 
2276
2126
  function copy(source, target) {
2277
2127
  for (const [k, v] of source.entries()) {
@@ -2549,7 +2399,7 @@
2549
2399
  qcHouse: '',
2550
2400
  });
2551
2401
  }, []);
2552
- return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, fieldName), label: "\u0410\u0434\u0440\u0435\u0441", ...getValidation(field(fieldName), validatorObj[fieldName], input?.required), value: fieldValue?.fullAddress, onChange: onChange, ...input, onDaDataChange: onDaDataChange }));
2402
+ return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, fieldName), label: "\u0410\u0434\u0440\u0435\u0441", ...field(fieldName), value: fieldValue?.fullAddress, onChange: onChange, ...input, onDaDataChange: onDaDataChange }));
2553
2403
  });
2554
2404
  const getAddressFromDaDataItem = (item) => ({
2555
2405
  apartment: item?.data?.flat,
@@ -2595,12 +2445,12 @@
2595
2445
  field?.('organizationName')?.onChange?.(item.data?.name?.short_with_opf);
2596
2446
  updateOrganizationFields(store, field, item);
2597
2447
  }, []);
2598
- return (jsx(InputControl, { label: "\u0418\u041D\u041D", isInteger: true, maxLength: 12, ...input, ...getValidation(field('inn'), validatorObj.inn, input?.required), onDaDataChange: onDaDataChange }));
2448
+ return (jsx(InputControl, { label: "\u0418\u041D\u041D", isInteger: true, maxLength: 12, ...input, ...field(input?.name ?? ''), onDaDataChange: onDaDataChange }));
2599
2449
  });
2600
2450
 
2601
2451
  const CheckboxWithError = JSX(({ className, text, value, key, disabled, error, onChange }) => (jsxs("div", { className: style('shrink-0', className), children: [jsx(Checkbox, { text: text, value: value, disabled: disabled, onChange: onChange }, key), renderErrorText(error)] })));
2602
2452
 
2603
- const IsClientField = JSX(({ field }) => (jsx(CheckboxWithError, { ...field('isClient'), text: '\u042F\u0432\u043B\u044F\u044E\u0441\u044C \u043A\u043B\u0438\u0435\u043D\u0442\u043E\u043C \u0431\u0430\u043D\u043A\u0430 \u0410\u041E "\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A"' })));
2453
+ const IsClientField = JSX(({ field, input }) => (jsx(CheckboxWithError, { ...field(input?.name ?? ''), text: '\u042F\u0432\u043B\u044F\u044E\u0441\u044C \u043A\u043B\u0438\u0435\u043D\u0442\u043E\u043C \u0431\u0430\u043D\u043A\u0430 \u0410\u041E "\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A"' })));
2604
2454
 
2605
2455
  const OUT_SERVICE_BASE_URL = `${API_BASE_URI}/outservice`;
2606
2456
  const EMPTY_REGIONS$1 = [];
@@ -2613,30 +2463,24 @@
2613
2463
  const fieldRegion = field('region');
2614
2464
  const regionKey = fieldRegion?.value?.key;
2615
2465
  const { data: regions } = useAsyncData('outServiceRegions', getOutServiceRegions);
2616
- const localities = regions
2617
- ?.find((_) => _.code === regionKey)
2618
- ?.localities?.map((_) => ({ key: _, text: _ }));
2466
+ const localities = useMemo(() => regions?.find((_) => _.code === regionKey)?.localities?.map((_) => ({ key: _, text: _ })), [regions, regionKey]);
2619
2467
  useEffect(() => {
2620
2468
  if (regionKey !== '') {
2621
- field?.('localities')?.onChange?.('');
2469
+ field?.(input?.name ?? '')?.onChange?.('');
2622
2470
  }
2623
- }, [regionKey]);
2624
- return (jsx(SelectControl, { label: "\u041D\u0430\u0441\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u043F\u0443\u043D\u043A\u0442", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0433\u043E\u0440\u043E\u0434, \u0433\u0434\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0441\u0435\u0440\u0432\u0438\u0441", options: localities, ...getValidation(field('localities'), validatorObj.localities, input?.required), isSearch: true }));
2471
+ }, [regionKey, input?.name ?? '']);
2472
+ return (jsx(SelectControl, { label: "\u041D\u0430\u0441\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u043F\u0443\u043D\u043A\u0442", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0433\u043E\u0440\u043E\u0434, \u0433\u0434\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0441\u0435\u0440\u0432\u0438\u0441", options: localities, ...field(input?.name ?? ''), isSearch: true }));
2625
2473
  });
2626
2474
 
2627
- const FIELD_NAME$b = 'middleName';
2628
- const MiddleNameField = JSX(({ field, input }) => (jsx(InputControl, { 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, FIELD_NAME$b), ...getValidation(field(FIELD_NAME$b), validatorObj.middleName, input?.required), ...input })));
2475
+ const MiddleNameField = JSX(({ field, input }) => (jsx(InputControl, { 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 })));
2629
2476
 
2630
- const NameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0418\u043C\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), ...getValidation(field('name'), validatorObj.name, input?.required), ...input })));
2477
+ const NameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0418\u043C\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), ...field(input?.name ?? ''), ...input })));
2631
2478
 
2632
2479
  const SlideCheckbox = JSX(({ value = false, text, type = 'checkbox', onChange }) => (jsxs("div", { role: type, "aria-checked": value, className: "flex justify-start items-center w-full cursor-pointer mb-s", onClick: () => onChange && onChange(!value), children: [jsx("div", { className: style('relative flex-shrink-0 duration-300 w-9 h-5 mr-s rounded-2xl', value ? 'bg-primary-main' : 'bg-main-divider'), children: jsx("div", { className: style('absolute opacity-80 duration-500 top-0.5 w-4 h-4 bg-white rounded-full', value ? 'left-1/2' : 'left-[5%]') }) }), text ? (jsx(Text, { size: "text-l", font: "font-light", color: "text-primary-text", children: text })) : null] })));
2633
2480
 
2634
- const OnlineCheckoutField = JSX(({ field }) => isAcquiringTrade(field('acquiringType')?.value?.key) ? (jsx(SlideCheckbox, { type: "radio", text: "\u0425\u043E\u0447\u0443 \u043E\u043D\u043B\u0430\u0439\u043D-\u043A\u0430\u0441\u0441\u0443", ...field('onlineCheckout') })) : null);
2481
+ const OnlineCheckoutField = JSX(({ field, input }) => isAcquiringTrade(field('acquiringType')?.value?.key) ? (jsx(SlideCheckbox, { type: "radio", text: "\u0425\u043E\u0447\u0443 \u043E\u043D\u043B\u0430\u0439\u043D-\u043A\u0430\u0441\u0441\u0443", ...field(input?.name ?? '') })) : null);
2635
2482
 
2636
- const PartnerCommentsField = JSX(({ field, input }) => {
2637
- const { required, ...rest } = input;
2638
- return (jsx(InputControl, { ...getValidation(field('partnerComments'), validatorObj.partnerComments, required), placeholder: "\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u0443\u044E\u0449\u0438\u0439 \u0432\u0430\u0441 \u0432\u043E\u043F\u0440\u043E\u0441", isTextarea: true, ...rest }));
2639
- });
2483
+ const PartnerCommentsField = JSX(({ field, input }) => (jsx(InputControl, { ...field(input?.name ?? ''), placeholder: "\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u0443\u044E\u0449\u0438\u0439 \u0432\u0430\u0441 \u0432\u043E\u043F\u0440\u043E\u0441", isTextarea: true, ...input })));
2640
2484
 
2641
2485
  const isPlaceholder = (_) => _ === '_';
2642
2486
  const isDigit = (_) => /\d/.test(_);
@@ -2666,12 +2510,12 @@
2666
2510
 
2667
2511
  const PhoneField = JSX(({ field, input }) => {
2668
2512
  const fieldName = input?.name || 'phone';
2669
- return (jsx(InputPhoneControl, { label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...getValidation(field(fieldName), validatorObj.phone, input?.required), disabled: input?.filledByEsia && isEsiaAuthorize(field, fieldName), ...input }));
2513
+ return (jsx(InputPhoneControl, { label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...field(fieldName), disabled: input?.filledByEsia && isEsiaAuthorize(field, fieldName), ...input }));
2670
2514
  });
2671
2515
 
2672
2516
  const PosTerminalField = JSX(({ field }) => isAcquiringTrade(field('acquiringType')?.value?.key) ? (jsx(SlideCheckbox, { type: "radio", text: "\u0425\u043E\u0447\u0443 POS-\u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B", ...field('posTerminal') })) : null);
2673
2517
 
2674
- const ProductField = JSX(({ field, source }) => (jsx(SelectControl, { placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u0440\u043E\u0434\u0443\u043A\u0442", label: "\u041F\u0440\u043E\u0434\u0443\u043A\u0442", options: arrayToOptions(source?.productList), ...withValidator(field('product'), validatorObj.product) })));
2518
+ const ProductField = JSX(({ field, input, source }) => (jsx(SelectControl, { placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u0440\u043E\u0434\u0443\u043A\u0442", label: "\u041F\u0440\u043E\u0434\u0443\u043A\u0442", options: arrayToOptions(source?.productList), ...field(input?.name ?? '') })));
2675
2519
  const arrayToOptions = (array) => (array ?? []).map((_) => ({ key: _, value: _ }));
2676
2520
 
2677
2521
  const REGIONS_URL = `${API_BASE_URI}/regions`;
@@ -2688,7 +2532,7 @@
2688
2532
  const RegionField = JSX(({ field, input, params }) => {
2689
2533
  const url = getRegionUrl(params?.typeForm);
2690
2534
  const regions = useRegions(url);
2691
- return (jsx(SelectControl, { label: "\u0424\u0438\u043B\u0438\u0430\u043B", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0438\u043B\u0438\u0430\u043B", isSearch: true, options: useMemo(() => regions?.map(({ code = '', name = '' }) => ({ key: code, text: name })), [regions]), ...getValidation(field('region'), validatorObj.region, input?.required) }));
2535
+ return (jsx(SelectControl, { label: "\u0424\u0438\u043B\u0438\u0430\u043B", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0438\u043B\u0438\u0430\u043B", isSearch: true, options: useMemo(() => regions?.map(({ code = '', name = '' }) => ({ key: code, text: name })), [regions]), ...field(input?.name ?? '') }));
2692
2536
  });
2693
2537
 
2694
2538
  const RegionPremiumField = JSX(({ field, input }) => {
@@ -2697,9 +2541,191 @@
2697
2541
  key: region,
2698
2542
  text: region,
2699
2543
  })), [branchByRegions]);
2700
- return (jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", options: regions, ...getValidation(field('region'), validatorObj.region, input?.required) }));
2544
+ return (jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", options: regions, ...field(input?.name ?? '') }));
2701
2545
  });
2702
2546
 
2547
+ const withValidator = (props, validator) => {
2548
+ const { value, isDirty } = props;
2549
+ const errors = isDirty ? validator(value) : [];
2550
+ return {
2551
+ ...props,
2552
+ errors,
2553
+ error: errors[0],
2554
+ };
2555
+ };
2556
+
2557
+ const required = validator((_) => _ !== null && _ !== undefined && _ !== '');
2558
+
2559
+ const ERROR_MESSAGE = 'Некорректно заполненное поле';
2560
+ const ADDRESS_ERROR_MESSAGE = 'Укажите регион, город/населенный пункт, улицу, дом';
2561
+ const MIN_AGE = 23;
2562
+ const MAX_AGE = 75;
2563
+ const AGE_ERROR_MESSAGE = 'Допустимый возраст заёмщика - от 23 до 75 лет';
2564
+ const defaultValidator = (errorMsg) => required(errorMsg ?? ERROR_MESSAGE);
2565
+ const defaultSelectValidator = (errorMsg) => validator((_) => _?.key && _?.key !== '')(errorMsg ?? ERROR_MESSAGE);
2566
+ const jobNumberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 0 && _.length <= 2)(errorMsg ?? ERROR_MESSAGE);
2567
+ const nameValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 1 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
2568
+ const lengthStringValidator = (inputLength, errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 1 && _.length <= inputLength)(errorMsg ?? ERROR_MESSAGE);
2569
+ const serieValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 4)(errorMsg);
2570
+ const numberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 6)(errorMsg);
2571
+ const innValidator = (errorMsg) => validator((_) => typeof _ === 'string' && (_.length === 10 || _.length === 12))(errorMsg);
2572
+ const phoneValidate = (email) => /^(\+7)?[\s-]?\(?[0-9]{3}\)?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$/.test(email);
2573
+ const phoneValidator = (errorMsg) => validator(phoneValidate)(errorMsg);
2574
+ const agreementValidator = validator((_) => typeof _ === 'boolean' && _)('Согласие обязательно');
2575
+ const snilsValidate = (snils) => {
2576
+ const snl = String(snils).replace(/[^0-9]+/g, '');
2577
+ if (snl.length === 11) {
2578
+ let checksum = 0;
2579
+ for (let i = 0; i < 9; i++) {
2580
+ checksum += parseInt(snl.charAt(i)) * (9 - i);
2581
+ }
2582
+ if (checksum > 101) {
2583
+ checksum = checksum % 101;
2584
+ }
2585
+ if (checksum === 100 || checksum === 101) {
2586
+ checksum = 0;
2587
+ }
2588
+ return checksum === parseInt(snl.substr(9));
2589
+ }
2590
+ return false;
2591
+ };
2592
+ const snilsValidator = (errorMsg) => validator(snilsValidate)(errorMsg);
2593
+ const emailValidate = (email) => /^[^\s@]+@[^\s@]+\.[a-zA-Z]{2,4}$/.test(email);
2594
+ const emailValidator = (errorMsg) => validator((_) => emailValidate(_))(errorMsg);
2595
+ const addressDaDataValidate = (address) => Boolean(address.region && address.city && address.house);
2596
+ const addressDaDataValidator = () => validator(addressDaDataValidate)(ADDRESS_ERROR_MESSAGE);
2597
+ const addressOrganizationValidator = () => validator((address) => Boolean(address.fiasCode && address.city && address.house))(ADDRESS_ERROR_MESSAGE);
2598
+ const codeWordValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 3 && _.length <= 21 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
2599
+ const cyrillicPattern = /^[\u0400-\u04FF\d\s]+$/u;
2600
+ const isCyrillic = (_ = '') => cyrillicPattern.test(_);
2601
+ const limitedBirthdayValidate = (date) => {
2602
+ const today = new Date();
2603
+ const minDate = new Date(today.getFullYear() - MIN_AGE, today.getMonth(), today.getDate());
2604
+ const maxDate = new Date(today.getFullYear() - MAX_AGE, today.getMonth(), today.getDate());
2605
+ if (!date || date > minDate || date < maxDate) {
2606
+ return false;
2607
+ }
2608
+ return true;
2609
+ };
2610
+ const limitedBirthdayValidator = () => validator(limitedBirthdayValidate)(AGE_ERROR_MESSAGE);
2611
+
2612
+ const validatorConsentsObj = {
2613
+ processPersonalDataFlg: agreementValidator,
2614
+ consentProviderFlg: agreementValidator,
2615
+ consentInformFlg: agreementValidator,
2616
+ consentPfrFlg: agreementValidator,
2617
+ consentOthersFlg: agreementValidator,
2618
+ };
2619
+ const validatorCreditCardObj = {
2620
+ addressCourier: addressDaDataValidator(),
2621
+ paymentSystem: defaultValidator('Укажите тип платежной системы'),
2622
+ currency: defaultValidator('Укажите валюту'),
2623
+ cardCategory: defaultValidator('Укажите категорию карты'),
2624
+ codeWord: codeWordValidator('Необходимо ввести кодовое слово'),
2625
+ confirmationIncome: defaultSelectValidator(),
2626
+ methodObtain: defaultValidator(),
2627
+ deliveryDate: defaultValidator('Укажите дату доставки'),
2628
+ };
2629
+ const validatorRetailObj = {
2630
+ organization: defaultSelectValidator('Выберите тип организации'),
2631
+ organizationAddress: addressOrganizationValidator(),
2632
+ organizationPhone: phoneValidator('Укажите номер телефона'),
2633
+ organizationName: defaultValidator('Укажите наименование организации'),
2634
+ legalForm: defaultValidator('Укажите ОПФ'),
2635
+ generalSeniority: jobNumberValidator('Укажите количество лет стажа'),
2636
+ lastJobExperience: jobNumberValidator('Укажите стаж на последнем месте работы'),
2637
+ experience5Years: jobNumberValidator('Укажите общий стаж за последние 5 лет'),
2638
+ jobsNumber: jobNumberValidator('Укажите количество мест работы за последние 5 лет'),
2639
+ beginDate: defaultValidator('Укажите дату заключения трудового договора'),
2640
+ addressFact: addressDaDataValidator(),
2641
+ addressRegistration: addressDaDataValidator(),
2642
+ addressRetail: defaultSelectValidator('Выберите адрес банка'),
2643
+ addressMatch: defaultValidator(),
2644
+ sex: defaultValidator('Укажите свой пол'),
2645
+ limitedBirthday: limitedBirthdayValidator(),
2646
+ birthPlace: defaultValidator('Укажите место рождения'),
2647
+ education: defaultSelectValidator('Выберите ваше образование'),
2648
+ housing: defaultSelectValidator('Выберите тип жилья'),
2649
+ amountWorkers: defaultSelectValidator('Выберите информацию о количестве сотрудников'),
2650
+ employment: defaultSelectValidator('Выберите информацию о трудоустройстве'),
2651
+ employerActivities: defaultSelectValidator('Выберите вид деятельности организации'),
2652
+ employerOrganization: defaultSelectValidator('Выберите вид организации'),
2653
+ positionOrganization: defaultSelectValidator('Выберите вашу должность'),
2654
+ familyStatus: defaultSelectValidator('Выберите семейное положение'),
2655
+ familyMembers: lengthStringValidator(2, 'Укажите количество членов семьи'),
2656
+ children: lengthStringValidator(2, 'Укажите количество детей'),
2657
+ dependents: lengthStringValidator(2, 'Укажите количество иждивенцев'),
2658
+ totalIncome: lengthStringValidator(19, 'Укажите среднемесячный доход от основной зарплаты'),
2659
+ expenses: lengthStringValidator(10, 'Укажите сумму обязательных выплат'),
2660
+ snils: snilsValidator('Некорректный номер СНИЛС'),
2661
+ conscription: defaultValidator(),
2662
+ armyIdFlg: agreementValidator,
2663
+ dulSerie: serieValidator('Укажите серию паспорта'),
2664
+ dulNumber: numberValidator('Укажите номер паспорта'),
2665
+ dulIssueDateField: defaultValidator('Укажите дату выдачи паспорта'),
2666
+ dulSubdivisionCode: numberValidator('Укажите код подразделения'),
2667
+ dulIssuedBy: defaultValidator('Укажите организацию, выдавшую паспорт'),
2668
+ participantDateRegistration: defaultValidator('Укажите дату регистрации'),
2669
+ retirementIncome: defaultValidator(),
2670
+ otherIncome: defaultValidator(),
2671
+ wages: defaultValidator(),
2672
+ mandatoryPayments: defaultValidator(),
2673
+ disablePeopleFlg: defaultValidator(),
2674
+ bankruptcyFlg: defaultValidator(),
2675
+ shareholderFlg: defaultValidator(),
2676
+ legalEntityName: defaultValidator(),
2677
+ bankEmployeeCode: defaultValidator(),
2678
+ partInBusiness: defaultValidator(),
2679
+ regionRetail: defaultSelectValidator('Выберите регион'),
2680
+ };
2681
+ const validatorObj = {
2682
+ fullName: defaultValidator(),
2683
+ addressBranch: defaultSelectValidator(),
2684
+ desiredMeetingDate: defaultValidator(),
2685
+ product: defaultValidator(),
2686
+ localities: defaultValidator(),
2687
+ partnerComments: defaultValidator(),
2688
+ collectionCount: defaultValidator(),
2689
+ acquiringType: defaultSelectValidator(),
2690
+ serviceType: defaultSelectValidator(),
2691
+ annualRevenue: defaultValidator(),
2692
+ feedbackMethod: defaultSelectValidator(),
2693
+ serviceDirection: defaultSelectValidator(),
2694
+ secondaryPhone: phoneValidator('Укажите номер телефона'),
2695
+ region: defaultSelectValidator(),
2696
+ surname: nameValidator('Укажите свою фамилию'),
2697
+ name: nameValidator('Укажите своё имя'),
2698
+ middleName: nameValidator('Укажите своё отчество'),
2699
+ birthday: defaultValidator('Укажите дату рождения'),
2700
+ phone: phoneValidator('Укажите номер телефона'),
2701
+ email: emailValidator('Укажите электронную почту'),
2702
+ inn: innValidator('Укажите ИНН'),
2703
+ comment: defaultValidator(),
2704
+ typeForm: defaultValidator(),
2705
+ consentToReceiveMaterials: agreementValidator,
2706
+ consentDataProcessing: agreementValidator,
2707
+ ...validatorConsentsObj,
2708
+ ...validatorRetailObj,
2709
+ ...validatorCreditCardObj,
2710
+ };
2711
+ const getFormValidator = (fieldDefs) => {
2712
+ const requiredFields = fieldDefs.filter((_) => Boolean(_?.required && _?.name));
2713
+ const hasConditions = requiredFields.some((_) => _.condition?.values);
2714
+ const requiredFieldValidatorsMap = Object.fromEntries(requiredFields.filter(byNonEmptyValidator).map(({ name }) => [name, validatorObj[name ?? '']]));
2715
+ return (formState) => hasConditions
2716
+ ? Object.fromEntries(requiredFields
2717
+ .filter(byNonEmptyValidator)
2718
+ .filter(byCondition(formState))
2719
+ .map(({ name }) => [name, validatorObj[name ?? '']]))
2720
+ : requiredFieldValidatorsMap;
2721
+ };
2722
+ const byNonEmptyValidator = ({ name }) => Boolean(validatorObj[name ?? '']);
2723
+ const byCondition = (formState) => (fieldDef) => !fieldDef?.condition ||
2724
+ fieldDef.condition.values.find((_) => {
2725
+ const dependencyValue = formState?.[fieldDef?.condition?.name ?? ''];
2726
+ return _ === (dependencyValue?.key ?? dependencyValue);
2727
+ });
2728
+
2703
2729
  const SecondaryPhoneField = JSX(({ field }) => {
2704
2730
  const fieldPhone = field('secondaryPhone');
2705
2731
  return (jsx(InputPhoneControl, { label: "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u0442\u0435\u043B\u0435\u0444\u043E\u043D", ...(!fieldPhone.value || fieldPhone.value === '+7 ('
@@ -2707,23 +2733,23 @@
2707
2733
  : withValidator(fieldPhone, validatorObj.secondaryPhone)) }));
2708
2734
  });
2709
2735
 
2710
- const ServiceDirectionField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u044F", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435", options: SERVICE_DIRECTIONS, ...getValidation(field('serviceDirection'), validatorObj.serviceDirection, input?.required) })));
2736
+ const ServiceDirectionField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u044F", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435", options: SERVICE_DIRECTIONS, ...field(input?.name ?? '') })));
2711
2737
 
2712
- const FIELD_NAME$a = 'surname';
2713
- const SurnameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0430\u043C\u0438\u043B\u0438\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$a), ...getValidation(field('surname'), validatorObj.surname, input?.required), ...input })));
2738
+ const FIELD_NAME$2 = 'surname';
2739
+ const SurnameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0430\u043C\u0438\u043B\u0438\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$2), ...field(input?.name ?? ''), ...input })));
2714
2740
 
2715
2741
  const MIN_CREDIT_TERM = 1;
2716
2742
  const MAX_CREDIT_TERM = 180;
2717
2743
  const ITEMS_CREDIT_TERM = ['От 1 мес', 'До 15 лет'];
2718
2744
  const TermField = JSX(({ field }) => (jsx(InputRange, { title: "\u0421\u0440\u043E\u043A, \u043C\u0435\u0441\u044F\u0446\u0435\u0432", items: ITEMS_CREDIT_TERM, min: MIN_CREDIT_TERM, max: MAX_CREDIT_TERM, ...field('term') })));
2719
2745
 
2720
- const UltraPremiumField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0422\u0438\u043F \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u044F", options: SERVICE_TYPES, ...getValidation(field('serviceType'), validatorObj.serviceType, input?.required) })));
2746
+ const UltraPremiumField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0422\u0438\u043F \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u044F", options: SERVICE_TYPES, ...field(input?.name ?? '') })));
2721
2747
 
2722
2748
  const orientationStyleMap = {
2723
2749
  horizontal: '@lg:flex-row',
2724
2750
  vertical: '',
2725
2751
  };
2726
- const RadioButtonGroup = JSX(({ label, items, value, className, onChange: onChangeCheckedItem, disabled = false, orientation = 'horizontal', }) => (jsxs("div", { className: "grid gap-xs whitespace-nowrap", children: [label ? (jsx("div", { role: "radiogroup", "aria-label": label, children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: label }) })) : null, jsx("div", { className: style('flex flex-col gap-s', orientationStyleMap[orientation], className), role: "radiogroup", "aria-label": "\u0413\u0440\u0443\u043F\u043F\u0430 \u043A\u043D\u043E\u043F\u043E\u043A", children: items?.map(({ id, text }) => (jsx(Checkbox, { isRadio: true, text: text, value: value === id, onChange: () => onChangeCheckedItem && onChangeCheckedItem(id), disabled: disabled }, String(id)))) })] })));
2752
+ const RadioButtonGroup = JSX(({ label, items, value, className, disabled = false, orientation = 'horizontal', onChange: onChangeCheckedItem, }) => (jsxs("div", { className: "grid gap-xs whitespace-nowrap", children: [label ? (jsx("div", { role: "radiogroup", "aria-label": label, children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: label }) })) : null, jsx("div", { className: style('flex flex-col gap-s', orientationStyleMap[orientation], className), role: "radiogroup", "aria-label": "\u0413\u0440\u0443\u043F\u043F\u0430 \u043A\u043D\u043E\u043F\u043E\u043A", children: items?.map(({ id, text }) => (jsx(Checkbox, { isRadio: true, text: text, value: value === id, onChange: () => onChangeCheckedItem?.(id), disabled: disabled }, String(id)))) })] })));
2727
2753
 
2728
2754
  const VED_TYPES = [
2729
2755
  { id: 'currencyControl', text: 'Валютный контроль' },
@@ -2731,15 +2757,14 @@
2731
2757
  { id: 'conversionTransactions', text: 'Конверсионные операции' },
2732
2758
  { id: 'otherIssues', text: 'Иные вопросы ВЭД' },
2733
2759
  ];
2734
- const VedField = JSX(({ field }) => {
2735
- const { value, onChange } = field('vedTypes');
2736
- useEffect(() => {
2737
- if (value !== 'currencyControl') {
2738
- field?.('inn')?.onChange?.('');
2739
- field?.('region')?.onChange?.('');
2760
+ const VedField = JSX(({ field, input }) => {
2761
+ const handleChange = useCallback((_) => {
2762
+ if (_ !== 'currencyControl') {
2763
+ field('inn').onChange?.('');
2764
+ field('region').onChange?.('');
2740
2765
  }
2741
- }, [value]);
2742
- return (jsx("div", { className: "py-m gap-m grid @xl:flex @xl:items-center", children: jsx(RadioButtonGroup, { className: "whitespace-normal", orientation: "horizontal", items: VED_TYPES, value: value, onChange: (_) => onChange && onChange(_) }) }));
2766
+ }, []);
2767
+ return (jsx("div", { className: "py-m gap-m grid @xl:flex @xl:items-center", children: jsx(RadioButtonGroup, { className: "whitespace-normal", orientation: "horizontal", items: VED_TYPES, ...field(input?.name ?? '', { onChange: handleChange }) }) }));
2743
2768
  });
2744
2769
 
2745
2770
  function isRenderField({ input, field, }) {
@@ -2751,42 +2776,42 @@
2751
2776
  const PRODUCT_REF = {
2752
2777
  $ref: '/wcms-resources/outservice-productlist.json',
2753
2778
  };
2754
- const InputsMap = {
2755
- fullName: (props) => jsx(FullNameField, { ...props }),
2756
- addressBranch: (props) => jsx(AddressBranchField, { ...props }),
2757
- desiredMeetingDate: (props) => jsx(DesiredMeetingDateField, { ...props }),
2779
+ const InputsMap$1 = {
2780
+ fullName: FullNameField,
2781
+ addressBranch: AddressBranchField,
2782
+ desiredMeetingDate: DesiredMeetingDateField,
2758
2783
  product: (props) => jsx(ProductField, { ...props, source: PRODUCT_REF }),
2759
- localities: (props) => jsx(LocalitiesField, { ...props }),
2760
- isClient: (props) => jsx(IsClientField, { ...props }),
2761
- partnerComments: (props) => jsx(PartnerCommentsField, { ...props }),
2762
- collectionCount: (props) => jsx(CollectionCountField, { ...props }),
2763
- acquiringType: (props) => jsx(AcquiringField, { ...props }),
2764
- onlineCheckout: (props) => jsx(OnlineCheckoutField, { ...props }),
2765
- posTerminal: (props) => jsx(PosTerminalField, { ...props }),
2766
- serviceType: (props) => jsx(UltraPremiumField, { ...props }),
2767
- term: (props) => jsx(TermField, { ...props }),
2768
- amount: (props) => jsx(AmountField, { ...props }),
2769
- annualRevenue: (props) => jsx(AnnualRevenueField, { ...props }),
2770
- vedTypes: (props) => jsx(VedField, { ...props }),
2771
- feedbackMethod: (props) => jsx(FeedbackMethodField, { ...props }),
2772
- serviceDirection: (props) => jsx(ServiceDirectionField, { ...props }),
2773
- bankEmpolee: (props) => jsx(BankEmpoleeField, { ...props }),
2774
- secondaryPhone: (props) => jsx(SecondaryPhoneField, { ...props }),
2784
+ localities: LocalitiesField,
2785
+ isClient: IsClientField,
2786
+ partnerComments: PartnerCommentsField,
2787
+ collectionCount: CollectionCountField,
2788
+ acquiringType: AcquiringField,
2789
+ onlineCheckout: OnlineCheckoutField,
2790
+ posTerminal: PosTerminalField,
2791
+ serviceType: UltraPremiumField,
2792
+ term: TermField,
2793
+ amount: AmountField,
2794
+ annualRevenue: AnnualRevenueField,
2795
+ vedTypes: VedField,
2796
+ feedbackMethod: FeedbackMethodField,
2797
+ serviceDirection: ServiceDirectionField,
2798
+ bankEmpolee: BankEmpoleeField,
2799
+ secondaryPhone: SecondaryPhoneField,
2775
2800
  applicationDate: (props) => (jsx(InputControl, { label: "\u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u044F \u0432 \u0411\u0430\u043D\u043A", ...props })),
2776
2801
  region: (props) => getPremium(props?.params?.typeForm) ? (jsx(RegionPremiumField, { ...props })) : (jsx(RegionField, { ...props })),
2777
- consentToReceiveMaterials: (props) => (jsx(ConsentToReceiveMaterialsField, { ...props })),
2778
- surname: (props) => jsx(SurnameField, { ...props }),
2779
- name: (props) => jsx(NameField, { ...props }),
2780
- middleName: (props) => jsx(MiddleNameField, { ...props }),
2781
- birthday: (props) => jsx(BirthdayField, { ...props }),
2782
- phone: (props) => jsx(PhoneField, { ...props }),
2783
- email: (props) => jsx(EmailField, { ...props }),
2784
- inn: (props) => jsx(InnField, { ...props }),
2785
- comment: (props) => jsx(CommentField, { ...props }),
2802
+ consentToReceiveMaterials: ConsentToReceiveMaterialsField,
2803
+ surname: SurnameField,
2804
+ name: NameField,
2805
+ middleName: MiddleNameField,
2806
+ birthday: BirthdayField,
2807
+ phone: PhoneField,
2808
+ email: EmailField,
2809
+ inn: InnField,
2810
+ comment: CommentField,
2786
2811
  };
2787
2812
  const getField = (field, params, externalInputs = {}) => (input, i) => {
2788
2813
  const resultInputsMap = {
2789
- ...InputsMap,
2814
+ ...InputsMap$1,
2790
2815
  ...externalInputs,
2791
2816
  };
2792
2817
  return isRenderField({ input, field }) ? (jsx("div", { children: resultInputsMap[input?.name || '']?.({ field, input, params }) }, String(i))) : null;
@@ -2836,21 +2861,16 @@
2836
2861
 
2837
2862
  const Dialog = JSX(({ className, head, children, onClose, onClick }) => (jsxs("div", { className: style('relative bg-white pt-0 p-lg', className), role: "dialog", onClick: onClick, children: [jsxs("div", { className: "sticky py-xl top-0 bg-white z-10", children: [jsx(CloseButton, { className: "absolute top-0 right-0", onClose: onClose }), jsx("div", { className: "container", children: head })] }), jsx("div", { className: "container pb-6xl", children: children })] })));
2838
2863
 
2839
- const ResponseTypeDialog = JSX(({ responseType, typeForm, onClose }) => {
2840
- const responseOK = responseType === 'OK';
2841
- const statusIcon = responseOK ? 'ResponseOKIcon' : 'ResponseFailIcon';
2864
+ const ResponseTypeDialog = JSX(({ ok, typeForm, onClose }) => {
2865
+ const statusIcon = ok ? 'ResponseOKIcon' : 'ResponseFailIcon';
2842
2866
  const responseOKDescription = typeForm === 'ANTIFRAUD'
2843
2867
  ? `Сообщение отправлено. Для уточнения информации с Вами могут связаться работники Банка либо Вы
2844
2868
  можете самостоятельно позвонить по номеру контакт-центра +78001000100. Будьте внимательны, работники Банка
2845
2869
  не звонят с использованием мессенджеров.`
2846
2870
  : 'Совсем скоро мы с вами свяжемся';
2847
- return (jsx(Dialog, { className: "my-6xl max-w-lg w-full min-h-fit mx-auto", onClose: onClose, children: jsxs("div", { className: "flex flex-col gap-lg items-center rounded-md space-x-m", children: [jsx(Img, { image: { icon: statusIcon, iconVersion: 'normal' }, width: "136", height: "136" }), jsx(Headline, { className: "w-full", title: responseOK ? 'Ваша заявка отправлена' : 'Не удалось отправить заявку', description: responseOK ? responseOKDescription : 'Пожалуйста, повторите позднее', headlineVersion: "XS", isEmbedded: true }), jsx(Button, { type: "button", onClick: onClose, children: "\u0425\u043E\u0440\u043E\u0448\u043E" })] }) }));
2871
+ return (jsx(Dialog, { className: "my-6xl max-w-lg w-full min-h-fit mx-auto", onClose: onClose, children: jsxs("div", { className: "flex flex-col gap-lg items-center rounded-md space-x-m", children: [jsx(Img, { image: { icon: statusIcon, iconVersion: 'normal' }, width: "136", height: "136" }), jsx(Headline, { className: "w-full", title: ok ? 'Ваша заявка отправлена' : 'Не удалось отправить заявку', description: ok ? responseOKDescription : 'Пожалуйста, повторите позднее', headlineVersion: "XS", isEmbedded: true }), jsx(Button, { type: "button", onClick: onClose, children: "\u0425\u043E\u0440\u043E\u0448\u043E" })] }) }));
2848
2872
  });
2849
2873
 
2850
- const objectValidator = (validatorsMap) => (o) => (o &&
2851
- Object.entries(validatorsMap).flatMap(([key, validator]) => validator(o[key]))) ||
2852
- [];
2853
-
2854
2874
  const getPartnerComments = (data) => {
2855
2875
  const { acquiringType, onlineCheckout = false, posTerminal = false, term, amount, annualRevenue, } = data;
2856
2876
  if (acquiringType) {
@@ -2928,46 +2948,28 @@
2928
2948
  const renderContacts = () => (jsxs("div", { className: "space-y-m", children: [jsx(Heading, { headingType: "h6", title: "\u0418\u043B\u0438 \u0441\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 \u043D\u0430\u043C\u0438 \u0443\u0434\u043E\u0431\u043D\u044B\u043C \u0441\u043F\u043E\u0441\u043E\u0431\u043E\u043C", className: "@xl:text-center" }), jsxs("div", { className: "flex sm:justify-center gap-xl", children: [jsxs("a", { className: "flex gap-s items-center text-primary-text no-underline", href: `tel:8 (800) 200-78-70`, "aria-label": "\u0442\u0435\u043B\u0435\u0444\u043E\u043D 8 (800) 200-78-70", children: [jsx(Img, { image: { icon: 'PhoneIcon' }, width: "24", height: "24" }), jsx("span", { children: "8 (800) 200-78-70" })] }), jsxs("a", { className: "flex gap-s items-center text-primary-text no-underline", "aria-label": "\u043F\u043E\u0447\u0442\u0430 ved@rshb.ru", href: `mailto:ved@rshb.ru`, children: [jsx(Img, { image: { icon: 'MailIcon' }, width: "24", height: "24" }), jsx("span", { children: "ved@rshb.ru" })] })] })] }));
2929
2949
 
2930
2950
  const API = LeadServiceAPI();
2931
- const ApplicationForm = JSX(
2932
- // eslint-disable-next-line max-lines-per-function
2933
- ({ className, title, typeForm = '', sections = [], button, link, endpoint, additionalParams, isContacts, data, ...rest }) => {
2934
- const inputs = (sections?.flatMap((_) => _?.inputs) || []);
2935
- const initialFormState = getInitialFormState$3(inputs, typeForm);
2936
- const [responseType, setResponseType] = useState('');
2951
+ const ApplicationForm = JSX(({ className, title, typeForm = '', sections = [], button, link, endpoint, additionalParams, isContacts, data, ...rest }) => {
2952
+ const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
2953
+ const initialFormState = useMemo(() => getInitialFormState$3(inputs, typeForm), [inputs, typeForm]);
2954
+ const formValidator = useMemo(() => getFormValidator(inputs), [inputs]);
2937
2955
  const responseTypeDialog = useDialog(ResponseTypeDialog);
2956
+ const aspects = useAspects();
2938
2957
  const handleSubmit = useCallback(async (formData, ev) => {
2939
- const inputsFiltered = getFilteredInputs(inputs, formData);
2940
- const feedbackValidator = objectValidator(getObjectValidator(inputsFiltered));
2941
- if (!isValidationSuccess(feedbackValidator(formData))) {
2942
- return console.warn('validation fail');
2943
- }
2944
2958
  const formatData = getFormatData({ ...formData, ...additionalParams });
2945
- const status = (await API.send(formatData, endpoint === 'lead')) ? 'OK' : 'Fail';
2946
- setResponseType(status);
2947
- if (status) {
2948
- responseTypeDialog.open({ typeForm, responseType: status });
2949
- }
2950
- if (status === 'OK' && data) {
2951
- const aspects = useAspects();
2959
+ const ok = Boolean(await API.send(formatData, endpoint === 'lead'));
2960
+ responseTypeDialog.open({ ok, typeForm });
2961
+ if (ok) {
2952
2962
  handleAspects({ aspectsAttributes: data, aspects, ev });
2953
2963
  }
2954
- return status;
2955
2964
  }, [typeForm]);
2956
- const [, { field, onSubmit, reset }] = useForm(initialFormState, { onSubmit: handleSubmit });
2965
+ const [, { field, onSubmit }] = useForm(initialFormState, {
2966
+ resetOnSubmit: true,
2967
+ formValidator,
2968
+ onSubmit: handleSubmit,
2969
+ });
2957
2970
  const fieldName = getConsentDataProcessing(inputs)?.name;
2958
- useEffect(() => {
2959
- if (responseType === 'OK') {
2960
- setResponseType('');
2961
- reset();
2962
- }
2963
- }, [responseType]);
2964
2971
  return (jsxs(ApplicationFormLayout, { className: style('container space-y-m', className), title: title, ...rest, children: [jsxs("form", { onSubmit: onSubmit, children: [sections.map((_, i) => (jsxs("div", { className: style(inputColumnStyles(_.columns), 'grid gap-x-m'), children: [renderTitle(_.title), (_?.inputs || [])?.map(getField(field, { typeForm }))] }, `section-${i}`))), renderAgreementSubmit(fieldName ? field('consentDataProcessing') : undefined, link, button)] }), isContacts ? renderContacts() : null] }));
2965
2972
  });
2966
- const getFilteredInputs = (inputs, data) => inputs.filter((input) => !input?.condition ||
2967
- input?.condition.values.find((_) => {
2968
- const dataValue = data?.[input?.condition?.name ?? ''];
2969
- return _ === (dataValue?.key ?? dataValue);
2970
- }));
2971
2973
 
2972
2974
  const applicationFormData = [
2973
2975
  {
@@ -3039,11 +3041,11 @@
3039
3041
  qcHouse: '',
3040
3042
  });
3041
3043
  }, []);
3042
- return (jsx(InputControl, { label: "\u0410\u0434\u0440\u0435\u0441", disabled: value, ...getValidation(field(fieldName), validatorObj[fieldName], input?.required), value: fieldValue?.fullAddress, onChange: onChange, ...input, onDaDataChange: onDaDataChange }));
3044
+ return (jsx(InputControl, { label: "\u0410\u0434\u0440\u0435\u0441", disabled: value, ...field(fieldName), value: fieldValue?.fullAddress, onChange: onChange, ...input, onDaDataChange: onDaDataChange }));
3043
3045
  });
3044
3046
 
3045
3047
  const AddressMatchField = JSX(({ field, input }) => {
3046
- return (jsx(CheckboxWithError, { text: "\u0410\u0434\u0440\u0435\u0441 \u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043C\u0435\u0441\u0442\u0430 \u0436\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u0430\u0434\u0440\u0435\u0441\u043E\u043C \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438", ...getValidation(field('addressMatch'), validatorObj.addressMatch, input?.required) }));
3048
+ return (jsx(CheckboxWithError, { text: "\u0410\u0434\u0440\u0435\u0441 \u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043C\u0435\u0441\u0442\u0430 \u0436\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u0430\u0434\u0440\u0435\u0441\u043E\u043C \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438", ...field(input?.name ?? '') }));
3047
3049
  });
3048
3050
 
3049
3051
  const MapMarkerClusterIcon = '/icons/MapMarkerClusterIcon.svg';
@@ -3476,7 +3478,7 @@
3476
3478
 
3477
3479
  const ICONS$1 = ['ArrowDownIcon', 'ArrowUpIcon'];
3478
3480
  const labels = ['Подробнее', 'Скрыть'];
3479
- const renderFoldButton$3 = ({ isUnfolded, onToggle }) => (jsxs("button", { className: "w-full py-2xl cursor-pointer text-primary-main flex items-center border-b border-solid border-main-divider", onClick: onToggle, type: "button", children: [jsx("div", { className: "pr-m", children: labels[Number(isUnfolded)] }), jsx(Icon, { className: "text-primary-text", name: ICONS$1[Number(isUnfolded)], width: "16", height: "16" })] }));
3481
+ const renderFoldButton$2 = ({ isUnfolded, onToggle }) => (jsxs("button", { className: "w-full py-2xl cursor-pointer text-primary-main flex items-center border-b border-solid border-main-divider", onClick: onToggle, type: "button", children: [jsx("div", { className: "pr-m", children: labels[Number(isUnfolded)] }), jsx(Icon, { className: "text-primary-text", name: ICONS$1[Number(isUnfolded)], width: "16", height: "16" })] }));
3480
3482
 
3481
3483
  const renderWorkSchedule = (workSchedule) => {
3482
3484
  const workScheduleWeek = getWorkScheduleWeek(workSchedule);
@@ -3525,7 +3527,7 @@
3525
3527
  }) }));
3526
3528
  },
3527
3529
  //** TODO: remove styles with refactoring DefaultFoldButton*/
3528
- renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$3({ isUnfolded, onToggle }) })] }, String(i)));
3530
+ renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$2({ isUnfolded, onToggle }) })] }, String(i)));
3529
3531
  };
3530
3532
  const renderCardContent$1 = ({ phone, fax, phoneBusiness, phoneNatural, phoneCallCentre, phoneCurrencyControl, workSchedule, exchangeRate, }) => {
3531
3533
  const workScheduleWeek = getWorkScheduleWeek(workSchedule);
@@ -3639,14 +3641,14 @@
3639
3641
  const [offices, setOffices] = useState([]);
3640
3642
  const { data } = useLeadFormData('REGION_RF');
3641
3643
  const regionValue = field('regionRetail')?.value || {};
3642
- const fieldBranch = field('addressRetail');
3644
+ const addressField = field(input?.name ?? '');
3643
3645
  useEffect(() => {
3644
3646
  (async () => {
3645
3647
  const officesList = await fetchRegionOffices(regionValue?.key ?? '');
3646
3648
  setOffices(officesList);
3647
3649
  })();
3648
3650
  if (regionValue?.key) {
3649
- field?.('addressRetail')?.onChange?.('');
3651
+ addressField.onChange?.('');
3650
3652
  }
3651
3653
  }, [regionValue.key]);
3652
3654
  const { points } = useOfficesAtmsMapData({
@@ -3654,21 +3656,20 @@
3654
3656
  filtrationState: {},
3655
3657
  getBalloon: getOfficePoint,
3656
3658
  });
3657
- const isRegionSelected = Boolean(regionValue?.key);
3658
3659
  return (jsxs("div", { children: [jsx(SelectControl, { label: "\u0410\u0434\u0440\u0435\u0441 \u043E\u0442\u0434\u0435\u043B\u0435\u043D\u0438\u044F", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043E\u0442\u0434\u0435\u043B\u0435\u043D\u0438\u0435", options: offices.map(({ id, address = '' }) => ({
3659
3660
  key: id?.toString() || '',
3660
3661
  text: address,
3661
- })), ...getValidation(field('addressRetail'), validatorObj.addressRetail, input?.required && isRegionSelected), isSearch: true }), jsx("div", { className: "h-[600px]", children: jsx(ClientOnly, { children: jsx(YandexMap, { points: points, isLoad: !data, className: "h-full", selectedAddress: fieldBranch?.value?.text }) }) })] }));
3662
+ })), ...addressField, isSearch: true }), jsx("div", { className: "h-[600px]", children: jsx(ClientOnly, { children: jsx(YandexMap, { points: points, isLoad: !data, className: "h-full", selectedAddress: addressField?.value?.text }) }) })] }));
3662
3663
  });
3663
3664
 
3664
- const SelectField = UniBlock(({ field, source, fieldName, input, placeholder = 'Выберите из списка',
3665
+ const SelectField = UniBlock(({ field, source, fieldName, placeholder = 'Выберите из списка',
3665
3666
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3666
3667
  options, ...rest }) => {
3667
3668
  const leadOptions = source?.map((_) => ({
3668
3669
  key: _.key || '',
3669
3670
  text: _.value,
3670
3671
  })) || [];
3671
- return (jsx(SelectControl, { placeholder: placeholder, options: leadOptions, ...getValidation(field(fieldName), validatorObj[fieldName], input?.required), ...rest }));
3672
+ return (jsx(SelectControl, { placeholder: placeholder, options: leadOptions, ...field(fieldName), ...rest }));
3672
3673
  });
3673
3674
 
3674
3675
  const AmountWorkersField = JSX(({ field, input }) => {
@@ -3682,16 +3683,16 @@
3682
3683
  return (jsx(SelectField, { field: field, source: store.amountWorkers ?? [], label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0449\u0438\u0445 \u0432 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", fieldName: "amountWorkers", input: input }));
3683
3684
  });
3684
3685
 
3685
- const ArmyIdFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u041D\u0430\u043B\u0438\u0447\u0438\u0435 \u0432\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u0438\u043B\u0435\u0442\u0430", ...getValidation(field('armyIdFlg'), validatorObj.armyIdFlg, input?.required) })));
3686
+ const ArmyIdFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u041D\u0430\u043B\u0438\u0447\u0438\u0435 \u0432\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u0438\u043B\u0435\u0442\u0430", ...field(input?.name ?? '') })));
3686
3687
 
3687
- const BankEmpoleeCodeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u0434 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043B\u044F \u0411\u0430\u043D\u043A\u0430", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434", isInteger: true, ...getValidation(field('bankEmployeeCode'), validatorObj.bankEmployeeCode, input?.required), ...input })));
3688
+ const BankEmpoleeCodeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u0434 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043B\u044F \u0411\u0430\u043D\u043A\u0430", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434", isInteger: true, ...field(input?.name ?? ''), ...input })));
3688
3689
 
3689
- const BankruptcyFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u0412 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0438 \u043C\u0435\u043D\u044F \u0432\u0435\u0434\u0451\u0442\u0441\u044F \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0441\u0442\u0432\u043E \u043F\u043E \u0434\u0435\u043B\u0443 \u043E \u0431\u0430\u043D\u043A\u0440\u043E\u0442\u0441\u0442\u0432\u0435", ...getValidation(field('bankruptcyFlg'), validatorObj.bankruptcyFlg, input?.required) })));
3690
+ const BankruptcyFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u0412 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0438 \u043C\u0435\u043D\u044F \u0432\u0435\u0434\u0451\u0442\u0441\u044F \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0441\u0442\u0432\u043E \u043F\u043E \u0434\u0435\u043B\u0443 \u043E \u0431\u0430\u043D\u043A\u0440\u043E\u0442\u0441\u0442\u0432\u0435", ...field(input?.name ?? '') })));
3690
3691
 
3691
- const BeginDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u043D\u0430\u0447\u0430\u043B\u0430 \u0440\u0430\u0431\u043E\u0442\u044B \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u043C\u0435\u0441\u0442\u0435", ...getValidation(field('beginDate'), validatorObj.beginDate, input?.required), ...input })));
3692
+ const BeginDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u043D\u0430\u0447\u0430\u043B\u0430 \u0440\u0430\u0431\u043E\u0442\u044B \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u043C\u0435\u0441\u0442\u0435", ...field(input?.name ?? ''), ...input })));
3692
3693
 
3693
- const FIELD_NAME$9 = 'birthPlace';
3694
- const BirthPlaceField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041C\u0435\u0441\u0442\u043E \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...getValidation(field('birthPlace'), validatorObj.birthPlace, input?.required), ...input, disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$9) })));
3694
+ const FIELD_NAME$1 = 'birthPlace';
3695
+ const BirthPlaceField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041C\u0435\u0441\u0442\u043E \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...field(input?.name ?? ''), ...input, disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$1) })));
3695
3696
 
3696
3697
  const getCardTypes = async (paymentSystemTypeCd, creditProgramId) => {
3697
3698
  const data = await fetchRetailJSON('/dictionaryFiltered', 'POST', {
@@ -3743,9 +3744,9 @@
3743
3744
  });
3744
3745
  const isValidCardCategory = (cardTypes, selectedCardCategory) => cardTypes.some((cardType) => cardType.key === selectedCardCategory?.key);
3745
3746
 
3746
- const ChildrenField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u0435\u0442\u0435\u0439 \u0434\u043E 18 \u043B\u0435\u0442", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('children'), validatorObj.children, input?.required), ...input })));
3747
+ const ChildrenField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u0435\u0442\u0435\u0439 \u0434\u043E 18 \u043B\u0435\u0442", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
3747
3748
 
3748
- const CodeWordField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u0434\u043E\u0432\u043E\u0435 \u0441\u043B\u043E\u0432\u043E", ...getValidation(field('codeWord'), validatorObj.codeWord, input?.required), ...input })));
3749
+ const CodeWordField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u0434\u043E\u0432\u043E\u0435 \u0441\u043B\u043E\u0432\u043E", ...field(input?.name ?? ''), ...input })));
3749
3750
 
3750
3751
  const ConfirmationIncomeField = JSX(({ field, input }) => {
3751
3752
  const { data: confirmationIncome } = useLeadFormData('INCOME_CERT_UNITED');
@@ -3808,7 +3809,7 @@
3808
3809
  return (jsxs("div", { className: className, children: [jsxs("div", { className: "flex flex-wrap gap-x-m", children: [jsx(Checkbox, { ...props }), docId ? (jsx(LinkButton, { className: "text-primary-main", onClick: openDocument, children: jsx(Text, { children: OPEN_DOC_BUTTON_TEXT }) })) : null] }), renderErrorText(error)] }));
3809
3810
  });
3810
3811
 
3811
- const ConsentField = JSX(({ field, input }) => input && input.name ? (jsx(CheckboxWithDoc, { text: CONSENTS[input.name]?.text, docId: CONSENTS[input.name]?.docId, ...getValidation(field(input.name), validatorObj[input.name], input?.required) })) : null);
3812
+ const ConsentField = JSX(({ field, input }) => input && input.name ? (jsx(CheckboxWithDoc, { text: CONSENTS[input.name]?.text, docId: CONSENTS[input.name]?.docId, ...field(input.name) })) : null);
3812
3813
 
3813
3814
  const MONTHS_IN_YEAR$1 = 12;
3814
3815
  const MONTHLY_INTEREST_RATE = MONTHS_IN_YEAR$1 * 100;
@@ -4037,7 +4038,7 @@
4037
4038
  };
4038
4039
  const CalculatorCredit = UniBlock(({ className, title, calcSource, buttons, footnote, paramsViewSettings, defaultParams, onChange, ...rest }) => {
4039
4040
  const defaultParamsCals = getDefaultParamsMin(calcSource?.rateRows);
4040
- const [userInputParams, { field, isDirty }] = useForm({
4041
+ const [userInputParams, { field }] = useForm({
4041
4042
  moneyValue: getMoneyDefaultValue(defaultParams, CREDIT_DEFAULT_SUM),
4042
4043
  monthsValue: getMonthsDefaultValue(defaultParams, DEFAULT_MONTHS),
4043
4044
  isAnnuity: Boolean(defaultParams?.isAnnuity),
@@ -4045,10 +4046,7 @@
4045
4046
  isSalaryClient: Boolean(defaultParams?.isEnableSalaryClient),
4046
4047
  isPensionClient: Boolean(defaultParams?.isEnablePensionClient),
4047
4048
  isStateEmployee: Boolean(defaultParams?.isEnableStateEmployee),
4048
- });
4049
- useEffect(() => {
4050
- isDirty && onChange?.(userInputParams);
4051
- }, [userInputParams, isDirty]);
4049
+ }, { onChange });
4052
4050
  const calcParams = getCreditCalculatorParams(userInputParams, calcSource, paramsViewSettings);
4053
4051
  const paymentTypeElement = renderPaymentType({
4054
4052
  title: 'Тип платежа',
@@ -4093,12 +4091,12 @@
4093
4091
  });
4094
4092
  const renderCreditParamsForm$1 = (params, field) => (jsxs("div", { className: "flex flex-col gap-y-2xl", children: [params.isShowSalaryClient ? (jsx(Checkbox, { text: `Получаю зарплату на счёт\nв Россельхозбанке`, ...field('isSalaryClient'), value: params.isSalaryClient, className: "whitespace-pre-line sm:whitespace-normal" })) : null, params.isShowStateEmployee ? (jsx(Checkbox, { text: "\u0420\u0430\u0431\u043E\u0442\u0430\u044E \u0432 \u0431\u044E\u0434\u0436\u0435\u0442\u043D\u043E\u0439 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...field('isStateEmployee'), value: params.isStateEmployee })) : null, params.isShowPensionClient ? (jsx(Checkbox, { text: "\u041F\u043E\u043B\u0443\u0447\u0430\u044E \u043F\u0435\u043D\u0441\u0438\u044E \u043D\u0430 \u043A\u0430\u0440\u0442\u0443 \u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u0430", ...field('isPensionClient'), value: params.isPensionClient })) : null, params.isShowInsurance ? (jsx(Checkbox, { text: "\u041A\u043E\u043C\u043F\u043B\u0435\u043A\u0441\u043D\u0430\u044F \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u044F \u0437\u0430\u0449\u0438\u0442\u0430", ...field('isInsurance'), value: params.isInsurance })) : null] }));
4095
4093
 
4096
- const FIELD_NAME$8 = 'calculator';
4094
+ const FIELD_NAME = 'calculator';
4097
4095
  const CreditCalcField = JSX(({ field, params }) => {
4098
4096
  const handleChange = useCallback((_) => {
4099
- field(FIELD_NAME$8).onChange?.(_);
4097
+ field(FIELD_NAME).onChange?.(_);
4100
4098
  }, []);
4101
- return (jsx(CalculatorCredit, { ...params?.calcData, padding: "p-0", defaultParams: defaultValueAdapter(field(FIELD_NAME$8).value), onChange: handleChange }));
4099
+ return (jsx(CalculatorCredit, { ...params?.calcData, padding: "p-0", defaultParams: defaultValueAdapter(field(FIELD_NAME).value), onChange: handleChange }));
4102
4100
  });
4103
4101
  const PARAMS_MAP = {
4104
4102
  moneyValue: 'sum',
@@ -4123,44 +4121,36 @@
4123
4121
  return (jsx(SelectField, { field: field, source: creditInRshbCd, label: LABEL_TEXT, fieldName: "creditInRshbCd", input: input, disabled: !field?.('shareholderFlg')?.value }));
4124
4122
  });
4125
4123
 
4126
- const RadioButtonGroupControl = JSX(({ className, label, onChange, error, ...rest }) => (jsxs("div", { className: style('shrink-0 w-full', className), children: [jsx(RadioButtonGroup, { label: getRequiredLabel({ label, errors: rest?.errors }), onChange: (_) => onChange && onChange(_), ...rest }), renderErrorText(error)] })));
4124
+ const RadioButtonGroupControl = JSX(({ className, label, error, ...rest }) => (jsxs("div", { className: style('shrink-0 w-full', className), children: [jsx(RadioButtonGroup, { label: getRequiredLabel({ label, errors: rest?.errors }), ...rest }), renderErrorText(error)] })));
4127
4125
 
4128
- const CurrencyField = JSX(({ field, input }) => {
4129
- const { value, onChange } = field('currency');
4130
- const currencyTypes = [{ id: '810', text: 'Рубли' }];
4131
- return (jsx(RadioButtonGroupControl, { label: "\u0412\u0430\u043B\u044E\u0442\u0430", orientation: "horizontal", items: currencyTypes, value: value, onChange: (_) => onChange?.(_), ...getValidation(field('currency'), validatorObj.currency, input?.required) }));
4132
- });
4126
+ const CURRENCY_TYPES = [{ id: '810', text: 'Рубли' }];
4127
+ const CurrencyField = JSX(({ field, input }) => (jsx(RadioButtonGroupControl, { label: "\u0412\u0430\u043B\u044E\u0442\u0430", orientation: "horizontal", items: CURRENCY_TYPES, ...field(input?.name ?? '') })));
4133
4128
 
4134
- const DeliveryDateFiels = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438", ...getValidation(field('deliveryDate'), validatorObj.deliveryDate, input?.required) })));
4129
+ const DeliveryDateFiels = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438", ...field(input?.name ?? '') })));
4135
4130
 
4136
- const DependentsField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0438\u0436\u0434\u0438\u0432\u0435\u043D\u0446\u0435\u0432", placeholder: "\u0417\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0434\u0435\u0442\u0435\u0439 \u0434\u043E 18 \u043B\u0435\u0442", isInteger: true, maxLength: 2, ...getValidation(field('dependents'), validatorObj.dependents, input?.required), ...input })));
4131
+ const DependentsField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0438\u0436\u0434\u0438\u0432\u0435\u043D\u0446\u0435\u0432", placeholder: "\u0417\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0434\u0435\u0442\u0435\u0439 \u0434\u043E 18 \u043B\u0435\u0442", isInteger: true, maxLength: 2, ...field(input?.name ?? ''), ...input })));
4137
4132
 
4138
- const DisablePeopleFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u042F\u0432\u043B\u044F\u044E\u0441\u044C \u0438\u043D\u0432\u0430\u043B\u0438\u0434\u043E\u043C", ...getValidation(field('disablePeopleFlg'), validatorObj.disablePeopleFlg, input?.required) })));
4133
+ const DisablePeopleFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u042F\u0432\u043B\u044F\u044E\u0441\u044C \u0438\u043D\u0432\u0430\u043B\u0438\u0434\u043E\u043C", ...field(input?.name ?? '') })));
4139
4134
 
4140
- const FIELD_NAME$7 = 'dulIssueDateField';
4141
- const DulIssueDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0432\u044B\u0434\u0430\u0447\u0438", ...getValidation(field(FIELD_NAME$7), validatorObj.dulIssueDateField, input?.required), disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$7) })));
4135
+ 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 ?? '') })));
4142
4136
 
4143
- const FIELD_NAME$6 = 'dulIssuedBy';
4144
4137
  const DulIssuedByField = JSX(({ field, input }) => {
4145
4138
  const { value: dulSubdivisionCode, onChange: changeDulSubdivisionCode } = field('dulSubdivisionCode');
4146
4139
  const onDaDataChange = useCallback((item) => {
4147
4140
  changeDulSubdivisionCode?.(item?.data?.code?.replace('-', ''));
4148
4141
  }, []);
4149
- return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$6), label: "\u041A\u0435\u043C \u0432\u044B\u0434\u0430\u043D", ...input, ...getValidation(field(FIELD_NAME$6), validatorObj.dulIssuedBy, input?.required), onDaDataChange: onDaDataChange, daDataQueryPrefix: dulSubdivisionCode }));
4142
+ return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, input?.name ?? ''), label: "\u041A\u0435\u043C \u0432\u044B\u0434\u0430\u043D", ...input, ...field(input?.name ?? ''), onDaDataChange: onDaDataChange, daDataQueryPrefix: dulSubdivisionCode }));
4150
4143
  });
4151
4144
 
4152
- const FIELD_NAME$5 = 'dulNumber';
4153
- const DulNumberField = JSX(({ field, input }) => (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$5), label: "\u041D\u043E\u043C\u0435\u0440 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430", isInteger: true, maxLength: 6, ...getValidation(field('dulNumber'), validatorObj.dulNumber, input?.required) })));
4145
+ const DulNumberField = JSX(({ field, input }) => (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), label: "\u041D\u043E\u043C\u0435\u0440 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430", isInteger: true, maxLength: 6, ...field(input?.name ?? '') })));
4154
4146
 
4155
- const FIELD_NAME$4 = 'dulSerie';
4156
- const DulSerieField = JSX(({ field, input }) => (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$4), label: "\u0421\u0435\u0440\u0438\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430", isInteger: true, maxLength: 4, ...getValidation(field('dulSerie'), validatorObj.dulSerie, input?.required) })));
4147
+ const DulSerieField = JSX(({ field, input }) => (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), label: "\u0421\u0435\u0440\u0438\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430", isInteger: true, maxLength: 4, ...field(input?.name ?? '') })));
4157
4148
 
4158
- const FIELD_NAME$3 = 'dulSubdivisionCode';
4159
4149
  const DulSubdivisionCodeField = JSX(({ field, input }) => {
4160
4150
  const onDaDataChange = useCallback((item) => {
4161
4151
  field?.('dulIssuedBy')?.onChange?.(item?.data?.name);
4162
4152
  }, []);
4163
- return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$3), label: "\u041A\u043E\u0434 \u043F\u043E\u0434\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F", isInteger: true, maxLength: 6, ...input, ...getValidation(field(FIELD_NAME$3), validatorObj.dulSubdivisionCode, input?.required), onDaDataChange: onDaDataChange }));
4153
+ return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), label: "\u041A\u043E\u0434 \u043F\u043E\u0434\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F", isInteger: true, maxLength: 6, ...input, ...field(input?.name ?? ''), onDaDataChange: onDaDataChange }));
4164
4154
  });
4165
4155
 
4166
4156
  const EducationField = JSX(({ field, input }) => {
@@ -4195,27 +4185,26 @@
4195
4185
  return (jsx(SelectField, { field: field, source: employment, label: "\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u0440\u0443\u0434\u043E\u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0435", fieldName: "employment", input: input }));
4196
4186
  });
4197
4187
 
4198
- const ExpensesField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0440\u0430\u0441\u0445\u043E\u0434\u044B \u0432 \u043C\u0435\u0441\u044F\u0446", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('expenses'), validatorObj.expenses, input?.required), ...input })));
4188
+ const ExpensesField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0440\u0430\u0441\u0445\u043E\u0434\u044B \u0432 \u043C\u0435\u0441\u044F\u0446", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
4199
4189
 
4200
- const FIELD_NAME$2 = 'experience5Years';
4201
4190
  const MAX_YEARS = 5;
4202
4191
  const MIN_YEARS = 0;
4203
4192
  const Experience5YearsField = JSX(({ field, input }) => {
4204
- const onChange = useCallback((value) => field(FIELD_NAME$2)?.onChange?.(String(clamp(Number(value), MIN_YEARS, MAX_YEARS))), []);
4205
- return (jsx(InputControl, { label: "\u0421\u0442\u0430\u0436", placeholder: "\u0417\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 5 \u043B\u0435\u0442", type: "number", ...getValidation(field(FIELD_NAME$2), validatorObj[FIELD_NAME$2], input?.required), ...input, onChange: onChange }));
4193
+ const onChange = useCallback((value) => field(input?.name ?? '')?.onChange?.(String(clamp(Number(value), MIN_YEARS, MAX_YEARS))), []);
4194
+ return (jsx(InputControl, { label: "\u0421\u0442\u0430\u0436", placeholder: "\u0417\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 5 \u043B\u0435\u0442", type: "number", ...field(input?.name ?? ''), ...input, onChange: onChange }));
4206
4195
  });
4207
4196
 
4208
- const FamilyMembersField = JSX(({ field }) => {
4209
- const { value, onChange } = field('familyMembers');
4197
+ const FamilyMembersField = JSX(({ field, input }) => {
4198
+ const { value, onChange } = field(input?.name ?? '');
4210
4199
  const familyStatusKey = field('familyStatus')?.value?.key;
4211
4200
  const adultsCount = familyStatusKey === 'MARRIED' ? 2 : 1;
4212
4201
  const childrenCount = Number(field('children')?.value);
4213
4202
  const dependentsCount = Number(field('dependents')?.value);
4214
4203
  const totalCount = adultsCount + childrenCount + dependentsCount;
4215
4204
  useEffect(() => {
4216
- field?.('familyMembers')?.onChange?.(totalCount);
4205
+ onChange?.(totalCount);
4217
4206
  }, [familyStatusKey, childrenCount, dependentsCount]);
4218
- return (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0447\u043B\u0435\u043D\u043E\u0432 \u0441\u0435\u043C\u044C\u0438", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", type: "number", disabled: true, value: value, onChange: (_) => onChange?.(_) }));
4207
+ return (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0447\u043B\u0435\u043D\u043E\u0432 \u0441\u0435\u043C\u044C\u0438", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", type: "number", disabled: true, value: value, onChange: onChange }));
4219
4208
  });
4220
4209
 
4221
4210
  const FamilyStatusField = JSX(({ field, input }) => {
@@ -4223,7 +4212,7 @@
4223
4212
  return (jsx(SelectField, { field: field, source: familyStatus, label: "\u0421\u0435\u043C\u0435\u0439\u043D\u043E\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435", fieldName: "familyStatus", input: input }));
4224
4213
  });
4225
4214
 
4226
- const GeneralSeniorityField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u0449\u0438\u0439 \u0441\u0442\u0430\u0436", type: "number", maxLength: 2, placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043B\u0435\u0442", ...getValidation(field('generalSeniority'), validatorObj.generalSeniority, input?.required), ...input })));
4215
+ const GeneralSeniorityField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u0449\u0438\u0439 \u0441\u0442\u0430\u0436", type: "number", maxLength: 2, placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043B\u0435\u0442", ...field(input?.name ?? ''), ...input })));
4227
4216
 
4228
4217
  const HousingField = JSX(({ field, input }) => {
4229
4218
  const { data: housing } = useLeadFormData('HOUSE_TYPE');
@@ -4234,26 +4223,25 @@
4234
4223
 
4235
4224
  const InfoCardField = JSX(({ input }) => (jsx(InfoCard, { __html: input?.label })));
4236
4225
 
4237
- const JobsNumberField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043C\u0435\u0441\u0442 \u0440\u0430\u0431\u043E\u0442\u044B \u0437\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 5 \u043B\u0435\u0442", placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043C\u0435\u0441\u0442", isInteger: true, maxLength: 2, ...getValidation(field('jobsNumber'), validatorObj.jobsNumber, input?.required), ...input })));
4226
+ const JobsNumberField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043C\u0435\u0441\u0442 \u0440\u0430\u0431\u043E\u0442\u044B \u0437\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 5 \u043B\u0435\u0442", placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043C\u0435\u0441\u0442", isInteger: true, maxLength: 2, ...field(input?.name ?? ''), ...input })));
4238
4227
 
4239
- const LastJobExperienceField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0421\u0442\u0430\u0436 \u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043C\u0435\u0441\u0442\u0435", placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043B\u0435\u0442", type: "number", maxLength: 2, ...getValidation(field('lastJobExperience'), validatorObj.lastJobExperience, input?.required), ...input })));
4228
+ const LastJobExperienceField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0421\u0442\u0430\u0436 \u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043C\u0435\u0441\u0442\u0435", placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043B\u0435\u0442", type: "number", maxLength: 2, ...field(input?.name ?? ''), ...input })));
4240
4229
 
4241
4230
  const LegalEntityNameField = JSX(({ field, input }) => {
4242
- return (jsx(InputControl, { label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430", ...input, ...getValidation(field('legalEntityName'), validatorObj.legalEntityName, input?.required), disabled: !field?.('shareholderFlg')?.value }));
4231
+ return (jsx(InputControl, { label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430", ...input, ...field(input?.name ?? ''), disabled: !field?.('shareholderFlg')?.value }));
4243
4232
  });
4244
4233
 
4245
- const LegalFormField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u041F\u0424", placeholder: "\u041E\u041E\u041E, \u041F\u0410\u041E \u0438 \u0434\u0440.", ...getValidation(field('legalForm'), validatorObj.legalForm, input?.required), ...input })));
4234
+ const LegalFormField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u041F\u0424", placeholder: "\u041E\u041E\u041E, \u041F\u0410\u041E \u0438 \u0434\u0440.", ...field(input?.name ?? ''), ...input })));
4246
4235
 
4247
- const FIELD_NAME$1 = 'limitedBirthday';
4248
- const LimitedBirthdayField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...getValidation(field(FIELD_NAME$1), validatorObj.limitedBirthday, input?.required), disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$1) })));
4236
+ const LimitedBirthdayField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...field(input?.name ?? ''), disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? '') })));
4249
4237
 
4250
- const MandatoryPaymentsField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0432\u044B\u043F\u043B\u0430\u0442\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('mandatoryPayments'), validatorObj.mandatoryPayments, input?.required), ...input })));
4238
+ const MandatoryPaymentsField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0432\u044B\u043F\u043B\u0430\u0442\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
4251
4239
 
4252
4240
  const METHODS_OF_OBTAIN = [
4253
4241
  { id: 'office', text: 'В отделении Банка' },
4254
4242
  { id: 'courier', text: 'Курьерская доставка' },
4255
4243
  ];
4256
- const MethodObtainField = JSX(({ field, input }) => (jsx(RadioButtonGroupControl, { orientation: "horizontal", items: METHODS_OF_OBTAIN, ...getValidation(field('methodObtain'), validatorObj.methodObtain, input?.required) })));
4244
+ const MethodObtainField = JSX(({ field, input }) => (jsx(RadioButtonGroupControl, { orientation: "horizontal", items: METHODS_OF_OBTAIN, ...field(input?.name ?? '') })));
4257
4245
 
4258
4246
  const OrganizationField = JSX(({ field, input }) => {
4259
4247
  const { data } = useLeadFormData('ORGANIZATION_TYPE');
@@ -4272,19 +4260,18 @@
4272
4260
  field?.('inn')?.onChange?.(item.data?.inn);
4273
4261
  updateOrganizationFields(store, field, item);
4274
4262
  }, []);
4275
- return (jsx(InputControl, { label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...input, ...getValidation(field('organizationName'), validatorObj.organizationName, input?.required), onDaDataChange: onDaDataChange }));
4263
+ return (jsx(InputControl, { label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...input, ...field(input?.name ?? ''), onDaDataChange: onDaDataChange }));
4276
4264
  });
4277
4265
 
4278
- const OtherIncomeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0418\u043D\u044B\u0435 \u0434\u043E\u0445\u043E\u0434\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('otherIncome'), validatorObj.otherIncome, input?.required), ...input })));
4266
+ const OtherIncomeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0418\u043D\u044B\u0435 \u0434\u043E\u0445\u043E\u0434\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
4279
4267
 
4280
- const ParticipantDateRegistrationField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E \u043C\u0435\u0441\u0442\u0443 \u0436\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430", ...getValidation(field('participantDateRegistration'), validatorObj.participantDateRegistration, input?.required) })));
4268
+ const ParticipantDateRegistrationField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E \u043C\u0435\u0441\u0442\u0443 \u0436\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430", ...field(input?.name ?? '') })));
4281
4269
 
4282
4270
  const MAX_PART = 100;
4283
4271
  const MIN_PART = 0;
4284
- const FIELD_NAME = 'partInBusiness';
4285
4272
  const PartInBusinessField = JSX(({ field, input }) => {
4286
- const onChange = useCallback((value) => field(FIELD_NAME)?.onChange?.(String(clamp(Number(value), MIN_PART, MAX_PART))), []);
4287
- return (jsx(InputControl, { label: "\u0414\u043E\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u0438\u044F \u0432 \u0431\u0438\u0437\u043D\u0435\u0441\u0435", placeholder: "\u0432 %", isInteger: true, maxLength: 3, ...getValidation(field(FIELD_NAME), validatorObj.partInBusiness, input?.required), ...input, onChange: onChange }));
4273
+ const onChange = useCallback((value) => field(input?.name ?? '')?.onChange?.(String(clamp(Number(value), MIN_PART, MAX_PART))), []);
4274
+ return (jsx(InputControl, { label: "\u0414\u043E\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u0438\u044F \u0432 \u0431\u0438\u0437\u043D\u0435\u0441\u0435", placeholder: "\u0432 %", isInteger: true, maxLength: 3, ...field(input?.name ?? ''), ...input, onChange: onChange }));
4288
4275
  });
4289
4276
 
4290
4277
  const getPaymentSystems = async (creditProgramId) => {
@@ -4298,22 +4285,34 @@
4298
4285
  text: _.name,
4299
4286
  }));
4300
4287
 
4288
+ function useAsyncEffect(effect, deps) {
4289
+ useEffect(() => {
4290
+ const free = effect();
4291
+ return () => {
4292
+ free.then((_) => {
4293
+ _ instanceof Function && _();
4294
+ });
4295
+ };
4296
+ }, deps);
4297
+ }
4298
+
4299
+ const optionKey = (option) => option?.key;
4301
4300
  const PaymentSystemField = JSX(({ field, input }) => {
4302
- const { value, onChange } = field('paymentSystem');
4303
- const [programId] = useLocalStorage('programId');
4304
4301
  const [paymentSystemOptions, setPaymentSystemOptions] = useState([]);
4305
- useEffect(() => {
4302
+ const localStore = useLocalStore();
4303
+ useAsyncEffect(async () => {
4304
+ const { programId } = localStore;
4306
4305
  if (programId) {
4307
- (async () => {
4308
- const fetchedPaymentSystems = await getPaymentSystems(programId);
4309
- setPaymentSystemOptions(fetchedPaymentSystems || []);
4310
- })();
4306
+ const fetchedPaymentSystems = await getPaymentSystems(programId);
4307
+ setPaymentSystemOptions(fetchedPaymentSystems ?? []);
4311
4308
  }
4312
4309
  }, []);
4313
- const handleChange = useCallback((type) => onChange?.(paymentSystemOptions?.find((_) => _.key === type)), [paymentSystemOptions, onChange]);
4314
- return (jsx(RadioButtonGroupControl, { label: "\u041F\u043B\u0430\u0442\u0435\u0436\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430", orientation: "horizontal", items: formatPaymentSystems(paymentSystemOptions), ...getValidation(field('paymentSystem'), validatorObj.paymentSystem, input?.required), value: value?.key, onChange: handleChange }));
4310
+ const items = useMemo(() => paymentSystemOptions?.map((_) => ({ id: _.key, text: _.text })) ?? [], [paymentSystemOptions]);
4311
+ return (jsx(RadioButtonGroupControl, { label: "\u041F\u043B\u0430\u0442\u0435\u0436\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430", orientation: "horizontal", items: items, ...field(input?.name ?? '', {
4312
+ format: optionKey,
4313
+ parse: (key) => paymentSystemOptions?.find((_) => _.key === key),
4314
+ }) }));
4315
4315
  });
4316
- const formatPaymentSystems = (paymentSystems) => paymentSystems?.map((_) => ({ id: _.key, text: _.text })) ?? [];
4317
4316
 
4318
4317
  const PositionOrganizationField = JSX(({ field, input }) => {
4319
4318
  const { data: positionOrganization } = useLeadFormData('POSITION');
@@ -4323,10 +4322,10 @@
4323
4322
  const RegionRetailField = JSX(({ field, input }) => {
4324
4323
  const { data: regions } = useLeadFormData('REGION_RF');
4325
4324
  const formatRegions = regions?.map(({ key, value }) => ({ key, text: value }));
4326
- return (jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", isSearch: true, options: formatRegions, ...getValidation(field('regionRetail'), validatorObj.regionRetail, input?.required) }));
4325
+ return (jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", isSearch: true, options: formatRegions, ...field(input?.name ?? '') }));
4327
4326
  });
4328
4327
 
4329
- const RetirementIncomeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041F\u0435\u043D\u0441\u0438\u043E\u043D\u043D\u044B\u0435 \u0434\u043E\u0445\u043E\u0434\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('retirementIncome'), validatorObj.retirementIncome, input?.required), ...input })));
4328
+ const RetirementIncomeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041F\u0435\u043D\u0441\u0438\u043E\u043D\u043D\u044B\u0435 \u0434\u043E\u0445\u043E\u0434\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
4330
4329
 
4331
4330
  const GENDERS = ['male', 'female'];
4332
4331
  const getGenderFromName = async (name) => {
@@ -4356,10 +4355,10 @@
4356
4355
  })();
4357
4356
  }
4358
4357
  }, []);
4359
- return (jsx(RadioButtonGroupControl, { label: "\u041F\u043E\u043B", orientation: "horizontal", items: SEX_TYPES, ...getValidation(field('sex'), validatorObj.sex, input?.required) }));
4358
+ return (jsx(RadioButtonGroupControl, { label: "\u041F\u043E\u043B", orientation: "horizontal", items: SEX_TYPES, ...field(input?.name ?? '') }));
4360
4359
  });
4361
4360
 
4362
- const ShareholderFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u042F \u044F\u0432\u043B\u044F\u044E\u0441\u044C \u0430\u043A\u0446\u0438\u043E\u043D\u0435\u0440\u043E\u043C / \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u043C / \u0447\u043B\u0435\u043D\u043E\u043C / \u043F\u0430\u0439\u0449\u0438\u043A\u043E\u043C / \u0432\u043A\u043B\u0430\u0434\u0447\u0438\u043A\u043E\u043C \u0441 \u0434\u043E\u043B\u0435\u0439 \u0443\u0447\u0430\u0441\u0442\u0438\u044F \u0431\u043E\u043B\u0435\u0435 20% \u0443\u0441\u0442\u0430\u0432\u043D\u043E\u0433\u043E \u043A\u0430\u043F\u0438\u0442\u0430\u043B\u0430 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430", ...getValidation(field('shareholderFlg'), validatorObj.shareholderFlg, input?.required) })));
4361
+ const ShareholderFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u042F \u044F\u0432\u043B\u044F\u044E\u0441\u044C \u0430\u043A\u0446\u0438\u043E\u043D\u0435\u0440\u043E\u043C / \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u043C / \u0447\u043B\u0435\u043D\u043E\u043C / \u043F\u0430\u0439\u0449\u0438\u043A\u043E\u043C / \u0432\u043A\u043B\u0430\u0434\u0447\u0438\u043A\u043E\u043C \u0441 \u0434\u043E\u043B\u0435\u0439 \u0443\u0447\u0430\u0441\u0442\u0438\u044F \u0431\u043E\u043B\u0435\u0435 20% \u0443\u0441\u0442\u0430\u0432\u043D\u043E\u0433\u043E \u043A\u0430\u043F\u0438\u0442\u0430\u043B\u0430 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430", ...field(input?.name ?? '') })));
4363
4362
 
4364
4363
  const SnilsInput = JSX(({ children, onChange, maxLength, ...inputProps }) => {
4365
4364
  const handleChange = useCallback((v) => maxLength
@@ -4375,86 +4374,86 @@
4375
4374
 
4376
4375
  const InputSnilsControl = JSX(({ className, label, value, error, onChange, onBlur, ...rest }) => (jsxs("div", { className: style('shrink-0 w-full', className), children: [jsx(SnilsInput, { "aria-label": label, label: getRequiredLabel({ label, errors: rest?.errors }), valid: Boolean(!error), value: value, onChange: onChange, onBlur: onBlur, placeholder: "___-___-___ __", ...rest }), renderErrorText(error)] })));
4377
4376
 
4378
- const SnilsField = JSX(({ field, input }) => (jsx(InputSnilsControl, { label: "\u0421\u041D\u0418\u041B\u0421", maxLength: 14, ...getValidation(field('snils'), validatorObj.snils, input?.required), ...input })));
4377
+ const SnilsField = JSX(({ field, input }) => (jsx(InputSnilsControl, { label: "\u0421\u041D\u0418\u041B\u0421", maxLength: 14, ...field(input?.name ?? ''), ...input })));
4379
4378
 
4380
- const TotalIncomeField = JSX(({ field, input }) => (jsx(InputControl, { 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, ...getValidation(field('totalIncome'), validatorObj.totalIncome, input?.required), ...input })));
4379
+ const TotalIncomeField = JSX(({ field, input }) => (jsx(InputControl, { 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 })));
4381
4380
 
4382
- const WagesField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0421\u043E\u0432\u043E\u043A\u0443\u043F\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, ...getValidation(field('wages'), validatorObj.wages, input?.required), ...input })));
4381
+ const WagesField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0421\u043E\u0432\u043E\u043A\u0443\u043F\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 })));
4383
4382
 
4384
4383
  const InputsApplicationLeadMap = {
4385
- limitedBirthday: (props) => jsx(LimitedBirthdayField, { ...props }),
4384
+ limitedBirthday: LimitedBirthdayField,
4386
4385
  };
4387
4386
  const InputsConsentsMap = {
4388
- processPersonalDataFlg: (props) => jsx(ConsentField, { ...props }),
4389
- consentProviderFlg: (props) => jsx(ConsentField, { ...props }),
4390
- consentOthersFlg: (props) => jsx(ConsentField, { ...props }),
4391
- consentInformFlg: (props) => jsx(ConsentField, { ...props }),
4392
- consentPfrFlg: (props) => jsx(ConsentField, { ...props }),
4387
+ processPersonalDataFlg: ConsentField,
4388
+ consentProviderFlg: ConsentField,
4389
+ consentOthersFlg: ConsentField,
4390
+ consentInformFlg: ConsentField,
4391
+ consentPfrFlg: ConsentField,
4393
4392
  };
4394
4393
  const InputsRetailMap = {
4395
- organization: (props) => jsx(OrganizationField, { ...props }),
4396
- organizationAddress: (props) => jsx(AddressField, { ...props }),
4397
- organizationPhone: (props) => jsx(PhoneField, { ...props }),
4398
- organizationName: (props) => jsx(OrganizationNameField, { ...props }),
4399
- legalForm: (props) => jsx(LegalFormField, { ...props }),
4400
- generalSeniority: (props) => jsx(GeneralSeniorityField, { ...props }),
4401
- lastJobExperience: (props) => jsx(LastJobExperienceField, { ...props }),
4402
- experience5Years: (props) => jsx(Experience5YearsField, { ...props }),
4403
- jobsNumber: (props) => jsx(JobsNumberField, { ...props }),
4404
- beginDate: (props) => jsx(BeginDateField, { ...props }),
4405
- addressFact: (props) => jsx(AddressFactField, { ...props }),
4406
- addressRegistration: (props) => jsx(AddressField, { ...props }),
4407
- addressRetail: (props) => jsx(AddressRetailField, { ...props }),
4408
- addressMatch: (props) => jsx(AddressMatchField, { ...props }),
4409
- sex: (props) => jsx(SexField, { ...props }),
4410
- limitedBirthday: (props) => jsx(LimitedBirthdayField, { ...props }),
4411
- birthPlace: (props) => jsx(BirthPlaceField, { ...props }),
4412
- education: (props) => jsx(EducationField, { ...props }),
4413
- housing: (props) => jsx(HousingField, { ...props }),
4414
- amountWorkers: (props) => jsx(AmountWorkersField, { ...props }),
4415
- employment: (props) => jsx(EmploymentField, { ...props }),
4416
- employerActivities: (props) => jsx(EmployerActivitiesField, { ...props }),
4417
- employerOrganization: (props) => jsx(EmployerOrganizationField, { ...props }),
4418
- positionOrganization: (props) => jsx(PositionOrganizationField, { ...props }),
4419
- familyStatus: (props) => jsx(FamilyStatusField, { ...props }),
4420
- familyMembers: (props) => jsx(FamilyMembersField, { ...props }),
4421
- children: (props) => jsx(ChildrenField, { ...props }),
4422
- dependents: (props) => jsx(DependentsField, { ...props }),
4423
- totalIncome: (props) => jsx(TotalIncomeField, { ...props }),
4424
- expenses: (props) => jsx(ExpensesField, { ...props }),
4425
- snils: (props) => jsx(SnilsField, { ...props }),
4426
- conscription: (props) => jsx(ConscriptionField, { ...props }),
4427
- armyIdFlg: (props) => jsx(ArmyIdFlgField, { ...props }),
4428
- dulSerie: (props) => jsx(DulSerieField, { ...props }),
4429
- dulNumber: (props) => jsx(DulNumberField, { ...props }),
4430
- dulIssueDateField: (props) => jsx(DulIssueDateField, { ...props }),
4431
- dulSubdivisionCode: (props) => jsx(DulSubdivisionCodeField, { ...props }),
4432
- dulIssuedBy: (props) => jsx(DulIssuedByField, { ...props }),
4433
- participantDateRegistration: (props) => (jsx(ParticipantDateRegistrationField, { ...props })),
4434
- retirementIncome: (props) => jsx(RetirementIncomeField, { ...props }),
4435
- otherIncome: (props) => jsx(OtherIncomeField, { ...props }),
4436
- wages: (props) => jsx(WagesField, { ...props }),
4437
- mandatoryPayments: (props) => jsx(MandatoryPaymentsField, { ...props }),
4438
- disablePeopleFlg: (props) => jsx(DisablePeopleFlgField, { ...props }),
4439
- bankruptcyFlg: (props) => jsx(BankruptcyFlgField, { ...props }),
4440
- shareholderFlg: (props) => jsx(ShareholderFlgField, { ...props }),
4441
- legalEntityName: (props) => jsx(LegalEntityNameField, { ...props }),
4442
- creditInRshbCd: (props) => jsx(CreditInRshbCdField, { ...props }),
4443
- bankEmployeeCode: (props) => jsx(BankEmpoleeCodeField, { ...props }),
4444
- partInBusiness: (props) => jsx(PartInBusinessField, { ...props }),
4445
- regionRetail: (props) => jsx(RegionRetailField, { ...props }),
4446
- infoCard: (props) => jsx(InfoCardField, { ...props }),
4447
- calculator: (props) => jsx(CreditCalcField, { ...props }),
4448
- confirmationIncome: (props) => jsx(ConfirmationIncomeField, { ...props }),
4394
+ organization: OrganizationField,
4395
+ organizationAddress: AddressField,
4396
+ organizationPhone: PhoneField,
4397
+ organizationName: OrganizationNameField,
4398
+ legalForm: LegalFormField,
4399
+ generalSeniority: GeneralSeniorityField,
4400
+ lastJobExperience: LastJobExperienceField,
4401
+ experience5Years: Experience5YearsField,
4402
+ jobsNumber: JobsNumberField,
4403
+ beginDate: BeginDateField,
4404
+ addressFact: AddressFactField,
4405
+ addressRegistration: AddressField,
4406
+ addressRetail: AddressRetailField,
4407
+ addressMatch: AddressMatchField,
4408
+ sex: SexField,
4409
+ limitedBirthday: LimitedBirthdayField,
4410
+ birthPlace: BirthPlaceField,
4411
+ education: EducationField,
4412
+ housing: HousingField,
4413
+ amountWorkers: AmountWorkersField,
4414
+ employment: EmploymentField,
4415
+ employerActivities: EmployerActivitiesField,
4416
+ employerOrganization: EmployerOrganizationField,
4417
+ positionOrganization: PositionOrganizationField,
4418
+ familyStatus: FamilyStatusField,
4419
+ familyMembers: FamilyMembersField,
4420
+ children: ChildrenField,
4421
+ dependents: DependentsField,
4422
+ totalIncome: TotalIncomeField,
4423
+ expenses: ExpensesField,
4424
+ snils: SnilsField,
4425
+ conscription: ConscriptionField,
4426
+ armyIdFlg: ArmyIdFlgField,
4427
+ dulSerie: DulSerieField,
4428
+ dulNumber: DulNumberField,
4429
+ dulIssueDateField: DulIssueDateField,
4430
+ dulSubdivisionCode: DulSubdivisionCodeField,
4431
+ dulIssuedBy: DulIssuedByField,
4432
+ participantDateRegistration: ParticipantDateRegistrationField,
4433
+ retirementIncome: RetirementIncomeField,
4434
+ otherIncome: OtherIncomeField,
4435
+ wages: WagesField,
4436
+ mandatoryPayments: MandatoryPaymentsField,
4437
+ disablePeopleFlg: DisablePeopleFlgField,
4438
+ bankruptcyFlg: BankruptcyFlgField,
4439
+ shareholderFlg: ShareholderFlgField,
4440
+ legalEntityName: LegalEntityNameField,
4441
+ creditInRshbCd: CreditInRshbCdField,
4442
+ bankEmployeeCode: BankEmpoleeCodeField,
4443
+ partInBusiness: PartInBusinessField,
4444
+ regionRetail: RegionRetailField,
4445
+ infoCard: InfoCardField,
4446
+ calculator: CreditCalcField,
4447
+ confirmationIncome: ConfirmationIncomeField,
4449
4448
  };
4450
4449
  const InputRetailCardMap = {
4451
- addressCourier: (props) => jsx(AddressField, { ...props }),
4452
- paymentSystem: (props) => jsx(PaymentSystemField, { ...props }),
4453
- currency: (props) => jsx(CurrencyField, { ...props }),
4454
- cardCategory: (props) => jsx(CardCategoryField, { ...props }),
4455
- codeWord: (props) => jsx(CodeWordField, { ...props }),
4456
- methodObtain: (props) => jsx(MethodObtainField, { ...props }),
4457
- deliveryDate: (props) => jsx(DeliveryDateFiels, { ...props }),
4450
+ addressCourier: AddressField,
4451
+ paymentSystem: PaymentSystemField,
4452
+ currency: CurrencyField,
4453
+ cardCategory: CardCategoryField,
4454
+ codeWord: CodeWordField,
4455
+ methodObtain: MethodObtainField,
4456
+ deliveryDate: DeliveryDateFiels,
4458
4457
  };
4459
4458
 
4460
4459
  const CONSENT_ALL_DOCS_TEXT = 'Согласие на все документы';
@@ -4464,13 +4463,15 @@
4464
4463
  const handleGeneralToggle = (value) => {
4465
4464
  for (const item of inputs) {
4466
4465
  const itemField = field(item.name);
4467
- itemField?.onChange && itemField.onChange(value);
4466
+ itemField.onChange?.(value);
4468
4467
  }
4469
4468
  };
4470
4469
  const hasValidationErrors = useMemo(() => inputs
4471
4470
  ?.filter((_) => _.required)
4472
4471
  ?.some((_) => Boolean(withValidator(field(_?.name), validatorObj[_?.name]).error)), [inputs]);
4473
- return (jsx("div", { className: "w-fit", children: jsx(Foldable, { isFoldButtonOnTop: true, unfoldedByDefault: true, renderFoldableSection: ({ isUnfolded }) => (jsx(FoldableSection, { isUnfolded: isUnfolded, className: "flex flex-col pl-2xl", children: inputs.map(getField(field, {}, InputsConsentsMap)) })), renderFoldButton: renderGeneralCheckbox(jsxs("div", { children: [jsx(Checkbox, { value: isChecked, onChange: handleGeneralToggle, text: CONSENT_ALL_DOCS_TEXT }, key), renderErrorText(hasValidationErrors ? CONSENT_REQUIRED : '')] })) }) }));
4472
+ return (jsx("div", { className: "w-fit", children: jsx(Foldable, { isFoldButtonOnTop: true, unfoldedByDefault: true, renderFoldableSection: ({ isUnfolded }) => (jsx(FoldableSection, { isUnfolded: isUnfolded, className: "flex flex-col pl-2xl", children:
4473
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
4474
+ inputs.map(getField(field, {}, InputsConsentsMap)) })), renderFoldButton: renderGeneralCheckbox(jsxs("div", { children: [jsx(Checkbox, { value: isChecked, onChange: handleGeneralToggle, text: CONSENT_ALL_DOCS_TEXT }, key), renderErrorText(hasValidationErrors ? CONSENT_REQUIRED : '')] })) }) }));
4474
4475
  });
4475
4476
  const renderGeneralCheckbox = (generalCheckBox) => (foldableData) => (jsxs("div", { className: "flex items-start", children: [generalCheckBox, jsx("button", { onClick: foldableData.onToggle, className: "px-m py-2xs", type: "button", children: jsx(Icon, { className: "text-primary-text", name: foldableData.isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16" }) })] }));
4476
4477
 
@@ -4573,21 +4574,24 @@
4573
4574
  const [captcha, setCaptcha] = useState('');
4574
4575
  const [code, setCode] = useState('');
4575
4576
  const [hasError, setHasError] = useState(false);
4577
+ const [isLoading, { setTrue: startLoading, setFalse: endLoading }] = useBool(false);
4576
4578
  const handleCheckCaptcha = useCallback(async () => {
4579
+ startLoading();
4577
4580
  const isValidCode = await checkCaptcha({ captchaText: code });
4578
4581
  if (isValidCode) {
4579
- sendCode?.();
4580
4582
  onClose?.();
4583
+ sendCode?.();
4581
4584
  }
4582
4585
  else {
4583
- setHasError(isValidCode);
4586
+ setHasError(true);
4584
4587
  }
4588
+ endLoading();
4585
4589
  }, [code, sendCode]);
4586
4590
  const handleCreateCaptcha = useCallback(() => {
4587
4591
  (async () => setCaptcha(URL.createObjectURL(await createCaptcha(phoneNumber))))();
4588
4592
  }, []);
4589
4593
  useEffect(handleCreateCaptcha, []);
4590
- return (jsx(Dialog, { className: "my-6xl max-w-lg w-full min-h-fit mx-auto rounded-lg", head: jsx(Logo, {}), onClose: onClose, children: jsxs("div", { className: "flex flex-col gap-lg items-center rounded-md", children: [jsxs("div", { className: "flex h-36 w-72", children: [jsx("img", { className: "grow", src: captcha }), jsx("div", { onClick: handleCreateCaptcha, className: "flex w-8 items-center justify-center cursor-pointer", children: jsx(Icon, { iconVersion: "normal", name: "RefreshIcon" }) })] }), jsx(Input, { className: "w-[300px]", onChange: setCode, value: code, placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 \u0441 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438" }), hasError ? jsx("div", { className: "text-error", children: "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043E\u0434" }) : null, jsxs("div", { className: "flex w-[310px] justify-between", children: [jsx(Button, { onClick: close, version: "secondary", children: "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F" }), jsx(Button, { type: "submit", disabled: !code, onClick: handleCheckCaptcha, version: "secondary", children: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C" })] })] }) }));
4594
+ return (jsx(Dialog, { className: "my-6xl max-w-lg w-full min-h-fit mx-auto rounded-lg", head: jsx(Logo, {}), onClose: onClose, children: jsxs("div", { className: "flex flex-col gap-lg items-center rounded-md", children: [jsxs("div", { className: "flex h-36 w-72", children: [jsx("img", { className: "grow", src: captcha }), jsx("div", { onClick: handleCreateCaptcha, className: "flex w-8 items-center justify-center cursor-pointer", children: jsx(Icon, { iconVersion: "normal", name: "RefreshIcon" }) })] }), jsx(Input, { className: "w-[300px]", onChange: setCode, value: code, placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 \u0441 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438" }), hasError ? jsx("div", { className: "text-error", children: "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043E\u0434" }) : null, jsxs("div", { className: "flex w-[310px] justify-between", children: [jsx(Button, { onClick: close, version: "secondary", children: "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F" }), jsx(Button, { type: "submit", disabled: !code, onClick: handleCheckCaptcha, version: "secondary", children: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C" })] }), isLoading ? jsx(Loader, { blur: false }) : null] }) }));
4591
4595
  });
4592
4596
 
4593
4597
  const Timer = JSX(({ time, setTime, className }) => {
@@ -4723,7 +4727,7 @@
4723
4727
  setIsTimerStarted(true);
4724
4728
  }
4725
4729
  else {
4726
- captchaDialog.open({ phoneNumber, sendCode: handleSendCode, onClose });
4730
+ captchaDialog.open({ phoneNumber, sendCode: handleSendCode });
4727
4731
  }
4728
4732
  }, [phoneNumber, onClose]);
4729
4733
  useEffect(() => {
@@ -5174,19 +5178,15 @@
5174
5178
  return saveUserData;
5175
5179
  };
5176
5180
 
5177
- const useApplicationLeadApi = ({ inputs, programId, nextStepLink, }) => {
5178
- const [responseStatus, setResponseStatus] = useState('');
5181
+ const useApplicationLeadApi = ({ programId, nextStepLink }) => {
5179
5182
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
5183
+ const [ok, setOK] = useState();
5180
5184
  const saveUserData = useSaveUserData();
5181
5185
  const openEsiaLoginDialog = useEsiaLoginDialog(nextStepLink);
5182
5186
  const consentBkiDialog = useConsentBkiDialog(openEsiaLoginDialog);
5183
5187
  const verifyPhoneDialog = useDialog(VerifyPhoneDialog);
5184
5188
  const draftDialog = useDraftDialog();
5185
5189
  const handleSubmit = useCallback(async (formData) => {
5186
- const feedbackValidator = objectValidator(getObjectValidator(inputs));
5187
- if (!isValidationSuccess(feedbackValidator(formData))) {
5188
- return;
5189
- }
5190
5190
  try {
5191
5191
  startSending();
5192
5192
  const profileId = await createUserProfile({
@@ -5220,7 +5220,7 @@
5220
5220
  }
5221
5221
  }
5222
5222
  catch {
5223
- setResponseStatus('Fail');
5223
+ setOK(false);
5224
5224
  }
5225
5225
  };
5226
5226
  const acceptedConsents = getAcceptedConsents(formData);
@@ -5233,14 +5233,10 @@
5233
5233
  }
5234
5234
  }
5235
5235
  catch {
5236
- setResponseStatus('Fail');
5236
+ setOK(false);
5237
5237
  }
5238
5238
  }, []);
5239
- return {
5240
- handleSubmit,
5241
- responseStatus,
5242
- isSending,
5243
- };
5239
+ return { isSending, ok, handleSubmit };
5244
5240
  };
5245
5241
  const getAcceptedConsents = (formData) => Object.keys(CONSENTS)
5246
5242
  .filter((_) => formData[_])
@@ -5402,19 +5398,22 @@
5402
5398
 
5403
5399
  const ApplicationLeadForm = JSX(({ className, title, programId = '', nextStepLink = '/credit-lead', button, ...rest }) => {
5404
5400
  const inputs = useMemo(() => (applicationFormData?.flatMap((_) => _?.inputs) || []), [applicationFormData]);
5401
+ const formValidator = useMemo(() => getFormValidator(inputs), [inputs]);
5405
5402
  const [initialFormState, { isLoading }] = useInitApplicationLead(inputs, nextStepLink);
5406
- const { handleSubmit, responseStatus, isSending } = useApplicationLeadApi({
5407
- inputs,
5403
+ const { isSending, ok, handleSubmit } = useApplicationLeadApi({
5408
5404
  programId,
5409
5405
  nextStepLink,
5410
5406
  });
5411
- const [, { field, onSubmit }] = useForm(initialFormState, { onSubmit: handleSubmit });
5407
+ const [, { field, onSubmit }] = useForm(initialFormState, {
5408
+ formValidator,
5409
+ onSubmit: handleSubmit,
5410
+ });
5412
5411
  const responseTypeDialog = useDialog(ResponseTypeDialog);
5413
5412
  useEffect(() => {
5414
- if (responseStatus) {
5415
- responseTypeDialog.open({ responseType: responseStatus });
5413
+ if (ok !== undefined) {
5414
+ responseTypeDialog.open({ ok });
5416
5415
  }
5417
- }, [responseStatus]);
5416
+ }, [ok]);
5418
5417
  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$2({ field, inputs: _?.inputs })] }, `section-${i}`))), renderSubmitButton(button, isSending)] }) }));
5419
5418
  });
5420
5419
 
@@ -5757,6 +5756,8 @@
5757
5756
  return (jsxs("div", { className: "flex-1", children: [item?.title ? (jsx("div", { className: "mb-m", children: jsx(Text, { size: "text-m", font: "font-medium", color: "text-primary-text", children: item.title }) })) : null, jsx(SlideCheckboxGroup, { items: options, multiple: !item?.single, ...field(key) })] }, key));
5758
5757
  };
5759
5758
 
5759
+ const identity = (_) => _;
5760
+
5760
5761
  function zip(firstCol, ...restCols) {
5761
5762
  return firstCol.map((firstEl, rowIndex) => [firstEl, ...restCols.map((col) => col[rowIndex])]);
5762
5763
  }
@@ -5802,12 +5803,12 @@
5802
5803
 
5803
5804
  const useFiltrationForm = (initialFormState, { block, page, normalize = identity }) => {
5804
5805
  const blocks = block?.blocks || [];
5805
- const [filtrationState, { field, reset, update }] = useForm(initialFormState);
5806
+ const [filtrationState, operators] = useForm(initialFormState);
5806
5807
  const blocksWithProps = useMemo(() => zip(blocks, blocks.map((b) => resolveBlockProps(b.content, page?.fallback))), [blocks, page?.fallback]);
5807
5808
  const blocksToRender = filtrationState === initialFormState
5808
5809
  ? blocks
5809
5810
  : filterBlocks(blocksWithProps, filtrationState)(normalize);
5810
- return [filtrationState, { blocksToRender, blocksWithProps }, { field, reset, update }];
5811
+ return [filtrationState, { blocksToRender, blocksWithProps }, operators];
5811
5812
  };
5812
5813
 
5813
5814
  const EMPTY_SCHEMA = {};
@@ -6307,7 +6308,7 @@
6307
6308
  isWithdrawn: Boolean(defaultParams?.isWithdrawn),
6308
6309
  isNewClient: Boolean(defaultParams?.isNewClient),
6309
6310
  currency: DEFAULT_CURRENCY,
6310
- }, { normalize });
6311
+ }, { normalizer: normalize });
6311
6312
  const currencyValue = field?.('currency')?.value ?? DEFAULT_CURRENCY;
6312
6313
  const isNewClient = field?.('isNewClient')?.value;
6313
6314
  const row = getRows(rows, currencyValue);
@@ -6733,6 +6734,8 @@
6733
6734
  const CarouselRecommendationCard = JSX(({ className, padding, description, additionalDescription, href, icon, isDotted, __html, socialMedia = [], target, title, align = 'text-left', benefits, imageOptions: { directionRight = true, isImageAlwaysOnRight = ImageAlwaysOnRight, isImageSecondary = false, } = {}, data, ...rest }) => (jsx(BlockWrapper, { className: style('relative min-h-28 group-data-gray:bg-main-divider/50', className), defaultPadding: "p-0", ...rest, children: jsx(LinkWrapper, { href: href, target: target, className: "h-full", data: getAspectsWithInclude(data), children: jsxs(BaseTile, { className: "h-full", defaultPadding: "p-2xl", padding: padding, insetTitle: jsx(Headline, { title: title, description: description, headlineVersion: "XS", isEmbedded: true, align: align }), ...leftOrRightImage(isIcon(icon) ? jsx(Img, { image: icon }) : null, directionRight), buttons: socialMedia.length ? (jsx(SocialMedia, { media: socialMedia, stretched: true, showButtonText: true, version: rest?.version })) : null, isImageAlwaysOnRight: isImageAlwaysOnRight, isImageSecondary: isImageSecondary, imageAlign: "center", children: [jsx(BenefitsList, { benefits: benefits }), __html ? jsx(RichText, { __html: __html, isDotted: isDotted, itemSize: "list-s" }) : null, renderAdditionalDescription(additionalDescription, align)] }) }) })));
6734
6735
  const renderAdditionalDescription = (additionalDescription, align) => additionalDescription ? (jsx(Paragraph, { size: "text-m", font: "font-light", color: "text-secondary-text group-data-secondary:text-white/80", align: align, children: additionalDescription })) : null;
6735
6736
 
6737
+ const carouselTariffsCardEventBus = new EventBus();
6738
+
6736
6739
  const renderCardInfo = (cell, i) => {
6737
6740
  const { title, description, buttons } = cell;
6738
6741
  return (jsxs("div", { className: "py-lg border-b border-main-divider", children: [title ? (jsx("div", { className: "opacity-80", children: jsx(Text, { size: "text-m", color: "text-secondary-text", children: title }) })) : null, description ? (jsx("div", { className: "mt-2xs", children: jsx(Text, { size: "text-xl", color: "text-primary-text", children: description }) })) : null, buttons?.length ? (jsx("div", { className: "text-primary-main", children: renderButtonsSection(buttons) })) : null] }, String(i)));
@@ -6744,20 +6747,21 @@
6744
6747
  ? [cellsNode.slice(0, visibleCellsCount), cellsNode.slice(visibleCellsCount)]
6745
6748
  : [cellsNode, []];
6746
6749
  const [isVisible, setIsVisible] = useState(false);
6747
- useEffect(() => defaultEventBus.subscribe('fold', (event) => {
6748
- if (event && options?.parent !== undefined && event.parent === options?.parent) {
6750
+ useEffect(() => carouselTariffsCardEventBus.subscribe('fold', (event) => {
6751
+ if (event && options?.parent && event.parent === options?.parent) {
6749
6752
  setIsVisible(event.isUnfolded);
6750
6753
  }
6751
6754
  }), [options?.parent]);
6752
- return (jsxs(BlockWrapper, { className: style('flex flex-col', className), defaultPadding: "p-2xl", ...rest, children: [isIcon(icon) ? (jsx("div", { className: "self-center", children: jsx(Img, { image: icon }) })) : null, title ? (jsx(Heading, { className: style('pt-xs', align), headingType: "h5", title: title })) : null, button?.text ? jsx(LinkButton, { className: "w-full mt-m mb-lg", ...button }) : null, hiddenCells.length ? (jsx(Foldable, { renderFoldableSection: () => (jsxs("div", { children: [visibleCells, jsx(FoldableSection, { isUnfolded: isVisible, children: hiddenCells })] })), renderFoldButton: cardCells.length >= visibleCellsCount
6753
- ? renderFoldButton$2(options?.parent, data, isVisible)
6754
- : null })) : (jsx("div", { children: visibleCells }))] }));
6755
+ const toggle = useCallback(() => {
6756
+ carouselTariffsCardEventBus.fire('fold', {
6757
+ type: 'fold',
6758
+ isUnfolded: !isVisible,
6759
+ parent: options?.parent,
6760
+ });
6761
+ }, [isVisible, options?.parent]);
6762
+ return (jsxs(BlockWrapper, { className: style('flex flex-col', className), defaultPadding: "p-2xl", ...rest, children: [isIcon(icon) ? (jsx("div", { className: "self-center", children: jsx(Img, { image: icon }) })) : null, title ? (jsx(Heading, { className: style('pt-xs', align), headingType: "h5", title: title })) : null, button?.text ? jsx(LinkButton, { className: "w-full mt-m mb-lg", ...button }) : null, hiddenCells.length ? (jsx(Foldable, { renderFoldableSection: () => (jsxs("div", { children: [visibleCells, jsx(FoldableSection, { isUnfolded: isVisible, children: hiddenCells })] })), renderFoldButton: () => cardCells.length >= visibleCellsCount ? (jsx(FoldButton, { data: data, isUnfolded: isVisible, onClick: toggle })) : null })) : (jsx("div", { children: visibleCells }))] }));
6755
6763
  });
6756
- const renderFoldButton$2 = (parent, data, isUnfolded = false) => () => (jsxs("button", { className: "w-full cursor-pointer text-primary-main pt-lg flex justify-between items-center", onClick: () => {
6757
- if (parent !== undefined) {
6758
- defaultEventBus.fire('fold', { type: 'fold', isUnfolded: !isUnfolded, parent });
6759
- }
6760
- }, type: "button", ...(isUnfolded ? getAspectsAttributes(data) : {}), children: [jsx("div", { children: isUnfolded ? 'Скрыть' : 'Подробнее о тарифе' }), jsx(Icon, { className: "text-primary-text", name: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16" })] }));
6764
+ const FoldButton = JSX(({ data, isUnfolded = false, onClick }) => (jsxs("button", { className: "w-full cursor-pointer text-primary-main pt-lg flex justify-between items-center", type: "button", onClick: onClick, ...(isUnfolded ? getAspectsAttributes(data) : {}), children: [jsx("div", { children: isUnfolded ? 'Скрыть' : 'Подробнее о тарифе' }), jsx(Icon, { className: "text-primary-text", name: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16" })] })));
6761
6765
 
6762
6766
  const ContactsBlock = JSX(({ className, contacts, info, version = 'secondary', ...rest }) => (jsxs(BlockWrapper, { className: style('flex', className), defaultPadding: "p-6xl", version: version, ...rest, children: [info?.length ? renderBlocks(info) : null, contacts?.length ? renderBlocks(contacts) : null] })));
6763
6767
  const renderBlocks = (info) => (jsx("div", { className: "flex gap-5xl grow basis-0", children: info.map((column, i) => renderBlocksColumn({ column, i })) }));
@@ -6804,6 +6808,33 @@
6804
6808
  return (jsx("div", { className: "py-lg px-5xl bg-white col-span-12", children: jsxs("div", { children: [jsxs("span", { className: "font-bold mr-s", children: ["\u0428\u0430\u0433 ", step + 1, " \u0438\u0437 ", totalSteps, "."] }), stepsTitles[step] || null, jsx(ProgressBar, { step: progress, showPercentage: false })] }) }));
6805
6809
  });
6806
6810
 
6811
+ const calculateInputs = (getValue) => (inputs, step) => inputs
6812
+ .filter((_) => _)
6813
+ .map((_) => {
6814
+ if ([
6815
+ checkIsRetiree(step, getValue),
6816
+ checkBusinessOwner(_, getValue),
6817
+ checkConsentPfrFlg(_, getValue),
6818
+ checkAddressFillFromESIA(_, getValue),
6819
+ checkAddressFact(_, getValue),
6820
+ checkCondition(_, getValue),
6821
+ ].some(Boolean)) {
6822
+ return { ..._, required: false };
6823
+ }
6824
+ return _;
6825
+ });
6826
+ const checkIsRetiree = (step, getValue) => step === 2 && getValue('employment')?.key === 'RETIREE';
6827
+ const checkBusinessOwner = ({ name }, getValue) => name === 'partInBusiness' && getValue('positionOrganization')?.key !== 'BUSINESS_OWNER';
6828
+ const checkAddressFillFromESIA = ({ name, filledByEsia }, getValue) => name?.startsWith('address') && getValue('esiaAccountTypeCd')?.key && filledByEsia;
6829
+ const checkAddressFact = ({ name }, getValue) => name === 'addressFact' && getValue('addressMatch');
6830
+ const checkCondition = ({ condition }, getValue) => condition?.name &&
6831
+ condition?.values?.some((_) => {
6832
+ const dataValue = getValue(condition?.name);
6833
+ return _ !== (dataValue?.key ?? dataValue);
6834
+ });
6835
+ const checkConsentPfrFlg = ({ name }, getValue) => name === 'snils' && isSnilsRequired(getValue);
6836
+ const isSnilsRequired = (getValue) => getValue('confirmationIncome')?.key !== 'PFR_CERTIFICATE';
6837
+
6807
6838
  var STATUS_TYPE;
6808
6839
  (function (STATUS_TYPE) {
6809
6840
  STATUS_TYPE["process"] = "IN_PROCESS";
@@ -6961,40 +6992,14 @@
6961
6992
  return statusesMap[status] || jsx(ReworkStatusContent$1, {});
6962
6993
  };
6963
6994
 
6964
- const calculateInputs = (getValue) => (inputs, step) => inputs
6965
- .filter((_) => _)
6966
- .map((_) => {
6967
- if ([
6968
- checkIsRetiree(step, getValue),
6969
- checkBusinessOwner(_, getValue),
6970
- checkConsentPfrFlg(_, getValue),
6971
- checkAddressFillFromESIA(_, getValue),
6972
- checkAddressFact(_, getValue),
6973
- checkCondition(_, getValue),
6974
- ].some(Boolean)) {
6975
- return { ..._, required: false };
6976
- }
6977
- return _;
6978
- });
6979
- const checkIsRetiree = (step, getValue) => step === 2 && getValue('employment')?.key === 'RETIREE';
6980
- const checkBusinessOwner = ({ name }, getValue) => name === 'partInBusiness' && getValue('positionOrganization')?.key !== 'BUSINESS_OWNER';
6981
- const checkAddressFillFromESIA = ({ name, filledByEsia }, getValue) => name?.startsWith('address') && getValue('esiaAccountTypeCd')?.key && filledByEsia;
6982
- const checkAddressFact = ({ name }, getValue) => name === 'addressFact' && getValue('addressMatch');
6983
- const checkCondition = ({ condition }, getValue) => condition?.name &&
6984
- condition?.values?.some((_) => {
6985
- const dataValue = getValue(condition?.name);
6986
- return _ !== (dataValue?.key ?? dataValue);
6987
- });
6988
- const checkConsentPfrFlg = ({ name }, getValue) => name === 'snils' && isSnilsRequired(getValue);
6989
- const isSnilsRequired = (getValue) => getValue('confirmationIncome')?.key !== 'PFR_CERTIFICATE';
6990
-
6991
- const renderInputs$1 = ({ field, inputs, params }) => inputs.map(getField(field, params, { ...InputsRetailMap, ...InputRetailCardMap }));
6995
+ const InputsMap = { ...InputsRetailMap, ...InputRetailCardMap };
6996
+ const renderInputs$1 = ({ field, inputs, params }) => inputs.map(getField(field, params, InputsMap));
6992
6997
 
6993
6998
  const renderStep$2 = ({ sections, field, step, params }) => sections?.map(({ inputs: origInputs = [], columns, title }, i) => {
6994
- const inputs = calculateInputs(getValue$3(field))(origInputs, step);
6999
+ const inputs = calculateInputs(getValue$1(field))(origInputs, step);
6995
7000
  return (jsxs("div", { className: style(inputColumnStyles(columns), 'grid gap-x-m'), children: [renderTitle(title), renderInputs$1({ field, inputs, params })] }, `section-${i}`));
6996
7001
  });
6997
- const getValue$3 = (field) => (name) => field(name)?.value;
7002
+ const getValue$1 = (field) => (name) => field(name)?.value;
6998
7003
 
6999
7004
  const StepsNavigationButtons$1 = JSX(({ step, isSending, onPrevStep }) => {
7000
7005
  const isFirstStep = step === 0;
@@ -7260,7 +7265,7 @@
7260
7265
  }
7261
7266
  };
7262
7267
 
7263
- const useCreditCardFormAPI = ({ step, inputs, onNextStep, onFinish, }) => {
7268
+ const useCreditCardFormAPI = ({ step, onNextStep, onFinish, }) => {
7264
7269
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
7265
7270
  const isFinalStep = step === 5;
7266
7271
  const retailFormStore = useRetailFormStore();
@@ -7279,10 +7284,6 @@
7279
7284
  }
7280
7285
  }, [isFinalStep, initialState]);
7281
7286
  const handleSubmit = useCallback(async (formData) => {
7282
- const feedbackValidator = objectValidator(getObjectValidator(calculateInputs(getValue$2(formData))(inputs, step)));
7283
- if (!isValidationSuccess(feedbackValidator(formData))) {
7284
- return;
7285
- }
7286
7287
  startSending();
7287
7288
  retailFormStore.leadForm = formData;
7288
7289
  try {
@@ -7311,17 +7312,21 @@
7311
7312
  }, [isFinalStep, resetForm]);
7312
7313
  return [initialState, handleSubmit, isSending];
7313
7314
  };
7314
- const getValue$2 = (formData) => (name) => formData[name];
7315
7315
 
7316
7316
  const CreditCardFormStep = JSX(({ step, sections, isFormFinished, onPrevStep, onNextStep, onFinish }) => {
7317
7317
  const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
7318
+ const formValidator = useCallback((formState) =>
7319
+ // TODO Слишком сложно
7320
+ getFormValidator(calculateInputs((_) => formState[_])(inputs, step))(formState), [inputs]);
7318
7321
  const [initialState, onSubmit, isSending] = useCreditCardFormAPI({
7319
7322
  step,
7320
- inputs,
7321
7323
  onNextStep,
7322
7324
  onFinish,
7323
7325
  });
7324
- const [, { field, onSubmit: handleSubmit }] = useForm(initialState, { onSubmit });
7326
+ const [, { field, onSubmit: handleSubmit }] = useForm(initialState, {
7327
+ formValidator,
7328
+ onSubmit,
7329
+ });
7325
7330
  return isFormFinished ? (jsx(CreditCardFormStatusTracker, {})) : (jsxs("form", { onSubmit: handleSubmit, className: "space-y-m", children: [renderStep$2({ sections, field, step }), jsx(StepsNavigationButtons$1, { isSending: isSending, step: step, onPrevStep: onPrevStep })] }));
7326
7331
  });
7327
7332
 
@@ -7724,7 +7729,7 @@
7724
7729
  setStep((_) => Math.max(_ - 1, 0));
7725
7730
  scrollToTop();
7726
7731
  }, []);
7727
- const sections = useMemo(() => stepsSectionsMap$1[step], [step]);
7732
+ const sections = stepsSectionsMap$1[step];
7728
7733
  const [isFormFinished, { setTrue: handleFinish }] = useBool(false);
7729
7734
  return (jsx(BlockWrapper, { className: className, ...rest, children: jsxs("div", { ref: formContainerRef, className: "container grid grid-cols-12", children: [isFormFinished ? null : (jsx(CreditCardFormProgress, { stepsTitles: TITLES, step: step, totalSteps: STEPS$1 })), jsx("div", { className: "py-lg px-5xl mt-2xs bg-white col-span-12", children: jsx(CreditCardFormStep, { step: step, sections: sections, isFormFinished: isFormFinished, onNextStep: handleNextStep, onPrevStep: handlePrevStep, onFinish: handleFinish }, String(step)) })] }) }));
7730
7735
  });
@@ -7864,10 +7869,10 @@
7864
7869
  const renderInputs = ({ field, inputs, params }) => inputs.map(getField(field, params, { ...InputsRetailMap }));
7865
7870
 
7866
7871
  const renderStep$1 = ({ sections, field, step, params }) => sections?.map(({ inputs: origInputs = [], columns, title }, i) => {
7867
- const inputs = calculateInputs(getValue$1(field))(origInputs, step);
7872
+ const inputs = calculateInputs(getValue(field))(origInputs, step);
7868
7873
  return (jsxs("div", { className: style(inputColumnStyles(columns), 'grid gap-x-m'), children: [renderTitle(title), renderInputs({ field, inputs, params })] }, `section-${i}`));
7869
7874
  });
7870
- const getValue$1 = (field) => (name) => field(name)?.value;
7875
+ const getValue = (field) => (name) => field(name)?.value;
7871
7876
 
7872
7877
  const StepsNavigationButtons = JSX(({ step, onPrevStep, isSending }) => {
7873
7878
  const isFirstStep = step === 0;
@@ -8050,7 +8055,7 @@
8050
8055
  }
8051
8056
  };
8052
8057
 
8053
- const useCreditFormAPI = ({ step, inputs, onNextStep, onFinish, }) => {
8058
+ const useCreditFormAPI = ({ step, onNextStep, onFinish, }) => {
8054
8059
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
8055
8060
  const isFinalStep = step === 5;
8056
8061
  const retailFormStore = useRetailFormStore();
@@ -8071,10 +8076,6 @@
8071
8076
  }
8072
8077
  }, [isFinalStep, initialState]);
8073
8078
  const handleSubmit = useCallback(async (formData) => {
8074
- const feedbackValidator = objectValidator(getObjectValidator(calculateInputs(getValue(formData))(inputs, step)));
8075
- if (!isValidationSuccess(feedbackValidator(formData))) {
8076
- return;
8077
- }
8078
8079
  startSending();
8079
8080
  retailFormStore.leadForm = formData;
8080
8081
  try {
@@ -8103,19 +8104,23 @@
8103
8104
  }, [isFinalStep, resetForm]);
8104
8105
  return [initialState, handleSubmit, isSending];
8105
8106
  };
8106
- const getValue = (formData) => (name) => formData[name];
8107
8107
 
8108
8108
  const CreditFormStep = JSX(({ step, sections, isFormFinished, programsSource, onPrevStep, onNextStep, onFinish }) => {
8109
8109
  const { programId } = useRetailFormStore();
8110
8110
  const calcData = programsSource?.[programId ?? '']; // Need normalizator useForm, to be save defaultParams
8111
8111
  const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
8112
+ const formValidator = useCallback((formState) =>
8113
+ // TODO Слишком сложно
8114
+ getFormValidator(calculateInputs((_) => formState[_])(inputs, step))(formState), [inputs]);
8112
8115
  const [initialState, onSubmit, isSending] = useCreditFormAPI({
8113
8116
  step,
8114
- inputs,
8115
8117
  onNextStep,
8116
8118
  onFinish,
8117
8119
  });
8118
- const [, { field, onSubmit: handleSubmit }] = useForm(initialState, { onSubmit });
8120
+ const [, { field, onSubmit: handleSubmit }] = useForm(initialState, {
8121
+ formValidator,
8122
+ onSubmit,
8123
+ });
8119
8124
  return isFormFinished ? (jsx(CreditFormStatusTracker, {})) : (jsxs("form", { onSubmit: handleSubmit, className: "space-y-m", children: [renderStep$1({ sections, field, step, params: { calcData } }), jsx(StepsNavigationButtons, { step: step, isSending: isSending, onPrevStep: onPrevStep })] }));
8120
8125
  });
8121
8126
 
@@ -8148,7 +8153,7 @@
8148
8153
  setStep((_) => Math.max(_ - 1, 0));
8149
8154
  scrollToTop();
8150
8155
  }, []);
8151
- const sections = useMemo(() => stepsSectionsMap[step], [step]);
8156
+ const sections = stepsSectionsMap[step];
8152
8157
  const isStartStep = step === 0;
8153
8158
  const [isFormFinished, { setTrue: handleFinish }] = useBool(false);
8154
8159
  return (jsx(BlockWrapper, { className: className, ...rest, children: jsxs("div", { ref: formContainerRef, className: "container grid grid-cols-12", children: [isStartStep || isFormFinished ? null : (jsx(CreditFormProgress, { stepsTitles: STEP_TITLES, step: step, totalSteps: STEPS })), jsx("div", { className: "py-lg px-5xl mt-2xs bg-white col-span-12", children: jsx(CreditFormStep, { step: step, sections: sections, isFormFinished: isFormFinished, programsSource: programsSource, onNextStep: handleNextStep, onPrevStep: handlePrevStep, onFinish: handleFinish }, String(step)) })] }) }));
@@ -9572,7 +9577,7 @@
9572
9577
  return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: jsx(CardRow, { className: "flex-wrap", children: additionalInfo?.map(renderInfo) }) }));
9573
9578
  },
9574
9579
  //** TODO: Remove styles with refactoring DefaultFoldButton*/
9575
- renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$3({ isUnfolded, onToggle }) })] }, String(i)));
9580
+ renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$2({ isUnfolded, onToggle }) })] }, String(i)));
9576
9581
  };
9577
9582
  const getAtmPoint = ({ address = '', terminalType, atmCode = '' }) => {
9578
9583
  const header = `${capitalizedFirstLetter(terminalType)} №${atmCode}`;
@@ -9638,7 +9643,7 @@
9638
9643
  workScheduleDescription,
9639
9644
  }) })),
9640
9645
  //** TODO: remove styles with refactoring DefaultFoldButton*/
9641
- renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$3({ isUnfolded, onToggle }) })] }, String(i)));
9646
+ renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$2({ isUnfolded, onToggle }) })] }, String(i)));
9642
9647
  };
9643
9648
  const renderCardContent = ({ workScheduleDescription }) => {
9644
9649
  return (jsxs("div", { children: [jsxs(CardRow, { className: "flex", children: [jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u041E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0438 \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u043A\u0440\u0435\u0434\u0438\u0442\u043E\u0432, \u0441\u0447\u0435\u0442\u043E\u0432, \u0432\u043A\u043B\u0430\u0434\u043E\u0432" }) }), jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u041E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0438 \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0431\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0445 \u043A\u0430\u0440\u0442" }) }), jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u0418\u043D\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u043E\u043D\u043D\u043E\u0435 \u0438 \u043D\u0430\u043A\u043E\u043F\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u043D\u0438\u0435" }) }), jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u0411\u0435\u0437\u043D\u0430\u043B\u0438\u0447\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u0440\u0443\u0431\u043B\u044F\u0445, \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u044B \u0431\u0435\u0437 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F \u0441\u0447\u0451\u0442\u0430" }) })] }), jsx("hr", { className: "text-main-divider pb-xl" }), jsx(CardCell, { label: "\u0420\u0435\u0436\u0438\u043C \u0440\u0430\u0431\u043E\u0442\u044B", className: "max-w-none", children: jsx(Text, { children: workScheduleDescription }) })] }));
@@ -10428,7 +10433,7 @@
10428
10433
  slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
10429
10434
  });
10430
10435
 
10431
- const packageVersion = "0.14.735";
10436
+ const packageVersion = "0.14.737";
10432
10437
 
10433
10438
  exports.Blocks = Blocks;
10434
10439
  exports.ContentPage = ContentPage;