@redneckz/wildless-cms-uni-blocks 0.14.737 → 0.14.739

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 (1536) hide show
  1. package/bundle/EventBus/defaultEventBus.d.ts +1 -3
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +599 -597
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/bundle/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  6. package/bundle/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  7. package/bundle/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  8. package/bundle/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  9. package/bundle/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  10. package/bundle/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  11. package/bundle/components/CreditCardForm/renderInputs.d.ts +1 -1
  12. package/bundle/components/CreditCardForm/renderStep.d.ts +1 -1
  13. package/bundle/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  14. package/bundle/components/CreditForm/renderInputs.d.ts +1 -1
  15. package/bundle/components/CreditForm/renderStep.d.ts +1 -1
  16. package/bundle/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  17. package/bundle/components/Depository/DepositoryFilter.d.ts +1 -1
  18. package/bundle/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  19. package/bundle/hooks/useAspects/handleAspects.d.ts +1 -1
  20. package/bundle/hooks/useForm/FieldOptions.d.ts +7 -0
  21. package/bundle/hooks/useForm/FormOptions.d.ts +13 -0
  22. package/bundle/hooks/useForm/shallowCompare.d.ts +1 -0
  23. package/bundle/hooks/useForm/useForm.d.ts +19 -0
  24. package/bundle/hooks/useForm/useFormValidator.d.ts +6 -0
  25. package/bundle/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  26. package/bundle/services/retail/external/types.d.ts +1 -1
  27. package/bundle/services/retail/inputs.d.ts +67 -68
  28. package/bundle/services/retail/model/LeadFormState.d.ts +1 -1
  29. package/bundle/services/retail/model/NameFieldDef.d.ts +6 -0
  30. package/bundle/services/retail/model/RetailFormContent.d.ts +1 -1
  31. package/bundle/services/retail/utils/calculateInputs.d.ts +1 -2
  32. package/bundle/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  33. package/bundle/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  34. package/bundle/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  35. package/bundle/ui-kit/FormField/BaseFieldDef.d.ts +8 -0
  36. package/bundle/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  37. package/bundle/ui-kit/FormField/NameFieldDef.d.ts +1 -4
  38. package/bundle/ui-kit/FormField/getField.d.ts +3 -3
  39. package/bundle/ui-kit/FormField/getObjectValidator.d.ts +3 -2
  40. package/bundle/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  41. package/bundle/ui-kit/FormField/shouldRenderField.d.ts +6 -0
  42. package/bundle/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  43. package/bundle/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  44. package/bundle/validation/objectValidator.d.ts +1 -1
  45. package/dist/EventBus/defaultEventBus.d.ts +1 -3
  46. package/dist/EventBus/defaultEventBus.js +1 -1
  47. package/dist/EventBus/defaultEventBus.js.map +1 -1
  48. package/dist/components/ApplicationForm/ApplicationForm.js +14 -34
  49. package/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
  50. package/dist/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  51. package/dist/components/ApplicationLeadForm/ApplicationLeadForm.js +11 -7
  52. package/dist/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  53. package/dist/components/ApplicationLeadForm/GroupedConsents.js +4 -2
  54. package/dist/components/ApplicationLeadForm/GroupedConsents.js.map +1 -1
  55. package/dist/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  56. package/dist/components/ApplicationLeadForm/renderInputs.js +4 -3
  57. package/dist/components/ApplicationLeadForm/renderInputs.js.map +1 -1
  58. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  59. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.js +5 -16
  60. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  61. package/dist/components/CalculatorBonus/CalculatorBonus.js +1 -1
  62. package/dist/components/CalculatorBonus/CalculatorBonus.js.map +1 -1
  63. package/dist/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js +1 -1
  64. package/dist/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js.map +1 -1
  65. package/dist/components/CalculatorCredit/CalculatorCredit.js +3 -6
  66. package/dist/components/CalculatorCredit/CalculatorCredit.js.map +1 -1
  67. package/dist/components/CalculatorDeposit/CalculatorDeposit.js +2 -2
  68. package/dist/components/CalculatorDeposit/CalculatorDeposit.js.map +1 -1
  69. package/dist/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  70. package/dist/components/CalculatorRefinancing/CalculatorRefinancing.js +1 -1
  71. package/dist/components/CalculatorRefinancing/CalculatorRefinancing.js.map +1 -1
  72. package/dist/components/CardTransfer/CardTransfer.js +1 -1
  73. package/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  74. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -11
  75. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  76. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  77. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +5 -0
  78. package/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  79. package/dist/components/CreditCardForm/CreditCardForm.js +1 -1
  80. package/dist/components/CreditCardForm/CreditCardForm.js.map +1 -1
  81. package/dist/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  82. package/dist/components/CreditCardForm/CreditCardFormStep.js +11 -4
  83. package/dist/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  84. package/dist/components/CreditCardForm/renderInputs.d.ts +1 -1
  85. package/dist/components/CreditCardForm/renderInputs.js +2 -1
  86. package/dist/components/CreditCardForm/renderInputs.js.map +1 -1
  87. package/dist/components/CreditCardForm/renderStep.d.ts +1 -1
  88. package/dist/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  89. package/dist/components/CreditCardForm/useCreditCardFormAPI.js +1 -10
  90. package/dist/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  91. package/dist/components/CreditForm/CreditForm.js +1 -1
  92. package/dist/components/CreditForm/CreditForm.js.map +1 -1
  93. package/dist/components/CreditForm/CreditFormStep.js +11 -4
  94. package/dist/components/CreditForm/CreditFormStep.js.map +1 -1
  95. package/dist/components/CreditForm/renderInputs.d.ts +1 -1
  96. package/dist/components/CreditForm/renderInputs.js.map +1 -1
  97. package/dist/components/CreditForm/renderStep.d.ts +1 -1
  98. package/dist/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  99. package/dist/components/CreditForm/useCreditFormAPI.js +1 -10
  100. package/dist/components/CreditForm/useCreditFormAPI.js.map +1 -1
  101. package/dist/components/Depository/Depository.js +1 -1
  102. package/dist/components/Depository/Depository.js.map +1 -1
  103. package/dist/components/Depository/DepositoryFilter.d.ts +1 -1
  104. package/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +1 -1
  105. package/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
  106. package/dist/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  107. package/dist/hooks/useAspects/handleAspects.d.ts +1 -1
  108. package/dist/hooks/useAspects/handleAspects.js +1 -1
  109. package/dist/hooks/useAspects/handleAspects.js.map +1 -1
  110. package/dist/hooks/useForm/FieldOptions.d.ts +7 -0
  111. package/dist/{components/CarouselTariffsCard/CarouselTariffsCardAction.js → hooks/useForm/FieldOptions.js} +1 -1
  112. package/dist/hooks/useForm/FieldOptions.js.map +1 -0
  113. package/dist/hooks/useForm/FormOptions.d.ts +13 -0
  114. package/{mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js → dist/hooks/useForm/FormOptions.js} +1 -1
  115. package/dist/hooks/useForm/FormOptions.js.map +1 -0
  116. package/dist/hooks/useForm/shallowCompare.d.ts +1 -0
  117. package/dist/hooks/useForm/shallowCompare.js +5 -0
  118. package/dist/hooks/useForm/shallowCompare.js.map +1 -0
  119. package/dist/hooks/useForm/useForm.d.ts +19 -0
  120. package/dist/hooks/useForm/useForm.js +54 -0
  121. package/dist/hooks/useForm/useForm.js.map +1 -0
  122. package/dist/hooks/useForm/useFormValidator.d.ts +6 -0
  123. package/dist/hooks/useForm/useFormValidator.js +15 -0
  124. package/dist/hooks/useForm/useFormValidator.js.map +1 -0
  125. package/dist/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  126. package/dist/hooks/useForm/useNormalizedFormState.js +26 -0
  127. package/dist/hooks/useForm/useNormalizedFormState.js.map +1 -0
  128. package/dist/services/retail/external/types.d.ts +1 -1
  129. package/dist/services/retail/inputs.d.ts +67 -68
  130. package/dist/services/retail/inputs.js +67 -68
  131. package/dist/services/retail/inputs.js.map +1 -1
  132. package/dist/services/retail/model/LeadFormState.d.ts +1 -1
  133. package/dist/services/retail/model/NameFieldDef.d.ts +6 -0
  134. package/dist/services/retail/model/NameFieldDef.js +2 -0
  135. package/dist/services/retail/model/NameFieldDef.js.map +1 -0
  136. package/dist/services/retail/model/RetailFormContent.d.ts +1 -1
  137. package/dist/services/retail/utils/calculateInputs.d.ts +1 -2
  138. package/dist/services/retail/utils/calculateInputs.js.map +1 -1
  139. package/dist/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  140. package/dist/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  141. package/dist/ui-kit/BaseFiltration/useFiltrationForm.js +3 -3
  142. package/dist/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -1
  143. package/dist/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  144. package/dist/ui-kit/FormField/BaseFieldDef.d.ts +8 -0
  145. package/dist/ui-kit/FormField/BaseFieldDef.js +2 -0
  146. package/dist/ui-kit/FormField/BaseFieldDef.js.map +1 -0
  147. package/dist/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  148. package/dist/ui-kit/FormField/Fields/AcquiringField.js +1 -3
  149. package/dist/ui-kit/FormField/Fields/AcquiringField.js.map +1 -1
  150. package/dist/ui-kit/FormField/Fields/AddressBranchField.js +1 -3
  151. package/dist/ui-kit/FormField/Fields/AddressBranchField.js.map +1 -1
  152. package/dist/ui-kit/FormField/Fields/AddressFactField.js +1 -3
  153. package/dist/ui-kit/FormField/Fields/AddressFactField.js.map +1 -1
  154. package/dist/ui-kit/FormField/Fields/AddressField.js +1 -3
  155. package/dist/ui-kit/FormField/Fields/AddressField.js.map +1 -1
  156. package/dist/ui-kit/FormField/Fields/AddressMatchField.js +1 -3
  157. package/dist/ui-kit/FormField/Fields/AddressMatchField.js.map +1 -1
  158. package/dist/ui-kit/FormField/Fields/AddressRetailField.js +3 -6
  159. package/dist/ui-kit/FormField/Fields/AddressRetailField.js.map +1 -1
  160. package/dist/ui-kit/FormField/Fields/AmountField.js +1 -1
  161. package/dist/ui-kit/FormField/Fields/AmountField.js.map +1 -1
  162. package/dist/ui-kit/FormField/Fields/AnnualRevenueField.js +1 -3
  163. package/dist/ui-kit/FormField/Fields/AnnualRevenueField.js.map +1 -1
  164. package/dist/ui-kit/FormField/Fields/ArmyIdFlgField.js +1 -3
  165. package/dist/ui-kit/FormField/Fields/ArmyIdFlgField.js.map +1 -1
  166. package/dist/ui-kit/FormField/Fields/BankEmployeeCodeField.js +1 -3
  167. package/dist/ui-kit/FormField/Fields/BankEmployeeCodeField.js.map +1 -1
  168. package/dist/ui-kit/FormField/Fields/BankEmpoleeField.js +1 -1
  169. package/dist/ui-kit/FormField/Fields/BankEmpoleeField.js.map +1 -1
  170. package/dist/ui-kit/FormField/Fields/BankruptcyFlgField.js +1 -3
  171. package/dist/ui-kit/FormField/Fields/BankruptcyFlgField.js.map +1 -1
  172. package/dist/ui-kit/FormField/Fields/BeginDateField.js +1 -3
  173. package/dist/ui-kit/FormField/Fields/BeginDateField.js.map +1 -1
  174. package/dist/ui-kit/FormField/Fields/BirthPlaceField.js +1 -3
  175. package/dist/ui-kit/FormField/Fields/BirthPlaceField.js.map +1 -1
  176. package/dist/ui-kit/FormField/Fields/BirthdayField.js +1 -3
  177. package/dist/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  178. package/dist/ui-kit/FormField/Fields/ChildrenField.js +1 -3
  179. package/dist/ui-kit/FormField/Fields/ChildrenField.js.map +1 -1
  180. package/dist/ui-kit/FormField/Fields/CodeWordField.js +1 -3
  181. package/dist/ui-kit/FormField/Fields/CodeWordField.js.map +1 -1
  182. package/dist/ui-kit/FormField/Fields/CollectionCountField.js +1 -3
  183. package/dist/ui-kit/FormField/Fields/CollectionCountField.js.map +1 -1
  184. package/dist/ui-kit/FormField/Fields/CommentField.js +1 -3
  185. package/dist/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  186. package/dist/ui-kit/FormField/Fields/ConsentField.js +1 -3
  187. package/dist/ui-kit/FormField/Fields/ConsentField.js.map +1 -1
  188. package/dist/ui-kit/FormField/Fields/CurrencyField.js +2 -7
  189. package/dist/ui-kit/FormField/Fields/CurrencyField.js.map +1 -1
  190. package/dist/ui-kit/FormField/Fields/DeliveryDateFiels.js +1 -3
  191. package/dist/ui-kit/FormField/Fields/DeliveryDateFiels.js.map +1 -1
  192. package/dist/ui-kit/FormField/Fields/DependentsField.js +1 -3
  193. package/dist/ui-kit/FormField/Fields/DependentsField.js.map +1 -1
  194. package/dist/ui-kit/FormField/Fields/DesiredMeetingDateField.js +1 -3
  195. package/dist/ui-kit/FormField/Fields/DesiredMeetingDateField.js.map +1 -1
  196. package/dist/ui-kit/FormField/Fields/DisablePeopleFlgField.js +1 -3
  197. package/dist/ui-kit/FormField/Fields/DisablePeopleFlgField.js.map +1 -1
  198. package/dist/ui-kit/FormField/Fields/DulIssueDateField.js +1 -4
  199. package/dist/ui-kit/FormField/Fields/DulIssueDateField.js.map +1 -1
  200. package/dist/ui-kit/FormField/Fields/DulIssuedByField.js +1 -4
  201. package/dist/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -1
  202. package/dist/ui-kit/FormField/Fields/DulNumberField.js +1 -4
  203. package/dist/ui-kit/FormField/Fields/DulNumberField.js.map +1 -1
  204. package/dist/ui-kit/FormField/Fields/DulSerieField.js +1 -4
  205. package/dist/ui-kit/FormField/Fields/DulSerieField.js.map +1 -1
  206. package/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +1 -4
  207. package/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -1
  208. package/dist/ui-kit/FormField/Fields/EmailField.js +1 -4
  209. package/dist/ui-kit/FormField/Fields/EmailField.js.map +1 -1
  210. package/dist/ui-kit/FormField/Fields/ExpensesField.js +1 -3
  211. package/dist/ui-kit/FormField/Fields/ExpensesField.js.map +1 -1
  212. package/dist/ui-kit/FormField/Fields/Experience5YearsField.js +2 -5
  213. package/dist/ui-kit/FormField/Fields/Experience5YearsField.js.map +1 -1
  214. package/dist/ui-kit/FormField/Fields/FamilyMembersField.js +4 -4
  215. package/dist/ui-kit/FormField/Fields/FamilyMembersField.js.map +1 -1
  216. package/dist/ui-kit/FormField/Fields/FeedbackMethodField.js +1 -3
  217. package/dist/ui-kit/FormField/Fields/FeedbackMethodField.js.map +1 -1
  218. package/dist/ui-kit/FormField/Fields/FullNameField.js +1 -3
  219. package/dist/ui-kit/FormField/Fields/FullNameField.js.map +1 -1
  220. package/dist/ui-kit/FormField/Fields/GeneralSeniorityField.js +1 -3
  221. package/dist/ui-kit/FormField/Fields/GeneralSeniorityField.js.map +1 -1
  222. package/dist/ui-kit/FormField/Fields/InnField.js +1 -3
  223. package/dist/ui-kit/FormField/Fields/InnField.js.map +1 -1
  224. package/dist/ui-kit/FormField/Fields/IsClientField.js +1 -1
  225. package/dist/ui-kit/FormField/Fields/IsClientField.js.map +1 -1
  226. package/dist/ui-kit/FormField/Fields/JobsNumberField.js +1 -3
  227. package/dist/ui-kit/FormField/Fields/JobsNumberField.js.map +1 -1
  228. package/dist/ui-kit/FormField/Fields/LastJobExperienceField.js +1 -3
  229. package/dist/ui-kit/FormField/Fields/LastJobExperienceField.js.map +1 -1
  230. package/dist/ui-kit/FormField/Fields/LegalEntityNameField.js +1 -3
  231. package/dist/ui-kit/FormField/Fields/LegalEntityNameField.js.map +1 -1
  232. package/dist/ui-kit/FormField/Fields/LegalFormField.js +1 -3
  233. package/dist/ui-kit/FormField/Fields/LegalFormField.js.map +1 -1
  234. package/dist/ui-kit/FormField/Fields/LimitedBirthdayField.js +1 -4
  235. package/dist/ui-kit/FormField/Fields/LimitedBirthdayField.js.map +1 -1
  236. package/dist/ui-kit/FormField/Fields/LocalitiesField.js +4 -8
  237. package/dist/ui-kit/FormField/Fields/LocalitiesField.js.map +1 -1
  238. package/dist/ui-kit/FormField/Fields/MandatoryPaymentsField.js +1 -3
  239. package/dist/ui-kit/FormField/Fields/MandatoryPaymentsField.js.map +1 -1
  240. package/dist/ui-kit/FormField/Fields/MethodObtainField.js +1 -3
  241. package/dist/ui-kit/FormField/Fields/MethodObtainField.js.map +1 -1
  242. package/dist/ui-kit/FormField/Fields/MiddleNameField.js +1 -4
  243. package/dist/ui-kit/FormField/Fields/MiddleNameField.js.map +1 -1
  244. package/dist/ui-kit/FormField/Fields/NameField.js +1 -3
  245. package/dist/ui-kit/FormField/Fields/NameField.js.map +1 -1
  246. package/dist/ui-kit/FormField/Fields/OnlineCheckoutField.js +1 -1
  247. package/dist/ui-kit/FormField/Fields/OnlineCheckoutField.js.map +1 -1
  248. package/dist/ui-kit/FormField/Fields/OrganizationNameField.js +1 -3
  249. package/dist/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  250. package/dist/ui-kit/FormField/Fields/OtherIncomeField.js +1 -3
  251. package/dist/ui-kit/FormField/Fields/OtherIncomeField.js.map +1 -1
  252. package/dist/ui-kit/FormField/Fields/PartInBusinessField.js +2 -5
  253. package/dist/ui-kit/FormField/Fields/PartInBusinessField.js.map +1 -1
  254. package/dist/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js +1 -3
  255. package/dist/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js.map +1 -1
  256. package/dist/ui-kit/FormField/Fields/PartnerCommentsField.js +1 -6
  257. package/dist/ui-kit/FormField/Fields/PartnerCommentsField.js.map +1 -1
  258. package/dist/ui-kit/FormField/Fields/PaymentSystemField.js +13 -13
  259. package/dist/ui-kit/FormField/Fields/PaymentSystemField.js.map +1 -1
  260. package/dist/ui-kit/FormField/Fields/PhoneField.js +1 -3
  261. package/dist/ui-kit/FormField/Fields/PhoneField.js.map +1 -1
  262. package/dist/ui-kit/FormField/Fields/ProductField.js +1 -3
  263. package/dist/ui-kit/FormField/Fields/ProductField.js.map +1 -1
  264. package/dist/ui-kit/FormField/Fields/RegionField.js +1 -3
  265. package/dist/ui-kit/FormField/Fields/RegionField.js.map +1 -1
  266. package/dist/ui-kit/FormField/Fields/RegionPremiumField.js +1 -3
  267. package/dist/ui-kit/FormField/Fields/RegionPremiumField.js.map +1 -1
  268. package/dist/ui-kit/FormField/Fields/RegionRetailField.js +1 -3
  269. package/dist/ui-kit/FormField/Fields/RegionRetailField.js.map +1 -1
  270. package/dist/ui-kit/FormField/Fields/RetirementIncomeField.js +1 -3
  271. package/dist/ui-kit/FormField/Fields/RetirementIncomeField.js.map +1 -1
  272. package/dist/ui-kit/FormField/Fields/ServiceDirectionField.js +1 -3
  273. package/dist/ui-kit/FormField/Fields/ServiceDirectionField.js.map +1 -1
  274. package/dist/ui-kit/FormField/Fields/SexField.js +1 -3
  275. package/dist/ui-kit/FormField/Fields/SexField.js.map +1 -1
  276. package/dist/ui-kit/FormField/Fields/ShareholderFlgField.js +1 -3
  277. package/dist/ui-kit/FormField/Fields/ShareholderFlgField.js.map +1 -1
  278. package/dist/ui-kit/FormField/Fields/SnilsField.js +1 -3
  279. package/dist/ui-kit/FormField/Fields/SnilsField.js.map +1 -1
  280. package/dist/ui-kit/FormField/Fields/SurnameField.js +1 -3
  281. package/dist/ui-kit/FormField/Fields/SurnameField.js.map +1 -1
  282. package/dist/ui-kit/FormField/Fields/TotalIncomeField.js +1 -3
  283. package/dist/ui-kit/FormField/Fields/TotalIncomeField.js.map +1 -1
  284. package/dist/ui-kit/FormField/Fields/UltraPremiumField.js +1 -3
  285. package/dist/ui-kit/FormField/Fields/UltraPremiumField.js.map +1 -1
  286. package/dist/ui-kit/FormField/Fields/VedField.js +7 -8
  287. package/dist/ui-kit/FormField/Fields/VedField.js.map +1 -1
  288. package/dist/ui-kit/FormField/Fields/WagesField.js +1 -3
  289. package/dist/ui-kit/FormField/Fields/WagesField.js.map +1 -1
  290. package/dist/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js +1 -4
  291. package/dist/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js.map +1 -1
  292. package/dist/ui-kit/FormField/NameFieldDef.d.ts +1 -4
  293. package/dist/ui-kit/FormField/SelectField.js +2 -4
  294. package/dist/ui-kit/FormField/SelectField.js.map +1 -1
  295. package/dist/ui-kit/FormField/getField.d.ts +3 -3
  296. package/dist/ui-kit/FormField/getField.js +31 -31
  297. package/dist/ui-kit/FormField/getField.js.map +1 -1
  298. package/dist/ui-kit/FormField/getObjectValidator.d.ts +3 -2
  299. package/dist/ui-kit/FormField/getObjectValidator.js +18 -6
  300. package/dist/ui-kit/FormField/getObjectValidator.js.map +1 -1
  301. package/dist/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  302. package/dist/ui-kit/FormField/shouldRenderField.d.ts +6 -0
  303. package/{mobile/dist/ui-kit/FormField/isRenderField.js → dist/ui-kit/FormField/shouldRenderField.js} +4 -4
  304. package/dist/ui-kit/FormField/shouldRenderField.js.map +1 -0
  305. package/dist/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  306. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  307. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  308. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +1 -1
  309. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -1
  310. package/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  311. package/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +3 -4
  312. package/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  313. package/dist/utils/getRequiredLabel.js +1 -0
  314. package/dist/utils/getRequiredLabel.js.map +1 -1
  315. package/dist/validation/objectValidator.d.ts +1 -1
  316. package/dist/validation/objectValidator.js +1 -1
  317. package/dist/validation/objectValidator.js.map +1 -1
  318. package/lib/EventBus/defaultEventBus.d.ts +1 -3
  319. package/lib/EventBus/defaultEventBus.js +1 -1
  320. package/lib/EventBus/defaultEventBus.js.map +1 -1
  321. package/lib/components/ApplicationForm/ApplicationForm.js +16 -36
  322. package/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
  323. package/lib/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  324. package/lib/components/ApplicationLeadForm/ApplicationLeadForm.js +11 -7
  325. package/lib/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  326. package/lib/components/ApplicationLeadForm/GroupedConsents.js +4 -2
  327. package/lib/components/ApplicationLeadForm/GroupedConsents.js.map +1 -1
  328. package/lib/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  329. package/lib/components/ApplicationLeadForm/renderInputs.js +4 -3
  330. package/lib/components/ApplicationLeadForm/renderInputs.js.map +1 -1
  331. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  332. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.js +5 -16
  333. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  334. package/lib/components/CalculatorBonus/CalculatorBonus.js +1 -1
  335. package/lib/components/CalculatorBonus/CalculatorBonus.js.map +1 -1
  336. package/lib/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js +1 -1
  337. package/lib/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js.map +1 -1
  338. package/lib/components/CalculatorCredit/CalculatorCredit.js +3 -6
  339. package/lib/components/CalculatorCredit/CalculatorCredit.js.map +1 -1
  340. package/lib/components/CalculatorDeposit/CalculatorDeposit.js +2 -2
  341. package/lib/components/CalculatorDeposit/CalculatorDeposit.js.map +1 -1
  342. package/lib/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  343. package/lib/components/CalculatorRefinancing/CalculatorRefinancing.js +1 -1
  344. package/lib/components/CalculatorRefinancing/CalculatorRefinancing.js.map +1 -1
  345. package/lib/components/CardTransfer/CardTransfer.js +1 -1
  346. package/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  347. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +13 -12
  348. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  349. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  350. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +3 -0
  351. package/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  352. package/lib/components/CreditCardForm/CreditCardForm.js +2 -2
  353. package/lib/components/CreditCardForm/CreditCardForm.js.map +1 -1
  354. package/lib/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  355. package/lib/components/CreditCardForm/CreditCardFormStep.js +12 -5
  356. package/lib/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  357. package/lib/components/CreditCardForm/renderInputs.d.ts +1 -1
  358. package/lib/components/CreditCardForm/renderInputs.js +2 -1
  359. package/lib/components/CreditCardForm/renderInputs.js.map +1 -1
  360. package/lib/components/CreditCardForm/renderStep.d.ts +1 -1
  361. package/lib/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  362. package/lib/components/CreditCardForm/useCreditCardFormAPI.js +1 -10
  363. package/lib/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  364. package/lib/components/CreditForm/CreditForm.js +2 -2
  365. package/lib/components/CreditForm/CreditForm.js.map +1 -1
  366. package/lib/components/CreditForm/CreditFormStep.js +12 -5
  367. package/lib/components/CreditForm/CreditFormStep.js.map +1 -1
  368. package/lib/components/CreditForm/renderInputs.d.ts +1 -1
  369. package/lib/components/CreditForm/renderInputs.js.map +1 -1
  370. package/lib/components/CreditForm/renderStep.d.ts +1 -1
  371. package/lib/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  372. package/lib/components/CreditForm/useCreditFormAPI.js +1 -10
  373. package/lib/components/CreditForm/useCreditFormAPI.js.map +1 -1
  374. package/lib/components/Depository/Depository.js +1 -1
  375. package/lib/components/Depository/Depository.js.map +1 -1
  376. package/lib/components/Depository/DepositoryFilter.d.ts +1 -1
  377. package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +1 -1
  378. package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
  379. package/lib/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  380. package/lib/hooks/useAspects/handleAspects.d.ts +1 -1
  381. package/lib/hooks/useAspects/handleAspects.js +1 -1
  382. package/lib/hooks/useAspects/handleAspects.js.map +1 -1
  383. package/lib/hooks/useForm/FieldOptions.d.ts +7 -0
  384. package/lib/hooks/useForm/FieldOptions.js +2 -0
  385. package/lib/hooks/useForm/FieldOptions.js.map +1 -0
  386. package/lib/hooks/useForm/FormOptions.d.ts +13 -0
  387. package/lib/hooks/useForm/FormOptions.js +2 -0
  388. package/lib/hooks/useForm/FormOptions.js.map +1 -0
  389. package/lib/hooks/useForm/shallowCompare.d.ts +1 -0
  390. package/lib/hooks/useForm/shallowCompare.js +2 -0
  391. package/lib/hooks/useForm/shallowCompare.js.map +1 -0
  392. package/lib/hooks/useForm/useForm.d.ts +19 -0
  393. package/lib/hooks/useForm/useForm.js +51 -0
  394. package/lib/hooks/useForm/useForm.js.map +1 -0
  395. package/lib/hooks/useForm/useFormValidator.d.ts +6 -0
  396. package/lib/hooks/useForm/useFormValidator.js +12 -0
  397. package/lib/hooks/useForm/useFormValidator.js.map +1 -0
  398. package/lib/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  399. package/lib/hooks/useForm/useNormalizedFormState.js +23 -0
  400. package/lib/hooks/useForm/useNormalizedFormState.js.map +1 -0
  401. package/lib/services/retail/external/types.d.ts +1 -1
  402. package/lib/services/retail/inputs.d.ts +67 -68
  403. package/lib/services/retail/inputs.js +67 -68
  404. package/lib/services/retail/inputs.js.map +1 -1
  405. package/lib/services/retail/model/LeadFormState.d.ts +1 -1
  406. package/lib/services/retail/model/NameFieldDef.d.ts +6 -0
  407. package/lib/services/retail/model/NameFieldDef.js +2 -0
  408. package/lib/services/retail/model/NameFieldDef.js.map +1 -0
  409. package/lib/services/retail/model/RetailFormContent.d.ts +1 -1
  410. package/lib/services/retail/utils/calculateInputs.d.ts +1 -2
  411. package/lib/services/retail/utils/calculateInputs.js.map +1 -1
  412. package/lib/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  413. package/lib/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  414. package/lib/ui-kit/BaseFiltration/useFiltrationForm.js +3 -3
  415. package/lib/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -1
  416. package/lib/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  417. package/lib/ui-kit/FormField/BaseFieldDef.d.ts +8 -0
  418. package/lib/ui-kit/FormField/BaseFieldDef.js +2 -0
  419. package/lib/ui-kit/FormField/BaseFieldDef.js.map +1 -0
  420. package/lib/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  421. package/lib/ui-kit/FormField/Fields/AcquiringField.js +1 -3
  422. package/lib/ui-kit/FormField/Fields/AcquiringField.js.map +1 -1
  423. package/lib/ui-kit/FormField/Fields/AddressBranchField.js +1 -3
  424. package/lib/ui-kit/FormField/Fields/AddressBranchField.js.map +1 -1
  425. package/lib/ui-kit/FormField/Fields/AddressFactField.js +1 -3
  426. package/lib/ui-kit/FormField/Fields/AddressFactField.js.map +1 -1
  427. package/lib/ui-kit/FormField/Fields/AddressField.js +1 -3
  428. package/lib/ui-kit/FormField/Fields/AddressField.js.map +1 -1
  429. package/lib/ui-kit/FormField/Fields/AddressMatchField.js +1 -3
  430. package/lib/ui-kit/FormField/Fields/AddressMatchField.js.map +1 -1
  431. package/lib/ui-kit/FormField/Fields/AddressRetailField.js +3 -6
  432. package/lib/ui-kit/FormField/Fields/AddressRetailField.js.map +1 -1
  433. package/lib/ui-kit/FormField/Fields/AmountField.js +1 -1
  434. package/lib/ui-kit/FormField/Fields/AmountField.js.map +1 -1
  435. package/lib/ui-kit/FormField/Fields/AnnualRevenueField.js +1 -3
  436. package/lib/ui-kit/FormField/Fields/AnnualRevenueField.js.map +1 -1
  437. package/lib/ui-kit/FormField/Fields/ArmyIdFlgField.js +1 -3
  438. package/lib/ui-kit/FormField/Fields/ArmyIdFlgField.js.map +1 -1
  439. package/lib/ui-kit/FormField/Fields/BankEmployeeCodeField.js +1 -3
  440. package/lib/ui-kit/FormField/Fields/BankEmployeeCodeField.js.map +1 -1
  441. package/lib/ui-kit/FormField/Fields/BankEmpoleeField.js +1 -1
  442. package/lib/ui-kit/FormField/Fields/BankEmpoleeField.js.map +1 -1
  443. package/lib/ui-kit/FormField/Fields/BankruptcyFlgField.js +1 -3
  444. package/lib/ui-kit/FormField/Fields/BankruptcyFlgField.js.map +1 -1
  445. package/lib/ui-kit/FormField/Fields/BeginDateField.js +1 -3
  446. package/lib/ui-kit/FormField/Fields/BeginDateField.js.map +1 -1
  447. package/lib/ui-kit/FormField/Fields/BirthPlaceField.js +1 -3
  448. package/lib/ui-kit/FormField/Fields/BirthPlaceField.js.map +1 -1
  449. package/lib/ui-kit/FormField/Fields/BirthdayField.js +1 -3
  450. package/lib/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  451. package/lib/ui-kit/FormField/Fields/ChildrenField.js +1 -3
  452. package/lib/ui-kit/FormField/Fields/ChildrenField.js.map +1 -1
  453. package/lib/ui-kit/FormField/Fields/CodeWordField.js +1 -3
  454. package/lib/ui-kit/FormField/Fields/CodeWordField.js.map +1 -1
  455. package/lib/ui-kit/FormField/Fields/CollectionCountField.js +1 -3
  456. package/lib/ui-kit/FormField/Fields/CollectionCountField.js.map +1 -1
  457. package/lib/ui-kit/FormField/Fields/CommentField.js +1 -3
  458. package/lib/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  459. package/lib/ui-kit/FormField/Fields/ConsentField.js +1 -3
  460. package/lib/ui-kit/FormField/Fields/ConsentField.js.map +1 -1
  461. package/lib/ui-kit/FormField/Fields/CurrencyField.js +2 -7
  462. package/lib/ui-kit/FormField/Fields/CurrencyField.js.map +1 -1
  463. package/lib/ui-kit/FormField/Fields/DeliveryDateFiels.js +1 -3
  464. package/lib/ui-kit/FormField/Fields/DeliveryDateFiels.js.map +1 -1
  465. package/lib/ui-kit/FormField/Fields/DependentsField.js +1 -3
  466. package/lib/ui-kit/FormField/Fields/DependentsField.js.map +1 -1
  467. package/lib/ui-kit/FormField/Fields/DesiredMeetingDateField.js +1 -3
  468. package/lib/ui-kit/FormField/Fields/DesiredMeetingDateField.js.map +1 -1
  469. package/lib/ui-kit/FormField/Fields/DisablePeopleFlgField.js +1 -3
  470. package/lib/ui-kit/FormField/Fields/DisablePeopleFlgField.js.map +1 -1
  471. package/lib/ui-kit/FormField/Fields/DulIssueDateField.js +1 -4
  472. package/lib/ui-kit/FormField/Fields/DulIssueDateField.js.map +1 -1
  473. package/lib/ui-kit/FormField/Fields/DulIssuedByField.js +1 -4
  474. package/lib/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -1
  475. package/lib/ui-kit/FormField/Fields/DulNumberField.js +1 -4
  476. package/lib/ui-kit/FormField/Fields/DulNumberField.js.map +1 -1
  477. package/lib/ui-kit/FormField/Fields/DulSerieField.js +1 -4
  478. package/lib/ui-kit/FormField/Fields/DulSerieField.js.map +1 -1
  479. package/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +1 -4
  480. package/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -1
  481. package/lib/ui-kit/FormField/Fields/EmailField.js +1 -4
  482. package/lib/ui-kit/FormField/Fields/EmailField.js.map +1 -1
  483. package/lib/ui-kit/FormField/Fields/ExpensesField.js +1 -3
  484. package/lib/ui-kit/FormField/Fields/ExpensesField.js.map +1 -1
  485. package/lib/ui-kit/FormField/Fields/Experience5YearsField.js +2 -5
  486. package/lib/ui-kit/FormField/Fields/Experience5YearsField.js.map +1 -1
  487. package/lib/ui-kit/FormField/Fields/FamilyMembersField.js +4 -4
  488. package/lib/ui-kit/FormField/Fields/FamilyMembersField.js.map +1 -1
  489. package/lib/ui-kit/FormField/Fields/FeedbackMethodField.js +1 -3
  490. package/lib/ui-kit/FormField/Fields/FeedbackMethodField.js.map +1 -1
  491. package/lib/ui-kit/FormField/Fields/FullNameField.js +1 -3
  492. package/lib/ui-kit/FormField/Fields/FullNameField.js.map +1 -1
  493. package/lib/ui-kit/FormField/Fields/GeneralSeniorityField.js +1 -3
  494. package/lib/ui-kit/FormField/Fields/GeneralSeniorityField.js.map +1 -1
  495. package/lib/ui-kit/FormField/Fields/InnField.js +1 -3
  496. package/lib/ui-kit/FormField/Fields/InnField.js.map +1 -1
  497. package/lib/ui-kit/FormField/Fields/IsClientField.js +1 -1
  498. package/lib/ui-kit/FormField/Fields/IsClientField.js.map +1 -1
  499. package/lib/ui-kit/FormField/Fields/JobsNumberField.js +1 -3
  500. package/lib/ui-kit/FormField/Fields/JobsNumberField.js.map +1 -1
  501. package/lib/ui-kit/FormField/Fields/LastJobExperienceField.js +1 -3
  502. package/lib/ui-kit/FormField/Fields/LastJobExperienceField.js.map +1 -1
  503. package/lib/ui-kit/FormField/Fields/LegalEntityNameField.js +1 -3
  504. package/lib/ui-kit/FormField/Fields/LegalEntityNameField.js.map +1 -1
  505. package/lib/ui-kit/FormField/Fields/LegalFormField.js +1 -3
  506. package/lib/ui-kit/FormField/Fields/LegalFormField.js.map +1 -1
  507. package/lib/ui-kit/FormField/Fields/LimitedBirthdayField.js +1 -4
  508. package/lib/ui-kit/FormField/Fields/LimitedBirthdayField.js.map +1 -1
  509. package/lib/ui-kit/FormField/Fields/LocalitiesField.js +5 -9
  510. package/lib/ui-kit/FormField/Fields/LocalitiesField.js.map +1 -1
  511. package/lib/ui-kit/FormField/Fields/MandatoryPaymentsField.js +1 -3
  512. package/lib/ui-kit/FormField/Fields/MandatoryPaymentsField.js.map +1 -1
  513. package/lib/ui-kit/FormField/Fields/MethodObtainField.js +1 -3
  514. package/lib/ui-kit/FormField/Fields/MethodObtainField.js.map +1 -1
  515. package/lib/ui-kit/FormField/Fields/MiddleNameField.js +1 -4
  516. package/lib/ui-kit/FormField/Fields/MiddleNameField.js.map +1 -1
  517. package/lib/ui-kit/FormField/Fields/NameField.js +1 -3
  518. package/lib/ui-kit/FormField/Fields/NameField.js.map +1 -1
  519. package/lib/ui-kit/FormField/Fields/OnlineCheckoutField.js +1 -1
  520. package/lib/ui-kit/FormField/Fields/OnlineCheckoutField.js.map +1 -1
  521. package/lib/ui-kit/FormField/Fields/OrganizationNameField.js +1 -3
  522. package/lib/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  523. package/lib/ui-kit/FormField/Fields/OtherIncomeField.js +1 -3
  524. package/lib/ui-kit/FormField/Fields/OtherIncomeField.js.map +1 -1
  525. package/lib/ui-kit/FormField/Fields/PartInBusinessField.js +2 -5
  526. package/lib/ui-kit/FormField/Fields/PartInBusinessField.js.map +1 -1
  527. package/lib/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js +1 -3
  528. package/lib/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js.map +1 -1
  529. package/lib/ui-kit/FormField/Fields/PartnerCommentsField.js +1 -6
  530. package/lib/ui-kit/FormField/Fields/PartnerCommentsField.js.map +1 -1
  531. package/lib/ui-kit/FormField/Fields/PaymentSystemField.js +14 -14
  532. package/lib/ui-kit/FormField/Fields/PaymentSystemField.js.map +1 -1
  533. package/lib/ui-kit/FormField/Fields/PhoneField.js +1 -3
  534. package/lib/ui-kit/FormField/Fields/PhoneField.js.map +1 -1
  535. package/lib/ui-kit/FormField/Fields/ProductField.js +1 -3
  536. package/lib/ui-kit/FormField/Fields/ProductField.js.map +1 -1
  537. package/lib/ui-kit/FormField/Fields/RegionField.js +1 -3
  538. package/lib/ui-kit/FormField/Fields/RegionField.js.map +1 -1
  539. package/lib/ui-kit/FormField/Fields/RegionPremiumField.js +1 -3
  540. package/lib/ui-kit/FormField/Fields/RegionPremiumField.js.map +1 -1
  541. package/lib/ui-kit/FormField/Fields/RegionRetailField.js +1 -3
  542. package/lib/ui-kit/FormField/Fields/RegionRetailField.js.map +1 -1
  543. package/lib/ui-kit/FormField/Fields/RetirementIncomeField.js +1 -3
  544. package/lib/ui-kit/FormField/Fields/RetirementIncomeField.js.map +1 -1
  545. package/lib/ui-kit/FormField/Fields/ServiceDirectionField.js +1 -3
  546. package/lib/ui-kit/FormField/Fields/ServiceDirectionField.js.map +1 -1
  547. package/lib/ui-kit/FormField/Fields/SexField.js +1 -3
  548. package/lib/ui-kit/FormField/Fields/SexField.js.map +1 -1
  549. package/lib/ui-kit/FormField/Fields/ShareholderFlgField.js +1 -3
  550. package/lib/ui-kit/FormField/Fields/ShareholderFlgField.js.map +1 -1
  551. package/lib/ui-kit/FormField/Fields/SnilsField.js +1 -3
  552. package/lib/ui-kit/FormField/Fields/SnilsField.js.map +1 -1
  553. package/lib/ui-kit/FormField/Fields/SurnameField.js +1 -3
  554. package/lib/ui-kit/FormField/Fields/SurnameField.js.map +1 -1
  555. package/lib/ui-kit/FormField/Fields/TotalIncomeField.js +1 -3
  556. package/lib/ui-kit/FormField/Fields/TotalIncomeField.js.map +1 -1
  557. package/lib/ui-kit/FormField/Fields/UltraPremiumField.js +1 -3
  558. package/lib/ui-kit/FormField/Fields/UltraPremiumField.js.map +1 -1
  559. package/lib/ui-kit/FormField/Fields/VedField.js +8 -9
  560. package/lib/ui-kit/FormField/Fields/VedField.js.map +1 -1
  561. package/lib/ui-kit/FormField/Fields/WagesField.js +1 -3
  562. package/lib/ui-kit/FormField/Fields/WagesField.js.map +1 -1
  563. package/lib/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js +1 -4
  564. package/lib/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js.map +1 -1
  565. package/lib/ui-kit/FormField/NameFieldDef.d.ts +1 -4
  566. package/lib/ui-kit/FormField/SelectField.js +2 -4
  567. package/lib/ui-kit/FormField/SelectField.js.map +1 -1
  568. package/lib/ui-kit/FormField/getField.d.ts +3 -3
  569. package/lib/ui-kit/FormField/getField.js +31 -31
  570. package/lib/ui-kit/FormField/getField.js.map +1 -1
  571. package/lib/ui-kit/FormField/getObjectValidator.d.ts +3 -2
  572. package/lib/ui-kit/FormField/getObjectValidator.js +16 -4
  573. package/lib/ui-kit/FormField/getObjectValidator.js.map +1 -1
  574. package/lib/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  575. package/lib/ui-kit/FormField/shouldRenderField.d.ts +6 -0
  576. package/lib/ui-kit/FormField/{isRenderField.js → shouldRenderField.js} +2 -2
  577. package/lib/ui-kit/FormField/shouldRenderField.js.map +1 -0
  578. package/lib/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  579. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  580. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  581. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +1 -1
  582. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -1
  583. package/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  584. package/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +3 -4
  585. package/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  586. package/lib/utils/getRequiredLabel.js +1 -0
  587. package/lib/utils/getRequiredLabel.js.map +1 -1
  588. package/lib/validation/objectValidator.d.ts +1 -1
  589. package/lib/validation/objectValidator.js +1 -1
  590. package/lib/validation/objectValidator.js.map +1 -1
  591. package/mobile/bundle/EventBus/defaultEventBus.d.ts +1 -3
  592. package/mobile/bundle/bundle.umd.js +599 -597
  593. package/mobile/bundle/bundle.umd.min.js +1 -1
  594. package/mobile/bundle/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  595. package/mobile/bundle/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  596. package/mobile/bundle/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  597. package/mobile/bundle/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  598. package/mobile/bundle/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  599. package/mobile/bundle/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  600. package/mobile/bundle/components/CreditCardForm/renderInputs.d.ts +1 -1
  601. package/mobile/bundle/components/CreditCardForm/renderStep.d.ts +1 -1
  602. package/mobile/bundle/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  603. package/mobile/bundle/components/CreditForm/renderInputs.d.ts +1 -1
  604. package/mobile/bundle/components/CreditForm/renderStep.d.ts +1 -1
  605. package/mobile/bundle/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  606. package/mobile/bundle/components/Depository/DepositoryFilter.d.ts +1 -1
  607. package/mobile/bundle/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  608. package/mobile/bundle/hooks/useAspects/handleAspects.d.ts +1 -1
  609. package/mobile/bundle/hooks/useForm/FieldOptions.d.ts +7 -0
  610. package/mobile/bundle/hooks/useForm/FormOptions.d.ts +13 -0
  611. package/mobile/bundle/hooks/useForm/shallowCompare.d.ts +1 -0
  612. package/mobile/bundle/hooks/useForm/useForm.d.ts +19 -0
  613. package/mobile/bundle/hooks/useForm/useFormValidator.d.ts +6 -0
  614. package/mobile/bundle/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  615. package/mobile/bundle/services/retail/external/types.d.ts +1 -1
  616. package/mobile/bundle/services/retail/inputs.d.ts +67 -68
  617. package/mobile/bundle/services/retail/model/LeadFormState.d.ts +1 -1
  618. package/mobile/bundle/services/retail/model/NameFieldDef.d.ts +6 -0
  619. package/mobile/bundle/services/retail/model/RetailFormContent.d.ts +1 -1
  620. package/mobile/bundle/services/retail/utils/calculateInputs.d.ts +1 -2
  621. package/mobile/bundle/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  622. package/mobile/bundle/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  623. package/mobile/bundle/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  624. package/mobile/bundle/ui-kit/FormField/BaseFieldDef.d.ts +8 -0
  625. package/mobile/bundle/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  626. package/mobile/bundle/ui-kit/FormField/NameFieldDef.d.ts +1 -4
  627. package/mobile/bundle/ui-kit/FormField/getField.d.ts +3 -3
  628. package/mobile/bundle/ui-kit/FormField/getObjectValidator.d.ts +3 -2
  629. package/mobile/bundle/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  630. package/mobile/bundle/ui-kit/FormField/shouldRenderField.d.ts +6 -0
  631. package/mobile/bundle/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  632. package/mobile/bundle/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  633. package/mobile/bundle/validation/objectValidator.d.ts +1 -1
  634. package/mobile/dist/EventBus/defaultEventBus.d.ts +1 -3
  635. package/mobile/dist/EventBus/defaultEventBus.js +1 -1
  636. package/mobile/dist/EventBus/defaultEventBus.js.map +1 -1
  637. package/mobile/dist/components/ApplicationForm/ApplicationForm.js +14 -34
  638. package/mobile/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
  639. package/mobile/dist/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  640. package/mobile/dist/components/ApplicationLeadForm/ApplicationLeadForm.js +11 -7
  641. package/mobile/dist/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  642. package/mobile/dist/components/ApplicationLeadForm/GroupedConsents.js +4 -2
  643. package/mobile/dist/components/ApplicationLeadForm/GroupedConsents.js.map +1 -1
  644. package/mobile/dist/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  645. package/mobile/dist/components/ApplicationLeadForm/renderInputs.js +4 -3
  646. package/mobile/dist/components/ApplicationLeadForm/renderInputs.js.map +1 -1
  647. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  648. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.js +5 -16
  649. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  650. package/mobile/dist/components/CalculatorBonus/CalculatorBonus.js +1 -1
  651. package/mobile/dist/components/CalculatorBonus/CalculatorBonus.js.map +1 -1
  652. package/mobile/dist/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js +1 -1
  653. package/mobile/dist/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js.map +1 -1
  654. package/mobile/dist/components/CalculatorCredit/CalculatorCredit.js +3 -6
  655. package/mobile/dist/components/CalculatorCredit/CalculatorCredit.js.map +1 -1
  656. package/mobile/dist/components/CalculatorDeposit/CalculatorDeposit.js +2 -2
  657. package/mobile/dist/components/CalculatorDeposit/CalculatorDeposit.js.map +1 -1
  658. package/mobile/dist/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  659. package/mobile/dist/components/CalculatorRefinancing/CalculatorRefinancing.js +1 -1
  660. package/mobile/dist/components/CalculatorRefinancing/CalculatorRefinancing.js.map +1 -1
  661. package/mobile/dist/components/CardTransfer/CardTransfer.js +1 -1
  662. package/mobile/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  663. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -11
  664. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  665. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  666. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +5 -0
  667. package/mobile/dist/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  668. package/mobile/dist/components/CreditCardForm/CreditCardForm.js +1 -1
  669. package/mobile/dist/components/CreditCardForm/CreditCardForm.js.map +1 -1
  670. package/mobile/dist/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  671. package/mobile/dist/components/CreditCardForm/CreditCardFormStep.js +11 -4
  672. package/mobile/dist/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  673. package/mobile/dist/components/CreditCardForm/renderInputs.d.ts +1 -1
  674. package/mobile/dist/components/CreditCardForm/renderInputs.js +2 -1
  675. package/mobile/dist/components/CreditCardForm/renderInputs.js.map +1 -1
  676. package/mobile/dist/components/CreditCardForm/renderStep.d.ts +1 -1
  677. package/mobile/dist/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  678. package/mobile/dist/components/CreditCardForm/useCreditCardFormAPI.js +1 -10
  679. package/mobile/dist/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  680. package/mobile/dist/components/CreditForm/CreditForm.js +1 -1
  681. package/mobile/dist/components/CreditForm/CreditForm.js.map +1 -1
  682. package/mobile/dist/components/CreditForm/CreditFormStep.js +11 -4
  683. package/mobile/dist/components/CreditForm/CreditFormStep.js.map +1 -1
  684. package/mobile/dist/components/CreditForm/renderInputs.d.ts +1 -1
  685. package/mobile/dist/components/CreditForm/renderInputs.js.map +1 -1
  686. package/mobile/dist/components/CreditForm/renderStep.d.ts +1 -1
  687. package/mobile/dist/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  688. package/mobile/dist/components/CreditForm/useCreditFormAPI.js +1 -10
  689. package/mobile/dist/components/CreditForm/useCreditFormAPI.js.map +1 -1
  690. package/mobile/dist/components/Depository/Depository.js +1 -1
  691. package/mobile/dist/components/Depository/Depository.js.map +1 -1
  692. package/mobile/dist/components/Depository/DepositoryFilter.d.ts +1 -1
  693. package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +1 -1
  694. package/mobile/dist/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
  695. package/mobile/dist/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  696. package/mobile/dist/hooks/useAspects/handleAspects.d.ts +1 -1
  697. package/mobile/dist/hooks/useAspects/handleAspects.js +1 -1
  698. package/mobile/dist/hooks/useAspects/handleAspects.js.map +1 -1
  699. package/mobile/dist/hooks/useForm/FieldOptions.d.ts +7 -0
  700. package/mobile/dist/hooks/useForm/FieldOptions.js +2 -0
  701. package/mobile/dist/hooks/useForm/FieldOptions.js.map +1 -0
  702. package/mobile/dist/hooks/useForm/FormOptions.d.ts +13 -0
  703. package/mobile/dist/hooks/useForm/FormOptions.js +2 -0
  704. package/mobile/dist/hooks/useForm/FormOptions.js.map +1 -0
  705. package/mobile/dist/hooks/useForm/shallowCompare.d.ts +1 -0
  706. package/mobile/dist/hooks/useForm/shallowCompare.js +5 -0
  707. package/mobile/dist/hooks/useForm/shallowCompare.js.map +1 -0
  708. package/mobile/dist/hooks/useForm/useForm.d.ts +19 -0
  709. package/mobile/dist/hooks/useForm/useForm.js +54 -0
  710. package/mobile/dist/hooks/useForm/useForm.js.map +1 -0
  711. package/mobile/dist/hooks/useForm/useFormValidator.d.ts +6 -0
  712. package/mobile/dist/hooks/useForm/useFormValidator.js +15 -0
  713. package/mobile/dist/hooks/useForm/useFormValidator.js.map +1 -0
  714. package/mobile/dist/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  715. package/mobile/dist/hooks/useForm/useNormalizedFormState.js +26 -0
  716. package/mobile/dist/hooks/useForm/useNormalizedFormState.js.map +1 -0
  717. package/mobile/dist/services/retail/external/types.d.ts +1 -1
  718. package/mobile/dist/services/retail/inputs.d.ts +67 -68
  719. package/mobile/dist/services/retail/inputs.js +67 -68
  720. package/mobile/dist/services/retail/inputs.js.map +1 -1
  721. package/mobile/dist/services/retail/model/LeadFormState.d.ts +1 -1
  722. package/mobile/dist/services/retail/model/NameFieldDef.d.ts +6 -0
  723. package/mobile/dist/services/retail/model/NameFieldDef.js +2 -0
  724. package/mobile/dist/services/retail/model/NameFieldDef.js.map +1 -0
  725. package/mobile/dist/services/retail/model/RetailFormContent.d.ts +1 -1
  726. package/mobile/dist/services/retail/utils/calculateInputs.d.ts +1 -2
  727. package/mobile/dist/services/retail/utils/calculateInputs.js.map +1 -1
  728. package/mobile/dist/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  729. package/mobile/dist/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  730. package/mobile/dist/ui-kit/BaseFiltration/useFiltrationForm.js +3 -3
  731. package/mobile/dist/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -1
  732. package/mobile/dist/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  733. package/mobile/dist/ui-kit/FormField/BaseFieldDef.d.ts +8 -0
  734. package/mobile/dist/ui-kit/FormField/BaseFieldDef.js +2 -0
  735. package/mobile/dist/ui-kit/FormField/BaseFieldDef.js.map +1 -0
  736. package/mobile/dist/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  737. package/mobile/dist/ui-kit/FormField/Fields/AcquiringField.js +1 -3
  738. package/mobile/dist/ui-kit/FormField/Fields/AcquiringField.js.map +1 -1
  739. package/mobile/dist/ui-kit/FormField/Fields/AddressBranchField.js +1 -3
  740. package/mobile/dist/ui-kit/FormField/Fields/AddressBranchField.js.map +1 -1
  741. package/mobile/dist/ui-kit/FormField/Fields/AddressFactField.js +1 -3
  742. package/mobile/dist/ui-kit/FormField/Fields/AddressFactField.js.map +1 -1
  743. package/mobile/dist/ui-kit/FormField/Fields/AddressField.js +1 -3
  744. package/mobile/dist/ui-kit/FormField/Fields/AddressField.js.map +1 -1
  745. package/mobile/dist/ui-kit/FormField/Fields/AddressMatchField.js +1 -3
  746. package/mobile/dist/ui-kit/FormField/Fields/AddressMatchField.js.map +1 -1
  747. package/mobile/dist/ui-kit/FormField/Fields/AddressRetailField.js +3 -6
  748. package/mobile/dist/ui-kit/FormField/Fields/AddressRetailField.js.map +1 -1
  749. package/mobile/dist/ui-kit/FormField/Fields/AmountField.js +1 -1
  750. package/mobile/dist/ui-kit/FormField/Fields/AmountField.js.map +1 -1
  751. package/mobile/dist/ui-kit/FormField/Fields/AnnualRevenueField.js +1 -3
  752. package/mobile/dist/ui-kit/FormField/Fields/AnnualRevenueField.js.map +1 -1
  753. package/mobile/dist/ui-kit/FormField/Fields/ArmyIdFlgField.js +1 -3
  754. package/mobile/dist/ui-kit/FormField/Fields/ArmyIdFlgField.js.map +1 -1
  755. package/mobile/dist/ui-kit/FormField/Fields/BankEmployeeCodeField.js +1 -3
  756. package/mobile/dist/ui-kit/FormField/Fields/BankEmployeeCodeField.js.map +1 -1
  757. package/mobile/dist/ui-kit/FormField/Fields/BankEmpoleeField.js +1 -1
  758. package/mobile/dist/ui-kit/FormField/Fields/BankEmpoleeField.js.map +1 -1
  759. package/mobile/dist/ui-kit/FormField/Fields/BankruptcyFlgField.js +1 -3
  760. package/mobile/dist/ui-kit/FormField/Fields/BankruptcyFlgField.js.map +1 -1
  761. package/mobile/dist/ui-kit/FormField/Fields/BeginDateField.js +1 -3
  762. package/mobile/dist/ui-kit/FormField/Fields/BeginDateField.js.map +1 -1
  763. package/mobile/dist/ui-kit/FormField/Fields/BirthPlaceField.js +1 -3
  764. package/mobile/dist/ui-kit/FormField/Fields/BirthPlaceField.js.map +1 -1
  765. package/mobile/dist/ui-kit/FormField/Fields/BirthdayField.js +1 -3
  766. package/mobile/dist/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  767. package/mobile/dist/ui-kit/FormField/Fields/ChildrenField.js +1 -3
  768. package/mobile/dist/ui-kit/FormField/Fields/ChildrenField.js.map +1 -1
  769. package/mobile/dist/ui-kit/FormField/Fields/CodeWordField.js +1 -3
  770. package/mobile/dist/ui-kit/FormField/Fields/CodeWordField.js.map +1 -1
  771. package/mobile/dist/ui-kit/FormField/Fields/CollectionCountField.js +1 -3
  772. package/mobile/dist/ui-kit/FormField/Fields/CollectionCountField.js.map +1 -1
  773. package/mobile/dist/ui-kit/FormField/Fields/CommentField.js +1 -3
  774. package/mobile/dist/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  775. package/mobile/dist/ui-kit/FormField/Fields/ConsentField.js +1 -3
  776. package/mobile/dist/ui-kit/FormField/Fields/ConsentField.js.map +1 -1
  777. package/mobile/dist/ui-kit/FormField/Fields/CurrencyField.js +2 -7
  778. package/mobile/dist/ui-kit/FormField/Fields/CurrencyField.js.map +1 -1
  779. package/mobile/dist/ui-kit/FormField/Fields/DeliveryDateFiels.js +1 -3
  780. package/mobile/dist/ui-kit/FormField/Fields/DeliveryDateFiels.js.map +1 -1
  781. package/mobile/dist/ui-kit/FormField/Fields/DependentsField.js +1 -3
  782. package/mobile/dist/ui-kit/FormField/Fields/DependentsField.js.map +1 -1
  783. package/mobile/dist/ui-kit/FormField/Fields/DesiredMeetingDateField.js +1 -3
  784. package/mobile/dist/ui-kit/FormField/Fields/DesiredMeetingDateField.js.map +1 -1
  785. package/mobile/dist/ui-kit/FormField/Fields/DisablePeopleFlgField.js +1 -3
  786. package/mobile/dist/ui-kit/FormField/Fields/DisablePeopleFlgField.js.map +1 -1
  787. package/mobile/dist/ui-kit/FormField/Fields/DulIssueDateField.js +1 -4
  788. package/mobile/dist/ui-kit/FormField/Fields/DulIssueDateField.js.map +1 -1
  789. package/mobile/dist/ui-kit/FormField/Fields/DulIssuedByField.js +1 -4
  790. package/mobile/dist/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -1
  791. package/mobile/dist/ui-kit/FormField/Fields/DulNumberField.js +1 -4
  792. package/mobile/dist/ui-kit/FormField/Fields/DulNumberField.js.map +1 -1
  793. package/mobile/dist/ui-kit/FormField/Fields/DulSerieField.js +1 -4
  794. package/mobile/dist/ui-kit/FormField/Fields/DulSerieField.js.map +1 -1
  795. package/mobile/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +1 -4
  796. package/mobile/dist/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -1
  797. package/mobile/dist/ui-kit/FormField/Fields/EmailField.js +1 -4
  798. package/mobile/dist/ui-kit/FormField/Fields/EmailField.js.map +1 -1
  799. package/mobile/dist/ui-kit/FormField/Fields/ExpensesField.js +1 -3
  800. package/mobile/dist/ui-kit/FormField/Fields/ExpensesField.js.map +1 -1
  801. package/mobile/dist/ui-kit/FormField/Fields/Experience5YearsField.js +2 -5
  802. package/mobile/dist/ui-kit/FormField/Fields/Experience5YearsField.js.map +1 -1
  803. package/mobile/dist/ui-kit/FormField/Fields/FamilyMembersField.js +4 -4
  804. package/mobile/dist/ui-kit/FormField/Fields/FamilyMembersField.js.map +1 -1
  805. package/mobile/dist/ui-kit/FormField/Fields/FeedbackMethodField.js +1 -3
  806. package/mobile/dist/ui-kit/FormField/Fields/FeedbackMethodField.js.map +1 -1
  807. package/mobile/dist/ui-kit/FormField/Fields/FullNameField.js +1 -3
  808. package/mobile/dist/ui-kit/FormField/Fields/FullNameField.js.map +1 -1
  809. package/mobile/dist/ui-kit/FormField/Fields/GeneralSeniorityField.js +1 -3
  810. package/mobile/dist/ui-kit/FormField/Fields/GeneralSeniorityField.js.map +1 -1
  811. package/mobile/dist/ui-kit/FormField/Fields/InnField.js +1 -3
  812. package/mobile/dist/ui-kit/FormField/Fields/InnField.js.map +1 -1
  813. package/mobile/dist/ui-kit/FormField/Fields/IsClientField.js +1 -1
  814. package/mobile/dist/ui-kit/FormField/Fields/IsClientField.js.map +1 -1
  815. package/mobile/dist/ui-kit/FormField/Fields/JobsNumberField.js +1 -3
  816. package/mobile/dist/ui-kit/FormField/Fields/JobsNumberField.js.map +1 -1
  817. package/mobile/dist/ui-kit/FormField/Fields/LastJobExperienceField.js +1 -3
  818. package/mobile/dist/ui-kit/FormField/Fields/LastJobExperienceField.js.map +1 -1
  819. package/mobile/dist/ui-kit/FormField/Fields/LegalEntityNameField.js +1 -3
  820. package/mobile/dist/ui-kit/FormField/Fields/LegalEntityNameField.js.map +1 -1
  821. package/mobile/dist/ui-kit/FormField/Fields/LegalFormField.js +1 -3
  822. package/mobile/dist/ui-kit/FormField/Fields/LegalFormField.js.map +1 -1
  823. package/mobile/dist/ui-kit/FormField/Fields/LimitedBirthdayField.js +1 -4
  824. package/mobile/dist/ui-kit/FormField/Fields/LimitedBirthdayField.js.map +1 -1
  825. package/mobile/dist/ui-kit/FormField/Fields/LocalitiesField.js +4 -8
  826. package/mobile/dist/ui-kit/FormField/Fields/LocalitiesField.js.map +1 -1
  827. package/mobile/dist/ui-kit/FormField/Fields/MandatoryPaymentsField.js +1 -3
  828. package/mobile/dist/ui-kit/FormField/Fields/MandatoryPaymentsField.js.map +1 -1
  829. package/mobile/dist/ui-kit/FormField/Fields/MethodObtainField.js +1 -3
  830. package/mobile/dist/ui-kit/FormField/Fields/MethodObtainField.js.map +1 -1
  831. package/mobile/dist/ui-kit/FormField/Fields/MiddleNameField.js +1 -4
  832. package/mobile/dist/ui-kit/FormField/Fields/MiddleNameField.js.map +1 -1
  833. package/mobile/dist/ui-kit/FormField/Fields/NameField.js +1 -3
  834. package/mobile/dist/ui-kit/FormField/Fields/NameField.js.map +1 -1
  835. package/mobile/dist/ui-kit/FormField/Fields/OnlineCheckoutField.js +1 -1
  836. package/mobile/dist/ui-kit/FormField/Fields/OnlineCheckoutField.js.map +1 -1
  837. package/mobile/dist/ui-kit/FormField/Fields/OrganizationNameField.js +1 -3
  838. package/mobile/dist/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  839. package/mobile/dist/ui-kit/FormField/Fields/OtherIncomeField.js +1 -3
  840. package/mobile/dist/ui-kit/FormField/Fields/OtherIncomeField.js.map +1 -1
  841. package/mobile/dist/ui-kit/FormField/Fields/PartInBusinessField.js +2 -5
  842. package/mobile/dist/ui-kit/FormField/Fields/PartInBusinessField.js.map +1 -1
  843. package/mobile/dist/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js +1 -3
  844. package/mobile/dist/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js.map +1 -1
  845. package/mobile/dist/ui-kit/FormField/Fields/PartnerCommentsField.js +1 -6
  846. package/mobile/dist/ui-kit/FormField/Fields/PartnerCommentsField.js.map +1 -1
  847. package/mobile/dist/ui-kit/FormField/Fields/PaymentSystemField.js +13 -13
  848. package/mobile/dist/ui-kit/FormField/Fields/PaymentSystemField.js.map +1 -1
  849. package/mobile/dist/ui-kit/FormField/Fields/PhoneField.js +1 -3
  850. package/mobile/dist/ui-kit/FormField/Fields/PhoneField.js.map +1 -1
  851. package/mobile/dist/ui-kit/FormField/Fields/ProductField.js +1 -3
  852. package/mobile/dist/ui-kit/FormField/Fields/ProductField.js.map +1 -1
  853. package/mobile/dist/ui-kit/FormField/Fields/RegionField.js +1 -3
  854. package/mobile/dist/ui-kit/FormField/Fields/RegionField.js.map +1 -1
  855. package/mobile/dist/ui-kit/FormField/Fields/RegionPremiumField.js +1 -3
  856. package/mobile/dist/ui-kit/FormField/Fields/RegionPremiumField.js.map +1 -1
  857. package/mobile/dist/ui-kit/FormField/Fields/RegionRetailField.js +1 -3
  858. package/mobile/dist/ui-kit/FormField/Fields/RegionRetailField.js.map +1 -1
  859. package/mobile/dist/ui-kit/FormField/Fields/RetirementIncomeField.js +1 -3
  860. package/mobile/dist/ui-kit/FormField/Fields/RetirementIncomeField.js.map +1 -1
  861. package/mobile/dist/ui-kit/FormField/Fields/ServiceDirectionField.js +1 -3
  862. package/mobile/dist/ui-kit/FormField/Fields/ServiceDirectionField.js.map +1 -1
  863. package/mobile/dist/ui-kit/FormField/Fields/SexField.js +1 -3
  864. package/mobile/dist/ui-kit/FormField/Fields/SexField.js.map +1 -1
  865. package/mobile/dist/ui-kit/FormField/Fields/ShareholderFlgField.js +1 -3
  866. package/mobile/dist/ui-kit/FormField/Fields/ShareholderFlgField.js.map +1 -1
  867. package/mobile/dist/ui-kit/FormField/Fields/SnilsField.js +1 -3
  868. package/mobile/dist/ui-kit/FormField/Fields/SnilsField.js.map +1 -1
  869. package/mobile/dist/ui-kit/FormField/Fields/SurnameField.js +1 -3
  870. package/mobile/dist/ui-kit/FormField/Fields/SurnameField.js.map +1 -1
  871. package/mobile/dist/ui-kit/FormField/Fields/TotalIncomeField.js +1 -3
  872. package/mobile/dist/ui-kit/FormField/Fields/TotalIncomeField.js.map +1 -1
  873. package/mobile/dist/ui-kit/FormField/Fields/UltraPremiumField.js +1 -3
  874. package/mobile/dist/ui-kit/FormField/Fields/UltraPremiumField.js.map +1 -1
  875. package/mobile/dist/ui-kit/FormField/Fields/VedField.js +7 -8
  876. package/mobile/dist/ui-kit/FormField/Fields/VedField.js.map +1 -1
  877. package/mobile/dist/ui-kit/FormField/Fields/WagesField.js +1 -3
  878. package/mobile/dist/ui-kit/FormField/Fields/WagesField.js.map +1 -1
  879. package/mobile/dist/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js +1 -4
  880. package/mobile/dist/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js.map +1 -1
  881. package/mobile/dist/ui-kit/FormField/NameFieldDef.d.ts +1 -4
  882. package/mobile/dist/ui-kit/FormField/SelectField.js +2 -4
  883. package/mobile/dist/ui-kit/FormField/SelectField.js.map +1 -1
  884. package/mobile/dist/ui-kit/FormField/getField.d.ts +3 -3
  885. package/mobile/dist/ui-kit/FormField/getField.js +31 -31
  886. package/mobile/dist/ui-kit/FormField/getField.js.map +1 -1
  887. package/mobile/dist/ui-kit/FormField/getObjectValidator.d.ts +3 -2
  888. package/mobile/dist/ui-kit/FormField/getObjectValidator.js +18 -6
  889. package/mobile/dist/ui-kit/FormField/getObjectValidator.js.map +1 -1
  890. package/mobile/dist/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  891. package/mobile/dist/ui-kit/FormField/shouldRenderField.d.ts +6 -0
  892. package/{dist/ui-kit/FormField/isRenderField.js → mobile/dist/ui-kit/FormField/shouldRenderField.js} +4 -4
  893. package/mobile/dist/ui-kit/FormField/shouldRenderField.js.map +1 -0
  894. package/mobile/dist/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  895. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  896. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  897. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +1 -1
  898. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -1
  899. package/mobile/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  900. package/mobile/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +3 -4
  901. package/mobile/dist/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  902. package/mobile/dist/utils/getRequiredLabel.js +1 -0
  903. package/mobile/dist/utils/getRequiredLabel.js.map +1 -1
  904. package/mobile/dist/validation/objectValidator.d.ts +1 -1
  905. package/mobile/dist/validation/objectValidator.js +1 -1
  906. package/mobile/dist/validation/objectValidator.js.map +1 -1
  907. package/mobile/lib/EventBus/defaultEventBus.d.ts +1 -3
  908. package/mobile/lib/EventBus/defaultEventBus.js +1 -1
  909. package/mobile/lib/EventBus/defaultEventBus.js.map +1 -1
  910. package/mobile/lib/components/ApplicationForm/ApplicationForm.js +16 -36
  911. package/mobile/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
  912. package/mobile/lib/components/ApplicationForm/renderAgreementSubmit.d.ts +1 -1
  913. package/mobile/lib/components/ApplicationLeadForm/ApplicationLeadForm.js +11 -7
  914. package/mobile/lib/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
  915. package/mobile/lib/components/ApplicationLeadForm/GroupedConsents.js +4 -2
  916. package/mobile/lib/components/ApplicationLeadForm/GroupedConsents.js.map +1 -1
  917. package/mobile/lib/components/ApplicationLeadForm/renderAgreementSubmit.d.ts +1 -1
  918. package/mobile/lib/components/ApplicationLeadForm/renderInputs.js +4 -3
  919. package/mobile/lib/components/ApplicationLeadForm/renderInputs.js.map +1 -1
  920. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.d.ts +3 -5
  921. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.js +5 -16
  922. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  923. package/mobile/lib/components/CalculatorBonus/CalculatorBonus.js +1 -1
  924. package/mobile/lib/components/CalculatorBonus/CalculatorBonus.js.map +1 -1
  925. package/mobile/lib/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js +1 -1
  926. package/mobile/lib/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.js.map +1 -1
  927. package/mobile/lib/components/CalculatorCredit/CalculatorCredit.js +3 -6
  928. package/mobile/lib/components/CalculatorCredit/CalculatorCredit.js.map +1 -1
  929. package/mobile/lib/components/CalculatorDeposit/CalculatorDeposit.js +2 -2
  930. package/mobile/lib/components/CalculatorDeposit/CalculatorDeposit.js.map +1 -1
  931. package/mobile/lib/components/CalculatorDeposit/renderDepositParamsForm.d.ts +1 -1
  932. package/mobile/lib/components/CalculatorRefinancing/CalculatorRefinancing.js +1 -1
  933. package/mobile/lib/components/CalculatorRefinancing/CalculatorRefinancing.js.map +1 -1
  934. package/mobile/lib/components/CardTransfer/CardTransfer.js +1 -1
  935. package/mobile/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  936. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +13 -12
  937. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  938. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.d.ts +10 -0
  939. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js +3 -0
  940. package/mobile/lib/components/CarouselTariffsCard/carouselTariffsCardEventBus.js.map +1 -0
  941. package/mobile/lib/components/CreditCardForm/CreditCardForm.js +2 -2
  942. package/mobile/lib/components/CreditCardForm/CreditCardForm.js.map +1 -1
  943. package/mobile/lib/components/CreditCardForm/CreditCardFormContent.d.ts +1 -1
  944. package/mobile/lib/components/CreditCardForm/CreditCardFormStep.js +12 -5
  945. package/mobile/lib/components/CreditCardForm/CreditCardFormStep.js.map +1 -1
  946. package/mobile/lib/components/CreditCardForm/renderInputs.d.ts +1 -1
  947. package/mobile/lib/components/CreditCardForm/renderInputs.js +2 -1
  948. package/mobile/lib/components/CreditCardForm/renderInputs.js.map +1 -1
  949. package/mobile/lib/components/CreditCardForm/renderStep.d.ts +1 -1
  950. package/mobile/lib/components/CreditCardForm/useCreditCardFormAPI.d.ts +1 -3
  951. package/mobile/lib/components/CreditCardForm/useCreditCardFormAPI.js +1 -10
  952. package/mobile/lib/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  953. package/mobile/lib/components/CreditForm/CreditForm.js +2 -2
  954. package/mobile/lib/components/CreditForm/CreditForm.js.map +1 -1
  955. package/mobile/lib/components/CreditForm/CreditFormStep.js +12 -5
  956. package/mobile/lib/components/CreditForm/CreditFormStep.js.map +1 -1
  957. package/mobile/lib/components/CreditForm/renderInputs.d.ts +1 -1
  958. package/mobile/lib/components/CreditForm/renderInputs.js.map +1 -1
  959. package/mobile/lib/components/CreditForm/renderStep.d.ts +1 -1
  960. package/mobile/lib/components/CreditForm/useCreditFormAPI.d.ts +1 -3
  961. package/mobile/lib/components/CreditForm/useCreditFormAPI.js +1 -10
  962. package/mobile/lib/components/CreditForm/useCreditFormAPI.js.map +1 -1
  963. package/mobile/lib/components/Depository/Depository.js +1 -1
  964. package/mobile/lib/components/Depository/Depository.js.map +1 -1
  965. package/mobile/lib/components/Depository/DepositoryFilter.d.ts +1 -1
  966. package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js +1 -1
  967. package/mobile/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.js.map +1 -1
  968. package/mobile/lib/components/OfficesAtmsMap/renderFiltrationForm.d.ts +1 -1
  969. package/mobile/lib/hooks/useAspects/handleAspects.d.ts +1 -1
  970. package/mobile/lib/hooks/useAspects/handleAspects.js +1 -1
  971. package/mobile/lib/hooks/useAspects/handleAspects.js.map +1 -1
  972. package/mobile/lib/hooks/useForm/FieldOptions.d.ts +7 -0
  973. package/mobile/lib/hooks/useForm/FieldOptions.js +2 -0
  974. package/mobile/lib/hooks/useForm/FieldOptions.js.map +1 -0
  975. package/mobile/lib/hooks/useForm/FormOptions.d.ts +13 -0
  976. package/mobile/lib/hooks/useForm/FormOptions.js +2 -0
  977. package/mobile/lib/hooks/useForm/FormOptions.js.map +1 -0
  978. package/mobile/lib/hooks/useForm/shallowCompare.d.ts +1 -0
  979. package/mobile/lib/hooks/useForm/shallowCompare.js +2 -0
  980. package/mobile/lib/hooks/useForm/shallowCompare.js.map +1 -0
  981. package/mobile/lib/hooks/useForm/useForm.d.ts +19 -0
  982. package/mobile/lib/hooks/useForm/useForm.js +51 -0
  983. package/mobile/lib/hooks/useForm/useForm.js.map +1 -0
  984. package/mobile/lib/hooks/useForm/useFormValidator.d.ts +6 -0
  985. package/mobile/lib/hooks/useForm/useFormValidator.js +12 -0
  986. package/mobile/lib/hooks/useForm/useFormValidator.js.map +1 -0
  987. package/mobile/lib/hooks/useForm/useNormalizedFormState.d.ts +1 -0
  988. package/mobile/lib/hooks/useForm/useNormalizedFormState.js +23 -0
  989. package/mobile/lib/hooks/useForm/useNormalizedFormState.js.map +1 -0
  990. package/mobile/lib/services/retail/external/types.d.ts +1 -1
  991. package/mobile/lib/services/retail/inputs.d.ts +67 -68
  992. package/mobile/lib/services/retail/inputs.js +67 -68
  993. package/mobile/lib/services/retail/inputs.js.map +1 -1
  994. package/mobile/lib/services/retail/model/LeadFormState.d.ts +1 -1
  995. package/mobile/lib/services/retail/model/NameFieldDef.d.ts +6 -0
  996. package/mobile/lib/services/retail/model/NameFieldDef.js +2 -0
  997. package/mobile/lib/services/retail/model/NameFieldDef.js.map +1 -0
  998. package/mobile/lib/services/retail/model/RetailFormContent.d.ts +1 -1
  999. package/mobile/lib/services/retail/utils/calculateInputs.d.ts +1 -2
  1000. package/mobile/lib/services/retail/utils/calculateInputs.js.map +1 -1
  1001. package/mobile/lib/ui-kit/BaseFiltration/FiltrationForm.d.ts +1 -1
  1002. package/mobile/lib/ui-kit/BaseFiltration/useFiltrationForm.d.ts +2 -2
  1003. package/mobile/lib/ui-kit/BaseFiltration/useFiltrationForm.js +3 -3
  1004. package/mobile/lib/ui-kit/BaseFiltration/useFiltrationForm.js.map +1 -1
  1005. package/mobile/lib/ui-kit/Calculator/setDefaultParamsCalc.d.ts +1 -1
  1006. package/mobile/lib/ui-kit/FormField/BaseFieldDef.d.ts +8 -0
  1007. package/mobile/lib/ui-kit/FormField/BaseFieldDef.js +2 -0
  1008. package/mobile/lib/ui-kit/FormField/BaseFieldDef.js.map +1 -0
  1009. package/mobile/lib/ui-kit/FormField/CustomFieldProps.d.ts +1 -1
  1010. package/mobile/lib/ui-kit/FormField/Fields/AcquiringField.js +1 -3
  1011. package/mobile/lib/ui-kit/FormField/Fields/AcquiringField.js.map +1 -1
  1012. package/mobile/lib/ui-kit/FormField/Fields/AddressBranchField.js +1 -3
  1013. package/mobile/lib/ui-kit/FormField/Fields/AddressBranchField.js.map +1 -1
  1014. package/mobile/lib/ui-kit/FormField/Fields/AddressFactField.js +1 -3
  1015. package/mobile/lib/ui-kit/FormField/Fields/AddressFactField.js.map +1 -1
  1016. package/mobile/lib/ui-kit/FormField/Fields/AddressField.js +1 -3
  1017. package/mobile/lib/ui-kit/FormField/Fields/AddressField.js.map +1 -1
  1018. package/mobile/lib/ui-kit/FormField/Fields/AddressMatchField.js +1 -3
  1019. package/mobile/lib/ui-kit/FormField/Fields/AddressMatchField.js.map +1 -1
  1020. package/mobile/lib/ui-kit/FormField/Fields/AddressRetailField.js +3 -6
  1021. package/mobile/lib/ui-kit/FormField/Fields/AddressRetailField.js.map +1 -1
  1022. package/mobile/lib/ui-kit/FormField/Fields/AmountField.js +1 -1
  1023. package/mobile/lib/ui-kit/FormField/Fields/AmountField.js.map +1 -1
  1024. package/mobile/lib/ui-kit/FormField/Fields/AnnualRevenueField.js +1 -3
  1025. package/mobile/lib/ui-kit/FormField/Fields/AnnualRevenueField.js.map +1 -1
  1026. package/mobile/lib/ui-kit/FormField/Fields/ArmyIdFlgField.js +1 -3
  1027. package/mobile/lib/ui-kit/FormField/Fields/ArmyIdFlgField.js.map +1 -1
  1028. package/mobile/lib/ui-kit/FormField/Fields/BankEmployeeCodeField.js +1 -3
  1029. package/mobile/lib/ui-kit/FormField/Fields/BankEmployeeCodeField.js.map +1 -1
  1030. package/mobile/lib/ui-kit/FormField/Fields/BankEmpoleeField.js +1 -1
  1031. package/mobile/lib/ui-kit/FormField/Fields/BankEmpoleeField.js.map +1 -1
  1032. package/mobile/lib/ui-kit/FormField/Fields/BankruptcyFlgField.js +1 -3
  1033. package/mobile/lib/ui-kit/FormField/Fields/BankruptcyFlgField.js.map +1 -1
  1034. package/mobile/lib/ui-kit/FormField/Fields/BeginDateField.js +1 -3
  1035. package/mobile/lib/ui-kit/FormField/Fields/BeginDateField.js.map +1 -1
  1036. package/mobile/lib/ui-kit/FormField/Fields/BirthPlaceField.js +1 -3
  1037. package/mobile/lib/ui-kit/FormField/Fields/BirthPlaceField.js.map +1 -1
  1038. package/mobile/lib/ui-kit/FormField/Fields/BirthdayField.js +1 -3
  1039. package/mobile/lib/ui-kit/FormField/Fields/BirthdayField.js.map +1 -1
  1040. package/mobile/lib/ui-kit/FormField/Fields/ChildrenField.js +1 -3
  1041. package/mobile/lib/ui-kit/FormField/Fields/ChildrenField.js.map +1 -1
  1042. package/mobile/lib/ui-kit/FormField/Fields/CodeWordField.js +1 -3
  1043. package/mobile/lib/ui-kit/FormField/Fields/CodeWordField.js.map +1 -1
  1044. package/mobile/lib/ui-kit/FormField/Fields/CollectionCountField.js +1 -3
  1045. package/mobile/lib/ui-kit/FormField/Fields/CollectionCountField.js.map +1 -1
  1046. package/mobile/lib/ui-kit/FormField/Fields/CommentField.js +1 -3
  1047. package/mobile/lib/ui-kit/FormField/Fields/CommentField.js.map +1 -1
  1048. package/mobile/lib/ui-kit/FormField/Fields/ConsentField.js +1 -3
  1049. package/mobile/lib/ui-kit/FormField/Fields/ConsentField.js.map +1 -1
  1050. package/mobile/lib/ui-kit/FormField/Fields/CurrencyField.js +2 -7
  1051. package/mobile/lib/ui-kit/FormField/Fields/CurrencyField.js.map +1 -1
  1052. package/mobile/lib/ui-kit/FormField/Fields/DeliveryDateFiels.js +1 -3
  1053. package/mobile/lib/ui-kit/FormField/Fields/DeliveryDateFiels.js.map +1 -1
  1054. package/mobile/lib/ui-kit/FormField/Fields/DependentsField.js +1 -3
  1055. package/mobile/lib/ui-kit/FormField/Fields/DependentsField.js.map +1 -1
  1056. package/mobile/lib/ui-kit/FormField/Fields/DesiredMeetingDateField.js +1 -3
  1057. package/mobile/lib/ui-kit/FormField/Fields/DesiredMeetingDateField.js.map +1 -1
  1058. package/mobile/lib/ui-kit/FormField/Fields/DisablePeopleFlgField.js +1 -3
  1059. package/mobile/lib/ui-kit/FormField/Fields/DisablePeopleFlgField.js.map +1 -1
  1060. package/mobile/lib/ui-kit/FormField/Fields/DulIssueDateField.js +1 -4
  1061. package/mobile/lib/ui-kit/FormField/Fields/DulIssueDateField.js.map +1 -1
  1062. package/mobile/lib/ui-kit/FormField/Fields/DulIssuedByField.js +1 -4
  1063. package/mobile/lib/ui-kit/FormField/Fields/DulIssuedByField.js.map +1 -1
  1064. package/mobile/lib/ui-kit/FormField/Fields/DulNumberField.js +1 -4
  1065. package/mobile/lib/ui-kit/FormField/Fields/DulNumberField.js.map +1 -1
  1066. package/mobile/lib/ui-kit/FormField/Fields/DulSerieField.js +1 -4
  1067. package/mobile/lib/ui-kit/FormField/Fields/DulSerieField.js.map +1 -1
  1068. package/mobile/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js +1 -4
  1069. package/mobile/lib/ui-kit/FormField/Fields/DulSubdivisionCodeField.js.map +1 -1
  1070. package/mobile/lib/ui-kit/FormField/Fields/EmailField.js +1 -4
  1071. package/mobile/lib/ui-kit/FormField/Fields/EmailField.js.map +1 -1
  1072. package/mobile/lib/ui-kit/FormField/Fields/ExpensesField.js +1 -3
  1073. package/mobile/lib/ui-kit/FormField/Fields/ExpensesField.js.map +1 -1
  1074. package/mobile/lib/ui-kit/FormField/Fields/Experience5YearsField.js +2 -5
  1075. package/mobile/lib/ui-kit/FormField/Fields/Experience5YearsField.js.map +1 -1
  1076. package/mobile/lib/ui-kit/FormField/Fields/FamilyMembersField.js +4 -4
  1077. package/mobile/lib/ui-kit/FormField/Fields/FamilyMembersField.js.map +1 -1
  1078. package/mobile/lib/ui-kit/FormField/Fields/FeedbackMethodField.js +1 -3
  1079. package/mobile/lib/ui-kit/FormField/Fields/FeedbackMethodField.js.map +1 -1
  1080. package/mobile/lib/ui-kit/FormField/Fields/FullNameField.js +1 -3
  1081. package/mobile/lib/ui-kit/FormField/Fields/FullNameField.js.map +1 -1
  1082. package/mobile/lib/ui-kit/FormField/Fields/GeneralSeniorityField.js +1 -3
  1083. package/mobile/lib/ui-kit/FormField/Fields/GeneralSeniorityField.js.map +1 -1
  1084. package/mobile/lib/ui-kit/FormField/Fields/InnField.js +1 -3
  1085. package/mobile/lib/ui-kit/FormField/Fields/InnField.js.map +1 -1
  1086. package/mobile/lib/ui-kit/FormField/Fields/IsClientField.js +1 -1
  1087. package/mobile/lib/ui-kit/FormField/Fields/IsClientField.js.map +1 -1
  1088. package/mobile/lib/ui-kit/FormField/Fields/JobsNumberField.js +1 -3
  1089. package/mobile/lib/ui-kit/FormField/Fields/JobsNumberField.js.map +1 -1
  1090. package/mobile/lib/ui-kit/FormField/Fields/LastJobExperienceField.js +1 -3
  1091. package/mobile/lib/ui-kit/FormField/Fields/LastJobExperienceField.js.map +1 -1
  1092. package/mobile/lib/ui-kit/FormField/Fields/LegalEntityNameField.js +1 -3
  1093. package/mobile/lib/ui-kit/FormField/Fields/LegalEntityNameField.js.map +1 -1
  1094. package/mobile/lib/ui-kit/FormField/Fields/LegalFormField.js +1 -3
  1095. package/mobile/lib/ui-kit/FormField/Fields/LegalFormField.js.map +1 -1
  1096. package/mobile/lib/ui-kit/FormField/Fields/LimitedBirthdayField.js +1 -4
  1097. package/mobile/lib/ui-kit/FormField/Fields/LimitedBirthdayField.js.map +1 -1
  1098. package/mobile/lib/ui-kit/FormField/Fields/LocalitiesField.js +5 -9
  1099. package/mobile/lib/ui-kit/FormField/Fields/LocalitiesField.js.map +1 -1
  1100. package/mobile/lib/ui-kit/FormField/Fields/MandatoryPaymentsField.js +1 -3
  1101. package/mobile/lib/ui-kit/FormField/Fields/MandatoryPaymentsField.js.map +1 -1
  1102. package/mobile/lib/ui-kit/FormField/Fields/MethodObtainField.js +1 -3
  1103. package/mobile/lib/ui-kit/FormField/Fields/MethodObtainField.js.map +1 -1
  1104. package/mobile/lib/ui-kit/FormField/Fields/MiddleNameField.js +1 -4
  1105. package/mobile/lib/ui-kit/FormField/Fields/MiddleNameField.js.map +1 -1
  1106. package/mobile/lib/ui-kit/FormField/Fields/NameField.js +1 -3
  1107. package/mobile/lib/ui-kit/FormField/Fields/NameField.js.map +1 -1
  1108. package/mobile/lib/ui-kit/FormField/Fields/OnlineCheckoutField.js +1 -1
  1109. package/mobile/lib/ui-kit/FormField/Fields/OnlineCheckoutField.js.map +1 -1
  1110. package/mobile/lib/ui-kit/FormField/Fields/OrganizationNameField.js +1 -3
  1111. package/mobile/lib/ui-kit/FormField/Fields/OrganizationNameField.js.map +1 -1
  1112. package/mobile/lib/ui-kit/FormField/Fields/OtherIncomeField.js +1 -3
  1113. package/mobile/lib/ui-kit/FormField/Fields/OtherIncomeField.js.map +1 -1
  1114. package/mobile/lib/ui-kit/FormField/Fields/PartInBusinessField.js +2 -5
  1115. package/mobile/lib/ui-kit/FormField/Fields/PartInBusinessField.js.map +1 -1
  1116. package/mobile/lib/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js +1 -3
  1117. package/mobile/lib/ui-kit/FormField/Fields/ParticipantDateRegistrationField.js.map +1 -1
  1118. package/mobile/lib/ui-kit/FormField/Fields/PartnerCommentsField.js +1 -6
  1119. package/mobile/lib/ui-kit/FormField/Fields/PartnerCommentsField.js.map +1 -1
  1120. package/mobile/lib/ui-kit/FormField/Fields/PaymentSystemField.js +14 -14
  1121. package/mobile/lib/ui-kit/FormField/Fields/PaymentSystemField.js.map +1 -1
  1122. package/mobile/lib/ui-kit/FormField/Fields/PhoneField.js +1 -3
  1123. package/mobile/lib/ui-kit/FormField/Fields/PhoneField.js.map +1 -1
  1124. package/mobile/lib/ui-kit/FormField/Fields/ProductField.js +1 -3
  1125. package/mobile/lib/ui-kit/FormField/Fields/ProductField.js.map +1 -1
  1126. package/mobile/lib/ui-kit/FormField/Fields/RegionField.js +1 -3
  1127. package/mobile/lib/ui-kit/FormField/Fields/RegionField.js.map +1 -1
  1128. package/mobile/lib/ui-kit/FormField/Fields/RegionPremiumField.js +1 -3
  1129. package/mobile/lib/ui-kit/FormField/Fields/RegionPremiumField.js.map +1 -1
  1130. package/mobile/lib/ui-kit/FormField/Fields/RegionRetailField.js +1 -3
  1131. package/mobile/lib/ui-kit/FormField/Fields/RegionRetailField.js.map +1 -1
  1132. package/mobile/lib/ui-kit/FormField/Fields/RetirementIncomeField.js +1 -3
  1133. package/mobile/lib/ui-kit/FormField/Fields/RetirementIncomeField.js.map +1 -1
  1134. package/mobile/lib/ui-kit/FormField/Fields/ServiceDirectionField.js +1 -3
  1135. package/mobile/lib/ui-kit/FormField/Fields/ServiceDirectionField.js.map +1 -1
  1136. package/mobile/lib/ui-kit/FormField/Fields/SexField.js +1 -3
  1137. package/mobile/lib/ui-kit/FormField/Fields/SexField.js.map +1 -1
  1138. package/mobile/lib/ui-kit/FormField/Fields/ShareholderFlgField.js +1 -3
  1139. package/mobile/lib/ui-kit/FormField/Fields/ShareholderFlgField.js.map +1 -1
  1140. package/mobile/lib/ui-kit/FormField/Fields/SnilsField.js +1 -3
  1141. package/mobile/lib/ui-kit/FormField/Fields/SnilsField.js.map +1 -1
  1142. package/mobile/lib/ui-kit/FormField/Fields/SurnameField.js +1 -3
  1143. package/mobile/lib/ui-kit/FormField/Fields/SurnameField.js.map +1 -1
  1144. package/mobile/lib/ui-kit/FormField/Fields/TotalIncomeField.js +1 -3
  1145. package/mobile/lib/ui-kit/FormField/Fields/TotalIncomeField.js.map +1 -1
  1146. package/mobile/lib/ui-kit/FormField/Fields/UltraPremiumField.js +1 -3
  1147. package/mobile/lib/ui-kit/FormField/Fields/UltraPremiumField.js.map +1 -1
  1148. package/mobile/lib/ui-kit/FormField/Fields/VedField.js +8 -9
  1149. package/mobile/lib/ui-kit/FormField/Fields/VedField.js.map +1 -1
  1150. package/mobile/lib/ui-kit/FormField/Fields/WagesField.js +1 -3
  1151. package/mobile/lib/ui-kit/FormField/Fields/WagesField.js.map +1 -1
  1152. package/mobile/lib/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js +1 -4
  1153. package/mobile/lib/ui-kit/FormField/Fields/consentToReceiveMaterialsField.js.map +1 -1
  1154. package/mobile/lib/ui-kit/FormField/NameFieldDef.d.ts +1 -4
  1155. package/mobile/lib/ui-kit/FormField/SelectField.js +2 -4
  1156. package/mobile/lib/ui-kit/FormField/SelectField.js.map +1 -1
  1157. package/mobile/lib/ui-kit/FormField/getField.d.ts +3 -3
  1158. package/mobile/lib/ui-kit/FormField/getField.js +31 -31
  1159. package/mobile/lib/ui-kit/FormField/getField.js.map +1 -1
  1160. package/mobile/lib/ui-kit/FormField/getObjectValidator.d.ts +3 -2
  1161. package/mobile/lib/ui-kit/FormField/getObjectValidator.js +16 -4
  1162. package/mobile/lib/ui-kit/FormField/getObjectValidator.js.map +1 -1
  1163. package/mobile/lib/ui-kit/FormField/isEsiaAuthorize.d.ts +1 -1
  1164. package/mobile/lib/ui-kit/FormField/shouldRenderField.d.ts +6 -0
  1165. package/mobile/lib/ui-kit/FormField/{isRenderField.js → shouldRenderField.js} +2 -2
  1166. package/mobile/lib/ui-kit/FormField/shouldRenderField.js.map +1 -0
  1167. package/mobile/lib/ui-kit/FormField/updateOrganizationFields.d.ts +1 -1
  1168. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js +1 -1
  1169. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  1170. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js +1 -1
  1171. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroupControl.js.map +1 -1
  1172. package/mobile/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.d.ts +1 -1
  1173. package/mobile/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js +3 -4
  1174. package/mobile/lib/ui-kit/ResponseTypeDialog/ResponseTypeDialog.js.map +1 -1
  1175. package/mobile/lib/utils/getRequiredLabel.js +1 -0
  1176. package/mobile/lib/utils/getRequiredLabel.js.map +1 -1
  1177. package/mobile/lib/validation/objectValidator.d.ts +1 -1
  1178. package/mobile/lib/validation/objectValidator.js +1 -1
  1179. package/mobile/lib/validation/objectValidator.js.map +1 -1
  1180. package/mobile/src/EventBus/defaultEventBus.ts +1 -3
  1181. package/mobile/src/components/ApplicationForm/ApplicationForm.tsx +23 -43
  1182. package/mobile/src/components/ApplicationForm/renderAgreementSubmit.tsx +1 -1
  1183. package/mobile/src/components/ApplicationLeadForm/ApplicationLeadForm.tsx +12 -7
  1184. package/mobile/src/components/ApplicationLeadForm/GroupedConsents.tsx +5 -2
  1185. package/mobile/src/components/ApplicationLeadForm/renderAgreementSubmit.tsx +1 -1
  1186. package/mobile/src/components/ApplicationLeadForm/renderInputs.tsx +7 -4
  1187. package/mobile/src/components/ApplicationLeadForm/useApplicationLeadApi.tsx +5 -23
  1188. package/mobile/src/components/CalculatorBonus/CalculatorBonus.tsx +1 -1
  1189. package/mobile/src/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.tsx +1 -1
  1190. package/mobile/src/components/CalculatorCredit/CalculatorCredit.tsx +13 -14
  1191. package/mobile/src/components/CalculatorDeposit/CalculatorDeposit.tsx +2 -2
  1192. package/mobile/src/components/CalculatorDeposit/renderDepositParamsForm.tsx +1 -1
  1193. package/mobile/src/components/CalculatorRefinancing/CalculatorRefinancing.tsx +1 -1
  1194. package/mobile/src/components/CardTransfer/CardTransfer.tsx +1 -1
  1195. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +37 -34
  1196. package/mobile/src/components/CarouselTariffsCard/carouselTariffsCardEventBus.ts +12 -0
  1197. package/mobile/src/components/CreditCardForm/CreditCardForm.tsx +2 -2
  1198. package/mobile/src/components/CreditCardForm/CreditCardFormContent.ts +1 -1
  1199. package/mobile/src/components/CreditCardForm/CreditCardFormStep.tsx +17 -7
  1200. package/mobile/src/components/CreditCardForm/renderInputs.tsx +6 -2
  1201. package/mobile/src/components/CreditCardForm/renderStep.tsx +1 -1
  1202. package/mobile/src/components/CreditCardForm/useCreditCardFormAPI.tsx +0 -20
  1203. package/mobile/src/components/CreditForm/CreditForm.tsx +3 -3
  1204. package/mobile/src/components/CreditForm/CreditFormStep.tsx +18 -7
  1205. package/mobile/src/components/CreditForm/renderInputs.tsx +2 -2
  1206. package/mobile/src/components/CreditForm/renderStep.tsx +1 -1
  1207. package/mobile/src/components/CreditForm/useCreditFormAPI.tsx +0 -20
  1208. package/mobile/src/components/Depository/Depository.tsx +1 -1
  1209. package/mobile/src/components/Depository/DepositoryFilter.tsx +1 -1
  1210. package/mobile/src/components/OfficesAtmsMap/OfficesAtmsMapLayout.tsx +1 -1
  1211. package/mobile/src/components/OfficesAtmsMap/renderFiltrationForm.tsx +1 -1
  1212. package/mobile/src/hooks/useAspects/handleAspects.ts +2 -2
  1213. package/mobile/src/hooks/useForm/FieldOptions.ts +8 -0
  1214. package/mobile/src/hooks/useForm/FormOptions.ts +18 -0
  1215. package/mobile/src/hooks/useForm/shallowCompare.ts +2 -0
  1216. package/mobile/src/hooks/useForm/useForm.ts +98 -0
  1217. package/mobile/src/hooks/useForm/useFormValidator.ts +24 -0
  1218. package/mobile/src/hooks/useForm/useNormalizedFormState.ts +37 -0
  1219. package/mobile/src/services/retail/external/types.ts +1 -1
  1220. package/mobile/src/services/retail/inputs.tsx +67 -70
  1221. package/mobile/src/services/retail/model/LeadFormState.ts +2 -2
  1222. package/mobile/src/services/retail/model/NameFieldDef.ts +89 -0
  1223. package/mobile/src/services/retail/model/RetailFormContent.ts +1 -1
  1224. package/mobile/src/services/retail/utils/calculateInputs.ts +6 -7
  1225. package/mobile/src/ui-kit/BaseFiltration/FiltrationForm.tsx +1 -1
  1226. package/mobile/src/ui-kit/BaseFiltration/useFiltrationForm.ts +4 -4
  1227. package/mobile/src/ui-kit/Calculator/setDefaultParamsCalc.tsx +1 -1
  1228. package/mobile/src/ui-kit/FormField/BaseFieldDef.ts +8 -0
  1229. package/mobile/src/ui-kit/FormField/CustomFieldProps.ts +1 -1
  1230. package/mobile/src/ui-kit/FormField/Fields/AcquiringField.tsx +1 -3
  1231. package/mobile/src/ui-kit/FormField/Fields/AddressBranchField.tsx +1 -3
  1232. package/mobile/src/ui-kit/FormField/Fields/AddressFactField.tsx +1 -3
  1233. package/mobile/src/ui-kit/FormField/Fields/AddressField.tsx +1 -3
  1234. package/mobile/src/ui-kit/FormField/Fields/AddressMatchField.tsx +1 -3
  1235. package/mobile/src/ui-kit/FormField/Fields/AddressRetailField.tsx +4 -12
  1236. package/mobile/src/ui-kit/FormField/Fields/AmountField.tsx +2 -2
  1237. package/mobile/src/ui-kit/FormField/Fields/AnnualRevenueField.tsx +1 -6
  1238. package/mobile/src/ui-kit/FormField/Fields/ArmyIdFlgField.tsx +1 -6
  1239. package/mobile/src/ui-kit/FormField/Fields/BankEmployeeCodeField.tsx +1 -3
  1240. package/mobile/src/ui-kit/FormField/Fields/BankEmpoleeField.tsx +2 -2
  1241. package/mobile/src/ui-kit/FormField/Fields/BankruptcyFlgField.tsx +1 -3
  1242. package/mobile/src/ui-kit/FormField/Fields/BeginDateField.tsx +1 -3
  1243. package/mobile/src/ui-kit/FormField/Fields/BirthPlaceField.tsx +1 -3
  1244. package/mobile/src/ui-kit/FormField/Fields/BirthdayField.tsx +1 -6
  1245. package/mobile/src/ui-kit/FormField/Fields/ChildrenField.tsx +1 -3
  1246. package/mobile/src/ui-kit/FormField/Fields/CodeWordField.tsx +1 -7
  1247. package/mobile/src/ui-kit/FormField/Fields/CollectionCountField.tsx +1 -3
  1248. package/mobile/src/ui-kit/FormField/Fields/CommentField.tsx +1 -3
  1249. package/mobile/src/ui-kit/FormField/Fields/ConsentField.tsx +1 -3
  1250. package/mobile/src/ui-kit/FormField/Fields/CurrencyField.tsx +9 -17
  1251. package/mobile/src/ui-kit/FormField/Fields/DeliveryDateFiels.tsx +1 -6
  1252. package/mobile/src/ui-kit/FormField/Fields/DependentsField.tsx +1 -3
  1253. package/mobile/src/ui-kit/FormField/Fields/DesiredMeetingDateField.tsx +1 -10
  1254. package/mobile/src/ui-kit/FormField/Fields/DisablePeopleFlgField.tsx +1 -6
  1255. package/mobile/src/ui-kit/FormField/Fields/DulIssueDateField.tsx +2 -6
  1256. package/mobile/src/ui-kit/FormField/Fields/DulIssuedByField.tsx +2 -6
  1257. package/mobile/src/ui-kit/FormField/Fields/DulNumberField.tsx +2 -6
  1258. package/mobile/src/ui-kit/FormField/Fields/DulSerieField.tsx +2 -6
  1259. package/mobile/src/ui-kit/FormField/Fields/DulSubdivisionCodeField.tsx +2 -6
  1260. package/mobile/src/ui-kit/FormField/Fields/EmailField.tsx +1 -12
  1261. package/mobile/src/ui-kit/FormField/Fields/ExpensesField.tsx +1 -3
  1262. package/mobile/src/ui-kit/FormField/Fields/Experience5YearsField.tsx +2 -5
  1263. package/mobile/src/ui-kit/FormField/Fields/FamilyMembersField.tsx +4 -4
  1264. package/mobile/src/ui-kit/FormField/Fields/FeedbackMethodField.tsx +1 -3
  1265. package/mobile/src/ui-kit/FormField/Fields/FullNameField.tsx +1 -7
  1266. package/mobile/src/ui-kit/FormField/Fields/GeneralSeniorityField.tsx +1 -3
  1267. package/mobile/src/ui-kit/FormField/Fields/InnField.tsx +1 -3
  1268. package/mobile/src/ui-kit/FormField/Fields/IsClientField.tsx +5 -2
  1269. package/mobile/src/ui-kit/FormField/Fields/JobsNumberField.tsx +1 -3
  1270. package/mobile/src/ui-kit/FormField/Fields/LastJobExperienceField.tsx +1 -3
  1271. package/mobile/src/ui-kit/FormField/Fields/LegalEntityNameField.tsx +1 -3
  1272. package/mobile/src/ui-kit/FormField/Fields/LegalFormField.tsx +1 -3
  1273. package/mobile/src/ui-kit/FormField/Fields/LimitedBirthdayField.tsx +2 -6
  1274. package/mobile/src/ui-kit/FormField/Fields/LocalitiesField.tsx +8 -9
  1275. package/mobile/src/ui-kit/FormField/Fields/MandatoryPaymentsField.tsx +1 -3
  1276. package/mobile/src/ui-kit/FormField/Fields/MethodObtainField.tsx +1 -3
  1277. package/mobile/src/ui-kit/FormField/Fields/MiddleNameField.tsx +2 -6
  1278. package/mobile/src/ui-kit/FormField/Fields/NameField.tsx +1 -3
  1279. package/mobile/src/ui-kit/FormField/Fields/OnlineCheckoutField.tsx +2 -2
  1280. package/mobile/src/ui-kit/FormField/Fields/OrganizationNameField.tsx +1 -3
  1281. package/mobile/src/ui-kit/FormField/Fields/OtherIncomeField.tsx +1 -3
  1282. package/mobile/src/ui-kit/FormField/Fields/PartInBusinessField.tsx +2 -5
  1283. package/mobile/src/ui-kit/FormField/Fields/ParticipantDateRegistrationField.tsx +1 -10
  1284. package/mobile/src/ui-kit/FormField/Fields/PartnerCommentsField.tsx +8 -15
  1285. package/mobile/src/ui-kit/FormField/Fields/PaymentSystemField.tsx +18 -22
  1286. package/mobile/src/ui-kit/FormField/Fields/PhoneField.tsx +1 -3
  1287. package/mobile/src/ui-kit/FormField/Fields/ProductField.tsx +2 -4
  1288. package/mobile/src/ui-kit/FormField/Fields/RegionField.tsx +1 -4
  1289. package/mobile/src/ui-kit/FormField/Fields/RegionPremiumField.tsx +1 -3
  1290. package/mobile/src/ui-kit/FormField/Fields/RegionRetailField.tsx +1 -3
  1291. package/mobile/src/ui-kit/FormField/Fields/RetirementIncomeField.tsx +1 -3
  1292. package/mobile/src/ui-kit/FormField/Fields/ServiceDirectionField.tsx +1 -3
  1293. package/mobile/src/ui-kit/FormField/Fields/SexField.tsx +1 -3
  1294. package/mobile/src/ui-kit/FormField/Fields/ShareholderFlgField.tsx +1 -3
  1295. package/mobile/src/ui-kit/FormField/Fields/SnilsField.tsx +1 -8
  1296. package/mobile/src/ui-kit/FormField/Fields/SurnameField.tsx +1 -3
  1297. package/mobile/src/ui-kit/FormField/Fields/TotalIncomeField.tsx +1 -3
  1298. package/mobile/src/ui-kit/FormField/Fields/UltraPremiumField.tsx +1 -7
  1299. package/mobile/src/ui-kit/FormField/Fields/VedField.tsx +8 -10
  1300. package/mobile/src/ui-kit/FormField/Fields/WagesField.tsx +1 -3
  1301. package/mobile/src/ui-kit/FormField/Fields/consentToReceiveMaterialsField.tsx +1 -5
  1302. package/mobile/src/ui-kit/FormField/NameFieldDef.ts +1 -81
  1303. package/mobile/src/ui-kit/FormField/SelectField.tsx +1 -4
  1304. package/mobile/src/ui-kit/FormField/getField.tsx +39 -40
  1305. package/mobile/src/ui-kit/FormField/getObjectValidator.tsx +31 -6
  1306. package/mobile/src/ui-kit/FormField/isEsiaAuthorize.ts +1 -1
  1307. package/mobile/src/ui-kit/FormField/{isRenderField.tsx → shouldRenderField.tsx} +4 -4
  1308. package/mobile/src/ui-kit/FormField/updateOrganizationFields.ts +1 -1
  1309. package/mobile/src/ui-kit/RadioButtonGroup/RadioButtonGroup.tsx +2 -2
  1310. package/mobile/src/ui-kit/RadioButtonGroup/RadioButtonGroupControl.tsx +2 -6
  1311. package/mobile/src/ui-kit/ResponseTypeDialog/ResponseTypeDialog.tsx +25 -28
  1312. package/mobile/src/utils/getRequiredLabel.ts +1 -0
  1313. package/mobile/src/validation/objectValidator.ts +6 -4
  1314. package/package.json +1 -1
  1315. package/src/EventBus/defaultEventBus.ts +1 -3
  1316. package/src/components/ApplicationForm/ApplicationForm.tsx +23 -43
  1317. package/src/components/ApplicationForm/renderAgreementSubmit.tsx +1 -1
  1318. package/src/components/ApplicationLeadForm/ApplicationLeadForm.tsx +12 -7
  1319. package/src/components/ApplicationLeadForm/GroupedConsents.tsx +5 -2
  1320. package/src/components/ApplicationLeadForm/renderAgreementSubmit.tsx +1 -1
  1321. package/src/components/ApplicationLeadForm/renderInputs.tsx +7 -4
  1322. package/src/components/ApplicationLeadForm/useApplicationLeadApi.tsx +5 -23
  1323. package/src/components/CalculatorBonus/CalculatorBonus.tsx +1 -1
  1324. package/src/components/CalculatorBusinessDeposit/CalculatorBusinessDeposit.tsx +1 -1
  1325. package/src/components/CalculatorCredit/CalculatorCredit.tsx +13 -14
  1326. package/src/components/CalculatorDeposit/CalculatorDeposit.tsx +2 -2
  1327. package/src/components/CalculatorDeposit/renderDepositParamsForm.tsx +1 -1
  1328. package/src/components/CalculatorRefinancing/CalculatorRefinancing.tsx +1 -1
  1329. package/src/components/CardTransfer/CardTransfer.tsx +1 -1
  1330. package/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +37 -34
  1331. package/src/components/CarouselTariffsCard/carouselTariffsCardEventBus.ts +12 -0
  1332. package/src/components/CreditCardForm/CreditCardForm.tsx +2 -2
  1333. package/src/components/CreditCardForm/CreditCardFormContent.ts +1 -1
  1334. package/src/components/CreditCardForm/CreditCardFormStep.tsx +17 -7
  1335. package/src/components/CreditCardForm/renderInputs.tsx +6 -2
  1336. package/src/components/CreditCardForm/renderStep.tsx +1 -1
  1337. package/src/components/CreditCardForm/useCreditCardFormAPI.tsx +0 -20
  1338. package/src/components/CreditForm/CreditForm.tsx +3 -3
  1339. package/src/components/CreditForm/CreditFormStep.tsx +18 -7
  1340. package/src/components/CreditForm/renderInputs.tsx +2 -2
  1341. package/src/components/CreditForm/renderStep.tsx +1 -1
  1342. package/src/components/CreditForm/useCreditFormAPI.tsx +0 -20
  1343. package/src/components/Depository/Depository.tsx +1 -1
  1344. package/src/components/Depository/DepositoryFilter.tsx +1 -1
  1345. package/src/components/OfficesAtmsMap/OfficesAtmsMapLayout.tsx +1 -1
  1346. package/src/components/OfficesAtmsMap/renderFiltrationForm.tsx +1 -1
  1347. package/src/hooks/useAspects/handleAspects.ts +2 -2
  1348. package/src/hooks/useForm/FieldOptions.ts +8 -0
  1349. package/src/hooks/useForm/FormOptions.ts +18 -0
  1350. package/src/hooks/useForm/shallowCompare.ts +2 -0
  1351. package/src/hooks/useForm/useForm.ts +98 -0
  1352. package/src/hooks/useForm/useFormValidator.ts +24 -0
  1353. package/src/hooks/useForm/useNormalizedFormState.ts +37 -0
  1354. package/src/services/retail/external/types.ts +1 -1
  1355. package/src/services/retail/inputs.tsx +67 -70
  1356. package/src/services/retail/model/LeadFormState.ts +2 -2
  1357. package/src/services/retail/model/NameFieldDef.ts +89 -0
  1358. package/src/services/retail/model/RetailFormContent.ts +1 -1
  1359. package/src/services/retail/utils/calculateInputs.ts +6 -7
  1360. package/src/ui-kit/BaseFiltration/FiltrationForm.tsx +1 -1
  1361. package/src/ui-kit/BaseFiltration/useFiltrationForm.ts +4 -4
  1362. package/src/ui-kit/Calculator/setDefaultParamsCalc.tsx +1 -1
  1363. package/src/ui-kit/FormField/BaseFieldDef.ts +8 -0
  1364. package/src/ui-kit/FormField/CustomFieldProps.ts +1 -1
  1365. package/src/ui-kit/FormField/Fields/AcquiringField.tsx +1 -3
  1366. package/src/ui-kit/FormField/Fields/AddressBranchField.tsx +1 -3
  1367. package/src/ui-kit/FormField/Fields/AddressFactField.tsx +1 -3
  1368. package/src/ui-kit/FormField/Fields/AddressField.tsx +1 -3
  1369. package/src/ui-kit/FormField/Fields/AddressMatchField.tsx +1 -3
  1370. package/src/ui-kit/FormField/Fields/AddressRetailField.tsx +4 -12
  1371. package/src/ui-kit/FormField/Fields/AmountField.tsx +2 -2
  1372. package/src/ui-kit/FormField/Fields/AnnualRevenueField.tsx +1 -6
  1373. package/src/ui-kit/FormField/Fields/ArmyIdFlgField.tsx +1 -6
  1374. package/src/ui-kit/FormField/Fields/BankEmployeeCodeField.tsx +1 -3
  1375. package/src/ui-kit/FormField/Fields/BankEmpoleeField.tsx +2 -2
  1376. package/src/ui-kit/FormField/Fields/BankruptcyFlgField.tsx +1 -3
  1377. package/src/ui-kit/FormField/Fields/BeginDateField.tsx +1 -3
  1378. package/src/ui-kit/FormField/Fields/BirthPlaceField.tsx +1 -3
  1379. package/src/ui-kit/FormField/Fields/BirthdayField.tsx +1 -6
  1380. package/src/ui-kit/FormField/Fields/ChildrenField.tsx +1 -3
  1381. package/src/ui-kit/FormField/Fields/CodeWordField.tsx +1 -7
  1382. package/src/ui-kit/FormField/Fields/CollectionCountField.tsx +1 -3
  1383. package/src/ui-kit/FormField/Fields/CommentField.tsx +1 -3
  1384. package/src/ui-kit/FormField/Fields/ConsentField.tsx +1 -3
  1385. package/src/ui-kit/FormField/Fields/CurrencyField.tsx +9 -17
  1386. package/src/ui-kit/FormField/Fields/DeliveryDateFiels.tsx +1 -6
  1387. package/src/ui-kit/FormField/Fields/DependentsField.tsx +1 -3
  1388. package/src/ui-kit/FormField/Fields/DesiredMeetingDateField.tsx +1 -10
  1389. package/src/ui-kit/FormField/Fields/DisablePeopleFlgField.tsx +1 -6
  1390. package/src/ui-kit/FormField/Fields/DulIssueDateField.tsx +2 -6
  1391. package/src/ui-kit/FormField/Fields/DulIssuedByField.tsx +2 -6
  1392. package/src/ui-kit/FormField/Fields/DulNumberField.tsx +2 -6
  1393. package/src/ui-kit/FormField/Fields/DulSerieField.tsx +2 -6
  1394. package/src/ui-kit/FormField/Fields/DulSubdivisionCodeField.tsx +2 -6
  1395. package/src/ui-kit/FormField/Fields/EmailField.tsx +1 -12
  1396. package/src/ui-kit/FormField/Fields/ExpensesField.tsx +1 -3
  1397. package/src/ui-kit/FormField/Fields/Experience5YearsField.tsx +2 -5
  1398. package/src/ui-kit/FormField/Fields/FamilyMembersField.tsx +4 -4
  1399. package/src/ui-kit/FormField/Fields/FeedbackMethodField.tsx +1 -3
  1400. package/src/ui-kit/FormField/Fields/FullNameField.tsx +1 -7
  1401. package/src/ui-kit/FormField/Fields/GeneralSeniorityField.tsx +1 -3
  1402. package/src/ui-kit/FormField/Fields/InnField.tsx +1 -3
  1403. package/src/ui-kit/FormField/Fields/IsClientField.tsx +5 -2
  1404. package/src/ui-kit/FormField/Fields/JobsNumberField.tsx +1 -3
  1405. package/src/ui-kit/FormField/Fields/LastJobExperienceField.tsx +1 -3
  1406. package/src/ui-kit/FormField/Fields/LegalEntityNameField.tsx +1 -3
  1407. package/src/ui-kit/FormField/Fields/LegalFormField.tsx +1 -3
  1408. package/src/ui-kit/FormField/Fields/LimitedBirthdayField.tsx +2 -6
  1409. package/src/ui-kit/FormField/Fields/LocalitiesField.tsx +8 -9
  1410. package/src/ui-kit/FormField/Fields/MandatoryPaymentsField.tsx +1 -3
  1411. package/src/ui-kit/FormField/Fields/MethodObtainField.tsx +1 -3
  1412. package/src/ui-kit/FormField/Fields/MiddleNameField.tsx +2 -6
  1413. package/src/ui-kit/FormField/Fields/NameField.tsx +1 -3
  1414. package/src/ui-kit/FormField/Fields/OnlineCheckoutField.tsx +2 -2
  1415. package/src/ui-kit/FormField/Fields/OrganizationNameField.tsx +1 -3
  1416. package/src/ui-kit/FormField/Fields/OtherIncomeField.tsx +1 -3
  1417. package/src/ui-kit/FormField/Fields/PartInBusinessField.tsx +2 -5
  1418. package/src/ui-kit/FormField/Fields/ParticipantDateRegistrationField.tsx +1 -10
  1419. package/src/ui-kit/FormField/Fields/PartnerCommentsField.tsx +8 -15
  1420. package/src/ui-kit/FormField/Fields/PaymentSystemField.tsx +18 -22
  1421. package/src/ui-kit/FormField/Fields/PhoneField.tsx +1 -3
  1422. package/src/ui-kit/FormField/Fields/ProductField.tsx +2 -4
  1423. package/src/ui-kit/FormField/Fields/RegionField.tsx +1 -4
  1424. package/src/ui-kit/FormField/Fields/RegionPremiumField.tsx +1 -3
  1425. package/src/ui-kit/FormField/Fields/RegionRetailField.tsx +1 -3
  1426. package/src/ui-kit/FormField/Fields/RetirementIncomeField.tsx +1 -3
  1427. package/src/ui-kit/FormField/Fields/ServiceDirectionField.tsx +1 -3
  1428. package/src/ui-kit/FormField/Fields/SexField.tsx +1 -3
  1429. package/src/ui-kit/FormField/Fields/ShareholderFlgField.tsx +1 -3
  1430. package/src/ui-kit/FormField/Fields/SnilsField.tsx +1 -8
  1431. package/src/ui-kit/FormField/Fields/SurnameField.tsx +1 -3
  1432. package/src/ui-kit/FormField/Fields/TotalIncomeField.tsx +1 -3
  1433. package/src/ui-kit/FormField/Fields/UltraPremiumField.tsx +1 -7
  1434. package/src/ui-kit/FormField/Fields/VedField.tsx +8 -10
  1435. package/src/ui-kit/FormField/Fields/WagesField.tsx +1 -3
  1436. package/src/ui-kit/FormField/Fields/consentToReceiveMaterialsField.tsx +1 -5
  1437. package/src/ui-kit/FormField/NameFieldDef.ts +1 -81
  1438. package/src/ui-kit/FormField/SelectField.tsx +1 -4
  1439. package/src/ui-kit/FormField/getField.tsx +39 -40
  1440. package/src/ui-kit/FormField/getObjectValidator.tsx +31 -6
  1441. package/src/ui-kit/FormField/isEsiaAuthorize.ts +1 -1
  1442. package/src/ui-kit/FormField/{isRenderField.tsx → shouldRenderField.tsx} +4 -4
  1443. package/src/ui-kit/FormField/updateOrganizationFields.ts +1 -1
  1444. package/src/ui-kit/RadioButtonGroup/RadioButtonGroup.tsx +2 -2
  1445. package/src/ui-kit/RadioButtonGroup/RadioButtonGroupControl.tsx +2 -6
  1446. package/src/ui-kit/ResponseTypeDialog/ResponseTypeDialog.tsx +25 -28
  1447. package/src/utils/getRequiredLabel.ts +1 -0
  1448. package/src/validation/objectValidator.ts +6 -4
  1449. package/bundle/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1450. package/bundle/hooks/useForm.d.ts +0 -23
  1451. package/bundle/ui-kit/FormField/dataSources.d.ts +0 -3
  1452. package/bundle/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1453. package/bundle/ui-kit/FormField/getValidation.d.ts +0 -3
  1454. package/bundle/ui-kit/FormField/isRenderField.d.ts +0 -6
  1455. package/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1456. package/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  1457. package/dist/hooks/useForm.d.ts +0 -23
  1458. package/dist/hooks/useForm.js +0 -62
  1459. package/dist/hooks/useForm.js.map +0 -1
  1460. package/dist/ui-kit/FormField/dataSources.d.ts +0 -3
  1461. package/dist/ui-kit/FormField/dataSources.js +0 -6
  1462. package/dist/ui-kit/FormField/dataSources.js.map +0 -1
  1463. package/dist/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1464. package/dist/ui-kit/FormField/getNamesFromInput.js +0 -5
  1465. package/dist/ui-kit/FormField/getNamesFromInput.js.map +0 -1
  1466. package/dist/ui-kit/FormField/getValidation.d.ts +0 -3
  1467. package/dist/ui-kit/FormField/getValidation.js +0 -6
  1468. package/dist/ui-kit/FormField/getValidation.js.map +0 -1
  1469. package/dist/ui-kit/FormField/isRenderField.d.ts +0 -6
  1470. package/dist/ui-kit/FormField/isRenderField.js.map +0 -1
  1471. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1472. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  1473. package/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  1474. package/lib/hooks/useForm.d.ts +0 -23
  1475. package/lib/hooks/useForm.js +0 -59
  1476. package/lib/hooks/useForm.js.map +0 -1
  1477. package/lib/ui-kit/FormField/dataSources.d.ts +0 -3
  1478. package/lib/ui-kit/FormField/dataSources.js +0 -4
  1479. package/lib/ui-kit/FormField/dataSources.js.map +0 -1
  1480. package/lib/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1481. package/lib/ui-kit/FormField/getNamesFromInput.js +0 -2
  1482. package/lib/ui-kit/FormField/getNamesFromInput.js.map +0 -1
  1483. package/lib/ui-kit/FormField/getValidation.d.ts +0 -3
  1484. package/lib/ui-kit/FormField/getValidation.js +0 -3
  1485. package/lib/ui-kit/FormField/getValidation.js.map +0 -1
  1486. package/lib/ui-kit/FormField/isRenderField.d.ts +0 -6
  1487. package/lib/ui-kit/FormField/isRenderField.js.map +0 -1
  1488. package/mobile/bundle/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1489. package/mobile/bundle/hooks/useForm.d.ts +0 -23
  1490. package/mobile/bundle/ui-kit/FormField/dataSources.d.ts +0 -3
  1491. package/mobile/bundle/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1492. package/mobile/bundle/ui-kit/FormField/getValidation.d.ts +0 -3
  1493. package/mobile/bundle/ui-kit/FormField/isRenderField.d.ts +0 -6
  1494. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1495. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  1496. package/mobile/dist/hooks/useForm.d.ts +0 -23
  1497. package/mobile/dist/hooks/useForm.js +0 -62
  1498. package/mobile/dist/hooks/useForm.js.map +0 -1
  1499. package/mobile/dist/ui-kit/FormField/dataSources.d.ts +0 -3
  1500. package/mobile/dist/ui-kit/FormField/dataSources.js +0 -6
  1501. package/mobile/dist/ui-kit/FormField/dataSources.js.map +0 -1
  1502. package/mobile/dist/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1503. package/mobile/dist/ui-kit/FormField/getNamesFromInput.js +0 -5
  1504. package/mobile/dist/ui-kit/FormField/getNamesFromInput.js.map +0 -1
  1505. package/mobile/dist/ui-kit/FormField/getValidation.d.ts +0 -3
  1506. package/mobile/dist/ui-kit/FormField/getValidation.js +0 -6
  1507. package/mobile/dist/ui-kit/FormField/getValidation.js.map +0 -1
  1508. package/mobile/dist/ui-kit/FormField/isRenderField.d.ts +0 -6
  1509. package/mobile/dist/ui-kit/FormField/isRenderField.js.map +0 -1
  1510. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.d.ts +0 -6
  1511. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js +0 -2
  1512. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardAction.js.map +0 -1
  1513. package/mobile/lib/hooks/useForm.d.ts +0 -23
  1514. package/mobile/lib/hooks/useForm.js +0 -59
  1515. package/mobile/lib/hooks/useForm.js.map +0 -1
  1516. package/mobile/lib/ui-kit/FormField/dataSources.d.ts +0 -3
  1517. package/mobile/lib/ui-kit/FormField/dataSources.js +0 -4
  1518. package/mobile/lib/ui-kit/FormField/dataSources.js.map +0 -1
  1519. package/mobile/lib/ui-kit/FormField/getNamesFromInput.d.ts +0 -2
  1520. package/mobile/lib/ui-kit/FormField/getNamesFromInput.js +0 -2
  1521. package/mobile/lib/ui-kit/FormField/getNamesFromInput.js.map +0 -1
  1522. package/mobile/lib/ui-kit/FormField/getValidation.d.ts +0 -3
  1523. package/mobile/lib/ui-kit/FormField/getValidation.js +0 -3
  1524. package/mobile/lib/ui-kit/FormField/getValidation.js.map +0 -1
  1525. package/mobile/lib/ui-kit/FormField/isRenderField.d.ts +0 -6
  1526. package/mobile/lib/ui-kit/FormField/isRenderField.js.map +0 -1
  1527. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCardAction.ts +0 -6
  1528. package/mobile/src/hooks/useForm.ts +0 -120
  1529. package/mobile/src/ui-kit/FormField/dataSources.ts +0 -3
  1530. package/mobile/src/ui-kit/FormField/getNamesFromInput.tsx +0 -4
  1531. package/mobile/src/ui-kit/FormField/getValidation.tsx +0 -6
  1532. package/src/components/CarouselTariffsCard/CarouselTariffsCardAction.ts +0 -6
  1533. package/src/hooks/useForm.ts +0 -120
  1534. package/src/ui-kit/FormField/dataSources.ts +0 -3
  1535. package/src/ui-kit/FormField/getNamesFromInput.tsx +0 -4
  1536. 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,18 +2765,17 @@
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
- function isRenderField({ input, field, }) {
2778
+ function shouldRenderField({ input, field, }) {
2754
2779
  const { condition } = input;
2755
2780
  const { value } = field(condition?.name || '');
2756
2781
  return !condition || condition?.values?.find((_) => _ === (value?.key ?? value));
@@ -2759,45 +2784,45 @@
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
- const resultInputsMap = {
2797
- ...InputsMap,
2821
+ const fieldsRegister = {
2822
+ ...InputsMap$1,
2798
2823
  ...externalInputs,
2799
2824
  };
2800
- return isRenderField({ input, field }) ? (jsx("div", { children: resultInputsMap[input?.name || '']?.({ field, input, params }) }, String(i))) : null;
2825
+ return (shouldRenderField({ input, field }) && (jsx("div", { children: fieldsRegister[String(input.name)]?.({ field, input, params }) }, i)));
2801
2826
  };
2802
2827
 
2803
2828
  const inputColumnStyles = (column) => column === 2 ? '@xl:grid-cols-2' : '';
@@ -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
 
@@ -4486,9 +4487,9 @@
4486
4487
  const { consentInputs, restInputs } = splitInputs(inputs || []);
4487
4488
  return consentInputs.length > 2 ? (jsxs("div", { children: [restInputs.map(getField(field, {}, { ...InputsApplicationLeadMap })), jsx(GroupedConsents, { inputs: consentInputs, field: field })] })) : ((inputs || [])?.map(getField(field, {}, { ...InputsApplicationLeadMap })));
4488
4489
  };
4489
- const splitInputs = (inputs) => ({
4490
- consentInputs: inputs?.filter((_) => Object.keys(CONSENTS).includes(_.name || '')) || [],
4491
- restInputs: inputs?.filter((_) => !Object.keys(CONSENTS).includes(_.name || '')) || [],
4490
+ const splitInputs = (inputs = []) => ({
4491
+ consentInputs: inputs.filter(({ name }) => Object.keys(CONSENTS).includes(String(name))),
4492
+ restInputs: inputs.filter(({ name }) => !Object.keys(CONSENTS).includes(String(name))),
4492
4493
  });
4493
4494
 
4494
4495
  const renderSubmitButton = (button, isSending) => (jsx(Button, { className: style('w-full @xl:w-auto'), type: "submit", isLoading: isSending, children: button?.text ? button.text : 'Отправить заявку' }));
@@ -5185,19 +5186,15 @@
5185
5186
  return saveUserData;
5186
5187
  };
5187
5188
 
5188
- const useApplicationLeadApi = ({ inputs, programId, nextStepLink, }) => {
5189
- const [responseStatus, setResponseStatus] = useState('');
5189
+ const useApplicationLeadApi = ({ programId, nextStepLink }) => {
5190
5190
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
5191
+ const [ok, setOK] = useState();
5191
5192
  const saveUserData = useSaveUserData();
5192
5193
  const openEsiaLoginDialog = useEsiaLoginDialog(nextStepLink);
5193
5194
  const consentBkiDialog = useConsentBkiDialog(openEsiaLoginDialog);
5194
5195
  const verifyPhoneDialog = useDialog(VerifyPhoneDialog);
5195
5196
  const draftDialog = useDraftDialog();
5196
5197
  const handleSubmit = useCallback(async (formData) => {
5197
- const feedbackValidator = objectValidator(getObjectValidator(inputs));
5198
- if (!isValidationSuccess(feedbackValidator(formData))) {
5199
- return;
5200
- }
5201
5198
  try {
5202
5199
  startSending();
5203
5200
  const profileId = await createUserProfile({
@@ -5231,7 +5228,7 @@
5231
5228
  }
5232
5229
  }
5233
5230
  catch {
5234
- setResponseStatus('Fail');
5231
+ setOK(false);
5235
5232
  }
5236
5233
  };
5237
5234
  const acceptedConsents = getAcceptedConsents(formData);
@@ -5244,14 +5241,10 @@
5244
5241
  }
5245
5242
  }
5246
5243
  catch {
5247
- setResponseStatus('Fail');
5244
+ setOK(false);
5248
5245
  }
5249
5246
  }, []);
5250
- return {
5251
- handleSubmit,
5252
- responseStatus,
5253
- isSending,
5254
- };
5247
+ return { isSending, ok, handleSubmit };
5255
5248
  };
5256
5249
  const getAcceptedConsents = (formData) => Object.keys(CONSENTS)
5257
5250
  .filter((_) => formData[_])
@@ -5413,19 +5406,22 @@
5413
5406
 
5414
5407
  const ApplicationLeadForm = JSX(({ className, title, programId = '', nextStepLink = '/credit-lead', button, ...rest }) => {
5415
5408
  const inputs = useMemo(() => (applicationFormData?.flatMap((_) => _?.inputs) || []), [applicationFormData]);
5409
+ const formValidator = useMemo(() => getFormValidator(inputs), [inputs]);
5416
5410
  const [initialFormState, { isLoading }] = useInitApplicationLead(inputs, nextStepLink);
5417
- const { handleSubmit, responseStatus, isSending } = useApplicationLeadApi({
5418
- inputs,
5411
+ const { isSending, ok, handleSubmit } = useApplicationLeadApi({
5419
5412
  programId,
5420
5413
  nextStepLink,
5421
5414
  });
5422
- const [, { field, onSubmit }] = useForm(initialFormState, { onSubmit: handleSubmit });
5415
+ const [, { field, onSubmit }] = useForm(initialFormState, {
5416
+ formValidator,
5417
+ onSubmit: handleSubmit,
5418
+ });
5423
5419
  const responseTypeDialog = useDialog(ResponseTypeDialog);
5424
5420
  useEffect(() => {
5425
- if (responseStatus) {
5426
- responseTypeDialog.open({ responseType: responseStatus });
5421
+ if (ok !== undefined) {
5422
+ responseTypeDialog.open({ ok });
5427
5423
  }
5428
- }, [responseStatus]);
5424
+ }, [ok]);
5429
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)] }) }));
5430
5426
  });
5431
5427
 
@@ -5768,6 +5764,8 @@
5768
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));
5769
5765
  };
5770
5766
 
5767
+ const identity = (_) => _;
5768
+
5771
5769
  function zip(firstCol, ...restCols) {
5772
5770
  return firstCol.map((firstEl, rowIndex) => [firstEl, ...restCols.map((col) => col[rowIndex])]);
5773
5771
  }
@@ -5813,12 +5811,12 @@
5813
5811
 
5814
5812
  const useFiltrationForm = (initialFormState, { block, page, normalize = identity }) => {
5815
5813
  const blocks = block?.blocks || [];
5816
- const [filtrationState, { field, reset, update }] = useForm(initialFormState);
5814
+ const [filtrationState, operators] = useForm(initialFormState);
5817
5815
  const blocksWithProps = useMemo(() => zip(blocks, blocks.map((b) => resolveBlockProps(b.content, page?.fallback))), [blocks, page?.fallback]);
5818
5816
  const blocksToRender = filtrationState === initialFormState
5819
5817
  ? blocks
5820
5818
  : filterBlocks(blocksWithProps, filtrationState)(normalize);
5821
- return [filtrationState, { blocksToRender, blocksWithProps }, { field, reset, update }];
5819
+ return [filtrationState, { blocksToRender, blocksWithProps }, operators];
5822
5820
  };
5823
5821
 
5824
5822
  const EMPTY_SCHEMA = {};
@@ -6306,7 +6304,7 @@
6306
6304
  isWithdrawn: Boolean(defaultParams?.isWithdrawn),
6307
6305
  isNewClient: Boolean(defaultParams?.isNewClient),
6308
6306
  currency: DEFAULT_CURRENCY,
6309
- }, { normalize });
6307
+ }, { normalizer: normalize });
6310
6308
  const currencyValue = field?.('currency')?.value ?? DEFAULT_CURRENCY;
6311
6309
  const isNewClient = field?.('isNewClient')?.value;
6312
6310
  const row = getRows(rows, currencyValue);
@@ -6732,6 +6730,8 @@
6732
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)] }) }) })));
6733
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;
6734
6732
 
6733
+ const carouselTariffsCardEventBus = new EventBus();
6734
+
6735
6735
  const renderCardInfo = (cell, i) => {
6736
6736
  const { title, description, buttons } = cell;
6737
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)));
@@ -6743,20 +6743,21 @@
6743
6743
  ? [cellsNode.slice(0, visibleCellsCount), cellsNode.slice(visibleCellsCount)]
6744
6744
  : [cellsNode, []];
6745
6745
  const [isVisible, setIsVisible] = useState(false);
6746
- useEffect(() => defaultEventBus.subscribe('fold', (event) => {
6747
- if (event && options?.parent !== undefined && event.parent === options?.parent) {
6746
+ useEffect(() => carouselTariffsCardEventBus.subscribe('fold', (event) => {
6747
+ if (event && options?.parent && event.parent === options?.parent) {
6748
6748
  setIsVisible(event.isUnfolded);
6749
6749
  }
6750
6750
  }), [options?.parent]);
6751
- 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
6752
- ? renderFoldButton$2(options?.parent, data, isVisible)
6753
- : 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 }))] }));
6754
6759
  });
6755
- 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: () => {
6756
- if (parent !== undefined) {
6757
- defaultEventBus.fire('fold', { type: 'fold', isUnfolded: !isUnfolded, parent });
6758
- }
6759
- }, 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" })] })));
6760
6761
 
6761
6762
  const PORTAL_NATURAL_URL = '/';
6762
6763
  const UPDATING_INTERVAL = 60000 * 4;
@@ -6799,6 +6800,33 @@
6799
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 })] }) }));
6800
6801
  });
6801
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
+
6802
6830
  var STATUS_TYPE;
6803
6831
  (function (STATUS_TYPE) {
6804
6832
  STATUS_TYPE["process"] = "IN_PROCESS";
@@ -6956,40 +6984,14 @@
6956
6984
  return statusesMap[status] || jsx(ReworkStatusContent$1, {});
6957
6985
  };
6958
6986
 
6959
- const calculateInputs = (getValue) => (inputs, step) => inputs
6960
- .filter((_) => _)
6961
- .map((_) => {
6962
- if ([
6963
- checkIsRetiree(step, getValue),
6964
- checkBusinessOwner(_, getValue),
6965
- checkConsentPfrFlg(_, getValue),
6966
- checkAddressFillFromESIA(_, getValue),
6967
- checkAddressFact(_, getValue),
6968
- checkCondition(_, getValue),
6969
- ].some(Boolean)) {
6970
- return { ..._, required: false };
6971
- }
6972
- return _;
6973
- });
6974
- const checkIsRetiree = (step, getValue) => step === 2 && getValue('employment')?.key === 'RETIREE';
6975
- const checkBusinessOwner = ({ name }, getValue) => name === 'partInBusiness' && getValue('positionOrganization')?.key !== 'BUSINESS_OWNER';
6976
- const checkAddressFillFromESIA = ({ name, filledByEsia }, getValue) => name?.startsWith('address') && getValue('esiaAccountTypeCd')?.key && filledByEsia;
6977
- const checkAddressFact = ({ name }, getValue) => name === 'addressFact' && getValue('addressMatch');
6978
- const checkCondition = ({ condition }, getValue) => condition?.name &&
6979
- condition?.values?.some((_) => {
6980
- const dataValue = getValue(condition?.name);
6981
- return _ !== (dataValue?.key ?? dataValue);
6982
- });
6983
- const checkConsentPfrFlg = ({ name }, getValue) => name === 'snils' && isSnilsRequired(getValue);
6984
- const isSnilsRequired = (getValue) => getValue('confirmationIncome')?.key !== 'PFR_CERTIFICATE';
6985
-
6986
- 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));
6987
6989
 
6988
6990
  const renderStep$1 = ({ sections, field, step, params }) => sections?.map(({ inputs: origInputs = [], columns, title }, i) => {
6989
- const inputs = calculateInputs(getValue$3(field))(origInputs, step);
6991
+ const inputs = calculateInputs(getValue$1(field))(origInputs, step);
6990
6992
  return (jsxs("div", { className: style(inputColumnStyles(columns), 'grid gap-x-m'), children: [renderTitle(title), renderInputs$1({ field, inputs, params })] }, `section-${i}`));
6991
6993
  });
6992
- const getValue$3 = (field) => (name) => field(name)?.value;
6994
+ const getValue$1 = (field) => (name) => field(name)?.value;
6993
6995
 
6994
6996
  const StepsNavigationButtons$1 = JSX(({ step, isSending, onPrevStep }) => {
6995
6997
  const isFirstStep = step === 0;
@@ -7255,7 +7257,7 @@
7255
7257
  }
7256
7258
  };
7257
7259
 
7258
- const useCreditCardFormAPI = ({ step, inputs, onNextStep, onFinish, }) => {
7260
+ const useCreditCardFormAPI = ({ step, onNextStep, onFinish, }) => {
7259
7261
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
7260
7262
  const isFinalStep = step === 5;
7261
7263
  const retailFormStore = useRetailFormStore();
@@ -7274,10 +7276,6 @@
7274
7276
  }
7275
7277
  }, [isFinalStep, initialState]);
7276
7278
  const handleSubmit = useCallback(async (formData) => {
7277
- const feedbackValidator = objectValidator(getObjectValidator(calculateInputs(getValue$2(formData))(inputs, step)));
7278
- if (!isValidationSuccess(feedbackValidator(formData))) {
7279
- return;
7280
- }
7281
7279
  startSending();
7282
7280
  retailFormStore.leadForm = formData;
7283
7281
  try {
@@ -7306,17 +7304,21 @@
7306
7304
  }, [isFinalStep, resetForm]);
7307
7305
  return [initialState, handleSubmit, isSending];
7308
7306
  };
7309
- const getValue$2 = (formData) => (name) => formData[name];
7310
7307
 
7311
7308
  const CreditCardFormStep = JSX(({ step, sections, isFormFinished, onPrevStep, onNextStep, onFinish }) => {
7312
- const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
7309
+ const inputs = useMemo(() => sections?.flatMap((_) => _?.inputs || []), [sections]);
7310
+ const formValidator = useCallback((formState) =>
7311
+ // TODO Слишком сложно
7312
+ getFormValidator(calculateInputs((_) => formState[_])(inputs, step))(formState), [inputs]);
7313
7313
  const [initialState, onSubmit, isSending] = useCreditCardFormAPI({
7314
7314
  step,
7315
- inputs,
7316
7315
  onNextStep,
7317
7316
  onFinish,
7318
7317
  });
7319
- const [, { field, onSubmit: handleSubmit }] = useForm(initialState, { onSubmit });
7318
+ const [, { field, onSubmit: handleSubmit }] = useForm(initialState, {
7319
+ formValidator,
7320
+ onSubmit,
7321
+ });
7320
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 })] }));
7321
7323
  });
7322
7324
 
@@ -7719,7 +7721,7 @@
7719
7721
  setStep((_) => Math.max(_ - 1, 0));
7720
7722
  scrollToTop();
7721
7723
  }, []);
7722
- const sections = useMemo(() => stepsSectionsMap$1[step], [step]);
7724
+ const sections = stepsSectionsMap$1[step];
7723
7725
  const [isFormFinished, { setTrue: handleFinish }] = useBool(false);
7724
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)) })] }) }));
7725
7727
  });
@@ -7859,10 +7861,10 @@
7859
7861
  const renderInputs = ({ field, inputs, params }) => inputs.map(getField(field, params, { ...InputsRetailMap }));
7860
7862
 
7861
7863
  const renderStep = ({ sections, field, step, params }) => sections?.map(({ inputs: origInputs = [], columns, title }, i) => {
7862
- const inputs = calculateInputs(getValue$1(field))(origInputs, step);
7864
+ const inputs = calculateInputs(getValue(field))(origInputs, step);
7863
7865
  return (jsxs("div", { className: style(inputColumnStyles(columns), 'grid gap-x-m'), children: [renderTitle(title), renderInputs({ field, inputs, params })] }, `section-${i}`));
7864
7866
  });
7865
- const getValue$1 = (field) => (name) => field(name)?.value;
7867
+ const getValue = (field) => (name) => field(name)?.value;
7866
7868
 
7867
7869
  const StepsNavigationButtons = JSX(({ step, onPrevStep, isSending }) => {
7868
7870
  const isFirstStep = step === 0;
@@ -8045,7 +8047,7 @@
8045
8047
  }
8046
8048
  };
8047
8049
 
8048
- const useCreditFormAPI = ({ step, inputs, onNextStep, onFinish, }) => {
8050
+ const useCreditFormAPI = ({ step, onNextStep, onFinish, }) => {
8049
8051
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
8050
8052
  const isFinalStep = step === 5;
8051
8053
  const retailFormStore = useRetailFormStore();
@@ -8066,10 +8068,6 @@
8066
8068
  }
8067
8069
  }, [isFinalStep, initialState]);
8068
8070
  const handleSubmit = useCallback(async (formData) => {
8069
- const feedbackValidator = objectValidator(getObjectValidator(calculateInputs(getValue(formData))(inputs, step)));
8070
- if (!isValidationSuccess(feedbackValidator(formData))) {
8071
- return;
8072
- }
8073
8071
  startSending();
8074
8072
  retailFormStore.leadForm = formData;
8075
8073
  try {
@@ -8098,19 +8096,23 @@
8098
8096
  }, [isFinalStep, resetForm]);
8099
8097
  return [initialState, handleSubmit, isSending];
8100
8098
  };
8101
- const getValue = (formData) => (name) => formData[name];
8102
8099
 
8103
8100
  const CreditFormStep = JSX(({ step, sections, isFormFinished, programsSource, onPrevStep, onNextStep, onFinish }) => {
8104
8101
  const { programId } = useRetailFormStore();
8105
8102
  const calcData = programsSource?.[programId ?? '']; // Need normalizator useForm, to be save defaultParams
8106
- const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
8103
+ const inputs = useMemo(() => sections?.flatMap((_) => _?.inputs ?? []), [sections]);
8104
+ const formValidator = useCallback((formState) =>
8105
+ // TODO Слишком сложно
8106
+ getFormValidator(calculateInputs((_) => formState[_])(inputs, step))(formState), [inputs]);
8107
8107
  const [initialState, onSubmit, isSending] = useCreditFormAPI({
8108
8108
  step,
8109
- inputs,
8110
8109
  onNextStep,
8111
8110
  onFinish,
8112
8111
  });
8113
- const [, { field, onSubmit: handleSubmit }] = useForm(initialState, { onSubmit });
8112
+ const [, { field, onSubmit: handleSubmit }] = useForm(initialState, {
8113
+ formValidator,
8114
+ onSubmit,
8115
+ });
8114
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 })] }));
8115
8117
  });
8116
8118
 
@@ -8143,7 +8145,7 @@
8143
8145
  setStep((_) => Math.max(_ - 1, 0));
8144
8146
  scrollToTop();
8145
8147
  }, []);
8146
- const sections = useMemo(() => stepsSectionsMap[step], [step]);
8148
+ const sections = stepsSectionsMap[step];
8147
8149
  const isStartStep = step === 0;
8148
8150
  const [isFormFinished, { setTrue: handleFinish }] = useBool(false);
8149
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)) })] }) }));
@@ -9004,7 +9006,7 @@
9004
9006
  return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: jsx(CardRow, { className: "flex-wrap", children: additionalInfo?.map(renderInfo) }) }));
9005
9007
  },
9006
9008
  //** TODO: Remove styles with refactoring DefaultFoldButton*/
9007
- renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$3({ isUnfolded, onToggle }) })] }, String(i)));
9009
+ renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$2({ isUnfolded, onToggle }) })] }, String(i)));
9008
9010
  };
9009
9011
  const getAtmPoint = ({ address = '', terminalType, atmCode = '' }) => {
9010
9012
  const header = `${capitalizedFirstLetter(terminalType)} №${atmCode}`;
@@ -9070,7 +9072,7 @@
9070
9072
  workScheduleDescription,
9071
9073
  }) })),
9072
9074
  //** TODO: remove styles with refactoring DefaultFoldButton*/
9073
- renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$3({ isUnfolded, onToggle }) })] }, String(i)));
9075
+ renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$2({ isUnfolded, onToggle }) })] }, String(i)));
9074
9076
  };
9075
9077
  const renderCardContent = ({ workScheduleDescription }) => {
9076
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 }) })] }));
@@ -10054,7 +10056,7 @@
10054
10056
  slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
10055
10057
  });
10056
10058
 
10057
- const packageVersion = "0.14.736";
10059
+ const packageVersion = "0.14.738";
10058
10060
 
10059
10061
  exports.Blocks = Blocks;
10060
10062
  exports.ContentPage = ContentPage;