@redneckz/wildless-cms-uni-blocks 0.10.9 → 0.10.10

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 (539) hide show
  1. package/bin/migration-scripts/0.10.10.js +44 -0
  2. package/bundle/bundle.umd.js +145 -147
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/Filtration/FiltrationContent.d.ts +2 -6
  5. package/bundle/components/OfficeMap/useOfficeMap.d.ts +2 -0
  6. package/bundle/hooks/useForm.d.ts +8 -4
  7. package/bundle/hooks/useNormalizedInput.d.ts +11 -0
  8. package/bundle/ui-kit/ControlProps.d.ts +1 -1
  9. package/bundle/ui-kit/CurrencyInput/CurrencyInput.d.ts +2 -2
  10. package/bundle/ui-kit/Input/Input.d.ts +1 -1
  11. package/bundle/ui-kit/Input/InputProps.d.ts +4 -5
  12. package/bundle/ui-kit/InputRange/InputRangeProps.d.ts +2 -4
  13. package/bundle/ui-kit/NumberInput/NumberInput.d.ts +8 -0
  14. package/bundle/ui-kit/PhoneInput/PhoneInput.d.ts +1 -1
  15. package/bundle/utils/identity.d.ts +1 -0
  16. package/bundle/utils/toLocalNumberFormat.d.ts +1 -0
  17. package/dist/components/ApplicationForm/ApplicationFormDeposit.js +1 -1
  18. package/dist/components/ApplicationForm/ApplicationFormDeposit.js.map +1 -1
  19. package/dist/components/ApplicationForm/renderAcquiringDataOrganization.js +1 -1
  20. package/dist/components/ApplicationForm/renderAcquiringDataOrganization.js.map +1 -1
  21. package/dist/components/ApplicationForm/renderBusinessCardDataOrganization.js +1 -1
  22. package/dist/components/ApplicationForm/renderBusinessCardDataOrganization.js.map +1 -1
  23. package/dist/components/ApplicationForm/renderCreditDataOrganization.js +1 -1
  24. package/dist/components/ApplicationForm/renderCreditDataOrganization.js.map +1 -1
  25. package/dist/components/ApplicationForm/renderWedDataOrganization.js +1 -1
  26. package/dist/components/ApplicationForm/renderWedDataOrganization.js.map +1 -1
  27. package/dist/components/Calculator/CalculatorValueBlock.js +2 -2
  28. package/dist/components/Calculator/CalculatorValueBlock.js.map +1 -1
  29. package/dist/components/Calculator/renderInitialFeeInput.js +3 -3
  30. package/dist/components/Calculator/renderInitialFeeInput.js.map +1 -1
  31. package/dist/components/Calculator/renderProposal.js +2 -2
  32. package/dist/components/Calculator/renderProposal.js.map +1 -1
  33. package/dist/components/Calculator/renderRealEstateValue.js +2 -2
  34. package/dist/components/Calculator/renderRealEstateValue.js.map +1 -1
  35. package/dist/components/Calculator/renderWantedSumInput.js +3 -3
  36. package/dist/components/Calculator/renderWantedSumInput.js.map +1 -1
  37. package/dist/components/CardTransfer/CardTransfer.js +10 -8
  38. package/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  39. package/dist/components/ContentPage/ContentPage.page.json +0 -1
  40. package/dist/components/Filtration/Filtration.js +1 -1
  41. package/dist/components/Filtration/Filtration.js.map +1 -1
  42. package/dist/components/Filtration/FiltrationContent.d.ts +2 -6
  43. package/dist/components/Filtration/renderFormItem.js.map +1 -1
  44. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  45. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  46. package/dist/components/OfficeMap/OfficeMap.js +2 -2
  47. package/dist/components/OfficeMap/OfficeMap.js.map +1 -1
  48. package/dist/components/OfficeMap/useOfficeMap.d.ts +2 -0
  49. package/dist/components/OfficeMap/useOfficeMap.js +1 -2
  50. package/dist/components/OfficeMap/useOfficeMap.js.map +1 -1
  51. package/dist/components/PictureText/PictureText.js +2 -2
  52. package/dist/components/PictureText/PictureText.js.map +1 -1
  53. package/dist/hooks/useForm.d.ts +8 -4
  54. package/dist/hooks/useForm.js +5 -3
  55. package/dist/hooks/useForm.js.map +1 -1
  56. package/dist/hooks/useNormalizedInput.d.ts +11 -0
  57. package/dist/hooks/useNormalizedInput.js +23 -0
  58. package/dist/hooks/useNormalizedInput.js.map +1 -0
  59. package/dist/hooks/useSWRResource.js +2 -1
  60. package/dist/hooks/useSWRResource.js.map +1 -1
  61. package/dist/services/search/useSearch.js +3 -2
  62. package/dist/services/search/useSearch.js.map +1 -1
  63. package/dist/ui-kit/ControlProps.d.ts +1 -1
  64. package/dist/ui-kit/CurrencyInput/CurrencyInput.d.ts +2 -2
  65. package/dist/ui-kit/CurrencyInput/CurrencyInput.js +3 -16
  66. package/dist/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
  67. package/dist/ui-kit/Input/Input.d.ts +1 -1
  68. package/dist/ui-kit/Input/Input.js +3 -2
  69. package/dist/ui-kit/Input/Input.js.map +1 -1
  70. package/dist/ui-kit/Input/InputProps.d.ts +4 -5
  71. package/dist/ui-kit/InputRange/InputRange.js +9 -11
  72. package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  73. package/dist/ui-kit/InputRange/InputRangeProps.d.ts +2 -4
  74. package/dist/ui-kit/NumberInput/NumberInput.d.ts +8 -0
  75. package/dist/ui-kit/NumberInput/NumberInput.js +22 -0
  76. package/dist/ui-kit/NumberInput/NumberInput.js.map +1 -0
  77. package/dist/ui-kit/PhoneInput/PhoneInput.d.ts +1 -1
  78. package/dist/ui-kit/PhoneInput/PhoneInput.js +2 -2
  79. package/dist/ui-kit/PhoneInput/PhoneInput.js.map +1 -1
  80. package/dist/ui-kit/SearchDialog/SearchDialog.js +1 -1
  81. package/dist/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  82. package/dist/ui-kit/SlideCheckboxGroup/SlideCheckboxGroup.js +5 -3
  83. package/dist/ui-kit/SlideCheckboxGroup/SlideCheckboxGroup.js.map +1 -1
  84. package/dist/utils/identity.d.ts +1 -0
  85. package/dist/utils/identity.js +5 -0
  86. package/dist/utils/identity.js.map +1 -0
  87. package/dist/utils/toLocalNumberFormat.d.ts +1 -0
  88. package/dist/utils/toLocalNumberFormat.js +8 -0
  89. package/dist/utils/toLocalNumberFormat.js.map +1 -0
  90. package/lib/common.css +1 -1
  91. package/lib/components/ApplicationForm/ApplicationFormDeposit.js +1 -1
  92. package/lib/components/ApplicationForm/ApplicationFormDeposit.js.map +1 -1
  93. package/lib/components/ApplicationForm/renderAcquiringDataOrganization.js +1 -1
  94. package/lib/components/ApplicationForm/renderAcquiringDataOrganization.js.map +1 -1
  95. package/lib/components/ApplicationForm/renderBusinessCardDataOrganization.js +1 -1
  96. package/lib/components/ApplicationForm/renderBusinessCardDataOrganization.js.map +1 -1
  97. package/lib/components/ApplicationForm/renderCreditDataOrganization.js +1 -1
  98. package/lib/components/ApplicationForm/renderCreditDataOrganization.js.map +1 -1
  99. package/lib/components/ApplicationForm/renderWedDataOrganization.js +1 -1
  100. package/lib/components/ApplicationForm/renderWedDataOrganization.js.map +1 -1
  101. package/lib/components/Calculator/CalculatorValueBlock.js +2 -2
  102. package/lib/components/Calculator/CalculatorValueBlock.js.map +1 -1
  103. package/lib/components/Calculator/renderInitialFeeInput.js +3 -3
  104. package/lib/components/Calculator/renderInitialFeeInput.js.map +1 -1
  105. package/lib/components/Calculator/renderProposal.js +2 -2
  106. package/lib/components/Calculator/renderProposal.js.map +1 -1
  107. package/lib/components/Calculator/renderRealEstateValue.js +2 -2
  108. package/lib/components/Calculator/renderRealEstateValue.js.map +1 -1
  109. package/lib/components/Calculator/renderWantedSumInput.js +3 -3
  110. package/lib/components/Calculator/renderWantedSumInput.js.map +1 -1
  111. package/lib/components/CardTransfer/CardTransfer.js +10 -8
  112. package/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  113. package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.fixture.d.ts +1 -0
  114. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.fixture.d.ts +1 -0
  115. package/lib/components/CarouselEventCard/CarouselEventCard.fixture.d.ts +1 -0
  116. package/lib/components/CarouselLinks/CarouselLinks.fixture.d.ts +1 -0
  117. package/lib/components/CarouselProductCard/CarouselProductCard.fixture.d.ts +1 -0
  118. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.fixture.d.ts +1 -0
  119. package/lib/components/CarouselRichTextCard/CarouselRichTextCard.fixture.d.ts +1 -0
  120. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.fixture.d.ts +1 -0
  121. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.fixture.mobile.d.ts +1 -0
  122. package/lib/components/ContentPage/ContentPage.page.json +0 -1
  123. package/lib/components/Filtration/Filtration.fixture.d.ts +1 -0
  124. package/lib/components/Filtration/Filtration.js +1 -1
  125. package/lib/components/Filtration/Filtration.js.map +1 -1
  126. package/lib/components/Filtration/FiltrationContent.d.ts +2 -6
  127. package/lib/components/Filtration/renderFormItem.js.map +1 -1
  128. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  129. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  130. package/lib/components/OfficeMap/OfficeMap.js +2 -2
  131. package/lib/components/OfficeMap/OfficeMap.js.map +1 -1
  132. package/lib/components/OfficeMap/useOfficeMap.d.ts +2 -0
  133. package/lib/components/OfficeMap/useOfficeMap.js +1 -2
  134. package/lib/components/OfficeMap/useOfficeMap.js.map +1 -1
  135. package/lib/components/PictureText/PictureText.js +2 -2
  136. package/lib/components/PictureText/PictureText.js.map +1 -1
  137. package/lib/components/RollupItem/RollupItem.fixture.d.ts +1 -0
  138. package/lib/components/RollupItem/RollupItem.fixture.mobile.d.ts +1 -0
  139. package/lib/components/SwipeListControlBlock/SwipeListControlBlock.fixture.d.ts +1 -0
  140. package/lib/components/Video/Video.fixture.d.ts +1 -0
  141. package/lib/hooks/useForm.d.ts +8 -4
  142. package/lib/hooks/useForm.js +5 -3
  143. package/lib/hooks/useForm.js.map +1 -1
  144. package/lib/hooks/useNormalizedInput.d.ts +11 -0
  145. package/lib/hooks/useNormalizedInput.js +20 -0
  146. package/lib/hooks/useNormalizedInput.js.map +1 -0
  147. package/lib/hooks/useSWRResource.js +2 -1
  148. package/lib/hooks/useSWRResource.js.map +1 -1
  149. package/lib/services/search/useSearch.js +3 -2
  150. package/lib/services/search/useSearch.js.map +1 -1
  151. package/lib/ui-kit/ControlProps.d.ts +1 -1
  152. package/lib/ui-kit/CurrencyInput/CurrencyInput.d.ts +2 -2
  153. package/lib/ui-kit/CurrencyInput/CurrencyInput.js +3 -16
  154. package/lib/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
  155. package/lib/ui-kit/Heading/Heading.fixture.d.ts +1 -0
  156. package/lib/ui-kit/Heading/Heading.fixture.mobile.d.ts +1 -0
  157. package/lib/ui-kit/Input/Input.d.ts +1 -1
  158. package/lib/ui-kit/Input/Input.js +3 -2
  159. package/lib/ui-kit/Input/Input.js.map +1 -1
  160. package/lib/ui-kit/Input/InputProps.d.ts +4 -5
  161. package/lib/ui-kit/InputRange/InputRange.js +10 -12
  162. package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  163. package/lib/ui-kit/InputRange/InputRangeProps.d.ts +2 -4
  164. package/lib/ui-kit/LinkButton/LinkButton.fixture.d.ts +1 -0
  165. package/lib/ui-kit/NumberInput/NumberInput.d.ts +8 -0
  166. package/lib/ui-kit/NumberInput/NumberInput.fixture.d.ts +7 -0
  167. package/lib/ui-kit/NumberInput/NumberInput.js +20 -0
  168. package/lib/ui-kit/NumberInput/NumberInput.js.map +1 -0
  169. package/lib/ui-kit/PhoneInput/PhoneInput.d.ts +1 -1
  170. package/lib/ui-kit/PhoneInput/PhoneInput.js +2 -2
  171. package/lib/ui-kit/PhoneInput/PhoneInput.js.map +1 -1
  172. package/lib/ui-kit/RichText/RichText.fixture.d.ts +1 -0
  173. package/lib/ui-kit/SearchDialog/SearchDialog.js +1 -1
  174. package/lib/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  175. package/lib/ui-kit/Select/Select.fixture.d.ts +1 -0
  176. package/lib/ui-kit/SlideCheckbox/SlideCheckbox.fixture.d.ts +1 -0
  177. package/lib/ui-kit/SlideCheckboxGroup/SlideCheckboxGroup.js +5 -3
  178. package/lib/ui-kit/SlideCheckboxGroup/SlideCheckboxGroup.js.map +1 -1
  179. package/lib/ui-kit/Tags/Tags.fixture.d.ts +1 -0
  180. package/lib/utils/identity.d.ts +1 -0
  181. package/lib/utils/identity.js +2 -0
  182. package/lib/utils/identity.js.map +1 -0
  183. package/lib/utils/toLocalNumberFormat.d.ts +1 -0
  184. package/lib/utils/toLocalNumberFormat.js +5 -0
  185. package/lib/utils/toLocalNumberFormat.js.map +1 -0
  186. package/mobile/bundle/bundle.umd.js +44 -39
  187. package/mobile/bundle/bundle.umd.min.js +1 -1
  188. package/mobile/bundle/components/Filtration/FiltrationContent.d.ts +2 -6
  189. package/mobile/bundle/components/OfficeMap/useOfficeMap.d.ts +2 -0
  190. package/mobile/bundle/hooks/useForm.d.ts +8 -4
  191. package/mobile/bundle/hooks/useNormalizedInput.d.ts +11 -0
  192. package/mobile/bundle/ui-kit/ControlProps.d.ts +1 -1
  193. package/mobile/bundle/ui-kit/CurrencyInput/CurrencyInput.d.ts +2 -2
  194. package/mobile/bundle/ui-kit/Input/Input.d.ts +1 -1
  195. package/mobile/bundle/ui-kit/Input/InputProps.d.ts +4 -5
  196. package/mobile/bundle/ui-kit/InputRange/InputRangeProps.d.ts +2 -4
  197. package/mobile/bundle/ui-kit/NumberInput/NumberInput.d.ts +8 -0
  198. package/mobile/bundle/ui-kit/PhoneInput/PhoneInput.d.ts +1 -1
  199. package/mobile/bundle/utils/identity.d.ts +1 -0
  200. package/mobile/bundle/utils/toLocalNumberFormat.d.ts +1 -0
  201. package/mobile/dist/components/ApplicationForm/ApplicationFormDeposit.js +1 -1
  202. package/mobile/dist/components/ApplicationForm/ApplicationFormDeposit.js.map +1 -1
  203. package/mobile/dist/components/ApplicationForm/renderAcquiringDataOrganization.js +1 -1
  204. package/mobile/dist/components/ApplicationForm/renderAcquiringDataOrganization.js.map +1 -1
  205. package/mobile/dist/components/ApplicationForm/renderBusinessCardDataOrganization.js +1 -1
  206. package/mobile/dist/components/ApplicationForm/renderBusinessCardDataOrganization.js.map +1 -1
  207. package/mobile/dist/components/ApplicationForm/renderCreditDataOrganization.js +1 -1
  208. package/mobile/dist/components/ApplicationForm/renderCreditDataOrganization.js.map +1 -1
  209. package/mobile/dist/components/ApplicationForm/renderWedDataOrganization.js +1 -1
  210. package/mobile/dist/components/ApplicationForm/renderWedDataOrganization.js.map +1 -1
  211. package/mobile/dist/components/Calculator/CalculatorValueBlock.js +2 -2
  212. package/mobile/dist/components/Calculator/CalculatorValueBlock.js.map +1 -1
  213. package/mobile/dist/components/Calculator/renderInitialFeeInput.js +3 -3
  214. package/mobile/dist/components/Calculator/renderInitialFeeInput.js.map +1 -1
  215. package/mobile/dist/components/Calculator/renderProposal.js +2 -2
  216. package/mobile/dist/components/Calculator/renderProposal.js.map +1 -1
  217. package/mobile/dist/components/Calculator/renderRealEstateValue.js +2 -2
  218. package/mobile/dist/components/Calculator/renderRealEstateValue.js.map +1 -1
  219. package/mobile/dist/components/Calculator/renderWantedSumInput.js +3 -3
  220. package/mobile/dist/components/Calculator/renderWantedSumInput.js.map +1 -1
  221. package/mobile/dist/components/CardTransfer/CardTransfer.js +10 -8
  222. package/mobile/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  223. package/mobile/dist/components/ContentPage/ContentPage.page.json +0 -1
  224. package/mobile/dist/components/Filtration/Filtration.js +1 -1
  225. package/mobile/dist/components/Filtration/Filtration.js.map +1 -1
  226. package/mobile/dist/components/Filtration/FiltrationContent.d.ts +2 -6
  227. package/mobile/dist/components/Filtration/renderFormItem.js.map +1 -1
  228. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  229. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  230. package/mobile/dist/components/OfficeMap/OfficeMap.js +2 -2
  231. package/mobile/dist/components/OfficeMap/OfficeMap.js.map +1 -1
  232. package/mobile/dist/components/OfficeMap/useOfficeMap.d.ts +2 -0
  233. package/mobile/dist/components/OfficeMap/useOfficeMap.js +1 -2
  234. package/mobile/dist/components/OfficeMap/useOfficeMap.js.map +1 -1
  235. package/mobile/dist/components/PictureText/PictureText.js +2 -2
  236. package/mobile/dist/components/PictureText/PictureText.js.map +1 -1
  237. package/mobile/dist/hooks/useForm.d.ts +8 -4
  238. package/mobile/dist/hooks/useForm.js +5 -3
  239. package/mobile/dist/hooks/useForm.js.map +1 -1
  240. package/mobile/dist/hooks/useNormalizedInput.d.ts +11 -0
  241. package/mobile/dist/hooks/useNormalizedInput.js +23 -0
  242. package/mobile/dist/hooks/useNormalizedInput.js.map +1 -0
  243. package/mobile/dist/hooks/useSWRResource.js +2 -1
  244. package/mobile/dist/hooks/useSWRResource.js.map +1 -1
  245. package/mobile/dist/services/search/useSearch.js +3 -2
  246. package/mobile/dist/services/search/useSearch.js.map +1 -1
  247. package/mobile/dist/ui-kit/ControlProps.d.ts +1 -1
  248. package/mobile/dist/ui-kit/CurrencyInput/CurrencyInput.d.ts +2 -2
  249. package/mobile/dist/ui-kit/CurrencyInput/CurrencyInput.js +3 -16
  250. package/mobile/dist/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
  251. package/mobile/dist/ui-kit/Input/Input.d.ts +1 -1
  252. package/mobile/dist/ui-kit/Input/Input.js +3 -2
  253. package/mobile/dist/ui-kit/Input/Input.js.map +1 -1
  254. package/mobile/dist/ui-kit/Input/InputProps.d.ts +4 -5
  255. package/mobile/dist/ui-kit/InputRange/InputRange.js +9 -11
  256. package/mobile/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  257. package/mobile/dist/ui-kit/InputRange/InputRangeProps.d.ts +2 -4
  258. package/mobile/dist/ui-kit/NumberInput/NumberInput.d.ts +8 -0
  259. package/mobile/dist/ui-kit/NumberInput/NumberInput.js +22 -0
  260. package/mobile/dist/ui-kit/NumberInput/NumberInput.js.map +1 -0
  261. package/mobile/dist/ui-kit/PhoneInput/PhoneInput.d.ts +1 -1
  262. package/mobile/dist/ui-kit/PhoneInput/PhoneInput.js +2 -2
  263. package/mobile/dist/ui-kit/PhoneInput/PhoneInput.js.map +1 -1
  264. package/mobile/dist/ui-kit/SearchDialog/SearchDialog.js +1 -1
  265. package/mobile/dist/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  266. package/mobile/dist/ui-kit/SlideCheckboxGroup/SlideCheckboxGroup.js +5 -3
  267. package/mobile/dist/ui-kit/SlideCheckboxGroup/SlideCheckboxGroup.js.map +1 -1
  268. package/mobile/dist/utils/identity.d.ts +1 -0
  269. package/mobile/dist/utils/identity.js +5 -0
  270. package/mobile/dist/utils/identity.js.map +1 -0
  271. package/mobile/dist/utils/toLocalNumberFormat.d.ts +1 -0
  272. package/mobile/dist/utils/toLocalNumberFormat.js +8 -0
  273. package/mobile/dist/utils/toLocalNumberFormat.js.map +1 -0
  274. package/mobile/lib/common.css +1 -1
  275. package/mobile/lib/components/ApplicationForm/ApplicationFormDeposit.js +1 -1
  276. package/mobile/lib/components/ApplicationForm/ApplicationFormDeposit.js.map +1 -1
  277. package/mobile/lib/components/ApplicationForm/renderAcquiringDataOrganization.js +1 -1
  278. package/mobile/lib/components/ApplicationForm/renderAcquiringDataOrganization.js.map +1 -1
  279. package/mobile/lib/components/ApplicationForm/renderBusinessCardDataOrganization.js +1 -1
  280. package/mobile/lib/components/ApplicationForm/renderBusinessCardDataOrganization.js.map +1 -1
  281. package/mobile/lib/components/ApplicationForm/renderCreditDataOrganization.js +1 -1
  282. package/mobile/lib/components/ApplicationForm/renderCreditDataOrganization.js.map +1 -1
  283. package/mobile/lib/components/ApplicationForm/renderWedDataOrganization.js +1 -1
  284. package/mobile/lib/components/ApplicationForm/renderWedDataOrganization.js.map +1 -1
  285. package/mobile/lib/components/Calculator/CalculatorValueBlock.js +2 -2
  286. package/mobile/lib/components/Calculator/CalculatorValueBlock.js.map +1 -1
  287. package/mobile/lib/components/Calculator/renderInitialFeeInput.js +3 -3
  288. package/mobile/lib/components/Calculator/renderInitialFeeInput.js.map +1 -1
  289. package/mobile/lib/components/Calculator/renderProposal.js +2 -2
  290. package/mobile/lib/components/Calculator/renderProposal.js.map +1 -1
  291. package/mobile/lib/components/Calculator/renderRealEstateValue.js +2 -2
  292. package/mobile/lib/components/Calculator/renderRealEstateValue.js.map +1 -1
  293. package/mobile/lib/components/Calculator/renderWantedSumInput.js +3 -3
  294. package/mobile/lib/components/Calculator/renderWantedSumInput.js.map +1 -1
  295. package/mobile/lib/components/CardTransfer/CardTransfer.js +10 -8
  296. package/mobile/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  297. package/mobile/lib/components/ContentPage/ContentPage.page.json +0 -1
  298. package/mobile/lib/components/Filtration/Filtration.js +1 -1
  299. package/mobile/lib/components/Filtration/Filtration.js.map +1 -1
  300. package/mobile/lib/components/Filtration/FiltrationContent.d.ts +2 -6
  301. package/mobile/lib/components/Filtration/renderFormItem.js.map +1 -1
  302. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +2 -2
  303. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  304. package/mobile/lib/components/OfficeMap/OfficeMap.js +2 -2
  305. package/mobile/lib/components/OfficeMap/OfficeMap.js.map +1 -1
  306. package/mobile/lib/components/OfficeMap/useOfficeMap.d.ts +2 -0
  307. package/mobile/lib/components/OfficeMap/useOfficeMap.js +1 -2
  308. package/mobile/lib/components/OfficeMap/useOfficeMap.js.map +1 -1
  309. package/mobile/lib/components/PictureText/PictureText.js +2 -2
  310. package/mobile/lib/components/PictureText/PictureText.js.map +1 -1
  311. package/mobile/lib/hooks/useForm.d.ts +8 -4
  312. package/mobile/lib/hooks/useForm.js +5 -3
  313. package/mobile/lib/hooks/useForm.js.map +1 -1
  314. package/mobile/lib/hooks/useNormalizedInput.d.ts +11 -0
  315. package/mobile/lib/hooks/useNormalizedInput.js +20 -0
  316. package/mobile/lib/hooks/useNormalizedInput.js.map +1 -0
  317. package/mobile/lib/hooks/useSWRResource.js +2 -1
  318. package/mobile/lib/hooks/useSWRResource.js.map +1 -1
  319. package/mobile/lib/services/search/useSearch.js +3 -2
  320. package/mobile/lib/services/search/useSearch.js.map +1 -1
  321. package/mobile/lib/ui-kit/ControlProps.d.ts +1 -1
  322. package/mobile/lib/ui-kit/CurrencyInput/CurrencyInput.d.ts +2 -2
  323. package/mobile/lib/ui-kit/CurrencyInput/CurrencyInput.js +3 -16
  324. package/mobile/lib/ui-kit/CurrencyInput/CurrencyInput.js.map +1 -1
  325. package/mobile/lib/ui-kit/Input/Input.d.ts +1 -1
  326. package/mobile/lib/ui-kit/Input/Input.js +3 -2
  327. package/mobile/lib/ui-kit/Input/Input.js.map +1 -1
  328. package/mobile/lib/ui-kit/Input/InputProps.d.ts +4 -5
  329. package/mobile/lib/ui-kit/InputRange/InputRange.js +10 -12
  330. package/mobile/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  331. package/mobile/lib/ui-kit/InputRange/InputRangeProps.d.ts +2 -4
  332. package/mobile/lib/ui-kit/NumberInput/NumberInput.d.ts +8 -0
  333. package/mobile/lib/ui-kit/NumberInput/NumberInput.js +20 -0
  334. package/mobile/lib/ui-kit/NumberInput/NumberInput.js.map +1 -0
  335. package/mobile/lib/ui-kit/PhoneInput/PhoneInput.d.ts +1 -1
  336. package/mobile/lib/ui-kit/PhoneInput/PhoneInput.js +2 -2
  337. package/mobile/lib/ui-kit/PhoneInput/PhoneInput.js.map +1 -1
  338. package/mobile/lib/ui-kit/SearchDialog/SearchDialog.js +1 -1
  339. package/mobile/lib/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  340. package/mobile/lib/ui-kit/SlideCheckboxGroup/SlideCheckboxGroup.js +5 -3
  341. package/mobile/lib/ui-kit/SlideCheckboxGroup/SlideCheckboxGroup.js.map +1 -1
  342. package/mobile/lib/utils/identity.d.ts +1 -0
  343. package/mobile/lib/utils/identity.js +2 -0
  344. package/mobile/lib/utils/identity.js.map +1 -0
  345. package/mobile/lib/utils/toLocalNumberFormat.d.ts +1 -0
  346. package/mobile/lib/utils/toLocalNumberFormat.js +5 -0
  347. package/mobile/lib/utils/toLocalNumberFormat.js.map +1 -0
  348. package/mobile/src/components/ApplicationForm/ApplicationFormDeposit.tsx +2 -2
  349. package/mobile/src/components/ApplicationForm/renderAcquiringDataOrganization.tsx +4 -4
  350. package/mobile/src/components/ApplicationForm/renderBusinessCardDataOrganization.tsx +4 -4
  351. package/mobile/src/components/ApplicationForm/renderCreditDataOrganization.tsx +6 -10
  352. package/mobile/src/components/ApplicationForm/renderWedDataOrganization.tsx +4 -4
  353. package/mobile/src/components/Calculator/CalculatorValueBlock.tsx +2 -2
  354. package/mobile/src/components/Calculator/renderInitialFeeInput.tsx +3 -3
  355. package/mobile/src/components/Calculator/renderProposal.tsx +2 -2
  356. package/mobile/src/components/Calculator/renderRealEstateValue.tsx +2 -2
  357. package/mobile/src/components/Calculator/renderWantedSumInput.tsx +3 -3
  358. package/mobile/src/components/CardTransfer/CardTransfer.tsx +16 -12
  359. package/mobile/src/components/ContentPage/ContentPage.page.json +0 -1
  360. package/mobile/src/components/Filtration/Filtration.tsx +1 -1
  361. package/mobile/src/components/Filtration/FiltrationContent.ts +2 -7
  362. package/mobile/src/components/Filtration/renderFormItem.tsx +1 -1
  363. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +2 -2
  364. package/mobile/src/components/OfficeMap/OfficeMap.tsx +2 -2
  365. package/mobile/src/components/OfficeMap/useOfficeMap.ts +1 -3
  366. package/mobile/src/components/PictureText/PictureText.tsx +2 -2
  367. package/mobile/src/hooks/useForm.ts +16 -8
  368. package/mobile/src/hooks/useNormalizedInput.ts +33 -0
  369. package/mobile/src/hooks/useSWRResource.ts +3 -1
  370. package/mobile/src/services/search/useSearch.ts +3 -2
  371. package/mobile/src/ui-kit/ControlProps.ts +1 -1
  372. package/mobile/src/ui-kit/CurrencyInput/CurrencyInput.tsx +12 -38
  373. package/mobile/src/ui-kit/Input/Input.tsx +33 -16
  374. package/mobile/src/ui-kit/Input/InputProps.ts +4 -5
  375. package/mobile/src/ui-kit/InputRange/InputRange.tsx +43 -49
  376. package/mobile/src/ui-kit/InputRange/InputRangeProps.ts +2 -4
  377. package/mobile/src/ui-kit/NumberInput/NumberInput.tsx +35 -0
  378. package/mobile/src/ui-kit/PhoneInput/PhoneInput.tsx +2 -3
  379. package/mobile/src/ui-kit/SearchDialog/SearchDialog.tsx +1 -1
  380. package/mobile/src/ui-kit/SlideCheckboxGroup/SlideCheckboxGroup.tsx +9 -5
  381. package/mobile/src/utils/identity.ts +1 -0
  382. package/mobile/src/utils/toLocalNumberFormat.ts +7 -0
  383. package/package.json +3 -3
  384. package/src/components/ApplicationForm/ApplicationForm.fixture.tsx +1 -0
  385. package/src/components/ApplicationForm/ApplicationFormDeposit.tsx +2 -2
  386. package/src/components/ApplicationForm/renderAcquiringDataOrganization.tsx +4 -4
  387. package/src/components/ApplicationForm/renderBusinessCardDataOrganization.tsx +4 -4
  388. package/src/components/ApplicationForm/renderCreditDataOrganization.tsx +6 -10
  389. package/src/components/ApplicationForm/renderWedDataOrganization.tsx +4 -4
  390. package/src/components/Bonus/Bonus.fixture.tsx +2 -1
  391. package/src/components/BusinessBlock/BusinessBlock.fixture.tsx +1 -0
  392. package/src/components/ButtonBlock/ButtonBlock.fixture.tsx +1 -0
  393. package/src/components/Calculator/Calculator.fixture.tsx +1 -1
  394. package/src/components/Calculator/CalculatorValueBlock.tsx +2 -2
  395. package/src/components/Calculator/renderInitialFeeInput.tsx +3 -3
  396. package/src/components/Calculator/renderProposal.tsx +2 -2
  397. package/src/components/Calculator/renderRealEstateValue.tsx +2 -2
  398. package/src/components/Calculator/renderWantedSumInput.tsx +3 -3
  399. package/src/components/CardTransfer/CardTransfer.fixture.tsx +1 -0
  400. package/src/components/CardTransfer/CardTransfer.tsx +16 -12
  401. package/src/components/Carousel/Carousel.fixture.mobile.tsx +2 -1
  402. package/src/components/Carousel/Carousel.fixture.tsx +2 -1
  403. package/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.fixture.tsx +2 -0
  404. package/src/components/CarouselCard/CarouselCard.fixture.tsx +1 -0
  405. package/src/components/CarouselCatalogCard/CarouselCatalogCard.fixture.tsx +2 -0
  406. package/src/components/CarouselEventCard/CarouselEventCard.fixture.tsx +3 -1
  407. package/src/components/CarouselInvestmentCard/CarouselInvestmentCard.fixture.tsx +2 -1
  408. package/src/components/CarouselLinks/CarouselLinks.fixture.tsx +2 -0
  409. package/src/components/CarouselProductCard/CarouselProductCard.fixture.tsx +2 -0
  410. package/src/components/CarouselProgramsCard/CarouselProgramsCard.fixture.tsx +2 -0
  411. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.fixture.mobile.tsx +2 -1
  412. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.fixture.tsx +2 -1
  413. package/src/components/CarouselRichTextCard/CarouselRichTextCard.fixture.tsx +2 -0
  414. package/src/components/CarouselTariffsCard/CarouselTariffsCard.fixture.mobile.tsx +2 -0
  415. package/src/components/CarouselTariffsCard/CarouselTariffsCard.fixture.tsx +2 -0
  416. package/src/components/ComparisonTable/ComparisonTable.fixture.mobile.tsx +2 -1
  417. package/src/components/ComparisonTable/ComparisonTable.fixture.tsx +2 -1
  418. package/src/components/ContactsBlock/ContactsBlock.fixture.tsx +2 -7
  419. package/src/components/ContentPage/ContentPage.page.json +0 -1
  420. package/src/components/ErrorBlock/ErrorBlock.fixture.tsx +2 -1
  421. package/src/components/ExchangeRateOffice/ExchangeRateOffice.fixture.tsx +1 -0
  422. package/src/components/Filtration/Filtration.fixture.tsx +2 -0
  423. package/src/components/Filtration/Filtration.tsx +1 -1
  424. package/src/components/Filtration/FiltrationContent.ts +2 -7
  425. package/src/components/Filtration/renderFormItem.tsx +1 -1
  426. package/src/components/Footer/Footer.fixture.mobile.tsx +1 -0
  427. package/src/components/Footer/Footer.fixture.tsx +1 -0
  428. package/src/components/Header/Header.fixture.mobile.tsx +1 -0
  429. package/src/components/Header/Header.fixture.tsx +1 -0
  430. package/src/components/Headline/Headline.fixture.mobile.tsx +2 -1
  431. package/src/components/Headline/Headline.fixture.tsx +2 -1
  432. package/src/components/HorizontalLayout/HorizontalLayout.fixture.tsx +2 -1
  433. package/src/components/ImgBlock/ImgBlock.fixture.mobile.tsx +2 -1
  434. package/src/components/ImgBlock/ImgBlock.fixture.tsx +2 -1
  435. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.tsx +1 -0
  436. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +2 -2
  437. package/src/components/InvestmentInfo/InvestmentInfo.fixture.tsx +1 -0
  438. package/src/components/LinkDocs/LinkDocs.fixture.mobile.tsx +1 -0
  439. package/src/components/LinkDocs/LinkDocs.fixture.tsx +1 -0
  440. package/src/components/LinkList/LinkList.fixture.tsx +1 -0
  441. package/src/components/MobileAppTile/MobileAppTile.fixture.tsx +2 -1
  442. package/src/components/OfficeMap/OfficeMap.fixture.tsx +1 -0
  443. package/src/components/OfficeMap/OfficeMap.tsx +2 -2
  444. package/src/components/OfficeMap/useOfficeMap.ts +1 -3
  445. package/src/components/OfficeServicesBlock/OfficeServicesBlock.fixture.tsx +1 -0
  446. package/src/components/ParagraphBlock/ParagraphBlock.fixture.tsx +1 -0
  447. package/src/components/PictureText/PictureText.fixture.tsx +2 -1
  448. package/src/components/PictureText/PictureText.tsx +2 -2
  449. package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +2 -1
  450. package/src/components/ProductBlock/ProductBlock.fixture.tsx +2 -1
  451. package/src/components/ProductGallery/ProductGallery.fixture.tsx +2 -1
  452. package/src/components/ProductTile/ProductTile.fixture.tsx +2 -1
  453. package/src/components/PromoTile/PromoTile.fixture.tsx +1 -0
  454. package/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.fixture.tsx +1 -0
  455. package/src/components/RichTextBlock/RichTextBlock.fixture.mobile.tsx +1 -0
  456. package/src/components/RichTextBlock/RichTextBlock.fixture.tsx +1 -0
  457. package/src/components/RollupItem/RollupItem.fixture.mobile.tsx +2 -1
  458. package/src/components/RollupItem/RollupItem.fixture.tsx +2 -0
  459. package/src/components/SafeDepositRental/SafeDepositRental.fixture.tsx +1 -0
  460. package/src/components/StepsBlock/StepsBlock.fixture.mobile.tsx +1 -0
  461. package/src/components/StepsBlock/StepsBlock.fixture.tsx +1 -0
  462. package/src/components/SwipeListControlBlock/SwipeListControlBlock.fixture.tsx +2 -0
  463. package/src/components/Tabs/Tabs.fixture.tsx +1 -0
  464. package/src/components/TariffsTable/TariffsTable.fixture.mobile.tsx +1 -0
  465. package/src/components/TariffsTable/TariffsTable.fixture.tsx +1 -0
  466. package/src/components/TextBlock/TextBlock.fixture.mobile.tsx +2 -1
  467. package/src/components/TextBlock/TextBlock.fixture.tsx +2 -1
  468. package/src/components/Tile/Tile.fixture.tsx +2 -1
  469. package/src/components/VerticalLayout/VerticalLayout.fixture.mobile.tsx +2 -1
  470. package/src/components/VerticalLayout/VerticalLayout.fixture.tsx +2 -1
  471. package/src/components/Video/Video.fixture.tsx +2 -0
  472. package/src/hooks/useForm.ts +16 -8
  473. package/src/hooks/useNormalizedInput.ts +33 -0
  474. package/src/hooks/useSWRResource.ts +3 -1
  475. package/src/services/search/useSearch.ts +3 -2
  476. package/src/ui-kit/Button/Button.fixture.tsx +1 -0
  477. package/src/ui-kit/ControlProps.ts +1 -1
  478. package/src/ui-kit/CurrencyInput/CurrencyInput.tsx +12 -38
  479. package/src/ui-kit/Heading/Heading.fixture.mobile.tsx +2 -0
  480. package/src/ui-kit/Heading/Heading.fixture.tsx +2 -0
  481. package/src/ui-kit/Icon/Icon.fixture.tsx +2 -1
  482. package/src/ui-kit/Input/Input.tsx +33 -16
  483. package/src/ui-kit/Input/InputProps.ts +4 -5
  484. package/src/ui-kit/InputRange/InputRange.tsx +43 -49
  485. package/src/ui-kit/InputRange/InputRangeProps.ts +2 -4
  486. package/src/ui-kit/LinkButton/LinkButton.fixture.tsx +2 -0
  487. package/src/ui-kit/List/List.fixture.tsx +1 -0
  488. package/src/ui-kit/LocationDialog/LocationDialog.fixture.tsx +2 -1
  489. package/src/ui-kit/NumberInput/NumberInput.fixture.tsx +31 -0
  490. package/src/ui-kit/NumberInput/NumberInput.tsx +35 -0
  491. package/src/ui-kit/PhoneInput/PhoneInput.tsx +2 -3
  492. package/src/ui-kit/RadioButtonGroup/RadioButtonGroup.fixture.tsx +1 -0
  493. package/src/ui-kit/RichText/RichText.fixture.tsx +2 -0
  494. package/src/ui-kit/SearchDialog/SearchDialog.tsx +1 -1
  495. package/src/ui-kit/Select/Select.fixture.tsx +2 -0
  496. package/src/ui-kit/SlideCheckbox/SlideCheckbox.fixture.tsx +2 -0
  497. package/src/ui-kit/SlideCheckboxGroup/SlideCheckboxGroup.tsx +9 -5
  498. package/src/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.tsx +2 -1
  499. package/src/ui-kit/SwipeListControl/SwipeListControl.fixture.tsx +2 -1
  500. package/src/ui-kit/Tags/Tags.fixture.tsx +2 -0
  501. package/src/utils/identity.ts +1 -0
  502. package/src/utils/toLocalNumberFormat.ts +7 -0
  503. package/tailwind.config.cjs +1 -1
  504. package/bundle/ui-kit/CurrencyInput/CurrencyInputProps.d.ts +0 -5
  505. package/bundle/utils/addSpacesBetweenNumbers.d.ts +0 -1
  506. package/dist/ui-kit/CurrencyInput/CurrencyInputProps.d.ts +0 -5
  507. package/dist/ui-kit/CurrencyInput/CurrencyInputProps.js +0 -2
  508. package/dist/ui-kit/CurrencyInput/CurrencyInputProps.js.map +0 -1
  509. package/dist/utils/addSpacesBetweenNumbers.d.ts +0 -1
  510. package/dist/utils/addSpacesBetweenNumbers.js +0 -5
  511. package/dist/utils/addSpacesBetweenNumbers.js.map +0 -1
  512. package/lib/ui-kit/CurrencyInput/CurrencyInputProps.d.ts +0 -5
  513. package/lib/ui-kit/CurrencyInput/CurrencyInputProps.js +0 -2
  514. package/lib/ui-kit/CurrencyInput/CurrencyInputProps.js.map +0 -1
  515. package/lib/utils/addSpacesBetweenNumbers.d.ts +0 -1
  516. package/lib/utils/addSpacesBetweenNumbers.js +0 -2
  517. package/lib/utils/addSpacesBetweenNumbers.js.map +0 -1
  518. package/mobile/bundle/ui-kit/CurrencyInput/CurrencyInputProps.d.ts +0 -5
  519. package/mobile/bundle/utils/addSpacesBetweenNumbers.d.ts +0 -1
  520. package/mobile/dist/ui-kit/CurrencyInput/CurrencyInputProps.d.ts +0 -5
  521. package/mobile/dist/ui-kit/CurrencyInput/CurrencyInputProps.js +0 -2
  522. package/mobile/dist/ui-kit/CurrencyInput/CurrencyInputProps.js.map +0 -1
  523. package/mobile/dist/utils/addSpacesBetweenNumbers.d.ts +0 -1
  524. package/mobile/dist/utils/addSpacesBetweenNumbers.js +0 -5
  525. package/mobile/dist/utils/addSpacesBetweenNumbers.js.map +0 -1
  526. package/mobile/lib/ui-kit/CurrencyInput/CurrencyInputProps.d.ts +0 -5
  527. package/mobile/lib/ui-kit/CurrencyInput/CurrencyInputProps.js +0 -2
  528. package/mobile/lib/ui-kit/CurrencyInput/CurrencyInputProps.js.map +0 -1
  529. package/mobile/lib/utils/addSpacesBetweenNumbers.d.ts +0 -1
  530. package/mobile/lib/utils/addSpacesBetweenNumbers.js +0 -2
  531. package/mobile/lib/utils/addSpacesBetweenNumbers.js.map +0 -1
  532. package/mobile/src/components/Gallery/Gallery.ui.json +0 -1
  533. package/mobile/src/components/MiniGallery/MiniGallery.ui.json +0 -1
  534. package/mobile/src/ui-kit/CurrencyInput/CurrencyInputProps.ts +0 -6
  535. package/mobile/src/utils/addSpacesBetweenNumbers.ts +0 -2
  536. package/src/components/Gallery/Gallery.ui.json +0 -1
  537. package/src/components/MiniGallery/MiniGallery.ui.json +0 -1
  538. package/src/ui-kit/CurrencyInput/CurrencyInputProps.ts +0 -6
  539. package/src/utils/addSpacesBetweenNumbers.ts +0 -2
@@ -0,0 +1,44 @@
1
+ export const description = 'v0.10.10';
2
+
3
+ export default (uniPath, content) => {
4
+ if (!content?.blocks) {
5
+ return content;
6
+ }
7
+
8
+ for (const block of content.blocks) {
9
+ adjustCarouselRecommendationCardTitle(block, uniPath);
10
+ }
11
+
12
+ return { ...content };
13
+ };
14
+
15
+ function adjustCarouselRecommendationCardTitle(block, uniPath) {
16
+ if (!block.blocks) {
17
+ return;
18
+ }
19
+ const headlineBlock = block.blocks.find((b) => b.type === 'Headline');
20
+ const carouselBlock = block.blocks.find((b) => b.type === 'Carousel');
21
+
22
+ if (
23
+ headlineBlock &&
24
+ headlineBlock.content &&
25
+ headlineBlock.content.title === 'Также интересуются' &&
26
+ carouselBlock &&
27
+ carouselBlock.blocks
28
+ ) {
29
+ const investmentBlock = carouselBlock.blocks.find(
30
+ (b) =>
31
+ b.type === 'CarouselRecommendationCard' &&
32
+ b.content &&
33
+ b.content.title.startsWith('Инвестиции'),
34
+ );
35
+
36
+ if (investmentBlock) {
37
+ investmentBlock.content.title = 'Вклады и счета';
38
+ }
39
+ } else {
40
+ for (const childBlock of block.blocks) {
41
+ adjustCarouselRecommendationCardTitle(childBlock, uniPath);
42
+ }
43
+ }
44
+ }
@@ -359,21 +359,24 @@
359
359
  };
360
360
  const Heading = JSX(({ className = '', headingType = 'h3', as: Tag = 'h3', title, children }) => (jsx(Tag, { className: `font-sans m-0 ${styles$4[headingType]} ${className}`, children: title || children })));
361
361
 
362
+ const identity = (_) => _;
363
+
362
364
  const useForm = (initialState, onSubmit) => {
363
365
  const [formState, setFormState] = useState(initialState);
364
366
  const [isDirtyForm, setDirtyForm] = useState(false);
365
367
  const [dirtyFieldsMap, setDirtyFieldsMap] = useState({});
366
368
  const handlersMap = useRef({});
367
- const field = useCallback((fieldName) => {
369
+ const field = useCallback((fieldName, options) => {
370
+ const { parse = identity, format = identity } = options || {};
368
371
  if (!handlersMap.current) {
369
372
  handlersMap.current = {};
370
373
  }
371
374
  handlersMap.current[fieldName] ||= (value) => {
372
- setFormState((prev) => ({ ...prev, [fieldName]: value }));
375
+ setFormState((prev) => ({ ...prev, [fieldName]: parse(value) }));
373
376
  setDirtyFieldsMap((prev) => ({ ...prev, [fieldName]: true }));
374
377
  };
375
378
  return {
376
- value: formState[fieldName],
379
+ value: format(formState[fieldName]),
377
380
  isDirty: isDirtyForm || dirtyFieldsMap[fieldName],
378
381
  onChange: handlersMap.current[fieldName],
379
382
  };
@@ -406,44 +409,50 @@
406
409
  const isValidationSuccess = (info) => !info?.length;
407
410
  const validator = (predicate) => (message) => (_) => predicate(_) ? [] : [message];
408
411
 
409
- const consistentDataMap = new Map();
410
- function useAsyncData(key, fetcher, { fallback } = {}) {
412
+ const isFilled = (_) => _ !== null && _ !== undefined;
413
+
414
+ const defaultCache = new Map();
415
+ const applyCache = (fetcher, cache = defaultCache) => (key) => {
416
+ const cachedData = cache.get(key);
417
+ if (isFilled(cachedData)) {
418
+ return cachedData;
419
+ }
420
+ const data = fetcher(key);
421
+ if (isFilled(data)) {
422
+ cache.set(key, Promise.resolve(data));
423
+ }
424
+ else {
425
+ cache.delete(key);
426
+ }
427
+ return data;
428
+ };
429
+
430
+ const isSimpleKey = (args) => Boolean(args && Array.isArray(args) && args.length === 1 && typeof args[0] === 'string');
431
+ function useAsyncData(key, fetcher, { fallback, cache } = {}) {
411
432
  const args = useMemo(() => keyToArgs(key), [key]);
412
- const [data, setData] = useState();
413
- const [error, setError] = useState();
414
- const updateData = (_) => {
415
- setData(_);
416
- setError(undefined);
417
- };
418
- const updateError = (_) => {
419
- setData(undefined);
420
- setError(_);
421
- };
422
- const chainToConsistentResult = (_) => {
423
- _.then(rawData => consistentDataMap.get(args) || rawData)
424
- .then(updateData)
425
- .catch(updateError);
426
- };
433
+ const [simpleKey] = isSimpleKey(args) ? args : [];
434
+ const [data, setData] = useState(undefined);
435
+ const [error, setError] = useState(undefined);
427
436
  useEffect(() => {
428
- const isEmptyKey = args.every(_ => _ === null);
437
+ const isEmptyKey = !args.some(isFilled);
429
438
  if (isEmptyKey) {
430
439
  return;
431
440
  }
432
- try {
433
- const _ = fetcher(...args);
434
- if ('then' in _) {
435
- chainToConsistentResult(_);
441
+ (async () => {
442
+ try {
443
+ const newData = await (simpleKey
444
+ ? applyCache(fetcher, cache)(simpleKey)
445
+ : fetcher(...args));
446
+ setData(newData);
447
+ setError(undefined);
436
448
  }
437
- else {
438
- updateData(_);
449
+ catch (err) {
450
+ setData(undefined);
451
+ setError(err);
439
452
  }
440
- }
441
- catch (err) {
442
- updateError(err);
443
- }
444
- }, [fetcher, ...args]);
445
- const simpleKey = args[0];
446
- const fallbackData = fallback && typeof simpleKey === 'string' && fallback[simpleKey];
453
+ })();
454
+ }, [fetcher, cache, args]);
455
+ const fallbackData = fallback && simpleKey && fallback[simpleKey];
447
456
  return {
448
457
  data: !data && fallbackData ? fallbackData : data,
449
458
  error,
@@ -452,9 +461,6 @@
452
461
  };
453
462
  }
454
463
  function keyToArgs(key) {
455
- if (!key) {
456
- return [key];
457
- }
458
464
  if (Array.isArray(key)) {
459
465
  return key;
460
466
  }
@@ -487,10 +493,10 @@
487
493
  }
488
494
 
489
495
  const REGIONS_URL$1 = '/api/v1/regions';
490
- const EMPTY_VALUE$2 = [];
496
+ const EMPTY_VALUE$3 = [];
491
497
  function useGetRegions() {
492
498
  const { data } = useAsyncData(REGIONS_URL$1, fetchJSONUnsafe);
493
- return data || EMPTY_VALUE$2;
499
+ return data || EMPTY_VALUE$3;
494
500
  }
495
501
 
496
502
  const useDialog = (id = '') => ({
@@ -665,7 +671,7 @@
665
671
  };
666
672
  };
667
673
 
668
- const Input = JSX(({ className = '', inputClassName = '', id, name, type = 'text', label, value = '', valid = true, children, onChange, ...inputProps }) => {
674
+ const Input = JSX(({ key, className = '', inputClassName = '', id, name, type = 'text', label, placeholder, value = '', valid = true, children, onChange, onFocus, onBlur, pattern, }) => {
669
675
  const handleChange = useCallback((e) => {
670
676
  onChange && onChange(e.target?.value || '');
671
677
  }, [onChange]);
@@ -673,7 +679,7 @@
673
679
  const validStyle = valid
674
680
  ? 'border-gray hover:border-primary-hover active:border-primary-text focus:border-primary-text'
675
681
  : 'border-error';
676
- return (jsxs("div", { className: style('relative', className), children: [label ? jsx("label", { className: "block text-m-light mb-2", children: label }) : null, jsx("input", { className: style('w-full border rounded-md text-primary-text outline-none p-4', paddingStyle, validStyle, inputClassName), id: id, name: name || id, type: type, value: value, onInput: handleChange, ...inputProps }), children] }));
682
+ return (jsxs("div", { className: style('relative', className), children: [jsxs("label", { children: [label ? (jsx("div", { className: "mb-2", children: jsx(Text, { size: "text-m", font: "font-light", children: label }) })) : null, jsx("input", { className: style('w-full border rounded-md text-primary-text outline-none p-4', paddingStyle, validStyle, inputClassName), id: id, name: name || id, placeholder: placeholder, type: type, value: value, onInput: handleChange, onFocus: onFocus, onBlur: onBlur, pattern: pattern }, key)] }), children] }));
677
683
  });
678
684
 
679
685
  const InputControl = JSX(({ className, label, value = '', error, onChange, onBlur }) => (jsxs("div", { className: className, children: [jsx(Input, { type: "text", "aria-label": label, label: label, valid: Boolean(!error), value: value, onChange: onChange, onBlur: onBlur }), jsx("div", { className: "h-2", children: error ? (jsx(Text, { size: "text-xs-light", color: "text-error", children: error })) : null })] })));
@@ -693,8 +699,8 @@
693
699
  }
694
700
 
695
701
  const PhoneInput = JSX(({ children, onChange, ...inputProps }) => {
696
- const handleChange = useCallback(({ target: { value } }) => onChange && onChange(normalizePhone(value || '')), [onChange]);
697
- return (jsx(Input, { onInput: handleChange, onFocus: handleChange, ...inputProps, children: children }));
702
+ const handleChange = useCallback((value) => onChange && onChange(normalizePhone(value)), [onChange]);
703
+ return (jsx(Input, { onChange: handleChange, onFocus: handleChange, ...inputProps, children: children }));
698
704
  });
699
705
 
700
706
  const PhoneInputControl = JSX(({ className, label, value, error, onChange, onBlur }) => (jsxs("div", { className: className, children: [jsx(PhoneInput, { "aria-label": label, label: label, valid: Boolean(!error), value: value, onChange: onChange, onBlur: onBlur }), jsx("div", { className: "h-2", children: error ? (jsx(Text, { size: "text-xs-light", color: "text-error", children: error })) : null })] })));
@@ -709,7 +715,7 @@
709
715
  const innValidator = validator((_) => typeof _ === 'string' && (_.length === 10 || _.length === 12))(ERROR_MESSAGE);
710
716
  const phoneValidator = pattern(/^(\+7)?[\s-]?\(?[0-9]{3}\)?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$/)(ERROR_MESSAGE);
711
717
 
712
- const renderAcquiringDataOrganization = (field) => (jsxs("div", { className: "flex justify-between gap-5 mb-5", children: [jsxs("div", { className: "w-1/2", children: [jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...withValidator(field('fullName'), defaultValidator) }), jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E", ...withValidator(field('name'), nameValidator) })] }), jsxs("div", { className: "w-1/2", children: [jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u0418\u041D\u041D", ...withValidator(field('inn'), innValidator) }), jsx(PhoneInputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) })] })] }));
718
+ const renderAcquiringDataOrganization = (field) => (jsxs("div", { className: "flex justify-between gap-5 mb-5", children: [jsxs("div", { className: "w-1/2", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...withValidator(field('fullName'), defaultValidator) }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E", ...withValidator(field('name'), nameValidator) })] }), jsxs("div", { className: "w-1/2", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0418\u041D\u041D", ...withValidator(field('inn'), innValidator) }), jsx(PhoneInputControl, { className: "shrink-0 w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) })] })] }));
713
719
 
714
720
  const ACQUIRING_TYPES = [
715
721
  {
@@ -845,7 +851,7 @@
845
851
  return (jsxs("form", { className: "container", onSubmit: formProps.onSubmit, children: [jsx(Heading, { headingType: "h6", title: "\u0412\u0438\u0434 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433\u0430 \u0438 \u0440\u0435\u0433\u0438\u043E\u043D", className: "text-center mb-4" }), renderAcquiringRegion({ regions, field }), jsx(Heading, { headingType: "h6", title: "\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", className: "text-center mb-4" }), renderAcquiringDataOrganization(field), renderSlideCheckboxes(field), renderSubmitButton(button, 'mb-4'), jsx(Footnote, { link: link })] }));
846
852
  });
847
853
 
848
- const renderBusinessCardDataOrganization = (field) => (jsxs("div", { className: "flex justify-between gap-5", children: [jsxs("div", { className: "w-1/2", children: [jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E", ...withValidator(field('name'), nameValidator) }), jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u0418\u041D\u041D", ...withValidator(field('inn'), innValidator) })] }), jsxs("div", { className: "w-1/2", children: [jsx(PhoneInputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) }), jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...withValidator(field('mail'), defaultValidator) })] })] }));
854
+ const renderBusinessCardDataOrganization = (field) => (jsxs("div", { className: "flex justify-between gap-5", children: [jsxs("div", { className: "w-1/2", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E", ...withValidator(field('name'), nameValidator) }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0418\u041D\u041D", ...withValidator(field('inn'), innValidator) })] }), jsxs("div", { className: "w-1/2", children: [jsx(PhoneInputControl, { className: "shrink-0 w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...withValidator(field('mail'), defaultValidator) })] })] }));
849
855
 
850
856
  const renderRegion$1 = ({ regions, field }) => (jsx("div", { className: "flex justify-between gap-5 mb-5", children: jsx("div", { className: "w-full", children: 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.map(({ code = '', name = '' }) => ({ key: code, text: name })), ...withValidator(field('region'), defaultValidator) }) }) }));
851
857
 
@@ -882,14 +888,14 @@
882
888
  });
883
889
 
884
890
  const BRANCHES_URL = '/api/v1/branches';
885
- const EMPTY_VALUE$1 = [];
891
+ const EMPTY_VALUE$2 = [];
886
892
  function useBranches(regionCode) {
887
893
  const { data } = useAsyncData(regionCode ? `${BRANCHES_URL}?regionCode=${regionCode}` : null, fetchSafeBoxes$1);
888
- return data || EMPTY_VALUE$1;
894
+ return data || EMPTY_VALUE$2;
889
895
  }
890
896
  const fetchSafeBoxes$1 = async (url) => {
891
897
  const result = await fetchJSON(url, { method: 'GET' });
892
- return result || EMPTY_VALUE$1;
898
+ return result || EMPTY_VALUE$2;
893
899
  };
894
900
 
895
901
  const MIN_CREDIT_AMOUNT = 1000;
@@ -899,12 +905,34 @@
899
905
  const MAX_CREDIT_TERM = 180;
900
906
  const ITEMS_CREDIT_TERM = ['От 1 мес', 'До 15 лет'];
901
907
 
902
- const renderCreditDataOrganization = (field) => (jsxs("div", { className: "flex justify-between gap-5 mb-7", children: [jsxs("div", { className: "w-1/2", children: [jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...field('fullName') }), jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u0418\u041D\u041D", ...withValidator(field('inn'), innValidator) }), jsx(PhoneInputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) })] }), jsxs("div", { className: "w-1/2", children: [jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u0413\u043E\u0434\u043E\u0432\u0430\u044F \u0432\u044B\u0440\u0443\u0447\u043A\u0430, \u20BD", ...withValidator(field('annualRevenue'), defaultValidator) }), jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E", ...withValidator(field('name'), nameValidator) }), jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...field('mail') })] })] }));
908
+ const renderCreditDataOrganization = (field) => (jsxs("div", { className: "flex justify-between gap-5 mb-7", children: [jsxs("div", { className: "w-1/2", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...field('fullName') }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0418\u041D\u041D", ...withValidator(field('inn'), innValidator) }), jsx(PhoneInputControl, { className: "shrink-0 w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) })] }), jsxs("div", { className: "w-1/2", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0413\u043E\u0434\u043E\u0432\u0430\u044F \u0432\u044B\u0440\u0443\u0447\u043A\u0430, \u20BD", ...withValidator(field('annualRevenue'), defaultValidator) }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E", ...withValidator(field('name'), nameValidator) }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...field('mail') })] })] }));
903
909
 
904
- const addSpacesBetweenNumbers = (number) => new Intl.NumberFormat('ru-RU', {}).format(number);
910
+ const useNormalizedInput = (props, { normalize, format }) => {
911
+ const { value, onFocus, onBlur, onChange } = props;
912
+ const [isFocused, setIsFocused] = useState(false);
913
+ const handleFocus = useCallback((e) => {
914
+ setIsFocused(true);
915
+ onFocus && onFocus(e);
916
+ }, []);
917
+ const handleBlur = useCallback(() => {
918
+ setIsFocused(false);
919
+ onChange && onChange(normalize(value));
920
+ onBlur && onBlur();
921
+ }, [onChange, value]);
922
+ return {
923
+ value: (isFocused || !format ? value : format(value)),
924
+ onFocus: handleFocus,
925
+ onBlur: handleBlur,
926
+ };
927
+ };
905
928
 
906
929
  const clamp = (value, min, max) => Math.max(min, Math.min(value, max));
907
930
 
931
+ const toLocalNumberFormat = (fractionDigits = 0) => (_ = 0) => new Intl.NumberFormat('ru-RU', {
932
+ minimumFractionDigits: 0,
933
+ maximumFractionDigits: fractionDigits,
934
+ }).format(Number(_) || 0);
935
+
908
936
  function parseDecimal(value) {
909
937
  const rawValue = (value || '').replace(/\D/g, '');
910
938
  const unsafeDecimal = parseInt(rawValue, 10);
@@ -926,19 +954,16 @@
926
954
  const DISABLED_INPUT_CLASSES = 'disabled:border-gray disabled:bg-main-divider';
927
955
  const DEFAULT_MIN = 1;
928
956
  const DEFAULT_MAX = 100;
929
- const InputRange = JSX(({ className, title, items = [], list = [], min = list.length ? 0 : DEFAULT_MIN, max = list.length ? list.length - 1 : DEFAULT_MAX, step = 1, value = list[0] || min, disabled = false, onChange, }) => {
930
- const [isFocused, setFocused] = useState(false);
957
+ const InputRange = JSX((props) => {
958
+ const { className, title, items = [], list = [], min = list.length ? 0 : DEFAULT_MIN, max = list.length ? list.length - 1 : DEFAULT_MAX, step = 1, value = list[0] || min, disabled = false, onChange, } = props;
959
+ const normalizedProps = useNormalizedInput(props, {
960
+ normalize: (_ = 0) => list.length ? closestValue(list)(_) : clamp(_, min, max),
961
+ format: toLocalNumberFormat(),
962
+ });
931
963
  const handleChange = useCallback((e) => {
932
964
  onChange && onChange(parseDecimal(e.target?.value));
933
965
  }, [onChange]);
934
- const handleFocus = useCallback(() => {
935
- setFocused(true);
936
- }, []);
937
- const handleBlur = useCallback(() => {
938
- setFocused(false);
939
- onChange && onChange(list.length ? closestValue(list)(value) : clamp(value || 0, min, max));
940
- }, [onChange, value]);
941
- return (jsxs("div", { className: className, children: [jsxs("label", { className: "block relative", children: [title ? (jsx(Text, { size: "text-m", font: "font-light", color: "text-primary-text", children: title })) : null, jsx("input", { className: style('m-0 mt-2 font-sans text-h3 w-full h-14', 'border border-solid border-gray rounded-md outline-none', 'p-0 pl-4 box-border', 'text-primary-text hover:border-primary-hover focus:border-primary-text', DISABLED_INPUT_CLASSES), value: isFocused ? value : addSpacesBetweenNumbers(value), disabled: disabled, onInput: handleChange, onFocus: handleFocus, onBlur: handleBlur }), renderRangeWithTicks({ list, min, max, step, disabled, value, onChange })] }), renderRangeCaption(items)] }));
966
+ return (jsxs("div", { className: className, children: [jsxs("label", { className: "block relative", children: [title ? (jsx(Text, { size: "text-m", font: "font-light", color: "text-primary-text", children: title })) : null, jsx("input", { className: style('m-0 mt-2 font-sans text-h3 w-full h-14', 'border border-solid border-gray rounded-md outline-none', 'p-0 pl-4 box-border', 'text-primary-text hover:border-primary-hover focus:border-primary-text', DISABLED_INPUT_CLASSES), disabled: disabled, onInput: handleChange, ...normalizedProps }), renderRangeWithTicks({ list, min, max, step, disabled, value, onChange })] }), renderRangeCaption(items)] }));
942
967
  });
943
968
  const closestValue = (list) => (_) => list.reduce((prev, curr) => (Math.abs(curr - _) < Math.abs(prev - _) ? curr : prev));
944
969
  const renderRangeCaption = (items) => (jsx("div", { className: "flex justify-between my-2", children: items.map((item, i) => (jsx(Text, { size: "text-s-light", color: "text-secondary-text", children: item }, String(i)))) }));
@@ -1010,7 +1035,7 @@
1010
1035
  });
1011
1036
  }, [onSubmit]);
1012
1037
  const [, { field, ...formProps }] = useForm(initialFormState$1, handleSubmit);
1013
- return (jsxs("form", { className: "container", onSubmit: formProps.onSubmit, children: [jsx(Heading, { headingType: "h6", title: "\u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0437\u0430\u044F\u0432\u043A\u0443 \u0438 \u043C\u044B \u043E\u0442\u0432\u0435\u0442\u0438\u043C \u043D\u0430 \u043B\u044E\u0431\u044B\u0435 \u0432\u043E\u043F\u0440\u043E\u0441\u044B \u043F\u043E \u0434\u0435\u043F\u043E\u0437\u0438\u0442\u0430\u043C", className: "text-center mb-4" }), jsxs("div", { className: "max-w-[560px] m-auto", children: [jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u0418\u043C\u044F", ...withValidator(field('name'), nameValidator) }), jsx(PhoneInputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) })] }), jsxs("div", { className: "flex justify-between items-center max-w-[560px] m-auto", children: [jsx("div", { className: "flex-1", children: jsx(Footnote, { link: link }) }), renderSubmitButton(button)] })] }));
1038
+ return (jsxs("form", { className: "container", onSubmit: formProps.onSubmit, children: [jsx(Heading, { headingType: "h6", title: "\u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0437\u0430\u044F\u0432\u043A\u0443 \u0438 \u043C\u044B \u043E\u0442\u0432\u0435\u0442\u0438\u043C \u043D\u0430 \u043B\u044E\u0431\u044B\u0435 \u0432\u043E\u043F\u0440\u043E\u0441\u044B \u043F\u043E \u0434\u0435\u043F\u043E\u0437\u0438\u0442\u0430\u043C", className: "text-center mb-4" }), jsxs("div", { className: "max-w-[560px] m-auto", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0418\u043C\u044F", ...withValidator(field('name'), nameValidator) }), jsx(PhoneInputControl, { className: "shrink-0 w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) })] }), jsxs("div", { className: "flex justify-between items-center max-w-[560px] m-auto", children: [jsx("div", { className: "flex-1", children: jsx(Footnote, { link: link }) }), renderSubmitButton(button)] })] }));
1014
1039
  });
1015
1040
 
1016
1041
  const sourcesComparator = (a, b) => a?.media && b?.media ? a.media - b.media : 0;
@@ -1078,7 +1103,7 @@
1078
1103
  return (jsxs("div", { className: "mb-6", children: [jsxs("div", { className: "flex items-center mb-4 gap-6", children: [jsx(Checkbox, { text: "\u0412\u0430\u043B\u044E\u0442\u043D\u044B\u0439 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C", ...field('currencyControl') }), jsx(Checkbox, { text: "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0440\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438", ...field('documentaryOperations') }), jsx(Checkbox, { text: "\u041A\u043E\u043D\u0432\u0435\u0440\u0441\u0438\u043E\u043D\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438", ...field('conversionOperations') })] }), jsx("textarea", { 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, \u043C\u0435\u0441\u0442\u043E \u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0431\u0438\u0437\u043D\u0435\u0441\u0430 \u0438 \u0443\u0434\u043E\u0431\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u0434\u043B\u044F \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u043D\u043E\u0433\u043E \u0437\u0432\u043E\u043D\u043A\u0430", className: "block w-full resize-y min-h-24 p-4 outline-none border rounded-md border-main-stroke hover:border-primary-hover active:focus:border-primary-text", value: textField.value, onInput: ((e) => textField.onChange && textField.onChange(e.target?.value || '')) })] }));
1079
1104
  };
1080
1105
 
1081
- const renderWedDataOrganization = (field) => (jsxs("div", { children: [jsxs("div", { className: "flex justify-between gap-5", children: [jsx("div", { className: "w-1/2", children: jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...withValidator(field('fullName'), defaultValidator) }) }), jsx("div", { className: "w-1/2", children: jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u0424\u0418\u041E", ...withValidator(field('name'), nameValidator) }) })] }), jsxs("div", { className: "flex justify-between gap-5 mb-7", children: [jsx("div", { className: "w-1/2", children: jsx(PhoneInputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) }) }), jsx("div", { className: "w-1/2", children: jsx(InputControl, { className: "shrink-0 text-l w-full mb-3", label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...withValidator(field('mail'), defaultValidator) }) })] })] }));
1106
+ const renderWedDataOrganization = (field) => (jsxs("div", { children: [jsxs("div", { className: "flex justify-between gap-5", children: [jsx("div", { className: "w-1/2", children: jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...withValidator(field('fullName'), defaultValidator) }) }), jsx("div", { className: "w-1/2", children: jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0424\u0418\u041E", ...withValidator(field('name'), nameValidator) }) })] }), jsxs("div", { className: "flex justify-between gap-5 mb-7", children: [jsx("div", { className: "w-1/2", children: jsx(PhoneInputControl, { className: "shrink-0 w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) }) }), jsx("div", { className: "w-1/2", children: jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...withValidator(field('mail'), defaultValidator) }) })] })] }));
1082
1107
 
1083
1108
  const initialFormState = {
1084
1109
  fullName: '',
@@ -1301,7 +1326,7 @@
1301
1326
  return isVisible ? (jsxs("div", { children: [canDec ? (jsx(ArrowButton, { className: `absolute z-40 ${btnClass[0]} ${className}`, onClick: dec, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left", disabled: !canDec })) : null, canInc ? (jsx(ArrowButton, { className: `absolute z-40 rotate-180 ${btnClass[1]} ${className}`, onClick: inc, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right", disabled: !canInc })) : null] })) : null;
1302
1327
  }
1303
1328
 
1304
- const CalculatorValueBlock = JSX(({ title, value, postfix = '', prefix, className = '' }) => (jsxs("div", { className: style('mb-7', className), children: [title ? (jsx(Text, { size: "text-l-light", color: "text-secondary-text", children: title })) : null, value ? (jsx("div", { children: jsxs(Text, { size: "text-h3", children: [prefix, " ", addSpacesBetweenNumbers(Math.round(value)), " ", postfix] }) })) : (jsx("div", { children: jsx(Text, { size: "text-h3", children: "-" }) }))] })));
1329
+ const CalculatorValueBlock = JSX(({ title, value, postfix = '', prefix, className = '' }) => (jsxs("div", { className: style('mb-7', className), children: [title ? (jsx(Text, { size: "text-l-light", color: "text-secondary-text", children: title })) : null, value ? (jsx("div", { children: jsxs(Text, { size: "text-h3", children: [prefix, " ", toLocalNumberFormat(2)(Math.round(value)), " ", postfix] }) })) : (jsx("div", { children: jsx(Text, { size: "text-h3", children: "-" }) }))] })));
1305
1330
 
1306
1331
  const DEFAULT_MIN_SUM = 10000;
1307
1332
  const DEFAULT_MAX_SUM = 5000000;
@@ -1377,8 +1402,8 @@
1377
1402
  const DEFAULT_MONEY_STEP = 1000;
1378
1403
  function renderWantedSumInput({ isShowItems = true, step = DEFAULT_MONEY_STEP, ...rest }) {
1379
1404
  const items = [
1380
- `От ${addSpacesBetweenNumbers(rest.min || 0)} ₽`,
1381
- `До ${addSpacesBetweenNumbers(rest.max || 0)} ₽`,
1405
+ `От ${toLocalNumberFormat(2)(rest.min || 0)} ₽`,
1406
+ `До ${toLocalNumberFormat(2)(rest.max || 0)} ₽`,
1382
1407
  ];
1383
1408
  return jsx(InputRange, { items: isShowItems ? items : [], step: step, ...rest });
1384
1409
  }
@@ -1848,53 +1873,37 @@
1848
1873
  })) }) }), jsx("div", { className: "w-full h-2 bg-primary-main" })] }));
1849
1874
  }
1850
1875
 
1851
- const getSanitizedValue = (_) => _.replace(/\s/g, '');
1852
-
1853
- const adjustValue = (val) => onlyOneDot(setZeroStart(replaceCommaToDot(getSanitizedValue(val))));
1854
- const localNumberFormat = (val) => new Intl.NumberFormat('ru-RU', {
1855
- minimumFractionDigits: 0,
1856
- maximumFractionDigits: 2,
1857
- })
1858
- .format(Number(getSanitizedValue(val)))
1859
- .replace(',', '.');
1860
- const onlyOneDot = (val) => {
1861
- const matches = val.match(/\./g) || [];
1862
- return matches.length > 1 ? val.slice(0, val.lastIndexOf('.')) : val;
1863
- };
1864
- const setZeroStart = (val) => {
1865
- const isZeroStart = val.indexOf('0') === 0 && val.length === 2;
1866
- const newVal = isZeroStart ? val.replace('0', '0.') : val;
1867
- return newVal.startsWith('.') ? newVal.replace('.', '0.') : newVal;
1868
- };
1869
- const replaceCommaToDot = (val) => String(val.replace(',', '.').replace(/[^.\d]/g, ''));
1870
-
1871
- const CurrencyInput = JSX(({ className = '', value = '', onChange, minValue = 0, maxValue = 300000, ...inputProps }) => {
1872
- const handleChange = useCallback((inputValue) => {
1873
- const adjustedVal = adjustValue(inputValue);
1874
- const clampVal = getClampValue(adjustedVal, clamp(Number(adjustedVal), minValue, maxValue));
1875
- onChange && onChange(clampVal);
1876
- }, [onChange]);
1877
- const handleBlur = useCallback(() => {
1878
- onChange && onChange(localNumberFormat(value));
1879
- }, [onChange, value]);
1880
- return (jsx(Input, { className: className, inputClassName: "w-full", value: value, onChange: handleChange, onBlur: handleBlur, ...inputProps, children: jsx("span", { className: "text-xl-light absolute right-4 bottom-4", children: "\u20BD" }) }));
1876
+ const NumberInput = JSX((props) => {
1877
+ const { onChange, min, max, defaultValue = '0', fractionDigits = 0, ...inputProps } = props;
1878
+ const normalizedProps = useNormalizedInput(props, {
1879
+ normalize: (_ = defaultValue) => min && max ? String(clamp(Number(sanitizeNumberStr(_)), min, max)) : sanitizeNumberStr(_),
1880
+ format: toLocalNumberFormat(fractionDigits),
1881
+ });
1882
+ const handleChange = useCallback((_) => onChange && onChange(sanitizeNumberStr(_)), [onChange]);
1883
+ return jsx(Input, { onChange: handleChange, ...inputProps, ...normalizedProps });
1881
1884
  });
1882
- const getClampValue = (val, clampVal) => Number(val) === clampVal ? val : String(clampVal);
1885
+ const sanitizeNumberStr = (_ = '') => _.replaceAll(',', '.')
1886
+ .replace(/[^\d.]/g, '')
1887
+ .replace(/([^.]*\.[^.]*)\./, '$1');
1888
+
1889
+ const CurrencyInput = JSX((props) => (jsx(NumberInput, { ...props, fractionDigits: 2, children: jsx("div", { className: "absolute right-4 bottom-4", children: jsx(Text, { size: "text-xl", font: "font-light", children: "\u20BD" }) }) })));
1883
1890
 
1884
- const AMOUNT_KEY = 'amount';
1885
- const FORM_URL = 'https://www.rshb.ru/p2p/';
1886
1891
  const DEFAULT_TITLE = 'Укажите сумму перевода';
1887
1892
  const DEFAULT_LABEL = 'Сумма перевода';
1888
1893
  const DEFAULT_PLACEHOLDER = '1500';
1894
+ const FORM_URL = 'https://www.rshb.ru/p2p/';
1895
+ const AMOUNT_KEY = 'amount';
1896
+ const INITIAL_FORM_STATE = {
1897
+ [AMOUNT_KEY]: 1500,
1898
+ };
1889
1899
  const CardTransfer = JSX(({ className = '', title = DEFAULT_TITLE, label = DEFAULT_LABEL, placeholder = DEFAULT_PLACEHOLDER, button, ...rest }) => {
1890
- const [value, setValue] = useState('');
1891
- const handleChange = useCallback((_) => setValue(_), []);
1892
- const isDisabled = !Number(getSanitizedValue(value));
1900
+ const [{ amount }, { field }] = useForm(INITIAL_FORM_STATE);
1901
+ const isDisabled = amount <= 0;
1893
1902
  const buttonStyle = isDisabled
1894
1903
  ? getDisabledButtonClasses({ version: button?.version })
1895
1904
  : getRegularButtonClasses({ className: 'text-white', version: button?.version });
1896
1905
  const link = useLink();
1897
- return (jsxs(BlockWrapper, { className: `p-default flex flex-col items-center ${className}`, ...rest, children: [title ? jsx(Heading, { className: "max-w-[684px] pb-9", headingType: "h2", title: title }) : null, jsxs("form", { className: "w-[468px]", method: "POST", action: FORM_URL, children: [jsx(CurrencyInput, { name: AMOUNT_KEY, value: value, onChange: handleChange, valid: value === '' || !isDisabled, placeholder: placeholder, label: label }), button?.text ? (jsx("button", { type: "submit", className: `w-full p-4 mt-6 ${buttonStyle} `, disabled: isDisabled, ...link(button), children: button.text })) : null] })] }));
1906
+ return (jsxs(BlockWrapper, { className: style('p-default flex flex-col items-center', className), ...rest, children: [title ? jsx(Heading, { className: "max-w-[684px] pb-9", headingType: "h2", title: title }) : null, jsxs("form", { className: "w-[468px]", method: "POST", action: FORM_URL, children: [jsx(CurrencyInput, { name: AMOUNT_KEY, valid: !isDisabled, placeholder: placeholder, label: label, ...field(AMOUNT_KEY, { parse: Number, format: String }) }), button?.text ? (jsx("button", { type: "submit", className: style('w-full p-4 mt-6', buttonStyle), disabled: isDisabled, ...link(button), children: button.text })) : null] })] }));
1898
1907
  });
1899
1908
 
1900
1909
  const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
@@ -2748,13 +2757,15 @@
2748
2757
 
2749
2758
  const SlideCheckboxGroup = JSX(({ value, onChange, items = [], multiple }) => {
2750
2759
  const handleChange = (newValue) => {
2760
+ if (!onChange) {
2761
+ return;
2762
+ }
2751
2763
  if (multiple) {
2752
2764
  const hasAlready = value?.includes(newValue);
2753
- onChange &&
2754
- onChange(hasAlready ? value?.filter((v) => v !== newValue) : [...(value || []), newValue]);
2765
+ onChange(hasAlready ? (value || []).filter((v) => v !== newValue) : [...(value || []), newValue]);
2755
2766
  }
2756
2767
  else {
2757
- onChange && onChange(value === newValue ? undefined : newValue);
2768
+ onChange(value === newValue ? '' : newValue);
2758
2769
  }
2759
2770
  };
2760
2771
  return items.map((item) => (jsx(SlideCheckbox, { text: item.title, value: [value].flatMap((_) => _).includes(item.value), onChange: () => handleChange(item.value), type: multiple ? 'checkbox' : 'radio' }, item.value)));
@@ -2779,16 +2790,17 @@
2779
2790
  const initialFiltrationState = {};
2780
2791
  const Filtration = JSX(({ className, filtrationSchema = {}, resetButton, ...rest }) => {
2781
2792
  const [filtrationState, { field, reset }] = useForm(initialFiltrationState);
2782
- return (jsxs(BlockWrapper, { className: style(className), version: "transparent", ...rest, children: [jsxs("form", { className: "flex justify-between bg-white p-9 mb-1", children: [jsx("div", { className: "flex gap-11", children: Object.keys(filtrationSchema).map(renderFormItem(filtrationSchema, field)) }), resetButton ? (jsx("div", { children: jsx(Button, { className: "w-72", onClick: reset, ...resetButton }) })) : null] }), jsx(FiltrationInner, { filtrationState: filtrationState, ...rest })] }));
2793
+ return (jsxs(BlockWrapper, { className: style(className), version: "transparent", ...rest, children: [jsxs("form", { className: "flex justify-between bg-white p-9 mb-1", children: [jsx("div", { className: "flex gap-11", children: Object.keys(filtrationSchema).map(renderFormItem(filtrationSchema, field)) }), resetButton ? (jsx("div", { children: jsx(Button, { className: "w-72 ml-3", onClick: reset, ...resetButton }) })) : null] }), jsx(FiltrationInner, { filtrationState: filtrationState, ...rest })] }));
2783
2794
  });
2784
2795
  Filtration.childrenTypes = ['ProductTile'];
2785
2796
  Filtration.childSchema = (content) => content?.filtrationSchema || {};
2786
2797
 
2798
+ const EMPTY_VALUE$1 = {};
2787
2799
  function useSWRResource(filename, fallback = {}) {
2788
2800
  const { data } = useAsyncData(`/wcms-resources/${filename}.json`, fetchJSONUnsafe, {
2789
2801
  fallback,
2790
2802
  });
2791
- return data || {};
2803
+ return data || EMPTY_VALUE$1;
2792
2804
  }
2793
2805
 
2794
2806
  const ICON_VERSION_MAP = {
@@ -2970,7 +2982,8 @@
2970
2982
  const fillMapWith = (keys, value) => new Map(keys.map((_) => [_, value]));
2971
2983
 
2972
2984
  const SEARCH_INDEX_FILENAME = 'search.index.json';
2973
- const useSearch = ({ basePathList = ['/'], initialQuery = '', wasOpened, }) => {
2985
+ const DEFAULT_BASE_PATH = ['/'];
2986
+ const useSearch = ({ basePathList = DEFAULT_BASE_PATH, initialQuery = '', wasOpened, }) => {
2974
2987
  const [query, setQuery] = useState(initialQuery || '');
2975
2988
  useEffect(() => {
2976
2989
  if (initialQuery !== undefined && initialQuery !== null) {
@@ -2978,7 +2991,7 @@
2978
2991
  }
2979
2992
  }, [initialQuery]);
2980
2993
  const key = useMemo(() => basePathList.map((_) => (wasOpened ? _ : null)), // Load search index on very first search
2981
- [wasOpened, ...basePathList]);
2994
+ [wasOpened, basePathList]);
2982
2995
  const { data } = useAsyncData(key, fetchSearchIndex);
2983
2996
  const [result, setResult] = useState(null);
2984
2997
  useDebouncedEffect(() => {
@@ -3060,7 +3073,7 @@
3060
3073
  const SEARCH_DIALOG_ID = 'search';
3061
3074
  const SearchDialog = JSX(({ topItems }) => {
3062
3075
  const dialogProps = useDialogProps(SEARCH_DIALOG_ID);
3063
- const basePathList = topItems?.map((_) => _.href || '/');
3076
+ const basePathList = useMemo(() => topItems?.map((_) => _.href || '/'), [topItems]);
3064
3077
  const [searchResult, searchInputProps] = useSearch({
3065
3078
  basePathList,
3066
3079
  initialQuery: dialogProps.message,
@@ -3489,7 +3502,7 @@
3489
3502
  return (jsxs("button", { type: "button", onClick: onClick, className: `p-[30px] min-w-[460px] flex items-center bg-white border-solid border relative ${btnClassName}`, children: [slide?.icon ? (jsx(ImgInner, { className: "p-5 rounded-full bg-secondary-light mr-[30px]", image: slide.icon, width: "108", height: "108" })) : null, jsxs("div", { className: "flex gap-3.5", children: [slide?.sum ? renderValueBlock$1('страховая сумма', slide.sum) : null, slide?.fee ? renderValueBlock$1('страховой взнос', slide.fee) : null] }), renderDoneIcon(isActive)] }, String(i)));
3490
3503
  }
3491
3504
  function renderValueBlock$1(title, sum) {
3492
- return (jsxs("div", { className: "flex flex-col text-left whitespace-pre", children: [jsxs("span", { className: "text-h6", children: [addSpacesBetweenNumbers(sum), " \u20BD"] }), jsx("span", { className: "text-secondary-text text-l mt-1", children: title })] }));
3505
+ return (jsxs("div", { className: "flex flex-col text-left whitespace-pre", children: [jsxs("span", { className: "text-h6", children: [toLocalNumberFormat(2)(sum), " \u20BD"] }), jsx("span", { className: "text-secondary-text text-l mt-1", children: title })] }));
3493
3506
  }
3494
3507
  function renderDoneIcon(isActive) {
3495
3508
  return isActive ? (jsx(ImgInner, { className: `h-6 w-6 min-w-6 min-h-6 absolute right-4 top-4`, image: { icon: 'DoneIcon' }, width: "24", height: "24" })) : null;
@@ -3840,25 +3853,6 @@
3840
3853
  const getArraySumAndAverage = (arr) => arr.reduce((a, b) => a + b) / arr.length;
3841
3854
  const normalizePoints = (points) => (points ? points.map((_) => _.coords) : null);
3842
3855
 
3843
- // Добавлено для проверки
3844
- const nearbyOffices = [
3845
- { title: 'Деловой центр', time: '1 мин', distance: '~30 м.', icon: 'MetroIcon' },
3846
- { title: 'Выставочная', time: '5 мин', distance: '~120 м.', icon: 'MetroIcon' },
3847
- { title: 'Деловой центр', time: '8 мин', distance: '~350 м.', icon: 'MetroIcon' },
3848
- ];
3849
-
3850
- const renderCurrentDaySchedule = ({ lunchHour, status, workTime }) => {
3851
- const hasTime = /\d+/gi.test(lunchHour);
3852
- const lunchHourText = hasTime ? `Перерыв ${lunchHour}` : lunchHour;
3853
- return status ? (jsxs("div", { className: "flex", children: [jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-primary-main border-green-light mr-4", children: workTime ? workTime : null }), jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-yellow border-golden", children: lunchHour ? lunchHourText : null })] })) : (jsx("div", { className: "flex", children: jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-error border-error", children: "\u0412\u044B\u0445\u043E\u0434\u043D\u043E\u0439" }) }));
3854
- };
3855
- const renderNearbyOffice = ({ icon, title, distance, time }, index) => (jsxs("div", { className: "flex mr-4", children: [jsx(Icon, { name: icon, width: "16", height: "16", className: "mr-1" }), title ? jsxs("span", { className: "text-m", children: [title, "\u00A0"] }) : null, jsxs("span", { className: "text-m-light", children: [distance ? ` (${distance})` : null, time ? `, ${time}` : null] })] }, `nearbyOffice${index}`));
3856
- const renderDay = ({ title, status, workTime, lunchHour, description }, inx) => (jsxs("div", { className: "flex flex-col pb-3 border-b border-solid border-main-divider mb-3 last:border-0", children: [jsxs("div", { className: "flex justify-between items-center w-full pb-1 text-l text-primary-text", children: [jsx("div", { children: title }), status ? null : jsx("div", { className: "text-m-light text-error", children: "\u0412\u044B\u0445\u043E\u0434\u043D\u043E\u0439" }), status && workTime ? jsx("div", { children: workTime }) : null] }), status && lunchHour ? renderLunchHour(lunchHour) : null, description ? (jsx("div", { className: "pb-1 text-s-light text-secondary-text", children: description })) : null] }, `day${inx}`));
3857
- const renderLunchHour = (lunchHour) => {
3858
- const hasTime = /\d+/gi.test(lunchHour);
3859
- return hasTime ? (jsxs("div", { className: "flex justify-between items-center w-full pb-1 text-m-light text-error", children: [jsx("div", { children: "\u041F\u0435\u0440\u0435\u0440\u044B\u0432" }), jsx("div", { children: lunchHour })] })) : (jsx("div", { className: "flex justify-between items-center w-full pb-1 text-m-light text-primary-main", children: jsx("div", { children: lunchHour }) }));
3860
- };
3861
-
3862
3856
  const OFFICE_MAP = {
3863
3857
  id: 123,
3864
3858
  branchType: {
@@ -3939,26 +3933,30 @@
3939
3933
  safeBoxCaseVolumes: null,
3940
3934
  };
3941
3935
 
3942
- const OFFICE_MAP_URL = '/api/v1/branches';
3943
- // TODO: regionCode - внутренний идентификатор банка. Не соответствует государственной нумерации регионов РФ
3944
- // TODO: Список регионов можно получить через api/v1/regions
3945
- function useOfficeMap(regionCode) {
3946
- const { data } = useAsyncData(regionCode ? `${OFFICE_MAP_URL}?regionCode=${regionCode}` : undefined, fetchOfficeMap);
3947
- console.warn('Hook useOfficeMap RETURNs MOCK object for testing', data);
3948
- return OFFICE_MAP;
3949
- }
3950
- function fetchOfficeMap(url) {
3951
- if (!url) {
3952
- return {};
3953
- }
3954
- return fetchJSON(url, { method: 'GET' });
3955
- }
3936
+ // Добавлено для проверки
3937
+ const nearbyOffices = [
3938
+ { title: 'Деловой центр', time: '1 мин', distance: '~30 м.', icon: 'MetroIcon' },
3939
+ { title: 'Выставочная', time: '5 мин', distance: '~120 м.', icon: 'MetroIcon' },
3940
+ { title: 'Деловой центр', time: '8 мин', distance: '~350 м.', icon: 'MetroIcon' },
3941
+ ];
3942
+
3943
+ const renderCurrentDaySchedule = ({ lunchHour, status, workTime }) => {
3944
+ const hasTime = /\d+/gi.test(lunchHour);
3945
+ const lunchHourText = hasTime ? `Перерыв ${lunchHour}` : lunchHour;
3946
+ return status ? (jsxs("div", { className: "flex", children: [jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-primary-main border-green-light mr-4", children: workTime ? workTime : null }), jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-yellow border-golden", children: lunchHour ? lunchHourText : null })] })) : (jsx("div", { className: "flex", children: jsx("div", { className: "p-3 border rounded-md text-m flex items-center cursor-pointer text-error border-error", children: "\u0412\u044B\u0445\u043E\u0434\u043D\u043E\u0439" }) }));
3947
+ };
3948
+ const renderNearbyOffice = ({ icon, title, distance, time }, index) => (jsxs("div", { className: "flex mr-4", children: [jsx(Icon, { name: icon, width: "16", height: "16", className: "mr-1" }), title ? jsxs("span", { className: "text-m", children: [title, "\u00A0"] }) : null, jsxs("span", { className: "text-m-light", children: [distance ? ` (${distance})` : null, time ? `, ${time}` : null] })] }, `nearbyOffice${index}`));
3949
+ const renderDay = ({ title, status, workTime, lunchHour, description }, inx) => (jsxs("div", { className: "flex flex-col pb-3 border-b border-solid border-main-divider mb-3 last:border-0", children: [jsxs("div", { className: "flex justify-between items-center w-full pb-1 text-l text-primary-text", children: [jsx("div", { children: title }), status ? null : jsx("div", { className: "text-m-light text-error", children: "\u0412\u044B\u0445\u043E\u0434\u043D\u043E\u0439" }), status && workTime ? jsx("div", { children: workTime }) : null] }), status && lunchHour ? renderLunchHour(lunchHour) : null, description ? (jsx("div", { className: "pb-1 text-s-light text-secondary-text", children: description })) : null] }, `day${inx}`));
3950
+ const renderLunchHour = (lunchHour) => {
3951
+ const hasTime = /\d+/gi.test(lunchHour);
3952
+ return hasTime ? (jsxs("div", { className: "flex justify-between items-center w-full pb-1 text-m-light text-error", children: [jsx("div", { children: "\u041F\u0435\u0440\u0435\u0440\u044B\u0432" }), jsx("div", { children: lunchHour })] })) : (jsx("div", { className: "flex justify-between items-center w-full pb-1 text-m-light text-primary-main", children: jsx("div", { children: lunchHour }) }));
3953
+ };
3956
3954
 
3957
3955
  const OfficeMap = JSX(({ className = '' }) => {
3958
3956
  // TODO: useOfficeMap endpoint had use /api/v1/branches. This endpoint now is`t correct/
3959
3957
  // TODO: useOfficeMap has return MOCK OBJECT!
3960
3958
  // TODO: Fix this when endpoint /api/v1/branches (or new endpoint) had returning right data
3961
- const resultOfficeMap = useOfficeMap('000');
3959
+ const resultOfficeMap = OFFICE_MAP;
3962
3960
  const { name, address, gpsLatitude, gpsLongitude, workSchedule } = resultOfficeMap;
3963
3961
  const { workingMonday, workingTuesday, workingWednesday, workingThursday, workingFriday, workingSaturday, workingSunday, } = workSchedule;
3964
3962
  const { workTime, lunchHour, workTimeSaturday, lunchHourSaturday } = workSchedule;
@@ -4036,7 +4034,7 @@
4036
4034
  }
4037
4035
  function renderValueBlock(title, sum = 0, isAnotherBlock = false) {
4038
4036
  const widthStyle = isAnotherBlock ? 'w-fit' : 'w-full';
4039
- return (jsxs("div", { className: `flex justify-between items-center gap-2 w-full whitespace-pre ${widthStyle}`, children: [jsx("span", { className: "text-secondary-text text-l-light", children: title }), jsxs("span", { className: "text-primary-main text-h6", children: [addSpacesBetweenNumbers(sum), " \u20BD"] })] }));
4037
+ return (jsxs("div", { className: `flex justify-between items-center gap-2 w-full whitespace-pre ${widthStyle}`, children: [jsx("span", { className: "text-secondary-text text-l-light", children: title }), jsxs("span", { className: "text-primary-main text-h6", children: [toLocalNumberFormat(2)(sum), " \u20BD"] })] }));
4040
4038
  }
4041
4039
 
4042
4040
  function getTileHeadingType(className = '') {
@@ -5026,7 +5024,7 @@
5026
5024
  return (jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: jsx(LikeControl, { className: "rounded-tl-lg sticky bottom-0 pointer-events-auto" }) }));
5027
5025
  }
5028
5026
 
5029
- const packageVersion = "0.10.9";
5027
+ const packageVersion = "0.10.10";
5030
5028
 
5031
5029
  exports.Blocks = Blocks;
5032
5030
  exports.ContentPage = ContentPage;