@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
@@ -1074,7 +1074,7 @@
1074
1074
  };
1075
1075
 
1076
1076
  const handleAspects = ({ aspectsAttributes, aspects, ev }) => {
1077
- for (const { aspectName, params } of aspectsAttributes) {
1077
+ for (const { aspectName, params } of aspectsAttributes ?? []) {
1078
1078
  aspects[aspectName ?? '']?.(ev, params);
1079
1079
  }
1080
1080
  };
@@ -1141,64 +1141,99 @@
1141
1141
  useAspects._impl = impl;
1142
1142
  };
1143
1143
 
1144
- const identity = (_) => _;
1144
+ function useBool(defaultValue = false) {
1145
+ const [value, setValue] = useState(defaultValue);
1146
+ const setTrue = useCallback(() => setValue(true), []);
1147
+ const setFalse = useCallback(() => setValue(false), []);
1148
+ const toggle = useCallback(() => setValue(_ => !_), []);
1149
+ return [value, { setValue, setTrue, setFalse, toggle }];
1150
+ }
1145
1151
 
1146
- // eslint-disable-next-line max-lines-per-function
1147
- const useForm = (initialState, { resetOnSubmit, onSubmit, normalize, } = {}) => {
1152
+ const objectValidator = (validatorsMap) => (o) => (o &&
1153
+ Object.entries(validatorsMap ?? {}).flatMap(([key, validator]) => validator ? validator(o[key]) : [])) ||
1154
+ [];
1155
+
1156
+ const isValidationSuccess = (info) => !info?.length;
1157
+ const validator = (predicate) => (message) => (_) => predicate(_) ? [] : [message];
1158
+
1159
+ const EMPTY_VALIDATORS_MAP = {};
1160
+ const NO_ERRORS = [];
1161
+ function useFormValidator(formState, formValidator) {
1162
+ const validatorsMap = useMemo(() => formValidator?.(formState) ?? EMPTY_VALIDATORS_MAP, [formValidator, formState]);
1163
+ const errors = useMemo(() => objectValidator(validatorsMap)(formState) ?? NO_ERRORS, [validatorsMap, formState]);
1164
+ const isValid = isValidationSuccess(errors);
1165
+ return [validatorsMap, { isValid, errors }];
1166
+ }
1167
+
1168
+ const shallowCompare = (a, b) => a && b && (a === b || Object.keys({ ...a, ...b }).every((key) => a[key] === b[key]));
1169
+
1170
+ function useNormalizedFormState(initialState, normalizer, onChange) {
1148
1171
  const [formState, setFormStateUnsafe] = useState(initialState);
1149
- const setFormState = useCallback(normalize
1150
- ? (_) => setFormStateUnsafe(_ instanceof Function
1151
- ? (prev) => {
1152
- const _normalize = normalize(_(prev));
1153
- return shellowCompare(prev, _normalize) ? prev : _normalize;
1154
- }
1155
- : normalize(_))
1156
- : setFormStateUnsafe, [normalize]);
1172
+ const setFormState = useCallback((_) => setFormStateUnsafe((prevState) => {
1173
+ const rawState = _ instanceof Function ? _(prevState) : _;
1174
+ const normalizedState = normalizer ? normalizer(rawState) : rawState;
1175
+ const hasChangedWithNormalization = !shallowCompare(rawState, normalizedState);
1176
+ const nextState = hasChangedWithNormalization ? normalizedState : rawState;
1177
+ const hasChanged = !shallowCompare(prevState, nextState);
1178
+ if (hasChanged) {
1179
+ onChange?.(nextState);
1180
+ }
1181
+ return nextState;
1182
+ }), [normalizer, onChange]);
1157
1183
  useEffect(() => {
1158
- if (normalize) {
1159
- setFormStateUnsafe(normalize);
1160
- }
1161
- }, [normalize]);
1162
- const [isDirtyForm, setDirtyForm] = useState(false);
1163
- const [dirtyFieldsMap, setDirtyFieldsMap] = useState({});
1164
- const field = useCallback((fieldName, options) => {
1165
- const { parse = identity, format = identity } = options || {};
1184
+ if (normalizer) {
1185
+ setFormStateUnsafe(normalizer);
1186
+ }
1187
+ }, [normalizer]);
1188
+ return [formState, setFormState];
1189
+ }
1190
+
1191
+ function useForm(initialState, { resetOnSubmit, formValidator, normalizer, onChange, onSubmit } = {}) {
1192
+ const [formState, setFormState] = useNormalizedFormState(initialState, normalizer, onChange);
1193
+ const [isDirtyForm, { setTrue: markAsDirty, setFalse: markAsClean }] = useBool(false);
1194
+ const dirtyFieldsMap = useRef({});
1195
+ const [fieldValidatorsMap, { isValid, errors }] = useFormValidator(formState, formValidator);
1196
+ const field = useCallback((fieldName, options = {}) => {
1197
+ const { parse, format, onChange: onFieldChange } = options;
1198
+ const value = formState[fieldName];
1199
+ const isDirty = isDirtyForm || dirtyFieldsMap.current?.[String(fieldName)];
1200
+ const fieldValidator = options?.validator ?? fieldValidatorsMap[fieldName];
1201
+ const fieldErrors = isDirty && fieldValidator ? fieldValidator(value) : [];
1166
1202
  return {
1167
- value: format(formState[fieldName]),
1168
- isDirty: isDirtyForm || dirtyFieldsMap[fieldName],
1169
- onChange: (value) => {
1170
- setFormState((prev) => ({ ...prev, [fieldName]: parse(value) }));
1171
- setDirtyFieldsMap((prev) => ({ ...prev, [fieldName]: true }));
1203
+ value: format ? format(value) : value,
1204
+ isDirty,
1205
+ errors: fieldValidator && fieldErrors,
1206
+ error: fieldErrors[0],
1207
+ onChange: (_) => {
1208
+ dirtyFieldsMap.current ||= {};
1209
+ dirtyFieldsMap.current[String(fieldName)] = true;
1210
+ const fieldVal = parse ? parse(_) : _;
1211
+ onFieldChange?.(fieldVal);
1212
+ setFormState((prev) => ({ ...prev, [fieldName]: fieldVal }));
1172
1213
  },
1173
1214
  };
1174
- }, [setFormState, isDirtyForm, dirtyFieldsMap]);
1215
+ }, [formState, isDirtyForm, fieldValidatorsMap, setFormState]);
1175
1216
  const update = useCallback((_) => {
1217
+ dirtyFieldsMap.current = _;
1176
1218
  setFormState(_);
1177
- setDirtyFieldsMap(_);
1178
- }, []);
1219
+ }, [setFormState]);
1179
1220
  const reset = useCallback(() => {
1221
+ dirtyFieldsMap.current = {};
1222
+ markAsClean();
1180
1223
  setFormState(initialState);
1181
- setDirtyForm(false);
1182
- setDirtyFieldsMap({});
1183
- }, [initialState]);
1224
+ }, [initialState, setFormState]);
1184
1225
  const handleSubmit = useCallback((ev) => {
1185
1226
  ev.preventDefault();
1186
- resetOnSubmit ? reset() : setDirtyForm(true);
1187
- onSubmit && onSubmit(formState, ev);
1188
- return formState;
1189
- }, [onSubmit, formState]);
1190
- return [
1191
- formState,
1192
- {
1193
- isDirty: isDirtyForm || Object.values(dirtyFieldsMap).some(Boolean),
1194
- field,
1195
- update,
1196
- reset,
1197
- onSubmit: handleSubmit,
1198
- },
1199
- ];
1200
- };
1201
- const shellowCompare = (a, b) => a && b && Object.keys({ ...a, ...b }).every((key) => a[key] === b[key]);
1227
+ if (isValid) {
1228
+ resetOnSubmit && reset();
1229
+ onSubmit?.(formState, ev);
1230
+ }
1231
+ else {
1232
+ markAsDirty();
1233
+ }
1234
+ }, [resetOnSubmit, formState, isValid, reset, onSubmit]);
1235
+ return [formState, { errors, field, update, reset, onSubmit: handleSubmit }];
1236
+ }
1202
1237
 
1203
1238
  const ApplicationFormLayout = JSX((props) => {
1204
1239
  const { className, title, children, ...rest } = props;
@@ -1219,14 +1254,6 @@
1219
1254
 
1220
1255
  const getConsentDataProcessing = (inputs) => inputs?.find((_) => _?.name === 'consentDataProcessing');
1221
1256
 
1222
- function useBool(defaultValue = false) {
1223
- const [value, setValue] = useState(defaultValue);
1224
- const setTrue = useCallback(() => setValue(true), []);
1225
- const setFalse = useCallback(() => setValue(false), []);
1226
- const toggle = useCallback(() => setValue(_ => !_), []);
1227
- return [value, { setValue, setTrue, setFalse, toggle }];
1228
- }
1229
-
1230
1257
  function useEventListener(target, type, listener, options) {
1231
1258
  useEffect(() => {
1232
1259
  if (!target || !listener) {
@@ -1250,6 +1277,7 @@
1250
1277
  return targetRef;
1251
1278
  }
1252
1279
 
1280
+ // TODO Базовая функицональность всех Control - надо вынести и привязать к required флагу
1253
1281
  const getRequiredLabel = ({ label, errors }) => label && errors ? `${label}*` : label;
1254
1282
 
1255
1283
  const noop = () => {
@@ -1550,182 +1578,6 @@
1550
1578
 
1551
1579
  const SelectControl = JSX(({ className = '', label, error, errors, ...rest }) => (jsxs("div", { className: className, children: [jsx(Select, { ...rest, valid: !error, label: getRequiredLabel({ label, errors }) }), renderErrorText(error)] })));
1552
1580
 
1553
- const getNamesFromInput = (inputs) => Object.values(inputs.filter((_) => _))?.map((_) => _.name);
1554
-
1555
- const isValidationSuccess = (info) => !info?.length;
1556
- const validator = (predicate) => (message) => (_) => predicate(_) ? [] : [message];
1557
-
1558
- const required = validator((_) => _ !== null && _ !== undefined && _ !== '');
1559
-
1560
- const ERROR_MESSAGE = 'Некорректно заполненное поле';
1561
- const ADDRESS_ERROR_MESSAGE = 'Укажите регион, город/населенный пункт, улицу, дом';
1562
- const MIN_AGE = 23;
1563
- const MAX_AGE = 75;
1564
- const AGE_ERROR_MESSAGE = 'Допустимый возраст заёмщика - от 23 до 75 лет';
1565
- const defaultValidator = (errorMsg) => required(errorMsg ?? ERROR_MESSAGE);
1566
- const defaultSelectValidator = (errorMsg) => validator((_) => _?.key && _?.key !== '')(errorMsg ?? ERROR_MESSAGE);
1567
- const jobNumberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 0 && _.length <= 2)(errorMsg ?? ERROR_MESSAGE);
1568
- const nameValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 1 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
1569
- const lengthStringValidator = (inputLength, errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 1 && _.length <= inputLength)(errorMsg ?? ERROR_MESSAGE);
1570
- const serieValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 4)(errorMsg);
1571
- const numberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 6)(errorMsg);
1572
- const innValidator = (errorMsg) => validator((_) => typeof _ === 'string' && (_.length === 10 || _.length === 12))(errorMsg);
1573
- const phoneValidate = (email) => /^(\+7)?[\s-]?\(?[0-9]{3}\)?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$/.test(email);
1574
- const phoneValidator = (errorMsg) => validator(phoneValidate)(errorMsg);
1575
- const agreementValidator = validator((_) => typeof _ === 'boolean' && _)('Согласие обязательно');
1576
- const snilsValidate = (snils) => {
1577
- const snl = String(snils).replace(/[^0-9]+/g, '');
1578
- if (snl.length === 11) {
1579
- let checksum = 0;
1580
- for (let i = 0; i < 9; i++) {
1581
- checksum += parseInt(snl.charAt(i)) * (9 - i);
1582
- }
1583
- if (checksum > 101) {
1584
- checksum = checksum % 101;
1585
- }
1586
- if (checksum === 100 || checksum === 101) {
1587
- checksum = 0;
1588
- }
1589
- return checksum === parseInt(snl.substr(9));
1590
- }
1591
- return false;
1592
- };
1593
- const snilsValidator = (errorMsg) => validator(snilsValidate)(errorMsg);
1594
- const emailValidate = (email) => /^[^\s@]+@[^\s@]+\.[a-zA-Z]{2,4}$/.test(email);
1595
- const emailValidator = (errorMsg) => validator((_) => emailValidate(_))(errorMsg);
1596
- const addressDaDataValidate = (address) => Boolean(address.region && address.city && address.house);
1597
- const addressDaDataValidator = () => validator(addressDaDataValidate)(ADDRESS_ERROR_MESSAGE);
1598
- const addressOrganizationValidator = () => validator((address) => Boolean(address.fiasCode && address.city && address.house))(ADDRESS_ERROR_MESSAGE);
1599
- const codeWordValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 3 && _.length <= 21 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
1600
- const cyrillicPattern = /^[\u0400-\u04FF\d\s]+$/u;
1601
- const isCyrillic = (_ = '') => cyrillicPattern.test(_);
1602
- const limitedBirthdayValidate = (date) => {
1603
- const today = new Date();
1604
- const minDate = new Date(today.getFullYear() - MIN_AGE, today.getMonth(), today.getDate());
1605
- const maxDate = new Date(today.getFullYear() - MAX_AGE, today.getMonth(), today.getDate());
1606
- if (!date || date > minDate || date < maxDate) {
1607
- return false;
1608
- }
1609
- return true;
1610
- };
1611
- const limitedBirthdayValidator = () => validator(limitedBirthdayValidate)(AGE_ERROR_MESSAGE);
1612
-
1613
- const validatorConsentsObj = {
1614
- processPersonalDataFlg: agreementValidator,
1615
- consentProviderFlg: agreementValidator,
1616
- consentInformFlg: agreementValidator,
1617
- consentPfrFlg: agreementValidator,
1618
- consentOthersFlg: agreementValidator,
1619
- };
1620
- const validatorCreditCardObj = {
1621
- addressCourier: addressDaDataValidator(),
1622
- paymentSystem: defaultValidator('Укажите тип платежной системы'),
1623
- currency: defaultValidator('Укажите валюту'),
1624
- cardCategory: defaultValidator('Укажите категорию карты'),
1625
- codeWord: codeWordValidator('Необходимо ввести кодовое слово'),
1626
- confirmationIncome: defaultSelectValidator(),
1627
- methodObtain: defaultValidator(),
1628
- deliveryDate: defaultValidator('Укажите дату доставки'),
1629
- };
1630
- const validatorRetailObj = {
1631
- organization: defaultSelectValidator('Выберите тип организации'),
1632
- organizationAddress: addressOrganizationValidator(),
1633
- organizationPhone: phoneValidator('Укажите номер телефона'),
1634
- organizationName: defaultValidator('Укажите наименование организации'),
1635
- legalForm: defaultValidator('Укажите ОПФ'),
1636
- generalSeniority: jobNumberValidator('Укажите количество лет стажа'),
1637
- lastJobExperience: jobNumberValidator('Укажите стаж на последнем месте работы'),
1638
- experience5Years: jobNumberValidator('Укажите общий стаж за последние 5 лет'),
1639
- jobsNumber: jobNumberValidator('Укажите количество мест работы за последние 5 лет'),
1640
- beginDate: defaultValidator('Укажите дату заключения трудового договора'),
1641
- addressFact: addressDaDataValidator(),
1642
- addressRegistration: addressDaDataValidator(),
1643
- addressRetail: defaultSelectValidator('Выберите адрес банка'),
1644
- addressMatch: defaultValidator(),
1645
- sex: defaultValidator('Укажите свой пол'),
1646
- limitedBirthday: limitedBirthdayValidator(),
1647
- birthPlace: defaultValidator('Укажите место рождения'),
1648
- education: defaultSelectValidator('Выберите ваше образование'),
1649
- housing: defaultSelectValidator('Выберите тип жилья'),
1650
- amountWorkers: defaultSelectValidator('Выберите информацию о количестве сотрудников'),
1651
- employment: defaultSelectValidator('Выберите информацию о трудоустройстве'),
1652
- employerActivities: defaultSelectValidator('Выберите вид деятельности организации'),
1653
- employerOrganization: defaultSelectValidator('Выберите вид организации'),
1654
- positionOrganization: defaultSelectValidator('Выберите вашу должность'),
1655
- familyStatus: defaultSelectValidator('Выберите семейное положение'),
1656
- familyMembers: lengthStringValidator(2, 'Укажите количество членов семьи'),
1657
- children: lengthStringValidator(2, 'Укажите количество детей'),
1658
- dependents: lengthStringValidator(2, 'Укажите количество иждивенцев'),
1659
- totalIncome: lengthStringValidator(19, 'Укажите среднемесячный доход от основной зарплаты'),
1660
- expenses: lengthStringValidator(10, 'Укажите сумму обязательных выплат'),
1661
- snils: snilsValidator('Некорректный номер СНИЛС'),
1662
- conscription: defaultValidator(),
1663
- armyIdFlg: agreementValidator,
1664
- dulSerie: serieValidator('Укажите серию паспорта'),
1665
- dulNumber: numberValidator('Укажите номер паспорта'),
1666
- dulIssueDateField: defaultValidator('Укажите дату выдачи паспорта'),
1667
- dulSubdivisionCode: numberValidator('Укажите код подразделения'),
1668
- dulIssuedBy: defaultValidator('Укажите организацию, выдавшую паспорт'),
1669
- participantDateRegistration: defaultValidator('Укажите дату регистрации'),
1670
- retirementIncome: defaultValidator(),
1671
- otherIncome: defaultValidator(),
1672
- wages: defaultValidator(),
1673
- mandatoryPayments: defaultValidator(),
1674
- disablePeopleFlg: defaultValidator(),
1675
- bankruptcyFlg: defaultValidator(),
1676
- shareholderFlg: defaultValidator(),
1677
- legalEntityName: defaultValidator(),
1678
- bankEmployeeCode: defaultValidator(),
1679
- partInBusiness: defaultValidator(),
1680
- regionRetail: defaultSelectValidator('Выберите регион'),
1681
- };
1682
- const validatorObj = {
1683
- fullName: defaultValidator(),
1684
- addressBranch: defaultSelectValidator(),
1685
- desiredMeetingDate: defaultValidator(),
1686
- product: defaultValidator(),
1687
- localities: defaultValidator(),
1688
- partnerComments: defaultValidator(),
1689
- collectionCount: defaultValidator(),
1690
- acquiringType: defaultSelectValidator(),
1691
- serviceType: defaultSelectValidator(),
1692
- annualRevenue: defaultValidator(),
1693
- feedbackMethod: defaultSelectValidator(),
1694
- serviceDirection: defaultSelectValidator(),
1695
- secondaryPhone: phoneValidator('Укажите номер телефона'),
1696
- region: defaultSelectValidator(),
1697
- surname: nameValidator('Укажите свою фамилию'),
1698
- name: nameValidator('Укажите своё имя'),
1699
- middleName: nameValidator('Укажите своё отчество'),
1700
- birthday: defaultValidator('Укажите дату рождения'),
1701
- phone: phoneValidator('Укажите номер телефона'),
1702
- email: emailValidator('Укажите электронную почту'),
1703
- inn: innValidator('Укажите ИНН'),
1704
- comment: defaultValidator(),
1705
- typeForm: defaultValidator(),
1706
- consentToReceiveMaterials: agreementValidator,
1707
- consentDataProcessing: agreementValidator,
1708
- ...validatorConsentsObj,
1709
- ...validatorRetailObj,
1710
- ...validatorCreditCardObj,
1711
- };
1712
- const getObjectValidator = (inputs) => {
1713
- const requiredInputs = getNamesFromInput(inputs.filter((_) => Boolean(_?.required)));
1714
- return Object.fromEntries(requiredInputs.map((_) => [_, validatorObj?.[_ || '']]).filter(([, validator]) => validator));
1715
- };
1716
-
1717
- const withValidator = (props, validator) => {
1718
- const { value, isDirty } = props;
1719
- const errors = isDirty ? validator(value) : [];
1720
- return {
1721
- ...props,
1722
- errors,
1723
- error: errors[0],
1724
- };
1725
- };
1726
-
1727
- const getValidation = (field, validator, required = false) => required && validator ? withValidator(field, validator) : field;
1728
-
1729
1581
  const ACQUIRING_TYPES = [
1730
1582
  {
1731
1583
  text: 'Торговый эквайринг',
@@ -1744,7 +1596,7 @@
1744
1596
  key: 'all',
1745
1597
  },
1746
1598
  ];
1747
- const AcquiringField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0412\u0438\u0434 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433\u0430", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433", options: ACQUIRING_TYPES, ...getValidation(field('acquiringType'), validatorObj.acquiringType, input?.required) })));
1599
+ const AcquiringField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0412\u0438\u0434 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433\u0430", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433", options: ACQUIRING_TYPES, ...field(input?.name ?? '') })));
1748
1600
  const isAcquiringTrade = (key = '') => Boolean(key === 'trade' || key === 'all');
1749
1601
 
1750
1602
  const isFilled = (_) => _ !== null && _ !== undefined;
@@ -1849,7 +1701,7 @@
1849
1701
  return (jsx(SelectControl, { label: "\u041E\u0442\u0434\u0435\u043B\u0435\u043D\u0438\u0435", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043E\u0442\u0434\u0435\u043B\u0435\u043D\u0438\u0435", options: (addressBranch || []).map(({ address = '' }) => ({
1850
1702
  key: address,
1851
1703
  text: address,
1852
- })), ...getValidation(field('addressBranch'), validatorObj.addressBranch, input?.required), isSearch: true }));
1704
+ })), ...field(input?.name ?? ''), isSearch: true }));
1853
1705
  });
1854
1706
 
1855
1707
  const useNormalizedInput = (props, { normalize, format }) => {
@@ -1913,11 +1765,11 @@
1913
1765
  const MIN_CREDIT_AMOUNT = 1000;
1914
1766
  const MAX_CREDIT_AMOUNT = 1000000000;
1915
1767
  const ITEMS_CREDIT_AMOUNT = ['От 1 000 ₽', 'До 1 000 000 000 ₽'];
1916
- const AmountField = JSX(({ field }) => (jsx(InputRange, { title: "\u0421\u0443\u043C\u043C\u0430, \u20BD", items: ITEMS_CREDIT_AMOUNT, min: MIN_CREDIT_AMOUNT, max: MAX_CREDIT_AMOUNT, ...field('amount') })));
1768
+ const AmountField = JSX(({ field, input }) => (jsx(InputRange, { title: "\u0421\u0443\u043C\u043C\u0430, \u20BD", items: ITEMS_CREDIT_AMOUNT, min: MIN_CREDIT_AMOUNT, max: MAX_CREDIT_AMOUNT, ...field(input?.name ?? '') })));
1917
1769
 
1918
- const AnnualRevenueField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0413\u043E\u0434\u043E\u0432\u0430\u044F \u0432\u044B\u0440\u0443\u0447\u043A\u0430, \u20BD", ...getValidation(field('annualRevenue'), validatorObj.annualRevenue, input?.required) })));
1770
+ const AnnualRevenueField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0413\u043E\u0434\u043E\u0432\u0430\u044F \u0432\u044B\u0440\u0443\u0447\u043A\u0430, \u20BD", ...field(input?.name ?? '') })));
1919
1771
 
1920
- const BankEmpoleeField = JSX(({ field }) => (jsx(InputControl, { label: "\u0424\u0418\u041E \u0438\u043B\u0438 \u0434\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u0432\u0448\u0435\u0433\u043E \u0412\u0430\u0441 \u0441\u043E\u0442\u0440\u0443\u0434\u043D\u0438\u043A\u0430 \u0411\u0430\u043D\u043A\u0430", ...field('bankEmpolee') })));
1772
+ const BankEmpoleeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0418\u041E \u0438\u043B\u0438 \u0434\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u0432\u0448\u0435\u0433\u043E \u0412\u0430\u0441 \u0441\u043E\u0442\u0440\u0443\u0434\u043D\u0438\u043A\u0430 \u0411\u0430\u043D\u043A\u0430", ...field(input?.name ?? '') })));
1921
1773
 
1922
1774
  const useElementSpace = (ref, heightEl) => {
1923
1775
  const [spaceAbove, setSpaceAbove] = useState(false);
@@ -2210,11 +2062,11 @@
2210
2062
 
2211
2063
  const DatePickerControl = JSX(({ className, label, error, errors, ...rest }) => (jsxs("div", { className: style('shrink-0 w-full', className), children: [jsx(DatePicker, { label: getRequiredLabel({ label, errors }), valid: Boolean(!error), ...rest }), renderErrorText(error)] })));
2212
2064
 
2213
- const BirthdayField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...getValidation(field('birthday'), validatorObj.birthday, input?.required) })));
2065
+ const BirthdayField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...field(input?.name ?? '') })));
2214
2066
 
2215
- const CollectionCountField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u0438\u043D\u043A\u0430\u0441\u0441\u0430\u0446\u0438\u0438", isInteger: true, ...getValidation(field('collectionCount'), validatorObj.collectionCount, input?.required) })));
2067
+ const CollectionCountField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u0438\u043D\u043A\u0430\u0441\u0441\u0430\u0446\u0438\u0438", isInteger: true, ...field(input?.name ?? '') })));
2216
2068
 
2217
- const CommentField = JSX(({ field, input }) => (jsx(InputControl, { className: "col-span-2", ...getValidation(field('comment'), validatorObj.comment, input?.required), placeholder: "\u0412\u0430\u0448\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435", isTextarea: true })));
2069
+ const CommentField = JSX(({ field, input }) => (jsx(InputControl, { className: "col-span-2", ...field(input?.name ?? ''), placeholder: "\u0412\u0430\u0448\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435", isTextarea: true })));
2218
2070
 
2219
2071
  const SVG = JSX(({ className, viewBox, fill = 'none', width, height, paths, ...commonOptions }) => {
2220
2072
  return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: className, viewBox: viewBox, fill: fill, width: width, height: height, children: paths.map(({ d, fill: pathFill, ...options }, i) => {
@@ -2249,14 +2101,12 @@
2249
2101
  const role = (isRadio = false) => (isRadio ? 'radio' : 'checkbox');
2250
2102
  const checkboxStyle = (value = false) => style('rounded border', { 'bg-primary-main': value });
2251
2103
 
2252
- const FIELD_NAME$c = 'consentToReceiveMaterials';
2253
- const ConsentToReceiveMaterialsField = JSX(({ field, input }) => (jsx(Checkbox, { text: "\u0421\u043E\u0433\u043B\u0430\u0441\u0435\u043D \u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445 \u0438 \u0430\u043D\u0430\u043B\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u043E\u0432 \u043F\u043E \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u0435", ...getValidation(field(FIELD_NAME$c), validatorObj[FIELD_NAME$c], input?.required) })));
2104
+ const ConsentToReceiveMaterialsField = JSX(({ field, input }) => (jsx(Checkbox, { text: "\u0421\u043E\u0433\u043B\u0430\u0441\u0435\u043D \u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445 \u0438 \u0430\u043D\u0430\u043B\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u043E\u0432 \u043F\u043E \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u0435", ...field(input?.name ?? '') })));
2254
2105
 
2255
- const DesiredMeetingDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u0434\u0430\u0442\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438", ...getValidation(field('desiredMeetingDate'), validatorObj.desiredMeetingDate, input?.required) })));
2106
+ const DesiredMeetingDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u0434\u0430\u0442\u0430 \u0432\u0441\u0442\u0440\u0435\u0447\u0438", ...field(input?.name ?? '') })));
2256
2107
 
2257
2108
  const EmailField = JSX(({ field, input }) => {
2258
- const { required, ...rest } = input;
2259
- return (jsx(InputControl, { label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...getValidation(field('email'), validatorObj.email, required), ...rest }));
2109
+ return jsx(InputControl, { label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...field(input?.name ?? ''), ...input });
2260
2110
  });
2261
2111
 
2262
2112
  const SERVICE_TYPES = [{ key: 'ULTRASERVICE', text: 'Ультра' }];
@@ -2269,9 +2119,9 @@
2269
2119
  { key: 'email', text: 'Электронное сообщение' },
2270
2120
  ];
2271
2121
 
2272
- const FeedbackMethodField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0421\u043F\u043E\u0441\u043E\u0431 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043E\u0442\u0432\u0435\u0442\u0430", options: FEEDBACK_METHOD, ...getValidation(field('feedbackMethod'), validatorObj.feedbackMethod, input?.required) })));
2122
+ const FeedbackMethodField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0421\u043F\u043E\u0441\u043E\u0431 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u043E\u0442\u0432\u0435\u0442\u0430", options: FEEDBACK_METHOD, ...field(input?.name ?? '') })));
2273
2123
 
2274
- const FullNameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0418\u041E", ...getValidation(field('fullName'), validatorObj.fullName, input?.required), ...input })));
2124
+ const FullNameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0418\u041E", ...field(input?.name ?? ''), ...input })));
2275
2125
 
2276
2126
  function copy(source, target) {
2277
2127
  for (const [k, v] of source.entries()) {
@@ -2549,7 +2399,7 @@
2549
2399
  qcHouse: '',
2550
2400
  });
2551
2401
  }, []);
2552
- return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, fieldName), label: "\u0410\u0434\u0440\u0435\u0441", ...getValidation(field(fieldName), validatorObj[fieldName], input?.required), value: fieldValue?.fullAddress, onChange: onChange, ...input, onDaDataChange: onDaDataChange }));
2402
+ return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, fieldName), label: "\u0410\u0434\u0440\u0435\u0441", ...field(fieldName), value: fieldValue?.fullAddress, onChange: onChange, ...input, onDaDataChange: onDaDataChange }));
2553
2403
  });
2554
2404
  const getAddressFromDaDataItem = (item) => ({
2555
2405
  apartment: item?.data?.flat,
@@ -2595,12 +2445,12 @@
2595
2445
  field?.('organizationName')?.onChange?.(item.data?.name?.short_with_opf);
2596
2446
  updateOrganizationFields(store, field, item);
2597
2447
  }, []);
2598
- return (jsx(InputControl, { label: "\u0418\u041D\u041D", isInteger: true, maxLength: 12, ...input, ...getValidation(field('inn'), validatorObj.inn, input?.required), onDaDataChange: onDaDataChange }));
2448
+ return (jsx(InputControl, { label: "\u0418\u041D\u041D", isInteger: true, maxLength: 12, ...input, ...field(input?.name ?? ''), onDaDataChange: onDaDataChange }));
2599
2449
  });
2600
2450
 
2601
2451
  const CheckboxWithError = JSX(({ className, text, value, key, disabled, error, onChange }) => (jsxs("div", { className: style('shrink-0', className), children: [jsx(Checkbox, { text: text, value: value, disabled: disabled, onChange: onChange }, key), renderErrorText(error)] })));
2602
2452
 
2603
- const IsClientField = JSX(({ field }) => (jsx(CheckboxWithError, { ...field('isClient'), text: '\u042F\u0432\u043B\u044F\u044E\u0441\u044C \u043A\u043B\u0438\u0435\u043D\u0442\u043E\u043C \u0431\u0430\u043D\u043A\u0430 \u0410\u041E "\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A"' })));
2453
+ const IsClientField = JSX(({ field, input }) => (jsx(CheckboxWithError, { ...field(input?.name ?? ''), text: '\u042F\u0432\u043B\u044F\u044E\u0441\u044C \u043A\u043B\u0438\u0435\u043D\u0442\u043E\u043C \u0431\u0430\u043D\u043A\u0430 \u0410\u041E "\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A"' })));
2604
2454
 
2605
2455
  const OUT_SERVICE_BASE_URL = `${API_BASE_URI}/outservice`;
2606
2456
  const EMPTY_REGIONS$1 = [];
@@ -2613,30 +2463,24 @@
2613
2463
  const fieldRegion = field('region');
2614
2464
  const regionKey = fieldRegion?.value?.key;
2615
2465
  const { data: regions } = useAsyncData('outServiceRegions', getOutServiceRegions);
2616
- const localities = regions
2617
- ?.find((_) => _.code === regionKey)
2618
- ?.localities?.map((_) => ({ key: _, text: _ }));
2466
+ const localities = useMemo(() => regions?.find((_) => _.code === regionKey)?.localities?.map((_) => ({ key: _, text: _ })), [regions, regionKey]);
2619
2467
  useEffect(() => {
2620
2468
  if (regionKey !== '') {
2621
- field?.('localities')?.onChange?.('');
2469
+ field?.(input?.name ?? '')?.onChange?.('');
2622
2470
  }
2623
- }, [regionKey]);
2624
- return (jsx(SelectControl, { label: "\u041D\u0430\u0441\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u043F\u0443\u043D\u043A\u0442", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0433\u043E\u0440\u043E\u0434, \u0433\u0434\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0441\u0435\u0440\u0432\u0438\u0441", options: localities, ...getValidation(field('localities'), validatorObj.localities, input?.required), isSearch: true }));
2471
+ }, [regionKey, input?.name ?? '']);
2472
+ return (jsx(SelectControl, { label: "\u041D\u0430\u0441\u0435\u043B\u0435\u043D\u043D\u044B\u0439 \u043F\u0443\u043D\u043A\u0442", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0433\u043E\u0440\u043E\u0434, \u0433\u0434\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0441\u0435\u0440\u0432\u0438\u0441", options: localities, ...field(input?.name ?? ''), isSearch: true }));
2625
2473
  });
2626
2474
 
2627
- const FIELD_NAME$b = 'middleName';
2628
- const MiddleNameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0442\u0447\u0435\u0441\u0442\u0432\u043E (\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E, \u043F\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u0438\u0438)", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$b), ...getValidation(field(FIELD_NAME$b), validatorObj.middleName, input?.required), ...input })));
2475
+ const MiddleNameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0442\u0447\u0435\u0441\u0442\u0432\u043E (\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E, \u043F\u0440\u0438 \u043D\u0430\u043B\u0438\u0447\u0438\u0438)", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, input?.name ?? ''), ...field(input?.name ?? ''), ...input })));
2629
2476
 
2630
- const NameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0418\u043C\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), ...getValidation(field('name'), validatorObj.name, input?.required), ...input })));
2477
+ const NameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0418\u043C\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), ...field(input?.name ?? ''), ...input })));
2631
2478
 
2632
2479
  const SlideCheckbox = JSX(({ value = false, text, type = 'checkbox', onChange }) => (jsxs("div", { role: type, "aria-checked": value, className: "flex justify-start items-center w-full cursor-pointer mb-s", onClick: () => onChange && onChange(!value), children: [jsx("div", { className: style('relative flex-shrink-0 duration-300 w-9 h-5 mr-s rounded-2xl', value ? 'bg-primary-main' : 'bg-main-divider'), children: jsx("div", { className: style('absolute opacity-80 duration-500 top-0.5 w-4 h-4 bg-white rounded-full', value ? 'left-1/2' : 'left-[5%]') }) }), text ? (jsx(Text, { size: "text-l", font: "font-light", color: "text-primary-text", children: text })) : null] })));
2633
2480
 
2634
- const OnlineCheckoutField = JSX(({ field }) => isAcquiringTrade(field('acquiringType')?.value?.key) ? (jsx(SlideCheckbox, { type: "radio", text: "\u0425\u043E\u0447\u0443 \u043E\u043D\u043B\u0430\u0439\u043D-\u043A\u0430\u0441\u0441\u0443", ...field('onlineCheckout') })) : null);
2481
+ const OnlineCheckoutField = JSX(({ field, input }) => isAcquiringTrade(field('acquiringType')?.value?.key) ? (jsx(SlideCheckbox, { type: "radio", text: "\u0425\u043E\u0447\u0443 \u043E\u043D\u043B\u0430\u0439\u043D-\u043A\u0430\u0441\u0441\u0443", ...field(input?.name ?? '') })) : null);
2635
2482
 
2636
- const PartnerCommentsField = JSX(({ field, input }) => {
2637
- const { required, ...rest } = input;
2638
- return (jsx(InputControl, { ...getValidation(field('partnerComments'), validatorObj.partnerComments, required), placeholder: "\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u0443\u044E\u0449\u0438\u0439 \u0432\u0430\u0441 \u0432\u043E\u043F\u0440\u043E\u0441", isTextarea: true, ...rest }));
2639
- });
2483
+ const PartnerCommentsField = JSX(({ field, input }) => (jsx(InputControl, { ...field(input?.name ?? ''), placeholder: "\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u0443\u044E\u0449\u0438\u0439 \u0432\u0430\u0441 \u0432\u043E\u043F\u0440\u043E\u0441", isTextarea: true, ...input })));
2640
2484
 
2641
2485
  const isPlaceholder = (_) => _ === '_';
2642
2486
  const isDigit = (_) => /\d/.test(_);
@@ -2666,12 +2510,12 @@
2666
2510
 
2667
2511
  const PhoneField = JSX(({ field, input }) => {
2668
2512
  const fieldName = input?.name || 'phone';
2669
- return (jsx(InputPhoneControl, { label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...getValidation(field(fieldName), validatorObj.phone, input?.required), disabled: input?.filledByEsia && isEsiaAuthorize(field, fieldName), ...input }));
2513
+ return (jsx(InputPhoneControl, { label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...field(fieldName), disabled: input?.filledByEsia && isEsiaAuthorize(field, fieldName), ...input }));
2670
2514
  });
2671
2515
 
2672
2516
  const PosTerminalField = JSX(({ field }) => isAcquiringTrade(field('acquiringType')?.value?.key) ? (jsx(SlideCheckbox, { type: "radio", text: "\u0425\u043E\u0447\u0443 POS-\u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B", ...field('posTerminal') })) : null);
2673
2517
 
2674
- const ProductField = JSX(({ field, source }) => (jsx(SelectControl, { placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u0440\u043E\u0434\u0443\u043A\u0442", label: "\u041F\u0440\u043E\u0434\u0443\u043A\u0442", options: arrayToOptions(source?.productList), ...withValidator(field('product'), validatorObj.product) })));
2518
+ const ProductField = JSX(({ field, input, source }) => (jsx(SelectControl, { placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u0440\u043E\u0434\u0443\u043A\u0442", label: "\u041F\u0440\u043E\u0434\u0443\u043A\u0442", options: arrayToOptions(source?.productList), ...field(input?.name ?? '') })));
2675
2519
  const arrayToOptions = (array) => (array ?? []).map((_) => ({ key: _, value: _ }));
2676
2520
 
2677
2521
  const REGIONS_URL = `${API_BASE_URI}/regions`;
@@ -2688,7 +2532,7 @@
2688
2532
  const RegionField = JSX(({ field, input, params }) => {
2689
2533
  const url = getRegionUrl(params?.typeForm);
2690
2534
  const regions = useRegions(url);
2691
- return (jsx(SelectControl, { label: "\u0424\u0438\u043B\u0438\u0430\u043B", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0438\u043B\u0438\u0430\u043B", isSearch: true, options: useMemo(() => regions?.map(({ code = '', name = '' }) => ({ key: code, text: name })), [regions]), ...getValidation(field('region'), validatorObj.region, input?.required) }));
2535
+ return (jsx(SelectControl, { label: "\u0424\u0438\u043B\u0438\u0430\u043B", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0438\u043B\u0438\u0430\u043B", isSearch: true, options: useMemo(() => regions?.map(({ code = '', name = '' }) => ({ key: code, text: name })), [regions]), ...field(input?.name ?? '') }));
2692
2536
  });
2693
2537
 
2694
2538
  const RegionPremiumField = JSX(({ field, input }) => {
@@ -2697,9 +2541,191 @@
2697
2541
  key: region,
2698
2542
  text: region,
2699
2543
  })), [branchByRegions]);
2700
- return (jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", options: regions, ...getValidation(field('region'), validatorObj.region, input?.required) }));
2544
+ return (jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", options: regions, ...field(input?.name ?? '') }));
2701
2545
  });
2702
2546
 
2547
+ const withValidator = (props, validator) => {
2548
+ const { value, isDirty } = props;
2549
+ const errors = isDirty ? validator(value) : [];
2550
+ return {
2551
+ ...props,
2552
+ errors,
2553
+ error: errors[0],
2554
+ };
2555
+ };
2556
+
2557
+ const required = validator((_) => _ !== null && _ !== undefined && _ !== '');
2558
+
2559
+ const ERROR_MESSAGE = 'Некорректно заполненное поле';
2560
+ const ADDRESS_ERROR_MESSAGE = 'Укажите регион, город/населенный пункт, улицу, дом';
2561
+ const MIN_AGE = 23;
2562
+ const MAX_AGE = 75;
2563
+ const AGE_ERROR_MESSAGE = 'Допустимый возраст заёмщика - от 23 до 75 лет';
2564
+ const defaultValidator = (errorMsg) => required(errorMsg ?? ERROR_MESSAGE);
2565
+ const defaultSelectValidator = (errorMsg) => validator((_) => _?.key && _?.key !== '')(errorMsg ?? ERROR_MESSAGE);
2566
+ const jobNumberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 0 && _.length <= 2)(errorMsg ?? ERROR_MESSAGE);
2567
+ const nameValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length > 1 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
2568
+ const lengthStringValidator = (inputLength, errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 1 && _.length <= inputLength)(errorMsg ?? ERROR_MESSAGE);
2569
+ const serieValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 4)(errorMsg);
2570
+ const numberValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length === 6)(errorMsg);
2571
+ const innValidator = (errorMsg) => validator((_) => typeof _ === 'string' && (_.length === 10 || _.length === 12))(errorMsg);
2572
+ const phoneValidate = (email) => /^(\+7)?[\s-]?\(?[0-9]{3}\)?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$/.test(email);
2573
+ const phoneValidator = (errorMsg) => validator(phoneValidate)(errorMsg);
2574
+ const agreementValidator = validator((_) => typeof _ === 'boolean' && _)('Согласие обязательно');
2575
+ const snilsValidate = (snils) => {
2576
+ const snl = String(snils).replace(/[^0-9]+/g, '');
2577
+ if (snl.length === 11) {
2578
+ let checksum = 0;
2579
+ for (let i = 0; i < 9; i++) {
2580
+ checksum += parseInt(snl.charAt(i)) * (9 - i);
2581
+ }
2582
+ if (checksum > 101) {
2583
+ checksum = checksum % 101;
2584
+ }
2585
+ if (checksum === 100 || checksum === 101) {
2586
+ checksum = 0;
2587
+ }
2588
+ return checksum === parseInt(snl.substr(9));
2589
+ }
2590
+ return false;
2591
+ };
2592
+ const snilsValidator = (errorMsg) => validator(snilsValidate)(errorMsg);
2593
+ const emailValidate = (email) => /^[^\s@]+@[^\s@]+\.[a-zA-Z]{2,4}$/.test(email);
2594
+ const emailValidator = (errorMsg) => validator((_) => emailValidate(_))(errorMsg);
2595
+ const addressDaDataValidate = (address) => Boolean(address.region && address.city && address.house);
2596
+ const addressDaDataValidator = () => validator(addressDaDataValidate)(ADDRESS_ERROR_MESSAGE);
2597
+ const addressOrganizationValidator = () => validator((address) => Boolean(address.fiasCode && address.city && address.house))(ADDRESS_ERROR_MESSAGE);
2598
+ const codeWordValidator = (errorMsg) => validator((_) => typeof _ === 'string' && _.length >= 3 && _.length <= 21 && isCyrillic(_))(errorMsg ?? ERROR_MESSAGE);
2599
+ const cyrillicPattern = /^[\u0400-\u04FF\d\s]+$/u;
2600
+ const isCyrillic = (_ = '') => cyrillicPattern.test(_);
2601
+ const limitedBirthdayValidate = (date) => {
2602
+ const today = new Date();
2603
+ const minDate = new Date(today.getFullYear() - MIN_AGE, today.getMonth(), today.getDate());
2604
+ const maxDate = new Date(today.getFullYear() - MAX_AGE, today.getMonth(), today.getDate());
2605
+ if (!date || date > minDate || date < maxDate) {
2606
+ return false;
2607
+ }
2608
+ return true;
2609
+ };
2610
+ const limitedBirthdayValidator = () => validator(limitedBirthdayValidate)(AGE_ERROR_MESSAGE);
2611
+
2612
+ const validatorConsentsObj = {
2613
+ processPersonalDataFlg: agreementValidator,
2614
+ consentProviderFlg: agreementValidator,
2615
+ consentInformFlg: agreementValidator,
2616
+ consentPfrFlg: agreementValidator,
2617
+ consentOthersFlg: agreementValidator,
2618
+ };
2619
+ const validatorCreditCardObj = {
2620
+ addressCourier: addressDaDataValidator(),
2621
+ paymentSystem: defaultValidator('Укажите тип платежной системы'),
2622
+ currency: defaultValidator('Укажите валюту'),
2623
+ cardCategory: defaultValidator('Укажите категорию карты'),
2624
+ codeWord: codeWordValidator('Необходимо ввести кодовое слово'),
2625
+ confirmationIncome: defaultSelectValidator(),
2626
+ methodObtain: defaultValidator(),
2627
+ deliveryDate: defaultValidator('Укажите дату доставки'),
2628
+ };
2629
+ const validatorRetailObj = {
2630
+ organization: defaultSelectValidator('Выберите тип организации'),
2631
+ organizationAddress: addressOrganizationValidator(),
2632
+ organizationPhone: phoneValidator('Укажите номер телефона'),
2633
+ organizationName: defaultValidator('Укажите наименование организации'),
2634
+ legalForm: defaultValidator('Укажите ОПФ'),
2635
+ generalSeniority: jobNumberValidator('Укажите количество лет стажа'),
2636
+ lastJobExperience: jobNumberValidator('Укажите стаж на последнем месте работы'),
2637
+ experience5Years: jobNumberValidator('Укажите общий стаж за последние 5 лет'),
2638
+ jobsNumber: jobNumberValidator('Укажите количество мест работы за последние 5 лет'),
2639
+ beginDate: defaultValidator('Укажите дату заключения трудового договора'),
2640
+ addressFact: addressDaDataValidator(),
2641
+ addressRegistration: addressDaDataValidator(),
2642
+ addressRetail: defaultSelectValidator('Выберите адрес банка'),
2643
+ addressMatch: defaultValidator(),
2644
+ sex: defaultValidator('Укажите свой пол'),
2645
+ limitedBirthday: limitedBirthdayValidator(),
2646
+ birthPlace: defaultValidator('Укажите место рождения'),
2647
+ education: defaultSelectValidator('Выберите ваше образование'),
2648
+ housing: defaultSelectValidator('Выберите тип жилья'),
2649
+ amountWorkers: defaultSelectValidator('Выберите информацию о количестве сотрудников'),
2650
+ employment: defaultSelectValidator('Выберите информацию о трудоустройстве'),
2651
+ employerActivities: defaultSelectValidator('Выберите вид деятельности организации'),
2652
+ employerOrganization: defaultSelectValidator('Выберите вид организации'),
2653
+ positionOrganization: defaultSelectValidator('Выберите вашу должность'),
2654
+ familyStatus: defaultSelectValidator('Выберите семейное положение'),
2655
+ familyMembers: lengthStringValidator(2, 'Укажите количество членов семьи'),
2656
+ children: lengthStringValidator(2, 'Укажите количество детей'),
2657
+ dependents: lengthStringValidator(2, 'Укажите количество иждивенцев'),
2658
+ totalIncome: lengthStringValidator(19, 'Укажите среднемесячный доход от основной зарплаты'),
2659
+ expenses: lengthStringValidator(10, 'Укажите сумму обязательных выплат'),
2660
+ snils: snilsValidator('Некорректный номер СНИЛС'),
2661
+ conscription: defaultValidator(),
2662
+ armyIdFlg: agreementValidator,
2663
+ dulSerie: serieValidator('Укажите серию паспорта'),
2664
+ dulNumber: numberValidator('Укажите номер паспорта'),
2665
+ dulIssueDateField: defaultValidator('Укажите дату выдачи паспорта'),
2666
+ dulSubdivisionCode: numberValidator('Укажите код подразделения'),
2667
+ dulIssuedBy: defaultValidator('Укажите организацию, выдавшую паспорт'),
2668
+ participantDateRegistration: defaultValidator('Укажите дату регистрации'),
2669
+ retirementIncome: defaultValidator(),
2670
+ otherIncome: defaultValidator(),
2671
+ wages: defaultValidator(),
2672
+ mandatoryPayments: defaultValidator(),
2673
+ disablePeopleFlg: defaultValidator(),
2674
+ bankruptcyFlg: defaultValidator(),
2675
+ shareholderFlg: defaultValidator(),
2676
+ legalEntityName: defaultValidator(),
2677
+ bankEmployeeCode: defaultValidator(),
2678
+ partInBusiness: defaultValidator(),
2679
+ regionRetail: defaultSelectValidator('Выберите регион'),
2680
+ };
2681
+ const validatorObj = {
2682
+ fullName: defaultValidator(),
2683
+ addressBranch: defaultSelectValidator(),
2684
+ desiredMeetingDate: defaultValidator(),
2685
+ product: defaultValidator(),
2686
+ localities: defaultValidator(),
2687
+ partnerComments: defaultValidator(),
2688
+ collectionCount: defaultValidator(),
2689
+ acquiringType: defaultSelectValidator(),
2690
+ serviceType: defaultSelectValidator(),
2691
+ annualRevenue: defaultValidator(),
2692
+ feedbackMethod: defaultSelectValidator(),
2693
+ serviceDirection: defaultSelectValidator(),
2694
+ secondaryPhone: phoneValidator('Укажите номер телефона'),
2695
+ region: defaultSelectValidator(),
2696
+ surname: nameValidator('Укажите свою фамилию'),
2697
+ name: nameValidator('Укажите своё имя'),
2698
+ middleName: nameValidator('Укажите своё отчество'),
2699
+ birthday: defaultValidator('Укажите дату рождения'),
2700
+ phone: phoneValidator('Укажите номер телефона'),
2701
+ email: emailValidator('Укажите электронную почту'),
2702
+ inn: innValidator('Укажите ИНН'),
2703
+ comment: defaultValidator(),
2704
+ typeForm: defaultValidator(),
2705
+ consentToReceiveMaterials: agreementValidator,
2706
+ consentDataProcessing: agreementValidator,
2707
+ ...validatorConsentsObj,
2708
+ ...validatorRetailObj,
2709
+ ...validatorCreditCardObj,
2710
+ };
2711
+ const getFormValidator = (fieldDefs) => {
2712
+ const requiredFields = fieldDefs.filter((_) => Boolean(_?.required && _?.name));
2713
+ const hasConditions = requiredFields.some((_) => _.condition?.values);
2714
+ const requiredFieldValidatorsMap = Object.fromEntries(requiredFields.filter(byNonEmptyValidator).map(({ name }) => [name, validatorObj[name ?? '']]));
2715
+ return (formState) => hasConditions
2716
+ ? Object.fromEntries(requiredFields
2717
+ .filter(byNonEmptyValidator)
2718
+ .filter(byCondition(formState))
2719
+ .map(({ name }) => [name, validatorObj[name ?? '']]))
2720
+ : requiredFieldValidatorsMap;
2721
+ };
2722
+ const byNonEmptyValidator = ({ name }) => Boolean(validatorObj[name ?? '']);
2723
+ const byCondition = (formState) => (fieldDef) => !fieldDef?.condition ||
2724
+ fieldDef.condition.values.find((_) => {
2725
+ const dependencyValue = formState?.[fieldDef?.condition?.name ?? ''];
2726
+ return _ === (dependencyValue?.key ?? dependencyValue);
2727
+ });
2728
+
2703
2729
  const SecondaryPhoneField = JSX(({ field }) => {
2704
2730
  const fieldPhone = field('secondaryPhone');
2705
2731
  return (jsx(InputPhoneControl, { label: "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u0442\u0435\u043B\u0435\u0444\u043E\u043D", ...(!fieldPhone.value || fieldPhone.value === '+7 ('
@@ -2707,23 +2733,23 @@
2707
2733
  : withValidator(fieldPhone, validatorObj.secondaryPhone)) }));
2708
2734
  });
2709
2735
 
2710
- const ServiceDirectionField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u044F", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435", options: SERVICE_DIRECTIONS, ...getValidation(field('serviceDirection'), validatorObj.serviceDirection, input?.required) })));
2736
+ const ServiceDirectionField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u044F", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435", options: SERVICE_DIRECTIONS, ...field(input?.name ?? '') })));
2711
2737
 
2712
- const FIELD_NAME$a = 'surname';
2713
- const SurnameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0430\u043C\u0438\u043B\u0438\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$a), ...getValidation(field('surname'), validatorObj.surname, input?.required), ...input })));
2738
+ const FIELD_NAME$2 = 'surname';
2739
+ const SurnameField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0424\u0430\u043C\u0438\u043B\u0438\u044F", maxLength: 60, disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$2), ...field(input?.name ?? ''), ...input })));
2714
2740
 
2715
2741
  const MIN_CREDIT_TERM = 1;
2716
2742
  const MAX_CREDIT_TERM = 180;
2717
2743
  const ITEMS_CREDIT_TERM = ['От 1 мес', 'До 15 лет'];
2718
2744
  const TermField = JSX(({ field }) => (jsx(InputRange, { title: "\u0421\u0440\u043E\u043A, \u043C\u0435\u0441\u044F\u0446\u0435\u0432", items: ITEMS_CREDIT_TERM, min: MIN_CREDIT_TERM, max: MAX_CREDIT_TERM, ...field('term') })));
2719
2745
 
2720
- const UltraPremiumField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0422\u0438\u043F \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u044F", options: SERVICE_TYPES, ...getValidation(field('serviceType'), validatorObj.serviceType, input?.required) })));
2746
+ const UltraPremiumField = JSX(({ field, input }) => (jsx(SelectControl, { label: "\u0422\u0438\u043F \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u044F", options: SERVICE_TYPES, ...field(input?.name ?? '') })));
2721
2747
 
2722
2748
  const orientationStyleMap = {
2723
2749
  horizontal: '@lg:flex-row',
2724
2750
  vertical: '',
2725
2751
  };
2726
- const RadioButtonGroup = JSX(({ label, items, value, className, onChange: onChangeCheckedItem, disabled = false, orientation = 'horizontal', }) => (jsxs("div", { className: "grid gap-xs whitespace-nowrap", children: [label ? (jsx("div", { role: "radiogroup", "aria-label": label, children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: label }) })) : null, jsx("div", { className: style('flex flex-col gap-s', orientationStyleMap[orientation], className), role: "radiogroup", "aria-label": "\u0413\u0440\u0443\u043F\u043F\u0430 \u043A\u043D\u043E\u043F\u043E\u043A", children: items?.map(({ id, text }) => (jsx(Checkbox, { isRadio: true, text: text, value: value === id, onChange: () => onChangeCheckedItem && onChangeCheckedItem(id), disabled: disabled }, String(id)))) })] })));
2752
+ const RadioButtonGroup = JSX(({ label, items, value, className, disabled = false, orientation = 'horizontal', onChange: onChangeCheckedItem, }) => (jsxs("div", { className: "grid gap-xs whitespace-nowrap", children: [label ? (jsx("div", { role: "radiogroup", "aria-label": label, children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: label }) })) : null, jsx("div", { className: style('flex flex-col gap-s', orientationStyleMap[orientation], className), role: "radiogroup", "aria-label": "\u0413\u0440\u0443\u043F\u043F\u0430 \u043A\u043D\u043E\u043F\u043E\u043A", children: items?.map(({ id, text }) => (jsx(Checkbox, { isRadio: true, text: text, value: value === id, onChange: () => onChangeCheckedItem?.(id), disabled: disabled }, String(id)))) })] })));
2727
2753
 
2728
2754
  const VED_TYPES = [
2729
2755
  { id: 'currencyControl', text: 'Валютный контроль' },
@@ -2731,18 +2757,17 @@
2731
2757
  { id: 'conversionTransactions', text: 'Конверсионные операции' },
2732
2758
  { id: 'otherIssues', text: 'Иные вопросы ВЭД' },
2733
2759
  ];
2734
- const VedField = JSX(({ field }) => {
2735
- const { value, onChange } = field('vedTypes');
2736
- useEffect(() => {
2737
- if (value !== 'currencyControl') {
2738
- field?.('inn')?.onChange?.('');
2739
- field?.('region')?.onChange?.('');
2760
+ const VedField = JSX(({ field, input }) => {
2761
+ const handleChange = useCallback((_) => {
2762
+ if (_ !== 'currencyControl') {
2763
+ field('inn').onChange?.('');
2764
+ field('region').onChange?.('');
2740
2765
  }
2741
- }, [value]);
2742
- return (jsx("div", { className: "py-m gap-m grid @xl:flex @xl:items-center", children: jsx(RadioButtonGroup, { className: "whitespace-normal", orientation: "horizontal", items: VED_TYPES, value: value, onChange: (_) => onChange && onChange(_) }) }));
2766
+ }, []);
2767
+ return (jsx("div", { className: "py-m gap-m grid @xl:flex @xl:items-center", children: jsx(RadioButtonGroup, { className: "whitespace-normal", orientation: "horizontal", items: VED_TYPES, ...field(input?.name ?? '', { onChange: handleChange }) }) }));
2743
2768
  });
2744
2769
 
2745
- function isRenderField({ input, field, }) {
2770
+ function shouldRenderField({ input, field, }) {
2746
2771
  const { condition } = input;
2747
2772
  const { value } = field(condition?.name || '');
2748
2773
  return !condition || condition?.values?.find((_) => _ === (value?.key ?? value));
@@ -2751,45 +2776,45 @@
2751
2776
  const PRODUCT_REF = {
2752
2777
  $ref: '/wcms-resources/outservice-productlist.json',
2753
2778
  };
2754
- const InputsMap = {
2755
- fullName: (props) => jsx(FullNameField, { ...props }),
2756
- addressBranch: (props) => jsx(AddressBranchField, { ...props }),
2757
- desiredMeetingDate: (props) => jsx(DesiredMeetingDateField, { ...props }),
2779
+ const InputsMap$1 = {
2780
+ fullName: FullNameField,
2781
+ addressBranch: AddressBranchField,
2782
+ desiredMeetingDate: DesiredMeetingDateField,
2758
2783
  product: (props) => jsx(ProductField, { ...props, source: PRODUCT_REF }),
2759
- localities: (props) => jsx(LocalitiesField, { ...props }),
2760
- isClient: (props) => jsx(IsClientField, { ...props }),
2761
- partnerComments: (props) => jsx(PartnerCommentsField, { ...props }),
2762
- collectionCount: (props) => jsx(CollectionCountField, { ...props }),
2763
- acquiringType: (props) => jsx(AcquiringField, { ...props }),
2764
- onlineCheckout: (props) => jsx(OnlineCheckoutField, { ...props }),
2765
- posTerminal: (props) => jsx(PosTerminalField, { ...props }),
2766
- serviceType: (props) => jsx(UltraPremiumField, { ...props }),
2767
- term: (props) => jsx(TermField, { ...props }),
2768
- amount: (props) => jsx(AmountField, { ...props }),
2769
- annualRevenue: (props) => jsx(AnnualRevenueField, { ...props }),
2770
- vedTypes: (props) => jsx(VedField, { ...props }),
2771
- feedbackMethod: (props) => jsx(FeedbackMethodField, { ...props }),
2772
- serviceDirection: (props) => jsx(ServiceDirectionField, { ...props }),
2773
- bankEmpolee: (props) => jsx(BankEmpoleeField, { ...props }),
2774
- secondaryPhone: (props) => jsx(SecondaryPhoneField, { ...props }),
2784
+ localities: LocalitiesField,
2785
+ isClient: IsClientField,
2786
+ partnerComments: PartnerCommentsField,
2787
+ collectionCount: CollectionCountField,
2788
+ acquiringType: AcquiringField,
2789
+ onlineCheckout: OnlineCheckoutField,
2790
+ posTerminal: PosTerminalField,
2791
+ serviceType: UltraPremiumField,
2792
+ term: TermField,
2793
+ amount: AmountField,
2794
+ annualRevenue: AnnualRevenueField,
2795
+ vedTypes: VedField,
2796
+ feedbackMethod: FeedbackMethodField,
2797
+ serviceDirection: ServiceDirectionField,
2798
+ bankEmpolee: BankEmpoleeField,
2799
+ secondaryPhone: SecondaryPhoneField,
2775
2800
  applicationDate: (props) => (jsx(InputControl, { label: "\u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u044F \u0432 \u0411\u0430\u043D\u043A", ...props })),
2776
2801
  region: (props) => getPremium(props?.params?.typeForm) ? (jsx(RegionPremiumField, { ...props })) : (jsx(RegionField, { ...props })),
2777
- consentToReceiveMaterials: (props) => (jsx(ConsentToReceiveMaterialsField, { ...props })),
2778
- surname: (props) => jsx(SurnameField, { ...props }),
2779
- name: (props) => jsx(NameField, { ...props }),
2780
- middleName: (props) => jsx(MiddleNameField, { ...props }),
2781
- birthday: (props) => jsx(BirthdayField, { ...props }),
2782
- phone: (props) => jsx(PhoneField, { ...props }),
2783
- email: (props) => jsx(EmailField, { ...props }),
2784
- inn: (props) => jsx(InnField, { ...props }),
2785
- comment: (props) => jsx(CommentField, { ...props }),
2802
+ consentToReceiveMaterials: ConsentToReceiveMaterialsField,
2803
+ surname: SurnameField,
2804
+ name: NameField,
2805
+ middleName: MiddleNameField,
2806
+ birthday: BirthdayField,
2807
+ phone: PhoneField,
2808
+ email: EmailField,
2809
+ inn: InnField,
2810
+ comment: CommentField,
2786
2811
  };
2787
2812
  const getField = (field, params, externalInputs = {}) => (input, i) => {
2788
- const resultInputsMap = {
2789
- ...InputsMap,
2813
+ const fieldsRegister = {
2814
+ ...InputsMap$1,
2790
2815
  ...externalInputs,
2791
2816
  };
2792
- return isRenderField({ input, field }) ? (jsx("div", { children: resultInputsMap[input?.name || '']?.({ field, input, params }) }, String(i))) : null;
2817
+ return (shouldRenderField({ input, field }) && (jsx("div", { children: fieldsRegister[String(input.name)]?.({ field, input, params }) }, i)));
2793
2818
  };
2794
2819
 
2795
2820
  const inputColumnStyles = (column) => column === 2 ? '@xl:grid-cols-2' : '';
@@ -2836,21 +2861,16 @@
2836
2861
 
2837
2862
  const Dialog = JSX(({ className, head, children, onClose, onClick }) => (jsxs("div", { className: style('relative bg-white pt-0 p-lg', className), role: "dialog", onClick: onClick, children: [jsxs("div", { className: "sticky py-xl top-0 bg-white z-10", children: [jsx(CloseButton, { className: "absolute top-0 right-0", onClose: onClose }), jsx("div", { className: "container", children: head })] }), jsx("div", { className: "container pb-6xl", children: children })] })));
2838
2863
 
2839
- const ResponseTypeDialog = JSX(({ responseType, typeForm, onClose }) => {
2840
- const responseOK = responseType === 'OK';
2841
- const statusIcon = responseOK ? 'ResponseOKIcon' : 'ResponseFailIcon';
2864
+ const ResponseTypeDialog = JSX(({ ok, typeForm, onClose }) => {
2865
+ const statusIcon = ok ? 'ResponseOKIcon' : 'ResponseFailIcon';
2842
2866
  const responseOKDescription = typeForm === 'ANTIFRAUD'
2843
2867
  ? `Сообщение отправлено. Для уточнения информации с Вами могут связаться работники Банка либо Вы
2844
2868
  можете самостоятельно позвонить по номеру контакт-центра +78001000100. Будьте внимательны, работники Банка
2845
2869
  не звонят с использованием мессенджеров.`
2846
2870
  : 'Совсем скоро мы с вами свяжемся';
2847
- return (jsx(Dialog, { className: "my-6xl max-w-lg w-full min-h-fit mx-auto", onClose: onClose, children: jsxs("div", { className: "flex flex-col gap-lg items-center rounded-md space-x-m", children: [jsx(Img, { image: { icon: statusIcon, iconVersion: 'normal' }, width: "136", height: "136" }), jsx(Headline, { className: "w-full", title: responseOK ? 'Ваша заявка отправлена' : 'Не удалось отправить заявку', description: responseOK ? responseOKDescription : 'Пожалуйста, повторите позднее', headlineVersion: "XS", isEmbedded: true }), jsx(Button, { type: "button", onClick: onClose, children: "\u0425\u043E\u0440\u043E\u0448\u043E" })] }) }));
2871
+ return (jsx(Dialog, { className: "my-6xl max-w-lg w-full min-h-fit mx-auto", onClose: onClose, children: jsxs("div", { className: "flex flex-col gap-lg items-center rounded-md space-x-m", children: [jsx(Img, { image: { icon: statusIcon, iconVersion: 'normal' }, width: "136", height: "136" }), jsx(Headline, { className: "w-full", title: ok ? 'Ваша заявка отправлена' : 'Не удалось отправить заявку', description: ok ? responseOKDescription : 'Пожалуйста, повторите позднее', headlineVersion: "XS", isEmbedded: true }), jsx(Button, { type: "button", onClick: onClose, children: "\u0425\u043E\u0440\u043E\u0448\u043E" })] }) }));
2848
2872
  });
2849
2873
 
2850
- const objectValidator = (validatorsMap) => (o) => (o &&
2851
- Object.entries(validatorsMap).flatMap(([key, validator]) => validator(o[key]))) ||
2852
- [];
2853
-
2854
2874
  const getPartnerComments = (data) => {
2855
2875
  const { acquiringType, onlineCheckout = false, posTerminal = false, term, amount, annualRevenue, } = data;
2856
2876
  if (acquiringType) {
@@ -2928,46 +2948,28 @@
2928
2948
  const renderContacts = () => (jsxs("div", { className: "space-y-m", children: [jsx(Heading, { headingType: "h6", title: "\u0418\u043B\u0438 \u0441\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 \u043D\u0430\u043C\u0438 \u0443\u0434\u043E\u0431\u043D\u044B\u043C \u0441\u043F\u043E\u0441\u043E\u0431\u043E\u043C", className: "@xl:text-center" }), jsxs("div", { className: "flex sm:justify-center gap-xl", children: [jsxs("a", { className: "flex gap-s items-center text-primary-text no-underline", href: `tel:8 (800) 200-78-70`, "aria-label": "\u0442\u0435\u043B\u0435\u0444\u043E\u043D 8 (800) 200-78-70", children: [jsx(Img, { image: { icon: 'PhoneIcon' }, width: "24", height: "24" }), jsx("span", { children: "8 (800) 200-78-70" })] }), jsxs("a", { className: "flex gap-s items-center text-primary-text no-underline", "aria-label": "\u043F\u043E\u0447\u0442\u0430 ved@rshb.ru", href: `mailto:ved@rshb.ru`, children: [jsx(Img, { image: { icon: 'MailIcon' }, width: "24", height: "24" }), jsx("span", { children: "ved@rshb.ru" })] })] })] }));
2929
2949
 
2930
2950
  const API = LeadServiceAPI();
2931
- const ApplicationForm = JSX(
2932
- // eslint-disable-next-line max-lines-per-function
2933
- ({ className, title, typeForm = '', sections = [], button, link, endpoint, additionalParams, isContacts, data, ...rest }) => {
2934
- const inputs = (sections?.flatMap((_) => _?.inputs) || []);
2935
- const initialFormState = getInitialFormState$3(inputs, typeForm);
2936
- const [responseType, setResponseType] = useState('');
2951
+ const ApplicationForm = JSX(({ className, title, typeForm = '', sections = [], button, link, endpoint, additionalParams, isContacts, data, ...rest }) => {
2952
+ const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
2953
+ const initialFormState = useMemo(() => getInitialFormState$3(inputs, typeForm), [inputs, typeForm]);
2954
+ const formValidator = useMemo(() => getFormValidator(inputs), [inputs]);
2937
2955
  const responseTypeDialog = useDialog(ResponseTypeDialog);
2956
+ const aspects = useAspects();
2938
2957
  const handleSubmit = useCallback(async (formData, ev) => {
2939
- const inputsFiltered = getFilteredInputs(inputs, formData);
2940
- const feedbackValidator = objectValidator(getObjectValidator(inputsFiltered));
2941
- if (!isValidationSuccess(feedbackValidator(formData))) {
2942
- return console.warn('validation fail');
2943
- }
2944
2958
  const formatData = getFormatData({ ...formData, ...additionalParams });
2945
- const status = (await API.send(formatData, endpoint === 'lead')) ? 'OK' : 'Fail';
2946
- setResponseType(status);
2947
- if (status) {
2948
- responseTypeDialog.open({ typeForm, responseType: status });
2949
- }
2950
- if (status === 'OK' && data) {
2951
- const aspects = useAspects();
2959
+ const ok = Boolean(await API.send(formatData, endpoint === 'lead'));
2960
+ responseTypeDialog.open({ ok, typeForm });
2961
+ if (ok) {
2952
2962
  handleAspects({ aspectsAttributes: data, aspects, ev });
2953
2963
  }
2954
- return status;
2955
2964
  }, [typeForm]);
2956
- const [, { field, onSubmit, reset }] = useForm(initialFormState, { onSubmit: handleSubmit });
2965
+ const [, { field, onSubmit }] = useForm(initialFormState, {
2966
+ resetOnSubmit: true,
2967
+ formValidator,
2968
+ onSubmit: handleSubmit,
2969
+ });
2957
2970
  const fieldName = getConsentDataProcessing(inputs)?.name;
2958
- useEffect(() => {
2959
- if (responseType === 'OK') {
2960
- setResponseType('');
2961
- reset();
2962
- }
2963
- }, [responseType]);
2964
2971
  return (jsxs(ApplicationFormLayout, { className: style('container space-y-m', className), title: title, ...rest, children: [jsxs("form", { onSubmit: onSubmit, children: [sections.map((_, i) => (jsxs("div", { className: style(inputColumnStyles(_.columns), 'grid gap-x-m'), children: [renderTitle(_.title), (_?.inputs || [])?.map(getField(field, { typeForm }))] }, `section-${i}`))), renderAgreementSubmit(fieldName ? field('consentDataProcessing') : undefined, link, button)] }), isContacts ? renderContacts() : null] }));
2965
2972
  });
2966
- const getFilteredInputs = (inputs, data) => inputs.filter((input) => !input?.condition ||
2967
- input?.condition.values.find((_) => {
2968
- const dataValue = data?.[input?.condition?.name ?? ''];
2969
- return _ === (dataValue?.key ?? dataValue);
2970
- }));
2971
2973
 
2972
2974
  const applicationFormData = [
2973
2975
  {
@@ -3039,11 +3041,11 @@
3039
3041
  qcHouse: '',
3040
3042
  });
3041
3043
  }, []);
3042
- return (jsx(InputControl, { label: "\u0410\u0434\u0440\u0435\u0441", disabled: value, ...getValidation(field(fieldName), validatorObj[fieldName], input?.required), value: fieldValue?.fullAddress, onChange: onChange, ...input, onDaDataChange: onDaDataChange }));
3044
+ return (jsx(InputControl, { label: "\u0410\u0434\u0440\u0435\u0441", disabled: value, ...field(fieldName), value: fieldValue?.fullAddress, onChange: onChange, ...input, onDaDataChange: onDaDataChange }));
3043
3045
  });
3044
3046
 
3045
3047
  const AddressMatchField = JSX(({ field, input }) => {
3046
- return (jsx(CheckboxWithError, { text: "\u0410\u0434\u0440\u0435\u0441 \u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043C\u0435\u0441\u0442\u0430 \u0436\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u0430\u0434\u0440\u0435\u0441\u043E\u043C \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438", ...getValidation(field('addressMatch'), validatorObj.addressMatch, input?.required) }));
3048
+ return (jsx(CheckboxWithError, { text: "\u0410\u0434\u0440\u0435\u0441 \u0444\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043C\u0435\u0441\u0442\u0430 \u0436\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u0430\u0434\u0440\u0435\u0441\u043E\u043C \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438", ...field(input?.name ?? '') }));
3047
3049
  });
3048
3050
 
3049
3051
  const MapMarkerClusterIcon = '/icons/MapMarkerClusterIcon.svg';
@@ -3476,7 +3478,7 @@
3476
3478
 
3477
3479
  const ICONS$1 = ['ArrowDownIcon', 'ArrowUpIcon'];
3478
3480
  const labels = ['Подробнее', 'Скрыть'];
3479
- const renderFoldButton$3 = ({ isUnfolded, onToggle }) => (jsxs("button", { className: "w-full py-2xl cursor-pointer text-primary-main flex items-center border-b border-solid border-main-divider", onClick: onToggle, type: "button", children: [jsx("div", { className: "pr-m", children: labels[Number(isUnfolded)] }), jsx(Icon, { className: "text-primary-text", name: ICONS$1[Number(isUnfolded)], width: "16", height: "16" })] }));
3481
+ const renderFoldButton$2 = ({ isUnfolded, onToggle }) => (jsxs("button", { className: "w-full py-2xl cursor-pointer text-primary-main flex items-center border-b border-solid border-main-divider", onClick: onToggle, type: "button", children: [jsx("div", { className: "pr-m", children: labels[Number(isUnfolded)] }), jsx(Icon, { className: "text-primary-text", name: ICONS$1[Number(isUnfolded)], width: "16", height: "16" })] }));
3480
3482
 
3481
3483
  const renderWorkSchedule = (workSchedule) => {
3482
3484
  const workScheduleWeek = getWorkScheduleWeek(workSchedule);
@@ -3525,7 +3527,7 @@
3525
3527
  }) }));
3526
3528
  },
3527
3529
  //** TODO: remove styles with refactoring DefaultFoldButton*/
3528
- renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$3({ isUnfolded, onToggle }) })] }, String(i)));
3530
+ renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$2({ isUnfolded, onToggle }) })] }, String(i)));
3529
3531
  };
3530
3532
  const renderCardContent$1 = ({ phone, fax, phoneBusiness, phoneNatural, phoneCallCentre, phoneCurrencyControl, workSchedule, exchangeRate, }) => {
3531
3533
  const workScheduleWeek = getWorkScheduleWeek(workSchedule);
@@ -3639,14 +3641,14 @@
3639
3641
  const [offices, setOffices] = useState([]);
3640
3642
  const { data } = useLeadFormData('REGION_RF');
3641
3643
  const regionValue = field('regionRetail')?.value || {};
3642
- const fieldBranch = field('addressRetail');
3644
+ const addressField = field(input?.name ?? '');
3643
3645
  useEffect(() => {
3644
3646
  (async () => {
3645
3647
  const officesList = await fetchRegionOffices(regionValue?.key ?? '');
3646
3648
  setOffices(officesList);
3647
3649
  })();
3648
3650
  if (regionValue?.key) {
3649
- field?.('addressRetail')?.onChange?.('');
3651
+ addressField.onChange?.('');
3650
3652
  }
3651
3653
  }, [regionValue.key]);
3652
3654
  const { points } = useOfficesAtmsMapData({
@@ -3654,21 +3656,20 @@
3654
3656
  filtrationState: {},
3655
3657
  getBalloon: getOfficePoint,
3656
3658
  });
3657
- const isRegionSelected = Boolean(regionValue?.key);
3658
3659
  return (jsxs("div", { children: [jsx(SelectControl, { label: "\u0410\u0434\u0440\u0435\u0441 \u043E\u0442\u0434\u0435\u043B\u0435\u043D\u0438\u044F", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043E\u0442\u0434\u0435\u043B\u0435\u043D\u0438\u0435", options: offices.map(({ id, address = '' }) => ({
3659
3660
  key: id?.toString() || '',
3660
3661
  text: address,
3661
- })), ...getValidation(field('addressRetail'), validatorObj.addressRetail, input?.required && isRegionSelected), isSearch: true }), jsx("div", { className: "h-[600px]", children: jsx(ClientOnly, { children: jsx(YandexMap, { points: points, isLoad: !data, className: "h-full", selectedAddress: fieldBranch?.value?.text }) }) })] }));
3662
+ })), ...addressField, isSearch: true }), jsx("div", { className: "h-[600px]", children: jsx(ClientOnly, { children: jsx(YandexMap, { points: points, isLoad: !data, className: "h-full", selectedAddress: addressField?.value?.text }) }) })] }));
3662
3663
  });
3663
3664
 
3664
- const SelectField = UniBlock(({ field, source, fieldName, input, placeholder = 'Выберите из списка',
3665
+ const SelectField = UniBlock(({ field, source, fieldName, placeholder = 'Выберите из списка',
3665
3666
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
3666
3667
  options, ...rest }) => {
3667
3668
  const leadOptions = source?.map((_) => ({
3668
3669
  key: _.key || '',
3669
3670
  text: _.value,
3670
3671
  })) || [];
3671
- return (jsx(SelectControl, { placeholder: placeholder, options: leadOptions, ...getValidation(field(fieldName), validatorObj[fieldName], input?.required), ...rest }));
3672
+ return (jsx(SelectControl, { placeholder: placeholder, options: leadOptions, ...field(fieldName), ...rest }));
3672
3673
  });
3673
3674
 
3674
3675
  const AmountWorkersField = JSX(({ field, input }) => {
@@ -3682,16 +3683,16 @@
3682
3683
  return (jsx(SelectField, { field: field, source: store.amountWorkers ?? [], label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0449\u0438\u0445 \u0432 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", fieldName: "amountWorkers", input: input }));
3683
3684
  });
3684
3685
 
3685
- const ArmyIdFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u041D\u0430\u043B\u0438\u0447\u0438\u0435 \u0432\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u0438\u043B\u0435\u0442\u0430", ...getValidation(field('armyIdFlg'), validatorObj.armyIdFlg, input?.required) })));
3686
+ const ArmyIdFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u041D\u0430\u043B\u0438\u0447\u0438\u0435 \u0432\u043E\u0435\u043D\u043D\u043E\u0433\u043E \u0431\u0438\u043B\u0435\u0442\u0430", ...field(input?.name ?? '') })));
3686
3687
 
3687
- const BankEmpoleeCodeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u0434 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043B\u044F \u0411\u0430\u043D\u043A\u0430", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434", isInteger: true, ...getValidation(field('bankEmployeeCode'), validatorObj.bankEmployeeCode, input?.required), ...input })));
3688
+ const BankEmpoleeCodeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u0434 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043B\u044F \u0411\u0430\u043D\u043A\u0430", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434", isInteger: true, ...field(input?.name ?? ''), ...input })));
3688
3689
 
3689
- const BankruptcyFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u0412 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0438 \u043C\u0435\u043D\u044F \u0432\u0435\u0434\u0451\u0442\u0441\u044F \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0441\u0442\u0432\u043E \u043F\u043E \u0434\u0435\u043B\u0443 \u043E \u0431\u0430\u043D\u043A\u0440\u043E\u0442\u0441\u0442\u0432\u0435", ...getValidation(field('bankruptcyFlg'), validatorObj.bankruptcyFlg, input?.required) })));
3690
+ const BankruptcyFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u0412 \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0438 \u043C\u0435\u043D\u044F \u0432\u0435\u0434\u0451\u0442\u0441\u044F \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0441\u0442\u0432\u043E \u043F\u043E \u0434\u0435\u043B\u0443 \u043E \u0431\u0430\u043D\u043A\u0440\u043E\u0442\u0441\u0442\u0432\u0435", ...field(input?.name ?? '') })));
3690
3691
 
3691
- const BeginDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u043D\u0430\u0447\u0430\u043B\u0430 \u0440\u0430\u0431\u043E\u0442\u044B \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u043C\u0435\u0441\u0442\u0435", ...getValidation(field('beginDate'), validatorObj.beginDate, input?.required), ...input })));
3692
+ const BeginDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u043D\u0430\u0447\u0430\u043B\u0430 \u0440\u0430\u0431\u043E\u0442\u044B \u043D\u0430 \u0442\u0435\u043A\u0443\u0449\u0435\u043C \u043C\u0435\u0441\u0442\u0435", ...field(input?.name ?? ''), ...input })));
3692
3693
 
3693
- const FIELD_NAME$9 = 'birthPlace';
3694
- const BirthPlaceField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041C\u0435\u0441\u0442\u043E \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...getValidation(field('birthPlace'), validatorObj.birthPlace, input?.required), ...input, disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$9) })));
3694
+ const FIELD_NAME$1 = 'birthPlace';
3695
+ const BirthPlaceField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041C\u0435\u0441\u0442\u043E \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...field(input?.name ?? ''), ...input, disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$1) })));
3695
3696
 
3696
3697
  const getCardTypes = async (paymentSystemTypeCd, creditProgramId) => {
3697
3698
  const data = await fetchRetailJSON('/dictionaryFiltered', 'POST', {
@@ -3743,9 +3744,9 @@
3743
3744
  });
3744
3745
  const isValidCardCategory = (cardTypes, selectedCardCategory) => cardTypes.some((cardType) => cardType.key === selectedCardCategory?.key);
3745
3746
 
3746
- const ChildrenField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u0435\u0442\u0435\u0439 \u0434\u043E 18 \u043B\u0435\u0442", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('children'), validatorObj.children, input?.required), ...input })));
3747
+ const ChildrenField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u0435\u0442\u0435\u0439 \u0434\u043E 18 \u043B\u0435\u0442", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
3747
3748
 
3748
- const CodeWordField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u0434\u043E\u0432\u043E\u0435 \u0441\u043B\u043E\u0432\u043E", ...getValidation(field('codeWord'), validatorObj.codeWord, input?.required), ...input })));
3749
+ const CodeWordField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u0434\u043E\u0432\u043E\u0435 \u0441\u043B\u043E\u0432\u043E", ...field(input?.name ?? ''), ...input })));
3749
3750
 
3750
3751
  const ConfirmationIncomeField = JSX(({ field, input }) => {
3751
3752
  const { data: confirmationIncome } = useLeadFormData('INCOME_CERT_UNITED');
@@ -3808,7 +3809,7 @@
3808
3809
  return (jsxs("div", { className: className, children: [jsxs("div", { className: "flex flex-wrap gap-x-m", children: [jsx(Checkbox, { ...props }), docId ? (jsx(LinkButton, { className: "text-primary-main", onClick: openDocument, children: jsx(Text, { children: OPEN_DOC_BUTTON_TEXT }) })) : null] }), renderErrorText(error)] }));
3809
3810
  });
3810
3811
 
3811
- const ConsentField = JSX(({ field, input }) => input && input.name ? (jsx(CheckboxWithDoc, { text: CONSENTS[input.name]?.text, docId: CONSENTS[input.name]?.docId, ...getValidation(field(input.name), validatorObj[input.name], input?.required) })) : null);
3812
+ const ConsentField = JSX(({ field, input }) => input && input.name ? (jsx(CheckboxWithDoc, { text: CONSENTS[input.name]?.text, docId: CONSENTS[input.name]?.docId, ...field(input.name) })) : null);
3812
3813
 
3813
3814
  const MONTHS_IN_YEAR$1 = 12;
3814
3815
  const MONTHLY_INTEREST_RATE = MONTHS_IN_YEAR$1 * 100;
@@ -4037,7 +4038,7 @@
4037
4038
  };
4038
4039
  const CalculatorCredit = UniBlock(({ className, title, calcSource, buttons, footnote, paramsViewSettings, defaultParams, onChange, ...rest }) => {
4039
4040
  const defaultParamsCals = getDefaultParamsMin(calcSource?.rateRows);
4040
- const [userInputParams, { field, isDirty }] = useForm({
4041
+ const [userInputParams, { field }] = useForm({
4041
4042
  moneyValue: getMoneyDefaultValue(defaultParams, CREDIT_DEFAULT_SUM),
4042
4043
  monthsValue: getMonthsDefaultValue(defaultParams, DEFAULT_MONTHS),
4043
4044
  isAnnuity: Boolean(defaultParams?.isAnnuity),
@@ -4045,10 +4046,7 @@
4045
4046
  isSalaryClient: Boolean(defaultParams?.isEnableSalaryClient),
4046
4047
  isPensionClient: Boolean(defaultParams?.isEnablePensionClient),
4047
4048
  isStateEmployee: Boolean(defaultParams?.isEnableStateEmployee),
4048
- });
4049
- useEffect(() => {
4050
- isDirty && onChange?.(userInputParams);
4051
- }, [userInputParams, isDirty]);
4049
+ }, { onChange });
4052
4050
  const calcParams = getCreditCalculatorParams(userInputParams, calcSource, paramsViewSettings);
4053
4051
  const paymentTypeElement = renderPaymentType({
4054
4052
  title: 'Тип платежа',
@@ -4093,12 +4091,12 @@
4093
4091
  });
4094
4092
  const renderCreditParamsForm$1 = (params, field) => (jsxs("div", { className: "flex flex-col gap-y-2xl", children: [params.isShowSalaryClient ? (jsx(Checkbox, { text: `Получаю зарплату на счёт\nв Россельхозбанке`, ...field('isSalaryClient'), value: params.isSalaryClient, className: "whitespace-pre-line sm:whitespace-normal" })) : null, params.isShowStateEmployee ? (jsx(Checkbox, { text: "\u0420\u0430\u0431\u043E\u0442\u0430\u044E \u0432 \u0431\u044E\u0434\u0436\u0435\u0442\u043D\u043E\u0439 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...field('isStateEmployee'), value: params.isStateEmployee })) : null, params.isShowPensionClient ? (jsx(Checkbox, { text: "\u041F\u043E\u043B\u0443\u0447\u0430\u044E \u043F\u0435\u043D\u0441\u0438\u044E \u043D\u0430 \u043A\u0430\u0440\u0442\u0443 \u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u0430", ...field('isPensionClient'), value: params.isPensionClient })) : null, params.isShowInsurance ? (jsx(Checkbox, { text: "\u041A\u043E\u043C\u043F\u043B\u0435\u043A\u0441\u043D\u0430\u044F \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u044F \u0437\u0430\u0449\u0438\u0442\u0430", ...field('isInsurance'), value: params.isInsurance })) : null] }));
4095
4093
 
4096
- const FIELD_NAME$8 = 'calculator';
4094
+ const FIELD_NAME = 'calculator';
4097
4095
  const CreditCalcField = JSX(({ field, params }) => {
4098
4096
  const handleChange = useCallback((_) => {
4099
- field(FIELD_NAME$8).onChange?.(_);
4097
+ field(FIELD_NAME).onChange?.(_);
4100
4098
  }, []);
4101
- return (jsx(CalculatorCredit, { ...params?.calcData, padding: "p-0", defaultParams: defaultValueAdapter(field(FIELD_NAME$8).value), onChange: handleChange }));
4099
+ return (jsx(CalculatorCredit, { ...params?.calcData, padding: "p-0", defaultParams: defaultValueAdapter(field(FIELD_NAME).value), onChange: handleChange }));
4102
4100
  });
4103
4101
  const PARAMS_MAP = {
4104
4102
  moneyValue: 'sum',
@@ -4123,44 +4121,36 @@
4123
4121
  return (jsx(SelectField, { field: field, source: creditInRshbCd, label: LABEL_TEXT, fieldName: "creditInRshbCd", input: input, disabled: !field?.('shareholderFlg')?.value }));
4124
4122
  });
4125
4123
 
4126
- const RadioButtonGroupControl = JSX(({ className, label, onChange, error, ...rest }) => (jsxs("div", { className: style('shrink-0 w-full', className), children: [jsx(RadioButtonGroup, { label: getRequiredLabel({ label, errors: rest?.errors }), onChange: (_) => onChange && onChange(_), ...rest }), renderErrorText(error)] })));
4124
+ const RadioButtonGroupControl = JSX(({ className, label, error, ...rest }) => (jsxs("div", { className: style('shrink-0 w-full', className), children: [jsx(RadioButtonGroup, { label: getRequiredLabel({ label, errors: rest?.errors }), ...rest }), renderErrorText(error)] })));
4127
4125
 
4128
- const CurrencyField = JSX(({ field, input }) => {
4129
- const { value, onChange } = field('currency');
4130
- const currencyTypes = [{ id: '810', text: 'Рубли' }];
4131
- return (jsx(RadioButtonGroupControl, { label: "\u0412\u0430\u043B\u044E\u0442\u0430", orientation: "horizontal", items: currencyTypes, value: value, onChange: (_) => onChange?.(_), ...getValidation(field('currency'), validatorObj.currency, input?.required) }));
4132
- });
4126
+ const CURRENCY_TYPES = [{ id: '810', text: 'Рубли' }];
4127
+ const CurrencyField = JSX(({ field, input }) => (jsx(RadioButtonGroupControl, { label: "\u0412\u0430\u043B\u044E\u0442\u0430", orientation: "horizontal", items: CURRENCY_TYPES, ...field(input?.name ?? '') })));
4133
4128
 
4134
- const DeliveryDateFiels = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438", ...getValidation(field('deliveryDate'), validatorObj.deliveryDate, input?.required) })));
4129
+ const DeliveryDateFiels = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438", ...field(input?.name ?? '') })));
4135
4130
 
4136
- const DependentsField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0438\u0436\u0434\u0438\u0432\u0435\u043D\u0446\u0435\u0432", placeholder: "\u0417\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0434\u0435\u0442\u0435\u0439 \u0434\u043E 18 \u043B\u0435\u0442", isInteger: true, maxLength: 2, ...getValidation(field('dependents'), validatorObj.dependents, input?.required), ...input })));
4131
+ const DependentsField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0438\u0436\u0434\u0438\u0432\u0435\u043D\u0446\u0435\u0432", placeholder: "\u0417\u0430 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0434\u0435\u0442\u0435\u0439 \u0434\u043E 18 \u043B\u0435\u0442", isInteger: true, maxLength: 2, ...field(input?.name ?? ''), ...input })));
4137
4132
 
4138
- const DisablePeopleFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u042F\u0432\u043B\u044F\u044E\u0441\u044C \u0438\u043D\u0432\u0430\u043B\u0438\u0434\u043E\u043C", ...getValidation(field('disablePeopleFlg'), validatorObj.disablePeopleFlg, input?.required) })));
4133
+ const DisablePeopleFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u042F\u0432\u043B\u044F\u044E\u0441\u044C \u0438\u043D\u0432\u0430\u043B\u0438\u0434\u043E\u043C", ...field(input?.name ?? '') })));
4139
4134
 
4140
- const FIELD_NAME$7 = 'dulIssueDateField';
4141
- const DulIssueDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0432\u044B\u0434\u0430\u0447\u0438", ...getValidation(field(FIELD_NAME$7), validatorObj.dulIssueDateField, input?.required), disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$7) })));
4135
+ const DulIssueDateField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0432\u044B\u0434\u0430\u0447\u0438", ...field(input?.name ?? ''), disabled: input?.filledByEsia && isEsiaAuthorize(field, input?.name ?? '') })));
4142
4136
 
4143
- const FIELD_NAME$6 = 'dulIssuedBy';
4144
4137
  const DulIssuedByField = JSX(({ field, input }) => {
4145
4138
  const { value: dulSubdivisionCode, onChange: changeDulSubdivisionCode } = field('dulSubdivisionCode');
4146
4139
  const onDaDataChange = useCallback((item) => {
4147
4140
  changeDulSubdivisionCode?.(item?.data?.code?.replace('-', ''));
4148
4141
  }, []);
4149
- return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$6), label: "\u041A\u0435\u043C \u0432\u044B\u0434\u0430\u043D", ...input, ...getValidation(field(FIELD_NAME$6), validatorObj.dulIssuedBy, input?.required), onDaDataChange: onDaDataChange, daDataQueryPrefix: dulSubdivisionCode }));
4142
+ return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, input?.name ?? ''), label: "\u041A\u0435\u043C \u0432\u044B\u0434\u0430\u043D", ...input, ...field(input?.name ?? ''), onDaDataChange: onDaDataChange, daDataQueryPrefix: dulSubdivisionCode }));
4150
4143
  });
4151
4144
 
4152
- const FIELD_NAME$5 = 'dulNumber';
4153
- const DulNumberField = JSX(({ field, input }) => (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$5), label: "\u041D\u043E\u043C\u0435\u0440 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430", isInteger: true, maxLength: 6, ...getValidation(field('dulNumber'), validatorObj.dulNumber, input?.required) })));
4145
+ const DulNumberField = JSX(({ field, input }) => (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), label: "\u041D\u043E\u043C\u0435\u0440 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430", isInteger: true, maxLength: 6, ...field(input?.name ?? '') })));
4154
4146
 
4155
- const FIELD_NAME$4 = 'dulSerie';
4156
- const DulSerieField = JSX(({ field, input }) => (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$4), label: "\u0421\u0435\u0440\u0438\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430", isInteger: true, maxLength: 4, ...getValidation(field('dulSerie'), validatorObj.dulSerie, input?.required) })));
4147
+ const DulSerieField = JSX(({ field, input }) => (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), label: "\u0421\u0435\u0440\u0438\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430", isInteger: true, maxLength: 4, ...field(input?.name ?? '') })));
4157
4148
 
4158
- const FIELD_NAME$3 = 'dulSubdivisionCode';
4159
4149
  const DulSubdivisionCodeField = JSX(({ field, input }) => {
4160
4150
  const onDaDataChange = useCallback((item) => {
4161
4151
  field?.('dulIssuedBy')?.onChange?.(item?.data?.name);
4162
4152
  }, []);
4163
- return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$3), label: "\u041A\u043E\u0434 \u043F\u043E\u0434\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F", isInteger: true, maxLength: 6, ...input, ...getValidation(field(FIELD_NAME$3), validatorObj.dulSubdivisionCode, input?.required), onDaDataChange: onDaDataChange }));
4153
+ return (jsx(InputControl, { disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? ''), label: "\u041A\u043E\u0434 \u043F\u043E\u0434\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F", isInteger: true, maxLength: 6, ...input, ...field(input?.name ?? ''), onDaDataChange: onDaDataChange }));
4164
4154
  });
4165
4155
 
4166
4156
  const EducationField = JSX(({ field, input }) => {
@@ -4195,27 +4185,26 @@
4195
4185
  return (jsx(SelectField, { field: field, source: employment, label: "\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u0440\u0443\u0434\u043E\u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0435", fieldName: "employment", input: input }));
4196
4186
  });
4197
4187
 
4198
- const ExpensesField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0440\u0430\u0441\u0445\u043E\u0434\u044B \u0432 \u043C\u0435\u0441\u044F\u0446", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('expenses'), validatorObj.expenses, input?.required), ...input })));
4188
+ const ExpensesField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0440\u0430\u0441\u0445\u043E\u0434\u044B \u0432 \u043C\u0435\u0441\u044F\u0446", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
4199
4189
 
4200
- const FIELD_NAME$2 = 'experience5Years';
4201
4190
  const MAX_YEARS = 5;
4202
4191
  const MIN_YEARS = 0;
4203
4192
  const Experience5YearsField = JSX(({ field, input }) => {
4204
- const onChange = useCallback((value) => field(FIELD_NAME$2)?.onChange?.(String(clamp(Number(value), MIN_YEARS, MAX_YEARS))), []);
4205
- return (jsx(InputControl, { label: "\u0421\u0442\u0430\u0436", placeholder: "\u0417\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 5 \u043B\u0435\u0442", type: "number", ...getValidation(field(FIELD_NAME$2), validatorObj[FIELD_NAME$2], input?.required), ...input, onChange: onChange }));
4193
+ const onChange = useCallback((value) => field(input?.name ?? '')?.onChange?.(String(clamp(Number(value), MIN_YEARS, MAX_YEARS))), []);
4194
+ return (jsx(InputControl, { label: "\u0421\u0442\u0430\u0436", placeholder: "\u0417\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 5 \u043B\u0435\u0442", type: "number", ...field(input?.name ?? ''), ...input, onChange: onChange }));
4206
4195
  });
4207
4196
 
4208
- const FamilyMembersField = JSX(({ field }) => {
4209
- const { value, onChange } = field('familyMembers');
4197
+ const FamilyMembersField = JSX(({ field, input }) => {
4198
+ const { value, onChange } = field(input?.name ?? '');
4210
4199
  const familyStatusKey = field('familyStatus')?.value?.key;
4211
4200
  const adultsCount = familyStatusKey === 'MARRIED' ? 2 : 1;
4212
4201
  const childrenCount = Number(field('children')?.value);
4213
4202
  const dependentsCount = Number(field('dependents')?.value);
4214
4203
  const totalCount = adultsCount + childrenCount + dependentsCount;
4215
4204
  useEffect(() => {
4216
- field?.('familyMembers')?.onChange?.(totalCount);
4205
+ onChange?.(totalCount);
4217
4206
  }, [familyStatusKey, childrenCount, dependentsCount]);
4218
- return (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0447\u043B\u0435\u043D\u043E\u0432 \u0441\u0435\u043C\u044C\u0438", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", type: "number", disabled: true, value: value, onChange: (_) => onChange?.(_) }));
4207
+ return (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0447\u043B\u0435\u043D\u043E\u0432 \u0441\u0435\u043C\u044C\u0438", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", type: "number", disabled: true, value: value, onChange: onChange }));
4219
4208
  });
4220
4209
 
4221
4210
  const FamilyStatusField = JSX(({ field, input }) => {
@@ -4223,7 +4212,7 @@
4223
4212
  return (jsx(SelectField, { field: field, source: familyStatus, label: "\u0421\u0435\u043C\u0435\u0439\u043D\u043E\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435", fieldName: "familyStatus", input: input }));
4224
4213
  });
4225
4214
 
4226
- const GeneralSeniorityField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u0449\u0438\u0439 \u0441\u0442\u0430\u0436", type: "number", maxLength: 2, placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043B\u0435\u0442", ...getValidation(field('generalSeniority'), validatorObj.generalSeniority, input?.required), ...input })));
4215
+ const GeneralSeniorityField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u0449\u0438\u0439 \u0441\u0442\u0430\u0436", type: "number", maxLength: 2, placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043B\u0435\u0442", ...field(input?.name ?? ''), ...input })));
4227
4216
 
4228
4217
  const HousingField = JSX(({ field, input }) => {
4229
4218
  const { data: housing } = useLeadFormData('HOUSE_TYPE');
@@ -4234,26 +4223,25 @@
4234
4223
 
4235
4224
  const InfoCardField = JSX(({ input }) => (jsx(InfoCard, { __html: input?.label })));
4236
4225
 
4237
- const JobsNumberField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043C\u0435\u0441\u0442 \u0440\u0430\u0431\u043E\u0442\u044B \u0437\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 5 \u043B\u0435\u0442", placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043C\u0435\u0441\u0442", isInteger: true, maxLength: 2, ...getValidation(field('jobsNumber'), validatorObj.jobsNumber, input?.required), ...input })));
4226
+ const JobsNumberField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043C\u0435\u0441\u0442 \u0440\u0430\u0431\u043E\u0442\u044B \u0437\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 5 \u043B\u0435\u0442", placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043C\u0435\u0441\u0442", isInteger: true, maxLength: 2, ...field(input?.name ?? ''), ...input })));
4238
4227
 
4239
- const LastJobExperienceField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0421\u0442\u0430\u0436 \u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043C\u0435\u0441\u0442\u0435", placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043B\u0435\u0442", type: "number", maxLength: 2, ...getValidation(field('lastJobExperience'), validatorObj.lastJobExperience, input?.required), ...input })));
4228
+ const LastJobExperienceField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0421\u0442\u0430\u0436 \u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u043C \u0440\u0430\u0431\u043E\u0447\u0435\u043C \u043C\u0435\u0441\u0442\u0435", placeholder: "\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043B\u0435\u0442", type: "number", maxLength: 2, ...field(input?.name ?? ''), ...input })));
4240
4229
 
4241
4230
  const LegalEntityNameField = JSX(({ field, input }) => {
4242
- return (jsx(InputControl, { label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430", ...input, ...getValidation(field('legalEntityName'), validatorObj.legalEntityName, input?.required), disabled: !field?.('shareholderFlg')?.value }));
4231
+ return (jsx(InputControl, { label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430", ...input, ...field(input?.name ?? ''), disabled: !field?.('shareholderFlg')?.value }));
4243
4232
  });
4244
4233
 
4245
- const LegalFormField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u041F\u0424", placeholder: "\u041E\u041E\u041E, \u041F\u0410\u041E \u0438 \u0434\u0440.", ...getValidation(field('legalForm'), validatorObj.legalForm, input?.required), ...input })));
4234
+ const LegalFormField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u041F\u0424", placeholder: "\u041E\u041E\u041E, \u041F\u0410\u041E \u0438 \u0434\u0440.", ...field(input?.name ?? ''), ...input })));
4246
4235
 
4247
- const FIELD_NAME$1 = 'limitedBirthday';
4248
- const LimitedBirthdayField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...getValidation(field(FIELD_NAME$1), validatorObj.limitedBirthday, input?.required), disabled: input?.filledByEsia && isEsiaAuthorize(field, FIELD_NAME$1) })));
4236
+ const LimitedBirthdayField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u043E\u0436\u0434\u0435\u043D\u0438\u044F", ...field(input?.name ?? ''), disabled: input?.filledByEsia && isEsiaAuthorize(field, input.name ?? '') })));
4249
4237
 
4250
- const MandatoryPaymentsField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0432\u044B\u043F\u043B\u0430\u0442\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('mandatoryPayments'), validatorObj.mandatoryPayments, input?.required), ...input })));
4238
+ const MandatoryPaymentsField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0432\u044B\u043F\u043B\u0430\u0442\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
4251
4239
 
4252
4240
  const METHODS_OF_OBTAIN = [
4253
4241
  { id: 'office', text: 'В отделении Банка' },
4254
4242
  { id: 'courier', text: 'Курьерская доставка' },
4255
4243
  ];
4256
- const MethodObtainField = JSX(({ field, input }) => (jsx(RadioButtonGroupControl, { orientation: "horizontal", items: METHODS_OF_OBTAIN, ...getValidation(field('methodObtain'), validatorObj.methodObtain, input?.required) })));
4244
+ const MethodObtainField = JSX(({ field, input }) => (jsx(RadioButtonGroupControl, { orientation: "horizontal", items: METHODS_OF_OBTAIN, ...field(input?.name ?? '') })));
4257
4245
 
4258
4246
  const OrganizationField = JSX(({ field, input }) => {
4259
4247
  const { data } = useLeadFormData('ORGANIZATION_TYPE');
@@ -4272,19 +4260,18 @@
4272
4260
  field?.('inn')?.onChange?.(item.data?.inn);
4273
4261
  updateOrganizationFields(store, field, item);
4274
4262
  }, []);
4275
- return (jsx(InputControl, { label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...input, ...getValidation(field('organizationName'), validatorObj.organizationName, input?.required), onDaDataChange: onDaDataChange }));
4263
+ return (jsx(InputControl, { label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...input, ...field(input?.name ?? ''), onDaDataChange: onDaDataChange }));
4276
4264
  });
4277
4265
 
4278
- const OtherIncomeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0418\u043D\u044B\u0435 \u0434\u043E\u0445\u043E\u0434\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('otherIncome'), validatorObj.otherIncome, input?.required), ...input })));
4266
+ const OtherIncomeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0418\u043D\u044B\u0435 \u0434\u043E\u0445\u043E\u0434\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
4279
4267
 
4280
- const ParticipantDateRegistrationField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E \u043C\u0435\u0441\u0442\u0443 \u0436\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430", ...getValidation(field('participantDateRegistration'), validatorObj.participantDateRegistration, input?.required) })));
4268
+ const ParticipantDateRegistrationField = JSX(({ field, input }) => (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E \u043C\u0435\u0441\u0442\u0443 \u0436\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430", ...field(input?.name ?? '') })));
4281
4269
 
4282
4270
  const MAX_PART = 100;
4283
4271
  const MIN_PART = 0;
4284
- const FIELD_NAME = 'partInBusiness';
4285
4272
  const PartInBusinessField = JSX(({ field, input }) => {
4286
- const onChange = useCallback((value) => field(FIELD_NAME)?.onChange?.(String(clamp(Number(value), MIN_PART, MAX_PART))), []);
4287
- return (jsx(InputControl, { label: "\u0414\u043E\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u0438\u044F \u0432 \u0431\u0438\u0437\u043D\u0435\u0441\u0435", placeholder: "\u0432 %", isInteger: true, maxLength: 3, ...getValidation(field(FIELD_NAME), validatorObj.partInBusiness, input?.required), ...input, onChange: onChange }));
4273
+ const onChange = useCallback((value) => field(input?.name ?? '')?.onChange?.(String(clamp(Number(value), MIN_PART, MAX_PART))), []);
4274
+ return (jsx(InputControl, { label: "\u0414\u043E\u043B\u044F \u0443\u0447\u0430\u0441\u0442\u0438\u044F \u0432 \u0431\u0438\u0437\u043D\u0435\u0441\u0435", placeholder: "\u0432 %", isInteger: true, maxLength: 3, ...field(input?.name ?? ''), ...input, onChange: onChange }));
4288
4275
  });
4289
4276
 
4290
4277
  const getPaymentSystems = async (creditProgramId) => {
@@ -4298,22 +4285,34 @@
4298
4285
  text: _.name,
4299
4286
  }));
4300
4287
 
4288
+ function useAsyncEffect(effect, deps) {
4289
+ useEffect(() => {
4290
+ const free = effect();
4291
+ return () => {
4292
+ free.then((_) => {
4293
+ _ instanceof Function && _();
4294
+ });
4295
+ };
4296
+ }, deps);
4297
+ }
4298
+
4299
+ const optionKey = (option) => option?.key;
4301
4300
  const PaymentSystemField = JSX(({ field, input }) => {
4302
- const { value, onChange } = field('paymentSystem');
4303
- const [programId] = useLocalStorage('programId');
4304
4301
  const [paymentSystemOptions, setPaymentSystemOptions] = useState([]);
4305
- useEffect(() => {
4302
+ const localStore = useLocalStore();
4303
+ useAsyncEffect(async () => {
4304
+ const { programId } = localStore;
4306
4305
  if (programId) {
4307
- (async () => {
4308
- const fetchedPaymentSystems = await getPaymentSystems(programId);
4309
- setPaymentSystemOptions(fetchedPaymentSystems || []);
4310
- })();
4306
+ const fetchedPaymentSystems = await getPaymentSystems(programId);
4307
+ setPaymentSystemOptions(fetchedPaymentSystems ?? []);
4311
4308
  }
4312
4309
  }, []);
4313
- const handleChange = useCallback((type) => onChange?.(paymentSystemOptions?.find((_) => _.key === type)), [paymentSystemOptions, onChange]);
4314
- return (jsx(RadioButtonGroupControl, { label: "\u041F\u043B\u0430\u0442\u0435\u0436\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430", orientation: "horizontal", items: formatPaymentSystems(paymentSystemOptions), ...getValidation(field('paymentSystem'), validatorObj.paymentSystem, input?.required), value: value?.key, onChange: handleChange }));
4310
+ const items = useMemo(() => paymentSystemOptions?.map((_) => ({ id: _.key, text: _.text })) ?? [], [paymentSystemOptions]);
4311
+ return (jsx(RadioButtonGroupControl, { label: "\u041F\u043B\u0430\u0442\u0435\u0436\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430", orientation: "horizontal", items: items, ...field(input?.name ?? '', {
4312
+ format: optionKey,
4313
+ parse: (key) => paymentSystemOptions?.find((_) => _.key === key),
4314
+ }) }));
4315
4315
  });
4316
- const formatPaymentSystems = (paymentSystems) => paymentSystems?.map((_) => ({ id: _.key, text: _.text })) ?? [];
4317
4316
 
4318
4317
  const PositionOrganizationField = JSX(({ field, input }) => {
4319
4318
  const { data: positionOrganization } = useLeadFormData('POSITION');
@@ -4323,10 +4322,10 @@
4323
4322
  const RegionRetailField = JSX(({ field, input }) => {
4324
4323
  const { data: regions } = useLeadFormData('REGION_RF');
4325
4324
  const formatRegions = regions?.map(({ key, value }) => ({ key, text: value }));
4326
- return (jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", isSearch: true, options: formatRegions, ...getValidation(field('regionRetail'), validatorObj.regionRetail, input?.required) }));
4325
+ return (jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", isSearch: true, options: formatRegions, ...field(input?.name ?? '') }));
4327
4326
  });
4328
4327
 
4329
- const RetirementIncomeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041F\u0435\u043D\u0441\u0438\u043E\u043D\u043D\u044B\u0435 \u0434\u043E\u0445\u043E\u0434\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('retirementIncome'), validatorObj.retirementIncome, input?.required), ...input })));
4328
+ const RetirementIncomeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u041F\u0435\u043D\u0441\u0438\u043E\u043D\u043D\u044B\u0435 \u0434\u043E\u0445\u043E\u0434\u044B", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
4330
4329
 
4331
4330
  const GENDERS = ['male', 'female'];
4332
4331
  const getGenderFromName = async (name) => {
@@ -4356,10 +4355,10 @@
4356
4355
  })();
4357
4356
  }
4358
4357
  }, []);
4359
- return (jsx(RadioButtonGroupControl, { label: "\u041F\u043E\u043B", orientation: "horizontal", items: SEX_TYPES, ...getValidation(field('sex'), validatorObj.sex, input?.required) }));
4358
+ return (jsx(RadioButtonGroupControl, { label: "\u041F\u043E\u043B", orientation: "horizontal", items: SEX_TYPES, ...field(input?.name ?? '') }));
4360
4359
  });
4361
4360
 
4362
- const ShareholderFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u042F \u044F\u0432\u043B\u044F\u044E\u0441\u044C \u0430\u043A\u0446\u0438\u043E\u043D\u0435\u0440\u043E\u043C / \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u043C / \u0447\u043B\u0435\u043D\u043E\u043C / \u043F\u0430\u0439\u0449\u0438\u043A\u043E\u043C / \u0432\u043A\u043B\u0430\u0434\u0447\u0438\u043A\u043E\u043C \u0441 \u0434\u043E\u043B\u0435\u0439 \u0443\u0447\u0430\u0441\u0442\u0438\u044F \u0431\u043E\u043B\u0435\u0435 20% \u0443\u0441\u0442\u0430\u0432\u043D\u043E\u0433\u043E \u043A\u0430\u043F\u0438\u0442\u0430\u043B\u0430 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430", ...getValidation(field('shareholderFlg'), validatorObj.shareholderFlg, input?.required) })));
4361
+ const ShareholderFlgField = JSX(({ field, input }) => (jsx(CheckboxWithError, { text: "\u042F \u044F\u0432\u043B\u044F\u044E\u0441\u044C \u0430\u043A\u0446\u0438\u043E\u043D\u0435\u0440\u043E\u043C / \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u043C / \u0447\u043B\u0435\u043D\u043E\u043C / \u043F\u0430\u0439\u0449\u0438\u043A\u043E\u043C / \u0432\u043A\u043B\u0430\u0434\u0447\u0438\u043A\u043E\u043C \u0441 \u0434\u043E\u043B\u0435\u0439 \u0443\u0447\u0430\u0441\u0442\u0438\u044F \u0431\u043E\u043B\u0435\u0435 20% \u0443\u0441\u0442\u0430\u0432\u043D\u043E\u0433\u043E \u043A\u0430\u043F\u0438\u0442\u0430\u043B\u0430 \u044E\u0440\u0438\u0434\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043B\u0438\u0446\u0430", ...field(input?.name ?? '') })));
4363
4362
 
4364
4363
  const SnilsInput = JSX(({ children, onChange, maxLength, ...inputProps }) => {
4365
4364
  const handleChange = useCallback((v) => maxLength
@@ -4375,86 +4374,86 @@
4375
4374
 
4376
4375
  const InputSnilsControl = JSX(({ className, label, value, error, onChange, onBlur, ...rest }) => (jsxs("div", { className: style('shrink-0 w-full', className), children: [jsx(SnilsInput, { "aria-label": label, label: getRequiredLabel({ label, errors: rest?.errors }), valid: Boolean(!error), value: value, onChange: onChange, onBlur: onBlur, placeholder: "___-___-___ __", ...rest }), renderErrorText(error)] })));
4377
4376
 
4378
- const SnilsField = JSX(({ field, input }) => (jsx(InputSnilsControl, { label: "\u0421\u041D\u0418\u041B\u0421", maxLength: 14, ...getValidation(field('snils'), validatorObj.snils, input?.required), ...input })));
4377
+ const SnilsField = JSX(({ field, input }) => (jsx(InputSnilsControl, { label: "\u0421\u041D\u0418\u041B\u0421", maxLength: 14, ...field(input?.name ?? ''), ...input })));
4379
4378
 
4380
- const TotalIncomeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0421\u043E\u0432\u043E\u043A\u0443\u043F\u043D\u044B\u0439 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0439 \u0434\u043E\u0445\u043E\u0434 \u0432 \u043C\u0435\u0441\u044F\u0446 \u043F\u043E\u0441\u043B\u0435 \u0432\u044B\u0447\u0435\u0442\u0430 \u043D\u0430\u043B\u043E\u0433\u043E\u0432 (\u0437\u0430\u0440\u043F\u043B\u0430\u0442\u0430, \u043F\u0440\u0435\u043C\u0438\u0438)", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('totalIncome'), validatorObj.totalIncome, input?.required), ...input })));
4379
+ const TotalIncomeField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0421\u043E\u0432\u043E\u043A\u0443\u043F\u043D\u044B\u0439 \u043E\u0444\u0438\u0446\u0438\u0430\u043B\u044C\u043D\u044B\u0439 \u0434\u043E\u0445\u043E\u0434 \u0432 \u043C\u0435\u0441\u044F\u0446 \u043F\u043E\u0441\u043B\u0435 \u0432\u044B\u0447\u0435\u0442\u0430 \u043D\u0430\u043B\u043E\u0433\u043E\u0432 (\u0437\u0430\u0440\u043F\u043B\u0430\u0442\u0430, \u043F\u0440\u0435\u043C\u0438\u0438)", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
4381
4380
 
4382
- const WagesField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0421\u043E\u0432\u043E\u043A\u0443\u043F\u043D\u044B\u0439 \u0434\u043E\u0445\u043E\u0434 \u0432 \u043C\u0435\u0441\u044F\u0446 \u043F\u043E\u0441\u043B\u0435 \u0432\u044B\u0447\u0435\u0442\u0430 \u043D\u0430\u043B\u043E\u0433\u043E\u0432 (\u0437\u0430\u0440\u043F\u043B\u0430\u0442\u0430, \u043F\u0440\u0435\u043C\u0438\u0438)", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...getValidation(field('wages'), validatorObj.wages, input?.required), ...input })));
4381
+ const WagesField = JSX(({ field, input }) => (jsx(InputControl, { label: "\u0421\u043E\u0432\u043E\u043A\u0443\u043F\u043D\u044B\u0439 \u0434\u043E\u0445\u043E\u0434 \u0432 \u043C\u0435\u0441\u044F\u0446 \u043F\u043E\u0441\u043B\u0435 \u0432\u044B\u0447\u0435\u0442\u0430 \u043D\u0430\u043B\u043E\u0433\u043E\u0432 (\u0437\u0430\u0440\u043F\u043B\u0430\u0442\u0430, \u043F\u0440\u0435\u043C\u0438\u0438)", placeholder: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", isInteger: true, ...field(input?.name ?? ''), ...input })));
4383
4382
 
4384
4383
  const InputsApplicationLeadMap = {
4385
- limitedBirthday: (props) => jsx(LimitedBirthdayField, { ...props }),
4384
+ limitedBirthday: LimitedBirthdayField,
4386
4385
  };
4387
4386
  const InputsConsentsMap = {
4388
- processPersonalDataFlg: (props) => jsx(ConsentField, { ...props }),
4389
- consentProviderFlg: (props) => jsx(ConsentField, { ...props }),
4390
- consentOthersFlg: (props) => jsx(ConsentField, { ...props }),
4391
- consentInformFlg: (props) => jsx(ConsentField, { ...props }),
4392
- consentPfrFlg: (props) => jsx(ConsentField, { ...props }),
4387
+ processPersonalDataFlg: ConsentField,
4388
+ consentProviderFlg: ConsentField,
4389
+ consentOthersFlg: ConsentField,
4390
+ consentInformFlg: ConsentField,
4391
+ consentPfrFlg: ConsentField,
4393
4392
  };
4394
4393
  const InputsRetailMap = {
4395
- organization: (props) => jsx(OrganizationField, { ...props }),
4396
- organizationAddress: (props) => jsx(AddressField, { ...props }),
4397
- organizationPhone: (props) => jsx(PhoneField, { ...props }),
4398
- organizationName: (props) => jsx(OrganizationNameField, { ...props }),
4399
- legalForm: (props) => jsx(LegalFormField, { ...props }),
4400
- generalSeniority: (props) => jsx(GeneralSeniorityField, { ...props }),
4401
- lastJobExperience: (props) => jsx(LastJobExperienceField, { ...props }),
4402
- experience5Years: (props) => jsx(Experience5YearsField, { ...props }),
4403
- jobsNumber: (props) => jsx(JobsNumberField, { ...props }),
4404
- beginDate: (props) => jsx(BeginDateField, { ...props }),
4405
- addressFact: (props) => jsx(AddressFactField, { ...props }),
4406
- addressRegistration: (props) => jsx(AddressField, { ...props }),
4407
- addressRetail: (props) => jsx(AddressRetailField, { ...props }),
4408
- addressMatch: (props) => jsx(AddressMatchField, { ...props }),
4409
- sex: (props) => jsx(SexField, { ...props }),
4410
- limitedBirthday: (props) => jsx(LimitedBirthdayField, { ...props }),
4411
- birthPlace: (props) => jsx(BirthPlaceField, { ...props }),
4412
- education: (props) => jsx(EducationField, { ...props }),
4413
- housing: (props) => jsx(HousingField, { ...props }),
4414
- amountWorkers: (props) => jsx(AmountWorkersField, { ...props }),
4415
- employment: (props) => jsx(EmploymentField, { ...props }),
4416
- employerActivities: (props) => jsx(EmployerActivitiesField, { ...props }),
4417
- employerOrganization: (props) => jsx(EmployerOrganizationField, { ...props }),
4418
- positionOrganization: (props) => jsx(PositionOrganizationField, { ...props }),
4419
- familyStatus: (props) => jsx(FamilyStatusField, { ...props }),
4420
- familyMembers: (props) => jsx(FamilyMembersField, { ...props }),
4421
- children: (props) => jsx(ChildrenField, { ...props }),
4422
- dependents: (props) => jsx(DependentsField, { ...props }),
4423
- totalIncome: (props) => jsx(TotalIncomeField, { ...props }),
4424
- expenses: (props) => jsx(ExpensesField, { ...props }),
4425
- snils: (props) => jsx(SnilsField, { ...props }),
4426
- conscription: (props) => jsx(ConscriptionField, { ...props }),
4427
- armyIdFlg: (props) => jsx(ArmyIdFlgField, { ...props }),
4428
- dulSerie: (props) => jsx(DulSerieField, { ...props }),
4429
- dulNumber: (props) => jsx(DulNumberField, { ...props }),
4430
- dulIssueDateField: (props) => jsx(DulIssueDateField, { ...props }),
4431
- dulSubdivisionCode: (props) => jsx(DulSubdivisionCodeField, { ...props }),
4432
- dulIssuedBy: (props) => jsx(DulIssuedByField, { ...props }),
4433
- participantDateRegistration: (props) => (jsx(ParticipantDateRegistrationField, { ...props })),
4434
- retirementIncome: (props) => jsx(RetirementIncomeField, { ...props }),
4435
- otherIncome: (props) => jsx(OtherIncomeField, { ...props }),
4436
- wages: (props) => jsx(WagesField, { ...props }),
4437
- mandatoryPayments: (props) => jsx(MandatoryPaymentsField, { ...props }),
4438
- disablePeopleFlg: (props) => jsx(DisablePeopleFlgField, { ...props }),
4439
- bankruptcyFlg: (props) => jsx(BankruptcyFlgField, { ...props }),
4440
- shareholderFlg: (props) => jsx(ShareholderFlgField, { ...props }),
4441
- legalEntityName: (props) => jsx(LegalEntityNameField, { ...props }),
4442
- creditInRshbCd: (props) => jsx(CreditInRshbCdField, { ...props }),
4443
- bankEmployeeCode: (props) => jsx(BankEmpoleeCodeField, { ...props }),
4444
- partInBusiness: (props) => jsx(PartInBusinessField, { ...props }),
4445
- regionRetail: (props) => jsx(RegionRetailField, { ...props }),
4446
- infoCard: (props) => jsx(InfoCardField, { ...props }),
4447
- calculator: (props) => jsx(CreditCalcField, { ...props }),
4448
- confirmationIncome: (props) => jsx(ConfirmationIncomeField, { ...props }),
4394
+ organization: OrganizationField,
4395
+ organizationAddress: AddressField,
4396
+ organizationPhone: PhoneField,
4397
+ organizationName: OrganizationNameField,
4398
+ legalForm: LegalFormField,
4399
+ generalSeniority: GeneralSeniorityField,
4400
+ lastJobExperience: LastJobExperienceField,
4401
+ experience5Years: Experience5YearsField,
4402
+ jobsNumber: JobsNumberField,
4403
+ beginDate: BeginDateField,
4404
+ addressFact: AddressFactField,
4405
+ addressRegistration: AddressField,
4406
+ addressRetail: AddressRetailField,
4407
+ addressMatch: AddressMatchField,
4408
+ sex: SexField,
4409
+ limitedBirthday: LimitedBirthdayField,
4410
+ birthPlace: BirthPlaceField,
4411
+ education: EducationField,
4412
+ housing: HousingField,
4413
+ amountWorkers: AmountWorkersField,
4414
+ employment: EmploymentField,
4415
+ employerActivities: EmployerActivitiesField,
4416
+ employerOrganization: EmployerOrganizationField,
4417
+ positionOrganization: PositionOrganizationField,
4418
+ familyStatus: FamilyStatusField,
4419
+ familyMembers: FamilyMembersField,
4420
+ children: ChildrenField,
4421
+ dependents: DependentsField,
4422
+ totalIncome: TotalIncomeField,
4423
+ expenses: ExpensesField,
4424
+ snils: SnilsField,
4425
+ conscription: ConscriptionField,
4426
+ armyIdFlg: ArmyIdFlgField,
4427
+ dulSerie: DulSerieField,
4428
+ dulNumber: DulNumberField,
4429
+ dulIssueDateField: DulIssueDateField,
4430
+ dulSubdivisionCode: DulSubdivisionCodeField,
4431
+ dulIssuedBy: DulIssuedByField,
4432
+ participantDateRegistration: ParticipantDateRegistrationField,
4433
+ retirementIncome: RetirementIncomeField,
4434
+ otherIncome: OtherIncomeField,
4435
+ wages: WagesField,
4436
+ mandatoryPayments: MandatoryPaymentsField,
4437
+ disablePeopleFlg: DisablePeopleFlgField,
4438
+ bankruptcyFlg: BankruptcyFlgField,
4439
+ shareholderFlg: ShareholderFlgField,
4440
+ legalEntityName: LegalEntityNameField,
4441
+ creditInRshbCd: CreditInRshbCdField,
4442
+ bankEmployeeCode: BankEmpoleeCodeField,
4443
+ partInBusiness: PartInBusinessField,
4444
+ regionRetail: RegionRetailField,
4445
+ infoCard: InfoCardField,
4446
+ calculator: CreditCalcField,
4447
+ confirmationIncome: ConfirmationIncomeField,
4449
4448
  };
4450
4449
  const InputRetailCardMap = {
4451
- addressCourier: (props) => jsx(AddressField, { ...props }),
4452
- paymentSystem: (props) => jsx(PaymentSystemField, { ...props }),
4453
- currency: (props) => jsx(CurrencyField, { ...props }),
4454
- cardCategory: (props) => jsx(CardCategoryField, { ...props }),
4455
- codeWord: (props) => jsx(CodeWordField, { ...props }),
4456
- methodObtain: (props) => jsx(MethodObtainField, { ...props }),
4457
- deliveryDate: (props) => jsx(DeliveryDateFiels, { ...props }),
4450
+ addressCourier: AddressField,
4451
+ paymentSystem: PaymentSystemField,
4452
+ currency: CurrencyField,
4453
+ cardCategory: CardCategoryField,
4454
+ codeWord: CodeWordField,
4455
+ methodObtain: MethodObtainField,
4456
+ deliveryDate: DeliveryDateFiels,
4458
4457
  };
4459
4458
 
4460
4459
  const CONSENT_ALL_DOCS_TEXT = 'Согласие на все документы';
@@ -4464,13 +4463,15 @@
4464
4463
  const handleGeneralToggle = (value) => {
4465
4464
  for (const item of inputs) {
4466
4465
  const itemField = field(item.name);
4467
- itemField?.onChange && itemField.onChange(value);
4466
+ itemField.onChange?.(value);
4468
4467
  }
4469
4468
  };
4470
4469
  const hasValidationErrors = useMemo(() => inputs
4471
4470
  ?.filter((_) => _.required)
4472
4471
  ?.some((_) => Boolean(withValidator(field(_?.name), validatorObj[_?.name]).error)), [inputs]);
4473
- return (jsx("div", { className: "w-fit", children: jsx(Foldable, { isFoldButtonOnTop: true, unfoldedByDefault: true, renderFoldableSection: ({ isUnfolded }) => (jsx(FoldableSection, { isUnfolded: isUnfolded, className: "flex flex-col pl-2xl", children: inputs.map(getField(field, {}, InputsConsentsMap)) })), renderFoldButton: renderGeneralCheckbox(jsxs("div", { children: [jsx(Checkbox, { value: isChecked, onChange: handleGeneralToggle, text: CONSENT_ALL_DOCS_TEXT }, key), renderErrorText(hasValidationErrors ? CONSENT_REQUIRED : '')] })) }) }));
4472
+ return (jsx("div", { className: "w-fit", children: jsx(Foldable, { isFoldButtonOnTop: true, unfoldedByDefault: true, renderFoldableSection: ({ isUnfolded }) => (jsx(FoldableSection, { isUnfolded: isUnfolded, className: "flex flex-col pl-2xl", children:
4473
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
4474
+ inputs.map(getField(field, {}, { ...InputsConsentsMap })) })), renderFoldButton: renderGeneralCheckbox(jsxs("div", { children: [jsx(Checkbox, { value: isChecked, onChange: handleGeneralToggle, text: CONSENT_ALL_DOCS_TEXT }, key), renderErrorText(hasValidationErrors ? CONSENT_REQUIRED : '')] })) }) }));
4474
4475
  });
4475
4476
  const renderGeneralCheckbox = (generalCheckBox) => (foldableData) => (jsxs("div", { className: "flex items-start", children: [generalCheckBox, jsx("button", { onClick: foldableData.onToggle, className: "px-m py-2xs", type: "button", children: jsx(Icon, { className: "text-primary-text", name: foldableData.isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16" }) })] }));
4476
4477
 
@@ -4478,9 +4479,9 @@
4478
4479
  const { consentInputs, restInputs } = splitInputs(inputs || []);
4479
4480
  return consentInputs.length > 2 ? (jsxs("div", { children: [restInputs.map(getField(field, {}, { ...InputsApplicationLeadMap })), jsx(GroupedConsents, { inputs: consentInputs, field: field })] })) : ((inputs || [])?.map(getField(field, {}, { ...InputsApplicationLeadMap })));
4480
4481
  };
4481
- const splitInputs = (inputs) => ({
4482
- consentInputs: inputs?.filter((_) => Object.keys(CONSENTS).includes(_.name || '')) || [],
4483
- restInputs: inputs?.filter((_) => !Object.keys(CONSENTS).includes(_.name || '')) || [],
4482
+ const splitInputs = (inputs = []) => ({
4483
+ consentInputs: inputs.filter(({ name }) => Object.keys(CONSENTS).includes(String(name))),
4484
+ restInputs: inputs.filter(({ name }) => !Object.keys(CONSENTS).includes(String(name))),
4484
4485
  });
4485
4486
 
4486
4487
  const renderSubmitButton = (button, isSending) => (jsx(Button, { className: style('w-full @xl:w-auto'), type: "submit", isLoading: isSending, children: button?.text ? button.text : 'Отправить заявку' }));
@@ -5177,19 +5178,15 @@
5177
5178
  return saveUserData;
5178
5179
  };
5179
5180
 
5180
- const useApplicationLeadApi = ({ inputs, programId, nextStepLink, }) => {
5181
- const [responseStatus, setResponseStatus] = useState('');
5181
+ const useApplicationLeadApi = ({ programId, nextStepLink }) => {
5182
5182
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
5183
+ const [ok, setOK] = useState();
5183
5184
  const saveUserData = useSaveUserData();
5184
5185
  const openEsiaLoginDialog = useEsiaLoginDialog(nextStepLink);
5185
5186
  const consentBkiDialog = useConsentBkiDialog(openEsiaLoginDialog);
5186
5187
  const verifyPhoneDialog = useDialog(VerifyPhoneDialog);
5187
5188
  const draftDialog = useDraftDialog();
5188
5189
  const handleSubmit = useCallback(async (formData) => {
5189
- const feedbackValidator = objectValidator(getObjectValidator(inputs));
5190
- if (!isValidationSuccess(feedbackValidator(formData))) {
5191
- return;
5192
- }
5193
5190
  try {
5194
5191
  startSending();
5195
5192
  const profileId = await createUserProfile({
@@ -5223,7 +5220,7 @@
5223
5220
  }
5224
5221
  }
5225
5222
  catch {
5226
- setResponseStatus('Fail');
5223
+ setOK(false);
5227
5224
  }
5228
5225
  };
5229
5226
  const acceptedConsents = getAcceptedConsents(formData);
@@ -5236,14 +5233,10 @@
5236
5233
  }
5237
5234
  }
5238
5235
  catch {
5239
- setResponseStatus('Fail');
5236
+ setOK(false);
5240
5237
  }
5241
5238
  }, []);
5242
- return {
5243
- handleSubmit,
5244
- responseStatus,
5245
- isSending,
5246
- };
5239
+ return { isSending, ok, handleSubmit };
5247
5240
  };
5248
5241
  const getAcceptedConsents = (formData) => Object.keys(CONSENTS)
5249
5242
  .filter((_) => formData[_])
@@ -5405,19 +5398,22 @@
5405
5398
 
5406
5399
  const ApplicationLeadForm = JSX(({ className, title, programId = '', nextStepLink = '/credit-lead', button, ...rest }) => {
5407
5400
  const inputs = useMemo(() => (applicationFormData?.flatMap((_) => _?.inputs) || []), [applicationFormData]);
5401
+ const formValidator = useMemo(() => getFormValidator(inputs), [inputs]);
5408
5402
  const [initialFormState, { isLoading }] = useInitApplicationLead(inputs, nextStepLink);
5409
- const { handleSubmit, responseStatus, isSending } = useApplicationLeadApi({
5410
- inputs,
5403
+ const { isSending, ok, handleSubmit } = useApplicationLeadApi({
5411
5404
  programId,
5412
5405
  nextStepLink,
5413
5406
  });
5414
- const [, { field, onSubmit }] = useForm(initialFormState, { onSubmit: handleSubmit });
5407
+ const [, { field, onSubmit }] = useForm(initialFormState, {
5408
+ formValidator,
5409
+ onSubmit: handleSubmit,
5410
+ });
5415
5411
  const responseTypeDialog = useDialog(ResponseTypeDialog);
5416
5412
  useEffect(() => {
5417
- if (responseStatus) {
5418
- responseTypeDialog.open({ responseType: responseStatus });
5413
+ if (ok !== undefined) {
5414
+ responseTypeDialog.open({ ok });
5419
5415
  }
5420
- }, [responseStatus]);
5416
+ }, [ok]);
5421
5417
  return (jsx(ApplicationFormLayout, { className: style('container space-y-m', className), title: title, ...rest, children: jsxs("form", { onSubmit: onSubmit, className: "space-y-m relative", children: [isLoading ? jsx(Loader, { blur: false }) : null, applicationFormData.map((_, i) => (jsxs("div", { className: style(inputColumnStyles(_.columns), 'grid gap-x-m'), children: [renderTitle(_.title), renderInputs$2({ field, inputs: _?.inputs })] }, `section-${i}`))), renderSubmitButton(button, isSending)] }) }));
5422
5418
  });
5423
5419
 
@@ -5760,6 +5756,8 @@
5760
5756
  return (jsxs("div", { className: "flex-1", children: [item?.title ? (jsx("div", { className: "mb-m", children: jsx(Text, { size: "text-m", font: "font-medium", color: "text-primary-text", children: item.title }) })) : null, jsx(SlideCheckboxGroup, { items: options, multiple: !item?.single, ...field(key) })] }, key));
5761
5757
  };
5762
5758
 
5759
+ const identity = (_) => _;
5760
+
5763
5761
  function zip(firstCol, ...restCols) {
5764
5762
  return firstCol.map((firstEl, rowIndex) => [firstEl, ...restCols.map((col) => col[rowIndex])]);
5765
5763
  }
@@ -5805,12 +5803,12 @@
5805
5803
 
5806
5804
  const useFiltrationForm = (initialFormState, { block, page, normalize = identity }) => {
5807
5805
  const blocks = block?.blocks || [];
5808
- const [filtrationState, { field, reset, update }] = useForm(initialFormState);
5806
+ const [filtrationState, operators] = useForm(initialFormState);
5809
5807
  const blocksWithProps = useMemo(() => zip(blocks, blocks.map((b) => resolveBlockProps(b.content, page?.fallback))), [blocks, page?.fallback]);
5810
5808
  const blocksToRender = filtrationState === initialFormState
5811
5809
  ? blocks
5812
5810
  : filterBlocks(blocksWithProps, filtrationState)(normalize);
5813
- return [filtrationState, { blocksToRender, blocksWithProps }, { field, reset, update }];
5811
+ return [filtrationState, { blocksToRender, blocksWithProps }, operators];
5814
5812
  };
5815
5813
 
5816
5814
  const EMPTY_SCHEMA = {};
@@ -6310,7 +6308,7 @@
6310
6308
  isWithdrawn: Boolean(defaultParams?.isWithdrawn),
6311
6309
  isNewClient: Boolean(defaultParams?.isNewClient),
6312
6310
  currency: DEFAULT_CURRENCY,
6313
- }, { normalize });
6311
+ }, { normalizer: normalize });
6314
6312
  const currencyValue = field?.('currency')?.value ?? DEFAULT_CURRENCY;
6315
6313
  const isNewClient = field?.('isNewClient')?.value;
6316
6314
  const row = getRows(rows, currencyValue);
@@ -6736,6 +6734,8 @@
6736
6734
  const CarouselRecommendationCard = JSX(({ className, padding, description, additionalDescription, href, icon, isDotted, __html, socialMedia = [], target, title, align = 'text-left', benefits, imageOptions: { directionRight = true, isImageAlwaysOnRight = ImageAlwaysOnRight, isImageSecondary = false, } = {}, data, ...rest }) => (jsx(BlockWrapper, { className: style('relative min-h-28 group-data-gray:bg-main-divider/50', className), defaultPadding: "p-0", ...rest, children: jsx(LinkWrapper, { href: href, target: target, className: "h-full", data: getAspectsWithInclude(data), children: jsxs(BaseTile, { className: "h-full", defaultPadding: "p-2xl", padding: padding, insetTitle: jsx(Headline, { title: title, description: description, headlineVersion: "XS", isEmbedded: true, align: align }), ...leftOrRightImage(isIcon(icon) ? jsx(Img, { image: icon }) : null, directionRight), buttons: socialMedia.length ? (jsx(SocialMedia, { media: socialMedia, stretched: true, showButtonText: true, version: rest?.version })) : null, isImageAlwaysOnRight: isImageAlwaysOnRight, isImageSecondary: isImageSecondary, imageAlign: "center", children: [jsx(BenefitsList, { benefits: benefits }), __html ? jsx(RichText, { __html: __html, isDotted: isDotted, itemSize: "list-s" }) : null, renderAdditionalDescription(additionalDescription, align)] }) }) })));
6737
6735
  const renderAdditionalDescription = (additionalDescription, align) => additionalDescription ? (jsx(Paragraph, { size: "text-m", font: "font-light", color: "text-secondary-text group-data-secondary:text-white/80", align: align, children: additionalDescription })) : null;
6738
6736
 
6737
+ const carouselTariffsCardEventBus = new EventBus();
6738
+
6739
6739
  const renderCardInfo = (cell, i) => {
6740
6740
  const { title, description, buttons } = cell;
6741
6741
  return (jsxs("div", { className: "py-lg border-b border-main-divider", children: [title ? (jsx("div", { className: "opacity-80", children: jsx(Text, { size: "text-m", color: "text-secondary-text", children: title }) })) : null, description ? (jsx("div", { className: "mt-2xs", children: jsx(Text, { size: "text-xl", color: "text-primary-text", children: description }) })) : null, buttons?.length ? (jsx("div", { className: "text-primary-main", children: renderButtonsSection(buttons) })) : null] }, String(i)));
@@ -6747,20 +6747,21 @@
6747
6747
  ? [cellsNode.slice(0, visibleCellsCount), cellsNode.slice(visibleCellsCount)]
6748
6748
  : [cellsNode, []];
6749
6749
  const [isVisible, setIsVisible] = useState(false);
6750
- useEffect(() => defaultEventBus.subscribe('fold', (event) => {
6751
- if (event && options?.parent !== undefined && event.parent === options?.parent) {
6750
+ useEffect(() => carouselTariffsCardEventBus.subscribe('fold', (event) => {
6751
+ if (event && options?.parent && event.parent === options?.parent) {
6752
6752
  setIsVisible(event.isUnfolded);
6753
6753
  }
6754
6754
  }), [options?.parent]);
6755
- 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
6756
- ? renderFoldButton$2(options?.parent, data, isVisible)
6757
- : null })) : (jsx("div", { children: visibleCells }))] }));
6755
+ const toggle = useCallback(() => {
6756
+ carouselTariffsCardEventBus.fire('fold', {
6757
+ type: 'fold',
6758
+ isUnfolded: !isVisible,
6759
+ parent: options?.parent,
6760
+ });
6761
+ }, [isVisible, options?.parent]);
6762
+ return (jsxs(BlockWrapper, { className: style('flex flex-col', className), defaultPadding: "p-2xl", ...rest, children: [isIcon(icon) ? (jsx("div", { className: "self-center", children: jsx(Img, { image: icon }) })) : null, title ? (jsx(Heading, { className: style('pt-xs', align), headingType: "h5", title: title })) : null, button?.text ? jsx(LinkButton, { className: "w-full mt-m mb-lg", ...button }) : null, hiddenCells.length ? (jsx(Foldable, { renderFoldableSection: () => (jsxs("div", { children: [visibleCells, jsx(FoldableSection, { isUnfolded: isVisible, children: hiddenCells })] })), renderFoldButton: () => cardCells.length >= visibleCellsCount ? (jsx(FoldButton, { data: data, isUnfolded: isVisible, onClick: toggle })) : null })) : (jsx("div", { children: visibleCells }))] }));
6758
6763
  });
6759
- 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: () => {
6760
- if (parent !== undefined) {
6761
- defaultEventBus.fire('fold', { type: 'fold', isUnfolded: !isUnfolded, parent });
6762
- }
6763
- }, type: "button", ...(isUnfolded ? getAspectsAttributes(data) : {}), children: [jsx("div", { children: isUnfolded ? 'Скрыть' : 'Подробнее о тарифе' }), jsx(Icon, { className: "text-primary-text", name: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16" })] }));
6764
+ const FoldButton = JSX(({ data, isUnfolded = false, onClick }) => (jsxs("button", { className: "w-full cursor-pointer text-primary-main pt-lg flex justify-between items-center", type: "button", onClick: onClick, ...(isUnfolded ? getAspectsAttributes(data) : {}), children: [jsx("div", { children: isUnfolded ? 'Скрыть' : 'Подробнее о тарифе' }), jsx(Icon, { className: "text-primary-text", name: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16" })] })));
6764
6765
 
6765
6766
  const ContactsBlock = JSX(({ className, contacts, info, version = 'secondary', ...rest }) => (jsxs(BlockWrapper, { className: style('flex', className), defaultPadding: "p-6xl", version: version, ...rest, children: [info?.length ? renderBlocks(info) : null, contacts?.length ? renderBlocks(contacts) : null] })));
6766
6767
  const renderBlocks = (info) => (jsx("div", { className: "flex gap-5xl grow basis-0", children: info.map((column, i) => renderBlocksColumn({ column, i })) }));
@@ -6807,6 +6808,33 @@
6807
6808
  return (jsx("div", { className: "py-lg px-5xl bg-white col-span-12", children: jsxs("div", { children: [jsxs("span", { className: "font-bold mr-s", children: ["\u0428\u0430\u0433 ", step + 1, " \u0438\u0437 ", totalSteps, "."] }), stepsTitles[step] || null, jsx(ProgressBar, { step: progress, showPercentage: false })] }) }));
6808
6809
  });
6809
6810
 
6811
+ const calculateInputs = (getValue) => (inputs, step) => inputs
6812
+ .filter((_) => _)
6813
+ .map((_) => {
6814
+ if ([
6815
+ checkIsRetiree(step, getValue),
6816
+ checkBusinessOwner(_, getValue),
6817
+ checkConsentPfrFlg(_, getValue),
6818
+ checkAddressFillFromESIA(_, getValue),
6819
+ checkAddressFact(_, getValue),
6820
+ checkCondition(_, getValue),
6821
+ ].some(Boolean)) {
6822
+ return { ..._, required: false };
6823
+ }
6824
+ return _;
6825
+ });
6826
+ const checkIsRetiree = (step, getValue) => step === 2 && getValue('employment')?.key === 'RETIREE';
6827
+ const checkBusinessOwner = ({ name }, getValue) => name === 'partInBusiness' && getValue('positionOrganization')?.key !== 'BUSINESS_OWNER';
6828
+ const checkAddressFillFromESIA = ({ name, filledByEsia }, getValue) => name?.startsWith('address') && getValue('esiaAccountTypeCd')?.key && filledByEsia;
6829
+ const checkAddressFact = ({ name }, getValue) => name === 'addressFact' && getValue('addressMatch');
6830
+ const checkCondition = ({ condition }, getValue) => condition?.name &&
6831
+ condition?.values?.some((_) => {
6832
+ const dataValue = getValue(condition?.name);
6833
+ return _ !== (dataValue?.key ?? dataValue);
6834
+ });
6835
+ const checkConsentPfrFlg = ({ name }, getValue) => name === 'snils' && isSnilsRequired(getValue);
6836
+ const isSnilsRequired = (getValue) => getValue('confirmationIncome')?.key !== 'PFR_CERTIFICATE';
6837
+
6810
6838
  var STATUS_TYPE;
6811
6839
  (function (STATUS_TYPE) {
6812
6840
  STATUS_TYPE["process"] = "IN_PROCESS";
@@ -6964,40 +6992,14 @@
6964
6992
  return statusesMap[status] || jsx(ReworkStatusContent$1, {});
6965
6993
  };
6966
6994
 
6967
- const calculateInputs = (getValue) => (inputs, step) => inputs
6968
- .filter((_) => _)
6969
- .map((_) => {
6970
- if ([
6971
- checkIsRetiree(step, getValue),
6972
- checkBusinessOwner(_, getValue),
6973
- checkConsentPfrFlg(_, getValue),
6974
- checkAddressFillFromESIA(_, getValue),
6975
- checkAddressFact(_, getValue),
6976
- checkCondition(_, getValue),
6977
- ].some(Boolean)) {
6978
- return { ..._, required: false };
6979
- }
6980
- return _;
6981
- });
6982
- const checkIsRetiree = (step, getValue) => step === 2 && getValue('employment')?.key === 'RETIREE';
6983
- const checkBusinessOwner = ({ name }, getValue) => name === 'partInBusiness' && getValue('positionOrganization')?.key !== 'BUSINESS_OWNER';
6984
- const checkAddressFillFromESIA = ({ name, filledByEsia }, getValue) => name?.startsWith('address') && getValue('esiaAccountTypeCd')?.key && filledByEsia;
6985
- const checkAddressFact = ({ name }, getValue) => name === 'addressFact' && getValue('addressMatch');
6986
- const checkCondition = ({ condition }, getValue) => condition?.name &&
6987
- condition?.values?.some((_) => {
6988
- const dataValue = getValue(condition?.name);
6989
- return _ !== (dataValue?.key ?? dataValue);
6990
- });
6991
- const checkConsentPfrFlg = ({ name }, getValue) => name === 'snils' && isSnilsRequired(getValue);
6992
- const isSnilsRequired = (getValue) => getValue('confirmationIncome')?.key !== 'PFR_CERTIFICATE';
6993
-
6994
- const renderInputs$1 = ({ field, inputs, params }) => inputs.map(getField(field, params, { ...InputsRetailMap, ...InputRetailCardMap }));
6995
+ const InputsMap = { ...InputsRetailMap, ...InputRetailCardMap };
6996
+ const renderInputs$1 = ({ field, inputs, params }) => inputs.map(getField(field, params, InputsMap));
6995
6997
 
6996
6998
  const renderStep$2 = ({ sections, field, step, params }) => sections?.map(({ inputs: origInputs = [], columns, title }, i) => {
6997
- const inputs = calculateInputs(getValue$3(field))(origInputs, step);
6999
+ const inputs = calculateInputs(getValue$1(field))(origInputs, step);
6998
7000
  return (jsxs("div", { className: style(inputColumnStyles(columns), 'grid gap-x-m'), children: [renderTitle(title), renderInputs$1({ field, inputs, params })] }, `section-${i}`));
6999
7001
  });
7000
- const getValue$3 = (field) => (name) => field(name)?.value;
7002
+ const getValue$1 = (field) => (name) => field(name)?.value;
7001
7003
 
7002
7004
  const StepsNavigationButtons$1 = JSX(({ step, isSending, onPrevStep }) => {
7003
7005
  const isFirstStep = step === 0;
@@ -7263,7 +7265,7 @@
7263
7265
  }
7264
7266
  };
7265
7267
 
7266
- const useCreditCardFormAPI = ({ step, inputs, onNextStep, onFinish, }) => {
7268
+ const useCreditCardFormAPI = ({ step, onNextStep, onFinish, }) => {
7267
7269
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
7268
7270
  const isFinalStep = step === 5;
7269
7271
  const retailFormStore = useRetailFormStore();
@@ -7282,10 +7284,6 @@
7282
7284
  }
7283
7285
  }, [isFinalStep, initialState]);
7284
7286
  const handleSubmit = useCallback(async (formData) => {
7285
- const feedbackValidator = objectValidator(getObjectValidator(calculateInputs(getValue$2(formData))(inputs, step)));
7286
- if (!isValidationSuccess(feedbackValidator(formData))) {
7287
- return;
7288
- }
7289
7287
  startSending();
7290
7288
  retailFormStore.leadForm = formData;
7291
7289
  try {
@@ -7314,17 +7312,21 @@
7314
7312
  }, [isFinalStep, resetForm]);
7315
7313
  return [initialState, handleSubmit, isSending];
7316
7314
  };
7317
- const getValue$2 = (formData) => (name) => formData[name];
7318
7315
 
7319
7316
  const CreditCardFormStep = JSX(({ step, sections, isFormFinished, onPrevStep, onNextStep, onFinish }) => {
7320
- const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
7317
+ const inputs = useMemo(() => sections?.flatMap((_) => _?.inputs || []), [sections]);
7318
+ const formValidator = useCallback((formState) =>
7319
+ // TODO Слишком сложно
7320
+ getFormValidator(calculateInputs((_) => formState[_])(inputs, step))(formState), [inputs]);
7321
7321
  const [initialState, onSubmit, isSending] = useCreditCardFormAPI({
7322
7322
  step,
7323
- inputs,
7324
7323
  onNextStep,
7325
7324
  onFinish,
7326
7325
  });
7327
- const [, { field, onSubmit: handleSubmit }] = useForm(initialState, { onSubmit });
7326
+ const [, { field, onSubmit: handleSubmit }] = useForm(initialState, {
7327
+ formValidator,
7328
+ onSubmit,
7329
+ });
7328
7330
  return isFormFinished ? (jsx(CreditCardFormStatusTracker, {})) : (jsxs("form", { onSubmit: handleSubmit, className: "space-y-m", children: [renderStep$2({ sections, field, step }), jsx(StepsNavigationButtons$1, { isSending: isSending, step: step, onPrevStep: onPrevStep })] }));
7329
7331
  });
7330
7332
 
@@ -7727,7 +7729,7 @@
7727
7729
  setStep((_) => Math.max(_ - 1, 0));
7728
7730
  scrollToTop();
7729
7731
  }, []);
7730
- const sections = useMemo(() => stepsSectionsMap$1[step], [step]);
7732
+ const sections = stepsSectionsMap$1[step];
7731
7733
  const [isFormFinished, { setTrue: handleFinish }] = useBool(false);
7732
7734
  return (jsx(BlockWrapper, { className: className, ...rest, children: jsxs("div", { ref: formContainerRef, className: "container grid grid-cols-12", children: [isFormFinished ? null : (jsx(CreditCardFormProgress, { stepsTitles: TITLES, step: step, totalSteps: STEPS$1 })), jsx("div", { className: "py-lg px-5xl mt-2xs bg-white col-span-12", children: jsx(CreditCardFormStep, { step: step, sections: sections, isFormFinished: isFormFinished, onNextStep: handleNextStep, onPrevStep: handlePrevStep, onFinish: handleFinish }, String(step)) })] }) }));
7733
7735
  });
@@ -7867,10 +7869,10 @@
7867
7869
  const renderInputs = ({ field, inputs, params }) => inputs.map(getField(field, params, { ...InputsRetailMap }));
7868
7870
 
7869
7871
  const renderStep$1 = ({ sections, field, step, params }) => sections?.map(({ inputs: origInputs = [], columns, title }, i) => {
7870
- const inputs = calculateInputs(getValue$1(field))(origInputs, step);
7872
+ const inputs = calculateInputs(getValue(field))(origInputs, step);
7871
7873
  return (jsxs("div", { className: style(inputColumnStyles(columns), 'grid gap-x-m'), children: [renderTitle(title), renderInputs({ field, inputs, params })] }, `section-${i}`));
7872
7874
  });
7873
- const getValue$1 = (field) => (name) => field(name)?.value;
7875
+ const getValue = (field) => (name) => field(name)?.value;
7874
7876
 
7875
7877
  const StepsNavigationButtons = JSX(({ step, onPrevStep, isSending }) => {
7876
7878
  const isFirstStep = step === 0;
@@ -8053,7 +8055,7 @@
8053
8055
  }
8054
8056
  };
8055
8057
 
8056
- const useCreditFormAPI = ({ step, inputs, onNextStep, onFinish, }) => {
8058
+ const useCreditFormAPI = ({ step, onNextStep, onFinish, }) => {
8057
8059
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
8058
8060
  const isFinalStep = step === 5;
8059
8061
  const retailFormStore = useRetailFormStore();
@@ -8074,10 +8076,6 @@
8074
8076
  }
8075
8077
  }, [isFinalStep, initialState]);
8076
8078
  const handleSubmit = useCallback(async (formData) => {
8077
- const feedbackValidator = objectValidator(getObjectValidator(calculateInputs(getValue(formData))(inputs, step)));
8078
- if (!isValidationSuccess(feedbackValidator(formData))) {
8079
- return;
8080
- }
8081
8079
  startSending();
8082
8080
  retailFormStore.leadForm = formData;
8083
8081
  try {
@@ -8106,19 +8104,23 @@
8106
8104
  }, [isFinalStep, resetForm]);
8107
8105
  return [initialState, handleSubmit, isSending];
8108
8106
  };
8109
- const getValue = (formData) => (name) => formData[name];
8110
8107
 
8111
8108
  const CreditFormStep = JSX(({ step, sections, isFormFinished, programsSource, onPrevStep, onNextStep, onFinish }) => {
8112
8109
  const { programId } = useRetailFormStore();
8113
8110
  const calcData = programsSource?.[programId ?? '']; // Need normalizator useForm, to be save defaultParams
8114
- const inputs = useMemo(() => (sections?.flatMap((_) => _?.inputs) || []), [sections]);
8111
+ const inputs = useMemo(() => sections?.flatMap((_) => _?.inputs ?? []), [sections]);
8112
+ const formValidator = useCallback((formState) =>
8113
+ // TODO Слишком сложно
8114
+ getFormValidator(calculateInputs((_) => formState[_])(inputs, step))(formState), [inputs]);
8115
8115
  const [initialState, onSubmit, isSending] = useCreditFormAPI({
8116
8116
  step,
8117
- inputs,
8118
8117
  onNextStep,
8119
8118
  onFinish,
8120
8119
  });
8121
- const [, { field, onSubmit: handleSubmit }] = useForm(initialState, { onSubmit });
8120
+ const [, { field, onSubmit: handleSubmit }] = useForm(initialState, {
8121
+ formValidator,
8122
+ onSubmit,
8123
+ });
8122
8124
  return isFormFinished ? (jsx(CreditFormStatusTracker, {})) : (jsxs("form", { onSubmit: handleSubmit, className: "space-y-m", children: [renderStep$1({ sections, field, step, params: { calcData } }), jsx(StepsNavigationButtons, { step: step, isSending: isSending, onPrevStep: onPrevStep })] }));
8123
8125
  });
8124
8126
 
@@ -8151,7 +8153,7 @@
8151
8153
  setStep((_) => Math.max(_ - 1, 0));
8152
8154
  scrollToTop();
8153
8155
  }, []);
8154
- const sections = useMemo(() => stepsSectionsMap[step], [step]);
8156
+ const sections = stepsSectionsMap[step];
8155
8157
  const isStartStep = step === 0;
8156
8158
  const [isFormFinished, { setTrue: handleFinish }] = useBool(false);
8157
8159
  return (jsx(BlockWrapper, { className: className, ...rest, children: jsxs("div", { ref: formContainerRef, className: "container grid grid-cols-12", children: [isStartStep || isFormFinished ? null : (jsx(CreditFormProgress, { stepsTitles: STEP_TITLES, step: step, totalSteps: STEPS })), jsx("div", { className: "py-lg px-5xl mt-2xs bg-white col-span-12", children: jsx(CreditFormStep, { step: step, sections: sections, isFormFinished: isFormFinished, programsSource: programsSource, onNextStep: handleNextStep, onPrevStep: handlePrevStep, onFinish: handleFinish }, String(step)) })] }) }));
@@ -9575,7 +9577,7 @@
9575
9577
  return (jsx(FoldableSection, { isUnfolded: isUnfolded, children: jsx(CardRow, { className: "flex-wrap", children: additionalInfo?.map(renderInfo) }) }));
9576
9578
  },
9577
9579
  //** TODO: Remove styles with refactoring DefaultFoldButton*/
9578
- renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$3({ isUnfolded, onToggle }) })] }, String(i)));
9580
+ renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$2({ isUnfolded, onToggle }) })] }, String(i)));
9579
9581
  };
9580
9582
  const getAtmPoint = ({ address = '', terminalType, atmCode = '' }) => {
9581
9583
  const header = `${capitalizedFirstLetter(terminalType)} №${atmCode}`;
@@ -9641,7 +9643,7 @@
9641
9643
  workScheduleDescription,
9642
9644
  }) })),
9643
9645
  //** TODO: remove styles with refactoring DefaultFoldButton*/
9644
- renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$3({ isUnfolded, onToggle }) })] }, String(i)));
9646
+ renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton$2({ isUnfolded, onToggle }) })] }, String(i)));
9645
9647
  };
9646
9648
  const renderCardContent = ({ workScheduleDescription }) => {
9647
9649
  return (jsxs("div", { children: [jsxs(CardRow, { className: "flex", children: [jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u041E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0438 \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u043A\u0440\u0435\u0434\u0438\u0442\u043E\u0432, \u0441\u0447\u0435\u0442\u043E\u0432, \u0432\u043A\u043B\u0430\u0434\u043E\u0432" }) }), jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u041E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0438 \u043E\u0431\u0441\u043B\u0443\u0436\u0438\u0432\u0430\u043D\u0438\u0435 \u0431\u0430\u043D\u043A\u043E\u0432\u0441\u043A\u0438\u0445 \u043A\u0430\u0440\u0442" }) }), jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u0418\u043D\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u043E\u043D\u043D\u043E\u0435 \u0438 \u043D\u0430\u043A\u043E\u043F\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u043D\u0438\u0435" }) }), jsx(CardCell, { label: "\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u043B\u044F \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043B\u0438\u0446", children: jsx(Text, { children: "\u0411\u0435\u0437\u043D\u0430\u043B\u0438\u0447\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u0440\u0443\u0431\u043B\u044F\u0445, \u043F\u0435\u0440\u0435\u0432\u043E\u0434\u044B \u0431\u0435\u0437 \u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F \u0441\u0447\u0451\u0442\u0430" }) })] }), jsx("hr", { className: "text-main-divider pb-xl" }), jsx(CardCell, { label: "\u0420\u0435\u0436\u0438\u043C \u0440\u0430\u0431\u043E\u0442\u044B", className: "max-w-none", children: jsx(Text, { children: workScheduleDescription }) })] }));
@@ -10431,7 +10433,7 @@
10431
10433
  slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
10432
10434
  });
10433
10435
 
10434
- const packageVersion = "0.14.736";
10436
+ const packageVersion = "0.14.738";
10435
10437
 
10436
10438
  exports.Blocks = Blocks;
10437
10439
  exports.ContentPage = ContentPage;