@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
@@ -1082,7 +1082,7 @@
1082
1082
  };
1083
1083
 
1084
1084
  const handleAspects = ({ aspectsAttributes, aspects, ev }) => {
1085
- for (const { aspectName, params } of aspectsAttributes) {
1085
+ for (const { aspectName, params } of aspectsAttributes ?? []) {
1086
1086
  aspects[aspectName ?? '']?.(ev, params);
1087
1087
  }
1088
1088
  };
@@ -1149,64 +1149,99 @@
1149
1149
  useAspects._impl = impl;
1150
1150
  };
1151
1151
 
1152
- const identity = (_) => _;
1152
+ function useBool(defaultValue = false) {
1153
+ const [value, setValue] = useState(defaultValue);
1154
+ const setTrue = useCallback(() => setValue(true), []);
1155
+ const setFalse = useCallback(() => setValue(false), []);
1156
+ const toggle = useCallback(() => setValue(_ => !_), []);
1157
+ return [value, { setValue, setTrue, setFalse, toggle }];
1158
+ }
1153
1159
 
1154
- // eslint-disable-next-line max-lines-per-function
1155
- const useForm = (initialState, { resetOnSubmit, onSubmit, normalize, } = {}) => {
1160
+ const objectValidator = (validatorsMap) => (o) => (o &&
1161
+ Object.entries(validatorsMap ?? {}).flatMap(([key, validator]) => validator ? validator(o[key]) : [])) ||
1162
+ [];
1163
+
1164
+ const isValidationSuccess = (info) => !info?.length;
1165
+ const validator = (predicate) => (message) => (_) => predicate(_) ? [] : [message];
1166
+
1167
+ const EMPTY_VALIDATORS_MAP = {};
1168
+ const NO_ERRORS = [];
1169
+ function useFormValidator(formState, formValidator) {
1170
+ const validatorsMap = useMemo(() => formValidator?.(formState) ?? EMPTY_VALIDATORS_MAP, [formValidator, formState]);
1171
+ const errors = useMemo(() => objectValidator(validatorsMap)(formState) ?? NO_ERRORS, [validatorsMap, formState]);
1172
+ const isValid = isValidationSuccess(errors);
1173
+ return [validatorsMap, { isValid, errors }];
1174
+ }
1175
+
1176
+ const shallowCompare = (a, b) => a && b && (a === b || Object.keys({ ...a, ...b }).every((key) => a[key] === b[key]));
1177
+
1178
+ function useNormalizedFormState(initialState, normalizer, onChange) {
1156
1179
  const [formState, setFormStateUnsafe] = useState(initialState);
1157
- const setFormState = useCallback(normalize
1158
- ? (_) => setFormStateUnsafe(_ instanceof Function
1159
- ? (prev) => {
1160
- const _normalize = normalize(_(prev));
1161
- return shellowCompare(prev, _normalize) ? prev : _normalize;
1162
- }
1163
- : normalize(_))
1164
- : setFormStateUnsafe, [normalize]);
1180
+ const setFormState = useCallback((_) => setFormStateUnsafe((prevState) => {
1181
+ const rawState = _ instanceof Function ? _(prevState) : _;
1182
+ const normalizedState = normalizer ? normalizer(rawState) : rawState;
1183
+ const hasChangedWithNormalization = !shallowCompare(rawState, normalizedState);
1184
+ const nextState = hasChangedWithNormalization ? normalizedState : rawState;
1185
+ const hasChanged = !shallowCompare(prevState, nextState);
1186
+ if (hasChanged) {
1187
+ onChange?.(nextState);
1188
+ }
1189
+ return nextState;
1190
+ }), [normalizer, onChange]);
1165
1191
  useEffect(() => {
1166
- if (normalize) {
1167
- setFormStateUnsafe(normalize);
1168
- }
1169
- }, [normalize]);
1170
- const [isDirtyForm, setDirtyForm] = useState(false);
1171
- const [dirtyFieldsMap, setDirtyFieldsMap] = useState({});
1172
- const field = useCallback((fieldName, options) => {
1173
- const { parse = identity, format = identity } = options || {};
1192
+ if (normalizer) {
1193
+ setFormStateUnsafe(normalizer);
1194
+ }
1195
+ }, [normalizer]);
1196
+ return [formState, setFormState];
1197
+ }
1198
+
1199
+ function useForm(initialState, { resetOnSubmit, formValidator, normalizer, onChange, onSubmit } = {}) {
1200
+ const [formState, setFormState] = useNormalizedFormState(initialState, normalizer, onChange);
1201
+ const [isDirtyForm, { setTrue: markAsDirty, setFalse: markAsClean }] = useBool(false);
1202
+ const dirtyFieldsMap = useRef({});
1203
+ const [fieldValidatorsMap, { isValid, errors }] = useFormValidator(formState, formValidator);
1204
+ const field = useCallback((fieldName, options = {}) => {
1205
+ const { parse, format, onChange: onFieldChange } = options;
1206
+ const value = formState[fieldName];
1207
+ const isDirty = isDirtyForm || dirtyFieldsMap.current?.[String(fieldName)];
1208
+ const fieldValidator = options?.validator ?? fieldValidatorsMap[fieldName];
1209
+ const fieldErrors = isDirty && fieldValidator ? fieldValidator(value) : [];
1174
1210
  return {
1175
- value: format(formState[fieldName]),
1176
- isDirty: isDirtyForm || dirtyFieldsMap[fieldName],
1177
- onChange: (value) => {
1178
- setFormState((prev) => ({ ...prev, [fieldName]: parse(value) }));
1179
- setDirtyFieldsMap((prev) => ({ ...prev, [fieldName]: true }));
1211
+ value: format ? format(value) : value,
1212
+ isDirty,
1213
+ errors: fieldValidator && fieldErrors,
1214
+ error: fieldErrors[0],
1215
+ onChange: (_) => {
1216
+ dirtyFieldsMap.current ||= {};
1217
+ dirtyFieldsMap.current[String(fieldName)] = true;
1218
+ const fieldVal = parse ? parse(_) : _;
1219
+ onFieldChange?.(fieldVal);
1220
+ setFormState((prev) => ({ ...prev, [fieldName]: fieldVal }));
1180
1221
  },
1181
1222
  };
1182
- }, [setFormState, isDirtyForm, dirtyFieldsMap]);
1223
+ }, [formState, isDirtyForm, fieldValidatorsMap, setFormState]);
1183
1224
  const update = useCallback((_) => {
1225
+ dirtyFieldsMap.current = _;
1184
1226
  setFormState(_);
1185
- setDirtyFieldsMap(_);
1186
- }, []);
1227
+ }, [setFormState]);
1187
1228
  const reset = useCallback(() => {
1229
+ dirtyFieldsMap.current = {};
1230
+ markAsClean();
1188
1231
  setFormState(initialState);
1189
- setDirtyForm(false);
1190
- setDirtyFieldsMap({});
1191
- }, [initialState]);
1232
+ }, [initialState, setFormState]);
1192
1233
  const handleSubmit = useCallback((ev) => {
1193
1234
  ev.preventDefault();
1194
- resetOnSubmit ? reset() : setDirtyForm(true);
1195
- onSubmit && onSubmit(formState, ev);
1196
- return formState;
1197
- }, [onSubmit, formState]);
1198
- return [
1199
- formState,
1200
- {
1201
- isDirty: isDirtyForm || Object.values(dirtyFieldsMap).some(Boolean),
1202
- field,
1203
- update,
1204
- reset,
1205
- onSubmit: handleSubmit,
1206
- },
1207
- ];
1208
- };
1209
- const shellowCompare = (a, b) => a && b && Object.keys({ ...a, ...b }).every((key) => a[key] === b[key]);
1235
+ if (isValid) {
1236
+ resetOnSubmit && reset();
1237
+ onSubmit?.(formState, ev);
1238
+ }
1239
+ else {
1240
+ markAsDirty();
1241
+ }
1242
+ }, [resetOnSubmit, formState, isValid, reset, onSubmit]);
1243
+ return [formState, { errors, field, update, reset, onSubmit: handleSubmit }];
1244
+ }
1210
1245
 
1211
1246
  const ApplicationFormLayout = JSX((props) => {
1212
1247
  const { className, title, children, ...rest } = props;
@@ -1227,14 +1262,6 @@
1227
1262
 
1228
1263
  const getConsentDataProcessing = (inputs) => inputs?.find((_) => _?.name === 'consentDataProcessing');
1229
1264
 
1230
- function useBool(defaultValue = false) {
1231
- const [value, setValue] = useState(defaultValue);
1232
- const setTrue = useCallback(() => setValue(true), []);
1233
- const setFalse = useCallback(() => setValue(false), []);
1234
- const toggle = useCallback(() => setValue(_ => !_), []);
1235
- return [value, { setValue, setTrue, setFalse, toggle }];
1236
- }
1237
-
1238
1265
  function useEventListener(target, type, listener, options) {
1239
1266
  useEffect(() => {
1240
1267
  if (!target || !listener) {
@@ -1258,6 +1285,7 @@
1258
1285
  return targetRef;
1259
1286
  }
1260
1287
 
1288
+ // TODO Базовая функицональность всех Control - надо вынести и привязать к required флагу
1261
1289
  const getRequiredLabel = ({ label, errors }) => label && errors ? `${label}*` : label;
1262
1290
 
1263
1291
  const noop = () => {
@@ -1558,182 +1586,6 @@
1558
1586
 
1559
1587
  const SelectControl = JSX(({ className = '', label, error, errors, ...rest }) => (jsxs("div", { className: className, children: [jsx(Select, { ...rest, valid: !error, label: getRequiredLabel({ label, errors }) }), renderErrorText(error)] })));
1560
1588
 
1561
- const getNamesFromInput = (inputs) => Object.values(inputs.filter((_) => _))?.map((_) => _.name);
1562
-
1563
- const isValidationSuccess = (info) => !info?.length;
1564
- const validator = (predicate) => (message) => (_) => predicate(_) ? [] : [message];
1565
-
1566
- const required = validator((_) => _ !== null && _ !== undefined && _ !== '');
1567
-
1568
- const ERROR_MESSAGE = 'Некорректно заполненное поле';
1569
- const ADDRESS_ERROR_MESSAGE = 'Укажите регион, город/населенный пункт, улицу, дом';
1570
- const MIN_AGE = 23;
1571
- const MAX_AGE = 75;
1572
- const AGE_ERROR_MESSAGE = 'Допустимый возраст заёмщика - от 23 до 75 лет';
1573
- const defaultValidator = (errorMsg) => required(errorMsg ?? ERROR_MESSAGE);
1574
- const defaultSelectValidator = (errorMsg) => validator((_) => _?.key && _?.key !== '')(errorMsg ?? ERROR_MESSAGE);
1575
- const jobNumberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 0 && _.length <= 2)(errorMsg ?? ERROR_MESSAGE);
1576
- const nameValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 1 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
1577
- const lengthStringValidator = (inputLength, errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 1 && _.length <= inputLength)(errorMsg ?? ERROR_MESSAGE);
1578
- const serieValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 4)(errorMsg);
1579
- const numberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 6)(errorMsg);
1580
- const innValidator = (errorMsg) => validator((_) => typeof _ === 'string' && (_.length === 10 || _.length === 12))(errorMsg);
1581
- const phoneValidate = (email) => /^(\+7)?[\s-]?\(?[0-9]{3}\)?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$/.test(email);
1582
- const phoneValidator = (errorMsg) => validator(phoneValidate)(errorMsg);
1583
- const agreementValidator = validator((_) => typeof _ === 'boolean' && _)('Согласие обязательно');
1584
- const snilsValidate = (snils) => {
1585
- const snl = String(snils).replace(/[^0-9]+/g, '');
1586
- if (snl.length === 11) {
1587
- let checksum = 0;
1588
- for (let i = 0; i < 9; i++) {
1589
- checksum += parseInt(snl.charAt(i)) * (9 - i);
1590
- }
1591
- if (checksum > 101) {
1592
- checksum = checksum % 101;
1593
- }
1594
- if (checksum === 100 || checksum === 101) {
1595
- checksum = 0;
1596
- }
1597
- return checksum === parseInt(snl.substr(9));
1598
- }
1599
- return false;
1600
- };
1601
- const snilsValidator = (errorMsg) => validator(snilsValidate)(errorMsg);
1602
- const emailValidate = (email) => /^[^\s@]+@[^\s@]+\.[a-zA-Z]{2,4}$/.test(email);
1603
- const emailValidator = (errorMsg) => validator((_) => emailValidate(_))(errorMsg);
1604
- const addressDaDataValidate = (address) => Boolean(address.region && address.city && address.house);
1605
- const addressDaDataValidator = () => validator(addressDaDataValidate)(ADDRESS_ERROR_MESSAGE);
1606
- const addressOrganizationValidator = () => validator((address) => Boolean(address.fiasCode && address.city && address.house))(ADDRESS_ERROR_MESSAGE);
1607
- const codeWordValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 3 && _.length <= 21 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
1608
- const cyrillicPattern = /^[\u0400-\u04FF\d\s]+$/u;
1609
- const isCyrillic = (_ = '') => cyrillicPattern.test(_);
1610
- const limitedBirthdayValidate = (date) => {
1611
- const today = new Date();
1612
- const minDate = new Date(today.getFullYear() - MIN_AGE, today.getMonth(), today.getDate());
1613
- const maxDate = new Date(today.getFullYear() - MAX_AGE, today.getMonth(), today.getDate());
1614
- if (!date || date > minDate || date < maxDate) {
1615
- return false;
1616
- }
1617
- return true;
1618
- };
1619
- const limitedBirthdayValidator = () => validator(limitedBirthdayValidate)(AGE_ERROR_MESSAGE);
1620
-
1621
- const validatorConsentsObj = {
1622
- processPersonalDataFlg: agreementValidator,
1623
- consentProviderFlg: agreementValidator,
1624
- consentInformFlg: agreementValidator,
1625
- consentPfrFlg: agreementValidator,
1626
- consentOthersFlg: agreementValidator,
1627
- };
1628
- const validatorCreditCardObj = {
1629
- addressCourier: addressDaDataValidator(),
1630
- paymentSystem: defaultValidator('Укажите тип платежной системы'),
1631
- currency: defaultValidator('Укажите валюту'),
1632
- cardCategory: defaultValidator('Укажите категорию карты'),
1633
- codeWord: codeWordValidator('Необходимо ввести кодовое слово'),
1634
- confirmationIncome: defaultSelectValidator(),
1635
- methodObtain: defaultValidator(),
1636
- deliveryDate: defaultValidator('Укажите дату доставки'),
1637
- };
1638
- const validatorRetailObj = {
1639
- organization: defaultSelectValidator('Выберите тип организации'),
1640
- organizationAddress: addressOrganizationValidator(),
1641
- organizationPhone: phoneValidator('Укажите номер телефона'),
1642
- organizationName: defaultValidator('Укажите наименование организации'),
1643
- legalForm: defaultValidator('Укажите ОПФ'),
1644
- generalSeniority: jobNumberValidator('Укажите количество лет стажа'),
1645
- lastJobExperience: jobNumberValidator('Укажите стаж на последнем месте работы'),
1646
- experience5Years: jobNumberValidator('Укажите общий стаж за последние 5 лет'),
1647
- jobsNumber: jobNumberValidator('Укажите количество мест работы за последние 5 лет'),
1648
- beginDate: defaultValidator('Укажите дату заключения трудового договора'),
1649
- addressFact: addressDaDataValidator(),
1650
- addressRegistration: addressDaDataValidator(),
1651
- addressRetail: defaultSelectValidator('Выберите адрес банка'),
1652
- addressMatch: defaultValidator(),
1653
- sex: defaultValidator('Укажите свой пол'),
1654
- limitedBirthday: limitedBirthdayValidator(),
1655
- birthPlace: defaultValidator('Укажите место рождения'),
1656
- education: defaultSelectValidator('Выберите ваше образование'),
1657
- housing: defaultSelectValidator('Выберите тип жилья'),
1658
- amountWorkers: defaultSelectValidator('Выберите информацию о количестве сотрудников'),
1659
- employment: defaultSelectValidator('Выберите информацию о трудоустройстве'),
1660
- employerActivities: defaultSelectValidator('Выберите вид деятельности организации'),
1661
- employerOrganization: defaultSelectValidator('Выберите вид организации'),
1662
- positionOrganization: defaultSelectValidator('Выберите вашу должность'),
1663
- familyStatus: defaultSelectValidator('Выберите семейное положение'),
1664
- familyMembers: lengthStringValidator(2, 'Укажите количество членов семьи'),
1665
- children: lengthStringValidator(2, 'Укажите количество детей'),
1666
- dependents: lengthStringValidator(2, 'Укажите количество иждивенцев'),
1667
- totalIncome: lengthStringValidator(19, 'Укажите среднемесячный доход от основной зарплаты'),
1668
- expenses: lengthStringValidator(10, 'Укажите сумму обязательных выплат'),
1669
- snils: snilsValidator('Некорректный номер СНИЛС'),
1670
- conscription: defaultValidator(),
1671
- armyIdFlg: agreementValidator,
1672
- dulSerie: serieValidator('Укажите серию паспорта'),
1673
- dulNumber: numberValidator('Укажите номер паспорта'),
1674
- dulIssueDateField: defaultValidator('Укажите дату выдачи паспорта'),
1675
- dulSubdivisionCode: numberValidator('Укажите код подразделения'),
1676
- dulIssuedBy: defaultValidator('Укажите организацию, выдавшую паспорт'),
1677
- participantDateRegistration: defaultValidator('Укажите дату регистрации'),
1678
- retirementIncome: defaultValidator(),
1679
- otherIncome: defaultValidator(),
1680
- wages: defaultValidator(),
1681
- mandatoryPayments: defaultValidator(),
1682
- disablePeopleFlg: defaultValidator(),
1683
- bankruptcyFlg: defaultValidator(),
1684
- shareholderFlg: defaultValidator(),
1685
- legalEntityName: defaultValidator(),
1686
- bankEmployeeCode: defaultValidator(),
1687
- partInBusiness: defaultValidator(),
1688
- regionRetail: defaultSelectValidator('Выберите регион'),
1689
- };
1690
- const validatorObj = {
1691
- fullName: defaultValidator(),
1692
- addressBranch: defaultSelectValidator(),
1693
- desiredMeetingDate: defaultValidator(),
1694
- product: defaultValidator(),
1695
- localities: defaultValidator(),
1696
- partnerComments: defaultValidator(),
1697
- collectionCount: defaultValidator(),
1698
- acquiringType: defaultSelectValidator(),
1699
- serviceType: defaultSelectValidator(),
1700
- annualRevenue: defaultValidator(),
1701
- feedbackMethod: defaultSelectValidator(),
1702
- serviceDirection: defaultSelectValidator(),
1703
- secondaryPhone: phoneValidator('Укажите номер телефона'),
1704
- region: defaultSelectValidator(),
1705
- surname: nameValidator('Укажите свою фамилию'),
1706
- name: nameValidator('Укажите своё имя'),
1707
- middleName: nameValidator('Укажите своё отчество'),
1708
- birthday: defaultValidator('Укажите дату рождения'),
1709
- phone: phoneValidator('Укажите номер телефона'),
1710
- email: emailValidator('Укажите электронную почту'),
1711
- inn: innValidator('Укажите ИНН'),
1712
- comment: defaultValidator(),
1713
- typeForm: defaultValidator(),
1714
- consentToReceiveMaterials: agreementValidator,
1715
- consentDataProcessing: agreementValidator,
1716
- ...validatorConsentsObj,
1717
- ...validatorRetailObj,
1718
- ...validatorCreditCardObj,
1719
- };
1720
- const getObjectValidator = (inputs) => {
1721
- const requiredInputs = getNamesFromInput(inputs.filter((_) => Boolean(_?.required)));
1722
- return Object.fromEntries(requiredInputs.map((_) => [_, validatorObj?.[_ || '']]).filter(([, validator]) => validator));
1723
- };
1724
-
1725
- const withValidator = (props, validator) => {
1726
- const { value, isDirty } = props;
1727
- const errors = isDirty ? validator(value) : [];
1728
- return {
1729
- ...props,
1730
- errors,
1731
- error: errors[0],
1732
- };
1733
- };
1734
-
1735
- const getValidation = (field, validator, required = false) => required && validator ? withValidator(field, validator) : field;
1736
-
1737
1589
  const ACQUIRING_TYPES = [
1738
1590
  {
1739
1591
  text: 'Торговый эквайринг',
@@ -1752,7 +1604,7 @@
1752
1604
  key: 'all',
1753
1605
  },
1754
1606
  ];
1755
- 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) })));
1607
+ 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 ?? '') })));
1756
1608
  const isAcquiringTrade = (key = '') => Boolean(key === 'trade' || key === 'all');
1757
1609
 
1758
1610
  const isFilled = (_) => _ !== null && _ !== undefined;
@@ -1857,7 +1709,7 @@
1857
1709
  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 = '' }) => ({
1858
1710
  key: address,
1859
1711
  text: address,
1860
- })), ...getValidation(field('addressBranch'), validatorObj.addressBranch, input?.required), isSearch: true }));
1712
+ })), ...field(input?.name ?? ''), isSearch: true }));
1861
1713
  });
1862
1714
 
1863
1715
  const useNormalizedInput = (props, { normalize, format }) => {
@@ -1921,11 +1773,11 @@
1921
1773
  const MIN_CREDIT_AMOUNT = 1000;
1922
1774
  const MAX_CREDIT_AMOUNT = 1000000000;
1923
1775
  const ITEMS_CREDIT_AMOUNT = ['От 1 000 ₽', 'До 1 000 000 000 ₽'];
1924
- 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') })));
1776
+ 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 ?? '') })));
1925
1777
 
1926
- 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) })));
1778
+ 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 ?? '') })));
1927
1779
 
1928
- 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') })));
1780
+ 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 ?? '') })));
1929
1781
 
1930
1782
  const useElementSpace = (ref, heightEl) => {
1931
1783
  const [spaceAbove, setSpaceAbove] = useState(false);
@@ -2218,11 +2070,11 @@
2218
2070
 
2219
2071
  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)] })));
2220
2072
 
2221
- 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) })));
2073
+ const BirthdayField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...field(input?.name ?? '') })));
2222
2074
 
2223
- 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) })));
2075
+ 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 ?? '') })));
2224
2076
 
2225
- 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 })));
2077
+ 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 })));
2226
2078
 
2227
2079
  const SVG = JSX(({ className, viewBox, fill = 'none', width, height, paths, ...commonOptions }) => {
2228
2080
  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) => {
@@ -2257,14 +2109,12 @@
2257
2109
  const role = (isRadio = false) => (isRadio ? 'radio' : 'checkbox');
2258
2110
  const checkboxStyle = (value = false) => style('rounded border', { 'bg-primary-main': value });
2259
2111
 
2260
- const FIELD_NAME$c = 'consentToReceiveMaterials';
2261
- 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) })));
2112
+ 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 ?? '') })));
2262
2113
 
2263
- 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) })));
2114
+ 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 ?? '') })));
2264
2115
 
2265
2116
  const EmailField = JSX(({ field, input }) => {
2266
- const { required, ...rest } = input;
2267
- 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 }));
2117
+ return jsx(InputControl, { label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...field(input?.name ?? ''), ...input });
2268
2118
  });
2269
2119
 
2270
2120
  const SERVICE_TYPES = [{ key: 'ULTRASERVICE', text: 'Ультра' }];
@@ -2277,9 +2127,9 @@
2277
2127
  { key: 'email', text: 'Электронное сообщение' },
2278
2128
  ];
2279
2129
 
2280
- 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) })));
2130
+ 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 ?? '') })));
2281
2131
 
2282
- const FullNameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0418\u041E", ...getValidation(field('fullName'), validatorObj.fullName, input?.required), ...input })));
2132
+ const FullNameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0418\u041E", ...field(input?.name ?? ''), ...input })));
2283
2133
 
2284
2134
  function copy(source, target) {
2285
2135
  for (const [k, v] of source.entries()) {
@@ -2557,7 +2407,7 @@
2557
2407
  qcHouse: '',
2558
2408
  });
2559
2409
  }, []);
2560
- 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 }));
2410
+ 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 }));
2561
2411
  });
2562
2412
  const getAddressFromDaDataItem = (item) => ({
2563
2413
  apartment: item?.data?.flat,
@@ -2603,12 +2453,12 @@
2603
2453
  field?.('organizationName')?.onChange?.(item.data?.name?.short_with_opf);
2604
2454
  updateOrganizationFields(store, field, item);
2605
2455
  }, []);
2606
- return (jsx(InputControl, { label: "\u0418\u041D\u041D", isInteger: true, maxLength: 12, ...input, ...getValidation(field('inn'), validatorObj.inn, input?.required), onDaDataChange: onDaDataChange }));
2456
+ return (jsx(InputControl, { label: "\u0418\u041D\u041D", isInteger: true, maxLength: 12, ...input, ...field(input?.name ?? ''), onDaDataChange: onDaDataChange }));
2607
2457
  });
2608
2458
 
2609
2459
  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)] })));
2610
2460
 
2611
- 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"' })));
2461
+ 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"' })));
2612
2462
 
2613
2463
  const OUT_SERVICE_BASE_URL = `${API_BASE_URI}/outservice`;
2614
2464
  const EMPTY_REGIONS$1 = [];
@@ -2621,30 +2471,24 @@
2621
2471
  const fieldRegion = field('region');
2622
2472
  const regionKey = fieldRegion?.value?.key;
2623
2473
  const { data: regions } = useAsyncData('outServiceRegions', getOutServiceRegions);
2624
- const localities = regions
2625
- ?.find((_) => _.code === regionKey)
2626
- ?.localities?.map((_) => ({ key: _, text: _ }));
2474
+ const localities = useMemo(() => regions?.find((_) => _.code === regionKey)?.localities?.map((_) => ({ key: _, text: _ })), [regions, regionKey]);
2627
2475
  useEffect(() => {
2628
2476
  if (regionKey !== '') {
2629
- field?.('localities')?.onChange?.('');
2477
+ field?.(input?.name ?? '')?.onChange?.('');
2630
2478
  }
2631
- }, [regionKey]);
2632
- 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 }));
2479
+ }, [regionKey, input?.name ?? '']);
2480
+ 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 }));
2633
2481
  });
2634
2482
 
2635
- const FIELD_NAME$b = 'middleName';
2636
- 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 })));
2483
+ 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 })));
2637
2484
 
2638
- 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 })));
2485
+ const NameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0418\u043C\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), ...field(input?.name ?? ''), ...input })));
2639
2486
 
2640
2487
  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] })));
2641
2488
 
2642
- 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);
2489
+ 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);
2643
2490
 
2644
- const PartnerCommentsField = JSX(({ field, input }) => {
2645
- const { required, ...rest } = input;
2646
- 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 }));
2647
- });
2491
+ 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 })));
2648
2492
 
2649
2493
  const isPlaceholder = (_) => _ === '_';
2650
2494
  const isDigit = (_) => /\d/.test(_);
@@ -2674,12 +2518,12 @@
2674
2518
 
2675
2519
  const PhoneField = JSX(({ field, input }) => {
2676
2520
  const fieldName = input?.name || 'phone';
2677
- 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 }));
2521
+ return (jsx(InputPhoneControl, { label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...field(fieldName), disabled: input?.filledByEsia && isEsiaAuthorize(field, fieldName), ...input }));
2678
2522
  });
2679
2523
 
2680
2524
  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);
2681
2525
 
2682
- 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) })));
2526
+ 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 ?? '') })));
2683
2527
  const arrayToOptions = (array) => (array ?? []).map((_) => ({ key: _, value: _ }));
2684
2528
 
2685
2529
  const REGIONS_URL = `${API_BASE_URI}/regions`;
@@ -2696,7 +2540,7 @@
2696
2540
  const RegionField = JSX(({ field, input, params }) => {
2697
2541
  const url = getRegionUrl(params?.typeForm);
2698
2542
  const regions = useRegions(url);
2699
- 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) }));
2543
+ 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 ?? '') }));
2700
2544
  });
2701
2545
 
2702
2546
  const RegionPremiumField = JSX(({ field, input }) => {
@@ -2705,9 +2549,191 @@
2705
2549
  key: region,
2706
2550
  text: region,
2707
2551
  })), [branchByRegions]);
2708
- 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) }));
2552
+ 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 ?? '') }));
2709
2553
  });
2710
2554
 
2555
+ const withValidator = (props, validator) => {
2556
+ const { value, isDirty } = props;
2557
+ const errors = isDirty ? validator(value) : [];
2558
+ return {
2559
+ ...props,
2560
+ errors,
2561
+ error: errors[0],
2562
+ };
2563
+ };
2564
+
2565
+ const required = validator((_) => _ !== null && _ !== undefined && _ !== '');
2566
+
2567
+ const ERROR_MESSAGE = 'Некорректно заполненное поле';
2568
+ const ADDRESS_ERROR_MESSAGE = 'Укажите регион, город/населенный пункт, улицу, дом';
2569
+ const MIN_AGE = 23;
2570
+ const MAX_AGE = 75;
2571
+ const AGE_ERROR_MESSAGE = 'Допустимый возраст заёмщика - от 23 до 75 лет';
2572
+ const defaultValidator = (errorMsg) => required(errorMsg ?? ERROR_MESSAGE);
2573
+ const defaultSelectValidator = (errorMsg) => validator((_) => _?.key && _?.key !== '')(errorMsg ?? ERROR_MESSAGE);
2574
+ const jobNumberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 0 && _.length <= 2)(errorMsg ?? ERROR_MESSAGE);
2575
+ const nameValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 1 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
2576
+ const lengthStringValidator = (inputLength, errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 1 && _.length <= inputLength)(errorMsg ?? ERROR_MESSAGE);
2577
+ const serieValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 4)(errorMsg);
2578
+ const numberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 6)(errorMsg);
2579
+ const innValidator = (errorMsg) => validator((_) => typeof _ === 'string' && (_.length === 10 || _.length === 12))(errorMsg);
2580
+ const phoneValidate = (email) => /^(\+7)?[\s-]?\(?[0-9]{3}\)?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$/.test(email);
2581
+ const phoneValidator = (errorMsg) => validator(phoneValidate)(errorMsg);
2582
+ const agreementValidator = validator((_) => typeof _ === 'boolean' && _)('Согласие обязательно');
2583
+ const snilsValidate = (snils) => {
2584
+ const snl = String(snils).replace(/[^0-9]+/g, '');
2585
+ if (snl.length === 11) {
2586
+ let checksum = 0;
2587
+ for (let i = 0; i < 9; i++) {
2588
+ checksum += parseInt(snl.charAt(i)) * (9 - i);
2589
+ }
2590
+ if (checksum > 101) {
2591
+ checksum = checksum % 101;
2592
+ }
2593
+ if (checksum === 100 || checksum === 101) {
2594
+ checksum = 0;
2595
+ }
2596
+ return checksum === parseInt(snl.substr(9));
2597
+ }
2598
+ return false;
2599
+ };
2600
+ const snilsValidator = (errorMsg) => validator(snilsValidate)(errorMsg);
2601
+ const emailValidate = (email) => /^[^\s@]+@[^\s@]+\.[a-zA-Z]{2,4}$/.test(email);
2602
+ const emailValidator = (errorMsg) => validator((_) => emailValidate(_))(errorMsg);
2603
+ const addressDaDataValidate = (address) => Boolean(address.region && address.city && address.house);
2604
+ const addressDaDataValidator = () => validator(addressDaDataValidate)(ADDRESS_ERROR_MESSAGE);
2605
+ const addressOrganizationValidator = () => validator((address) => Boolean(address.fiasCode && address.city && address.house))(ADDRESS_ERROR_MESSAGE);
2606
+ const codeWordValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 3 && _.length <= 21 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
2607
+ const cyrillicPattern = /^[\u0400-\u04FF\d\s]+$/u;
2608
+ const isCyrillic = (_ = '') => cyrillicPattern.test(_);
2609
+ const limitedBirthdayValidate = (date) => {
2610
+ const today = new Date();
2611
+ const minDate = new Date(today.getFullYear() - MIN_AGE, today.getMonth(), today.getDate());
2612
+ const maxDate = new Date(today.getFullYear() - MAX_AGE, today.getMonth(), today.getDate());
2613
+ if (!date || date > minDate || date < maxDate) {
2614
+ return false;
2615
+ }
2616
+ return true;
2617
+ };
2618
+ const limitedBirthdayValidator = () => validator(limitedBirthdayValidate)(AGE_ERROR_MESSAGE);
2619
+
2620
+ const validatorConsentsObj = {
2621
+ processPersonalDataFlg: agreementValidator,
2622
+ consentProviderFlg: agreementValidator,
2623
+ consentInformFlg: agreementValidator,
2624
+ consentPfrFlg: agreementValidator,
2625
+ consentOthersFlg: agreementValidator,
2626
+ };
2627
+ const validatorCreditCardObj = {
2628
+ addressCourier: addressDaDataValidator(),
2629
+ paymentSystem: defaultValidator('Укажите тип платежной системы'),
2630
+ currency: defaultValidator('Укажите валюту'),
2631
+ cardCategory: defaultValidator('Укажите категорию карты'),
2632
+ codeWord: codeWordValidator('Необходимо ввести кодовое слово'),
2633
+ confirmationIncome: defaultSelectValidator(),
2634
+ methodObtain: defaultValidator(),
2635
+ deliveryDate: defaultValidator('Укажите дату доставки'),
2636
+ };
2637
+ const validatorRetailObj = {
2638
+ organization: defaultSelectValidator('Выберите тип организации'),
2639
+ organizationAddress: addressOrganizationValidator(),
2640
+ organizationPhone: phoneValidator('Укажите номер телефона'),
2641
+ organizationName: defaultValidator('Укажите наименование организации'),
2642
+ legalForm: defaultValidator('Укажите ОПФ'),
2643
+ generalSeniority: jobNumberValidator('Укажите количество лет стажа'),
2644
+ lastJobExperience: jobNumberValidator('Укажите стаж на последнем месте работы'),
2645
+ experience5Years: jobNumberValidator('Укажите общий стаж за последние 5 лет'),
2646
+ jobsNumber: jobNumberValidator('Укажите количество мест работы за последние 5 лет'),
2647
+ beginDate: defaultValidator('Укажите дату заключения трудового договора'),
2648
+ addressFact: addressDaDataValidator(),
2649
+ addressRegistration: addressDaDataValidator(),
2650
+ addressRetail: defaultSelectValidator('Выберите адрес банка'),
2651
+ addressMatch: defaultValidator(),
2652
+ sex: defaultValidator('Укажите свой пол'),
2653
+ limitedBirthday: limitedBirthdayValidator(),
2654
+ birthPlace: defaultValidator('Укажите место рождения'),
2655
+ education: defaultSelectValidator('Выберите ваше образование'),
2656
+ housing: defaultSelectValidator('Выберите тип жилья'),
2657
+ amountWorkers: defaultSelectValidator('Выберите информацию о количестве сотрудников'),
2658
+ employment: defaultSelectValidator('Выберите информацию о трудоустройстве'),
2659
+ employerActivities: defaultSelectValidator('Выберите вид деятельности организации'),
2660
+ employerOrganization: defaultSelectValidator('Выберите вид организации'),
2661
+ positionOrganization: defaultSelectValidator('Выберите вашу должность'),
2662
+ familyStatus: defaultSelectValidator('Выберите семейное положение'),
2663
+ familyMembers: lengthStringValidator(2, 'Укажите количество членов семьи'),
2664
+ children: lengthStringValidator(2, 'Укажите количество детей'),
2665
+ dependents: lengthStringValidator(2, 'Укажите количество иждивенцев'),
2666
+ totalIncome: lengthStringValidator(19, 'Укажите среднемесячный доход от основной зарплаты'),
2667
+ expenses: lengthStringValidator(10, 'Укажите сумму обязательных выплат'),
2668
+ snils: snilsValidator('Некорректный номер СНИЛС'),
2669
+ conscription: defaultValidator(),
2670
+ armyIdFlg: agreementValidator,
2671
+ dulSerie: serieValidator('Укажите серию паспорта'),
2672
+ dulNumber: numberValidator('Укажите номер паспорта'),
2673
+ dulIssueDateField: defaultValidator('Укажите дату выдачи паспорта'),
2674
+ dulSubdivisionCode: numberValidator('Укажите код подразделения'),
2675
+ dulIssuedBy: defaultValidator('Укажите организацию, выдавшую паспорт'),
2676
+ participantDateRegistration: defaultValidator('Укажите дату регистрации'),
2677
+ retirementIncome: defaultValidator(),
2678
+ otherIncome: defaultValidator(),
2679
+ wages: defaultValidator(),
2680
+ mandatoryPayments: defaultValidator(),
2681
+ disablePeopleFlg: defaultValidator(),
2682
+ bankruptcyFlg: defaultValidator(),
2683
+ shareholderFlg: defaultValidator(),
2684
+ legalEntityName: defaultValidator(),
2685
+ bankEmployeeCode: defaultValidator(),
2686
+ partInBusiness: defaultValidator(),
2687
+ regionRetail: defaultSelectValidator('Выберите регион'),
2688
+ };
2689
+ const validatorObj = {
2690
+ fullName: defaultValidator(),
2691
+ addressBranch: defaultSelectValidator(),
2692
+ desiredMeetingDate: defaultValidator(),
2693
+ product: defaultValidator(),
2694
+ localities: defaultValidator(),
2695
+ partnerComments: defaultValidator(),
2696
+ collectionCount: defaultValidator(),
2697
+ acquiringType: defaultSelectValidator(),
2698
+ serviceType: defaultSelectValidator(),
2699
+ annualRevenue: defaultValidator(),
2700
+ feedbackMethod: defaultSelectValidator(),
2701
+ serviceDirection: defaultSelectValidator(),
2702
+ secondaryPhone: phoneValidator('Укажите номер телефона'),
2703
+ region: defaultSelectValidator(),
2704
+ surname: nameValidator('Укажите свою фамилию'),
2705
+ name: nameValidator('Укажите своё имя'),
2706
+ middleName: nameValidator('Укажите своё отчество'),
2707
+ birthday: defaultValidator('Укажите дату рождения'),
2708
+ phone: phoneValidator('Укажите номер телефона'),
2709
+ email: emailValidator('Укажите электронную почту'),
2710
+ inn: innValidator('Укажите ИНН'),
2711
+ comment: defaultValidator(),
2712
+ typeForm: defaultValidator(),
2713
+ consentToReceiveMaterials: agreementValidator,
2714
+ consentDataProcessing: agreementValidator,
2715
+ ...validatorConsentsObj,
2716
+ ...validatorRetailObj,
2717
+ ...validatorCreditCardObj,
2718
+ };
2719
+ const getFormValidator = (fieldDefs) => {
2720
+ const requiredFields = fieldDefs.filter((_) => Boolean(_?.required && _?.name));
2721
+ const hasConditions = requiredFields.some((_) => _.condition?.values);
2722
+ const requiredFieldValidatorsMap = Object.fromEntries(requiredFields.filter(byNonEmptyValidator).map(({ name }) => [name, validatorObj[name ?? '']]));
2723
+ return (formState) => hasConditions
2724
+ ? Object.fromEntries(requiredFields
2725
+ .filter(byNonEmptyValidator)
2726
+ .filter(byCondition(formState))
2727
+ .map(({ name }) => [name, validatorObj[name ?? '']]))
2728
+ : requiredFieldValidatorsMap;
2729
+ };
2730
+ const byNonEmptyValidator = ({ name }) => Boolean(validatorObj[name ?? '']);
2731
+ const byCondition = (formState) => (fieldDef) => !fieldDef?.condition ||
2732
+ fieldDef.condition.values.find((_) => {
2733
+ const dependencyValue = formState?.[fieldDef?.condition?.name ?? ''];
2734
+ return _ === (dependencyValue?.key ?? dependencyValue);
2735
+ });
2736
+
2711
2737
  const SecondaryPhoneField = JSX(({ field }) => {
2712
2738
  const fieldPhone = field('secondaryPhone');
2713
2739
  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 ('
@@ -2715,23 +2741,23 @@
2715
2741
  : withValidator(fieldPhone, validatorObj.secondaryPhone)) }));
2716
2742
  });
2717
2743
 
2718
- 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) })));
2744
+ 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 ?? '') })));
2719
2745
 
2720
- const FIELD_NAME$a = 'surname';
2721
- 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 })));
2746
+ const FIELD_NAME$2 = 'surname';
2747
+ 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 })));
2722
2748
 
2723
2749
  const MIN_CREDIT_TERM = 1;
2724
2750
  const MAX_CREDIT_TERM = 180;
2725
2751
  const ITEMS_CREDIT_TERM = ['От 1 мес', 'До 15 лет'];
2726
2752
  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') })));
2727
2753
 
2728
- 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) })));
2754
+ 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 ?? '') })));
2729
2755
 
2730
2756
  const orientationStyleMap = {
2731
2757
  horizontal: '@lg:flex-row',
2732
2758
  vertical: '',
2733
2759
  };
2734
- 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)))) })] })));
2760
+ 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)))) })] })));
2735
2761
 
2736
2762
  const VED_TYPES = [
2737
2763
  { id: 'currencyControl', text: 'Валютный контроль' },
@@ -2739,15 +2765,14 @@
2739
2765
  { id: 'conversionTransactions', text: 'Конверсионные операции' },
2740
2766
  { id: 'otherIssues', text: 'Иные вопросы ВЭД' },
2741
2767
  ];
2742
- const VedField = JSX(({ field }) => {
2743
- const { value, onChange } = field('vedTypes');
2744
- useEffect(() => {
2745
- if (value !== 'currencyControl') {
2746
- field?.('inn')?.onChange?.('');
2747
- field?.('region')?.onChange?.('');
2768
+ const VedField = JSX(({ field, input }) => {
2769
+ const handleChange = useCallback((_) => {
2770
+ if (_ !== 'currencyControl') {
2771
+ field('inn').onChange?.('');
2772
+ field('region').onChange?.('');
2748
2773
  }
2749
- }, [value]);
2750
- 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(_) }) }));
2774
+ }, []);
2775
+ 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 }) }) }));
2751
2776
  });
2752
2777
 
2753
2778
  function isRenderField({ input, field, }) {
@@ -2759,42 +2784,42 @@
2759
2784
  const PRODUCT_REF = {
2760
2785
  $ref: '/wcms-resources/outservice-productlist.json',
2761
2786
  };
2762
- const InputsMap = {
2763
- fullName: (props) => jsx(FullNameField, { ...props }),
2764
- addressBranch: (props) => jsx(AddressBranchField, { ...props }),
2765
- desiredMeetingDate: (props) => jsx(DesiredMeetingDateField, { ...props }),
2787
+ const InputsMap$1 = {
2788
+ fullName: FullNameField,
2789
+ addressBranch: AddressBranchField,
2790
+ desiredMeetingDate: DesiredMeetingDateField,
2766
2791
  product: (props) => jsx(ProductField, { ...props, source: PRODUCT_REF }),
2767
- localities: (props) => jsx(LocalitiesField, { ...props }),
2768
- isClient: (props) => jsx(IsClientField, { ...props }),
2769
- partnerComments: (props) => jsx(PartnerCommentsField, { ...props }),
2770
- collectionCount: (props) => jsx(CollectionCountField, { ...props }),
2771
- acquiringType: (props) => jsx(AcquiringField, { ...props }),
2772
- onlineCheckout: (props) => jsx(OnlineCheckoutField, { ...props }),
2773
- posTerminal: (props) => jsx(PosTerminalField, { ...props }),
2774
- serviceType: (props) => jsx(UltraPremiumField, { ...props }),
2775
- term: (props) => jsx(TermField, { ...props }),
2776
- amount: (props) => jsx(AmountField, { ...props }),
2777
- annualRevenue: (props) => jsx(AnnualRevenueField, { ...props }),
2778
- vedTypes: (props) => jsx(VedField, { ...props }),
2779
- feedbackMethod: (props) => jsx(FeedbackMethodField, { ...props }),
2780
- serviceDirection: (props) => jsx(ServiceDirectionField, { ...props }),
2781
- bankEmpolee: (props) => jsx(BankEmpoleeField, { ...props }),
2782
- secondaryPhone: (props) => jsx(SecondaryPhoneField, { ...props }),
2792
+ localities: LocalitiesField,
2793
+ isClient: IsClientField,
2794
+ partnerComments: PartnerCommentsField,
2795
+ collectionCount: CollectionCountField,
2796
+ acquiringType: AcquiringField,
2797
+ onlineCheckout: OnlineCheckoutField,
2798
+ posTerminal: PosTerminalField,
2799
+ serviceType: UltraPremiumField,
2800
+ term: TermField,
2801
+ amount: AmountField,
2802
+ annualRevenue: AnnualRevenueField,
2803
+ vedTypes: VedField,
2804
+ feedbackMethod: FeedbackMethodField,
2805
+ serviceDirection: ServiceDirectionField,
2806
+ bankEmpolee: BankEmpoleeField,
2807
+ secondaryPhone: SecondaryPhoneField,
2783
2808
  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 })),
2784
2809
  region: (props) => getPremium(props?.params?.typeForm) ? (jsx(RegionPremiumField, { ...props })) : (jsx(RegionField, { ...props })),
2785
- consentToReceiveMaterials: (props) => (jsx(ConsentToReceiveMaterialsField, { ...props })),
2786
- surname: (props) => jsx(SurnameField, { ...props }),
2787
- name: (props) => jsx(NameField, { ...props }),
2788
- middleName: (props) => jsx(MiddleNameField, { ...props }),
2789
- birthday: (props) => jsx(BirthdayField, { ...props }),
2790
- phone: (props) => jsx(PhoneField, { ...props }),
2791
- email: (props) => jsx(EmailField, { ...props }),
2792
- inn: (props) => jsx(InnField, { ...props }),
2793
- comment: (props) => jsx(CommentField, { ...props }),
2810
+ consentToReceiveMaterials: ConsentToReceiveMaterialsField,
2811
+ surname: SurnameField,
2812
+ name: NameField,
2813
+ middleName: MiddleNameField,
2814
+ birthday: BirthdayField,
2815
+ phone: PhoneField,
2816
+ email: EmailField,
2817
+ inn: InnField,
2818
+ comment: CommentField,
2794
2819
  };
2795
2820
  const getField = (field, params, externalInputs = {}) => (input, i) => {
2796
2821
  const resultInputsMap = {
2797
- ...InputsMap,
2822
+ ...InputsMap$1,
2798
2823
  ...externalInputs,
2799
2824
  };
2800
2825
  return isRenderField({ input, field }) ? (jsx("div", { children: resultInputsMap[input?.name || '']?.({ field, input, params }) }, String(i))) : null;
@@ -2844,21 +2869,16 @@
2844
2869
 
2845
2870
  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 })] })));
2846
2871
 
2847
- const ResponseTypeDialog = JSX(({ responseType, typeForm, onClose }) => {
2848
- const responseOK = responseType === 'OK';
2849
- const statusIcon = responseOK ? 'ResponseOKIcon' : 'ResponseFailIcon';
2872
+ const ResponseTypeDialog = JSX(({ ok, typeForm, onClose }) => {
2873
+ const statusIcon = ok ? 'ResponseOKIcon' : 'ResponseFailIcon';
2850
2874
  const responseOKDescription = typeForm === 'ANTIFRAUD'
2851
2875
  ? `Сообщение отправлено. Для уточнения информации с Вами могут связаться работники Банка либо Вы
2852
2876
  можете самостоятельно позвонить по номеру контакт-центра +78001000100. Будьте внимательны, работники Банка
2853
2877
  не звонят с использованием мессенджеров.`
2854
2878
  : 'Совсем скоро мы с вами свяжемся';
2855
- 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" })] }) }));
2879
+ 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" })] }) }));
2856
2880
  });
2857
2881
 
2858
- const objectValidator = (validatorsMap) => (o) => (o &&
2859
- Object.entries(validatorsMap).flatMap(([key, validator]) => validator(o[key]))) ||
2860
- [];
2861
-
2862
2882
  const getPartnerComments = (data) => {
2863
2883
  const { acquiringType, onlineCheckout = false, posTerminal = false, term, amount, annualRevenue, } = data;
2864
2884
  if (acquiringType) {
@@ -2936,46 +2956,28 @@
2936
2956
  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" })] })] })] }));
2937
2957
 
2938
2958
  const API = LeadServiceAPI();
2939
- const ApplicationForm = JSX(
2940
- // eslint-disable-next-line max-lines-per-function
2941
- ({ className, title, typeForm = '', sections = [], button, link, endpoint, additionalParams, isContacts, data, ...rest }) => {
2942
- const inputs = (sections?.flatMap((_) => _?.inputs) || []);
2943
- const initialFormState = getInitialFormState$3(inputs, typeForm);
2944
- const [responseType, setResponseType] = useState('');
2959
+ const ApplicationForm = JSX(({ className, title, typeForm = '', sections = [], button, link, endpoint, additionalParams, isContacts, data, ...rest }) => {
2960
+ const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
2961
+ const initialFormState = useMemo(() => getInitialFormState$3(inputs, typeForm), [inputs, typeForm]);
2962
+ const formValidator = useMemo(() => getFormValidator(inputs), [inputs]);
2945
2963
  const responseTypeDialog = useDialog(ResponseTypeDialog);
2964
+ const aspects = useAspects();
2946
2965
  const handleSubmit = useCallback(async (formData, ev) => {
2947
- const inputsFiltered = getFilteredInputs(inputs, formData);
2948
- const feedbackValidator = objectValidator(getObjectValidator(inputsFiltered));
2949
- if (!isValidationSuccess(feedbackValidator(formData))) {
2950
- return console.warn('validation fail');
2951
- }
2952
2966
  const formatData = getFormatData({ ...formData, ...additionalParams });
2953
- const status = (await API.send(formatData, endpoint === 'lead')) ? 'OK' : 'Fail';
2954
- setResponseType(status);
2955
- if (status) {
2956
- responseTypeDialog.open({ typeForm, responseType: status });
2957
- }
2958
- if (status === 'OK' && data) {
2959
- const aspects = useAspects();
2967
+ const ok = Boolean(await API.send(formatData, endpoint === 'lead'));
2968
+ responseTypeDialog.open({ ok, typeForm });
2969
+ if (ok) {
2960
2970
  handleAspects({ aspectsAttributes: data, aspects, ev });
2961
2971
  }
2962
- return status;
2963
2972
  }, [typeForm]);
2964
- const [, { field, onSubmit, reset }] = useForm(initialFormState, { onSubmit: handleSubmit });
2973
+ const [, { field, onSubmit }] = useForm(initialFormState, {
2974
+ resetOnSubmit: true,
2975
+ formValidator,
2976
+ onSubmit: handleSubmit,
2977
+ });
2965
2978
  const fieldName = getConsentDataProcessing(inputs)?.name;
2966
- useEffect(() => {
2967
- if (responseType === 'OK') {
2968
- setResponseType('');
2969
- reset();
2970
- }
2971
- }, [responseType]);
2972
2979
  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] }));
2973
2980
  });
2974
- const getFilteredInputs = (inputs, data) => inputs.filter((input) => !input?.condition ||
2975
- input?.condition.values.find((_) => {
2976
- const dataValue = data?.[input?.condition?.name ?? ''];
2977
- return _ === (dataValue?.key ?? dataValue);
2978
- }));
2979
2981
 
2980
2982
  const applicationFormData = [
2981
2983
  {
@@ -3047,11 +3049,11 @@
3047
3049
  qcHouse: '',
3048
3050
  });
3049
3051
  }, []);
3050
- 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 }));
3052
+ return (jsx(InputControl, { label: "\u0410\u0434\u0440\u0435\u0441", disabled: value, ...field(fieldName), value: fieldValue?.fullAddress, onChange: onChange, ...input, onDaDataChange: onDaDataChange }));
3051
3053
  });
3052
3054
 
3053
3055
  const AddressMatchField = JSX(({ field, input }) => {
3054
- 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) }));
3056
+ 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 ?? '') }));
3055
3057
  });
3056
3058
 
3057
3059
  const MapMarkerClusterIcon = '/icons/MapMarkerClusterIcon.svg';
@@ -3484,7 +3486,7 @@
3484
3486
 
3485
3487
  const ICONS$1 = ['ArrowDownIcon', 'ArrowUpIcon'];
3486
3488
  const labels = ['Подробнее', 'Скрыть'];
3487
- 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" })] }));
3489
+ 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" })] }));
3488
3490
 
3489
3491
  const renderWorkSchedule = (workSchedule) => {
3490
3492
  const workScheduleWeek = getWorkScheduleWeek(workSchedule);
@@ -3533,7 +3535,7 @@
3533
3535
  }) }));
3534
3536
  },
3535
3537
  //** TODO: remove styles with refactoring DefaultFoldButton*/
3536
- renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$3({ isUnfolded, onToggle }) })] }, String(i)));
3538
+ renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$2({ isUnfolded, onToggle }) })] }, String(i)));
3537
3539
  };
3538
3540
  const renderCardContent$1 = ({ phone, fax, phoneBusiness, phoneNatural, phoneCallCentre, phoneCurrencyControl, workSchedule, exchangeRate, }) => {
3539
3541
  const workScheduleWeek = getWorkScheduleWeek(workSchedule);
@@ -3647,14 +3649,14 @@
3647
3649
  const [offices, setOffices] = useState([]);
3648
3650
  const { data } = useLeadFormData('REGION_RF');
3649
3651
  const regionValue = field('regionRetail')?.value || {};
3650
- const fieldBranch = field('addressRetail');
3652
+ const addressField = field(input?.name ?? '');
3651
3653
  useEffect(() => {
3652
3654
  (async () => {
3653
3655
  const officesList = await fetchRegionOffices(regionValue?.key ?? '');
3654
3656
  setOffices(officesList);
3655
3657
  })();
3656
3658
  if (regionValue?.key) {
3657
- field?.('addressRetail')?.onChange?.('');
3659
+ addressField.onChange?.('');
3658
3660
  }
3659
3661
  }, [regionValue.key]);
3660
3662
  const { points } = useOfficesAtmsMapData({
@@ -3662,21 +3664,20 @@
3662
3664
  filtrationState: {},
3663
3665
  getBalloon: getOfficePoint,
3664
3666
  });
3665
- const isRegionSelected = Boolean(regionValue?.key);
3666
3667
  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 = '' }) => ({
3667
3668
  key: id?.toString() || '',
3668
3669
  text: address,
3669
- })), ...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 }) }) })] }));
3670
+ })), ...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 }) }) })] }));
3670
3671
  });
3671
3672
 
3672
- const SelectField = UniBlock(({ field, source, fieldName, input, placeholder = 'Выберите из списка',
3673
+ const SelectField = UniBlock(({ field, source, fieldName, placeholder = 'Выберите из списка',
3673
3674
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3674
3675
  options, ...rest }) => {
3675
3676
  const leadOptions = source?.map((_) => ({
3676
3677
  key: _.key || '',
3677
3678
  text: _.value,
3678
3679
  })) || [];
3679
- return (jsx(SelectControl, { placeholder: placeholder, options: leadOptions, ...getValidation(field(fieldName), validatorObj[fieldName], input?.required), ...rest }));
3680
+ return (jsx(SelectControl, { placeholder: placeholder, options: leadOptions, ...field(fieldName), ...rest }));
3680
3681
  });
3681
3682
 
3682
3683
  const AmountWorkersField = JSX(({ field, input }) => {
@@ -3690,16 +3691,16 @@
3690
3691
  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 }));
3691
3692
  });
3692
3693
 
3693
- 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) })));
3694
+ 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 ?? '') })));
3694
3695
 
3695
- 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 })));
3696
+ 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 })));
3696
3697
 
3697
- 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) })));
3698
+ 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 ?? '') })));
3698
3699
 
3699
- 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 })));
3700
+ 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 })));
3700
3701
 
3701
- const FIELD_NAME$9 = 'birthPlace';
3702
- 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) })));
3702
+ const FIELD_NAME$1 = 'birthPlace';
3703
+ 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) })));
3703
3704
 
3704
3705
  const getCardTypes = async (paymentSystemTypeCd, creditProgramId) => {
3705
3706
  const data = await fetchRetailJSON('/dictionaryFiltered', 'POST', {
@@ -3751,9 +3752,9 @@
3751
3752
  });
3752
3753
  const isValidCardCategory = (cardTypes, selectedCardCategory) => cardTypes.some((cardType) => cardType.key === selectedCardCategory?.key);
3753
3754
 
3754
- 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 })));
3755
+ 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 })));
3755
3756
 
3756
- 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 })));
3757
+ const CodeWordField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u0434\u043E\u0432\u043E\u0435 \u0441\u043B\u043E\u0432\u043E", ...field(input?.name ?? ''), ...input })));
3757
3758
 
3758
3759
  const ConfirmationIncomeField = JSX(({ field, input }) => {
3759
3760
  const { data: confirmationIncome } = useLeadFormData('INCOME_CERT_UNITED');
@@ -3816,7 +3817,7 @@
3816
3817
  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)] }));
3817
3818
  });
3818
3819
 
3819
- 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);
3820
+ const ConsentField = JSX(({ field, input }) => input && input.name ? (jsx(CheckboxWithDoc, { text: CONSENTS[input.name]?.text, docId: CONSENTS[input.name]?.docId, ...field(input.name) })) : null);
3820
3821
 
3821
3822
  const MONTHS_IN_YEAR$1 = 12;
3822
3823
  const MONTHLY_INTEREST_RATE = MONTHS_IN_YEAR$1 * 100;
@@ -4045,7 +4046,7 @@
4045
4046
  };
4046
4047
  const CalculatorCredit = UniBlock(({ className, title, calcSource, buttons, footnote, paramsViewSettings, defaultParams, onChange, ...rest }) => {
4047
4048
  const defaultParamsCals = getDefaultParamsMin(calcSource?.rateRows);
4048
- const [userInputParams, { field, isDirty }] = useForm({
4049
+ const [userInputParams, { field }] = useForm({
4049
4050
  moneyValue: getMoneyDefaultValue(defaultParams, CREDIT_DEFAULT_SUM),
4050
4051
  monthsValue: getMonthsDefaultValue(defaultParams, DEFAULT_MONTHS),
4051
4052
  isAnnuity: Boolean(defaultParams?.isAnnuity),
@@ -4053,10 +4054,7 @@
4053
4054
  isSalaryClient: Boolean(defaultParams?.isEnableSalaryClient),
4054
4055
  isPensionClient: Boolean(defaultParams?.isEnablePensionClient),
4055
4056
  isStateEmployee: Boolean(defaultParams?.isEnableStateEmployee),
4056
- });
4057
- useEffect(() => {
4058
- isDirty && onChange?.(userInputParams);
4059
- }, [userInputParams, isDirty]);
4057
+ }, { onChange });
4060
4058
  const calcParams = getCreditCalculatorParams(userInputParams, calcSource, paramsViewSettings);
4061
4059
  const paymentTypeElement = renderPaymentType({
4062
4060
  title: 'Тип платежа',
@@ -4101,12 +4099,12 @@
4101
4099
  });
4102
4100
  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] }));
4103
4101
 
4104
- const FIELD_NAME$8 = 'calculator';
4102
+ const FIELD_NAME = 'calculator';
4105
4103
  const CreditCalcField = JSX(({ field, params }) => {
4106
4104
  const handleChange = useCallback((_) => {
4107
- field(FIELD_NAME$8).onChange?.(_);
4105
+ field(FIELD_NAME).onChange?.(_);
4108
4106
  }, []);
4109
- return (jsx(CalculatorCredit, { ...params?.calcData, padding: "p-0", defaultParams: defaultValueAdapter(field(FIELD_NAME$8).value), onChange: handleChange }));
4107
+ return (jsx(CalculatorCredit, { ...params?.calcData, padding: "p-0", defaultParams: defaultValueAdapter(field(FIELD_NAME).value), onChange: handleChange }));
4110
4108
  });
4111
4109
  const PARAMS_MAP = {
4112
4110
  moneyValue: 'sum',
@@ -4131,44 +4129,36 @@
4131
4129
  return (jsx(SelectField, { field: field, source: creditInRshbCd, label: LABEL_TEXT, fieldName: "creditInRshbCd", input: input, disabled: !field?.('shareholderFlg')?.value }));
4132
4130
  });
4133
4131
 
4134
- 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)] })));
4132
+ 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)] })));
4135
4133
 
4136
- const CurrencyField = JSX(({ field, input }) => {
4137
- const { value, onChange } = field('currency');
4138
- const currencyTypes = [{ id: '810', text: 'Рубли' }];
4139
- 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) }));
4140
- });
4134
+ const CURRENCY_TYPES = [{ id: '810', text: 'Рубли' }];
4135
+ const CurrencyField = JSX(({ field, input }) => (jsx(RadioButtonGroupControl, { label: "\u0412\u0430\u043B\u044E\u0442\u0430", orientation: "horizontal", items: CURRENCY_TYPES, ...field(input?.name ?? '') })));
4141
4136
 
4142
- 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) })));
4137
+ const DeliveryDateFiels = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438", ...field(input?.name ?? '') })));
4143
4138
 
4144
- 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 })));
4139
+ 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 })));
4145
4140
 
4146
- 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) })));
4141
+ 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 ?? '') })));
4147
4142
 
4148
- const FIELD_NAME$7 = 'dulIssueDateField';
4149
- 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) })));
4143
+ 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 ?? '') })));
4150
4144
 
4151
- const FIELD_NAME$6 = 'dulIssuedBy';
4152
4145
  const DulIssuedByField = JSX(({ field, input }) => {
4153
4146
  const { value: dulSubdivisionCode, onChange: changeDulSubdivisionCode } = field('dulSubdivisionCode');
4154
4147
  const onDaDataChange = useCallback((item) => {
4155
4148
  changeDulSubdivisionCode?.(item?.data?.code?.replace('-', ''));
4156
4149
  }, []);
4157
- 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 }));
4150
+ 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 }));
4158
4151
  });
4159
4152
 
4160
- const FIELD_NAME$5 = 'dulNumber';
4161
- 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) })));
4153
+ 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 ?? '') })));
4162
4154
 
4163
- const FIELD_NAME$4 = 'dulSerie';
4164
- 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) })));
4155
+ 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 ?? '') })));
4165
4156
 
4166
- const FIELD_NAME$3 = 'dulSubdivisionCode';
4167
4157
  const DulSubdivisionCodeField = JSX(({ field, input }) => {
4168
4158
  const onDaDataChange = useCallback((item) => {
4169
4159
  field?.('dulIssuedBy')?.onChange?.(item?.data?.name);
4170
4160
  }, []);
4171
- 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 }));
4161
+ 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 }));
4172
4162
  });
4173
4163
 
4174
4164
  const EducationField = JSX(({ field, input }) => {
@@ -4203,27 +4193,26 @@
4203
4193
  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 }));
4204
4194
  });
4205
4195
 
4206
- 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 })));
4196
+ 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 })));
4207
4197
 
4208
- const FIELD_NAME$2 = 'experience5Years';
4209
4198
  const MAX_YEARS = 5;
4210
4199
  const MIN_YEARS = 0;
4211
4200
  const Experience5YearsField = JSX(({ field, input }) => {
4212
- const onChange = useCallback((value) => field(FIELD_NAME$2)?.onChange?.(String(clamp(Number(value), MIN_YEARS, MAX_YEARS))), []);
4213
- 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 }));
4201
+ const onChange = useCallback((value) => field(input?.name ?? '')?.onChange?.(String(clamp(Number(value), MIN_YEARS, MAX_YEARS))), []);
4202
+ 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 }));
4214
4203
  });
4215
4204
 
4216
- const FamilyMembersField = JSX(({ field }) => {
4217
- const { value, onChange } = field('familyMembers');
4205
+ const FamilyMembersField = JSX(({ field, input }) => {
4206
+ const { value, onChange } = field(input?.name ?? '');
4218
4207
  const familyStatusKey = field('familyStatus')?.value?.key;
4219
4208
  const adultsCount = familyStatusKey === 'MARRIED' ? 2 : 1;
4220
4209
  const childrenCount = Number(field('children')?.value);
4221
4210
  const dependentsCount = Number(field('dependents')?.value);
4222
4211
  const totalCount = adultsCount + childrenCount + dependentsCount;
4223
4212
  useEffect(() => {
4224
- field?.('familyMembers')?.onChange?.(totalCount);
4213
+ onChange?.(totalCount);
4225
4214
  }, [familyStatusKey, childrenCount, dependentsCount]);
4226
- 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?.(_) }));
4215
+ 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 }));
4227
4216
  });
4228
4217
 
4229
4218
  const FamilyStatusField = JSX(({ field, input }) => {
@@ -4231,7 +4220,7 @@
4231
4220
  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 }));
4232
4221
  });
4233
4222
 
4234
- 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 })));
4223
+ 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 })));
4235
4224
 
4236
4225
  const HousingField = JSX(({ field, input }) => {
4237
4226
  const { data: housing } = useLeadFormData('HOUSE_TYPE');
@@ -4242,26 +4231,25 @@
4242
4231
 
4243
4232
  const InfoCardField = JSX(({ input }) => (jsx(InfoCard, { __html: input?.label })));
4244
4233
 
4245
- 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 })));
4234
+ 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 })));
4246
4235
 
4247
- 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 })));
4236
+ 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 })));
4248
4237
 
4249
4238
  const LegalEntityNameField = JSX(({ field, input }) => {
4250
- 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 }));
4239
+ 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 }));
4251
4240
  });
4252
4241
 
4253
- 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 })));
4242
+ 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 })));
4254
4243
 
4255
- const FIELD_NAME$1 = 'limitedBirthday';
4256
- 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) })));
4244
+ 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 ?? '') })));
4257
4245
 
4258
- 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 })));
4246
+ 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 })));
4259
4247
 
4260
4248
  const METHODS_OF_OBTAIN = [
4261
4249
  { id: 'office', text: 'В отделении Банка' },
4262
4250
  { id: 'courier', text: 'Курьерская доставка' },
4263
4251
  ];
4264
- const MethodObtainField = JSX(({ field, input }) => (jsx(RadioButtonGroupControl, { orientation: "horizontal", items: METHODS_OF_OBTAIN, ...getValidation(field('methodObtain'), validatorObj.methodObtain, input?.required) })));
4252
+ const MethodObtainField = JSX(({ field, input }) => (jsx(RadioButtonGroupControl, { orientation: "horizontal", items: METHODS_OF_OBTAIN, ...field(input?.name ?? '') })));
4265
4253
 
4266
4254
  const OrganizationField = JSX(({ field, input }) => {
4267
4255
  const { data } = useLeadFormData('ORGANIZATION_TYPE');
@@ -4280,19 +4268,18 @@
4280
4268
  field?.('inn')?.onChange?.(item.data?.inn);
4281
4269
  updateOrganizationFields(store, field, item);
4282
4270
  }, []);
4283
- 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 }));
4271
+ 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 }));
4284
4272
  });
4285
4273
 
4286
- 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 })));
4274
+ 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 })));
4287
4275
 
4288
- 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) })));
4276
+ 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 ?? '') })));
4289
4277
 
4290
4278
  const MAX_PART = 100;
4291
4279
  const MIN_PART = 0;
4292
- const FIELD_NAME = 'partInBusiness';
4293
4280
  const PartInBusinessField = JSX(({ field, input }) => {
4294
- const onChange = useCallback((value) => field(FIELD_NAME)?.onChange?.(String(clamp(Number(value), MIN_PART, MAX_PART))), []);
4295
- 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 }));
4281
+ const onChange = useCallback((value) => field(input?.name ?? '')?.onChange?.(String(clamp(Number(value), MIN_PART, MAX_PART))), []);
4282
+ 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 }));
4296
4283
  });
4297
4284
 
4298
4285
  const getPaymentSystems = async (creditProgramId) => {
@@ -4306,22 +4293,34 @@
4306
4293
  text: _.name,
4307
4294
  }));
4308
4295
 
4296
+ function useAsyncEffect(effect, deps) {
4297
+ useEffect(() => {
4298
+ const free = effect();
4299
+ return () => {
4300
+ free.then((_) => {
4301
+ _ instanceof Function && _();
4302
+ });
4303
+ };
4304
+ }, deps);
4305
+ }
4306
+
4307
+ const optionKey = (option) => option?.key;
4309
4308
  const PaymentSystemField = JSX(({ field, input }) => {
4310
- const { value, onChange } = field('paymentSystem');
4311
- const [programId] = useLocalStorage('programId');
4312
4309
  const [paymentSystemOptions, setPaymentSystemOptions] = useState([]);
4313
- useEffect(() => {
4310
+ const localStore = useLocalStore();
4311
+ useAsyncEffect(async () => {
4312
+ const { programId } = localStore;
4314
4313
  if (programId) {
4315
- (async () => {
4316
- const fetchedPaymentSystems = await getPaymentSystems(programId);
4317
- setPaymentSystemOptions(fetchedPaymentSystems || []);
4318
- })();
4314
+ const fetchedPaymentSystems = await getPaymentSystems(programId);
4315
+ setPaymentSystemOptions(fetchedPaymentSystems ?? []);
4319
4316
  }
4320
4317
  }, []);
4321
- const handleChange = useCallback((type) => onChange?.(paymentSystemOptions?.find((_) => _.key === type)), [paymentSystemOptions, onChange]);
4322
- 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 }));
4318
+ const items = useMemo(() => paymentSystemOptions?.map((_) => ({ id: _.key, text: _.text })) ?? [], [paymentSystemOptions]);
4319
+ 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 ?? '', {
4320
+ format: optionKey,
4321
+ parse: (key) => paymentSystemOptions?.find((_) => _.key === key),
4322
+ }) }));
4323
4323
  });
4324
- const formatPaymentSystems = (paymentSystems) => paymentSystems?.map((_) => ({ id: _.key, text: _.text })) ?? [];
4325
4324
 
4326
4325
  const PositionOrganizationField = JSX(({ field, input }) => {
4327
4326
  const { data: positionOrganization } = useLeadFormData('POSITION');
@@ -4331,10 +4330,10 @@
4331
4330
  const RegionRetailField = JSX(({ field, input }) => {
4332
4331
  const { data: regions } = useLeadFormData('REGION_RF');
4333
4332
  const formatRegions = regions?.map(({ key, value }) => ({ key, text: value }));
4334
- 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) }));
4333
+ 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 ?? '') }));
4335
4334
  });
4336
4335
 
4337
- 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 })));
4336
+ 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 })));
4338
4337
 
4339
4338
  const GENDERS = ['male', 'female'];
4340
4339
  const getGenderFromName = async (name) => {
@@ -4364,10 +4363,10 @@
4364
4363
  })();
4365
4364
  }
4366
4365
  }, []);
4367
- return (jsx(RadioButtonGroupControl, { label: "\u041F\u043E\u043B", orientation: "horizontal", items: SEX_TYPES, ...getValidation(field('sex'), validatorObj.sex, input?.required) }));
4366
+ return (jsx(RadioButtonGroupControl, { label: "\u041F\u043E\u043B", orientation: "horizontal", items: SEX_TYPES, ...field(input?.name ?? '') }));
4368
4367
  });
4369
4368
 
4370
- 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) })));
4369
+ 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 ?? '') })));
4371
4370
 
4372
4371
  const SnilsInput = JSX(({ children, onChange, maxLength, ...inputProps }) => {
4373
4372
  const handleChange = useCallback((v) => maxLength
@@ -4383,86 +4382,86 @@
4383
4382
 
4384
4383
  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)] })));
4385
4384
 
4386
- const SnilsField = JSX(({ field, input }) => (jsx(InputSnilsControl, { label: "\u0421\u041D\u0418\u041B\u0421", maxLength: 14, ...getValidation(field('snils'), validatorObj.snils, input?.required), ...input })));
4385
+ const SnilsField = JSX(({ field, input }) => (jsx(InputSnilsControl, { label: "\u0421\u041D\u0418\u041B\u0421", maxLength: 14, ...field(input?.name ?? ''), ...input })));
4387
4386
 
4388
- 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 })));
4387
+ 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 })));
4389
4388
 
4390
- 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 })));
4389
+ 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 })));
4391
4390
 
4392
4391
  const InputsApplicationLeadMap = {
4393
- limitedBirthday: (props) => jsx(LimitedBirthdayField, { ...props }),
4392
+ limitedBirthday: LimitedBirthdayField,
4394
4393
  };
4395
4394
  const InputsConsentsMap = {
4396
- processPersonalDataFlg: (props) => jsx(ConsentField, { ...props }),
4397
- consentProviderFlg: (props) => jsx(ConsentField, { ...props }),
4398
- consentOthersFlg: (props) => jsx(ConsentField, { ...props }),
4399
- consentInformFlg: (props) => jsx(ConsentField, { ...props }),
4400
- consentPfrFlg: (props) => jsx(ConsentField, { ...props }),
4395
+ processPersonalDataFlg: ConsentField,
4396
+ consentProviderFlg: ConsentField,
4397
+ consentOthersFlg: ConsentField,
4398
+ consentInformFlg: ConsentField,
4399
+ consentPfrFlg: ConsentField,
4401
4400
  };
4402
4401
  const InputsRetailMap = {
4403
- organization: (props) => jsx(OrganizationField, { ...props }),
4404
- organizationAddress: (props) => jsx(AddressField, { ...props }),
4405
- organizationPhone: (props) => jsx(PhoneField, { ...props }),
4406
- organizationName: (props) => jsx(OrganizationNameField, { ...props }),
4407
- legalForm: (props) => jsx(LegalFormField, { ...props }),
4408
- generalSeniority: (props) => jsx(GeneralSeniorityField, { ...props }),
4409
- lastJobExperience: (props) => jsx(LastJobExperienceField, { ...props }),
4410
- experience5Years: (props) => jsx(Experience5YearsField, { ...props }),
4411
- jobsNumber: (props) => jsx(JobsNumberField, { ...props }),
4412
- beginDate: (props) => jsx(BeginDateField, { ...props }),
4413
- addressFact: (props) => jsx(AddressFactField, { ...props }),
4414
- addressRegistration: (props) => jsx(AddressField, { ...props }),
4415
- addressRetail: (props) => jsx(AddressRetailField, { ...props }),
4416
- addressMatch: (props) => jsx(AddressMatchField, { ...props }),
4417
- sex: (props) => jsx(SexField, { ...props }),
4418
- limitedBirthday: (props) => jsx(LimitedBirthdayField, { ...props }),
4419
- birthPlace: (props) => jsx(BirthPlaceField, { ...props }),
4420
- education: (props) => jsx(EducationField, { ...props }),
4421
- housing: (props) => jsx(HousingField, { ...props }),
4422
- amountWorkers: (props) => jsx(AmountWorkersField, { ...props }),
4423
- employment: (props) => jsx(EmploymentField, { ...props }),
4424
- employerActivities: (props) => jsx(EmployerActivitiesField, { ...props }),
4425
- employerOrganization: (props) => jsx(EmployerOrganizationField, { ...props }),
4426
- positionOrganization: (props) => jsx(PositionOrganizationField, { ...props }),
4427
- familyStatus: (props) => jsx(FamilyStatusField, { ...props }),
4428
- familyMembers: (props) => jsx(FamilyMembersField, { ...props }),
4429
- children: (props) => jsx(ChildrenField, { ...props }),
4430
- dependents: (props) => jsx(DependentsField, { ...props }),
4431
- totalIncome: (props) => jsx(TotalIncomeField, { ...props }),
4432
- expenses: (props) => jsx(ExpensesField, { ...props }),
4433
- snils: (props) => jsx(SnilsField, { ...props }),
4434
- conscription: (props) => jsx(ConscriptionField, { ...props }),
4435
- armyIdFlg: (props) => jsx(ArmyIdFlgField, { ...props }),
4436
- dulSerie: (props) => jsx(DulSerieField, { ...props }),
4437
- dulNumber: (props) => jsx(DulNumberField, { ...props }),
4438
- dulIssueDateField: (props) => jsx(DulIssueDateField, { ...props }),
4439
- dulSubdivisionCode: (props) => jsx(DulSubdivisionCodeField, { ...props }),
4440
- dulIssuedBy: (props) => jsx(DulIssuedByField, { ...props }),
4441
- participantDateRegistration: (props) => (jsx(ParticipantDateRegistrationField, { ...props })),
4442
- retirementIncome: (props) => jsx(RetirementIncomeField, { ...props }),
4443
- otherIncome: (props) => jsx(OtherIncomeField, { ...props }),
4444
- wages: (props) => jsx(WagesField, { ...props }),
4445
- mandatoryPayments: (props) => jsx(MandatoryPaymentsField, { ...props }),
4446
- disablePeopleFlg: (props) => jsx(DisablePeopleFlgField, { ...props }),
4447
- bankruptcyFlg: (props) => jsx(BankruptcyFlgField, { ...props }),
4448
- shareholderFlg: (props) => jsx(ShareholderFlgField, { ...props }),
4449
- legalEntityName: (props) => jsx(LegalEntityNameField, { ...props }),
4450
- creditInRshbCd: (props) => jsx(CreditInRshbCdField, { ...props }),
4451
- bankEmployeeCode: (props) => jsx(BankEmpoleeCodeField, { ...props }),
4452
- partInBusiness: (props) => jsx(PartInBusinessField, { ...props }),
4453
- regionRetail: (props) => jsx(RegionRetailField, { ...props }),
4454
- infoCard: (props) => jsx(InfoCardField, { ...props }),
4455
- calculator: (props) => jsx(CreditCalcField, { ...props }),
4456
- confirmationIncome: (props) => jsx(ConfirmationIncomeField, { ...props }),
4402
+ organization: OrganizationField,
4403
+ organizationAddress: AddressField,
4404
+ organizationPhone: PhoneField,
4405
+ organizationName: OrganizationNameField,
4406
+ legalForm: LegalFormField,
4407
+ generalSeniority: GeneralSeniorityField,
4408
+ lastJobExperience: LastJobExperienceField,
4409
+ experience5Years: Experience5YearsField,
4410
+ jobsNumber: JobsNumberField,
4411
+ beginDate: BeginDateField,
4412
+ addressFact: AddressFactField,
4413
+ addressRegistration: AddressField,
4414
+ addressRetail: AddressRetailField,
4415
+ addressMatch: AddressMatchField,
4416
+ sex: SexField,
4417
+ limitedBirthday: LimitedBirthdayField,
4418
+ birthPlace: BirthPlaceField,
4419
+ education: EducationField,
4420
+ housing: HousingField,
4421
+ amountWorkers: AmountWorkersField,
4422
+ employment: EmploymentField,
4423
+ employerActivities: EmployerActivitiesField,
4424
+ employerOrganization: EmployerOrganizationField,
4425
+ positionOrganization: PositionOrganizationField,
4426
+ familyStatus: FamilyStatusField,
4427
+ familyMembers: FamilyMembersField,
4428
+ children: ChildrenField,
4429
+ dependents: DependentsField,
4430
+ totalIncome: TotalIncomeField,
4431
+ expenses: ExpensesField,
4432
+ snils: SnilsField,
4433
+ conscription: ConscriptionField,
4434
+ armyIdFlg: ArmyIdFlgField,
4435
+ dulSerie: DulSerieField,
4436
+ dulNumber: DulNumberField,
4437
+ dulIssueDateField: DulIssueDateField,
4438
+ dulSubdivisionCode: DulSubdivisionCodeField,
4439
+ dulIssuedBy: DulIssuedByField,
4440
+ participantDateRegistration: ParticipantDateRegistrationField,
4441
+ retirementIncome: RetirementIncomeField,
4442
+ otherIncome: OtherIncomeField,
4443
+ wages: WagesField,
4444
+ mandatoryPayments: MandatoryPaymentsField,
4445
+ disablePeopleFlg: DisablePeopleFlgField,
4446
+ bankruptcyFlg: BankruptcyFlgField,
4447
+ shareholderFlg: ShareholderFlgField,
4448
+ legalEntityName: LegalEntityNameField,
4449
+ creditInRshbCd: CreditInRshbCdField,
4450
+ bankEmployeeCode: BankEmpoleeCodeField,
4451
+ partInBusiness: PartInBusinessField,
4452
+ regionRetail: RegionRetailField,
4453
+ infoCard: InfoCardField,
4454
+ calculator: CreditCalcField,
4455
+ confirmationIncome: ConfirmationIncomeField,
4457
4456
  };
4458
4457
  const InputRetailCardMap = {
4459
- addressCourier: (props) => jsx(AddressField, { ...props }),
4460
- paymentSystem: (props) => jsx(PaymentSystemField, { ...props }),
4461
- currency: (props) => jsx(CurrencyField, { ...props }),
4462
- cardCategory: (props) => jsx(CardCategoryField, { ...props }),
4463
- codeWord: (props) => jsx(CodeWordField, { ...props }),
4464
- methodObtain: (props) => jsx(MethodObtainField, { ...props }),
4465
- deliveryDate: (props) => jsx(DeliveryDateFiels, { ...props }),
4458
+ addressCourier: AddressField,
4459
+ paymentSystem: PaymentSystemField,
4460
+ currency: CurrencyField,
4461
+ cardCategory: CardCategoryField,
4462
+ codeWord: CodeWordField,
4463
+ methodObtain: MethodObtainField,
4464
+ deliveryDate: DeliveryDateFiels,
4466
4465
  };
4467
4466
 
4468
4467
  const CONSENT_ALL_DOCS_TEXT = 'Согласие на все документы';
@@ -4472,13 +4471,15 @@
4472
4471
  const handleGeneralToggle = (value) => {
4473
4472
  for (const item of inputs) {
4474
4473
  const itemField = field(item.name);
4475
- itemField?.onChange && itemField.onChange(value);
4474
+ itemField.onChange?.(value);
4476
4475
  }
4477
4476
  };
4478
4477
  const hasValidationErrors = useMemo(() => inputs
4479
4478
  ?.filter((_) => _.required)
4480
4479
  ?.some((_) => Boolean(withValidator(field(_?.name), validatorObj[_?.name]).error)), [inputs]);
4481
- 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 : '')] })) }) }));
4480
+ 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:
4481
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
4482
+ 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 : '')] })) }) }));
4482
4483
  });
4483
4484
  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" }) })] }));
4484
4485
 
@@ -4581,21 +4582,24 @@
4581
4582
  const [captcha, setCaptcha] = useState('');
4582
4583
  const [code, setCode] = useState('');
4583
4584
  const [hasError, setHasError] = useState(false);
4585
+ const [isLoading, { setTrue: startLoading, setFalse: endLoading }] = useBool(false);
4584
4586
  const handleCheckCaptcha = useCallback(async () => {
4587
+ startLoading();
4585
4588
  const isValidCode = await checkCaptcha({ captchaText: code });
4586
4589
  if (isValidCode) {
4587
- sendCode?.();
4588
4590
  onClose?.();
4591
+ sendCode?.();
4589
4592
  }
4590
4593
  else {
4591
- setHasError(isValidCode);
4594
+ setHasError(true);
4592
4595
  }
4596
+ endLoading();
4593
4597
  }, [code, sendCode]);
4594
4598
  const handleCreateCaptcha = useCallback(() => {
4595
4599
  (async () => setCaptcha(URL.createObjectURL(await createCaptcha(phoneNumber))))();
4596
4600
  }, []);
4597
4601
  useEffect(handleCreateCaptcha, []);
4598
- 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" })] })] }) }));
4602
+ 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] }) }));
4599
4603
  });
4600
4604
 
4601
4605
  const Timer = JSX(({ time, setTime, className }) => {
@@ -4731,7 +4735,7 @@
4731
4735
  setIsTimerStarted(true);
4732
4736
  }
4733
4737
  else {
4734
- captchaDialog.open({ phoneNumber, sendCode: handleSendCode, onClose });
4738
+ captchaDialog.open({ phoneNumber, sendCode: handleSendCode });
4735
4739
  }
4736
4740
  }, [phoneNumber, onClose]);
4737
4741
  useEffect(() => {
@@ -5182,19 +5186,15 @@
5182
5186
  return saveUserData;
5183
5187
  };
5184
5188
 
5185
- const useApplicationLeadApi = ({ inputs, programId, nextStepLink, }) => {
5186
- const [responseStatus, setResponseStatus] = useState('');
5189
+ const useApplicationLeadApi = ({ programId, nextStepLink }) => {
5187
5190
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
5191
+ const [ok, setOK] = useState();
5188
5192
  const saveUserData = useSaveUserData();
5189
5193
  const openEsiaLoginDialog = useEsiaLoginDialog(nextStepLink);
5190
5194
  const consentBkiDialog = useConsentBkiDialog(openEsiaLoginDialog);
5191
5195
  const verifyPhoneDialog = useDialog(VerifyPhoneDialog);
5192
5196
  const draftDialog = useDraftDialog();
5193
5197
  const handleSubmit = useCallback(async (formData) => {
5194
- const feedbackValidator = objectValidator(getObjectValidator(inputs));
5195
- if (!isValidationSuccess(feedbackValidator(formData))) {
5196
- return;
5197
- }
5198
5198
  try {
5199
5199
  startSending();
5200
5200
  const profileId = await createUserProfile({
@@ -5228,7 +5228,7 @@
5228
5228
  }
5229
5229
  }
5230
5230
  catch {
5231
- setResponseStatus('Fail');
5231
+ setOK(false);
5232
5232
  }
5233
5233
  };
5234
5234
  const acceptedConsents = getAcceptedConsents(formData);
@@ -5241,14 +5241,10 @@
5241
5241
  }
5242
5242
  }
5243
5243
  catch {
5244
- setResponseStatus('Fail');
5244
+ setOK(false);
5245
5245
  }
5246
5246
  }, []);
5247
- return {
5248
- handleSubmit,
5249
- responseStatus,
5250
- isSending,
5251
- };
5247
+ return { isSending, ok, handleSubmit };
5252
5248
  };
5253
5249
  const getAcceptedConsents = (formData) => Object.keys(CONSENTS)
5254
5250
  .filter((_) => formData[_])
@@ -5410,19 +5406,22 @@
5410
5406
 
5411
5407
  const ApplicationLeadForm = JSX(({ className, title, programId = '', nextStepLink = '/credit-lead', button, ...rest }) => {
5412
5408
  const inputs = useMemo(() => (applicationFormData?.flatMap((_) => _?.inputs) || []), [applicationFormData]);
5409
+ const formValidator = useMemo(() => getFormValidator(inputs), [inputs]);
5413
5410
  const [initialFormState, { isLoading }] = useInitApplicationLead(inputs, nextStepLink);
5414
- const { handleSubmit, responseStatus, isSending } = useApplicationLeadApi({
5415
- inputs,
5411
+ const { isSending, ok, handleSubmit } = useApplicationLeadApi({
5416
5412
  programId,
5417
5413
  nextStepLink,
5418
5414
  });
5419
- const [, { field, onSubmit }] = useForm(initialFormState, { onSubmit: handleSubmit });
5415
+ const [, { field, onSubmit }] = useForm(initialFormState, {
5416
+ formValidator,
5417
+ onSubmit: handleSubmit,
5418
+ });
5420
5419
  const responseTypeDialog = useDialog(ResponseTypeDialog);
5421
5420
  useEffect(() => {
5422
- if (responseStatus) {
5423
- responseTypeDialog.open({ responseType: responseStatus });
5421
+ if (ok !== undefined) {
5422
+ responseTypeDialog.open({ ok });
5424
5423
  }
5425
- }, [responseStatus]);
5424
+ }, [ok]);
5426
5425
  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)] }) }));
5427
5426
  });
5428
5427
 
@@ -5765,6 +5764,8 @@
5765
5764
  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));
5766
5765
  };
5767
5766
 
5767
+ const identity = (_) => _;
5768
+
5768
5769
  function zip(firstCol, ...restCols) {
5769
5770
  return firstCol.map((firstEl, rowIndex) => [firstEl, ...restCols.map((col) => col[rowIndex])]);
5770
5771
  }
@@ -5810,12 +5811,12 @@
5810
5811
 
5811
5812
  const useFiltrationForm = (initialFormState, { block, page, normalize = identity }) => {
5812
5813
  const blocks = block?.blocks || [];
5813
- const [filtrationState, { field, reset, update }] = useForm(initialFormState);
5814
+ const [filtrationState, operators] = useForm(initialFormState);
5814
5815
  const blocksWithProps = useMemo(() => zip(blocks, blocks.map((b) => resolveBlockProps(b.content, page?.fallback))), [blocks, page?.fallback]);
5815
5816
  const blocksToRender = filtrationState === initialFormState
5816
5817
  ? blocks
5817
5818
  : filterBlocks(blocksWithProps, filtrationState)(normalize);
5818
- return [filtrationState, { blocksToRender, blocksWithProps }, { field, reset, update }];
5819
+ return [filtrationState, { blocksToRender, blocksWithProps }, operators];
5819
5820
  };
5820
5821
 
5821
5822
  const EMPTY_SCHEMA = {};
@@ -6303,7 +6304,7 @@
6303
6304
  isWithdrawn: Boolean(defaultParams?.isWithdrawn),
6304
6305
  isNewClient: Boolean(defaultParams?.isNewClient),
6305
6306
  currency: DEFAULT_CURRENCY,
6306
- }, { normalize });
6307
+ }, { normalizer: normalize });
6307
6308
  const currencyValue = field?.('currency')?.value ?? DEFAULT_CURRENCY;
6308
6309
  const isNewClient = field?.('isNewClient')?.value;
6309
6310
  const row = getRows(rows, currencyValue);
@@ -6729,6 +6730,8 @@
6729
6730
  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)] }) }) })));
6730
6731
  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;
6731
6732
 
6733
+ const carouselTariffsCardEventBus = new EventBus();
6734
+
6732
6735
  const renderCardInfo = (cell, i) => {
6733
6736
  const { title, description, buttons } = cell;
6734
6737
  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)));
@@ -6740,20 +6743,21 @@
6740
6743
  ? [cellsNode.slice(0, visibleCellsCount), cellsNode.slice(visibleCellsCount)]
6741
6744
  : [cellsNode, []];
6742
6745
  const [isVisible, setIsVisible] = useState(false);
6743
- useEffect(() => defaultEventBus.subscribe('fold', (event) => {
6744
- if (event && options?.parent !== undefined && event.parent === options?.parent) {
6746
+ useEffect(() => carouselTariffsCardEventBus.subscribe('fold', (event) => {
6747
+ if (event && options?.parent && event.parent === options?.parent) {
6745
6748
  setIsVisible(event.isUnfolded);
6746
6749
  }
6747
6750
  }), [options?.parent]);
6748
- 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
6749
- ? renderFoldButton$2(options?.parent, data, isVisible)
6750
- : null })) : (jsx("div", { children: visibleCells }))] }));
6751
+ const toggle = useCallback(() => {
6752
+ carouselTariffsCardEventBus.fire('fold', {
6753
+ type: 'fold',
6754
+ isUnfolded: !isVisible,
6755
+ parent: options?.parent,
6756
+ });
6757
+ }, [isVisible, options?.parent]);
6758
+ 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 }))] }));
6751
6759
  });
6752
- 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: () => {
6753
- if (parent !== undefined) {
6754
- defaultEventBus.fire('fold', { type: 'fold', isUnfolded: !isUnfolded, parent });
6755
- }
6756
- }, type: "button", ...(isUnfolded ? getAspectsAttributes(data) : {}), children: [jsx("div", { children: isUnfolded ? 'Скрыть' : 'Подробнее о тарифе' }), jsx(Icon, { className: "text-primary-text", name: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16" })] }));
6760
+ 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" })] })));
6757
6761
 
6758
6762
  const PORTAL_NATURAL_URL = '/';
6759
6763
  const UPDATING_INTERVAL = 60000 * 4;
@@ -6796,6 +6800,33 @@
6796
6800
  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 })] }) }));
6797
6801
  });
6798
6802
 
6803
+ const calculateInputs = (getValue) => (inputs, step) => inputs
6804
+ .filter((_) => _)
6805
+ .map((_) => {
6806
+ if ([
6807
+ checkIsRetiree(step, getValue),
6808
+ checkBusinessOwner(_, getValue),
6809
+ checkConsentPfrFlg(_, getValue),
6810
+ checkAddressFillFromESIA(_, getValue),
6811
+ checkAddressFact(_, getValue),
6812
+ checkCondition(_, getValue),
6813
+ ].some(Boolean)) {
6814
+ return { ..._, required: false };
6815
+ }
6816
+ return _;
6817
+ });
6818
+ const checkIsRetiree = (step, getValue) => step === 2 && getValue('employment')?.key === 'RETIREE';
6819
+ const checkBusinessOwner = ({ name }, getValue) => name === 'partInBusiness' && getValue('positionOrganization')?.key !== 'BUSINESS_OWNER';
6820
+ const checkAddressFillFromESIA = ({ name, filledByEsia }, getValue) => name?.startsWith('address') && getValue('esiaAccountTypeCd')?.key && filledByEsia;
6821
+ const checkAddressFact = ({ name }, getValue) => name === 'addressFact' && getValue('addressMatch');
6822
+ const checkCondition = ({ condition }, getValue) => condition?.name &&
6823
+ condition?.values?.some((_) => {
6824
+ const dataValue = getValue(condition?.name);
6825
+ return _ !== (dataValue?.key ?? dataValue);
6826
+ });
6827
+ const checkConsentPfrFlg = ({ name }, getValue) => name === 'snils' && isSnilsRequired(getValue);
6828
+ const isSnilsRequired = (getValue) => getValue('confirmationIncome')?.key !== 'PFR_CERTIFICATE';
6829
+
6799
6830
  var STATUS_TYPE;
6800
6831
  (function (STATUS_TYPE) {
6801
6832
  STATUS_TYPE["process"] = "IN_PROCESS";
@@ -6953,40 +6984,14 @@
6953
6984
  return statusesMap[status] || jsx(ReworkStatusContent$1, {});
6954
6985
  };
6955
6986
 
6956
- const calculateInputs = (getValue) => (inputs, step) => inputs
6957
- .filter((_) => _)
6958
- .map((_) => {
6959
- if ([
6960
- checkIsRetiree(step, getValue),
6961
- checkBusinessOwner(_, getValue),
6962
- checkConsentPfrFlg(_, getValue),
6963
- checkAddressFillFromESIA(_, getValue),
6964
- checkAddressFact(_, getValue),
6965
- checkCondition(_, getValue),
6966
- ].some(Boolean)) {
6967
- return { ..._, required: false };
6968
- }
6969
- return _;
6970
- });
6971
- const checkIsRetiree = (step, getValue) => step === 2 && getValue('employment')?.key === 'RETIREE';
6972
- const checkBusinessOwner = ({ name }, getValue) => name === 'partInBusiness' && getValue('positionOrganization')?.key !== 'BUSINESS_OWNER';
6973
- const checkAddressFillFromESIA = ({ name, filledByEsia }, getValue) => name?.startsWith('address') && getValue('esiaAccountTypeCd')?.key && filledByEsia;
6974
- const checkAddressFact = ({ name }, getValue) => name === 'addressFact' && getValue('addressMatch');
6975
- const checkCondition = ({ condition }, getValue) => condition?.name &&
6976
- condition?.values?.some((_) => {
6977
- const dataValue = getValue(condition?.name);
6978
- return _ !== (dataValue?.key ?? dataValue);
6979
- });
6980
- const checkConsentPfrFlg = ({ name }, getValue) => name === 'snils' && isSnilsRequired(getValue);
6981
- const isSnilsRequired = (getValue) => getValue('confirmationIncome')?.key !== 'PFR_CERTIFICATE';
6982
-
6983
- const renderInputs$1 = ({ field, inputs, params }) => inputs.map(getField(field, params, { ...InputsRetailMap, ...InputRetailCardMap }));
6987
+ const InputsMap = { ...InputsRetailMap, ...InputRetailCardMap };
6988
+ const renderInputs$1 = ({ field, inputs, params }) => inputs.map(getField(field, params, InputsMap));
6984
6989
 
6985
6990
  const renderStep$1 = ({ sections, field, step, params }) => sections?.map(({ inputs: origInputs = [], columns, title }, i) => {
6986
- const inputs = calculateInputs(getValue$3(field))(origInputs, step);
6991
+ const inputs = calculateInputs(getValue$1(field))(origInputs, step);
6987
6992
  return (jsxs("div", { className: style(inputColumnStyles(columns), 'grid gap-x-m'), children: [renderTitle(title), renderInputs$1({ field, inputs, params })] }, `section-${i}`));
6988
6993
  });
6989
- const getValue$3 = (field) => (name) => field(name)?.value;
6994
+ const getValue$1 = (field) => (name) => field(name)?.value;
6990
6995
 
6991
6996
  const StepsNavigationButtons$1 = JSX(({ step, isSending, onPrevStep }) => {
6992
6997
  const isFirstStep = step === 0;
@@ -7252,7 +7257,7 @@
7252
7257
  }
7253
7258
  };
7254
7259
 
7255
- const useCreditCardFormAPI = ({ step, inputs, onNextStep, onFinish, }) => {
7260
+ const useCreditCardFormAPI = ({ step, onNextStep, onFinish, }) => {
7256
7261
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
7257
7262
  const isFinalStep = step === 5;
7258
7263
  const retailFormStore = useRetailFormStore();
@@ -7271,10 +7276,6 @@
7271
7276
  }
7272
7277
  }, [isFinalStep, initialState]);
7273
7278
  const handleSubmit = useCallback(async (formData) => {
7274
- const feedbackValidator = objectValidator(getObjectValidator(calculateInputs(getValue$2(formData))(inputs, step)));
7275
- if (!isValidationSuccess(feedbackValidator(formData))) {
7276
- return;
7277
- }
7278
7279
  startSending();
7279
7280
  retailFormStore.leadForm = formData;
7280
7281
  try {
@@ -7303,17 +7304,21 @@
7303
7304
  }, [isFinalStep, resetForm]);
7304
7305
  return [initialState, handleSubmit, isSending];
7305
7306
  };
7306
- const getValue$2 = (formData) => (name) => formData[name];
7307
7307
 
7308
7308
  const CreditCardFormStep = JSX(({ step, sections, isFormFinished, onPrevStep, onNextStep, onFinish }) => {
7309
7309
  const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
7310
+ const formValidator = useCallback((formState) =>
7311
+ // TODO Слишком сложно
7312
+ getFormValidator(calculateInputs((_) => formState[_])(inputs, step))(formState), [inputs]);
7310
7313
  const [initialState, onSubmit, isSending] = useCreditCardFormAPI({
7311
7314
  step,
7312
- inputs,
7313
7315
  onNextStep,
7314
7316
  onFinish,
7315
7317
  });
7316
- const [, { field, onSubmit: handleSubmit }] = useForm(initialState, { onSubmit });
7318
+ const [, { field, onSubmit: handleSubmit }] = useForm(initialState, {
7319
+ formValidator,
7320
+ onSubmit,
7321
+ });
7317
7322
  return isFormFinished ? (jsx(CreditCardFormStatusTracker, {})) : (jsxs("form", { onSubmit: handleSubmit, className: "space-y-m", children: [renderStep$1({ sections, field, step }), jsx(StepsNavigationButtons$1, { isSending: isSending, step: step, onPrevStep: onPrevStep })] }));
7318
7323
  });
7319
7324
 
@@ -7716,7 +7721,7 @@
7716
7721
  setStep((_) => Math.max(_ - 1, 0));
7717
7722
  scrollToTop();
7718
7723
  }, []);
7719
- const sections = useMemo(() => stepsSectionsMap$1[step], [step]);
7724
+ const sections = stepsSectionsMap$1[step];
7720
7725
  const [isFormFinished, { setTrue: handleFinish }] = useBool(false);
7721
7726
  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)) })] }) }));
7722
7727
  });
@@ -7856,10 +7861,10 @@
7856
7861
  const renderInputs = ({ field, inputs, params }) => inputs.map(getField(field, params, { ...InputsRetailMap }));
7857
7862
 
7858
7863
  const renderStep = ({ sections, field, step, params }) => sections?.map(({ inputs: origInputs = [], columns, title }, i) => {
7859
- const inputs = calculateInputs(getValue$1(field))(origInputs, step);
7864
+ const inputs = calculateInputs(getValue(field))(origInputs, step);
7860
7865
  return (jsxs("div", { className: style(inputColumnStyles(columns), 'grid gap-x-m'), children: [renderTitle(title), renderInputs({ field, inputs, params })] }, `section-${i}`));
7861
7866
  });
7862
- const getValue$1 = (field) => (name) => field(name)?.value;
7867
+ const getValue = (field) => (name) => field(name)?.value;
7863
7868
 
7864
7869
  const StepsNavigationButtons = JSX(({ step, onPrevStep, isSending }) => {
7865
7870
  const isFirstStep = step === 0;
@@ -8042,7 +8047,7 @@
8042
8047
  }
8043
8048
  };
8044
8049
 
8045
- const useCreditFormAPI = ({ step, inputs, onNextStep, onFinish, }) => {
8050
+ const useCreditFormAPI = ({ step, onNextStep, onFinish, }) => {
8046
8051
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
8047
8052
  const isFinalStep = step === 5;
8048
8053
  const retailFormStore = useRetailFormStore();
@@ -8063,10 +8068,6 @@
8063
8068
  }
8064
8069
  }, [isFinalStep, initialState]);
8065
8070
  const handleSubmit = useCallback(async (formData) => {
8066
- const feedbackValidator = objectValidator(getObjectValidator(calculateInputs(getValue(formData))(inputs, step)));
8067
- if (!isValidationSuccess(feedbackValidator(formData))) {
8068
- return;
8069
- }
8070
8071
  startSending();
8071
8072
  retailFormStore.leadForm = formData;
8072
8073
  try {
@@ -8095,19 +8096,23 @@
8095
8096
  }, [isFinalStep, resetForm]);
8096
8097
  return [initialState, handleSubmit, isSending];
8097
8098
  };
8098
- const getValue = (formData) => (name) => formData[name];
8099
8099
 
8100
8100
  const CreditFormStep = JSX(({ step, sections, isFormFinished, programsSource, onPrevStep, onNextStep, onFinish }) => {
8101
8101
  const { programId } = useRetailFormStore();
8102
8102
  const calcData = programsSource?.[programId ?? '']; // Need normalizator useForm, to be save defaultParams
8103
8103
  const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
8104
+ const formValidator = useCallback((formState) =>
8105
+ // TODO Слишком сложно
8106
+ getFormValidator(calculateInputs((_) => formState[_])(inputs, step))(formState), [inputs]);
8104
8107
  const [initialState, onSubmit, isSending] = useCreditFormAPI({
8105
8108
  step,
8106
- inputs,
8107
8109
  onNextStep,
8108
8110
  onFinish,
8109
8111
  });
8110
- const [, { field, onSubmit: handleSubmit }] = useForm(initialState, { onSubmit });
8112
+ const [, { field, onSubmit: handleSubmit }] = useForm(initialState, {
8113
+ formValidator,
8114
+ onSubmit,
8115
+ });
8111
8116
  return isFormFinished ? (jsx(CreditFormStatusTracker, {})) : (jsxs("form", { onSubmit: handleSubmit, className: "space-y-m", children: [renderStep({ sections, field, step, params: { calcData } }), jsx(StepsNavigationButtons, { step: step, isSending: isSending, onPrevStep: onPrevStep })] }));
8112
8117
  });
8113
8118
 
@@ -8140,7 +8145,7 @@
8140
8145
  setStep((_) => Math.max(_ - 1, 0));
8141
8146
  scrollToTop();
8142
8147
  }, []);
8143
- const sections = useMemo(() => stepsSectionsMap[step], [step]);
8148
+ const sections = stepsSectionsMap[step];
8144
8149
  const isStartStep = step === 0;
8145
8150
  const [isFormFinished, { setTrue: handleFinish }] = useBool(false);
8146
8151
  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)) })] }) }));
@@ -9001,7 +9006,7 @@
9001
9006
  return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: jsx(CardRow, { className: "flex-wrap", children: additionalInfo?.map(renderInfo) }) }));
9002
9007
  },
9003
9008
  //** TODO: Remove styles with refactoring DefaultFoldButton*/
9004
- renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$3({ isUnfolded, onToggle }) })] }, String(i)));
9009
+ renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$2({ isUnfolded, onToggle }) })] }, String(i)));
9005
9010
  };
9006
9011
  const getAtmPoint = ({ address = '', terminalType, atmCode = '' }) => {
9007
9012
  const header = `${capitalizedFirstLetter(terminalType)} №${atmCode}`;
@@ -9067,7 +9072,7 @@
9067
9072
  workScheduleDescription,
9068
9073
  }) })),
9069
9074
  //** TODO: remove styles with refactoring DefaultFoldButton*/
9070
- renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$3({ isUnfolded, onToggle }) })] }, String(i)));
9075
+ renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$2({ isUnfolded, onToggle }) })] }, String(i)));
9071
9076
  };
9072
9077
  const renderCardContent = ({ workScheduleDescription }) => {
9073
9078
  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 }) })] }));
@@ -10051,7 +10056,7 @@
10051
10056
  slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
10052
10057
  });
10053
10058
 
10054
- const packageVersion = "0.14.735";
10059
+ const packageVersion = "0.14.737";
10055
10060
 
10056
10061
  exports.Blocks = Blocks;
10057
10062
  exports.ContentPage = ContentPage;