@redneckz/wildless-cms-uni-blocks 0.12.13 → 0.13.0

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 (1628) hide show
  1. package/bin/migration-scripts/0.12.12.js +48 -0
  2. package/bundle/EventBus/defaultEventBus.d.ts +4 -2
  3. package/bundle/EventBus/useLatestEvent.d.ts +2 -0
  4. package/bundle/blocks.schema.json +1 -1
  5. package/bundle/bundle.umd.js +450 -422
  6. package/bundle/bundle.umd.min.js +1 -1
  7. package/bundle/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
  8. package/bundle/components/Bonus/BonusContent.d.ts +2 -7
  9. package/bundle/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
  10. package/bundle/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
  11. package/bundle/components/Calculator/Calculator.mobile.d.ts +5 -0
  12. package/bundle/components/Calculator/CalculatorContent.d.ts +2 -2
  13. package/bundle/components/Calculator/CreditCalculatorForm.d.ts +1 -0
  14. package/bundle/components/Calculator/DepositCalculatorForm.d.ts +1 -1
  15. package/bundle/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
  16. package/bundle/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -1
  17. package/bundle/components/Calculator/renderRate.d.ts +9 -0
  18. package/bundle/components/CardTransfer/CardTransferContent.d.ts +2 -2
  19. package/bundle/components/CarouselCard/CarouselCardContent.d.ts +3 -2
  20. package/bundle/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
  21. package/bundle/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
  22. package/bundle/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
  23. package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
  24. package/bundle/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
  25. package/bundle/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
  26. package/bundle/components/ContentPage/computeAPIFallback.d.ts +2 -2
  27. package/bundle/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
  28. package/bundle/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
  29. package/bundle/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
  30. package/bundle/components/Footer/FooterProps.d.ts +0 -2
  31. package/bundle/components/Footer/SocialMedia.d.ts +2 -2
  32. package/bundle/components/Header/HeaderProps.d.ts +0 -4
  33. package/bundle/components/Header/HeaderSecondaryMenu.d.ts +1 -1
  34. package/bundle/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
  35. package/bundle/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
  36. package/bundle/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
  37. package/bundle/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
  38. package/bundle/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
  39. package/bundle/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  40. package/bundle/components/ProductBlock/renderBackwardButton.d.ts +2 -2
  41. package/bundle/components/PromoTile/PromoTileContent.d.ts +2 -2
  42. package/bundle/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
  43. package/bundle/components/RollupItem/rollupIconVersion.mobile.d.ts +1 -1
  44. package/bundle/components/StepsBlock/StepsBlockContent.d.ts +6 -9
  45. package/bundle/components/Tabs/renderTabs.d.ts +12 -0
  46. package/bundle/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
  47. package/bundle/components/TariffsTable/EmbeddableCellData.mobile.d.ts +3 -2
  48. package/bundle/components/TariffsTable/TariffsTableContent.d.ts +2 -2
  49. package/bundle/hooks/useForm.d.ts +1 -0
  50. package/bundle/hooks/useList.d.ts +10 -0
  51. package/bundle/hooks/useLocation.d.ts +1 -1
  52. package/bundle/hooks/useSWRResource.d.ts +1 -1
  53. package/bundle/icons/IconName.d.ts +3 -3
  54. package/bundle/services/sitemap/useSitemap.d.ts +3 -0
  55. package/bundle/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
  56. package/bundle/ui-kit/Button/Button.d.ts +2 -2
  57. package/bundle/ui-kit/Button/ButtonContent.d.ts +19 -0
  58. package/bundle/ui-kit/Button/ButtonInner.d.ts +2 -7
  59. package/bundle/ui-kit/Button/ButtonProps.d.ts +4 -44
  60. package/bundle/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
  61. package/bundle/ui-kit/Button/renderButtonsSection.d.ts +2 -2
  62. package/{lib/ui-kit/Dialog → bundle/ui-kit/DialogManager}/CloseButton.d.ts +1 -1
  63. package/bundle/ui-kit/{Dialog → DialogManager}/Dialog.d.ts +0 -1
  64. package/bundle/ui-kit/DialogManager/DialogAction.d.ts +12 -0
  65. package/bundle/ui-kit/DialogManager/DialogManager.d.ts +2 -0
  66. package/bundle/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
  67. package/bundle/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
  68. package/bundle/ui-kit/ListControlProps.d.ts +4 -0
  69. package/bundle/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
  70. package/bundle/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
  71. package/bundle/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
  72. package/bundle/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
  73. package/bundle/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
  74. package/bundle/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
  75. package/bundle/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
  76. package/bundle/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
  77. package/bundle/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
  78. package/bundle/ui-kit/TabsControl/TabItem.d.ts +11 -0
  79. package/bundle/ui-kit/TabsControl/TabsControl.d.ts +2 -0
  80. package/bundle/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
  81. package/bundle/ui-kit/TabsControl/renderTab.d.ts +4 -0
  82. package/bundle/utils/BoolComparator.d.ts +11 -0
  83. package/cosmos-static/icons/ArrowDownSolidIcon.svg +1 -1
  84. package/cosmos-static/icons/ArrowUpSolidIcon.svg +1 -1
  85. package/dist/EventBus/defaultEventBus.d.ts +4 -2
  86. package/dist/EventBus/defaultEventBus.js.map +1 -1
  87. package/dist/EventBus/useLatestEvent.d.ts +2 -0
  88. package/dist/EventBus/useLatestEvent.js +11 -0
  89. package/dist/EventBus/useLatestEvent.js.map +1 -0
  90. package/dist/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
  91. package/dist/components/Blocks.mobile.js +2 -0
  92. package/dist/components/Blocks.mobile.js.map +1 -1
  93. package/dist/components/Bonus/BonusContent.d.ts +2 -7
  94. package/dist/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
  95. package/dist/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
  96. package/dist/components/Calculator/BusinessDepositCalculatorForm.js +19 -13
  97. package/dist/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  98. package/dist/components/Calculator/Calculator.mobile.d.ts +5 -0
  99. package/dist/components/Calculator/Calculator.mobile.js +33 -0
  100. package/dist/components/Calculator/Calculator.mobile.js.map +1 -0
  101. package/dist/components/Calculator/CalculatorContent.d.ts +2 -2
  102. package/dist/components/Calculator/CalculatorValueBlock.js +2 -1
  103. package/dist/components/Calculator/CalculatorValueBlock.js.map +1 -1
  104. package/dist/components/Calculator/CreditCalculatorForm.d.ts +1 -0
  105. package/dist/components/Calculator/CreditCalculatorForm.js +18 -11
  106. package/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
  107. package/dist/components/Calculator/DepositCalculatorForm.d.ts +1 -1
  108. package/dist/components/Calculator/DepositCalculatorForm.js +13 -11
  109. package/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  110. package/dist/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
  111. package/dist/components/Calculator/RefinancingCalculatorForm.js +1 -0
  112. package/dist/components/Calculator/RefinancingCalculatorForm.js.map +1 -1
  113. package/dist/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -1
  114. package/dist/components/Calculator/renderBinaryRadioButtonGroup.js +2 -1
  115. package/dist/components/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
  116. package/dist/components/Calculator/renderDaysInput.js +1 -1
  117. package/dist/components/Calculator/renderDaysInput.js.map +1 -1
  118. package/dist/components/Calculator/renderMonthsInput.js +1 -1
  119. package/dist/components/Calculator/renderMonthsInput.js.map +1 -1
  120. package/dist/components/Calculator/renderPaymentType.js +1 -0
  121. package/dist/components/Calculator/renderPaymentType.js.map +1 -1
  122. package/dist/components/Calculator/renderRate.d.ts +9 -0
  123. package/dist/components/Calculator/renderRate.js +16 -0
  124. package/dist/components/Calculator/renderRate.js.map +1 -0
  125. package/dist/components/CardTransfer/CardTransferContent.d.ts +2 -2
  126. package/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.mobile.js +1 -1
  127. package/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.mobile.js.map +1 -1
  128. package/dist/components/CarouselCard/CarouselCardContent.d.ts +3 -2
  129. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  130. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  131. package/dist/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
  132. package/dist/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
  133. package/dist/components/CarouselCatalogCard/CatalogCard.js.map +1 -1
  134. package/dist/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
  135. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +6 -7
  136. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  137. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
  138. package/dist/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
  139. package/dist/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
  140. package/dist/components/ContentPage/ContentPage.js +2 -23
  141. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  142. package/dist/components/ContentPage/computeAPIFallback.d.ts +2 -2
  143. package/dist/components/ContentPage/computeAPIFallback.js +10 -27
  144. package/dist/components/ContentPage/computeAPIFallback.js.map +1 -1
  145. package/dist/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
  146. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
  147. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  148. package/dist/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
  149. package/dist/components/Footer/Footer.js +4 -2
  150. package/dist/components/Footer/Footer.js.map +1 -1
  151. package/dist/components/Footer/Footer.mobile.js +7 -4
  152. package/dist/components/Footer/Footer.mobile.js.map +1 -1
  153. package/dist/components/Footer/FooterProps.d.ts +0 -2
  154. package/dist/components/Footer/SocialMedia.d.ts +2 -2
  155. package/dist/components/Header/Header.js +5 -4
  156. package/dist/components/Header/Header.js.map +1 -1
  157. package/dist/components/Header/Header.mobile.js +4 -3
  158. package/dist/components/Header/Header.mobile.js.map +1 -1
  159. package/dist/components/Header/HeaderProps.d.ts +0 -4
  160. package/dist/components/Header/HeaderSecondaryMenu.d.ts +1 -1
  161. package/dist/components/Header/HeaderSecondaryMenu.js +10 -9
  162. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  163. package/dist/components/Header/HeaderSubMenu.js +1 -1
  164. package/dist/components/Header/HeaderSubMenu.js.map +1 -1
  165. package/dist/components/Header/HeaderTop.js +9 -6
  166. package/dist/components/Header/HeaderTop.js.map +1 -1
  167. package/dist/components/Header/findActiveSubItem.js.map +1 -0
  168. package/dist/components/Header/isHrefActive.js.map +1 -0
  169. package/dist/components/Header/isTopItemActive.js.map +1 -0
  170. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
  171. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
  172. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  173. package/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  174. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  175. package/dist/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
  176. package/dist/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
  177. package/dist/components/MortgageFiltration/HotFilterRecord.js +5 -0
  178. package/dist/components/MortgageFiltration/HotFilterRecord.js.map +1 -0
  179. package/dist/components/MortgageFiltration/MortgageFiltration.js +24 -4
  180. package/dist/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
  181. package/dist/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
  182. package/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  183. package/dist/components/ProductBlock/renderBackwardButton.d.ts +2 -2
  184. package/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
  185. package/dist/components/PromoTile/PromoTileContent.d.ts +2 -2
  186. package/dist/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
  187. package/dist/components/RollupItem/RollupItem.js +1 -1
  188. package/dist/components/RollupItem/RollupItem.js.map +1 -1
  189. package/dist/components/RollupItem/renderRoundedIcon.mobile.js +1 -1
  190. package/dist/components/RollupItem/renderRoundedIcon.mobile.js.map +1 -1
  191. package/dist/components/RollupItem/rollupIconVersion.mobile.d.ts +1 -1
  192. package/dist/components/RollupItem/rollupIconVersion.mobile.js +1 -1
  193. package/dist/components/RollupItem/rollupIconVersion.mobile.js.map +1 -1
  194. package/dist/components/StepsBlock/StepsBlockContent.d.ts +6 -9
  195. package/dist/components/Tabs/Tabs.js +19 -24
  196. package/dist/components/Tabs/Tabs.js.map +1 -1
  197. package/dist/components/Tabs/renderTabs.d.ts +12 -0
  198. package/dist/components/Tabs/renderTabs.js +19 -0
  199. package/dist/components/Tabs/renderTabs.js.map +1 -0
  200. package/dist/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
  201. package/dist/components/TariffsTable/EmbeddableCellData.js.map +1 -1
  202. package/dist/components/TariffsTable/EmbeddableCellData.mobile.d.ts +3 -2
  203. package/dist/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -1
  204. package/dist/components/TariffsTable/TariffsTableContent.d.ts +2 -2
  205. package/dist/hooks/useForm.d.ts +1 -0
  206. package/dist/hooks/useForm.js +5 -0
  207. package/dist/hooks/useForm.js.map +1 -1
  208. package/dist/hooks/useLink.js +3 -3
  209. package/dist/hooks/useLink.js.map +1 -1
  210. package/dist/hooks/useList.d.ts +10 -0
  211. package/dist/hooks/useList.js +13 -0
  212. package/dist/hooks/useList.js.map +1 -0
  213. package/dist/hooks/useLocation.d.ts +1 -1
  214. package/dist/hooks/useLocation.js +27 -16
  215. package/dist/hooks/useLocation.js.map +1 -1
  216. package/dist/hooks/useSWRResource.d.ts +1 -1
  217. package/dist/hooks/useSWRResource.js +2 -4
  218. package/dist/hooks/useSWRResource.js.map +1 -1
  219. package/dist/icons/IconName.d.ts +3 -3
  220. package/dist/icons/IconName.js +3 -3
  221. package/dist/icons/IconName.js.map +1 -1
  222. package/dist/services/sitemap/useSitemap.d.ts +3 -0
  223. package/dist/services/sitemap/useSitemap.js +7 -0
  224. package/dist/services/sitemap/useSitemap.js.map +1 -0
  225. package/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js +2 -2
  226. package/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
  227. package/dist/ui-kit/BaseFiltration/renderFiltrationForm.js +2 -2
  228. package/dist/ui-kit/BaseFiltration/renderFiltrationForm.js.map +1 -1
  229. package/dist/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
  230. package/dist/ui-kit/BaseTile/BaseTile.js +1 -1
  231. package/dist/ui-kit/BaseTile/BaseTile.js.map +1 -1
  232. package/dist/ui-kit/BenefitsList/DefaultBenefitsList.js +5 -3
  233. package/dist/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -1
  234. package/dist/ui-kit/Button/Button.d.ts +2 -2
  235. package/dist/ui-kit/Button/Button.js.map +1 -1
  236. package/dist/ui-kit/Button/ButtonContent.d.ts +19 -0
  237. package/dist/{model/Button.js → ui-kit/Button/ButtonContent.js} +1 -1
  238. package/dist/ui-kit/Button/ButtonContent.js.map +1 -0
  239. package/dist/ui-kit/Button/ButtonInner.d.ts +2 -7
  240. package/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  241. package/dist/ui-kit/Button/ButtonProps.d.ts +4 -44
  242. package/dist/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
  243. package/dist/ui-kit/{LocationDialog/LocationDialogProps.js → Button/ButtonsSectionContent.js} +1 -1
  244. package/dist/ui-kit/Button/ButtonsSectionContent.js.map +1 -0
  245. package/dist/ui-kit/Button/renderButtonsSection.d.ts +2 -2
  246. package/dist/ui-kit/Button/renderButtonsSection.js.map +1 -1
  247. package/dist/ui-kit/CookiePopup/CookiePopup.js +6 -6
  248. package/dist/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  249. package/{bundle/ui-kit/Dialog → dist/ui-kit/DialogManager}/CloseButton.d.ts +1 -1
  250. package/{mobile/dist/ui-kit/Dialog → dist/ui-kit/DialogManager}/CloseButton.js +1 -1
  251. package/dist/ui-kit/DialogManager/CloseButton.js.map +1 -0
  252. package/dist/ui-kit/{Dialog → DialogManager}/Dialog.d.ts +0 -1
  253. package/dist/ui-kit/DialogManager/Dialog.js +17 -0
  254. package/dist/ui-kit/DialogManager/Dialog.js.map +1 -0
  255. package/dist/ui-kit/DialogManager/DialogAction.d.ts +12 -0
  256. package/dist/ui-kit/DialogManager/DialogAction.js.map +1 -0
  257. package/dist/ui-kit/DialogManager/DialogManager.d.ts +2 -0
  258. package/dist/ui-kit/DialogManager/DialogManager.js +61 -0
  259. package/dist/ui-kit/DialogManager/DialogManager.js.map +1 -0
  260. package/dist/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
  261. package/dist/ui-kit/DialogManager/useDialogManager.js +10 -0
  262. package/dist/ui-kit/DialogManager/useDialogManager.js.map +1 -0
  263. package/dist/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
  264. package/dist/ui-kit/ListControlProps.d.ts +4 -0
  265. package/dist/ui-kit/ListControlProps.js +2 -0
  266. package/dist/ui-kit/ListControlProps.js.map +1 -0
  267. package/dist/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
  268. package/dist/ui-kit/LocationDialog/LocationDialog.js +17 -26
  269. package/dist/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  270. package/dist/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
  271. package/dist/ui-kit/LocationDialog/renderForeignOffices.js +15 -0
  272. package/dist/ui-kit/LocationDialog/renderForeignOffices.js.map +1 -0
  273. package/dist/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
  274. package/dist/ui-kit/LocationDialog/renderRegion.js +8 -0
  275. package/dist/ui-kit/LocationDialog/renderRegion.js.map +1 -0
  276. package/dist/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
  277. package/dist/ui-kit/LocationDialog/renderRegionGroup.js +8 -0
  278. package/dist/ui-kit/LocationDialog/renderRegionGroup.js.map +1 -0
  279. package/dist/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
  280. package/dist/ui-kit/LocationDialog/useLocationDialog.js +14 -0
  281. package/dist/ui-kit/LocationDialog/useLocationDialog.js.map +1 -0
  282. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
  283. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js +2 -1
  284. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  285. package/dist/ui-kit/SearchBar/SearchBar.js +6 -9
  286. package/dist/ui-kit/SearchBar/SearchBar.js.map +1 -1
  287. package/dist/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
  288. package/dist/ui-kit/SearchDialog/SearchDialog.js +8 -9
  289. package/dist/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  290. package/dist/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
  291. package/dist/ui-kit/SearchDialog/useSearchDialog.js +14 -0
  292. package/dist/ui-kit/SearchDialog/useSearchDialog.js.map +1 -0
  293. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
  294. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  295. package/dist/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
  296. package/dist/ui-kit/TabsControl/ScrollableTabsControl.js +17 -0
  297. package/dist/ui-kit/TabsControl/ScrollableTabsControl.js.map +1 -0
  298. package/dist/ui-kit/TabsControl/TabItem.d.ts +11 -0
  299. package/dist/ui-kit/TabsControl/TabItem.js +38 -0
  300. package/dist/ui-kit/TabsControl/TabItem.js.map +1 -0
  301. package/dist/ui-kit/TabsControl/TabsControl.d.ts +2 -0
  302. package/dist/ui-kit/TabsControl/TabsControl.js +8 -0
  303. package/dist/ui-kit/TabsControl/TabsControl.js.map +1 -0
  304. package/dist/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
  305. package/dist/ui-kit/TabsControl/TabsControlProps.js +2 -0
  306. package/dist/ui-kit/TabsControl/TabsControlProps.js.map +1 -0
  307. package/dist/ui-kit/TabsControl/renderTab.d.ts +4 -0
  308. package/dist/ui-kit/TabsControl/renderTab.js +7 -0
  309. package/dist/ui-kit/TabsControl/renderTab.js.map +1 -0
  310. package/dist/utils/BoolComparator.d.ts +11 -0
  311. package/dist/utils/BoolComparator.js +19 -0
  312. package/dist/utils/BoolComparator.js.map +1 -0
  313. package/lib/EventBus/defaultEventBus.d.ts +4 -2
  314. package/lib/EventBus/defaultEventBus.js.map +1 -1
  315. package/lib/EventBus/useLatestEvent.d.ts +2 -0
  316. package/lib/EventBus/useLatestEvent.js +8 -0
  317. package/lib/EventBus/useLatestEvent.js.map +1 -0
  318. package/lib/common.css +1 -1
  319. package/lib/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
  320. package/lib/components/Blocks.mobile.js +2 -0
  321. package/lib/components/Blocks.mobile.js.map +1 -1
  322. package/lib/components/Bonus/BonusContent.d.ts +2 -7
  323. package/lib/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
  324. package/lib/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
  325. package/lib/components/Calculator/BusinessDepositCalculatorForm.js +19 -13
  326. package/lib/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  327. package/lib/components/Calculator/Calculator.fixture.mobile.d.ts +8 -0
  328. package/lib/components/Calculator/Calculator.mobile.d.ts +5 -0
  329. package/lib/components/Calculator/Calculator.mobile.js +31 -0
  330. package/lib/components/Calculator/Calculator.mobile.js.map +1 -0
  331. package/lib/components/Calculator/CalculatorContent.d.ts +2 -2
  332. package/lib/components/Calculator/CalculatorValueBlock.js +2 -1
  333. package/lib/components/Calculator/CalculatorValueBlock.js.map +1 -1
  334. package/lib/components/Calculator/CreditCalculatorForm.d.ts +1 -0
  335. package/lib/components/Calculator/CreditCalculatorForm.js +18 -11
  336. package/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
  337. package/lib/components/Calculator/DepositCalculatorForm.d.ts +1 -1
  338. package/lib/components/Calculator/DepositCalculatorForm.js +13 -11
  339. package/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  340. package/lib/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
  341. package/lib/components/Calculator/RefinancingCalculatorForm.js +1 -0
  342. package/lib/components/Calculator/RefinancingCalculatorForm.js.map +1 -1
  343. package/lib/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -2
  344. package/lib/components/Calculator/renderBinaryRadioButtonGroup.js +2 -1
  345. package/lib/components/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
  346. package/lib/components/Calculator/renderDaysInput.d.ts +0 -1
  347. package/lib/components/Calculator/renderDaysInput.js +1 -1
  348. package/lib/components/Calculator/renderDaysInput.js.map +1 -1
  349. package/lib/components/Calculator/renderFootnote.d.ts +0 -1
  350. package/lib/components/Calculator/renderInterestPayment.d.ts +0 -1
  351. package/lib/components/Calculator/renderMonthsInput.d.ts +0 -1
  352. package/lib/components/Calculator/renderMonthsInput.js +1 -1
  353. package/lib/components/Calculator/renderMonthsInput.js.map +1 -1
  354. package/lib/components/Calculator/renderPaymentType.d.ts +0 -1
  355. package/lib/components/Calculator/renderPaymentType.js +1 -0
  356. package/lib/components/Calculator/renderPaymentType.js.map +1 -1
  357. package/lib/components/Calculator/renderRate.d.ts +8 -0
  358. package/lib/components/Calculator/renderRate.js +13 -0
  359. package/lib/components/Calculator/renderRate.js.map +1 -0
  360. package/lib/components/Calculator/renderRegistrationType.d.ts +0 -1
  361. package/lib/components/CardTransfer/CardTransferContent.d.ts +2 -2
  362. package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.mobile.js +1 -1
  363. package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.mobile.js.map +1 -1
  364. package/lib/components/CarouselCard/CarouselCardContent.d.ts +3 -2
  365. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  366. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  367. package/lib/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
  368. package/lib/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
  369. package/lib/components/CarouselCatalogCard/CatalogCard.js.map +1 -1
  370. package/lib/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
  371. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +7 -8
  372. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  373. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
  374. package/lib/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
  375. package/lib/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
  376. package/lib/components/ContentPage/ContentPage.js +2 -23
  377. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  378. package/lib/components/ContentPage/computeAPIFallback.d.ts +2 -2
  379. package/lib/components/ContentPage/computeAPIFallback.js +8 -25
  380. package/lib/components/ContentPage/computeAPIFallback.js.map +1 -1
  381. package/lib/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
  382. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
  383. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  384. package/lib/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
  385. package/lib/components/Footer/Footer.js +4 -2
  386. package/lib/components/Footer/Footer.js.map +1 -1
  387. package/lib/components/Footer/Footer.mobile.js +7 -4
  388. package/lib/components/Footer/Footer.mobile.js.map +1 -1
  389. package/lib/components/Footer/FooterProps.d.ts +0 -2
  390. package/lib/components/Footer/SocialMedia.d.ts +2 -2
  391. package/lib/components/Header/Header.js +5 -4
  392. package/lib/components/Header/Header.js.map +1 -1
  393. package/lib/components/Header/Header.mobile.js +4 -3
  394. package/lib/components/Header/Header.mobile.js.map +1 -1
  395. package/lib/components/Header/HeaderProps.d.ts +0 -4
  396. package/lib/components/Header/HeaderSecondaryMenu.d.ts +1 -1
  397. package/lib/components/Header/HeaderSecondaryMenu.js +10 -9
  398. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  399. package/lib/components/Header/HeaderSubMenu.js +1 -1
  400. package/lib/components/Header/HeaderSubMenu.js.map +1 -1
  401. package/lib/components/Header/HeaderTop.js +9 -6
  402. package/lib/components/Header/HeaderTop.js.map +1 -1
  403. package/lib/components/Header/findActiveSubItem.js.map +1 -0
  404. package/lib/components/Header/isHrefActive.js.map +1 -0
  405. package/lib/components/Header/isTopItemActive.js.map +1 -0
  406. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
  407. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
  408. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  409. package/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  410. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  411. package/lib/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
  412. package/lib/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
  413. package/lib/components/MortgageFiltration/HotFilterRecord.js +3 -0
  414. package/lib/components/MortgageFiltration/HotFilterRecord.js.map +1 -0
  415. package/lib/components/MortgageFiltration/MortgageFiltration.js +24 -4
  416. package/lib/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
  417. package/lib/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
  418. package/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  419. package/lib/components/ProductBlock/renderBackwardButton.d.ts +2 -2
  420. package/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
  421. package/lib/components/PromoTile/PromoTileContent.d.ts +2 -2
  422. package/lib/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
  423. package/lib/components/RollupItem/RollupItem.js +1 -1
  424. package/lib/components/RollupItem/RollupItem.js.map +1 -1
  425. package/lib/components/RollupItem/renderRoundedIcon.mobile.js +1 -1
  426. package/lib/components/RollupItem/renderRoundedIcon.mobile.js.map +1 -1
  427. package/lib/components/RollupItem/rollupIconVersion.mobile.d.ts +1 -1
  428. package/lib/components/RollupItem/rollupIconVersion.mobile.js +1 -1
  429. package/lib/components/RollupItem/rollupIconVersion.mobile.js.map +1 -1
  430. package/lib/components/StepsBlock/StepsBlockContent.d.ts +6 -9
  431. package/lib/components/Tabs/Tabs.js +20 -25
  432. package/lib/components/Tabs/Tabs.js.map +1 -1
  433. package/lib/components/Tabs/renderTabs.d.ts +11 -0
  434. package/lib/components/Tabs/renderTabs.js +16 -0
  435. package/lib/components/Tabs/renderTabs.js.map +1 -0
  436. package/lib/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
  437. package/lib/components/TariffsTable/EmbeddableCellData.js.map +1 -1
  438. package/lib/components/TariffsTable/EmbeddableCellData.mobile.d.ts +3 -2
  439. package/lib/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -1
  440. package/lib/components/TariffsTable/TariffsTableContent.d.ts +2 -2
  441. package/lib/hooks/useForm.d.ts +1 -0
  442. package/lib/hooks/useForm.js +5 -0
  443. package/lib/hooks/useForm.js.map +1 -1
  444. package/lib/hooks/useLink.js +3 -3
  445. package/lib/hooks/useLink.js.map +1 -1
  446. package/lib/hooks/useList.d.ts +10 -0
  447. package/lib/hooks/useList.js +10 -0
  448. package/lib/hooks/useList.js.map +1 -0
  449. package/lib/hooks/useLocation.d.ts +1 -1
  450. package/lib/hooks/useLocation.js +28 -17
  451. package/lib/hooks/useLocation.js.map +1 -1
  452. package/lib/hooks/useSWRResource.d.ts +1 -1
  453. package/lib/hooks/useSWRResource.js +2 -4
  454. package/lib/hooks/useSWRResource.js.map +1 -1
  455. package/lib/icons/IconName.d.ts +3 -3
  456. package/lib/icons/IconName.js +3 -3
  457. package/lib/icons/IconName.js.map +1 -1
  458. package/lib/services/sitemap/useSitemap.d.ts +3 -0
  459. package/lib/services/sitemap/useSitemap.js +4 -0
  460. package/lib/services/sitemap/useSitemap.js.map +1 -0
  461. package/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js +2 -2
  462. package/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
  463. package/lib/ui-kit/BaseFiltration/renderFiltrationForm.js +2 -2
  464. package/lib/ui-kit/BaseFiltration/renderFiltrationForm.js.map +1 -1
  465. package/lib/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
  466. package/lib/ui-kit/BaseTile/BaseTile.js +1 -1
  467. package/lib/ui-kit/BaseTile/BaseTile.js.map +1 -1
  468. package/lib/ui-kit/BenefitsList/DefaultBenefitsList.js +5 -3
  469. package/lib/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -1
  470. package/lib/ui-kit/Button/Button.d.ts +2 -2
  471. package/lib/ui-kit/Button/Button.js.map +1 -1
  472. package/lib/ui-kit/Button/ButtonContent.d.ts +19 -0
  473. package/lib/ui-kit/Button/ButtonContent.js +2 -0
  474. package/lib/ui-kit/Button/ButtonContent.js.map +1 -0
  475. package/lib/ui-kit/Button/ButtonInner.d.ts +2 -7
  476. package/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  477. package/lib/ui-kit/Button/ButtonProps.d.ts +4 -44
  478. package/lib/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
  479. package/lib/ui-kit/Button/ButtonsSectionContent.js +2 -0
  480. package/lib/ui-kit/Button/ButtonsSectionContent.js.map +1 -0
  481. package/lib/ui-kit/Button/renderButtonsSection.d.ts +2 -2
  482. package/lib/ui-kit/Button/renderButtonsSection.js.map +1 -1
  483. package/lib/ui-kit/CookiePopup/CookiePopup.js +6 -6
  484. package/lib/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  485. package/{dist/ui-kit/Dialog → lib/ui-kit/DialogManager}/CloseButton.d.ts +1 -1
  486. package/lib/ui-kit/{Dialog → DialogManager}/CloseButton.js +1 -1
  487. package/lib/ui-kit/DialogManager/CloseButton.js.map +1 -0
  488. package/lib/ui-kit/{Dialog → DialogManager}/Dialog.d.ts +0 -1
  489. package/lib/ui-kit/DialogManager/Dialog.js +15 -0
  490. package/lib/ui-kit/DialogManager/Dialog.js.map +1 -0
  491. package/lib/ui-kit/DialogManager/DialogAction.d.ts +12 -0
  492. package/lib/ui-kit/DialogManager/DialogAction.js.map +1 -0
  493. package/lib/ui-kit/DialogManager/DialogManager.d.ts +2 -0
  494. package/lib/ui-kit/DialogManager/DialogManager.js +59 -0
  495. package/lib/ui-kit/DialogManager/DialogManager.js.map +1 -0
  496. package/lib/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
  497. package/lib/ui-kit/DialogManager/useDialogManager.js +7 -0
  498. package/lib/ui-kit/DialogManager/useDialogManager.js.map +1 -0
  499. package/lib/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
  500. package/lib/ui-kit/ListControlProps.d.ts +4 -0
  501. package/lib/ui-kit/ListControlProps.js +2 -0
  502. package/lib/ui-kit/ListControlProps.js.map +1 -0
  503. package/lib/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
  504. package/lib/ui-kit/LocationDialog/LocationDialog.js +16 -25
  505. package/lib/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  506. package/lib/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
  507. package/lib/ui-kit/LocationDialog/renderForeignOffices.js +12 -0
  508. package/lib/ui-kit/LocationDialog/renderForeignOffices.js.map +1 -0
  509. package/lib/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
  510. package/lib/ui-kit/LocationDialog/renderRegion.js +5 -0
  511. package/lib/ui-kit/LocationDialog/renderRegion.js.map +1 -0
  512. package/lib/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
  513. package/lib/ui-kit/LocationDialog/renderRegionGroup.js +5 -0
  514. package/lib/ui-kit/LocationDialog/renderRegionGroup.js.map +1 -0
  515. package/lib/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
  516. package/lib/ui-kit/LocationDialog/useLocationDialog.js +11 -0
  517. package/lib/ui-kit/LocationDialog/useLocationDialog.js.map +1 -0
  518. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
  519. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js +2 -1
  520. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  521. package/lib/ui-kit/SearchBar/SearchBar.js +6 -9
  522. package/lib/ui-kit/SearchBar/SearchBar.js.map +1 -1
  523. package/lib/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
  524. package/lib/ui-kit/SearchDialog/SearchDialog.js +7 -8
  525. package/lib/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  526. package/lib/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
  527. package/lib/ui-kit/SearchDialog/useSearchDialog.js +11 -0
  528. package/lib/ui-kit/SearchDialog/useSearchDialog.js.map +1 -0
  529. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
  530. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  531. package/lib/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
  532. package/lib/ui-kit/TabsControl/ScrollableTabsControl.js +15 -0
  533. package/lib/ui-kit/TabsControl/ScrollableTabsControl.js.map +1 -0
  534. package/lib/ui-kit/TabsControl/TabItem.d.ts +11 -0
  535. package/lib/ui-kit/TabsControl/TabItem.js +36 -0
  536. package/lib/ui-kit/TabsControl/TabItem.js.map +1 -0
  537. package/lib/ui-kit/TabsControl/TabsControl.d.ts +2 -0
  538. package/lib/ui-kit/TabsControl/TabsControl.fixture.d.ts +8 -0
  539. package/lib/ui-kit/TabsControl/TabsControl.js +6 -0
  540. package/lib/ui-kit/TabsControl/TabsControl.js.map +1 -0
  541. package/lib/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
  542. package/lib/ui-kit/TabsControl/TabsControlProps.js +2 -0
  543. package/lib/ui-kit/TabsControl/TabsControlProps.js.map +1 -0
  544. package/lib/ui-kit/TabsControl/renderTab.d.ts +3 -0
  545. package/lib/ui-kit/TabsControl/renderTab.js +4 -0
  546. package/lib/ui-kit/TabsControl/renderTab.js.map +1 -0
  547. package/lib/utils/BoolComparator.d.ts +11 -0
  548. package/lib/utils/BoolComparator.js +12 -0
  549. package/lib/utils/BoolComparator.js.map +1 -0
  550. package/mobile/bundle/EventBus/defaultEventBus.d.ts +4 -2
  551. package/mobile/bundle/EventBus/useLatestEvent.d.ts +2 -0
  552. package/mobile/bundle/bundle.umd.js +975 -590
  553. package/mobile/bundle/bundle.umd.min.js +1 -1
  554. package/mobile/bundle/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
  555. package/mobile/bundle/components/Bonus/BonusContent.d.ts +2 -7
  556. package/mobile/bundle/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
  557. package/mobile/bundle/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
  558. package/mobile/bundle/components/Calculator/CalculatorContent.d.ts +2 -2
  559. package/mobile/bundle/components/Calculator/CreditCalculatorForm.d.ts +1 -0
  560. package/mobile/bundle/components/Calculator/DepositCalculatorForm.d.ts +1 -1
  561. package/mobile/bundle/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
  562. package/mobile/bundle/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -1
  563. package/mobile/bundle/components/Calculator/renderRate.d.ts +9 -0
  564. package/mobile/bundle/components/CardTransfer/CardTransferContent.d.ts +2 -2
  565. package/mobile/bundle/components/CarouselCard/CarouselCardContent.d.ts +3 -2
  566. package/mobile/bundle/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
  567. package/mobile/bundle/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
  568. package/mobile/bundle/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
  569. package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
  570. package/mobile/bundle/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
  571. package/mobile/bundle/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
  572. package/mobile/bundle/components/ContentPage/computeAPIFallback.d.ts +2 -2
  573. package/mobile/bundle/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
  574. package/mobile/bundle/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
  575. package/mobile/bundle/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
  576. package/mobile/bundle/components/Footer/FooterProps.d.ts +0 -2
  577. package/mobile/bundle/components/Footer/SocialMedia.d.ts +2 -2
  578. package/mobile/bundle/components/Header/HeaderProps.d.ts +0 -4
  579. package/mobile/bundle/components/Header/HeaderSecondaryMenu.d.ts +1 -1
  580. package/mobile/bundle/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
  581. package/mobile/bundle/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
  582. package/mobile/bundle/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
  583. package/mobile/bundle/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
  584. package/mobile/bundle/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
  585. package/mobile/bundle/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  586. package/mobile/bundle/components/ProductBlock/renderBackwardButton.d.ts +2 -2
  587. package/mobile/bundle/components/PromoTile/PromoTileContent.d.ts +2 -2
  588. package/mobile/bundle/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
  589. package/mobile/bundle/components/RollupItem/rollupIconVersion.d.ts +1 -1
  590. package/mobile/bundle/components/StepsBlock/StepsBlockContent.d.ts +6 -9
  591. package/mobile/bundle/components/Tabs/renderTabs.d.ts +12 -0
  592. package/mobile/bundle/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
  593. package/mobile/bundle/components/TariffsTable/TariffsTableContent.d.ts +2 -2
  594. package/mobile/bundle/hooks/useForm.d.ts +1 -0
  595. package/mobile/bundle/hooks/useList.d.ts +10 -0
  596. package/mobile/bundle/hooks/useLocation.d.ts +1 -1
  597. package/mobile/bundle/hooks/useSWRResource.d.ts +1 -1
  598. package/mobile/bundle/icons/IconName.d.ts +3 -3
  599. package/mobile/bundle/services/sitemap/useSitemap.d.ts +3 -0
  600. package/mobile/bundle/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
  601. package/mobile/bundle/ui-kit/Button/Button.d.ts +2 -2
  602. package/mobile/bundle/ui-kit/Button/ButtonContent.d.ts +19 -0
  603. package/mobile/bundle/ui-kit/Button/ButtonInner.d.ts +2 -7
  604. package/mobile/bundle/ui-kit/Button/ButtonProps.d.ts +4 -44
  605. package/mobile/bundle/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
  606. package/mobile/bundle/ui-kit/Button/renderButtonsSection.d.ts +2 -2
  607. package/mobile/bundle/ui-kit/{Dialog → DialogManager}/CloseButton.d.ts +1 -1
  608. package/mobile/bundle/ui-kit/{Dialog → DialogManager}/Dialog.d.ts +0 -1
  609. package/mobile/bundle/ui-kit/DialogManager/DialogAction.d.ts +12 -0
  610. package/mobile/bundle/ui-kit/DialogManager/DialogManager.d.ts +2 -0
  611. package/mobile/bundle/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
  612. package/mobile/bundle/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
  613. package/mobile/bundle/ui-kit/ListControlProps.d.ts +4 -0
  614. package/mobile/bundle/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
  615. package/mobile/bundle/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
  616. package/mobile/bundle/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
  617. package/mobile/bundle/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
  618. package/mobile/bundle/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
  619. package/mobile/bundle/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
  620. package/mobile/bundle/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
  621. package/mobile/bundle/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
  622. package/mobile/bundle/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
  623. package/mobile/bundle/ui-kit/TabsControl/TabItem.d.ts +11 -0
  624. package/mobile/bundle/ui-kit/TabsControl/TabsControl.d.ts +2 -0
  625. package/mobile/bundle/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
  626. package/mobile/bundle/ui-kit/TabsControl/renderTab.d.ts +4 -0
  627. package/mobile/bundle/utils/BoolComparator.d.ts +11 -0
  628. package/mobile/dist/EventBus/defaultEventBus.d.ts +4 -2
  629. package/mobile/dist/EventBus/defaultEventBus.js.map +1 -1
  630. package/mobile/dist/EventBus/useLatestEvent.d.ts +2 -0
  631. package/mobile/dist/EventBus/useLatestEvent.js +11 -0
  632. package/mobile/dist/EventBus/useLatestEvent.js.map +1 -0
  633. package/mobile/dist/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
  634. package/mobile/dist/components/Blocks.js +2 -0
  635. package/mobile/dist/components/Blocks.js.map +1 -1
  636. package/mobile/dist/components/Bonus/BonusContent.d.ts +2 -7
  637. package/mobile/dist/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
  638. package/mobile/dist/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
  639. package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.js +19 -13
  640. package/mobile/dist/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  641. package/mobile/dist/components/Calculator/Calculator.js +27 -49
  642. package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
  643. package/mobile/dist/components/Calculator/CalculatorContent.d.ts +2 -2
  644. package/mobile/dist/components/Calculator/CalculatorValueBlock.js +2 -1
  645. package/mobile/dist/components/Calculator/CalculatorValueBlock.js.map +1 -1
  646. package/mobile/dist/components/Calculator/CreditCalculatorForm.d.ts +1 -0
  647. package/mobile/dist/components/Calculator/CreditCalculatorForm.js +18 -11
  648. package/mobile/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
  649. package/mobile/dist/components/Calculator/DepositCalculatorForm.d.ts +1 -1
  650. package/mobile/dist/components/Calculator/DepositCalculatorForm.js +13 -11
  651. package/mobile/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  652. package/mobile/dist/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
  653. package/mobile/dist/components/Calculator/RefinancingCalculatorForm.js +1 -0
  654. package/mobile/dist/components/Calculator/RefinancingCalculatorForm.js.map +1 -1
  655. package/mobile/dist/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -1
  656. package/mobile/dist/components/Calculator/renderBinaryRadioButtonGroup.js +2 -1
  657. package/mobile/dist/components/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
  658. package/mobile/dist/components/Calculator/renderDaysInput.js +1 -1
  659. package/mobile/dist/components/Calculator/renderDaysInput.js.map +1 -1
  660. package/mobile/dist/components/Calculator/renderMonthsInput.js +1 -1
  661. package/mobile/dist/components/Calculator/renderMonthsInput.js.map +1 -1
  662. package/mobile/dist/components/Calculator/renderPaymentType.js +1 -0
  663. package/mobile/dist/components/Calculator/renderPaymentType.js.map +1 -1
  664. package/mobile/dist/components/Calculator/renderRate.d.ts +9 -0
  665. package/mobile/dist/components/Calculator/renderRate.js +16 -0
  666. package/mobile/dist/components/Calculator/renderRate.js.map +1 -0
  667. package/mobile/dist/components/CardTransfer/CardTransferContent.d.ts +2 -2
  668. package/mobile/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js +1 -1
  669. package/mobile/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js.map +1 -1
  670. package/mobile/dist/components/CarouselCard/CarouselCardContent.d.ts +3 -2
  671. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  672. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  673. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
  674. package/mobile/dist/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
  675. package/mobile/dist/components/CarouselCatalogCard/CatalogCard.js.map +1 -1
  676. package/mobile/dist/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
  677. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +6 -7
  678. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  679. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
  680. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
  681. package/mobile/dist/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
  682. package/mobile/dist/components/ContentPage/ContentPage.js +2 -23
  683. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  684. package/mobile/dist/components/ContentPage/computeAPIFallback.d.ts +2 -2
  685. package/mobile/dist/components/ContentPage/computeAPIFallback.js +10 -27
  686. package/mobile/dist/components/ContentPage/computeAPIFallback.js.map +1 -1
  687. package/mobile/dist/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
  688. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
  689. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  690. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
  691. package/mobile/dist/components/Footer/Footer.js +7 -4
  692. package/mobile/dist/components/Footer/Footer.js.map +1 -1
  693. package/mobile/dist/components/Footer/FooterProps.d.ts +0 -2
  694. package/mobile/dist/components/Footer/SocialMedia.d.ts +2 -2
  695. package/mobile/dist/components/Header/Header.js +4 -3
  696. package/mobile/dist/components/Header/Header.js.map +1 -1
  697. package/mobile/dist/components/Header/HeaderProps.d.ts +0 -4
  698. package/mobile/dist/components/Header/HeaderSecondaryMenu.d.ts +1 -1
  699. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +10 -9
  700. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  701. package/mobile/dist/components/Header/HeaderSubMenu.js +1 -1
  702. package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
  703. package/mobile/dist/components/Header/HeaderTop.js +9 -6
  704. package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
  705. package/mobile/dist/components/Header/findActiveSubItem.js.map +1 -0
  706. package/mobile/dist/components/Header/isHrefActive.js.map +1 -0
  707. package/mobile/dist/components/Header/isTopItemActive.js.map +1 -0
  708. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
  709. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
  710. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  711. package/mobile/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  712. package/mobile/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  713. package/mobile/dist/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
  714. package/mobile/dist/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
  715. package/mobile/dist/components/MortgageFiltration/HotFilterRecord.js +5 -0
  716. package/mobile/dist/components/MortgageFiltration/HotFilterRecord.js.map +1 -0
  717. package/mobile/dist/components/MortgageFiltration/MortgageFiltration.js +24 -4
  718. package/mobile/dist/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
  719. package/mobile/dist/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
  720. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  721. package/mobile/dist/components/ProductBlock/renderBackwardButton.d.ts +2 -2
  722. package/mobile/dist/components/ProductBlock/renderBackwardButton.js.map +1 -1
  723. package/mobile/dist/components/PromoTile/PromoTileContent.d.ts +2 -2
  724. package/mobile/dist/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
  725. package/mobile/dist/components/RollupItem/RollupItem.js +1 -1
  726. package/mobile/dist/components/RollupItem/RollupItem.js.map +1 -1
  727. package/mobile/dist/components/RollupItem/renderRoundedIcon.js +1 -1
  728. package/mobile/dist/components/RollupItem/renderRoundedIcon.js.map +1 -1
  729. package/mobile/dist/components/RollupItem/rollupIconVersion.d.ts +1 -1
  730. package/mobile/dist/components/RollupItem/rollupIconVersion.js +1 -1
  731. package/mobile/dist/components/RollupItem/rollupIconVersion.js.map +1 -1
  732. package/mobile/dist/components/StepsBlock/StepsBlockContent.d.ts +6 -9
  733. package/mobile/dist/components/Tabs/Tabs.js +19 -24
  734. package/mobile/dist/components/Tabs/Tabs.js.map +1 -1
  735. package/mobile/dist/components/Tabs/renderTabs.d.ts +12 -0
  736. package/mobile/dist/components/Tabs/renderTabs.js +19 -0
  737. package/mobile/dist/components/Tabs/renderTabs.js.map +1 -0
  738. package/mobile/dist/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
  739. package/mobile/dist/components/TariffsTable/EmbeddableCellData.js.map +1 -1
  740. package/mobile/dist/components/TariffsTable/TariffsTableContent.d.ts +2 -2
  741. package/mobile/dist/hooks/useForm.d.ts +1 -0
  742. package/mobile/dist/hooks/useForm.js +5 -0
  743. package/mobile/dist/hooks/useForm.js.map +1 -1
  744. package/mobile/dist/hooks/useLink.js +3 -3
  745. package/mobile/dist/hooks/useLink.js.map +1 -1
  746. package/mobile/dist/hooks/useList.d.ts +10 -0
  747. package/mobile/dist/hooks/useList.js +13 -0
  748. package/mobile/dist/hooks/useList.js.map +1 -0
  749. package/mobile/dist/hooks/useLocation.d.ts +1 -1
  750. package/mobile/dist/hooks/useLocation.js +27 -16
  751. package/mobile/dist/hooks/useLocation.js.map +1 -1
  752. package/mobile/dist/hooks/useSWRResource.d.ts +1 -1
  753. package/mobile/dist/hooks/useSWRResource.js +2 -4
  754. package/mobile/dist/hooks/useSWRResource.js.map +1 -1
  755. package/mobile/dist/icons/IconName.d.ts +3 -3
  756. package/mobile/dist/icons/IconName.js +3 -3
  757. package/mobile/dist/icons/IconName.js.map +1 -1
  758. package/mobile/dist/services/sitemap/useSitemap.d.ts +3 -0
  759. package/mobile/dist/services/sitemap/useSitemap.js +7 -0
  760. package/mobile/dist/services/sitemap/useSitemap.js.map +1 -0
  761. package/mobile/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js +2 -2
  762. package/mobile/dist/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
  763. package/mobile/dist/ui-kit/BaseFiltration/renderFiltrationForm.js +2 -2
  764. package/mobile/dist/ui-kit/BaseFiltration/renderFiltrationForm.js.map +1 -1
  765. package/mobile/dist/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
  766. package/mobile/dist/ui-kit/BaseTile/BaseTile.js +1 -1
  767. package/mobile/dist/ui-kit/BaseTile/BaseTile.js.map +1 -1
  768. package/mobile/dist/ui-kit/BenefitsList/DefaultBenefitsList.js +5 -3
  769. package/mobile/dist/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -1
  770. package/mobile/dist/ui-kit/Button/Button.d.ts +2 -2
  771. package/mobile/dist/ui-kit/Button/Button.js.map +1 -1
  772. package/mobile/dist/ui-kit/Button/ButtonContent.d.ts +19 -0
  773. package/mobile/dist/{model/Button.js → ui-kit/Button/ButtonContent.js} +1 -1
  774. package/mobile/dist/ui-kit/Button/ButtonContent.js.map +1 -0
  775. package/mobile/dist/ui-kit/Button/ButtonInner.d.ts +2 -7
  776. package/mobile/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  777. package/mobile/dist/ui-kit/Button/ButtonProps.d.ts +4 -44
  778. package/mobile/dist/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
  779. package/mobile/dist/ui-kit/Button/ButtonsSectionContent.js +2 -0
  780. package/mobile/dist/ui-kit/Button/ButtonsSectionContent.js.map +1 -0
  781. package/mobile/dist/ui-kit/Button/renderButtonsSection.d.ts +2 -2
  782. package/mobile/dist/ui-kit/Button/renderButtonsSection.js.map +1 -1
  783. package/mobile/dist/ui-kit/CookiePopup/CookiePopup.js +6 -6
  784. package/mobile/dist/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  785. package/mobile/dist/ui-kit/DialogManager/CloseButton.d.ts +7 -0
  786. package/{dist/ui-kit/Dialog → mobile/dist/ui-kit/DialogManager}/CloseButton.js +1 -1
  787. package/mobile/dist/ui-kit/DialogManager/CloseButton.js.map +1 -0
  788. package/mobile/dist/ui-kit/DialogManager/Dialog.d.ts +7 -0
  789. package/mobile/dist/ui-kit/DialogManager/Dialog.js +17 -0
  790. package/mobile/dist/ui-kit/DialogManager/Dialog.js.map +1 -0
  791. package/mobile/dist/ui-kit/DialogManager/DialogAction.d.ts +12 -0
  792. package/mobile/dist/ui-kit/DialogManager/DialogAction.js.map +1 -0
  793. package/mobile/dist/ui-kit/DialogManager/DialogManager.d.ts +2 -0
  794. package/mobile/dist/ui-kit/DialogManager/DialogManager.js +61 -0
  795. package/mobile/dist/ui-kit/DialogManager/DialogManager.js.map +1 -0
  796. package/mobile/dist/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
  797. package/mobile/dist/ui-kit/DialogManager/useDialogManager.js +10 -0
  798. package/mobile/dist/ui-kit/DialogManager/useDialogManager.js.map +1 -0
  799. package/mobile/dist/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
  800. package/mobile/dist/ui-kit/ListControlProps.d.ts +4 -0
  801. package/mobile/dist/ui-kit/ListControlProps.js +2 -0
  802. package/mobile/dist/ui-kit/ListControlProps.js.map +1 -0
  803. package/mobile/dist/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
  804. package/mobile/dist/ui-kit/LocationDialog/LocationDialog.js +17 -26
  805. package/mobile/dist/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  806. package/mobile/dist/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
  807. package/mobile/dist/ui-kit/LocationDialog/renderForeignOffices.js +15 -0
  808. package/mobile/dist/ui-kit/LocationDialog/renderForeignOffices.js.map +1 -0
  809. package/mobile/dist/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
  810. package/mobile/dist/ui-kit/LocationDialog/renderRegion.js +8 -0
  811. package/mobile/dist/ui-kit/LocationDialog/renderRegion.js.map +1 -0
  812. package/mobile/dist/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
  813. package/mobile/dist/ui-kit/LocationDialog/renderRegionGroup.js +8 -0
  814. package/mobile/dist/ui-kit/LocationDialog/renderRegionGroup.js.map +1 -0
  815. package/mobile/dist/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
  816. package/mobile/dist/ui-kit/LocationDialog/useLocationDialog.js +14 -0
  817. package/mobile/dist/ui-kit/LocationDialog/useLocationDialog.js.map +1 -0
  818. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
  819. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js +2 -1
  820. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  821. package/mobile/dist/ui-kit/SearchBar/SearchBar.js +6 -9
  822. package/mobile/dist/ui-kit/SearchBar/SearchBar.js.map +1 -1
  823. package/mobile/dist/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
  824. package/mobile/dist/ui-kit/SearchDialog/SearchDialog.js +8 -9
  825. package/mobile/dist/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  826. package/mobile/dist/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
  827. package/mobile/dist/ui-kit/SearchDialog/useSearchDialog.js +14 -0
  828. package/mobile/dist/ui-kit/SearchDialog/useSearchDialog.js.map +1 -0
  829. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
  830. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  831. package/mobile/dist/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
  832. package/mobile/dist/ui-kit/TabsControl/ScrollableTabsControl.js +17 -0
  833. package/mobile/dist/ui-kit/TabsControl/ScrollableTabsControl.js.map +1 -0
  834. package/mobile/dist/ui-kit/TabsControl/TabItem.d.ts +11 -0
  835. package/mobile/dist/ui-kit/TabsControl/TabItem.js +38 -0
  836. package/mobile/dist/ui-kit/TabsControl/TabItem.js.map +1 -0
  837. package/mobile/dist/ui-kit/TabsControl/TabsControl.d.ts +2 -0
  838. package/mobile/dist/ui-kit/TabsControl/TabsControl.js +8 -0
  839. package/mobile/dist/ui-kit/TabsControl/TabsControl.js.map +1 -0
  840. package/mobile/dist/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
  841. package/mobile/dist/ui-kit/TabsControl/TabsControlProps.js +2 -0
  842. package/mobile/dist/ui-kit/TabsControl/TabsControlProps.js.map +1 -0
  843. package/mobile/dist/ui-kit/TabsControl/renderTab.d.ts +4 -0
  844. package/mobile/dist/ui-kit/TabsControl/renderTab.js +7 -0
  845. package/mobile/dist/ui-kit/TabsControl/renderTab.js.map +1 -0
  846. package/mobile/dist/utils/BoolComparator.d.ts +11 -0
  847. package/mobile/dist/utils/BoolComparator.js +19 -0
  848. package/mobile/dist/utils/BoolComparator.js.map +1 -0
  849. package/mobile/lib/EventBus/defaultEventBus.d.ts +4 -2
  850. package/mobile/lib/EventBus/defaultEventBus.js.map +1 -1
  851. package/mobile/lib/EventBus/useLatestEvent.d.ts +2 -0
  852. package/mobile/lib/EventBus/useLatestEvent.js +8 -0
  853. package/mobile/lib/EventBus/useLatestEvent.js.map +1 -0
  854. package/mobile/lib/common.css +1 -1
  855. package/mobile/lib/components/ApplicationForm/ApplicationFormContent.d.ts +2 -2
  856. package/mobile/lib/components/Blocks.js +2 -0
  857. package/mobile/lib/components/Blocks.js.map +1 -1
  858. package/mobile/lib/components/Bonus/BonusContent.d.ts +2 -7
  859. package/mobile/lib/components/BusinessBlock/BusinessBlockContent.d.ts +3 -2
  860. package/mobile/lib/components/ButtonsBlock/ButtonsBlockContent.d.ts +2 -2
  861. package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.js +19 -13
  862. package/mobile/lib/components/Calculator/BusinessDepositCalculatorForm.js.map +1 -1
  863. package/mobile/lib/components/Calculator/Calculator.js +28 -50
  864. package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
  865. package/mobile/lib/components/Calculator/CalculatorContent.d.ts +2 -2
  866. package/mobile/lib/components/Calculator/CalculatorValueBlock.js +2 -1
  867. package/mobile/lib/components/Calculator/CalculatorValueBlock.js.map +1 -1
  868. package/mobile/lib/components/Calculator/CreditCalculatorForm.d.ts +1 -0
  869. package/mobile/lib/components/Calculator/CreditCalculatorForm.js +18 -11
  870. package/mobile/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
  871. package/mobile/lib/components/Calculator/DepositCalculatorForm.d.ts +1 -1
  872. package/mobile/lib/components/Calculator/DepositCalculatorForm.js +13 -11
  873. package/mobile/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  874. package/mobile/lib/components/Calculator/RefinancingCalculatorForm.d.ts +1 -1
  875. package/mobile/lib/components/Calculator/RefinancingCalculatorForm.js +1 -0
  876. package/mobile/lib/components/Calculator/RefinancingCalculatorForm.js.map +1 -1
  877. package/mobile/lib/components/Calculator/renderBinaryRadioButtonGroup.d.ts +2 -1
  878. package/mobile/lib/components/Calculator/renderBinaryRadioButtonGroup.js +2 -1
  879. package/mobile/lib/components/Calculator/renderBinaryRadioButtonGroup.js.map +1 -1
  880. package/mobile/lib/components/Calculator/renderDaysInput.js +1 -1
  881. package/mobile/lib/components/Calculator/renderDaysInput.js.map +1 -1
  882. package/mobile/lib/components/Calculator/renderMonthsInput.js +1 -1
  883. package/mobile/lib/components/Calculator/renderMonthsInput.js.map +1 -1
  884. package/mobile/lib/components/Calculator/renderPaymentType.js +1 -0
  885. package/mobile/lib/components/Calculator/renderPaymentType.js.map +1 -1
  886. package/mobile/lib/components/Calculator/renderRate.d.ts +9 -0
  887. package/mobile/lib/components/Calculator/renderRate.js +13 -0
  888. package/mobile/lib/components/Calculator/renderRate.js.map +1 -0
  889. package/mobile/lib/components/CardTransfer/CardTransferContent.d.ts +2 -2
  890. package/mobile/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js +1 -1
  891. package/mobile/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js.map +1 -1
  892. package/mobile/lib/components/CarouselCard/CarouselCardContent.d.ts +3 -2
  893. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  894. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  895. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +3 -2
  896. package/mobile/lib/components/CarouselCatalogCard/CatalogCard.d.ts +2 -2
  897. package/mobile/lib/components/CarouselCatalogCard/CatalogCard.js.map +1 -1
  898. package/mobile/lib/components/CarouselProductCard/CarouselProductCardContent.d.ts +3 -2
  899. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +7 -8
  900. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  901. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -2
  902. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +4 -9
  903. package/mobile/lib/components/ContactsBlock/ContactsBlockContent.d.ts +2 -2
  904. package/mobile/lib/components/ContentPage/ContentPage.js +2 -23
  905. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  906. package/mobile/lib/components/ContentPage/computeAPIFallback.d.ts +2 -2
  907. package/mobile/lib/components/ContentPage/computeAPIFallback.js +8 -25
  908. package/mobile/lib/components/ContentPage/computeAPIFallback.js.map +1 -1
  909. package/mobile/lib/components/ErrorBlock/ErrorBlockContent.d.ts +2 -2
  910. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +2 -2
  911. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  912. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +2 -2
  913. package/mobile/lib/components/Footer/Footer.js +7 -4
  914. package/mobile/lib/components/Footer/Footer.js.map +1 -1
  915. package/mobile/lib/components/Footer/FooterProps.d.ts +0 -2
  916. package/mobile/lib/components/Footer/SocialMedia.d.ts +2 -2
  917. package/mobile/lib/components/Header/Header.js +4 -3
  918. package/mobile/lib/components/Header/Header.js.map +1 -1
  919. package/mobile/lib/components/Header/HeaderProps.d.ts +0 -4
  920. package/mobile/lib/components/Header/HeaderSecondaryMenu.d.ts +1 -1
  921. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +10 -9
  922. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  923. package/mobile/lib/components/Header/HeaderSubMenu.js +1 -1
  924. package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
  925. package/mobile/lib/components/Header/HeaderTop.js +9 -6
  926. package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
  927. package/mobile/lib/components/Header/findActiveSubItem.js.map +1 -0
  928. package/mobile/lib/components/Header/isHrefActive.js.map +1 -0
  929. package/mobile/lib/components/Header/isTopItemActive.js.map +1 -0
  930. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +2 -2
  931. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +2 -2
  932. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  933. package/mobile/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  934. package/mobile/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  935. package/mobile/lib/components/MobileAppTile/MobileAppTileContent.d.ts +2 -2
  936. package/mobile/lib/components/MortgageFiltration/HotFilterRecord.d.ts +11 -0
  937. package/mobile/lib/components/MortgageFiltration/HotFilterRecord.js +3 -0
  938. package/mobile/lib/components/MortgageFiltration/HotFilterRecord.js.map +1 -0
  939. package/mobile/lib/components/MortgageFiltration/MortgageFiltration.js +24 -4
  940. package/mobile/lib/components/MortgageFiltration/MortgageFiltration.js.map +1 -1
  941. package/mobile/lib/components/MortgageFiltration/MortgageFiltrationContent.d.ts +12 -0
  942. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  943. package/mobile/lib/components/ProductBlock/renderBackwardButton.d.ts +2 -2
  944. package/mobile/lib/components/ProductBlock/renderBackwardButton.js.map +1 -1
  945. package/mobile/lib/components/PromoTile/PromoTileContent.d.ts +2 -2
  946. package/mobile/lib/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.d.ts +2 -2
  947. package/mobile/lib/components/RollupItem/RollupItem.js +1 -1
  948. package/mobile/lib/components/RollupItem/RollupItem.js.map +1 -1
  949. package/mobile/lib/components/RollupItem/renderRoundedIcon.js +1 -1
  950. package/mobile/lib/components/RollupItem/renderRoundedIcon.js.map +1 -1
  951. package/mobile/lib/components/RollupItem/rollupIconVersion.d.ts +1 -1
  952. package/mobile/lib/components/RollupItem/rollupIconVersion.js +1 -1
  953. package/mobile/lib/components/RollupItem/rollupIconVersion.js.map +1 -1
  954. package/mobile/lib/components/StepsBlock/StepsBlockContent.d.ts +6 -9
  955. package/mobile/lib/components/Tabs/Tabs.js +20 -25
  956. package/mobile/lib/components/Tabs/Tabs.js.map +1 -1
  957. package/mobile/lib/components/Tabs/renderTabs.d.ts +12 -0
  958. package/mobile/lib/components/Tabs/renderTabs.js +16 -0
  959. package/mobile/lib/components/Tabs/renderTabs.js.map +1 -0
  960. package/mobile/lib/components/TariffsTable/EmbeddableCellData.d.ts +3 -2
  961. package/mobile/lib/components/TariffsTable/EmbeddableCellData.js.map +1 -1
  962. package/mobile/lib/components/TariffsTable/TariffsTableContent.d.ts +2 -2
  963. package/mobile/lib/hooks/useForm.d.ts +1 -0
  964. package/mobile/lib/hooks/useForm.js +5 -0
  965. package/mobile/lib/hooks/useForm.js.map +1 -1
  966. package/mobile/lib/hooks/useLink.js +3 -3
  967. package/mobile/lib/hooks/useLink.js.map +1 -1
  968. package/mobile/lib/hooks/useList.d.ts +10 -0
  969. package/mobile/lib/hooks/useList.js +10 -0
  970. package/mobile/lib/hooks/useList.js.map +1 -0
  971. package/mobile/lib/hooks/useLocation.d.ts +1 -1
  972. package/mobile/lib/hooks/useLocation.js +28 -17
  973. package/mobile/lib/hooks/useLocation.js.map +1 -1
  974. package/mobile/lib/hooks/useSWRResource.d.ts +1 -1
  975. package/mobile/lib/hooks/useSWRResource.js +2 -4
  976. package/mobile/lib/hooks/useSWRResource.js.map +1 -1
  977. package/mobile/lib/icons/IconName.d.ts +3 -3
  978. package/mobile/lib/icons/IconName.js +3 -3
  979. package/mobile/lib/icons/IconName.js.map +1 -1
  980. package/mobile/lib/services/sitemap/useSitemap.d.ts +3 -0
  981. package/mobile/lib/services/sitemap/useSitemap.js +4 -0
  982. package/mobile/lib/services/sitemap/useSitemap.js.map +1 -0
  983. package/mobile/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js +2 -2
  984. package/mobile/lib/ui-kit/BaseFiltration/BaseFiltrationInner.js.map +1 -1
  985. package/mobile/lib/ui-kit/BaseFiltration/renderFiltrationForm.js +2 -2
  986. package/mobile/lib/ui-kit/BaseFiltration/renderFiltrationForm.js.map +1 -1
  987. package/mobile/lib/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +2 -2
  988. package/mobile/lib/ui-kit/BaseTile/BaseTile.js +1 -1
  989. package/mobile/lib/ui-kit/BaseTile/BaseTile.js.map +1 -1
  990. package/mobile/lib/ui-kit/BenefitsList/DefaultBenefitsList.js +5 -3
  991. package/mobile/lib/ui-kit/BenefitsList/DefaultBenefitsList.js.map +1 -1
  992. package/mobile/lib/ui-kit/Button/Button.d.ts +2 -2
  993. package/mobile/lib/ui-kit/Button/Button.js.map +1 -1
  994. package/mobile/lib/ui-kit/Button/ButtonContent.d.ts +19 -0
  995. package/mobile/lib/ui-kit/Button/ButtonContent.js +2 -0
  996. package/mobile/lib/ui-kit/Button/ButtonContent.js.map +1 -0
  997. package/mobile/lib/ui-kit/Button/ButtonInner.d.ts +2 -7
  998. package/mobile/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  999. package/mobile/lib/ui-kit/Button/ButtonProps.d.ts +4 -44
  1000. package/mobile/lib/ui-kit/Button/ButtonsSectionContent.d.ts +7 -0
  1001. package/mobile/lib/ui-kit/Button/ButtonsSectionContent.js +2 -0
  1002. package/mobile/lib/ui-kit/Button/ButtonsSectionContent.js.map +1 -0
  1003. package/mobile/lib/ui-kit/Button/renderButtonsSection.d.ts +2 -2
  1004. package/mobile/lib/ui-kit/Button/renderButtonsSection.js.map +1 -1
  1005. package/mobile/lib/ui-kit/CookiePopup/CookiePopup.js +6 -6
  1006. package/mobile/lib/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  1007. package/mobile/lib/ui-kit/DialogManager/CloseButton.d.ts +7 -0
  1008. package/mobile/lib/ui-kit/{Dialog → DialogManager}/CloseButton.js +1 -1
  1009. package/mobile/lib/ui-kit/DialogManager/CloseButton.js.map +1 -0
  1010. package/mobile/lib/ui-kit/DialogManager/Dialog.d.ts +7 -0
  1011. package/mobile/lib/ui-kit/DialogManager/Dialog.js +15 -0
  1012. package/mobile/lib/ui-kit/DialogManager/Dialog.js.map +1 -0
  1013. package/mobile/lib/ui-kit/DialogManager/DialogAction.d.ts +12 -0
  1014. package/mobile/lib/ui-kit/DialogManager/DialogAction.js.map +1 -0
  1015. package/mobile/lib/ui-kit/DialogManager/DialogManager.d.ts +2 -0
  1016. package/mobile/lib/ui-kit/DialogManager/DialogManager.js +59 -0
  1017. package/mobile/lib/ui-kit/DialogManager/DialogManager.js.map +1 -0
  1018. package/mobile/lib/ui-kit/DialogManager/useDialogManager.d.ts +10 -0
  1019. package/mobile/lib/ui-kit/DialogManager/useDialogManager.js +7 -0
  1020. package/mobile/lib/ui-kit/DialogManager/useDialogManager.js.map +1 -0
  1021. package/mobile/lib/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
  1022. package/mobile/lib/ui-kit/ListControlProps.d.ts +4 -0
  1023. package/mobile/lib/ui-kit/ListControlProps.js +2 -0
  1024. package/mobile/lib/ui-kit/ListControlProps.js.map +1 -0
  1025. package/mobile/lib/ui-kit/LocationDialog/LocationDialog.d.ts +2 -3
  1026. package/mobile/lib/ui-kit/LocationDialog/LocationDialog.js +16 -25
  1027. package/mobile/lib/ui-kit/LocationDialog/LocationDialog.js.map +1 -1
  1028. package/mobile/lib/ui-kit/LocationDialog/renderForeignOffices.d.ts +5 -0
  1029. package/mobile/lib/ui-kit/LocationDialog/renderForeignOffices.js +12 -0
  1030. package/mobile/lib/ui-kit/LocationDialog/renderForeignOffices.js.map +1 -0
  1031. package/mobile/lib/ui-kit/LocationDialog/renderRegion.d.ts +3 -0
  1032. package/mobile/lib/ui-kit/LocationDialog/renderRegion.js +5 -0
  1033. package/mobile/lib/ui-kit/LocationDialog/renderRegion.js.map +1 -0
  1034. package/mobile/lib/ui-kit/LocationDialog/renderRegionGroup.d.ts +3 -0
  1035. package/mobile/lib/ui-kit/LocationDialog/renderRegionGroup.js +5 -0
  1036. package/mobile/lib/ui-kit/LocationDialog/renderRegionGroup.js.map +1 -0
  1037. package/mobile/lib/ui-kit/LocationDialog/useLocationDialog.d.ts +5 -0
  1038. package/mobile/lib/ui-kit/LocationDialog/useLocationDialog.js +11 -0
  1039. package/mobile/lib/ui-kit/LocationDialog/useLocationDialog.js.map +1 -0
  1040. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -0
  1041. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js +2 -1
  1042. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  1043. package/mobile/lib/ui-kit/SearchBar/SearchBar.js +6 -9
  1044. package/mobile/lib/ui-kit/SearchBar/SearchBar.js.map +1 -1
  1045. package/mobile/lib/ui-kit/SearchDialog/SearchDialog.d.ts +1 -3
  1046. package/mobile/lib/ui-kit/SearchDialog/SearchDialog.js +7 -8
  1047. package/mobile/lib/ui-kit/SearchDialog/SearchDialog.js.map +1 -1
  1048. package/mobile/lib/ui-kit/SearchDialog/useSearchDialog.d.ts +6 -0
  1049. package/mobile/lib/ui-kit/SearchDialog/useSearchDialog.js +11 -0
  1050. package/mobile/lib/ui-kit/SearchDialog/useSearchDialog.js.map +1 -0
  1051. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
  1052. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  1053. package/mobile/lib/ui-kit/TabsControl/ScrollableTabsControl.d.ts +2 -0
  1054. package/mobile/lib/ui-kit/TabsControl/ScrollableTabsControl.js +15 -0
  1055. package/mobile/lib/ui-kit/TabsControl/ScrollableTabsControl.js.map +1 -0
  1056. package/mobile/lib/ui-kit/TabsControl/TabItem.d.ts +11 -0
  1057. package/mobile/lib/ui-kit/TabsControl/TabItem.js +36 -0
  1058. package/mobile/lib/ui-kit/TabsControl/TabItem.js.map +1 -0
  1059. package/mobile/lib/ui-kit/TabsControl/TabsControl.d.ts +2 -0
  1060. package/mobile/lib/ui-kit/TabsControl/TabsControl.js +6 -0
  1061. package/mobile/lib/ui-kit/TabsControl/TabsControl.js.map +1 -0
  1062. package/mobile/lib/ui-kit/TabsControl/TabsControlProps.d.ts +6 -0
  1063. package/mobile/lib/ui-kit/TabsControl/TabsControlProps.js +2 -0
  1064. package/mobile/lib/ui-kit/TabsControl/TabsControlProps.js.map +1 -0
  1065. package/mobile/lib/ui-kit/TabsControl/renderTab.d.ts +4 -0
  1066. package/mobile/lib/ui-kit/TabsControl/renderTab.js +4 -0
  1067. package/mobile/lib/ui-kit/TabsControl/renderTab.js.map +1 -0
  1068. package/mobile/lib/utils/BoolComparator.d.ts +11 -0
  1069. package/mobile/lib/utils/BoolComparator.js +12 -0
  1070. package/mobile/lib/utils/BoolComparator.js.map +1 -0
  1071. package/mobile/src/EventBus/defaultEventBus.ts +4 -2
  1072. package/mobile/src/EventBus/useLatestEvent.ts +16 -0
  1073. package/mobile/src/components/ApplicationForm/ApplicationFormContent.ts +2 -2
  1074. package/mobile/src/components/Blocks.ts +2 -0
  1075. package/mobile/src/components/Bonus/BonusContent.ts +5 -9
  1076. package/mobile/src/components/BusinessBlock/BusinessBlockContent.ts +3 -3
  1077. package/mobile/src/components/ButtonsBlock/ButtonsBlockContent.ts +2 -2
  1078. package/mobile/src/components/Calculator/BusinessDepositCalculatorForm.tsx +36 -41
  1079. package/mobile/src/components/Calculator/Calculator.tsx +69 -118
  1080. package/mobile/src/components/Calculator/CalculatorContent.ts +2 -2
  1081. package/mobile/src/components/Calculator/CalculatorValueBlock.tsx +3 -1
  1082. package/mobile/src/components/Calculator/CreditCalculatorForm.tsx +29 -27
  1083. package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +23 -16
  1084. package/mobile/src/components/Calculator/RefinancingCalculatorForm.tsx +5 -2
  1085. package/mobile/src/components/Calculator/renderBinaryRadioButtonGroup.tsx +4 -0
  1086. package/mobile/src/components/Calculator/renderDaysInput.tsx +0 -1
  1087. package/mobile/src/components/Calculator/renderMonthsInput.tsx +0 -1
  1088. package/mobile/src/components/Calculator/renderPaymentType.tsx +1 -0
  1089. package/mobile/src/components/Calculator/renderRate.tsx +37 -0
  1090. package/mobile/src/components/CardTransfer/CardTransferContent.ts +2 -2
  1091. package/mobile/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.tsx +1 -1
  1092. package/mobile/src/components/CarouselCard/CarouselCardContent.ts +3 -3
  1093. package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +7 -6
  1094. package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCardContent.ts +3 -3
  1095. package/mobile/src/components/CarouselCatalogCard/CatalogCard.ts +2 -2
  1096. package/mobile/src/components/CarouselProductCard/CarouselProductCardContent.ts +2 -2
  1097. package/mobile/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +15 -33
  1098. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +2 -2
  1099. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCardContent.ts +4 -9
  1100. package/mobile/src/components/ContactsBlock/ContactsBlockContent.ts +2 -2
  1101. package/mobile/src/components/ContentPage/ContentPage.tsx +18 -54
  1102. package/mobile/src/components/ContentPage/computeAPIFallback.ts +10 -27
  1103. package/mobile/src/components/ErrorBlock/ErrorBlockContent.ts +2 -2
  1104. package/mobile/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +2 -2
  1105. package/mobile/src/components/ExchangeRateTile/ExchangeRateTileContent.ts +2 -2
  1106. package/mobile/src/components/Footer/Footer.tsx +8 -8
  1107. package/mobile/src/components/Footer/FooterProps.ts +1 -4
  1108. package/mobile/src/components/Footer/SocialMedia.tsx +2 -2
  1109. package/mobile/src/components/Header/Header.tsx +4 -3
  1110. package/mobile/src/components/Header/HeaderProps.ts +1 -6
  1111. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +13 -11
  1112. package/mobile/src/components/Header/HeaderSubMenu.tsx +1 -1
  1113. package/mobile/src/components/Header/HeaderTop.tsx +27 -14
  1114. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockContent.ts +2 -2
  1115. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +2 -2
  1116. package/mobile/src/components/MobileAppTile/MobileAppTile.tsx +2 -1
  1117. package/mobile/src/components/MobileAppTile/MobileAppTileContent.ts +2 -2
  1118. package/mobile/src/components/MortgageFiltration/HotFilterRecord.ts +14 -0
  1119. package/mobile/src/components/MortgageFiltration/MortgageFiltration.example.json +54 -4
  1120. package/mobile/src/components/MortgageFiltration/MortgageFiltration.tsx +51 -4
  1121. package/mobile/src/components/MortgageFiltration/MortgageFiltrationContent.ts +13 -0
  1122. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +2 -2
  1123. package/mobile/src/components/ProductBlock/renderBackwardButton.tsx +2 -2
  1124. package/mobile/src/components/PromoTile/PromoTileContent.ts +2 -2
  1125. package/mobile/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.ts +2 -2
  1126. package/mobile/src/components/RollupItem/RollupItem.tsx +1 -1
  1127. package/mobile/src/components/RollupItem/renderRoundedIcon.tsx +1 -1
  1128. package/mobile/src/components/RollupItem/rollupIconVersion.tsx +1 -1
  1129. package/mobile/src/components/StepsBlock/StepsBlockContent.ts +9 -9
  1130. package/mobile/src/components/Tabs/Tabs.tsx +42 -53
  1131. package/mobile/src/components/Tabs/renderTabs.tsx +37 -0
  1132. package/mobile/src/components/TariffsTable/EmbeddableCellData.tsx +3 -2
  1133. package/mobile/src/components/TariffsTable/TariffsTableContent.ts +2 -2
  1134. package/mobile/src/hooks/useForm.ts +7 -0
  1135. package/mobile/src/hooks/useLink.ts +3 -3
  1136. package/mobile/src/hooks/useList.ts +24 -0
  1137. package/mobile/src/hooks/useLocation.ts +34 -28
  1138. package/mobile/src/hooks/useSWRResource.ts +9 -4
  1139. package/mobile/src/icons/ArrowDownSolidIcon.svg +1 -1
  1140. package/mobile/src/icons/ArrowUpSolidIcon.svg +1 -1
  1141. package/mobile/src/icons/IconName.ts +4 -4
  1142. package/mobile/src/services/sitemap/useSitemap.ts +7 -0
  1143. package/mobile/src/ui-kit/BaseFiltration/BaseFiltrationInner.tsx +2 -2
  1144. package/mobile/src/ui-kit/BaseFiltration/renderFiltrationForm.tsx +4 -4
  1145. package/mobile/src/ui-kit/BaseProductTile/BaseProductTileContent.ts +2 -2
  1146. package/mobile/src/ui-kit/BaseTile/BaseTile.tsx +1 -1
  1147. package/mobile/src/ui-kit/BenefitsList/DefaultBenefitsList.tsx +8 -3
  1148. package/mobile/src/ui-kit/Button/Button.tsx +14 -16
  1149. package/mobile/src/ui-kit/Button/ButtonContent.ts +21 -0
  1150. package/mobile/src/ui-kit/Button/ButtonInner.tsx +5 -9
  1151. package/mobile/src/ui-kit/Button/ButtonProps.ts +4 -49
  1152. package/mobile/src/ui-kit/Button/ButtonsSectionContent.ts +8 -0
  1153. package/mobile/src/ui-kit/Button/renderButtonsSection.tsx +3 -3
  1154. package/mobile/src/ui-kit/CookiePopup/CookiePopup.tsx +12 -17
  1155. package/mobile/src/ui-kit/{Dialog → DialogManager}/CloseButton.tsx +3 -3
  1156. package/mobile/src/ui-kit/DialogManager/Dialog.tsx +31 -0
  1157. package/mobile/src/ui-kit/DialogManager/DialogAction.ts +15 -0
  1158. package/mobile/src/ui-kit/DialogManager/DialogManager.tsx +85 -0
  1159. package/mobile/src/ui-kit/DialogManager/useDialogManager.ts +14 -0
  1160. package/mobile/src/ui-kit/InputRange/InputRangeProps.ts +1 -0
  1161. package/mobile/src/ui-kit/ListControlProps.ts +5 -0
  1162. package/mobile/src/ui-kit/LocationDialog/LocationDialog.tsx +57 -138
  1163. package/mobile/src/ui-kit/LocationDialog/renderForeignOffices.tsx +37 -0
  1164. package/mobile/src/ui-kit/LocationDialog/renderRegion.tsx +15 -0
  1165. package/mobile/src/ui-kit/LocationDialog/renderRegionGroup.tsx +15 -0
  1166. package/mobile/src/ui-kit/LocationDialog/useLocationDialog.tsx +11 -0
  1167. package/mobile/src/ui-kit/RadioButtonGroup/RadioButtonGroup.tsx +10 -2
  1168. package/mobile/src/ui-kit/SearchBar/SearchBar.tsx +14 -15
  1169. package/mobile/src/ui-kit/SearchDialog/SearchDialog.tsx +8 -10
  1170. package/mobile/src/ui-kit/SearchDialog/useSearchDialog.tsx +12 -0
  1171. package/mobile/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +1 -1
  1172. package/mobile/src/ui-kit/TabsControl/ScrollableTabsControl.tsx +41 -0
  1173. package/mobile/src/ui-kit/TabsControl/TabItem.tsx +81 -0
  1174. package/mobile/src/ui-kit/TabsControl/TabsControl.tsx +12 -0
  1175. package/mobile/src/ui-kit/TabsControl/TabsControlProps.ts +7 -0
  1176. package/mobile/src/ui-kit/TabsControl/renderTab.tsx +15 -0
  1177. package/mobile/src/utils/BoolComparator.ts +47 -0
  1178. package/package.json +1 -1
  1179. package/src/EventBus/defaultEventBus.ts +4 -2
  1180. package/src/EventBus/useLatestEvent.ts +16 -0
  1181. package/src/components/ApplicationForm/ApplicationFormContent.ts +2 -2
  1182. package/src/components/Blocks.mobile.ts +2 -0
  1183. package/src/components/Bonus/BonusContent.ts +5 -9
  1184. package/src/components/BusinessBlock/BusinessBlock.fixture.tsx +2 -3
  1185. package/src/components/BusinessBlock/BusinessBlockContent.ts +3 -3
  1186. package/src/components/ButtonsBlock/ButtonsBlock.fixture.mobile.tsx +2 -2
  1187. package/src/components/ButtonsBlock/ButtonsBlock.fixture.tsx +2 -2
  1188. package/src/components/ButtonsBlock/ButtonsBlockContent.ts +2 -2
  1189. package/src/components/Calculator/BusinessDepositCalculatorForm.tsx +36 -41
  1190. package/src/components/Calculator/Calculator.fixture.mobile.tsx +114 -0
  1191. package/src/components/Calculator/Calculator.fixture.tsx +2 -2
  1192. package/src/components/Calculator/Calculator.mobile.tsx +85 -0
  1193. package/src/components/Calculator/CalculatorContent.ts +2 -2
  1194. package/src/components/Calculator/CalculatorValueBlock.tsx +3 -1
  1195. package/src/components/Calculator/CreditCalculatorForm.tsx +29 -27
  1196. package/src/components/Calculator/DepositCalculatorForm.tsx +23 -16
  1197. package/src/components/Calculator/RefinancingCalculatorForm.tsx +5 -2
  1198. package/src/components/Calculator/renderBinaryRadioButtonGroup.tsx +4 -0
  1199. package/src/components/Calculator/renderDaysInput.tsx +0 -1
  1200. package/src/components/Calculator/renderMonthsInput.tsx +0 -1
  1201. package/src/components/Calculator/renderPaymentType.tsx +1 -0
  1202. package/src/components/Calculator/renderRate.tsx +37 -0
  1203. package/src/components/CardTransfer/CardTransferContent.ts +2 -2
  1204. package/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.mobile.tsx +1 -1
  1205. package/src/components/CarouselCard/CarouselCardContent.ts +3 -3
  1206. package/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +7 -6
  1207. package/src/components/CarouselCatalogCard/CarouselCatalogCardContent.ts +3 -3
  1208. package/src/components/CarouselCatalogCard/CatalogCard.ts +2 -2
  1209. package/src/components/CarouselProductCard/CarouselProductCard.fixture.tsx +3 -3
  1210. package/src/components/CarouselProductCard/CarouselProductCardContent.ts +2 -2
  1211. package/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +15 -33
  1212. package/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +2 -2
  1213. package/src/components/CarouselTariffsCard/CarouselTariffsCard.fixture.mobile.tsx +3 -2
  1214. package/src/components/CarouselTariffsCard/CarouselTariffsCard.fixture.tsx +4 -4
  1215. package/src/components/CarouselTariffsCard/CarouselTariffsCardContent.ts +4 -9
  1216. package/src/components/ContactsBlock/ContactsBlockContent.ts +2 -2
  1217. package/src/components/ContentPage/ContentPage.tsx +18 -54
  1218. package/src/components/ContentPage/computeAPIFallback.ts +10 -27
  1219. package/src/components/ErrorBlock/ErrorBlockContent.ts +2 -2
  1220. package/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +2 -2
  1221. package/src/components/ExchangeRateTile/ExchangeRateTileContent.ts +2 -2
  1222. package/src/components/Footer/Footer.fixture.mobile.tsx +3 -3
  1223. package/src/components/Footer/Footer.fixture.tsx +3 -5
  1224. package/src/components/Footer/Footer.mobile.tsx +8 -8
  1225. package/src/components/Footer/Footer.tsx +5 -3
  1226. package/src/components/Footer/FooterProps.ts +1 -4
  1227. package/src/components/Footer/SocialMedia.tsx +2 -2
  1228. package/src/components/Header/Header.fixture.mobile.tsx +14 -5
  1229. package/src/components/Header/Header.fixture.tsx +13 -4
  1230. package/src/components/Header/Header.mobile.tsx +4 -3
  1231. package/src/components/Header/Header.tsx +7 -11
  1232. package/src/components/Header/HeaderProps.ts +1 -6
  1233. package/src/components/Header/HeaderSecondaryMenu.tsx +13 -11
  1234. package/src/components/Header/HeaderSubMenu.tsx +1 -1
  1235. package/src/components/Header/HeaderTop.tsx +27 -14
  1236. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.tsx +2 -2
  1237. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockContent.ts +2 -2
  1238. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +2 -2
  1239. package/src/components/MobileAppTile/MobileAppTile.fixture.mobile.tsx +8 -19
  1240. package/src/components/MobileAppTile/MobileAppTile.fixture.tsx +10 -12
  1241. package/src/components/MobileAppTile/MobileAppTile.tsx +2 -1
  1242. package/src/components/MobileAppTile/MobileAppTileContent.ts +2 -2
  1243. package/src/components/MortgageFiltration/HotFilterRecord.ts +14 -0
  1244. package/src/components/MortgageFiltration/MortgageFiltration.example.json +54 -4
  1245. package/src/components/MortgageFiltration/MortgageFiltration.fixture.tsx +51 -14
  1246. package/src/components/MortgageFiltration/MortgageFiltration.tsx +51 -4
  1247. package/src/components/MortgageFiltration/MortgageFiltrationContent.ts +13 -0
  1248. package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +2 -2
  1249. package/src/components/ProductBlock/ProductBlock.fixture.tsx +4 -4
  1250. package/src/components/ProductBlock/ProductBlockContent.ts +2 -2
  1251. package/src/components/ProductBlock/renderBackwardButton.tsx +2 -2
  1252. package/src/components/ProductGallery/ProductGallery.fixture.mobile.tsx +3 -3
  1253. package/src/components/ProductGallery/ProductGallery.fixture.tsx +3 -3
  1254. package/src/components/PromoTile/PromoTileContent.ts +2 -2
  1255. package/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.fixture.mobile.tsx +2 -2
  1256. package/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfo.fixture.tsx +2 -2
  1257. package/src/components/RepresentativeOfficeInfo/RepresentativeOfficeInfoContent.ts +2 -2
  1258. package/src/components/RollupItem/RollupItem.tsx +1 -1
  1259. package/src/components/RollupItem/renderRoundedIcon.mobile.tsx +1 -1
  1260. package/src/components/RollupItem/rollupIconVersion.mobile.tsx +1 -1
  1261. package/src/components/StepsBlock/StepsBlockContent.ts +9 -9
  1262. package/src/components/Tabs/Tabs.tsx +42 -53
  1263. package/src/components/Tabs/renderTabs.tsx +37 -0
  1264. package/src/components/TariffsTable/EmbeddableCellData.mobile.tsx +3 -2
  1265. package/src/components/TariffsTable/EmbeddableCellData.tsx +3 -2
  1266. package/src/components/TariffsTable/TariffsTableContent.ts +2 -2
  1267. package/src/hooks/useForm.ts +7 -0
  1268. package/src/hooks/useLink.ts +3 -3
  1269. package/src/hooks/useList.ts +24 -0
  1270. package/src/hooks/useLocation.ts +34 -28
  1271. package/src/hooks/useSWRResource.ts +9 -4
  1272. package/src/icons/ArrowDownSolidIcon.svg +1 -1
  1273. package/src/icons/ArrowUpSolidIcon.svg +1 -1
  1274. package/src/icons/IconName.ts +4 -4
  1275. package/src/services/sitemap/useSitemap.ts +7 -0
  1276. package/src/ui-kit/BaseFiltration/BaseFiltrationInner.tsx +2 -2
  1277. package/src/ui-kit/BaseFiltration/renderFiltrationForm.tsx +4 -4
  1278. package/src/ui-kit/BaseProductTile/BaseProductTileContent.ts +2 -2
  1279. package/src/ui-kit/BaseTile/BaseTile.tsx +1 -1
  1280. package/src/ui-kit/BenefitsList/DefaultBenefitsList.tsx +8 -3
  1281. package/src/ui-kit/Button/Button.tsx +14 -16
  1282. package/src/ui-kit/Button/ButtonContent.ts +21 -0
  1283. package/src/ui-kit/Button/ButtonInner.tsx +5 -9
  1284. package/src/ui-kit/Button/ButtonProps.ts +4 -49
  1285. package/src/ui-kit/Button/ButtonsSectionContent.ts +8 -0
  1286. package/src/ui-kit/Button/renderButtonsSection.tsx +3 -3
  1287. package/src/ui-kit/CookiePopup/CookiePopup.tsx +12 -17
  1288. package/src/ui-kit/{Dialog → DialogManager}/CloseButton.tsx +3 -3
  1289. package/src/ui-kit/DialogManager/Dialog.tsx +31 -0
  1290. package/src/ui-kit/DialogManager/DialogAction.ts +15 -0
  1291. package/src/ui-kit/DialogManager/DialogManager.tsx +85 -0
  1292. package/src/ui-kit/DialogManager/useDialogManager.ts +14 -0
  1293. package/src/ui-kit/InputRange/InputRangeProps.ts +1 -0
  1294. package/src/ui-kit/ListControlProps.ts +5 -0
  1295. package/src/ui-kit/LocationDialog/LocationDialog.fixture.tsx +1 -74
  1296. package/src/ui-kit/LocationDialog/LocationDialog.tsx +57 -138
  1297. package/src/ui-kit/LocationDialog/renderForeignOffices.tsx +37 -0
  1298. package/src/ui-kit/LocationDialog/renderRegion.tsx +15 -0
  1299. package/src/ui-kit/LocationDialog/renderRegionGroup.tsx +15 -0
  1300. package/src/ui-kit/LocationDialog/useLocationDialog.tsx +11 -0
  1301. package/src/ui-kit/RadioButtonGroup/RadioButtonGroup.tsx +10 -2
  1302. package/src/ui-kit/SearchBar/SearchBar.tsx +14 -15
  1303. package/src/ui-kit/SearchDialog/SearchDialog.tsx +8 -10
  1304. package/src/ui-kit/SearchDialog/useSearchDialog.tsx +12 -0
  1305. package/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +1 -1
  1306. package/src/ui-kit/TabsControl/ScrollableTabsControl.tsx +41 -0
  1307. package/src/ui-kit/TabsControl/TabItem.tsx +81 -0
  1308. package/src/ui-kit/TabsControl/TabsControl.fixture.tsx +103 -0
  1309. package/src/ui-kit/TabsControl/TabsControl.tsx +12 -0
  1310. package/src/ui-kit/TabsControl/TabsControlProps.ts +7 -0
  1311. package/src/ui-kit/TabsControl/renderTab.tsx +15 -0
  1312. package/src/utils/BoolComparator.ts +47 -0
  1313. package/bundle/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
  1314. package/bundle/components/CarouselProgramsCard/programCardStyles.mobile.d.ts +0 -2
  1315. package/bundle/components/Tabs/CenteredTabs.d.ts +0 -7
  1316. package/bundle/components/Tabs/LinkTab.d.ts +0 -9
  1317. package/bundle/components/Tabs/ScrollableTabs.d.ts +0 -8
  1318. package/bundle/components/Tabs/renderGroupTab.d.ts +0 -4
  1319. package/bundle/components/Tabs/renderTab.d.ts +0 -11
  1320. package/bundle/components/Tabs/tabItemClasses.d.ts +0 -11
  1321. package/bundle/hooks/useCachedAsyncData.d.ts +0 -2
  1322. package/bundle/model/Button.d.ts +0 -15
  1323. package/bundle/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
  1324. package/bundle/ui-kit/Dialog/DialogAction.d.ts +0 -12
  1325. package/bundle/ui-kit/Dialog/useDialog.d.ts +0 -4
  1326. package/bundle/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
  1327. package/bundle/ui-kit/Dialog/useDialogProps.d.ts +0 -7
  1328. package/bundle/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
  1329. package/dist/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
  1330. package/dist/components/CarouselProgramsCard/programCardStyles.js +0 -5
  1331. package/dist/components/CarouselProgramsCard/programCardStyles.js.map +0 -1
  1332. package/dist/components/CarouselProgramsCard/programCardStyles.mobile.d.ts +0 -2
  1333. package/dist/components/CarouselProgramsCard/programCardStyles.mobile.js +0 -5
  1334. package/dist/components/CarouselProgramsCard/programCardStyles.mobile.js.map +0 -1
  1335. package/dist/components/Tabs/CenteredTabs.d.ts +0 -7
  1336. package/dist/components/Tabs/CenteredTabs.js +0 -7
  1337. package/dist/components/Tabs/CenteredTabs.js.map +0 -1
  1338. package/dist/components/Tabs/LinkTab.d.ts +0 -9
  1339. package/dist/components/Tabs/LinkTab.js +0 -19
  1340. package/dist/components/Tabs/LinkTab.js.map +0 -1
  1341. package/dist/components/Tabs/ScrollableTabs.d.ts +0 -8
  1342. package/dist/components/Tabs/ScrollableTabs.js +0 -17
  1343. package/dist/components/Tabs/ScrollableTabs.js.map +0 -1
  1344. package/dist/components/Tabs/renderGroupTab.d.ts +0 -4
  1345. package/dist/components/Tabs/renderGroupTab.js +0 -20
  1346. package/dist/components/Tabs/renderGroupTab.js.map +0 -1
  1347. package/dist/components/Tabs/renderTab.d.ts +0 -11
  1348. package/dist/components/Tabs/renderTab.js +0 -24
  1349. package/dist/components/Tabs/renderTab.js.map +0 -1
  1350. package/dist/components/Tabs/tabItemClasses.d.ts +0 -11
  1351. package/dist/components/Tabs/tabItemClasses.js +0 -48
  1352. package/dist/components/Tabs/tabItemClasses.js.map +0 -1
  1353. package/dist/hooks/useCachedAsyncData.d.ts +0 -2
  1354. package/dist/hooks/useCachedAsyncData.js +0 -25
  1355. package/dist/hooks/useCachedAsyncData.js.map +0 -1
  1356. package/dist/model/Button.d.ts +0 -15
  1357. package/dist/model/Button.js.map +0 -1
  1358. package/dist/services/sitemap/findActiveSubItem.js.map +0 -1
  1359. package/dist/services/sitemap/isHrefActive.js.map +0 -1
  1360. package/dist/services/sitemap/isTopItemActive.js.map +0 -1
  1361. package/dist/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
  1362. package/dist/ui-kit/BaseTile/getTileRightPadding.js +0 -17
  1363. package/dist/ui-kit/BaseTile/getTileRightPadding.js.map +0 -1
  1364. package/dist/ui-kit/Dialog/CloseButton.js.map +0 -1
  1365. package/dist/ui-kit/Dialog/Dialog.js +0 -22
  1366. package/dist/ui-kit/Dialog/Dialog.js.map +0 -1
  1367. package/dist/ui-kit/Dialog/DialogAction.d.ts +0 -12
  1368. package/dist/ui-kit/Dialog/DialogAction.js.map +0 -1
  1369. package/dist/ui-kit/Dialog/useDialog.d.ts +0 -4
  1370. package/dist/ui-kit/Dialog/useDialog.js +0 -9
  1371. package/dist/ui-kit/Dialog/useDialog.js.map +0 -1
  1372. package/dist/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
  1373. package/dist/ui-kit/Dialog/useDialogHandlers.js +0 -21
  1374. package/dist/ui-kit/Dialog/useDialogHandlers.js.map +0 -1
  1375. package/dist/ui-kit/Dialog/useDialogProps.d.ts +0 -7
  1376. package/dist/ui-kit/Dialog/useDialogProps.js +0 -39
  1377. package/dist/ui-kit/Dialog/useDialogProps.js.map +0 -1
  1378. package/dist/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
  1379. package/dist/ui-kit/LocationDialog/LocationDialogProps.js.map +0 -1
  1380. package/lib/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
  1381. package/lib/components/CarouselProgramsCard/programCardStyles.js +0 -3
  1382. package/lib/components/CarouselProgramsCard/programCardStyles.js.map +0 -1
  1383. package/lib/components/CarouselProgramsCard/programCardStyles.mobile.d.ts +0 -2
  1384. package/lib/components/CarouselProgramsCard/programCardStyles.mobile.js +0 -3
  1385. package/lib/components/CarouselProgramsCard/programCardStyles.mobile.js.map +0 -1
  1386. package/lib/components/Tabs/CenteredTabs.d.ts +0 -7
  1387. package/lib/components/Tabs/CenteredTabs.js +0 -5
  1388. package/lib/components/Tabs/CenteredTabs.js.map +0 -1
  1389. package/lib/components/Tabs/LinkTab.d.ts +0 -9
  1390. package/lib/components/Tabs/LinkTab.js +0 -17
  1391. package/lib/components/Tabs/LinkTab.js.map +0 -1
  1392. package/lib/components/Tabs/ScrollableTabs.d.ts +0 -8
  1393. package/lib/components/Tabs/ScrollableTabs.js +0 -15
  1394. package/lib/components/Tabs/ScrollableTabs.js.map +0 -1
  1395. package/lib/components/Tabs/renderGroupTab.d.ts +0 -3
  1396. package/lib/components/Tabs/renderGroupTab.js +0 -17
  1397. package/lib/components/Tabs/renderGroupTab.js.map +0 -1
  1398. package/lib/components/Tabs/renderTab.d.ts +0 -10
  1399. package/lib/components/Tabs/renderTab.js +0 -21
  1400. package/lib/components/Tabs/renderTab.js.map +0 -1
  1401. package/lib/components/Tabs/tabItemClasses.d.ts +0 -11
  1402. package/lib/components/Tabs/tabItemClasses.js +0 -45
  1403. package/lib/components/Tabs/tabItemClasses.js.map +0 -1
  1404. package/lib/hooks/useCachedAsyncData.d.ts +0 -2
  1405. package/lib/hooks/useCachedAsyncData.js +0 -22
  1406. package/lib/hooks/useCachedAsyncData.js.map +0 -1
  1407. package/lib/model/Button.d.ts +0 -15
  1408. package/lib/model/Button.js +0 -2
  1409. package/lib/model/Button.js.map +0 -1
  1410. package/lib/services/sitemap/findActiveSubItem.js.map +0 -1
  1411. package/lib/services/sitemap/isHrefActive.js.map +0 -1
  1412. package/lib/services/sitemap/isTopItemActive.js.map +0 -1
  1413. package/lib/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
  1414. package/lib/ui-kit/BaseTile/getTileRightPadding.js +0 -14
  1415. package/lib/ui-kit/BaseTile/getTileRightPadding.js.map +0 -1
  1416. package/lib/ui-kit/Dialog/CloseButton.js.map +0 -1
  1417. package/lib/ui-kit/Dialog/Dialog.js +0 -20
  1418. package/lib/ui-kit/Dialog/Dialog.js.map +0 -1
  1419. package/lib/ui-kit/Dialog/DialogAction.d.ts +0 -12
  1420. package/lib/ui-kit/Dialog/DialogAction.js.map +0 -1
  1421. package/lib/ui-kit/Dialog/useDialog.d.ts +0 -4
  1422. package/lib/ui-kit/Dialog/useDialog.js +0 -6
  1423. package/lib/ui-kit/Dialog/useDialog.js.map +0 -1
  1424. package/lib/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
  1425. package/lib/ui-kit/Dialog/useDialogHandlers.js +0 -18
  1426. package/lib/ui-kit/Dialog/useDialogHandlers.js.map +0 -1
  1427. package/lib/ui-kit/Dialog/useDialogProps.d.ts +0 -7
  1428. package/lib/ui-kit/Dialog/useDialogProps.js +0 -36
  1429. package/lib/ui-kit/Dialog/useDialogProps.js.map +0 -1
  1430. package/lib/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
  1431. package/lib/ui-kit/LocationDialog/LocationDialogProps.js +0 -2
  1432. package/lib/ui-kit/LocationDialog/LocationDialogProps.js.map +0 -1
  1433. package/mobile/bundle/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
  1434. package/mobile/bundle/components/Tabs/CenteredTabs.d.ts +0 -7
  1435. package/mobile/bundle/components/Tabs/LinkTab.d.ts +0 -9
  1436. package/mobile/bundle/components/Tabs/ScrollableTabs.d.ts +0 -8
  1437. package/mobile/bundle/components/Tabs/renderGroupTab.d.ts +0 -4
  1438. package/mobile/bundle/components/Tabs/renderTab.d.ts +0 -11
  1439. package/mobile/bundle/components/Tabs/tabItemClasses.d.ts +0 -11
  1440. package/mobile/bundle/hooks/useCachedAsyncData.d.ts +0 -2
  1441. package/mobile/bundle/model/Button.d.ts +0 -15
  1442. package/mobile/bundle/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
  1443. package/mobile/bundle/ui-kit/Dialog/DialogAction.d.ts +0 -12
  1444. package/mobile/bundle/ui-kit/Dialog/useDialog.d.ts +0 -4
  1445. package/mobile/bundle/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
  1446. package/mobile/bundle/ui-kit/Dialog/useDialogProps.d.ts +0 -7
  1447. package/mobile/bundle/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
  1448. package/mobile/dist/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
  1449. package/mobile/dist/components/CarouselProgramsCard/programCardStyles.js +0 -5
  1450. package/mobile/dist/components/CarouselProgramsCard/programCardStyles.js.map +0 -1
  1451. package/mobile/dist/components/Tabs/CenteredTabs.d.ts +0 -7
  1452. package/mobile/dist/components/Tabs/CenteredTabs.js +0 -7
  1453. package/mobile/dist/components/Tabs/CenteredTabs.js.map +0 -1
  1454. package/mobile/dist/components/Tabs/LinkTab.d.ts +0 -9
  1455. package/mobile/dist/components/Tabs/LinkTab.js +0 -19
  1456. package/mobile/dist/components/Tabs/LinkTab.js.map +0 -1
  1457. package/mobile/dist/components/Tabs/ScrollableTabs.d.ts +0 -8
  1458. package/mobile/dist/components/Tabs/ScrollableTabs.js +0 -17
  1459. package/mobile/dist/components/Tabs/ScrollableTabs.js.map +0 -1
  1460. package/mobile/dist/components/Tabs/renderGroupTab.d.ts +0 -4
  1461. package/mobile/dist/components/Tabs/renderGroupTab.js +0 -20
  1462. package/mobile/dist/components/Tabs/renderGroupTab.js.map +0 -1
  1463. package/mobile/dist/components/Tabs/renderTab.d.ts +0 -11
  1464. package/mobile/dist/components/Tabs/renderTab.js +0 -24
  1465. package/mobile/dist/components/Tabs/renderTab.js.map +0 -1
  1466. package/mobile/dist/components/Tabs/tabItemClasses.d.ts +0 -11
  1467. package/mobile/dist/components/Tabs/tabItemClasses.js +0 -48
  1468. package/mobile/dist/components/Tabs/tabItemClasses.js.map +0 -1
  1469. package/mobile/dist/hooks/useCachedAsyncData.d.ts +0 -2
  1470. package/mobile/dist/hooks/useCachedAsyncData.js +0 -25
  1471. package/mobile/dist/hooks/useCachedAsyncData.js.map +0 -1
  1472. package/mobile/dist/model/Button.d.ts +0 -15
  1473. package/mobile/dist/model/Button.js.map +0 -1
  1474. package/mobile/dist/services/sitemap/findActiveSubItem.js.map +0 -1
  1475. package/mobile/dist/services/sitemap/isHrefActive.js.map +0 -1
  1476. package/mobile/dist/services/sitemap/isTopItemActive.js.map +0 -1
  1477. package/mobile/dist/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
  1478. package/mobile/dist/ui-kit/BaseTile/getTileRightPadding.js +0 -17
  1479. package/mobile/dist/ui-kit/BaseTile/getTileRightPadding.js.map +0 -1
  1480. package/mobile/dist/ui-kit/Dialog/CloseButton.d.ts +0 -7
  1481. package/mobile/dist/ui-kit/Dialog/CloseButton.js.map +0 -1
  1482. package/mobile/dist/ui-kit/Dialog/Dialog.d.ts +0 -8
  1483. package/mobile/dist/ui-kit/Dialog/Dialog.js +0 -22
  1484. package/mobile/dist/ui-kit/Dialog/Dialog.js.map +0 -1
  1485. package/mobile/dist/ui-kit/Dialog/DialogAction.d.ts +0 -12
  1486. package/mobile/dist/ui-kit/Dialog/DialogAction.js.map +0 -1
  1487. package/mobile/dist/ui-kit/Dialog/useDialog.d.ts +0 -4
  1488. package/mobile/dist/ui-kit/Dialog/useDialog.js +0 -9
  1489. package/mobile/dist/ui-kit/Dialog/useDialog.js.map +0 -1
  1490. package/mobile/dist/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
  1491. package/mobile/dist/ui-kit/Dialog/useDialogHandlers.js +0 -21
  1492. package/mobile/dist/ui-kit/Dialog/useDialogHandlers.js.map +0 -1
  1493. package/mobile/dist/ui-kit/Dialog/useDialogProps.d.ts +0 -7
  1494. package/mobile/dist/ui-kit/Dialog/useDialogProps.js +0 -39
  1495. package/mobile/dist/ui-kit/Dialog/useDialogProps.js.map +0 -1
  1496. package/mobile/dist/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
  1497. package/mobile/dist/ui-kit/LocationDialog/LocationDialogProps.js +0 -2
  1498. package/mobile/dist/ui-kit/LocationDialog/LocationDialogProps.js.map +0 -1
  1499. package/mobile/lib/components/CarouselProgramsCard/programCardStyles.d.ts +0 -2
  1500. package/mobile/lib/components/CarouselProgramsCard/programCardStyles.js +0 -3
  1501. package/mobile/lib/components/CarouselProgramsCard/programCardStyles.js.map +0 -1
  1502. package/mobile/lib/components/Tabs/CenteredTabs.d.ts +0 -7
  1503. package/mobile/lib/components/Tabs/CenteredTabs.js +0 -5
  1504. package/mobile/lib/components/Tabs/CenteredTabs.js.map +0 -1
  1505. package/mobile/lib/components/Tabs/LinkTab.d.ts +0 -9
  1506. package/mobile/lib/components/Tabs/LinkTab.js +0 -17
  1507. package/mobile/lib/components/Tabs/LinkTab.js.map +0 -1
  1508. package/mobile/lib/components/Tabs/ScrollableTabs.d.ts +0 -8
  1509. package/mobile/lib/components/Tabs/ScrollableTabs.js +0 -15
  1510. package/mobile/lib/components/Tabs/ScrollableTabs.js.map +0 -1
  1511. package/mobile/lib/components/Tabs/renderGroupTab.d.ts +0 -4
  1512. package/mobile/lib/components/Tabs/renderGroupTab.js +0 -17
  1513. package/mobile/lib/components/Tabs/renderGroupTab.js.map +0 -1
  1514. package/mobile/lib/components/Tabs/renderTab.d.ts +0 -11
  1515. package/mobile/lib/components/Tabs/renderTab.js +0 -21
  1516. package/mobile/lib/components/Tabs/renderTab.js.map +0 -1
  1517. package/mobile/lib/components/Tabs/tabItemClasses.d.ts +0 -11
  1518. package/mobile/lib/components/Tabs/tabItemClasses.js +0 -45
  1519. package/mobile/lib/components/Tabs/tabItemClasses.js.map +0 -1
  1520. package/mobile/lib/hooks/useCachedAsyncData.d.ts +0 -2
  1521. package/mobile/lib/hooks/useCachedAsyncData.js +0 -22
  1522. package/mobile/lib/hooks/useCachedAsyncData.js.map +0 -1
  1523. package/mobile/lib/model/Button.d.ts +0 -15
  1524. package/mobile/lib/model/Button.js +0 -2
  1525. package/mobile/lib/model/Button.js.map +0 -1
  1526. package/mobile/lib/services/sitemap/findActiveSubItem.js.map +0 -1
  1527. package/mobile/lib/services/sitemap/isHrefActive.js.map +0 -1
  1528. package/mobile/lib/services/sitemap/isTopItemActive.js.map +0 -1
  1529. package/mobile/lib/ui-kit/BaseTile/getTileRightPadding.d.ts +0 -1
  1530. package/mobile/lib/ui-kit/BaseTile/getTileRightPadding.js +0 -14
  1531. package/mobile/lib/ui-kit/BaseTile/getTileRightPadding.js.map +0 -1
  1532. package/mobile/lib/ui-kit/Dialog/CloseButton.d.ts +0 -7
  1533. package/mobile/lib/ui-kit/Dialog/CloseButton.js.map +0 -1
  1534. package/mobile/lib/ui-kit/Dialog/Dialog.d.ts +0 -8
  1535. package/mobile/lib/ui-kit/Dialog/Dialog.js +0 -20
  1536. package/mobile/lib/ui-kit/Dialog/Dialog.js.map +0 -1
  1537. package/mobile/lib/ui-kit/Dialog/DialogAction.d.ts +0 -12
  1538. package/mobile/lib/ui-kit/Dialog/DialogAction.js.map +0 -1
  1539. package/mobile/lib/ui-kit/Dialog/useDialog.d.ts +0 -4
  1540. package/mobile/lib/ui-kit/Dialog/useDialog.js +0 -6
  1541. package/mobile/lib/ui-kit/Dialog/useDialog.js.map +0 -1
  1542. package/mobile/lib/ui-kit/Dialog/useDialogHandlers.d.ts +0 -6
  1543. package/mobile/lib/ui-kit/Dialog/useDialogHandlers.js +0 -18
  1544. package/mobile/lib/ui-kit/Dialog/useDialogHandlers.js.map +0 -1
  1545. package/mobile/lib/ui-kit/Dialog/useDialogProps.d.ts +0 -7
  1546. package/mobile/lib/ui-kit/Dialog/useDialogProps.js +0 -36
  1547. package/mobile/lib/ui-kit/Dialog/useDialogProps.js.map +0 -1
  1548. package/mobile/lib/ui-kit/LocationDialog/LocationDialogProps.d.ts +0 -14
  1549. package/mobile/lib/ui-kit/LocationDialog/LocationDialogProps.js +0 -2
  1550. package/mobile/lib/ui-kit/LocationDialog/LocationDialogProps.js.map +0 -1
  1551. package/mobile/src/components/CarouselProgramsCard/programCardStyles.ts +0 -2
  1552. package/mobile/src/components/Header/sitemap.wcms-resource.json +0 -144
  1553. package/mobile/src/components/Tabs/CenteredTabs.tsx +0 -12
  1554. package/mobile/src/components/Tabs/LinkTab.tsx +0 -47
  1555. package/mobile/src/components/Tabs/ScrollableTabs.tsx +0 -46
  1556. package/mobile/src/components/Tabs/renderGroupTab.tsx +0 -53
  1557. package/mobile/src/components/Tabs/renderTab.tsx +0 -35
  1558. package/mobile/src/components/Tabs/tabItemClasses.ts +0 -56
  1559. package/mobile/src/hooks/useCachedAsyncData.ts +0 -37
  1560. package/mobile/src/model/Button.ts +0 -16
  1561. package/mobile/src/ui-kit/BaseTile/getTileRightPadding.ts +0 -12
  1562. package/mobile/src/ui-kit/Dialog/Dialog.tsx +0 -46
  1563. package/mobile/src/ui-kit/Dialog/DialogAction.ts +0 -14
  1564. package/mobile/src/ui-kit/Dialog/useDialog.ts +0 -6
  1565. package/mobile/src/ui-kit/Dialog/useDialogHandlers.ts +0 -28
  1566. package/mobile/src/ui-kit/Dialog/useDialogProps.ts +0 -48
  1567. package/mobile/src/ui-kit/LocationDialog/LocationDialogProps.ts +0 -21
  1568. package/src/components/CarouselProgramsCard/programCardStyles.mobile.ts +0 -2
  1569. package/src/components/CarouselProgramsCard/programCardStyles.ts +0 -2
  1570. package/src/components/Header/sitemap.wcms-resource.json +0 -144
  1571. package/src/components/Tabs/CenteredTabs.tsx +0 -12
  1572. package/src/components/Tabs/LinkTab.tsx +0 -47
  1573. package/src/components/Tabs/ScrollableTabs.tsx +0 -46
  1574. package/src/components/Tabs/renderGroupTab.tsx +0 -53
  1575. package/src/components/Tabs/renderTab.tsx +0 -35
  1576. package/src/components/Tabs/tabItemClasses.ts +0 -56
  1577. package/src/hooks/useCachedAsyncData.ts +0 -37
  1578. package/src/model/Button.ts +0 -16
  1579. package/src/ui-kit/BaseTile/getTileRightPadding.ts +0 -12
  1580. package/src/ui-kit/Dialog/Dialog.tsx +0 -46
  1581. package/src/ui-kit/Dialog/DialogAction.ts +0 -14
  1582. package/src/ui-kit/Dialog/useDialog.ts +0 -6
  1583. package/src/ui-kit/Dialog/useDialogHandlers.ts +0 -28
  1584. package/src/ui-kit/Dialog/useDialogProps.ts +0 -48
  1585. package/src/ui-kit/LocationDialog/LocationDialogProps.ts +0 -21
  1586. /package/bundle/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
  1587. /package/bundle/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
  1588. /package/bundle/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
  1589. /package/cosmos-static/icons/{ChevronLeft.svg → ChevronLeftIcon.svg} +0 -0
  1590. /package/dist/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
  1591. /package/dist/{services/sitemap → components/Header}/findActiveSubItem.js +0 -0
  1592. /package/dist/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
  1593. /package/dist/{services/sitemap → components/Header}/isHrefActive.js +0 -0
  1594. /package/dist/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
  1595. /package/dist/{services/sitemap → components/Header}/isTopItemActive.js +0 -0
  1596. /package/dist/ui-kit/{Dialog → DialogManager}/DialogAction.js +0 -0
  1597. /package/lib/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
  1598. /package/lib/{services/sitemap → components/Header}/findActiveSubItem.js +0 -0
  1599. /package/lib/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
  1600. /package/lib/{services/sitemap → components/Header}/isHrefActive.js +0 -0
  1601. /package/lib/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
  1602. /package/lib/{services/sitemap → components/Header}/isTopItemActive.js +0 -0
  1603. /package/lib/ui-kit/{Dialog → DialogManager}/DialogAction.js +0 -0
  1604. /package/mobile/bundle/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
  1605. /package/mobile/bundle/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
  1606. /package/mobile/bundle/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
  1607. /package/mobile/dist/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
  1608. /package/mobile/dist/{services/sitemap → components/Header}/findActiveSubItem.js +0 -0
  1609. /package/mobile/dist/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
  1610. /package/mobile/dist/{services/sitemap → components/Header}/isHrefActive.js +0 -0
  1611. /package/mobile/dist/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
  1612. /package/mobile/dist/{services/sitemap → components/Header}/isTopItemActive.js +0 -0
  1613. /package/mobile/dist/ui-kit/{Dialog → DialogManager}/DialogAction.js +0 -0
  1614. /package/mobile/lib/{services/sitemap → components/Header}/findActiveSubItem.d.ts +0 -0
  1615. /package/mobile/lib/{services/sitemap → components/Header}/findActiveSubItem.js +0 -0
  1616. /package/mobile/lib/{services/sitemap → components/Header}/isHrefActive.d.ts +0 -0
  1617. /package/mobile/lib/{services/sitemap → components/Header}/isHrefActive.js +0 -0
  1618. /package/mobile/lib/{services/sitemap → components/Header}/isTopItemActive.d.ts +0 -0
  1619. /package/mobile/lib/{services/sitemap → components/Header}/isTopItemActive.js +0 -0
  1620. /package/mobile/lib/ui-kit/{Dialog → DialogManager}/DialogAction.js +0 -0
  1621. /package/mobile/src/{services/sitemap → components/Header}/findActiveSubItem.ts +0 -0
  1622. /package/mobile/src/{services/sitemap → components/Header}/isHrefActive.ts +0 -0
  1623. /package/mobile/src/{services/sitemap → components/Header}/isTopItemActive.ts +0 -0
  1624. /package/mobile/src/icons/{ChevronLeft.svg → ChevronLeftIcon.svg} +0 -0
  1625. /package/src/{services/sitemap → components/Header}/findActiveSubItem.ts +0 -0
  1626. /package/src/{services/sitemap → components/Header}/isHrefActive.ts +0 -0
  1627. /package/src/{services/sitemap → components/Header}/isTopItemActive.ts +0 -0
  1628. /package/src/icons/{ChevronLeft.svg → ChevronLeftIcon.svg} +0 -0
@@ -386,6 +386,10 @@
386
386
  onChange: handlersMap.current[fieldName],
387
387
  };
388
388
  }, [formState, isDirtyForm, dirtyFieldsMap]);
389
+ const update = useCallback((_) => {
390
+ setFormState(_);
391
+ setDirtyFieldsMap(_);
392
+ }, []);
389
393
  const reset = useCallback(() => {
390
394
  setFormState(initialState);
391
395
  setDirtyForm(false);
@@ -401,6 +405,7 @@
401
405
  {
402
406
  isDirty: isDirtyForm || Object.values(dirtyFieldsMap).some(Boolean),
403
407
  field,
408
+ update,
404
409
  reset,
405
410
  onSubmit: handleSubmit,
406
411
  },
@@ -504,9 +509,10 @@
504
509
  return data || EMPTY_VALUE$3;
505
510
  }
506
511
 
507
- const useDialog = (id = '') => ({
508
- open: (message) => defaultEventBus.fire('dialog', { type: 'open', id, message }),
512
+ const useDialogManager = () => ({
513
+ open: (dialog, options = {}) => defaultEventBus.fire('dialog', { type: 'open', dialog, ...options }),
509
514
  close: () => defaultEventBus.fire('dialog', { type: 'close' }),
515
+ closeAll: () => defaultEventBus.fire('dialog', { type: 'close', all: true }),
510
516
  });
511
517
 
512
518
  const dirname = (path) => path?.split('/').slice(0, -1).join('/');
@@ -568,7 +574,7 @@
568
574
  function useLink(params = {}) {
569
575
  const { isRemote, basePath } = params;
570
576
  const router = useRouter();
571
- const { close } = useDialog();
577
+ const { closeAll } = useDialogManager();
572
578
  return (props) => ({
573
579
  ...props,
574
580
  href: isRemote && !basePath ? props.href : adjustHref(router)(props.href, basePath),
@@ -582,7 +588,7 @@
582
588
  // Default routing
583
589
  return;
584
590
  }
585
- close();
591
+ closeAll();
586
592
  // Client routing
587
593
  ev?.preventDefault();
588
594
  router.push(href);
@@ -1047,10 +1053,8 @@
1047
1053
  });
1048
1054
 
1049
1055
  const EMPTY_VALUE$1 = {};
1050
- function useSWRResource(filename, fallback = {}) {
1051
- const { data } = useAsyncData(`/wcms-resources/${filename}.json`, fetchJSONUnsafe, {
1052
- fallback,
1053
- });
1056
+ function useSWRResource(filename, fallback = EMPTY_VALUE$1) {
1057
+ const { data } = useAsyncData(filename ? `/wcms-resources/${filename}.json` : null, fetchJSONUnsafe, { fallback });
1054
1058
  return data || EMPTY_VALUE$1;
1055
1059
  }
1056
1060
 
@@ -1386,7 +1390,8 @@
1386
1390
  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;
1387
1391
  }
1388
1392
 
1389
- const CalculatorValueBlock = JSX(({ title, value, postfix = '', prefix, className = '' }) => (jsxs("div", { className: style('mb-7', className), children: [title ? (jsx(Text, { size: "text-l", font: "font-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: "-" }) }))] })));
1393
+ const calculatorValueBlockStyle = 'flex justify-between md:mb-7 md:flex-col';
1394
+ const CalculatorValueBlock = JSX(({ title, value, postfix = '', prefix, className = '' }) => (jsxs("div", { className: style(calculatorValueBlockStyle, className), children: [title ? (jsx(Text, { size: "text-l", font: "font-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: "-" }) }))] })));
1390
1395
 
1391
1396
  const DEFAULT_MIN_SUM$1 = 10000;
1392
1397
  const DEFAULT_MAX_SUM$1 = 5000000;
@@ -1546,28 +1551,6 @@
1546
1551
  })] }), jsx("div", { children: monthBonus >= 0 ? (jsx(Rate, { title: "\u0411\u0430\u043B\u043B\u043E\u0432 \u0437\u0430 \u043C\u0435\u0441\u044F\u0446", rate: monthBonus, rateBlockClassName: "tracking-[-14px]", fractionDigits: 0 })) : null }), jsxs("div", { className: "w-96", children: [yearBonus >= 0 ? jsx(CalculatorValueBlock, { title: "\u0411\u0430\u043B\u043B\u043E\u0432 \u0437\u0430 \u0433\u043E\u0434", value: yearBonus }) : null, renderButtonsSection(buttons, { className: 'mt-7', isVertical: true }), renderFootnote(footnote)] })] }));
1547
1552
  });
1548
1553
 
1549
- const STEP_DAYS = 1;
1550
- const renderDaysInput = (props) => (jsx(InputRange, { className: "mt-7", items: [`От ${daysText(props.min || 0)}`, `До ${daysText(props.max || 0)}`], step: STEP_DAYS, ...props }));
1551
- const daysText = (days) => `${days} ${Number(days) % 10 === 1 ? 'дня' : 'дней'}`;
1552
-
1553
- const orientationStyleMap = {
1554
- horizontal: 'gap-10',
1555
- vertical: 'flex-col gap-3',
1556
- };
1557
- const RadioButtonGroup = JSX(({ items, checkedItem, onChange: onChangeCheckedItem, orientation = 'horizontal' }) => (jsx("div", { className: `flex ${orientationStyleMap[orientation]}`, children: items?.map(({ id, text }) => (jsx(Checkbox, { isRadio: true, text: text, value: checkedItem === id, onChange: () => onChangeCheckedItem && onChangeCheckedItem(id) }, String(id)))) })));
1558
-
1559
- const renderBinaryRadioButtonGroup = ({ items, title, orientation = 'horizontal', value, onChange, }) => (jsxs("div", { children: [title ? (jsx("div", { className: "mb-3", children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: title }) })) : null, jsx(RadioButtonGroup, { orientation: orientation, items: items, checkedItem: items[value ? 0 : 1].id, onChange: (_) => onChange && onChange(_ === items[0].id) })] }));
1560
-
1561
- const renderInterestPayment = (props) => renderBinaryRadioButtonGroup({
1562
- ...props,
1563
- items: [
1564
- { id: 'everyMonth', text: 'Ежемесячно' },
1565
- { id: 'atEndTerm', text: 'В конце срока' },
1566
- ],
1567
- });
1568
-
1569
- const UnknownRate = JSX(({ title = 'Ставка' }) => (jsxs("div", { children: [jsx(Text, { size: "text-l", font: "font-light", color: "text-secondary-text", children: title }), jsx("div", { className: "mt-2xs pt-2xs pl-lg pb-xs", children: jsx(Icon, { name: "PercentIcon", width: "90", height: "85" }) }), jsx("div", { className: "w-64 mt-m", children: jsxs(Paragraph, { size: "text-xl", font: "font-light", color: "text-primary-text", children: ["\u041F\u0440\u043E\u0446\u0435\u043D\u0442\u043D\u0430\u044F \u0441\u0442\u0430\u0432\u043A\u0430 \u0434\u043B\u044F \u0441\u0440\u043E\u043A\u0430 ", jsx("strong", { children: "1-30 \u0434\u043D\u0435\u0439" }), " \u0443\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u0438 \u0432 \u0411\u0430\u043D\u043A"] }) })] })));
1570
-
1571
1554
  const defaultDiscriminator = (_) => _;
1572
1555
  const maxBy = (discriminator = defaultDiscriminator) => (list) => list.reduceRight((a, b) => (discriminator(a) > discriminator(b) ? a : b));
1573
1556
  const max = maxBy();
@@ -1658,6 +1641,37 @@
1658
1641
  }
1659
1642
  };
1660
1643
 
1644
+ const STEP_DAYS = 1;
1645
+ const renderDaysInput = (props) => (jsx(InputRange, { items: [`От ${daysText(props.min || 0)}`, `До ${daysText(props.max || 0)}`], step: STEP_DAYS, ...props }));
1646
+ const daysText = (days) => `${days} ${Number(days) % 10 === 1 ? 'дня' : 'дней'}`;
1647
+
1648
+ const orientationStyleMap = {
1649
+ horizontal: 'gap-10',
1650
+ vertical: 'flex-col gap-3',
1651
+ };
1652
+ const RadioButtonGroup = JSX(({ items, checkedItem, className, onChange: onChangeCheckedItem, orientation = 'horizontal', }) => (jsx("div", { className: style(`flex ${orientationStyleMap[orientation]}`, className), children: items?.map(({ id, text }) => (jsx(Checkbox, { isRadio: true, text: text, value: checkedItem === id, onChange: () => onChangeCheckedItem && onChangeCheckedItem(id) }, String(id)))) })));
1653
+
1654
+ const renderBinaryRadioButtonGroup = ({ items, title, orientation = 'horizontal', value, radioGroupClassName, onChange, }) => (jsxs("div", { children: [title ? (jsx("div", { className: "mb-3", children: jsx(Text, { color: "text-secondary-text", font: "font-light", children: title }) })) : null, jsx(RadioButtonGroup, { orientation: orientation, items: items, checkedItem: items[value ? 0 : 1].id, className: style('flex-col sm:flex-row', radioGroupClassName), onChange: (_) => onChange && onChange(_ === items[0].id) })] }));
1655
+
1656
+ const renderInterestPayment = (props) => renderBinaryRadioButtonGroup({
1657
+ ...props,
1658
+ items: [
1659
+ { id: 'everyMonth', text: 'Ежемесячно' },
1660
+ { id: 'atEndTerm', text: 'В конце срока' },
1661
+ ],
1662
+ });
1663
+
1664
+ const UnknownRate = JSX(({ title = 'Ставка' }) => (jsxs("div", { children: [jsx(Text, { size: "text-l", font: "font-light", color: "text-secondary-text", children: title }), jsx("div", { className: "mt-2xs pt-2xs pl-lg pb-xs", children: jsx(Icon, { name: "PercentIcon", width: "90", height: "85" }) }), jsx("div", { className: "w-64 mt-m", children: jsxs(Paragraph, { size: "text-xl", font: "font-light", color: "text-primary-text", children: ["\u041F\u0440\u043E\u0446\u0435\u043D\u0442\u043D\u0430\u044F \u0441\u0442\u0430\u0432\u043A\u0430 \u0434\u043B\u044F \u0441\u0440\u043E\u043A\u0430 ", jsx("strong", { children: "1-30 \u0434\u043D\u0435\u0439" }), " \u0443\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u0438 \u0432 \u0411\u0430\u043D\u043A"] }) })] })));
1665
+
1666
+ const renderDesktopRate = ({ rate, depositeName, isShowDepositeName }) => (jsx(Rate, { rate: rate, depositeName: depositeName, isShowDepositeName: isShowDepositeName, rateBlockClassName: "tracking-[-25px]", unit: "%" }));
1667
+ const renderMobileRate = ({ rate }) => (jsx(CalculatorValueBlock, { title: "\u0421\u0442\u0430\u0432\u043A\u0430", value: rate, postfix: "%" }));
1668
+ const renderRate = (props) => {
1669
+ if (props.isShowUnknownRate) {
1670
+ return jsx(UnknownRate, {});
1671
+ }
1672
+ return (jsxs("div", { children: [jsx("div", { className: "hidden md:block", children: renderDesktopRate(props) }), jsx("div", { className: "md:hidden", children: renderMobileRate(props) })] }));
1673
+ };
1674
+
1661
1675
  const BusinessDepositCalculatorForm = JSX(({ className = '', sourceBookDir, buttons, footnote, bottomFootnote, isShowDepositeName }) => {
1662
1676
  const [userInputParams, { field }] = useForm({
1663
1677
  moneyValue: BUSINESS_DEFAULT_SUM,
@@ -1668,8 +1682,8 @@
1668
1682
  isMonthlyInterestPayment: false,
1669
1683
  });
1670
1684
  const calculatorParams = useBusinessDepositCalculatorParams(userInputParams, sourceBookDir);
1671
- const { income, finalSum, rate, depositeName, isShowUnknownRate } = calculatorParams;
1672
- return (jsxs("section", { className: className, children: [jsxs("div", { className: "flex justify-between", children: [jsxs("div", { className: "w-2/5", children: [renderWantedSumInput({
1685
+ const { income, finalSum, rate, isShowUnknownRate, depositeName } = calculatorParams;
1686
+ return (jsxs("section", { className: className, children: [jsxs("div", { className: "flex flex-col justify-between sm:flex-row", children: [jsxs("div", { className: "flex flex-col gap-y-m sm:w-2/5 sm:gap-y-lg", children: [renderWantedSumInput({
1673
1687
  title: 'Сумма, ₽',
1674
1688
  min: calculatorParams.minSum,
1675
1689
  max: calculatorParams.maxSum,
@@ -1681,26 +1695,25 @@
1681
1695
  max: calculatorParams.maxDays,
1682
1696
  ...field('daysValue'),
1683
1697
  value: calculatorParams.daysValue,
1684
- }), jsxs("div", { className: "mt-2xl flex justify-between", children: [renderBusinessDepositParamsForm(calculatorParams, field), renderInterestPayment({
1698
+ }), jsxs("div", { className: "flex flex-col gap-xl justify-between sm:flex-row sm:gap-0", children: [renderBusinessDepositParamsForm(calculatorParams, field), renderInterestPayment({
1685
1699
  title: 'Выплата процентов',
1686
1700
  orientation: 'vertical',
1687
1701
  ...field('isMonthlyInterestPayment'),
1688
- })] })] }), isShowUnknownRate ? (jsx(UnknownRate, {})) : (jsx(Rate, { rate: rate, depositeName: depositeName, isShowDepositeName: isShowDepositeName, rateBlockClassName: "tracking-[-25px]", unit: "%" })), jsxs("div", { className: "w-96", children: [jsx(CalculatorValueBlock, { title: "\u0414\u043E\u0445\u043E\u0434 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: income, postfix: "\u20BD", prefix: "+" }), jsx(CalculatorValueBlock, { title: "\u0421\u0443\u043C\u043C\u0430 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: finalSum, postfix: "\u20BD" }), renderButtonsSection(buttons, { className: 'mt-2xl', isVertical: true }), jsx("div", { className: "mt-2xl", children: renderFootnote(footnote) })] })] }), jsx("div", { className: "mt-5", children: renderFootnote(bottomFootnote) })] }));
1702
+ radioGroupClassName: 'sm:flex-col',
1703
+ })] })] }), jsx("div", { className: "border-b border-main-divider my-xl sm:hidden" }), renderRate({
1704
+ rate,
1705
+ depositeName,
1706
+ isShowDepositeName,
1707
+ isShowUnknownRate,
1708
+ }), jsxs("div", { className: "flex flex-col gap-y-xl mt-3xl sm:gap-0 sm:w-96 sm:mt-0", children: [renderDepositResults(finalSum, income), renderButtonsSection(buttons, { isVertical: true }), jsx("div", { className: "sm:mt-2xl", children: renderFootnote(footnote) })] })] }), jsx("div", { className: "mt-lg", children: renderFootnote(bottomFootnote) })] }));
1689
1709
  });
1690
- const renderBusinessDepositParamsForm = (calculatorParams, field) => (jsxs("div", { children: [jsx(Checkbox, { text: "\u041F\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435", disabled: calculatorParams.isDisabledOperatingDeposit, ...field('isReplenished'), value: calculatorParams.isReplenished }), jsx(Checkbox, { className: "mt-3", disabled: calculatorParams.isDisabledOperatingDeposit, text: "\u0427\u0430\u0441\u0442\u0438\u0447\u043D\u043E\u0435 \u0441\u043D\u044F\u0442\u0438\u0435", ...field('isPartialWithdrawal'), value: calculatorParams.isPartialWithdrawal }), jsx(Checkbox, { className: "mt-3", text: "\u042F\u0432\u043B\u044F\u044E\u0441\u044C \u043C\u0430\u043B\u044B\u043C \u043F\u0440\u0435\u0434\u043F\u0440\u0438\u044F\u0442\u0438\u0435\u043C", ...field('isSmallBusiness'), value: calculatorParams.isSmallBusiness })] }));
1710
+ const renderBusinessDepositParamsForm = (calculatorParams, field) => (jsxs("div", { className: "flex flex-col gap-y-xl sm:gap-y-s", children: [jsx(Checkbox, { text: "\u041F\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435", disabled: calculatorParams.isDisabledOperatingDeposit, ...field('isReplenished'), value: calculatorParams.isReplenished }), jsx(Checkbox, { disabled: calculatorParams.isDisabledOperatingDeposit, text: "\u0427\u0430\u0441\u0442\u0438\u0447\u043D\u043E\u0435 \u0441\u043D\u044F\u0442\u0438\u0435", ...field('isPartialWithdrawal'), value: calculatorParams.isPartialWithdrawal }), jsx(Checkbox, { text: "\u0418\u041F / \u043C\u0430\u043B\u043E\u0435 \u043F\u0440\u0435\u0434\u043F\u0440\u0438\u044F\u0442\u0438\u0435", ...field('isSmallBusiness'), value: calculatorParams.isSmallBusiness })] }));
1711
+ const renderDepositResults = (finalSum, income) => (jsxs("div", { className: "flex flex-col gap-2xl sm:gap-0", children: [jsx(CalculatorValueBlock, { title: "\u0414\u043E\u0445\u043E\u0434 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: income, postfix: "\u20BD", prefix: "+" }), jsx(CalculatorValueBlock, { title: "\u0421\u0443\u043C\u043C\u0430 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: finalSum, postfix: "\u20BD" })] }));
1691
1712
 
1692
1713
  const STEP_MONTHS = 1;
1693
- const renderMonthsInput = ({ min = 0, max = 0, availableMonths, ...rest }) => (jsx(InputRange, { className: "mt-7", items: [`От ${monthText(min)}`, `До ${monthText(max)}`], step: STEP_MONTHS, ...(availableMonths?.length ? { list: availableMonths } : { min, max }), ...rest }));
1714
+ const renderMonthsInput = ({ min = 0, max = 0, availableMonths, ...rest }) => (jsx(InputRange, { items: [`От ${monthText(min)}`, `До ${monthText(max)}`], step: STEP_MONTHS, ...(availableMonths?.length ? { list: availableMonths } : { min, max }), ...rest }));
1694
1715
  const monthText = (month) => `${month} ${Number(month) % 10 === 1 ? 'месяца' : 'месяцев'}`;
1695
1716
 
1696
- const renderPaymentType = (props) => renderBinaryRadioButtonGroup({
1697
- ...props,
1698
- items: [
1699
- { id: 'annuity', text: 'Аннуитетный' },
1700
- { id: 'differential', text: 'Дифференцированный' },
1701
- ],
1702
- });
1703
-
1704
1717
  const checkCreditSourceBookRowCommonParams = (props) => checkRowParam$1({
1705
1718
  ...props,
1706
1719
  fieldKey: 'isSalaryClient',
@@ -1799,7 +1812,16 @@
1799
1812
  }), [userInputParams, data]);
1800
1813
  };
1801
1814
 
1802
- const CreditCalculatorForm = JSX(({ className, sourceBookDir, buttons, footnote, paramsViewSettings }) => {
1815
+ const renderPaymentType = (props) => renderBinaryRadioButtonGroup({
1816
+ ...props,
1817
+ radioGroupClassName: 'sm:flex-col',
1818
+ items: [
1819
+ { id: 'annuity', text: 'Аннуитетный' },
1820
+ { id: 'differential', text: 'Дифференцированный' },
1821
+ ],
1822
+ });
1823
+
1824
+ const CreditCalculatorForm = JSX(({ className, sourceBookDir, buttons, footnote, paramsViewSettings, isMobile }) => {
1803
1825
  const [userInputParams, { field }] = useForm({
1804
1826
  isAnnuity: true,
1805
1827
  isInsurance: true,
@@ -1810,7 +1832,12 @@
1810
1832
  monthsValue: DEFAULT_MONTHS,
1811
1833
  });
1812
1834
  const calculatorParams = useCreditCalculatorParams(userInputParams, sourceBookDir, paramsViewSettings);
1813
- return (jsxs("section", { className: style('flex justify-between', className), children: [jsxs("div", { className: "w-2/5", children: [renderWantedSumInput({
1835
+ const paymentTypeElement = renderPaymentType({
1836
+ title: isMobile ? 'Тип платежа' : '',
1837
+ orientation: 'vertical',
1838
+ ...field('isAnnuity'),
1839
+ });
1840
+ return (jsxs("section", { className: style('flex flex-col justify-between sm:flex-row', className), children: [jsxs("div", { className: "flex flex-col gap-y-m sm:w-2/5 sm:gap-y-lg", children: [renderWantedSumInput({
1814
1841
  title: 'Сумма кредита, ₽',
1815
1842
  step: 500,
1816
1843
  min: calculatorParams.minSum,
@@ -1823,17 +1850,11 @@
1823
1850
  max: calculatorParams.maxMonths,
1824
1851
  ...field('monthsValue'),
1825
1852
  value: calculatorParams.monthsValue,
1826
- }), jsx("div", { className: "mt-2xl", children: renderCreditParamsForm$1({ ...calculatorParams, ...paramsViewSettings }, field) })] }), jsx(Rate, { title: "\u0421\u0442\u0430\u0432\u043A\u0430", rate: calculatorParams.rate, rateBlockClassName: "tracking-[-25px]", unit: "%" }), jsxs("div", { className: "w-96", children: [jsx(CalculatorValueBlock, { title: 'Ежемесячный платеж', value: calculatorParams.monthlyPayment, postfix: "\u20BD" }), renderPaymentType({ orientation: 'vertical', ...field('isAnnuity') }), renderButtonsSection(buttons, { className: 'mt-2xl', isVertical: true }), renderFootnote(footnote)] })] }));
1827
- });
1828
- const renderCreditParamsForm$1 = (params, field) => (jsxs("div", { children: [params.isShowSalaryClient ? (jsx(Checkbox, { text: "\u041F\u043E\u043B\u0443\u0447\u0430\u044E \u0437\u0430\u0440\u043F\u043B\u0430\u0442\u0443 \u043D\u0430 \u0441\u0447\u0451\u0442 \u0432 \u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u0435", ...field('isSalaryClient'), value: params.isSalaryClient })) : null, params.isShowStateEmployee ? (jsx(Checkbox, { className: "mt-3", 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, { className: "mt-3", 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, { className: "mt-3", 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] }));
1829
-
1830
- const renderRegistrationType = (props) => renderBinaryRadioButtonGroup({
1831
- ...props,
1832
- items: [
1833
- { id: 'remote', text: 'Дистанционно' },
1834
- { id: 'office', text: 'Офис Банка' },
1835
- ],
1853
+ }), renderCreditParamsForm$1({ ...calculatorParams, ...paramsViewSettings }, field), jsx("div", { className: "mt-s sm:hidden", children: paymentTypeElement })] }), jsx("div", { className: "border-b border-main-divider mt-xl mb-3xl sm:hidden" }), renderRate({
1854
+ rate: calculatorParams.rate,
1855
+ }), jsxs("div", { className: "mt-6xl flex flex-col gap-lg sm:w-96 sm:mt-0 sm:gap-0", children: [jsx(CalculatorValueBlock, { title: "\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u044B\u0439 \u043F\u043B\u0430\u0442\u0435\u0436", value: calculatorParams.monthlyPayment, postfix: "\u20BD" }), jsx("div", { className: "hidden sm:block", children: paymentTypeElement }), renderButtonsSection(buttons, { className: 'mt-2xl', isVertical: true }), renderFootnote(footnote)] })] }));
1836
1856
  });
1857
+ const renderCreditParamsForm$1 = (params, field) => (jsxs("div", { className: "gap-xl flex flex-col sm:gap-s", 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] }));
1837
1858
 
1838
1859
  const arrayByRange = (start, stop, step = 1) => Array.from({ length: Math.abs(stop - start) / step + 1 }, (value, index) => stop >= start ? start + index * step : start - index * step);
1839
1860
 
@@ -1889,6 +1910,14 @@
1889
1910
  const checkRowByParam = ({ row, userInputParams, paramKey, isExclude }) => isExclude || userInputParams[paramKey] === row[paramKey];
1890
1911
  const getMiddleMonth = (minMonths, maxMonths) => minMonths + Math.round((maxMonths - minMonths) / 2);
1891
1912
 
1913
+ const renderRegistrationType = (props) => renderBinaryRadioButtonGroup({
1914
+ ...props,
1915
+ items: [
1916
+ { id: 'remote', text: 'Дистанционно' },
1917
+ { id: 'office', text: 'Офис Банка' },
1918
+ ],
1919
+ });
1920
+
1892
1921
  const DepositCalculatorForm = JSX(({ className, sourceBookDir, buttons, footnote, paramsViewSettings }) => {
1893
1922
  const [userInputParams, { field }] = useForm({
1894
1923
  moneyValue: DEPOSIT_DEFAULT_SUM,
@@ -1897,12 +1926,12 @@
1897
1926
  isRemoteRegistration: false,
1898
1927
  });
1899
1928
  const calculatorParams = useDepositCalculatorParams(userInputParams, sourceBookDir, paramsViewSettings);
1900
- const { defaultMonth, income, finalSum, rate } = calculatorParams;
1929
+ const { defaultMonth, rate, income, finalSum } = calculatorParams;
1901
1930
  const { onChange: setMonthsValue } = field('monthsValue');
1902
1931
  useEffect(() => {
1903
1932
  setMonthsValue && setMonthsValue(defaultMonth);
1904
1933
  }, [defaultMonth]);
1905
- return (jsxs("section", { className: style('flex justify-between', className), children: [jsxs("div", { className: "w-2/5", children: [renderWantedSumInput({
1934
+ return (jsxs("section", { className: style('flex flex-col justify-between sm:flex-row', className), children: [jsxs("div", { className: "flex flex-col gap-lg sm:w-2/5", children: [renderWantedSumInput({
1906
1935
  title: 'Сумма, ₽',
1907
1936
  min: calculatorParams.minSum,
1908
1937
  max: calculatorParams.maxSum,
@@ -1915,7 +1944,9 @@
1915
1944
  availableMonths: calculatorParams.availableMonths,
1916
1945
  ...field('monthsValue'),
1917
1946
  value: calculatorParams.monthsValue,
1918
- }), jsx("div", { className: "mt-2xl", children: renderDepositParamsForm({ ...calculatorParams, ...paramsViewSettings }, field) })] }), jsx(Rate, { rate: rate, rateBlockClassName: "tracking-[-25px]", unit: "%" }), jsxs("div", { className: "w-96", children: [jsx(CalculatorValueBlock, { title: "\u0414\u043E\u0445\u043E\u0434 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: income, postfix: "\u20BD", prefix: "+" }), jsx(CalculatorValueBlock, { title: "\u0421\u0443\u043C\u043C\u0430 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: finalSum, postfix: "\u20BD" }), renderButtonsSection(buttons, { className: 'mt-2xl', isVertical: true }), renderFootnote(footnote)] })] }));
1947
+ }), jsx("div", { className: "flex flex-col gap-y-2xl", children: renderDepositParamsForm({ ...calculatorParams, ...paramsViewSettings }, field) })] }), jsx("div", { className: "border-b border-main-divider mt-lg mb-2xl md:hidden" }), renderRate({
1948
+ rate,
1949
+ }), jsxs("div", { className: "mt-2xl flex flex-col gap-y-2xl sm:w-96 sm:gap-y-0 sm:mt-0", children: [jsx(CalculatorValueBlock, { title: "\u0414\u043E\u0445\u043E\u0434 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: income, postfix: "\u20BD", prefix: "+" }), jsx(CalculatorValueBlock, { title: "\u0421\u0443\u043C\u043C\u0430 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: finalSum, postfix: "\u20BD" }), renderButtonsSection(buttons, { isVertical: true }), renderFootnote(footnote)] })] }));
1919
1950
  });
1920
1951
  const renderDepositParamsForm = (params, field) => (jsxs("div", { className: "flex flex-col gap-y-2xl", children: [params.isShowMonthlyInterestPayment
1921
1952
  ? renderInterestPayment({
@@ -2046,6 +2077,7 @@
2046
2077
  max: calculatorParams.maxMonths,
2047
2078
  ...field('monthsValue'),
2048
2079
  value: calculatorParams.monthsValue,
2080
+ className: 'mt-2xl',
2049
2081
  }), jsx("div", { className: style('mt-7', calculatorParams.isExtraMoney ? 'mb-3' : ''), children: renderCreditParamsForm({ ...calculatorParams, ...paramsViewSettings }, field) }), calculatorParams.isExtraMoney
2050
2082
  ? renderWantedSumInput({
2051
2083
  title: 'Дополнительная сумма, ₽ ',
@@ -2228,7 +2260,7 @@
2228
2260
  return (jsx("div", { className: `inline-block snap-always box-border ${className}`, style: style, "aria-current": Boolean(idx === activeIndex), ref: ref, children: children }));
2229
2261
  });
2230
2262
 
2231
- const childStyleMap = ['min-w-full', 'min-w-1/2', 'min-w-1/3', 'min-w-1/4'];
2263
+ const childStyleMap = ['min-w-full', '@lg:min-w-[50%]', '@lg:min-w-[33.3%]', '@lg:min-w-[25%]'];
2232
2264
  const SwipeListContainer = JSX(({ className = '', containerRef, activeIndex, visibleItemCount = 0, gap = 0, padding = 0, listType = 'horizontal-list', snapAlign = 'snap-center', minHeight, children, onVisibleItemsChange, onVisibleIndicesChange, }) => {
2233
2265
  const observerOptions = {
2234
2266
  sensitivity: 1,
@@ -2435,8 +2467,8 @@
2435
2467
  black: 'bg-black',
2436
2468
  white: 'bg-white',
2437
2469
  };
2438
- const CarouselCatalogCard = JSX(({ className = '', title, description, image, price, button, colors, ...rest }) => (jsxs(BlockWrapper, { className: style('flex flex-col justify-left gap-m', className), defaultPadding: "p-6xl sm:p-7", ...rest, children: [image?.src ? jsx(Img, { className: "flex justify-center", image: image }) : null, jsx(Headline, { title: title, description: description, headlineVersion: "XS", isPadding: false, align: "text-left" }), colors?.length ? (jsxs("div", { className: "flex text-secondary-text", children: [jsx("div", { className: "mr-xs", children: jsx(Text, { size: "text-s", align: "text-left", font: "font-light", children: "\u0426\u0432\u0435\u0442\u0430:" }) }), colors.map(renderColorOption)] })) : null, price ? (jsxs(Text, { size: "text-h3", align: "text-left", children: [price, "\u00A0\u20BD"] })) : null, renderButtonsSection([button], { buttonClassName: 'w-full' })] })));
2439
- const renderColorOption = (color, i) => (jsx("div", { role: "figure", className: `w-6 h-6 ml-1 sm:ml-3 border border-solid border-main-divider rounded-full ${cardStyleMap[color]}` }, String(i)));
2470
+ const CarouselCatalogCard = JSX(({ className = '', title, description, image, price, button, colors, ...rest }) => (jsxs(BlockWrapper, { className: style('flex flex-col justify-left', className), defaultPadding: "p-2xl", ...rest, children: [image?.src ? jsx(Img, { className: "flex justify-center mb-xl", image: image }) : null, jsx(Headline, { title: title, description: description, headlineVersion: "XS", isPadding: false, align: "text-left", className: "mb-m" }), colors?.length ? (jsxs("div", { className: "flex text-secondary-text mb-m", children: [jsx("div", { className: "mr-xs", children: jsx(Text, { size: "text-s", align: "text-left", font: "font-light", children: "\u0426\u0432\u0435\u0442\u0430:" }) }), colors.map(renderColorOption)] })) : null, price ? (jsxs(Text, { size: "text-h3", align: "text-left", children: [price, "\u00A0\u20BD"] })) : null, renderButtonsSection([button], { buttonClassName: 'w-full mt-lg' })] })));
2471
+ const renderColorOption = (color, i) => (jsx("div", { role: "figure", className: `w-6 h-6 ml-s border border-solid border-main-divider rounded-full ${cardStyleMap[color]}` }, String(i)));
2440
2472
 
2441
2473
  const LinkWrapper = JSX(({ className = '', href, target, isRemote = false, children }) => {
2442
2474
  const link = useLink({ isRemote });
@@ -2454,7 +2486,7 @@
2454
2486
  center: 'self-center',
2455
2487
  end: 'self-end',
2456
2488
  };
2457
- const BaseTile = JSX(({ className, defaultPadding, padding, title = '', insetTitle = '', buttons, leftImage, rightImage, imageAlign, backImage, children, }) => (jsxs("div", { className: style('relative flex flex-col gap-3xl font-sans overflow-hidden', padding || defaultPadding, className), children: [title ? jsx("div", { className: "relative", children: title }) : null, jsxs("div", { className: "grow relative flex flex-wrap @xl:flex-nowrap justify-between items-stretch gap-3xl", children: [renderImageContainer(leftImage, { imageAlign }), jsxs("div", { className: style('flex flex-col gap-3xl max-w-[600px] xl:max-w-[728px]', leftImage ? '' : 'grow'), children: [insetTitle, jsx("div", { className: "grow", children: children }), backImage ? (jsx("div", { className: "mx-auto sm:absolute sm:-z-10 sm:-bottom-4 sm:-right-4", children: backImage })) : null, buttons] }), renderImageContainer(rightImage, { className: '-order-1 @xl:order-1', imageAlign })] })] })));
2489
+ const BaseTile = JSX(({ className, defaultPadding, padding, title = '', insetTitle = '', buttons, leftImage, rightImage, imageAlign, backImage, children, }) => (jsxs("div", { className: style('relative flex flex-col gap-3xl font-sans overflow-hidden', padding || defaultPadding, className), children: [title ? jsx("div", { className: "relative", children: title }) : null, jsxs("div", { className: "grow relative flex flex-wrap @xl:flex-nowrap justify-around @xl:justify-between items-stretch gap-3xl", children: [renderImageContainer(leftImage, { imageAlign }), jsxs("div", { className: style('flex flex-col gap-3xl max-w-[600px] xl:max-w-[728px]', leftImage ? '' : 'grow'), children: [insetTitle, jsx("div", { className: "grow", children: children }), backImage ? (jsx("div", { className: "mx-auto sm:absolute sm:-z-10 sm:-bottom-4 sm:-right-4", children: backImage })) : null, buttons] }), renderImageContainer(rightImage, { className: '-order-1 @xl:order-1', imageAlign })] })] })));
2458
2490
  const renderImageContainer = (image, { className, imageAlign }) => image ? (jsx("div", { className: style('flex-shrink-0', imageAlign && imageAlignmentMap[imageAlign], className), children: image })) : null;
2459
2491
 
2460
2492
  const getItemListFontSize = (colValue) => (colValue === 1 ? 'text-h6' : 'text-l');
@@ -2520,11 +2552,60 @@
2520
2552
  const renderAdditionalDescription = (additionalDescription) => additionalDescription ? (jsx(Text, { size: "text-m", font: "font-light", color: "text-secondary-text group-data-secondary:text-white/80", children: additionalDescription })) : null;
2521
2553
  const renderItems = (items, isDotted, version = 'primary') => items?.length ? (jsx(List, { className: style('text-s', version === 'primary' ? '!text-secondary-text' : ''), items: items.filter((item) => item?.text).map((item) => item.text), isDotted: isDotted, listItemSize: "S" })) : null;
2522
2554
 
2523
- const cardTitleFont = 'font-normal';
2524
- const cardDescriptionColor = 'text-secondary-text';
2555
+ const sum = (list = []) => list.reduce((a, b) => a + b, 0);
2556
+
2557
+ const avg = (items = []) => (items?.length ? sum(items) / items.length : 0);
2558
+
2559
+ const deviation = (items) => items?.length ? Math.sqrt(Math.abs(avg(items.map((_) => _ ** 2)) - avg(items) ** 2)) : 0;
2560
+
2561
+ const renderBenefitIcon = (icon, benefitsVersion = 'normal') => icon ? (jsx("div", { className: style('w-12 h-12 min-w-12 box-border flex items-center justify-center rounded-icon', benefitsVersion === 'normal'
2562
+ ? 'bg-secondary-light text-primary-main'
2563
+ : 'bg-primary-main text-black group-data-secondary:bg-white/30 group-data-secondary:text-black'), children: jsx(Img, { className: "w-6 h-6", image: { ...icon, iconVersion: icon.iconVersion || benefitsVersion } }) })) : null;
2564
+
2565
+ const RichText = JSX((props) => {
2566
+ const { __html = '', richVersion = '' } = props;
2567
+ return (jsx("div", { className: style(richVersion, 'md-container'), dangerouslySetInnerHTML: { __html } }));
2568
+ });
2569
+
2570
+ const renderBenefitDescription = (description, i) => description ? (jsx(Paragraph, { font: "font-light", size: "text-m", color: "text-secondary-text group-data-secondary:text-white", children: description }, `description-${i}`)) : null;
2525
2571
 
2526
- const CarouselProgramsCard = JSX(({ className, title, icon, list = [], href, target, ...rest }) => (jsx(BlockWrapper, { className: className, defaultPadding: "p-3xl sm:p-0", ...rest, children: jsxs(LinkWrapper, { className: "sm:flex sm:items-center", href: href, target: target, children: [jsx("div", { className: "flex justify-center px-xl", children: icon?.src || icon?.icon ? jsx(Img, { image: icon }) : null }), jsxs("div", { className: "sm:px-s p-5xl", children: [title ? jsx(Heading, { className: "mb-xs sm:mb-m", headingType: "h6", title: title }) : null, list.length ? (jsx("div", { className: "flex flex-col gap-xs sm:gap-s", children: list?.map(renderList$2) })) : null] })] }) })));
2527
- const renderList$2 = (_, i) => (jsxs("div", { className: "flex flex-row-reverse justify-between gap-y-2xs sm:flex-col", children: [_.title ? (jsx(Text, { size: "text-l", font: cardTitleFont, children: _.title })) : null, _.description ? (jsx(Paragraph, { size: "text-l", font: "font-light", color: cardDescriptionColor, children: _.description })) : null] }, String(i)));
2572
+ const renderBenefitLabel = (label, i) => label ? (jsx(Text, { color: "text-primary-text group-data-secondary:text-white", size: "text-h6", children: label }, `label-${i}`)) : null;
2573
+
2574
+ const renderBenefitText = (_, i) => _.type === 'rte' && '__html' in _ && _.__html ? (jsx(RichText, { ..._ }, `rte-${i}`)) : ([
2575
+ 'label' in _ ? renderBenefitLabel(_.label, i) : null,
2576
+ 'description' in _ ? renderBenefitDescription(_.description, i) : null,
2577
+ ]);
2578
+
2579
+ const BenefitItem = JSX(({ className, benefitsVersion, ..._ }) => (jsxs("div", { className: style('flex gap-m', 'description' in _ && _.description ? 'items-start' : 'items-center', className), children: ['icon' in _ ? renderBenefitIcon(_.icon, benefitsVersion) : null, jsx("div", { children: renderBenefitText(_) })] })));
2580
+
2581
+ const MAX_BENEFITS_LEN_DEVIATION = 16;
2582
+ const benefitLength = (_) => _.type === 'rte'
2583
+ ? _?.__html?.length || 0
2584
+ : Math.max(_?.label?.length || 0, _?.description?.length || 0);
2585
+ const isDistortedBenefits = (benefits) => deviation(benefits.map(benefitLength)) > MAX_BENEFITS_LEN_DEVIATION;
2586
+ const hasIcon = (_) => _ && 'icon' in _ && _.icon && (_.icon.icon || _.icon.src);
2587
+ const isTextualBenefits = (benefits) => !benefits.some(hasIcon);
2588
+ const DefaultBenefitsList = JSX(({ className, benefitsVersion = 'normal', benefits }) => benefits?.length ? (jsx("div", { className: style('flex gap-x-m gap-y-s', isDistortedBenefits(benefits) || isTextualBenefits(benefits) ? 'flex-col' : 'flex-wrap', className), children: benefits.map((_, i) => (jsx(BenefitItem, { benefitsVersion: benefitsVersion, ..._ }, String(i)))) })) : null);
2589
+
2590
+ const TabularBenefitsList = JSX(({ className, benefits }) => benefits?.length ? (jsx("div", { className: style('grid grid-cols-[max-content_1fr] auto-rows-auto items-baseline gap-x-m gap-y-xs', className), children: benefits.flatMap(renderBenefitText) })) : null);
2591
+
2592
+ const BenefitsList = JSX(({ isTabularBenefits, ...rest }) => isTabularBenefits ? jsx(TabularBenefitsList, { ...rest }) : jsx(DefaultBenefitsList, { ...rest }));
2593
+
2594
+ const Tags = JSX(({ className, tags }) => tags?.length ? (jsx("div", { className: style('flex flex-wrap gap-xs', className), role: "list", children: tags.map(renderTag) })) : null);
2595
+ const renderTag = (tag, key) => (jsx("div", { className: "py-2 px-2.5 border-solid border rounded-md border-gray", role: "listitem", children: jsx(Text, { size: "text-m", font: "font-light", children: tag }) }, String(key)));
2596
+
2597
+ const BaseProductTile = JSX(({ className, padding, defaultPadding, title, description, headlineVersion = 'L', align = 'text-left', isInsetTitle = true, benefitsVersion, isTabularBenefits, benefits, __html, items, isDotted = true, listItemSize, tags, buttons, image, imageOptions: { imageAlign = 'end', directionRight = true, isBackground } = {}, children, }) => {
2598
+ const img = image?.src ? jsx(Img, { image: image }) : null;
2599
+ const headline = (jsx(Headline, { title: title, description: description, headlineVersion: headlineVersion, align: align, isPadding: false }));
2600
+ return (jsx(BaseTile, { className: className, padding: padding, defaultPadding: defaultPadding, ...(isInsetTitle ? { insetTitle: headline } : { title: headline }), ...(isBackground ? { backImage: img } : leftOrRightImage(img, directionRight)), imageAlign: imageAlign, buttons: renderButtonsSection(buttons), children: jsxs("div", { className: "flex flex-col gap-xl", children: [jsx(BenefitsList, { benefitsVersion: benefitsVersion, isTabularBenefits: isTabularBenefits, benefits: benefits }), __html ? jsx(RichText, { __html: __html }) : null, items?.length ? (jsx(List, { items: items, isDotted: isDotted, listItemSize: listItemSize })) : null, children, tags?.length ? jsx(Tags, { tags: tags }) : null] }) }));
2601
+ });
2602
+ const leftOrRightImage = (img, directionRight) => directionRight ? { rightImage: img } : { leftImage: img };
2603
+
2604
+ const CarouselProgramsCard = JSX(({ className, title, icon, list, href, target, ...rest }) => (jsx(BlockWrapper, { className: className, defaultPadding: "p-3xl", ...rest, children: jsx(LinkWrapper, { className: "flex items-center h-full", href: href, target: target, children: jsx(BaseProductTile, { title: title, headlineVersion: "XS", image: icon, imageOptions: { directionRight: false, imageAlign: 'center' }, benefits: list?.map((_) => ({
2605
+ type: 'default',
2606
+ label: _.title,
2607
+ description: _.description,
2608
+ })) }) }) })));
2528
2609
 
2529
2610
  const buttonSizeStyles = {
2530
2611
  default: 'w-14 h-14',
@@ -2584,11 +2665,6 @@
2584
2665
  return (jsx(BlockWrapper, { className: style('relative min-h-[218px] group-data-gray:bg-main-divider/50', className), defaultPadding: "p-0", ...rest, children: jsx(LinkWrapper, { href: href, target: target, className: "h-full", children: jsx(BaseTile, { className: "h-full", defaultPadding: "p-m", padding: padding, title: title ? (jsx(Headline, { title: title, description: description, headlineVersion: "S", isPadding: false, align: align })) : null, backImage: icon?.icon || icon?.src ? jsx(Img, { image: icon }) : null, buttons: socialMedia.length ? jsx(SocialMedia, { media: socialMedia }) : null, children: items.length ? jsx(List, { items: items, listItemSize: "S" }) : null }) }) }));
2585
2666
  });
2586
2667
 
2587
- const RichText = JSX((props) => {
2588
- const { __html = '', richVersion = '' } = props;
2589
- return (jsx("div", { className: style(richVersion, 'md-container'), dangerouslySetInnerHTML: { __html } }));
2590
- });
2591
-
2592
2668
  const CarouselRichTextCard = JSX(({ className = '', __html, richVersion = 'striped', ...rest }) => (jsx(BlockWrapper, { className: className, ...rest, children: jsx(RichText, { __html: __html, richVersion: richVersion }) })));
2593
2669
 
2594
2670
  const Foldable = JSX(({ className = '', isFoldButtonOnTop = false, unfoldedByDefault = false, renderFoldableSection, renderFoldButton, }) => {
@@ -2759,8 +2835,8 @@
2759
2835
  const [visibleBlocks, hiddenBlocks] = topItemsCount > 0
2760
2836
  ? [blocksToRender.slice(0, topItemsCount), blocksToRender.slice(topItemsCount)]
2761
2837
  : [blocksToRender, []];
2762
- return (jsxs("div", { children: [jsx("div", { className: style(blocksToRender.length ? 'hidden' : 'block'), children: notFound ? renderNotFound(notFound) : null }), jsxs("div", { className: style(blocksToRender.length ? '' : 'hidden'), children: [jsx("div", { className: style('mb-1', resultsGridStyle), children: renderBlocksList(visibleBlocks, { ...rest.options, parent: block }) }), jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => {
2763
- return (jsx(FoldableSection, { className: style(resultsGridStyle, isUnfolded ? 'mb-1' : ''), isUnfolded: isUnfolded, children: renderBlocksList(hiddenBlocks, { ...rest.options, parent: block }) }));
2838
+ return (jsxs("div", { children: [jsx("div", { className: style(blocksToRender.length ? 'hidden' : 'block'), children: notFound ? renderNotFound(notFound) : null }), jsxs("div", { className: style(blocksToRender.length ? '' : 'hidden'), children: [jsx("div", { className: style('mb-2xs', resultsGridStyle), children: renderBlocksList(visibleBlocks, { ...rest.options, parent: block }) }), jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => {
2839
+ return (jsx(FoldableSection, { className: style(resultsGridStyle, isUnfolded ? 'mb-2xs' : ''), isUnfolded: isUnfolded, children: renderBlocksList(hiddenBlocks, { ...rest.options, parent: block }) }));
2764
2840
  }, renderFoldButton: ({ isUnfolded, onToggle }) => (jsx(DefaultFoldButton, { className: style(topItemsCount < 1 ? 'hidden' : ''), disabled: !hiddenBlocks?.length, label: label, icon: ICONS[Number(isUnfolded)], dataTheme: rest.options?.page?.colorPalette, onClick: onToggle })) })] })] }));
2765
2841
  });
2766
2842
  function renderNotFound({ title, description }) {
@@ -2783,7 +2859,7 @@
2783
2859
  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)));
2784
2860
  });
2785
2861
 
2786
- const renderFiltrationForm = ({ field, reset, filtrationSchema, resetButton, children, }) => (jsxs("form", { className: "flex justify-between bg-white p-9 mb-1", children: [jsxs("div", { className: "flex gap-11", children: [children, Object.entries(filtrationSchema).map(renderFormItem(field))] }), resetButton ? (jsx("div", { children: jsx(Button, { className: "w-72 ml-3", onClick: reset, ...resetButton }) })) : null] }));
2862
+ const renderFiltrationForm = ({ field, reset, filtrationSchema, resetButton, children, }) => (jsxs("form", { className: "flex justify-between bg-white p-4xl mb-2xs", children: [jsxs("div", { className: "flex gap-5xl", children: [children, Object.entries(filtrationSchema).map(renderFormItem(field))] }), resetButton ? (jsx("div", { children: jsx(Button, { className: "w-72 ml-s", onClick: reset, ...resetButton }) })) : null] }));
2787
2863
  const renderFormItem = (field) => ([key, item]) => {
2788
2864
  const type = item?.type;
2789
2865
  switch (type) {
@@ -2796,7 +2872,7 @@
2796
2872
  const renderCheckboxes = (key, field) => (item) => {
2797
2873
  const options = item?.items?.enum?.map((e, i) => ({ value: e, title: item?.items?.enumNames?.[i] || '' })) ||
2798
2874
  [];
2799
- return (jsxs("div", { children: [item?.title ? (jsx("div", { className: "mb-4", children: jsx(Text, { size: "text-m", font: "font-light", color: "text-secondary-text", children: item.title }) })) : null, jsx(SlideCheckboxGroup, { items: options, multiple: true, ...field(key) })] }, key));
2875
+ return (jsxs("div", { children: [item?.title ? (jsx("div", { className: "mb-m", children: jsx(Text, { size: "text-m", font: "font-light", color: "text-secondary-text", children: item.title }) })) : null, jsx(SlideCheckboxGroup, { items: options, multiple: true, ...field(key) })] }, key));
2800
2876
  };
2801
2877
 
2802
2878
  const initialFiltrationState$1 = {
@@ -2903,7 +2979,7 @@
2903
2979
  };
2904
2980
 
2905
2981
  const icon = { icon: 'GpsIcon' };
2906
- const CurrentLocation$1 = JSX(({ className = '', address }) => (jsxs("div", { className: `flex gap-s ${className}`, children: [jsx(RoundedIcon, { ...icon, iconBgVersion: "primary" }), jsxs("div", { className: "space-y-2xs", children: [address ? jsx("p", { className: "text-primary-main text-l", children: address }) : null, jsx("p", { className: "text-secondary-text text-m", children: "\u041A\u0443\u0440\u0441 \u0443\u043A\u0430\u0437\u0430\u043D \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u043D\u043D\u043E\u0433\u043E \u043E\u0444\u0438\u0441\u0430" })] })] })));
2982
+ const CurrentLocation = JSX(({ className = '', address }) => (jsxs("div", { className: `flex gap-s ${className}`, children: [jsx(RoundedIcon, { ...icon, iconBgVersion: "primary" }), jsxs("div", { className: "space-y-2xs", children: [address ? jsx("p", { className: "text-primary-main text-l", children: address }) : null, jsx("p", { className: "text-secondary-text text-m", children: "\u041A\u0443\u0440\u0441 \u0443\u043A\u0430\u0437\u0430\u043D \u0434\u043B\u044F \u0437\u0430\u0434\u0430\u043D\u043D\u043E\u0433\u043E \u043E\u0444\u0438\u0441\u0430" })] })] })));
2907
2983
 
2908
2984
  const roundTo = (value, precision = 2) => {
2909
2985
  const factor = 10 ** precision;
@@ -3046,12 +3122,14 @@
3046
3122
  currencyRatesBuy.unshift({ currency: { currency: Currency.RUB } });
3047
3123
  const currencyRatesSell = currencyRates.filter((_) => _.saleExchangeRate);
3048
3124
  currencyRatesSell.push({ currency: { currency: Currency.RUB } });
3049
- return (jsx(BlockWrapper, { className: style('box-border min-h-80', className), ...rest, children: jsx(BaseTile, { className: "h-full", title: jsx(Heading, { headingType: "h4", title: title, className: "whitespace-pre-wrap" }), children: jsxs("div", { className: "flex gap-6xl flex-wrap", children: [jsxs("div", { children: [currencyRates ? (jsx(CurrencyTable, { className: "mb-xl", exchangeCurrencyItems: currencyRates })) : null, jsx(CurrentLocation$1, { address: exchangeRates?.address })] }), currencyRates.length && currencyRatesBuy.length && currencyRatesSell.length ? (jsx(ExchangeCurrencyCalculator, { className: "grow", currencyRatesBuy: currencyRatesBuy, currencyRatesSell: currencyRatesSell, button: button })) : null] }) }) }));
3125
+ return (jsx(BlockWrapper, { className: style('box-border min-h-80', className), ...rest, children: jsx(BaseTile, { className: "h-full", title: jsx(Heading, { headingType: "h4", title: title, className: "whitespace-pre-wrap" }), children: jsxs("div", { className: "flex gap-6xl flex-wrap", children: [jsxs("div", { children: [currencyRates ? (jsx(CurrencyTable, { className: "mb-xl", exchangeCurrencyItems: currencyRates })) : null, jsx(CurrentLocation, { address: exchangeRates?.address })] }), currencyRates.length && currencyRatesBuy.length && currencyRatesSell.length ? (jsx(ExchangeCurrencyCalculator, { className: "grow", currencyRatesBuy: currencyRatesBuy, currencyRatesSell: currencyRatesSell, button: button })) : null] }) }) }));
3050
3126
  });
3051
3127
  const getCurrencyRates = (currencies) => {
3052
3128
  return currencies?.filter((_) => _?.currency?.id === 1 || _?.currency?.id === 2) || [];
3053
3129
  };
3054
3130
 
3131
+ const useSitemap = (fallback) => useSWRResource(projectSettings.SITEMAP || 'sitemap', fallback);
3132
+
3055
3133
  const ICON_VERSION_MAP = {
3056
3134
  'bg-white': 'color',
3057
3135
  transparent: 'white',
@@ -3077,26 +3155,14 @@
3077
3155
 
3078
3156
  const Logo = JSX(({ className = '', href = '/', logo, children = logo?.title, targetBlank, bgColor = 'bg-white', showTitle = true, }) => (jsxs("a", { className: style('inline-flex items-center font-sans no-underline', className), href: href, target: targetBlank ? '_blank' : '_self', "aria-label": logo?.title || 'Россельхозбанк', children: [renderImage$1(bgColor, logo?.image, { width: '40', height: '45' }), showTitle ? renderTitle(children || logo?.title, bgColor) : null] })));
3079
3157
 
3080
- const CloseButton = JSX(({ className, onClick }) => (jsx("button", { className: style('flex justify-center items-center w-12 h-12 p-1 bg-transparent border-none', className), onClick: onClick, title: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C", children: jsx(Img, { image: { icon: 'CloseIcon' }, width: "24", height: "24" }) })));
3158
+ const CloseButton = JSX(({ className, onClose }) => (jsx("button", { className: style('flex justify-center items-center w-12 h-12 p-1 bg-transparent border-none', className), onClick: onClose, title: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C", children: jsx(Img, { image: { icon: 'CloseIcon' }, width: "24", height: "24" }) })));
3081
3159
 
3082
- function assertUnreachable(x) {
3083
- throw new Error(x);
3084
- }
3085
-
3086
- function useDialogHandlers({ onOpen, onClose } = {}) {
3087
- useEffect(() => defaultEventBus.subscribe('dialog', (action) => {
3088
- switch (action.type) {
3089
- case 'open':
3090
- onOpen && onOpen(action);
3091
- break;
3092
- case 'close':
3093
- onClose && onClose();
3094
- break;
3095
- default:
3096
- assertUnreachable(action);
3097
- }
3098
- }), [onOpen, onClose]);
3099
- }
3160
+ const SearchInput = JSX(({ className, value, autoFocus, onChange, onFocus }) => {
3161
+ const handleChange = useCallback((ev) => {
3162
+ onChange && onChange(ev.target?.value || '');
3163
+ }, [onChange]);
3164
+ return (jsxs("div", { className: style('font-sans relative', className), role: "form", children: [jsx("div", { className: "absolute h-full flex items-center pl-m pointer-events-none", children: jsx(Img, { image: { icon: 'LoupeIcon' }, width: "24", height: "24" }) }), jsx("input", { className: style('h-12 pl-12 w-full text-l text-black outline-none box-border', 'border border-solid rounded-md border-gray hover:border-primary-hover active:border-primary-text focus:border-primary-text'), value: value, type: "text", name: "search-bar-input", placeholder: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", autoFocus: autoFocus, onChange: handleChange, onFocus: onFocus })] }));
3165
+ });
3100
3166
 
3101
3167
  const useDebouncedEffect = (effect, deps, delay = 300) => useEffect(() => {
3102
3168
  const timerId = setTimeout(effect, delay);
@@ -3183,8 +3249,6 @@
3183
3249
  return acc;
3184
3250
  };
3185
3251
 
3186
- const sum = (list = []) => list.reduce((a, b) => a + b, 0);
3187
-
3188
3252
  const MIN_TERM_LEN = 3;
3189
3253
  const tokenize = (text) => text
3190
3254
  .toLowerCase()
@@ -3250,52 +3314,14 @@
3250
3314
  };
3251
3315
  const fetchSearchIndex = async (...basePathList) => (await Promise.allSettled(basePathList.map((basePath) => fetchJSON(joinPath(basePath, '/', SEARCH_INDEX_FILENAME))))).map((_) => (_.status === 'fulfilled' ? _.value : {}));
3252
3316
 
3253
- const Dialog = JSX(({ className, isOpened, head, children, onClose }) => {
3254
- useEffect(() => {
3255
- const handleEscape = ({ key }) => {
3256
- if (key === 'Escape') {
3257
- onClose && onClose();
3258
- }
3259
- };
3260
- globalThis.document?.addEventListener('keydown', handleEscape);
3261
- return () => {
3262
- globalThis.document?.removeEventListener('keydown', handleEscape);
3263
- };
3264
- }, [onClose]);
3265
- return isOpened ? (jsx("div", { className: style('fixed inset-0 bg-white text-l font-light z-50 overflow-x-hidden overflow-y-scroll no-scrollbar', className), role: "dialog", children: jsxs("div", { className: "relative container pb-6xl min-h-full", children: [jsxs("div", { className: "sticky bg-white pt-xl top-0", children: [jsx(CloseButton, { className: "absolute top-0 -right-6xl", onClick: onClose }), head] }), children] }) })) : null;
3266
- });
3267
-
3268
- function useDialogProps(id, isOpenedOnInit = false) {
3269
- const [isOpened, { setTrue: open, setFalse: close }] = useBool(isOpenedOnInit);
3270
- const [params, setParams] = useState({ id });
3271
- const wasOpened = useRef(isOpened);
3272
- wasOpened.current ||= isOpened;
3273
- const handleOpen = useCallback((_) => {
3274
- if (_.id === id) {
3275
- setParams(_);
3276
- open();
3277
- }
3278
- else {
3279
- close();
3280
- }
3281
- }, [id]);
3317
+ const Dialog = JSX(({ className, head, children, onClose }) => {
3318
+ const { close } = useDialogManager();
3282
3319
  const handleClose = useCallback(() => {
3283
3320
  close();
3284
- defaultEventBus.fire('dialog', { type: 'close' });
3285
- }, []);
3286
- useDialogHandlers({
3287
- onOpen: handleOpen,
3288
- onClose: close,
3289
- });
3290
- return {
3291
- ...params,
3292
- isOpened,
3293
- wasOpened: wasOpened.current,
3294
- open,
3295
- close,
3296
- onClose: handleClose,
3297
- };
3298
- }
3321
+ onClose && onClose();
3322
+ }, [onClose]);
3323
+ return (jsxs("div", { className: style('relative min-h-full bg-white', className), children: [jsxs("div", { className: "sticky py-xl top-0 bg-white", children: [jsx(CloseButton, { className: "absolute top-0 right-0", onClose: handleClose }), jsx("div", { className: "container", children: head })] }), jsx("div", { className: "container pb-6xl", children: children })] }));
3324
+ });
3299
3325
 
3300
3326
  const Sitemap = JSX(({ className, topItems }) => {
3301
3327
  const link = useLink({ isRemote: true });
@@ -3312,25 +3338,17 @@
3312
3338
  return (jsx("a", { className: style('text-l font-light text-secondary-text hover:text-primary-main no-underline', 'overflow-x-hidden overflow-ellipsis whitespace-nowrap'), href: href, target: target || '_self', onClick: onClick, children: text || `Раздел ${index}` }));
3313
3339
  });
3314
3340
 
3315
- const SearchInput = JSX(({ className, value, autoFocus, onChange, onFocus }) => {
3316
- const handleChange = useCallback((ev) => {
3317
- onChange && onChange(ev.target?.value || '');
3318
- }, [onChange]);
3319
- return (jsxs("div", { className: style('font-sans relative', className), role: "form", children: [jsx("div", { className: "absolute h-full flex items-center pl-m pointer-events-none", children: jsx(Img, { image: { icon: 'LoupeIcon' }, width: "24", height: "24" }) }), jsx("input", { className: style('h-12 pl-12 w-full text-l text-black outline-none box-border', 'border border-solid rounded-md border-gray hover:border-primary-hover active:border-primary-text focus:border-primary-text'), value: value, type: "text", name: "search-bar-input", placeholder: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", autoFocus: autoFocus, onChange: handleChange, onFocus: onFocus })] }));
3320
- });
3321
-
3322
- const SEARCH_DIALOG_ID = 'search';
3323
- const SearchDialog = JSX(({ topItems }) => {
3324
- const dialogProps = useDialogProps(SEARCH_DIALOG_ID);
3341
+ const SearchDialog = JSX(({ initialQuery }) => {
3342
+ const { topItems } = useSitemap();
3325
3343
  const basePathList = useMemo(() => topItems?.map((_) => _.href || '/'), [topItems]);
3326
3344
  const [searchResult, searchInputProps] = useSearch({
3327
3345
  basePathList,
3328
- initialQuery: dialogProps.message,
3329
- wasOpened: dialogProps.wasOpened,
3346
+ initialQuery,
3347
+ wasOpened: false,
3330
3348
  });
3331
3349
  const searchItems = useMemo(() => combineTopItemsAndSearchResult(topItems)(searchResult), [topItems, searchResult]);
3332
3350
  useEffect(() => printSearchItems(searchItems), [searchItems]); // Temp
3333
- return (jsx(Dialog, { ...dialogProps, head: jsx(SearchInput, { autoFocus: true, ...searchInputProps }), children: jsx(Sitemap, { topItems: searchItems }) }));
3351
+ return (jsx(Dialog, { head: jsx(SearchInput, { autoFocus: true, ...searchInputProps }), children: jsx(Sitemap, { topItems: searchItems }) }));
3334
3352
  });
3335
3353
  const combineTopItemsAndSearchResult = (topItems) => (searchResult) => topItems?.length && searchResult?.length
3336
3354
  ? zip(topItems, searchResult).map(([_, portalSearchResult]) => ({
@@ -3347,19 +3365,26 @@
3347
3365
  }
3348
3366
  }
3349
3367
 
3368
+ const useSearchDialog = () => {
3369
+ const { open, close } = useDialogManager();
3370
+ return {
3371
+ open: (props = {}, options = {}) => open(jsx(SearchDialog, { ...props }), options),
3372
+ close,
3373
+ };
3374
+ };
3375
+
3350
3376
  const MIN_QUERY_LEN = 3;
3351
3377
  const SearchBar$1 = JSX(({ className }) => {
3352
3378
  const [value, setValue] = useState('');
3353
3379
  const resetQueryOnDialogClose = useCallback(() => setValue(''), []);
3354
- useDialogHandlers({ onClose: resetQueryOnDialogClose });
3355
- const { open } = useDialog(SEARCH_DIALOG_ID);
3380
+ const { open } = useSearchDialog();
3356
3381
  const handleInitialInputChange = useCallback((_) => {
3357
3382
  setValue(_);
3358
3383
  if (isQueryLongEnough(_)) {
3359
- open(_);
3384
+ open({ initialQuery: _ }, { onClose: resetQueryOnDialogClose });
3360
3385
  }
3361
- }, []);
3362
- return (jsxs("div", { className: className, children: [jsx(SearchInput, { value: value, onChange: handleInitialInputChange }), jsx(CloseButton, { className: "absolute top-2 right-3 sm:hidden", onClick: resetQueryOnDialogClose })] }));
3386
+ }, [resetQueryOnDialogClose]);
3387
+ return (jsxs("div", { className: className, children: [jsx(SearchInput, { value: value, onChange: handleInitialInputChange }), jsx(CloseButton, { className: "absolute top-2 right-3 sm:hidden", onClose: resetQueryOnDialogClose })] }));
3363
3388
  });
3364
3389
  const isQueryLongEnough = (_) => _ && _.length >= MIN_QUERY_LEN;
3365
3390
 
@@ -3399,9 +3424,10 @@
3399
3424
  const TextInformation = JSX(({ className = '', links }) => (jsxs("div", { className: className, children: [jsx("div", { className: "pt-lg", children: jsx(Text, { size: "text-xs", font: "font-light", color: "text-secondary-text", children: `\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00ABРоссельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.` }) }), links?.length ? (jsx("div", { className: "flex flex-col sm:flex-row justify-start items-start gap-x-lg gap-y-xs pt-lg", children: links.map((_, i) => (jsx(TextInformationLink, { index: i, ..._ }, String(i)))) })) : null] })));
3400
3425
 
3401
3426
  const LEFT_COL_WIDTH = 'w-52';
3402
- const Footer = JSX(({ className, sitemap, ...rest }) => {
3427
+ const Footer = JSX(({ className, ...rest }) => {
3428
+ const { topItems } = useSitemap(rest.options?.page?.fallback);
3403
3429
  const { documents, relatedEnterprises, contacts, socialMedia, mobileApps, logo } = useSWRResource(projectSettings.FOOTER || 'footer', rest.options?.page?.fallback);
3404
- return (jsxs(BlockWrapper, { tag: "footer", className: className, ...rest, children: [jsxs("div", { className: "flex items-stretch gap-3xl pb-3xl ", children: [jsx(Logo, { className: LEFT_COL_WIDTH, logo: logo }), jsx(SearchBar$1, { className: "grow" })] }), jsxs("div", { className: "flex items-stretch gap-6xl", children: [jsxs("div", { className: `${LEFT_COL_WIDTH} flex flex-col shrink-0 overflow-hidden space-y-xl`, children: [jsx(Contacts, { items: contacts }), jsx(SocialMedia, { media: socialMedia, children: "\u0421\u043E\u0446\u0441\u0435\u0442\u0438" }), jsx(SocialMedia, { media: mobileApps, children: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" })] }), jsx(Sitemap, { className: "flex-grow", topItems: sitemap?.topItems })] }), jsx(HorizontalNavigation, { className: "mt-24", links: relatedEnterprises }), jsx(TextInformation, { links: documents })] }));
3430
+ return (jsxs(BlockWrapper, { tag: "footer", className: className, ...rest, children: [jsxs("div", { className: "flex items-stretch gap-3xl pb-3xl ", children: [jsx(Logo, { className: LEFT_COL_WIDTH, logo: logo }), jsx(SearchBar$1, { className: "grow" })] }), jsxs("div", { className: "flex items-stretch gap-6xl", children: [jsxs("div", { className: `${LEFT_COL_WIDTH} flex flex-col shrink-0 overflow-hidden space-y-xl`, children: [jsx(Contacts, { items: contacts }), jsx(SocialMedia, { media: socialMedia, children: "\u0421\u043E\u0446\u0441\u0435\u0442\u0438" }), jsx(SocialMedia, { media: mobileApps, children: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" })] }), jsx(Sitemap, { className: "flex-grow", topItems: topItems })] }), jsx(HorizontalNavigation, { className: "mt-xl", links: relatedEnterprises }), jsx(TextInformation, { links: documents })] }));
3405
3431
  });
3406
3432
 
3407
3433
  const GracePeriod = JSX(({ className = '', title, description, calendar, ...rest }) => (jsxs(BlockWrapper, { className: className, defaultPadding: "p-6xl", ...rest, children: [jsx(Headline, { className: "mb-4", title: title, description: description, headlineVersion: "M", isPadding: false }), calendar ? renderCalendar(calendar) : null] })));
@@ -3420,10 +3446,6 @@
3420
3446
  const renderMonthNames = (item, colSize) => item.month?.map((_, i) => (jsx("div", { style: { flexBasis: `${colSize}%` }, children: _.text }, `monthName-${i}`)));
3421
3447
  const renderMonthImages = (item) => item.month?.map((_) => _.image?.src ? (jsx("div", { className: "h-[207px] border-r pr-3 mr-3 border-main-divider last:border-r-0 last:pr-0 last:mr-0", children: jsx(Img, { image: _.image, className: "flex" }) }, `monthImage-${_.image.src}`)) : null);
3422
3448
 
3423
- const isHrefActive = (router) => ({ href }) => withoutQuery(isURL(href) ? router.href : router.pathname).startsWith(withoutQuery(href));
3424
-
3425
- const isTopItemActive = (router) => isHrefActive(projectSettings.BASE_PATH ? { pathname: projectSettings.BASE_PATH } : router);
3426
-
3427
3449
  const TopItem = JSX(({ className = '', active, flat, children, ...rest }) => {
3428
3450
  const link = useLink({ isRemote: true });
3429
3451
  const { href, target, text, onClick } = link(rest);
@@ -3436,6 +3458,48 @@
3436
3458
  ? 'text-primary-main'
3437
3459
  : style(flat ? 'text-primary-text' : 'text-secondary-text', 'hover:text-primary-main'), 'group-data-transparent:text-white group-data-transparent:hover:text-primary-hover');
3438
3460
 
3461
+ const useLatestEvent = (eventBus, type, initialEvent) => {
3462
+ const [latestEvent, setLatestEvent] = useState(initialEvent || null);
3463
+ useEffect(() => eventBus.subscribe(type, (_) => setLatestEvent(_)), [eventBus, type]);
3464
+ const fireEvent = useCallback((_) => eventBus.fire(type, _), [eventBus, type]);
3465
+ return [latestEvent, fireEvent];
3466
+ };
3467
+
3468
+ const REGION_URL = '/api/v1/region';
3469
+ const LOCATION_STORAGE_KEY = 'location';
3470
+ function useLocation(defaultLocation = 'Москва') {
3471
+ const [currentLocation, fireCurrentLocation] = useLatestEvent(defaultEventBus, 'location', restoreLocation() ?? { name: defaultLocation });
3472
+ const selectCurrentLocation = useCallback((_) => {
3473
+ storeLocation(_);
3474
+ fireCurrentLocation(_);
3475
+ }, []);
3476
+ const { data } = useAsyncData(REGION_URL, fetchJSONUnsafe);
3477
+ useEffect(() => {
3478
+ if (data && !hasStoredLocation()) {
3479
+ fireCurrentLocation(data);
3480
+ }
3481
+ }, [data]);
3482
+ return [currentLocation ?? { name: defaultLocation }, selectCurrentLocation];
3483
+ }
3484
+ const hasStoredLocation = () => Boolean(globalThis.localStorage?.getItem(LOCATION_STORAGE_KEY));
3485
+ const restoreLocation = () => {
3486
+ try {
3487
+ const data = globalThis.localStorage?.getItem(LOCATION_STORAGE_KEY);
3488
+ return data && JSON.parse(data);
3489
+ }
3490
+ catch (ex) {
3491
+ return null;
3492
+ }
3493
+ };
3494
+ const storeLocation = (_) => {
3495
+ try {
3496
+ globalThis.localStorage?.setItem(LOCATION_STORAGE_KEY, JSON.stringify(_));
3497
+ }
3498
+ catch (ex) {
3499
+ // Do nothing
3500
+ }
3501
+ };
3502
+
3439
3503
  const REGIONS_URL = '/api/v1/regions';
3440
3504
  function useRegions() {
3441
3505
  const { data } = useAsyncData(REGIONS_URL, fetchJSONUnsafe);
@@ -3452,44 +3516,53 @@
3452
3516
  return result;
3453
3517
  };
3454
3518
 
3519
+ const renderForeignOffices = (foreignOffices) => foreignOffices?.length ? (jsxs("div", { className: "border-t border-main-divider mt-2xs pt-2xs", children: [jsx("div", { className: "mb-m", children: jsx(Text, { size: "text-m", font: "font-light", color: "text-secondary-text", children: "\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0437\u0430 \u0440\u0443\u0431\u0435\u0436\u043E\u043C:" }) }), jsx("div", { className: "flex gap-10", children: foreignOffices.map((office, i) => (jsx(ForeignOffice, { ...office }, String(i)))) })] })) : null;
3520
+ const ForeignOffice = JSX(({ icon, ...rest }) => {
3521
+ const link = useLink();
3522
+ const { text, target, href, onClick } = link(rest);
3523
+ return (jsxs("div", { className: "flex gap-x-3", children: [icon ? jsx(Img, { pathPrefix: "/wcms-resources/", image: icon }) : null, text ? (jsx("a", { className: "hover:text-primary-hover", href: href, target: target, onClick: onClick, children: text })) : null] }));
3524
+ });
3525
+
3526
+ const renderRegion = (onChangeLocation) => (region) => (jsx("div", { className: "mb-2xs", children: jsx("button", { className: "cursor-pointer hover:text-primary-hover", onClick: () => {
3527
+ onChangeLocation && onChangeLocation(region);
3528
+ }, children: region.name || '' }) }, region.id));
3529
+
3530
+ const renderRegionGroup = (onChangeLocation) => ([letter, regions]) => (jsxs("div", { className: "break-inside-avoid mb-2xl w-56", children: [jsx("div", { className: "mb-s", children: jsx(Text, { size: "text-h6", children: letter }) }), regions.map(renderRegion(onChangeLocation))] }, letter));
3531
+
3455
3532
  const SearchBar = JSX(({ className, searchTerm, onSearch }) => {
3456
3533
  return (jsxs("form", { className: `font-sans relative ${className}`, children: [jsx("div", { className: "absolute rounded h-full flex items-center justify-center pl-4 max-w-44 gap-3.5 pointer-events-none", children: searchTerm ? null : (jsx("label", { htmlFor: "search-bar-input", className: `text-secondary-text `, children: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0444\u0438\u043B\u0438\u0430\u043B\u0430\u043C" })) }), jsx("input", { id: "search-bar-input", className: `h-12 pl-4 w-full peer text-l text-black border border-solid rounded-md box-border
3457
3534
  outline-none border-gray hover:border-primary-hover active:border-primary-text focus:border-primary-text`, value: searchTerm, onChange: (e) => onSearch(e.target.value.toLowerCase()), type: "text", name: "location-search-bar-input" })] }));
3458
3535
  });
3459
3536
 
3460
3537
  const SEARCH_TERM_MIN_LENGTH = 3;
3461
- const LOCATION_DIALOG_ID = 'location';
3462
- const LocationDialog = JSX(({ currentLocation, onChangeLocation, foreignOffices }) => {
3463
- const dialogProps = useDialogProps(LOCATION_DIALOG_ID);
3538
+ const LocationDialog = JSX(() => {
3539
+ const { defaultLocation, foreignOffices } = useSitemap();
3540
+ const [currentLocation, selectCurrentLocation] = useLocation(defaultLocation);
3464
3541
  const [query, setQuery] = useState('');
3465
3542
  const regions = cleanUpRegions(useRegions()).sort((a, b) => a.name.localeCompare(b.name));
3466
3543
  const regionsGroupByLetter = groupBy(regions, regionFirstLetter);
3544
+ const { close } = useDialogManager();
3467
3545
  const handleChangeLocation = useCallback((region) => {
3468
- dialogProps.onClose && dialogProps.onClose();
3469
- onChangeLocation && onChangeLocation(region);
3470
- }, [dialogProps.onClose, onChangeLocation]);
3471
- return (jsxs(Dialog, { ...dialogProps, head: jsxs("div", { children: [jsx(CurrentLocation, { currentLocation: currentLocation, onChangeLocation: handleChangeLocation }), jsx(SearchBar, { onSearch: setQuery, searchTerm: query })] }), children: [query && query.length >= SEARCH_TERM_MIN_LENGTH ? (jsx("div", { children: regions
3546
+ selectCurrentLocation(region);
3547
+ close();
3548
+ }, []);
3549
+ return (jsxs(Dialog, { head: jsxs("div", { children: [currentLocation ? (jsxs("div", { className: "mb-s", children: [jsx(Text, { size: "text-l", font: "font-light", children: "\u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u044B\u0431\u0440\u0430\u043D:\u00A0" }), jsx("button", { onClick: () => selectCurrentLocation(currentLocation), children: jsx(Text, { color: "text-primary-main", children: currentLocation.name }) })] })) : null, jsx(SearchBar, { onSearch: setQuery, searchTerm: query })] }), children: [query && query.length >= SEARCH_TERM_MIN_LENGTH ? (jsx("div", { children: regions
3472
3550
  .filter(({ name }) => name && jaroWinklerDistance(name.toLowerCase())(query.toLowerCase()) >= 0.8)
3473
- .map(renderRegion(handleChangeLocation)) })) : (jsx("div", { className: "columns-5", children: Array.from(regionsGroupByLetter.entries()).map(renderRegionGroup(handleChangeLocation)) })), jsx(ForeignOffices, { foreignOffices: foreignOffices })] }));
3551
+ .map(renderRegion(handleChangeLocation)) })) : (jsx("div", { className: "columns-5", children: Array.from(regionsGroupByLetter.entries()).map(renderRegionGroup(handleChangeLocation)) })), renderForeignOffices(foreignOffices)] }));
3474
3552
  });
3475
3553
  const regionFirstLetter = (region) => region.name?.charAt(0) || '';
3476
3554
  const cleanUpRegions = (regions) => regions.map((region) => ({
3477
3555
  ...region,
3478
3556
  name: region.name?.replace(/республика|область|край'/gi, '').trim() || '',
3479
3557
  }));
3480
- const CurrentLocation = JSX(({ currentLocation, onChangeLocation }) => currentLocation ? (jsxs("div", { className: "mb-4", children: [jsx(Text, { size: "text-l", font: "font-light", children: "\u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u044B\u0431\u0440\u0430\u043D:\u00A0" }), jsx("button", { className: "cursor-pointer", onClick: () => {
3481
- onChangeLocation && onChangeLocation(currentLocation);
3482
- }, children: jsx(Text, { color: "text-primary-main", children: currentLocation.name }) })] })) : null);
3483
- const renderRegionGroup = (onChangeLocation) => ([letter, regions]) => (jsxs("div", { className: "break-inside-avoid mb-2xl w-56", children: [jsx("div", { className: "mb-s", children: jsx(Text, { size: "text-h6", children: letter }) }), regions.map(renderRegion(onChangeLocation))] }, letter));
3484
- const renderRegion = (onChangeLocation) => (region) => (jsx("div", { className: "mb-2xs", children: jsx("button", { className: "cursor-pointer hover:text-primary-hover", onClick: () => {
3485
- onChangeLocation && onChangeLocation(region);
3486
- }, children: region.name || '' }) }, region.id));
3487
- const ForeignOffices = JSX(({ foreignOffices }) => foreignOffices?.length ? (jsxs("div", { className: "border-t border-main-divider mt-2xs pt-2xs", children: [jsx("div", { className: "mb-m", children: jsx(Text, { size: "text-m", font: "font-light", color: "text-secondary-text", children: "\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u0437\u0430 \u0440\u0443\u0431\u0435\u0436\u043E\u043C:" }) }), jsx("div", { className: "flex gap-10", children: foreignOffices.map((office, i) => (jsx(ForeignOffice, { ...office }, String(i)))) })] })) : null);
3488
- const ForeignOffice = JSX(({ icon, ...rest }) => {
3489
- const link = useLink();
3490
- const { text, target, href, onClick } = link(rest);
3491
- return (jsxs("div", { className: "flex gap-x-3", children: [icon ? jsx(Img, { pathPrefix: "/wcms-resources/", image: icon }) : null, text ? (jsx("a", { className: "hover:text-primary-hover", href: href, target: target, onClick: onClick, children: text })) : null] }));
3492
- });
3558
+
3559
+ const useLocationDialog = () => {
3560
+ const { open, close } = useDialogManager();
3561
+ return {
3562
+ open: (options = {}) => open(jsx(LocationDialog, {}), options),
3563
+ close,
3564
+ };
3565
+ };
3493
3566
 
3494
3567
  const BUTTON_SIZE_STYLE = {
3495
3568
  default: 'w-6 h-6',
@@ -3499,15 +3572,18 @@
3499
3572
  ? 'w-8 h-8 text-secondary-light hover:text-secondary-hove'
3500
3573
  : `${BUTTON_SIZE_STYLE[buttonSize]} text-primary-text hover:text-primary-main`, 'group-data-transparent:text-white', className), type: "button", disabled: disabled, "aria-label": ariaLabel, onClick: onClick, children: jsx(Img, { image: image, className: style('h-full', isRounded ? 'bg-main-divider/20 rounded-full' : ''), imageClassName: "group-hover/btn:text-primary-hover group-hover/btn:invert-0" }) })));
3501
3574
 
3502
- const HeaderSecondaryMenu = JSX(({ className, version, locationName: location, officesLink }) => {
3575
+ const HeaderSecondaryMenu = JSX(({ className, version, officesLink, defaultLocation }) => {
3503
3576
  const iconVersion = version === 'transparent' ? 'white' : 'black';
3504
- const { open: openLocationModal } = useDialog(LOCATION_DIALOG_ID);
3505
- const handleOpenLocationModal = useCallback(() => openLocationModal(), []);
3506
- const { open: openSearchModal } = useDialog(SEARCH_DIALOG_ID);
3507
- const handleOpenSearchModal = useCallback(() => openSearchModal(), []);
3508
- return (jsxs("div", { className: style('flex items-center gap-5', className), children: [jsx(TopItem, { flat: true, href: "#", text: location, onClick: handleOpenLocationModal }), officesLink ? jsx(TopItem, { flat: true, href: officesLink, text: "\u041E\u0444\u0438\u0441\u044B \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u044B" }) : null, jsx(HeaderSecondaryMenuButton, { image: { icon: 'LoupeIcon', iconVersion }, ariaLabel: "\u041F\u043E\u0438\u0441\u043A", onClick: handleOpenSearchModal })] }));
3577
+ const [currentLocation] = useLocation(defaultLocation);
3578
+ const searchDialog = useSearchDialog();
3579
+ const openSearchDialog = useCallback(() => searchDialog.open(), []);
3580
+ const locationDialog = useLocationDialog();
3581
+ const openLocationDialog = useCallback(() => locationDialog.open(), []);
3582
+ return (jsxs("div", { className: style('flex items-center gap-5', className), children: [jsx(TopItem, { flat: true, href: "#", text: currentLocation?.name, onClick: openLocationDialog }), officesLink ? jsx(TopItem, { flat: true, href: officesLink, text: "\u041E\u0444\u0438\u0441\u044B \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u044B" }) : null, jsx(HeaderSecondaryMenuButton, { image: { icon: 'LoupeIcon', iconVersion }, ariaLabel: "\u041F\u043E\u0438\u0441\u043A", onClick: openSearchDialog })] }));
3509
3583
  });
3510
3584
 
3585
+ const isHrefActive = (router) => ({ href }) => withoutQuery(isURL(href) ? router.href : router.pathname).startsWith(withoutQuery(href));
3586
+
3511
3587
  const findActiveSubItem = (router) => (items = []) => {
3512
3588
  const possibleActiveSubItems = items?.filter(isHrefActive(router));
3513
3589
  return possibleActiveSubItems?.length
@@ -3628,15 +3704,17 @@
3628
3704
  const handleIntersectionActivation = (index) => (prev) => Math.max(prev, index + 1);
3629
3705
  const handleIntersectionDeactivation = (index) => (prev) => Math.min(prev, index);
3630
3706
 
3707
+ const isTopItemActive = (router) => isHrefActive(projectSettings.BASE_PATH ? { pathname: projectSettings.BASE_PATH } : router);
3708
+
3631
3709
  const BG_COLOR_TO_BLOCK_VERSION = {
3632
3710
  'bg-white': 'primary',
3633
3711
  transparent: 'transparent',
3634
3712
  };
3635
- const Header = JSX(({ className, bgColor = 'bg-white', version = BG_COLOR_TO_BLOCK_VERSION[bgColor], sitemap, location, ...rest }) => {
3713
+ const Header = JSX(({ className, bgColor = 'bg-white', version = BG_COLOR_TO_BLOCK_VERSION[bgColor], ...rest }) => {
3636
3714
  const router = useRouter();
3637
- const { topItems, logo, officesLink, internetBankUrl } = sitemap || {};
3715
+ const { topItems, logo, officesLink, internetBankUrl, defaultLocation } = useSitemap(rest.options?.page?.fallback);
3638
3716
  const activeTopItem = topItems?.find(isTopItemActive(router));
3639
- return (jsx(BlockWrapper, { tag: "header", className: style('pt-3xl px-20', activeTopItem?.items?.length ? 'pb-m' : 'pb-lg', className), defaultPadding: "", version: version, ...rest, children: jsxs("div", { className: "container", children: [jsxs("div", { className: "flex items-center", children: [jsx(Logo, { className: "mr-3xl", bgColor: bgColor, logo: logo }), topItems?.map((_, i) => (jsx(TopItem, { active: _ === activeTopItem, ..._ }, String(i)))), jsx(HeaderSecondaryMenu, { version: version, className: "ml-auto", locationName: location?.name, officesLink: officesLink })] }), jsx("div", { className: style('mt-xl h-px bg-main-divider', version === 'transparent' ? 'opacity-30' : '') }), activeTopItem?.items?.length ? (jsx(HeaderSubMenu, { subItems: activeTopItem.items, version: version, internetBankUrl: internetBankUrl })) : null] }) }));
3717
+ return (jsx(BlockWrapper, { tag: "header", className: style('pt-3xl px-20', activeTopItem?.items?.length ? 'pb-m' : 'pb-lg', className), defaultPadding: "", version: version, ...rest, children: jsxs("div", { className: "container", children: [jsxs("div", { className: "flex items-center", children: [jsx(Logo, { className: "mr-3xl", bgColor: bgColor, logo: logo }), topItems?.map((_, i) => (jsx(TopItem, { active: _ === activeTopItem, ..._ }, String(i)))), jsx(HeaderSecondaryMenu, { version: version, className: "ml-auto", officesLink: officesLink, defaultLocation: defaultLocation })] }), jsx("div", { className: style('mt-xl h-px bg-main-divider', version === 'transparent' ? 'opacity-30' : '') }), activeTopItem?.items?.length ? (jsx(HeaderSubMenu, { subItems: activeTopItem.items, version: version, internetBankUrl: internetBankUrl })) : null] }) }));
3640
3718
  });
3641
3719
 
3642
3720
  const gapStyles = {
@@ -3825,13 +3903,78 @@
3825
3903
 
3826
3904
  const MobileAppTile = JSX(({ className, padding, alignTitle = 'left', buttons = [], description, headingType = 'h4', image, items, qr, title = 'Мобильное приложение', version = 'primary', ...rest }) => {
3827
3905
  const containerStyle = version === 'secondary' ? 'p-m min-w-32' : 'min-w-24';
3828
- return (jsx(BlockWrapper, { className: style('min-h-80', className), padding: "p-0", version: version, ...rest, children: jsxs(BaseTile, { className: "h-full", padding: padding, defaultPadding: "p-6xl", title: title ? (jsx(Heading, { headingType: headingType, title: title, className: style('whitespace-pre-wrap', AlignText[alignTitle]) })) : null, buttons: renderButtonsSection(buttons, { isVertical: buttons.length > 4 }), children: [renderDescription$1(description), jsxs("div", { className: "flex flex-1 flex-wrap gap-m items-center", children: [qr?.src ? (jsx("div", { className: style('flex justify-center bg-white rounded-md', containerStyle), children: jsx(Img, { className: "w-fit", image: qr }) })) : null, renderList$1(items), image?.src ? jsx(Img, { image: image }) : null] })] }) }));
3906
+ return (jsx(BlockWrapper, { className: style('min-h-80', className), padding: "p-0", version: version, ...rest, children: jsxs(BaseTile, { className: "h-full", padding: padding, defaultPadding: "p-6xl", title: title ? (jsx(Heading, { headingType: headingType, title: title, className: style('whitespace-pre-wrap', AlignText[alignTitle]) })) : null, rightImage: image?.src ? jsx(Img, { className: "hidden lg:block", image: image }) : null, buttons: renderButtonsSection(buttons, { isVertical: buttons.length > 4 }), children: [renderDescription$1(description), jsxs("div", { className: "flex flex-1 flex-wrap gap-m items-center", children: [qr?.src ? (jsx("div", { className: style('flex justify-center bg-white rounded-md', containerStyle), children: jsx(Img, { className: "w-fit", image: qr }) })) : null, renderList$1(items), image?.src ? jsx(Img, { className: "lg:hidden", image: image }) : null] })] }) }));
3829
3907
  });
3830
3908
 
3831
- const initialFiltrationState = {};
3832
- const MortgageFiltration = JSX(({ className, filtrationSchema = {}, resetButton, ...rest }) => {
3833
- const [filtrationState, { field, reset }] = useForm(initialFiltrationState);
3834
- return (jsxs(BlockWrapper, { className: style(className), defaultPadding: "p-0", version: "transparent", ...rest, children: [renderFiltrationForm({ field, reset, filtrationSchema, resetButton }), jsx(BaseFiltrationInner, { filtrationState: filtrationState, ...rest })] }));
3909
+ const tabPaddingStyleMap = {
3910
+ default: 'px-xs',
3911
+ underlined: 'px-m',
3912
+ rounded: 'px-lg rounded-md',
3913
+ };
3914
+ const tabTextStyle = 'text-secondary-text hover:text-primary-main';
3915
+ const activeTabTextStyleMap = {
3916
+ default: 'text-black sm:text-white',
3917
+ underlined: 'text-primary-main border-b-2',
3918
+ rounded: 'text-white',
3919
+ };
3920
+ const tabBgStyleMap = {
3921
+ default: 'bg-white',
3922
+ underlined: 'bg-white',
3923
+ rounded: 'bg-transparent',
3924
+ };
3925
+ const activeTabBgStyleMap = {
3926
+ default: 'sm:bg-primary-main',
3927
+ underlined: 'bg-white',
3928
+ rounded: 'bg-primary-main',
3929
+ };
3930
+ const TabItem = JSX(({ item = {}, isActive, onClick, type = 'default' }) => {
3931
+ const link = useLink();
3932
+ const handleClick = () => {
3933
+ onClick && onClick(item);
3934
+ };
3935
+ const { text, ...linkProps } = link({ ...item, onClick: handleClick });
3936
+ const Tag = item.href ? 'a' : 'div';
3937
+ return (jsx(Tag, { className: style('h-12', 'block flex-1', 'cursor-pointer', tabPaddingStyleMap[type], isActive ? activeTabBgStyleMap[type] : tabBgStyleMap[type]), role: "tab", "aria-selected": isActive, ...linkProps, children: jsx("div", { className: style('h-full', 'flex justify-center items-center', 'text-center whitespace-nowrap', isActive ? activeTabTextStyleMap[type] : tabTextStyle), children: jsx(Text, { size: "text-m", children: text }) }) }));
3938
+ });
3939
+
3940
+ const renderTab = (activeTab, onClick, type) => (tab, i) => (jsx(TabItem, { isActive: tab === activeTab, onClick: onClick, type: type, item: tab }, String(i)));
3941
+
3942
+ const TabsControl = JSX(({ className, tabsType = 'default', items = [], value, onChange }) => (jsx("div", { className: style('flex gap-x-2xs overflow-x-auto no-scrollbar', className), role: "tablist", children: items.map(renderTab(value, onChange, tabsType)) })));
3943
+
3944
+ const scalarCmp = (a, b) => a === b;
3945
+ const arrCmp = (cmp = scalarCmp) => (a, b) => a === b || Boolean(a && b && a.length === b.length && a.every((_, i) => cmp(_, b[i])));
3946
+ const objCmp = (cmp) => (a, b) => a === b ||
3947
+ Boolean(a &&
3948
+ b &&
3949
+ Object.keys(a).length === Object.keys(b).length &&
3950
+ Object.entries(a).every(([key, value]) => cmp(value, b[key])));
3951
+ function combineBoolCmps(...comparators) {
3952
+ return (a, b) => comparators.some((cmp) => cmp(a, b));
3953
+ }
3954
+
3955
+ const hotFilterRecordCmp = objCmp(combineBoolCmps(scalarCmp, arrCmp()));
3956
+
3957
+ const initialFiltrationState = {
3958
+ categories: [],
3959
+ extraOptions: [],
3960
+ propertyType: [],
3961
+ stage: [],
3962
+ };
3963
+ const MortgageFiltration = JSX(({ className, hotFilters = [], filtrationSchema = {}, resetButton, ...rest }) => {
3964
+ const [filtrationState, { field, reset, update: replaceFiltrationState }] = useForm(initialFiltrationState);
3965
+ const normalizedHotFilters = useMemo(() => hotFilters.map(({ text }) => ({
3966
+ text,
3967
+ })), [hotFilters]);
3968
+ const [hotFilterIndex, setHotFilterIndex] = useState(0);
3969
+ const handleHotFilterSelect = useCallback((_) => {
3970
+ setHotFilterIndex(normalizedHotFilters.indexOf(_));
3971
+ replaceFiltrationState(hotFilters[normalizedHotFilters.indexOf(_)].filter || initialFiltrationState);
3972
+ }, [normalizedHotFilters]);
3973
+ useEffect(() => {
3974
+ const suggestedHotFilterIndex = hotFilters.findIndex((_) => hotFilterRecordCmp(_.filter, filtrationState));
3975
+ setHotFilterIndex(suggestedHotFilterIndex !== -1 ? suggestedHotFilterIndex : 0);
3976
+ }, [hotFilters, filtrationState]);
3977
+ return (jsxs(BlockWrapper, { className: style(className), defaultPadding: "p-0", version: "transparent", ...rest, children: [jsx(TabsControl, { className: "mb-2xs", items: normalizedHotFilters, value: normalizedHotFilters[hotFilterIndex], onChange: handleHotFilterSelect }), renderFiltrationForm({ field, reset, filtrationSchema, resetButton }), jsx(BaseFiltrationInner, { filtrationState: filtrationState, ...rest })] }));
3835
3978
  });
3836
3979
  MortgageFiltration.childrenTypes = ['ProductTile'];
3837
3980
  MortgageFiltration.childSchema = (content) => content?.filtrationSchema || {};
@@ -4194,46 +4337,6 @@
4194
4337
 
4195
4338
  const ParagraphBlock = JSX(({ text, size, align, font, children, ...rest }) => (jsx(BlockWrapper, { defaultPadding: "p-0", ...rest, children: jsx(Paragraph, { size: size, align: align, font: font, children: text || children }) })));
4196
4339
 
4197
- const avg = (items = []) => (items?.length ? sum(items) / items.length : 0);
4198
-
4199
- const deviation = (items) => items?.length ? Math.sqrt(Math.abs(avg(items.map((_) => _ ** 2)) - avg(items) ** 2)) : 0;
4200
-
4201
- const renderBenefitIcon = (icon, benefitsVersion = 'normal') => icon ? (jsx("div", { className: style('w-12 h-12 min-w-12 box-border flex items-center justify-center rounded-icon', benefitsVersion === 'normal'
4202
- ? 'bg-secondary-light text-primary-main'
4203
- : 'bg-primary-main text-black group-data-secondary:bg-white/30 group-data-secondary:text-black'), children: jsx(Img, { className: "w-6 h-6", image: { ...icon, iconVersion: icon.iconVersion || benefitsVersion } }) })) : null;
4204
-
4205
- const renderBenefitDescription = (description, i) => description ? (jsx(Paragraph, { font: "font-light", size: "text-m", color: "text-secondary-text group-data-secondary:text-white", children: description }, `description-${i}`)) : null;
4206
-
4207
- const renderBenefitLabel = (label, i) => label ? (jsx(Text, { color: "text-primary-text group-data-secondary:text-white", size: "text-h6", children: label }, `label-${i}`)) : null;
4208
-
4209
- const renderBenefitText = (_, i) => _.type === 'rte' && '__html' in _ && _.__html ? (jsx(RichText, { ..._ }, `rte-${i}`)) : ([
4210
- 'label' in _ ? renderBenefitLabel(_.label, i) : null,
4211
- 'description' in _ ? renderBenefitDescription(_.description, i) : null,
4212
- ]);
4213
-
4214
- const BenefitItem = JSX(({ className, benefitsVersion, ..._ }) => (jsxs("div", { className: style('flex gap-m', 'description' in _ && _.description ? 'items-start' : 'items-center', className), children: ['icon' in _ ? renderBenefitIcon(_.icon, benefitsVersion) : null, jsx("div", { children: renderBenefitText(_) })] })));
4215
-
4216
- const MAX_BENEFITS_LEN_DEVIATION = 16;
4217
- const benefitLength = (_) => _.type === 'rte'
4218
- ? _.__html?.length || 0
4219
- : Math.max(_.label?.length || 0, _.description?.length || 0);
4220
- const isDistortedBenefits = (benefits) => deviation(benefits.map(benefitLength)) > MAX_BENEFITS_LEN_DEVIATION;
4221
- const DefaultBenefitsList = JSX(({ className, benefitsVersion = 'normal', benefits }) => benefits?.length ? (jsx("div", { className: style('flex gap-x-m gap-y-s', isDistortedBenefits(benefits) ? 'flex-col' : 'flex-wrap', className), children: benefits.map((_, i) => (jsx(BenefitItem, { benefitsVersion: benefitsVersion, ..._ }, String(i)))) })) : null);
4222
-
4223
- const TabularBenefitsList = JSX(({ className, benefits }) => benefits?.length ? (jsx("div", { className: style('grid grid-cols-[max-content_1fr] auto-rows-auto items-baseline gap-x-m gap-y-xs', className), children: benefits.flatMap(renderBenefitText) })) : null);
4224
-
4225
- const BenefitsList = JSX(({ isTabularBenefits, ...rest }) => isTabularBenefits ? jsx(TabularBenefitsList, { ...rest }) : jsx(DefaultBenefitsList, { ...rest }));
4226
-
4227
- const Tags = JSX(({ className, tags }) => tags?.length ? (jsx("div", { className: style('flex flex-wrap gap-xs', className), role: "list", children: tags.map(renderTag) })) : null);
4228
- const renderTag = (tag, key) => (jsx("div", { className: "py-2 px-2.5 border-solid border rounded-md border-gray", role: "listitem", children: jsx(Text, { size: "text-m", font: "font-light", children: tag }) }, String(key)));
4229
-
4230
- const BaseProductTile = JSX(({ className, padding, defaultPadding, title, description, headlineVersion = 'L', align = 'text-left', isInsetTitle = true, benefitsVersion, isTabularBenefits, benefits, __html, items, isDotted = true, listItemSize, tags, buttons, image, imageOptions: { imageAlign = 'end', directionRight = true, isBackground } = {}, children, }) => {
4231
- const img = image?.src ? jsx(Img, { image: image }) : null;
4232
- const headline = (jsx(Headline, { title: title, description: description, headlineVersion: headlineVersion, align: align, isPadding: false }));
4233
- return (jsx(BaseTile, { className: className, padding: padding, defaultPadding: defaultPadding, ...(isInsetTitle ? { insetTitle: headline } : { title: headline }), ...(isBackground ? { backImage: img } : leftOrRightImage(img, directionRight)), imageAlign: imageAlign, buttons: renderButtonsSection(buttons), children: jsxs("div", { className: "flex flex-col gap-xl", children: [jsx(BenefitsList, { benefitsVersion: benefitsVersion, isTabularBenefits: isTabularBenefits, benefits: benefits }), __html ? jsx(RichText, { __html: __html }) : null, items?.length ? (jsx(List, { items: items, isDotted: isDotted, listItemSize: listItemSize })) : null, children, tags?.length ? jsx(Tags, { tags: tags }) : null] }) }));
4234
- });
4235
- const leftOrRightImage = (img, directionRight) => directionRight ? { rightImage: img } : { leftImage: img };
4236
-
4237
4340
  const renderInsuranceSumMonth = (sum, monthLimit) => sum || monthLimit ? (jsxs("div", { className: "flex flex-wrap xl:flex-nowrap xl:bg-main-divider xl:rounded-md p-xs gap-xl", children: [Number(sum) > 0 ? renderValueBlock('Страховая сумма:', sum) : null, Number(monthLimit) > 0 ? renderValueBlock('Ежемесячный лимит:', monthLimit) : null] })) : null;
4238
4341
  const renderValueBlock = (title, value = 0) => (jsxs("div", { className: "basis-full flex flex-col-reverse sm:flex-row sm:justify-between items-baseline whitespace-pre", children: [jsx(Text, { font: "font-light", size: "text-l", children: title }), jsxs(Text, { size: "text-h6", color: "text-primary-text", children: [toLocalNumberFormat(2)(value), " \u20BD"] })] }));
4239
4342
 
@@ -4340,7 +4443,7 @@
4340
4443
  })) : (jsx(DefaultFoldButton, { label: label, icon: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', onClick: onToggle }));
4341
4444
  };
4342
4445
  const renderPrimaryFoldButton = ({ label, labelIconBgVersion, icon, onToggle, labelIcon, }) => {
4343
- return (jsxs("button", { className: style('border-none bg-transparent flex justify-between items-center w-full group/button', labelIcon?.icon ? 'py-xs' : 'py-lg'), onClick: onToggle, children: [jsxs("div", { className: "flex items-center group-hover/button:text-primary-main gap-s", children: [renderRoundedIcon(), label ? (jsx(Text, { size: "text-h6", font: "font-normal", children: label })) : null] }), icon ? jsx(Icon, { name: icon, iconVersion: rollupIconVersion, width: "24", height: "24" }) : null] }));
4446
+ return (jsxs("button", { className: style('border-none bg-transparent flex justify-between items-center w-full group/button', labelIcon?.icon ? 'py-xs' : 'py-lg'), onClick: onToggle, children: [jsxs("div", { className: "flex items-center text-start group-hover/button:text-primary-main gap-s", children: [renderRoundedIcon(), label ? (jsx(Text, { size: "text-h6", font: "font-normal", children: label })) : null] }), icon ? jsx(Icon, { name: icon, iconVersion: rollupIconVersion, width: "24", height: "24" }) : null] }));
4344
4447
  };
4345
4448
 
4346
4449
  const WrapperSelect = JSX(({ data, fieldLabel, fieldValue, selected, placeholder = '', setSelected, label }) => {
@@ -4540,106 +4643,30 @@
4540
4643
  exclude: ['SwipeListControlBlock'],
4541
4644
  };
4542
4645
 
4543
- const LINK_CLASSES = 'h-12 flex-1 flex items-center justify-center cursor-pointer';
4544
- const INACTIVE_LINK_CLASSES = 'group/btn bg-white';
4545
- const SCROLLABLE_ACTIVE_LINK_CLASSES = 'bg-white text-primary-main';
4546
- const WIDESCREEN_ACTIVE_LINK_CLASSES = 'bg-primary-main text-white';
4547
- const TEXT_CLASSES = 'font-sans text-m text-center';
4548
- const ACTIVE_TEXT_CLASSES = 'text-white';
4549
- const INACTIVE_TEXT_CLASSES = 'text-secondary-text sm:group-hover/btn:text-primary-main';
4550
- const TAB_CLASSES = {
4551
- block: {
4552
- scrollable: {
4553
- active: `inline-flex px-4 grow whitespace-nowrap ${LINK_CLASSES} ${SCROLLABLE_ACTIVE_LINK_CLASSES}`,
4554
- default: `inline-flex px-4 grow whitespace-nowrap ${LINK_CLASSES} ${INACTIVE_LINK_CLASSES}`,
4555
- },
4556
- centered: {
4557
- active: `px-4 rounded-md ${LINK_CLASSES} ${WIDESCREEN_ACTIVE_LINK_CLASSES} whitespace-nowrap`,
4558
- default: `px-4 rounded-md ${LINK_CLASSES} group/btn bg-transparent whitespace-nowrap`,
4559
- },
4560
- wideScreen: {
4561
- active: `${LINK_CLASSES} ${WIDESCREEN_ACTIVE_LINK_CLASSES} whitespace-nowrap`,
4562
- default: `${LINK_CLASSES} ${INACTIVE_LINK_CLASSES} whitespace-nowrap`,
4563
- },
4564
- },
4565
- text: {
4566
- scrollable: {
4567
- active: `${TEXT_CLASSES} flex items-center h-full border-0 border-b-2`,
4568
- default: `${TEXT_CLASSES} ${INACTIVE_TEXT_CLASSES}`,
4569
- },
4570
- centered: {
4571
- active: `${TEXT_CLASSES} ${ACTIVE_TEXT_CLASSES}`,
4572
- default: `${TEXT_CLASSES} ${INACTIVE_TEXT_CLASSES}`,
4573
- },
4574
- wideScreen: {
4575
- active: `${TEXT_CLASSES} ${ACTIVE_TEXT_CLASSES} text-black px-2.5 bg-white sm:bg-primary-main sm:text-white`,
4576
- default: `${TEXT_CLASSES} ${INACTIVE_TEXT_CLASSES} px-2.5 bg-white`,
4577
- },
4578
- },
4579
- };
4580
- const getTabClassName = (type, active, tabsMode) => {
4581
- const styleActive = active ? 'active' : 'default';
4582
- const mode = tabsMode || 'wideScreen';
4583
- return TAB_CLASSES[type][mode][styleActive];
4584
- };
4585
-
4586
- const LinkTab = JSX((props) => {
4587
- const { tab, currentTab, onClick, tabsMode } = props;
4588
- const active = currentTab?.type === 'link' && currentTab.href === tab.href;
4589
- const link = useLink();
4590
- const adjustedProps = link(tab);
4591
- const handleClick = (ev) => {
4592
- adjustedProps.onClick(ev);
4593
- onClick(tab);
4594
- };
4595
- return (jsx("div", { className: getTabClassName('block', active, tabsMode), role: "tab", "aria-selected": active, onClick: () => onClick(tab), children: jsx("a", { role: "tab", className: style('flex flex-1 items-center justify-center h-full', getTabClassName('text', active, tabsMode)), target: tab.target, href: adjustedProps.href, onClick: handleClick, children: jsx("span", { children: tab.text }) }) }));
4646
+ const scrollButtonStyle = 'hidden sm:flex absolute z-40 top-0';
4647
+ const ScrollableTabsControl = JSX(({ className, items = [], value, onChange, tabsType }) => {
4648
+ const [containerRef, scroll] = useSwipeListScroll({
4649
+ itemCount: items?.length || 0,
4650
+ });
4651
+ return (jsxs("div", { className: style('relative overflow-x-auto no-scrollbar', className), role: "tablist", children: [jsx(SwipeListContainer, { containerRef: containerRef, snapAlign: "snap-start", onVisibleIndicesChange: scroll.handleVisibleIndicesChange, children: items.map(renderTab(value, onChange, tabsType)) }), scroll.canScrollLeft ? (jsx(ScrollLeftButton, { className: style('left-6', scrollButtonStyle), onClick: scroll.scrollLeft })) : null, scroll.canScrollRight ? (jsx(ScrollRightButton, { className: style('right-6', scrollButtonStyle), onClick: scroll.scrollRight })) : null] }));
4596
4652
  });
4597
4653
 
4598
- const BADGE_CLASSES = 'bg-main-divider min-w-[22px] h-[22px] rounded-full text-xs ml-xs flex justify-center items-center';
4599
- const LIGHT_BADGE_CLASSES = 'bg-white/30 text-white';
4600
- const DARK_BADGE_CLASSES = 'text-secondary-text group-hover/btn:text-primary-main';
4601
- const renderGroupTab = ({ page, currentTab, showCounter, onClick, tabsMode }) => (tab, i) => {
4602
- const active = currentTab === tab;
4603
- const count = tab.ref && page?.blocks
4604
- ? page.blocks.filter((block) => block?.labels?.includes(tab.ref)).length
4605
- : 0;
4606
- return (jsx("div", { className: getTabClassName('block', active, tabsMode), role: "tab", "aria-selected": active, onClick: () => onClick(tab), children: jsxs("div", { className: style('flex flex-1 items-center justify-center h-full', getTabClassName('text', active, tabsMode)), children: [jsx("span", { children: tab.title }), showCounter && count ? renderCount(tabsMode, count, active) : null] }) }, `group-${String(i)}`));
4607
- };
4608
- const renderCount = (tabsMode, count, active) => {
4609
- return (jsx("div", { className: style(BADGE_CLASSES, active && tabsMode !== 'scrollable' ? LIGHT_BADGE_CLASSES : DARK_BADGE_CLASSES), children: count }));
4610
- };
4611
-
4612
- const renderTab = ({ page, showCounter, ...rest }) => (tab, i) => {
4613
- const type = tab.type;
4614
- if (!(type === 'group' || type === 'link')) {
4615
- return null;
4616
- }
4617
- switch (type) {
4618
- case 'group':
4619
- return renderGroupTab({ page, showCounter, ...rest })(tab, i);
4620
- case 'link': {
4621
- return jsx(LinkTab, { tab: tab, ...rest }, String(i));
4622
- }
4654
+ const renderTabs = ({ tabsMode, ...props }) => {
4655
+ switch (tabsMode) {
4656
+ case 'wideScreen':
4657
+ return jsx(TabsControl, { ...props });
4658
+ case 'centered':
4659
+ return (jsx("div", { className: "flex", children: jsx(TabsControl, { className: "m-auto p-xs rounded-md bg-main-gray", tabsType: "rounded", ...props }) }));
4660
+ case 'scrollable':
4661
+ return (jsx("div", { className: "flex", children: jsx(ScrollableTabsControl, { className: "m-auto", tabsType: "underlined", ...props }) }));
4623
4662
  default:
4624
- assertUnreachable(type);
4663
+ return null;
4625
4664
  }
4626
- return null;
4627
4665
  };
4628
4666
 
4629
- const CenteredTabs = JSX(({ tabs, ...rest }) => (jsx("div", { className: "flex p-1 m-auto bg-main-gray rounded-md", children: tabs?.map(renderTab({ ...rest })) })));
4630
-
4631
- const scrollButtonStyle = 'absolute z-40 top-0';
4632
- const ScrollableTabs = JSX((props) => {
4633
- const { tabs, ...rest } = props;
4634
- const [containerRef, scroll] = useSwipeListScroll({
4635
- itemCount: tabs?.length || 0,
4636
- });
4637
- return (jsxs("div", { className: "relative max-w-full m-auto", children: [jsx("div", { className: `font-sans max-w-full w-full overflow-hidden relative bg-white`, children: jsx(SwipeListContainer, { containerRef: containerRef, snapAlign: "snap-start", onVisibleIndicesChange: scroll.handleVisibleIndicesChange, children: tabs?.map(renderTab({ ...rest })) }) }), scroll.canScrollLeft ? (jsx(ScrollLeftButton, { className: `${scrollButtonStyle} left-6`, onClick: scroll.scrollLeft })) : null, scroll.canScrollRight ? (jsx(ScrollRightButton, { className: `${scrollButtonStyle} rotate-180 right-6`, onClick: scroll.scrollRight })) : null] }));
4638
- });
4639
-
4640
- const Tabs = JSX((props) => {
4641
- const { className = '', isSticky, tabs, ...rest } = props;
4642
- const [currentTab, setCurrentTab] = useState(tabs ? tabs[0] : undefined);
4667
+ const Tabs = JSX(({ className = '', isSticky, tabs = [], tabsMode, ...rest }) => {
4668
+ const normalizedTabs = useMemo(() => tabs.map(normalizeTab), [tabs]);
4669
+ const [activeTabIndex, setActiveTabIndex] = useState(0);
4643
4670
  useEffect(() => {
4644
4671
  if (!tabs || !tabs[0]) {
4645
4672
  return;
@@ -4647,27 +4674,23 @@
4647
4674
  fireTabEvent(tabs[0]);
4648
4675
  }, []);
4649
4676
  useEffect(() => {
4650
- if (currentTab?.type === 'group') {
4651
- defaultEventBus.subject('tab', { type: currentTab.type, label: currentTab.ref });
4677
+ const activeTab = tabs[activeTabIndex];
4678
+ if (activeTab?.type === 'group') {
4679
+ defaultEventBus.subject('tab', { type: activeTab.type, label: activeTab.ref });
4652
4680
  }
4653
- }, [currentTab]);
4654
- const handleClick = useCallback((selectedTab) => {
4655
- fireTabEvent(selectedTab);
4656
- setCurrentTab(selectedTab);
4681
+ }, [tabs, activeTabIndex]);
4682
+ const handleChange = useCallback((_) => {
4683
+ const index = normalizedTabs.indexOf(_);
4684
+ setActiveTabIndex(index);
4685
+ fireTabEvent(tabs[index]);
4657
4686
  }, []);
4658
- return (jsx(BlockWrapper, { className: style('relative box-border flex gap-x-1 w-full overflow-x-auto no-scrollbar', isSticky ? 'sticky top-1 z-20' : '', className), defaultPadding: "p-0", role: "tablist", ...rest, children: renderTabs({ tabs, onClick: handleClick, currentTab, ...rest }) }));
4687
+ return (jsx(BlockWrapper, { className: style(isSticky ? 'sticky top-1 z-20' : '', className), defaultPadding: "p-0", ...rest, children: renderTabs({
4688
+ items: normalizedTabs,
4689
+ onChange: handleChange,
4690
+ value: normalizedTabs[activeTabIndex],
4691
+ tabsMode,
4692
+ }) }));
4659
4693
  });
4660
- const renderTabs = ({ tabsMode, tabs, ...rest }) => {
4661
- switch (tabsMode) {
4662
- case 'wideScreen':
4663
- return tabs?.map(renderTab({ tabsMode, ...rest }));
4664
- case 'centered':
4665
- return jsx(CenteredTabs, { tabs: tabs, tabsMode: tabsMode, ...rest });
4666
- case 'scrollable':
4667
- return jsx(ScrollableTabs, { tabs: tabs, tabsMode: tabsMode, ...rest });
4668
- }
4669
- return null;
4670
- };
4671
4694
  const fireTabEvent = (tab) => {
4672
4695
  if (tab.type === 'group') {
4673
4696
  defaultEventBus.fire('tab', { type: tab.type, label: tab.ref });
@@ -4676,6 +4699,7 @@
4676
4699
  defaultEventBus.fire('tab', { type: tab.type, label: tab.href });
4677
4700
  }
4678
4701
  };
4702
+ const normalizeTab = (_) => (_?.type === 'group' ? { text: _.title } : _);
4679
4703
 
4680
4704
  const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
4681
4705
  const FIRST_CELL_CLASSES = 'w-[354px] flex-shrink-0';
@@ -4942,52 +4966,6 @@
4942
4966
  ExchangeRateOffice,
4943
4967
  };
4944
4968
 
4945
- const STORAGE_DEFAULT_TTL = 86400000; // 24 * 60 * 60 * 1000
4946
- function useCachedAsyncData(key, fetcher, storage = globalThis?.localStorage) {
4947
- const cachedFetcher = useCallback(async (...args) => {
4948
- const storageKey = `async:${key}`;
4949
- const storageData = storage.getItem(storageKey);
4950
- const cachedData = getParsedData(storageData);
4951
- if (cachedData) {
4952
- return cachedData;
4953
- }
4954
- const data = await fetcher(...args);
4955
- storage.setItem(storageKey, JSON.stringify({ data, timestamp: Date.now() }));
4956
- return data;
4957
- }, [key, fetcher]);
4958
- return useAsyncData(key, cachedFetcher);
4959
- }
4960
- function getParsedData(storageData) {
4961
- const { data = null, timestamp = null } = storageData ? JSON.parse(storageData) : {};
4962
- return data && Date.now() - timestamp < STORAGE_DEFAULT_TTL ? data : undefined;
4963
- }
4964
-
4965
- const REGION_URL = '/api/v1/region';
4966
- function useLocation(defaultLocation = 'Москва') {
4967
- const currentLocation = getLocalStorageLocation();
4968
- const [location, setLocation] = useState(currentLocation?.region ?? { name: defaultLocation });
4969
- const { data } = useCachedAsyncData(REGION_URL, fetchJSONUnsafe);
4970
- useEffect(() => {
4971
- setLocation(currentLocation?.region && currentLocation?.manual
4972
- ? currentLocation.region
4973
- : data || { name: defaultLocation });
4974
- }, [data]);
4975
- const onChangeLocation = useCallback((region) => {
4976
- globalThis.localStorage?.setItem('location', JSON.stringify({ manual: true, region }));
4977
- setLocation(region);
4978
- }, []);
4979
- return [location, onChangeLocation];
4980
- }
4981
- const getLocalStorageLocation = () => {
4982
- const localStorageLocation = globalThis.localStorage?.getItem('location');
4983
- try {
4984
- return localStorageLocation ? JSON.parse(localStorageLocation) : null;
4985
- }
4986
- catch (_) {
4987
- return null;
4988
- }
4989
- };
4990
-
4991
4969
  const debounce = (fn, delay = 600) => {
4992
4970
  let timerId;
4993
4971
  const debouncedCallback = (...args) => {
@@ -5046,7 +5024,7 @@
5046
5024
  const COOKIE_DIALOG_ID = 'cookie';
5047
5025
  const DIALOG_INITIAL_DELAY = 3 * 1000;
5048
5026
  const CookiePopup = JSX(({ termLink, personalDataPolicyLink }) => {
5049
- const { isOpened, open, close } = useDialogProps(COOKIE_DIALOG_ID);
5027
+ const [opened, { setTrue: open, setFalse: close }] = useBool();
5050
5028
  useDebouncedEffect(() => {
5051
5029
  if (!globalThis.localStorage?.getItem(COOKIE_DIALOG_ID)) {
5052
5030
  open();
@@ -5055,10 +5033,75 @@
5055
5033
  const handleClose = useCallback(() => {
5056
5034
  globalThis.localStorage?.setItem(COOKIE_DIALOG_ID, 'true');
5057
5035
  close();
5036
+ }, []);
5037
+ return opened ? (jsx("div", { className: "container fixed left-0 right-0 bottom-0 z-50", children: jsxs("div", { className: "bg-white m-xl p-xl rounded-md flex sm:items-center shadow-[0_4px_25px_rgba(0,0,0,0.07)]", children: [jsx("div", { className: "sm:flex-1", children: jsxs(Paragraph, { size: "text-s", font: "font-light", color: "text-primary-text", children: ["\u0410\u041E \u00AB\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u00BB \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442", jsx(LinkWrapper, { isRemote: true, className: linkWrapperStyle(termLink?.href), ...termLink, children: "cookie" }), "(\u0444\u0430\u0439\u043B\u044B \u0441 \u0434\u0430\u043D\u043D\u044B\u043C\u0438 \u043E \u043F\u0440\u043E\u0448\u043B\u044B\u0445 \u043F\u043E\u0441\u0435\u0449\u0435\u043D\u0438\u044F\u0445 \u0441\u0430\u0439\u0442\u0430) \u0434\u043B\u044F \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0432 \u0438 \u0443\u0434\u043E\u0431\u0441\u0442\u0432\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0437\u0430\u043F\u0440\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 cookie \u0432 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0441\u0432\u043E\u0435\u0433\u043E \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430.", jsx(LinkWrapper, { isRemote: true, className: linkWrapperStyle(personalDataPolicyLink?.href), ...personalDataPolicyLink, children: "\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0412\u0430\u0448\u0438\u0445 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445" }), "\u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C\u0438 \u0424\u0435\u0434\u0435\u0440\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0437\u0430\u043A\u043E\u043D\u0430 \u043E\u0442 27.07.2006 \u2116 152-\u04243 \u00AB\u041E \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\u00BB."] }) }), jsx("div", { className: "ml-s sm:ml-0 w-24 flex justify-end", children: jsx(CloseButton, { className: "bg-main-gray rounded-md", onClose: handleClose }) })] }) })) : null;
5038
+ });
5039
+ const linkWrapperStyle = (href) => style('inline mx-1', href ? 'text-green-dark' : '');
5040
+
5041
+ function useList(initialList = []) {
5042
+ const [list, setList] = useState(initialList);
5043
+ const push = useCallback((item) => setList((_) => [..._, item]), []);
5044
+ const pop = useCallback(() => setList((_) => _.slice(0, -1)), []);
5045
+ const remove = useCallback((item) => setList((_) => _.filter((currentItem) => currentItem !== item)), []);
5046
+ const clear = useCallback(() => setList([]), []);
5047
+ return [list, { setList, push, pop, remove, clear }];
5048
+ }
5049
+
5050
+ function assertUnreachable(x) {
5051
+ throw new Error(x);
5052
+ }
5053
+
5054
+ const DialogManager = JSX(() => {
5055
+ const [dialogs, { push, pop, clear }] = useList();
5056
+ const closeAll = useCallback(() => {
5057
+ for (const _ of dialogs) {
5058
+ _.onClose && _.onClose();
5059
+ }
5060
+ clear();
5061
+ }, [dialogs]);
5062
+ const close = useCallback(() => {
5063
+ const _ = dialogs[dialogs.length - 1];
5064
+ _?.onClose && _.onClose();
5065
+ pop();
5066
+ }, [dialogs]);
5067
+ useEffect(() => defaultEventBus.subscribe('dialog', (action) => {
5068
+ switch (action.type) {
5069
+ case 'open':
5070
+ push(action);
5071
+ break;
5072
+ case 'close':
5073
+ if (action.all) {
5074
+ closeAll();
5075
+ }
5076
+ else {
5077
+ close();
5078
+ }
5079
+ break;
5080
+ default:
5081
+ assertUnreachable(action);
5082
+ }
5083
+ }), [closeAll, close]);
5084
+ useEffect(() => {
5085
+ const handleEscape = ({ key }) => {
5086
+ if (key === 'Escape') {
5087
+ close();
5088
+ }
5089
+ };
5090
+ globalThis.document?.addEventListener('keydown', handleEscape);
5091
+ return () => {
5092
+ globalThis.document?.removeEventListener('keydown', handleEscape);
5093
+ };
5058
5094
  }, [close]);
5059
- return isOpened ? (jsx("div", { className: "container z-40 fixed bottom-0 left-0 right-0 pointer-events-none", children: jsxs("div", { className: "bg-white m-5 p-5 sm:m-6 sm:p-6 rounded-md flex sm:items-center pointer-events-auto shadow-[0_4px_25px_rgba(0,0,0,0.07)]", children: [jsx("div", { className: "sm:flex-1", children: jsxs(Paragraph, { size: "text-s", font: "font-light", color: "text-primary-text", children: ["\u0410\u041E \u00AB\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u00BB \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442", jsx(LinkWrapper, { isRemote: true, className: style(getStyleLinkWrapper(termLink?.href)), ...termLink, children: "cookie" }), "(\u0444\u0430\u0439\u043B\u044B \u0441 \u0434\u0430\u043D\u043D\u044B\u043C\u0438 \u043E \u043F\u0440\u043E\u0448\u043B\u044B\u0445 \u043F\u043E\u0441\u0435\u0449\u0435\u043D\u0438\u044F\u0445 \u0441\u0430\u0439\u0442\u0430) \u0434\u043B\u044F \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0432 \u0438 \u0443\u0434\u043E\u0431\u0441\u0442\u0432\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0437\u0430\u043F\u0440\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 cookie \u0432 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0441\u0432\u043E\u0435\u0433\u043E \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430.", jsx(LinkWrapper, { isRemote: true, className: style(getStyleLinkWrapper(personalDataPolicyLink?.href)), ...personalDataPolicyLink, children: "\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0412\u0430\u0448\u0438\u0445 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445" }), "\u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C\u0438 \u0424\u0435\u0434\u0435\u0440\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0437\u0430\u043A\u043E\u043D\u0430 \u043E\u0442 27.07.2006 \u2116 152-\u04243 \u00AB\u041E \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\u00BB."] }) }), jsx("div", { className: "ml-3 sm:ml-0 w-24 flex justify-end", children: jsx(CloseButton, { className: "bg-main-gray rounded-md", onClick: handleClose }) })] }) })) : null;
5095
+ useEffect(() => {
5096
+ if (dialogs.length) {
5097
+ globalThis.document?.body.classList.add('no-scrollbar');
5098
+ }
5099
+ else {
5100
+ globalThis.document?.body.classList.remove('no-scrollbar');
5101
+ }
5102
+ }, [dialogs]);
5103
+ return dialogs.length ? (jsx("div", { className: "fixed inset-0 z-50", role: "dialog", children: dialogs.map(({ dialog, id }, i) => (jsx("div", { className: style('absolute inset-0 overflow-x-hidden overflow-y-scroll no-scrollbar', i === dialogs.length - 1 ? '' : 'hidden'), children: dialog }, String(id || i)))) })) : null;
5060
5104
  });
5061
- const getStyleLinkWrapper = (href) => ['inline mx-1', href ? 'text-green-dark' : ''];
5062
5105
 
5063
5106
  const api = LikeAPI();
5064
5107
  function useLikeService(pagePath) {
@@ -5110,23 +5153,8 @@
5110
5153
  blockDecorator,
5111
5154
  parent: data,
5112
5155
  };
5113
- const sitemap = useSWRResource(projectSettings.SITEMAP || 'sitemap', data?.fallback);
5114
- const [location, onChangeLocation] = useLocation(sitemap?.defaultLocation);
5115
5156
  useBlockRouterProvider();
5116
- const [isSomeDialogOpened, { setTrue: setSomeDialogOpened, setFalse: resetSomeDialogOpened }] = useBool();
5117
- useDialogHandlers({
5118
- onOpen: setSomeDialogOpened,
5119
- onClose: resetSomeDialogOpened,
5120
- });
5121
- return (jsxs("section", { className: style('relative @container', pageStyle, className, isSomeDialogOpened ? 'overflow-hidden h-screen' : ''), "data-theme": colorPalette, children: [slots?.header ? (jsx("div", { className: "relative z-10 mb-5 shadow-[0_8px_32px_0px_#00000014]", children: renderBlocksList(slots?.header, {
5122
- ...options,
5123
- slotName: 'header',
5124
- extraProps: { sitemap, location },
5125
- }) })) : null, jsxs("div", { className: "container @lg:grid @lg:grid-cols-12 @lg:gap-1", children: [renderChildren({ block: data, options, extraProps: { className: 'scroll-mt-12' } }), renderBlocksList(slots?.footer, {
5126
- ...options,
5127
- slotName: 'footer',
5128
- extraProps: { sitemap, location },
5129
- })] }), likeControl ? renderLikeControl() : null, jsx(CookiePopup, { termLink: { href: '/pd-policy#cookie', target: '_blank' }, personalDataPolicyLink: { href: '/pd-policy', target: '_blank' } }), jsx(SearchDialog, { topItems: sitemap?.topItems }), jsx(LocationDialog, { currentLocation: location, foreignOffices: sitemap?.foreignOffices, onChangeLocation: onChangeLocation })] }));
5157
+ return (jsxs("div", { children: [jsxs("section", { className: style('relative @container', pageStyle, className), "data-theme": colorPalette, children: [slots?.header ? (jsx("div", { className: "relative z-10 mb-5 shadow-[0_8px_32px_0px_#00000014]", children: renderBlocksList(slots?.header, { ...options, slotName: 'header' }) })) : null, jsxs("div", { className: "container @lg:grid @lg:grid-cols-12 @lg:gap-1", children: [renderChildren({ block: data, options, extraProps: { className: 'scroll-mt-12' } }), renderBlocksList(slots?.footer, { ...options, slotName: 'footer' })] }), likeControl ? renderLikeControl() : null] }), jsx(DialogManager, {}), jsx(CookiePopup, { termLink: { href: '/pd-policy#cookie', target: '_blank' }, personalDataPolicyLink: { href: '/pd-policy', target: '_blank' } })] }));
5130
5158
  });
5131
5159
  ContentPage.childrenTypes = [];
5132
5160
  ContentPage.slots = () => ['header', 'footer'];
@@ -5134,7 +5162,7 @@
5134
5162
  return (jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: jsx(LikeControl, { className: "rounded-tl-3xl sticky bottom-0 pointer-events-auto" }) }));
5135
5163
  }
5136
5164
 
5137
- const packageVersion = "0.12.13";
5165
+ const packageVersion = "0.13.0";
5138
5166
 
5139
5167
  exports.Blocks = Blocks;
5140
5168
  exports.ContentPage = ContentPage;