@redneckz/wildless-cms-uni-blocks 0.6.37 → 0.6.38

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 (685) hide show
  1. package/bundle/EventBus/EventBus.d.ts +6 -5
  2. package/bundle/EventBus/EventMap.d.ts +1 -4
  3. package/bundle/ProjectSettings.d.ts +2 -0
  4. package/bundle/bundle.umd.js +183 -99
  5. package/bundle/bundle.umd.min.js +1 -1
  6. package/bundle/components/Footer/FooterDataProps.d.ts +8 -3
  7. package/bundle/components/Tabs/LinkTab.d.ts +0 -1
  8. package/bundle/components/Tabs/Tabs.d.ts +0 -4
  9. package/bundle/services/BlockRouter/BlockIntersection.d.ts +2 -0
  10. package/bundle/services/BlockRouter/BlockRouter.d.ts +23 -0
  11. package/bundle/services/BlockRouter/findActiveBlock.d.ts +3 -0
  12. package/bundle/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  13. package/bundle/services/BlockRouter/useBlockRouter.d.ts +2 -0
  14. package/bundle/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  15. package/bundle/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  16. package/bundle/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  17. package/bundle/utils/debounce.d.ts +5 -0
  18. package/dist/EventBus/EventBus.d.ts +6 -5
  19. package/dist/EventBus/EventBus.js +5 -3
  20. package/dist/EventBus/EventBus.js.map +1 -1
  21. package/dist/EventBus/EventMap.d.ts +1 -4
  22. package/dist/ProjectSettings.d.ts +2 -0
  23. package/dist/ProjectSettings.js +3 -0
  24. package/dist/ProjectSettings.js.map +1 -1
  25. package/dist/components/Accordion/Accordion.js +1 -1
  26. package/dist/components/Accordion/Accordion.js.map +1 -1
  27. package/dist/components/AccordionItem/AccordionItem.mobile.js +1 -1
  28. package/dist/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  29. package/dist/components/BenefitsBlock/BenefitsBlock.js +1 -1
  30. package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  31. package/dist/components/Bonus/Bonus.js +2 -2
  32. package/dist/components/Bonus/Bonus.js.map +1 -1
  33. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +1 -1
  34. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  35. package/dist/components/BusinessBlock/BusinessBlock.js +1 -1
  36. package/dist/components/BusinessBlock/BusinessBlock.js.map +1 -1
  37. package/dist/components/Calculator/DepositCalculatorForm.js +0 -1
  38. package/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  39. package/dist/components/Calculator/renderProposal.js +2 -2
  40. package/dist/components/Calculator/renderProposal.js.map +1 -1
  41. package/dist/components/CardTransfer/CardTransfer.js +1 -1
  42. package/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  43. package/dist/components/Catalog/Catalog.js +1 -1
  44. package/dist/components/Catalog/Catalog.js.map +1 -1
  45. package/dist/components/ComparisonTable/ComparisonTable.js +2 -2
  46. package/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
  47. package/dist/components/ContactsBlock/ContactsBlock.js +1 -1
  48. package/dist/components/ContactsBlock/ContactsBlock.js.map +1 -1
  49. package/dist/components/ContentPage/ContentPage.js +2 -0
  50. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  51. package/dist/components/ContentPage/useContentPageData.js +4 -8
  52. package/dist/components/ContentPage/useContentPageData.js.map +1 -1
  53. package/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  54. package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  55. package/dist/components/Footer/Footer.js +2 -2
  56. package/dist/components/Footer/Footer.js.map +1 -1
  57. package/dist/components/Footer/FooterDataProps.d.ts +8 -3
  58. package/dist/components/Footer/MediaButton.js +1 -1
  59. package/dist/components/Footer/MediaButton.js.map +1 -1
  60. package/dist/components/Gallery/Gallery.mobile.js +1 -1
  61. package/dist/components/Gallery/Gallery.mobile.js.map +1 -1
  62. package/dist/components/Gallery/GalleryCardInner.js +1 -1
  63. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  64. package/dist/components/GracePeriod/GracePeriod.js +2 -2
  65. package/dist/components/GracePeriod/GracePeriod.js.map +1 -1
  66. package/dist/components/Header/Header.js +1 -1
  67. package/dist/components/Header/Header.js.map +1 -1
  68. package/dist/components/Header/Header.mobile.js +1 -1
  69. package/dist/components/Header/Header.mobile.js.map +1 -1
  70. package/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  71. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  72. package/dist/components/Header/HeaderSecondaryMenuButton.js +1 -1
  73. package/dist/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  74. package/dist/components/Header/HeaderTop.js +1 -1
  75. package/dist/components/Header/HeaderTop.js.map +1 -1
  76. package/dist/components/Headline/Headline.js +1 -1
  77. package/dist/components/Headline/Headline.js.map +1 -1
  78. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  79. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  80. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +3 -3
  81. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  82. package/dist/components/LinkDocs/LinkDocs.js +1 -1
  83. package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
  84. package/dist/components/LinkList/LinkList.js +1 -1
  85. package/dist/components/LinkList/LinkList.js.map +1 -1
  86. package/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  87. package/dist/components/MobileAppTile/MobileAppTile.mobile.js +1 -1
  88. package/dist/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  89. package/dist/components/OfficeMap/useOfficeMap.js +3 -4
  90. package/dist/components/OfficeMap/useOfficeMap.js.map +1 -1
  91. package/dist/components/ProductBlock/ProductBlock.js +1 -1
  92. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  93. package/dist/components/ProductGallery/ProductGallery.js +2 -2
  94. package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  95. package/dist/components/StepsBlock/StepsBlock.js +2 -2
  96. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  97. package/dist/components/StepsBlock/StepsBlock.mobile.js +3 -3
  98. package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  99. package/dist/components/Tabs/LinkTab.d.ts +0 -1
  100. package/dist/components/Tabs/LinkTab.js +2 -8
  101. package/dist/components/Tabs/LinkTab.js.map +1 -1
  102. package/dist/components/Tabs/Tabs.d.ts +0 -4
  103. package/dist/components/Tabs/Tabs.js +6 -12
  104. package/dist/components/Tabs/Tabs.js.map +1 -1
  105. package/dist/components/TariffsTable/TariffsTable.js +1 -1
  106. package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  107. package/dist/components/TariffsTable/TariffsTableRow.js +1 -1
  108. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  109. package/dist/hooks/useLink.js +11 -2
  110. package/dist/hooks/useLink.js.map +1 -1
  111. package/dist/services/BlockRouter/BlockIntersection.d.ts +2 -0
  112. package/dist/services/BlockRouter/BlockIntersection.js +2 -0
  113. package/dist/services/BlockRouter/BlockIntersection.js.map +1 -0
  114. package/dist/services/BlockRouter/BlockRouter.d.ts +23 -0
  115. package/dist/services/BlockRouter/BlockRouter.js +32 -0
  116. package/dist/services/BlockRouter/BlockRouter.js.map +1 -0
  117. package/dist/services/BlockRouter/findActiveBlock.d.ts +3 -0
  118. package/dist/services/BlockRouter/findActiveBlock.js +15 -0
  119. package/dist/services/BlockRouter/findActiveBlock.js.map +1 -0
  120. package/dist/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  121. package/dist/services/BlockRouter/useBlockIntersectionObserver.js +28 -0
  122. package/dist/services/BlockRouter/useBlockIntersectionObserver.js.map +1 -0
  123. package/dist/services/BlockRouter/useBlockRouter.d.ts +2 -0
  124. package/dist/services/BlockRouter/useBlockRouter.js +8 -0
  125. package/dist/services/BlockRouter/useBlockRouter.js.map +1 -0
  126. package/dist/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  127. package/dist/services/BlockRouter/useBlockRouterProvider.js +37 -0
  128. package/dist/services/BlockRouter/useBlockRouterProvider.js.map +1 -0
  129. package/dist/ui-kit/BenefitItem/BenefitItem.js +1 -1
  130. package/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  131. package/dist/ui-kit/BlockWrapper.js +6 -20
  132. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  133. package/dist/ui-kit/HeaderItem/HeaderItem.js +1 -1
  134. package/dist/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  135. package/dist/ui-kit/HeaderItem/HeaderItem.mobile.js +1 -1
  136. package/dist/ui-kit/HeaderItem/HeaderItem.mobile.js.map +1 -1
  137. package/dist/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  138. package/dist/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  139. package/dist/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  140. package/dist/ui-kit/Select/Select.js +1 -1
  141. package/dist/ui-kit/Select/Select.js.map +1 -1
  142. package/dist/ui-kit/YandexMap/useYandexMaps.js +1 -1
  143. package/dist/ui-kit/YandexMap/useYandexMaps.js.map +1 -1
  144. package/dist/utils/adjustHref.js +3 -1
  145. package/dist/utils/adjustHref.js.map +1 -1
  146. package/dist/utils/debounce.d.ts +5 -0
  147. package/dist/utils/debounce.js +19 -0
  148. package/dist/utils/debounce.js.map +1 -0
  149. package/lib/EventBus/EventBus.d.ts +6 -5
  150. package/lib/EventBus/EventBus.js +5 -3
  151. package/lib/EventBus/EventBus.js.map +1 -1
  152. package/lib/EventBus/EventMap.d.ts +1 -4
  153. package/lib/ProjectSettings.d.ts +2 -0
  154. package/lib/ProjectSettings.js +3 -0
  155. package/lib/ProjectSettings.js.map +1 -1
  156. package/lib/common.css +1 -1
  157. package/lib/components/Accordion/Accordion.js +1 -1
  158. package/lib/components/Accordion/Accordion.js.map +1 -1
  159. package/lib/components/AccordionItem/AccordionItem.mobile.js +1 -1
  160. package/lib/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  161. package/lib/components/BenefitsBlock/BenefitsBlock.js +1 -1
  162. package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  163. package/lib/components/Bonus/Bonus.js +2 -2
  164. package/lib/components/Bonus/Bonus.js.map +1 -1
  165. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +1 -1
  166. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  167. package/lib/components/BusinessBlock/BusinessBlock.js +1 -1
  168. package/lib/components/BusinessBlock/BusinessBlock.js.map +1 -1
  169. package/lib/components/Calculator/DepositCalculatorForm.js +0 -1
  170. package/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  171. package/lib/components/Calculator/renderProposal.js +2 -2
  172. package/lib/components/Calculator/renderProposal.js.map +1 -1
  173. package/lib/components/CardTransfer/CardTransfer.js +1 -1
  174. package/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  175. package/lib/components/Catalog/Catalog.js +1 -1
  176. package/lib/components/Catalog/Catalog.js.map +1 -1
  177. package/lib/components/ComparisonTable/ComparisonTable.js +2 -2
  178. package/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  179. package/lib/components/ContactsBlock/ContactsBlock.js +1 -1
  180. package/lib/components/ContactsBlock/ContactsBlock.js.map +1 -1
  181. package/lib/components/ContentPage/ContentPage.js +2 -0
  182. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  183. package/lib/components/ContentPage/useContentPageData.js +4 -8
  184. package/lib/components/ContentPage/useContentPageData.js.map +1 -1
  185. package/lib/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  186. package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  187. package/lib/components/Footer/Footer.js +2 -2
  188. package/lib/components/Footer/Footer.js.map +1 -1
  189. package/lib/components/Footer/FooterDataProps.d.ts +8 -3
  190. package/lib/components/Footer/MediaButton.js +1 -1
  191. package/lib/components/Footer/MediaButton.js.map +1 -1
  192. package/lib/components/Gallery/Gallery.mobile.js +1 -1
  193. package/lib/components/Gallery/Gallery.mobile.js.map +1 -1
  194. package/lib/components/Gallery/GalleryCardInner.js +1 -1
  195. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  196. package/lib/components/GracePeriod/GracePeriod.js +2 -2
  197. package/lib/components/GracePeriod/GracePeriod.js.map +1 -1
  198. package/lib/components/Header/Header.js +1 -1
  199. package/lib/components/Header/Header.js.map +1 -1
  200. package/lib/components/Header/Header.mobile.js +1 -1
  201. package/lib/components/Header/Header.mobile.js.map +1 -1
  202. package/lib/components/Header/HeaderSecondaryMenu.js +1 -1
  203. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  204. package/lib/components/Header/HeaderSecondaryMenuButton.js +1 -1
  205. package/lib/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  206. package/lib/components/Header/HeaderTop.js +1 -1
  207. package/lib/components/Header/HeaderTop.js.map +1 -1
  208. package/lib/components/Headline/Headline.js +1 -1
  209. package/lib/components/Headline/Headline.js.map +1 -1
  210. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  211. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  212. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +3 -3
  213. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  214. package/lib/components/LinkDocs/LinkDocs.js +1 -1
  215. package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
  216. package/lib/components/LinkList/LinkList.js +1 -1
  217. package/lib/components/LinkList/LinkList.js.map +1 -1
  218. package/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  219. package/lib/components/MobileAppTile/MobileAppTile.mobile.js +1 -1
  220. package/lib/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  221. package/lib/components/OfficeMap/useOfficeMap.js +3 -4
  222. package/lib/components/OfficeMap/useOfficeMap.js.map +1 -1
  223. package/lib/components/ProductBlock/ProductBlock.js +1 -1
  224. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  225. package/lib/components/ProductGallery/ProductGallery.js +2 -2
  226. package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  227. package/lib/components/Recommendation/Recommendation.fixture.d.ts +3 -1
  228. package/lib/components/StepsBlock/StepsBlock.js +2 -2
  229. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  230. package/lib/components/StepsBlock/StepsBlock.mobile.js +3 -3
  231. package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  232. package/lib/components/Tabs/LinkTab.d.ts +0 -1
  233. package/lib/components/Tabs/LinkTab.js +2 -8
  234. package/lib/components/Tabs/LinkTab.js.map +1 -1
  235. package/lib/components/Tabs/Tabs.d.ts +0 -4
  236. package/lib/components/Tabs/Tabs.js +7 -13
  237. package/lib/components/Tabs/Tabs.js.map +1 -1
  238. package/lib/components/TariffsTable/TariffsTable.js +1 -1
  239. package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  240. package/lib/components/TariffsTable/TariffsTableRow.js +1 -1
  241. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  242. package/lib/hooks/useLink.js +11 -2
  243. package/lib/hooks/useLink.js.map +1 -1
  244. package/lib/services/BlockRouter/BlockIntersection.d.ts +2 -0
  245. package/lib/services/BlockRouter/BlockIntersection.js +2 -0
  246. package/lib/services/BlockRouter/BlockIntersection.js.map +1 -0
  247. package/lib/services/BlockRouter/BlockRouter.d.ts +23 -0
  248. package/lib/services/BlockRouter/BlockRouter.js +29 -0
  249. package/lib/services/BlockRouter/BlockRouter.js.map +1 -0
  250. package/lib/services/BlockRouter/findActiveBlock.d.ts +3 -0
  251. package/lib/services/BlockRouter/findActiveBlock.js +12 -0
  252. package/lib/services/BlockRouter/findActiveBlock.js.map +1 -0
  253. package/lib/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  254. package/lib/services/BlockRouter/useBlockIntersectionObserver.js +25 -0
  255. package/lib/services/BlockRouter/useBlockIntersectionObserver.js.map +1 -0
  256. package/lib/services/BlockRouter/useBlockRouter.d.ts +2 -0
  257. package/lib/services/BlockRouter/useBlockRouter.js +5 -0
  258. package/lib/services/BlockRouter/useBlockRouter.js.map +1 -0
  259. package/lib/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  260. package/lib/services/BlockRouter/useBlockRouterProvider.js +34 -0
  261. package/lib/services/BlockRouter/useBlockRouterProvider.js.map +1 -0
  262. package/lib/ui-kit/BenefitItem/BenefitItem.js +1 -1
  263. package/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  264. package/lib/ui-kit/BlockWrapper.js +7 -21
  265. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  266. package/lib/ui-kit/HeaderItem/HeaderItem.js +1 -1
  267. package/lib/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  268. package/lib/ui-kit/HeaderItem/HeaderItem.mobile.js +1 -1
  269. package/lib/ui-kit/HeaderItem/HeaderItem.mobile.js.map +1 -1
  270. package/lib/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  271. package/lib/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  272. package/lib/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  273. package/lib/ui-kit/Select/Select.js +1 -1
  274. package/lib/ui-kit/Select/Select.js.map +1 -1
  275. package/lib/ui-kit/YandexMap/useYandexMaps.js +1 -1
  276. package/lib/ui-kit/YandexMap/useYandexMaps.js.map +1 -1
  277. package/lib/utils/adjustHref.js +3 -1
  278. package/lib/utils/adjustHref.js.map +1 -1
  279. package/lib/utils/debounce.d.ts +5 -0
  280. package/lib/utils/debounce.js +16 -0
  281. package/lib/utils/debounce.js.map +1 -0
  282. package/mobile/bundle/EventBus/EventBus.d.ts +6 -5
  283. package/mobile/bundle/EventBus/EventMap.d.ts +1 -4
  284. package/mobile/bundle/ProjectSettings.d.ts +2 -0
  285. package/mobile/bundle/bundle.umd.js +145 -49
  286. package/mobile/bundle/bundle.umd.min.js +1 -1
  287. package/mobile/bundle/components/Footer/FooterDataProps.d.ts +8 -3
  288. package/mobile/bundle/components/Tabs/LinkTab.d.ts +0 -1
  289. package/mobile/bundle/components/Tabs/Tabs.d.ts +0 -4
  290. package/mobile/bundle/services/BlockRouter/BlockIntersection.d.ts +2 -0
  291. package/mobile/bundle/services/BlockRouter/BlockRouter.d.ts +23 -0
  292. package/mobile/bundle/services/BlockRouter/findActiveBlock.d.ts +3 -0
  293. package/mobile/bundle/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  294. package/mobile/bundle/services/BlockRouter/useBlockRouter.d.ts +2 -0
  295. package/mobile/bundle/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  296. package/mobile/bundle/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  297. package/mobile/bundle/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  298. package/mobile/bundle/utils/debounce.d.ts +5 -0
  299. package/mobile/dist/EventBus/EventBus.d.ts +6 -5
  300. package/mobile/dist/EventBus/EventBus.js +5 -3
  301. package/mobile/dist/EventBus/EventBus.js.map +1 -1
  302. package/mobile/dist/EventBus/EventMap.d.ts +1 -4
  303. package/mobile/dist/ProjectSettings.d.ts +2 -0
  304. package/mobile/dist/ProjectSettings.js +3 -0
  305. package/mobile/dist/ProjectSettings.js.map +1 -1
  306. package/mobile/dist/components/AccordionItem/AccordionItem.js +1 -1
  307. package/mobile/dist/components/AccordionItem/AccordionItem.js.map +1 -1
  308. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +1 -1
  309. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  310. package/mobile/dist/components/Bonus/Bonus.js +2 -2
  311. package/mobile/dist/components/Bonus/Bonus.js.map +1 -1
  312. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +1 -1
  313. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  314. package/mobile/dist/components/BusinessBlock/BusinessBlock.js +1 -1
  315. package/mobile/dist/components/BusinessBlock/BusinessBlock.js.map +1 -1
  316. package/mobile/dist/components/Calculator/DepositCalculatorForm.js +0 -1
  317. package/mobile/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  318. package/mobile/dist/components/Calculator/renderProposal.js +2 -2
  319. package/mobile/dist/components/Calculator/renderProposal.js.map +1 -1
  320. package/mobile/dist/components/CardTransfer/CardTransfer.js +1 -1
  321. package/mobile/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  322. package/mobile/dist/components/Catalog/Catalog.js +1 -1
  323. package/mobile/dist/components/Catalog/Catalog.js.map +1 -1
  324. package/mobile/dist/components/ContactsBlock/ContactsBlock.js +1 -1
  325. package/mobile/dist/components/ContactsBlock/ContactsBlock.js.map +1 -1
  326. package/mobile/dist/components/ContentPage/ContentPage.js +2 -0
  327. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  328. package/mobile/dist/components/ContentPage/useContentPageData.js +4 -8
  329. package/mobile/dist/components/ContentPage/useContentPageData.js.map +1 -1
  330. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  331. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  332. package/mobile/dist/components/Footer/FooterDataProps.d.ts +8 -3
  333. package/mobile/dist/components/Footer/MediaButton.js +1 -1
  334. package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
  335. package/mobile/dist/components/Gallery/Gallery.js +1 -1
  336. package/mobile/dist/components/Gallery/Gallery.js.map +1 -1
  337. package/mobile/dist/components/Gallery/GalleryCardInner.js +1 -1
  338. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  339. package/mobile/dist/components/GracePeriod/GracePeriod.js +2 -2
  340. package/mobile/dist/components/GracePeriod/GracePeriod.js.map +1 -1
  341. package/mobile/dist/components/Header/Header.js +1 -1
  342. package/mobile/dist/components/Header/Header.js.map +1 -1
  343. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  344. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  345. package/mobile/dist/components/Header/HeaderSecondaryMenuButton.js +1 -1
  346. package/mobile/dist/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  347. package/mobile/dist/components/Header/HeaderTop.js +1 -1
  348. package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
  349. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  350. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  351. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +3 -3
  352. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  353. package/mobile/dist/components/LinkList/LinkList.js +1 -1
  354. package/mobile/dist/components/LinkList/LinkList.js.map +1 -1
  355. package/mobile/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  356. package/mobile/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  357. package/mobile/dist/components/OfficeMap/useOfficeMap.js +3 -4
  358. package/mobile/dist/components/OfficeMap/useOfficeMap.js.map +1 -1
  359. package/mobile/dist/components/ProductGallery/ProductGallery.js +2 -2
  360. package/mobile/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  361. package/mobile/dist/components/StepsBlock/StepsBlock.js +3 -3
  362. package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  363. package/mobile/dist/components/Tabs/LinkTab.d.ts +0 -1
  364. package/mobile/dist/components/Tabs/LinkTab.js +2 -8
  365. package/mobile/dist/components/Tabs/LinkTab.js.map +1 -1
  366. package/mobile/dist/components/Tabs/Tabs.d.ts +0 -4
  367. package/mobile/dist/components/Tabs/Tabs.js +6 -12
  368. package/mobile/dist/components/Tabs/Tabs.js.map +1 -1
  369. package/mobile/dist/components/TariffsTable/TariffsTableRow.js +1 -1
  370. package/mobile/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  371. package/mobile/dist/hooks/useLink.js +11 -2
  372. package/mobile/dist/hooks/useLink.js.map +1 -1
  373. package/mobile/dist/services/BlockRouter/BlockIntersection.d.ts +2 -0
  374. package/mobile/dist/services/BlockRouter/BlockIntersection.js +2 -0
  375. package/mobile/dist/services/BlockRouter/BlockIntersection.js.map +1 -0
  376. package/mobile/dist/services/BlockRouter/BlockRouter.d.ts +23 -0
  377. package/mobile/dist/services/BlockRouter/BlockRouter.js +32 -0
  378. package/mobile/dist/services/BlockRouter/BlockRouter.js.map +1 -0
  379. package/mobile/dist/services/BlockRouter/findActiveBlock.d.ts +3 -0
  380. package/mobile/dist/services/BlockRouter/findActiveBlock.js +15 -0
  381. package/mobile/dist/services/BlockRouter/findActiveBlock.js.map +1 -0
  382. package/mobile/dist/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  383. package/mobile/dist/services/BlockRouter/useBlockIntersectionObserver.js +28 -0
  384. package/mobile/dist/services/BlockRouter/useBlockIntersectionObserver.js.map +1 -0
  385. package/mobile/dist/services/BlockRouter/useBlockRouter.d.ts +2 -0
  386. package/mobile/dist/services/BlockRouter/useBlockRouter.js +8 -0
  387. package/mobile/dist/services/BlockRouter/useBlockRouter.js.map +1 -0
  388. package/mobile/dist/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  389. package/mobile/dist/services/BlockRouter/useBlockRouterProvider.js +37 -0
  390. package/mobile/dist/services/BlockRouter/useBlockRouterProvider.js.map +1 -0
  391. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js +1 -1
  392. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  393. package/mobile/dist/ui-kit/BlockWrapper.js +6 -20
  394. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  395. package/mobile/dist/ui-kit/HeaderItem/HeaderItem.js +1 -1
  396. package/mobile/dist/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  397. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  398. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  399. package/mobile/dist/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  400. package/mobile/dist/ui-kit/Select/Select.js +1 -1
  401. package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
  402. package/mobile/dist/ui-kit/YandexMap/useYandexMaps.js +1 -1
  403. package/mobile/dist/ui-kit/YandexMap/useYandexMaps.js.map +1 -1
  404. package/mobile/dist/utils/adjustHref.js +3 -1
  405. package/mobile/dist/utils/adjustHref.js.map +1 -1
  406. package/mobile/dist/utils/debounce.d.ts +5 -0
  407. package/mobile/dist/utils/debounce.js +19 -0
  408. package/mobile/dist/utils/debounce.js.map +1 -0
  409. package/mobile/lib/EventBus/EventBus.d.ts +6 -5
  410. package/mobile/lib/EventBus/EventBus.js +5 -3
  411. package/mobile/lib/EventBus/EventBus.js.map +1 -1
  412. package/mobile/lib/EventBus/EventMap.d.ts +1 -4
  413. package/mobile/lib/ProjectSettings.d.ts +2 -0
  414. package/mobile/lib/ProjectSettings.js +3 -0
  415. package/mobile/lib/ProjectSettings.js.map +1 -1
  416. package/mobile/lib/components/AccordionItem/AccordionItem.js +1 -1
  417. package/mobile/lib/components/AccordionItem/AccordionItem.js.map +1 -1
  418. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +1 -1
  419. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  420. package/mobile/lib/components/Bonus/Bonus.js +2 -2
  421. package/mobile/lib/components/Bonus/Bonus.js.map +1 -1
  422. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +1 -1
  423. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  424. package/mobile/lib/components/BusinessBlock/BusinessBlock.js +1 -1
  425. package/mobile/lib/components/BusinessBlock/BusinessBlock.js.map +1 -1
  426. package/mobile/lib/components/Calculator/DepositCalculatorForm.js +0 -1
  427. package/mobile/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  428. package/mobile/lib/components/Calculator/renderProposal.js +2 -2
  429. package/mobile/lib/components/Calculator/renderProposal.js.map +1 -1
  430. package/mobile/lib/components/CardTransfer/CardTransfer.js +1 -1
  431. package/mobile/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  432. package/mobile/lib/components/Catalog/Catalog.js +1 -1
  433. package/mobile/lib/components/Catalog/Catalog.js.map +1 -1
  434. package/mobile/lib/components/ContactsBlock/ContactsBlock.js +1 -1
  435. package/mobile/lib/components/ContactsBlock/ContactsBlock.js.map +1 -1
  436. package/mobile/lib/components/ContentPage/ContentPage.js +2 -0
  437. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  438. package/mobile/lib/components/ContentPage/useContentPageData.js +4 -8
  439. package/mobile/lib/components/ContentPage/useContentPageData.js.map +1 -1
  440. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  441. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  442. package/mobile/lib/components/Footer/FooterDataProps.d.ts +8 -3
  443. package/mobile/lib/components/Footer/MediaButton.js +1 -1
  444. package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
  445. package/mobile/lib/components/Gallery/Gallery.js +1 -1
  446. package/mobile/lib/components/Gallery/Gallery.js.map +1 -1
  447. package/mobile/lib/components/Gallery/GalleryCardInner.js +1 -1
  448. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  449. package/mobile/lib/components/GracePeriod/GracePeriod.js +2 -2
  450. package/mobile/lib/components/GracePeriod/GracePeriod.js.map +1 -1
  451. package/mobile/lib/components/Header/Header.js +1 -1
  452. package/mobile/lib/components/Header/Header.js.map +1 -1
  453. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +1 -1
  454. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  455. package/mobile/lib/components/Header/HeaderSecondaryMenuButton.js +1 -1
  456. package/mobile/lib/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  457. package/mobile/lib/components/Header/HeaderTop.js +1 -1
  458. package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
  459. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  460. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  461. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +3 -3
  462. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  463. package/mobile/lib/components/LinkList/LinkList.js +1 -1
  464. package/mobile/lib/components/LinkList/LinkList.js.map +1 -1
  465. package/mobile/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  466. package/mobile/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  467. package/mobile/lib/components/OfficeMap/useOfficeMap.js +3 -4
  468. package/mobile/lib/components/OfficeMap/useOfficeMap.js.map +1 -1
  469. package/mobile/lib/components/ProductGallery/ProductGallery.js +2 -2
  470. package/mobile/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  471. package/mobile/lib/components/StepsBlock/StepsBlock.js +3 -3
  472. package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  473. package/mobile/lib/components/Tabs/LinkTab.d.ts +0 -1
  474. package/mobile/lib/components/Tabs/LinkTab.js +2 -8
  475. package/mobile/lib/components/Tabs/LinkTab.js.map +1 -1
  476. package/mobile/lib/components/Tabs/Tabs.d.ts +0 -4
  477. package/mobile/lib/components/Tabs/Tabs.js +7 -13
  478. package/mobile/lib/components/Tabs/Tabs.js.map +1 -1
  479. package/mobile/lib/components/TariffsTable/TariffsTableRow.js +1 -1
  480. package/mobile/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  481. package/mobile/lib/hooks/useLink.js +11 -2
  482. package/mobile/lib/hooks/useLink.js.map +1 -1
  483. package/mobile/lib/services/BlockRouter/BlockIntersection.d.ts +2 -0
  484. package/mobile/lib/services/BlockRouter/BlockIntersection.js +2 -0
  485. package/mobile/lib/services/BlockRouter/BlockIntersection.js.map +1 -0
  486. package/mobile/lib/services/BlockRouter/BlockRouter.d.ts +23 -0
  487. package/mobile/lib/services/BlockRouter/BlockRouter.js +29 -0
  488. package/mobile/lib/services/BlockRouter/BlockRouter.js.map +1 -0
  489. package/mobile/lib/services/BlockRouter/findActiveBlock.d.ts +3 -0
  490. package/mobile/lib/services/BlockRouter/findActiveBlock.js +12 -0
  491. package/mobile/lib/services/BlockRouter/findActiveBlock.js.map +1 -0
  492. package/mobile/lib/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  493. package/mobile/lib/services/BlockRouter/useBlockIntersectionObserver.js +25 -0
  494. package/mobile/lib/services/BlockRouter/useBlockIntersectionObserver.js.map +1 -0
  495. package/mobile/lib/services/BlockRouter/useBlockRouter.d.ts +2 -0
  496. package/mobile/lib/services/BlockRouter/useBlockRouter.js +5 -0
  497. package/mobile/lib/services/BlockRouter/useBlockRouter.js.map +1 -0
  498. package/mobile/lib/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  499. package/mobile/lib/services/BlockRouter/useBlockRouterProvider.js +34 -0
  500. package/mobile/lib/services/BlockRouter/useBlockRouterProvider.js.map +1 -0
  501. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js +1 -1
  502. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  503. package/mobile/lib/ui-kit/BlockWrapper.js +7 -21
  504. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  505. package/mobile/lib/ui-kit/HeaderItem/HeaderItem.js +1 -1
  506. package/mobile/lib/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  507. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  508. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  509. package/mobile/lib/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  510. package/mobile/lib/ui-kit/Select/Select.js +1 -1
  511. package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
  512. package/mobile/lib/ui-kit/YandexMap/useYandexMaps.js +1 -1
  513. package/mobile/lib/ui-kit/YandexMap/useYandexMaps.js.map +1 -1
  514. package/mobile/lib/utils/adjustHref.js +3 -1
  515. package/mobile/lib/utils/adjustHref.js.map +1 -1
  516. package/mobile/lib/utils/debounce.d.ts +5 -0
  517. package/mobile/lib/utils/debounce.js +16 -0
  518. package/mobile/lib/utils/debounce.js.map +1 -0
  519. package/mobile/src/EventBus/EventBus.ts +18 -14
  520. package/mobile/src/EventBus/EventMap.ts +1 -4
  521. package/mobile/src/ProjectSettings.ts +4 -0
  522. package/mobile/src/components/AccordionItem/AccordionItem.tsx +1 -1
  523. package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +1 -1
  524. package/mobile/src/components/Bonus/Bonus.tsx +2 -4
  525. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +1 -1
  526. package/mobile/src/components/BusinessBlock/BusinessBlock.tsx +1 -1
  527. package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +0 -1
  528. package/mobile/src/components/Calculator/renderProposal.tsx +2 -2
  529. package/mobile/src/components/CardTransfer/CardTransfer.tsx +1 -1
  530. package/mobile/src/components/Catalog/Catalog.example.json +1 -1
  531. package/mobile/src/components/Catalog/Catalog.tsx +1 -1
  532. package/mobile/src/components/ContactsBlock/ContactsBlock.tsx +1 -1
  533. package/mobile/src/components/ContentPage/ContentPage.tsx +3 -0
  534. package/mobile/src/components/ContentPage/useContentPageData.ts +4 -8
  535. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.tsx +1 -1
  536. package/mobile/src/components/Footer/FooterDataProps.ts +8 -3
  537. package/mobile/src/components/Footer/MediaButton.tsx +1 -1
  538. package/mobile/src/components/Gallery/Gallery.tsx +1 -1
  539. package/mobile/src/components/Gallery/GalleryCardInner.tsx +1 -1
  540. package/mobile/src/components/GracePeriod/GracePeriod.tsx +2 -2
  541. package/mobile/src/components/Header/Header.tsx +1 -1
  542. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +1 -1
  543. package/mobile/src/components/Header/HeaderSecondaryMenuButton.tsx +1 -1
  544. package/mobile/src/components/Header/HeaderTop.tsx +1 -1
  545. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +1 -1
  546. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +3 -6
  547. package/mobile/src/components/LinkList/LinkList.tsx +1 -1
  548. package/mobile/src/components/MobileAppTile/MobileAppTile.tsx +1 -1
  549. package/mobile/src/components/OfficeMap/useOfficeMap.ts +4 -4
  550. package/mobile/src/components/ProductGallery/ProductGallery.tsx +2 -2
  551. package/mobile/src/components/StepsBlock/StepsBlock.tsx +3 -3
  552. package/mobile/src/components/Tabs/LinkTab.tsx +2 -10
  553. package/mobile/src/components/Tabs/Tabs.tsx +11 -19
  554. package/mobile/src/components/TariffsTable/TariffsTableRow.tsx +1 -1
  555. package/mobile/src/hooks/useLink.ts +13 -2
  556. package/mobile/src/services/BlockRouter/BlockIntersection.ts +3 -0
  557. package/mobile/src/services/BlockRouter/BlockRouter.ts +51 -0
  558. package/mobile/src/services/BlockRouter/findActiveBlock.ts +20 -0
  559. package/mobile/src/services/BlockRouter/useBlockIntersectionObserver.ts +37 -0
  560. package/mobile/src/services/BlockRouter/useBlockRouter.ts +5 -0
  561. package/mobile/src/services/BlockRouter/useBlockRouterProvider.ts +49 -0
  562. package/mobile/src/ui-kit/BenefitItem/BenefitItem.tsx +1 -1
  563. package/mobile/src/ui-kit/BlockWrapper.tsx +9 -32
  564. package/mobile/src/ui-kit/HeaderItem/HeaderItem.tsx +1 -1
  565. package/mobile/src/ui-kit/InnerTable/InnerTableButton.tsx +5 -2
  566. package/mobile/src/ui-kit/InnerTable/InnerTableProps.ts +0 -6
  567. package/mobile/src/ui-kit/Select/Select.tsx +2 -2
  568. package/mobile/src/ui-kit/YandexMap/useYandexMaps.ts +3 -1
  569. package/mobile/src/utils/adjustHref.ts +3 -1
  570. package/mobile/src/utils/debounce.ts +24 -0
  571. package/package.json +1 -1
  572. package/src/EventBus/EventBus.ts +18 -14
  573. package/src/EventBus/EventMap.ts +1 -4
  574. package/src/ProjectSettings.ts +4 -0
  575. package/src/components/Accordion/Accordion.tsx +1 -1
  576. package/src/components/AccordionItem/AccordionItem.mobile.tsx +1 -1
  577. package/src/components/BenefitsBlock/BenefitsBlock.tsx +1 -1
  578. package/src/components/Bonus/Bonus.tsx +2 -4
  579. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +1 -1
  580. package/src/components/BusinessBlock/BusinessBlock.tsx +1 -1
  581. package/src/components/Calculator/DepositCalculatorForm.tsx +0 -1
  582. package/src/components/Calculator/renderProposal.tsx +2 -2
  583. package/src/components/CardTransfer/CardTransfer.tsx +1 -1
  584. package/src/components/CarouselProgramsCard/CarouselProgramsCard.fixture.tsx +0 -1
  585. package/src/components/Catalog/Catalog.example.json +1 -1
  586. package/src/components/Catalog/Catalog.tsx +1 -1
  587. package/src/components/ComparisonTable/ComparisonTable.tsx +2 -2
  588. package/src/components/ContactsBlock/ContactsBlock.tsx +1 -1
  589. package/src/components/ContentPage/ContentPage.tsx +3 -0
  590. package/src/components/ContentPage/useContentPageData.ts +4 -8
  591. package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +1 -1
  592. package/src/components/Footer/Footer.tsx +2 -2
  593. package/src/components/Footer/FooterDataProps.ts +8 -3
  594. package/src/components/Footer/MediaButton.tsx +1 -1
  595. package/src/components/Gallery/Gallery.mobile.tsx +1 -1
  596. package/src/components/Gallery/GalleryCardInner.tsx +1 -1
  597. package/src/components/GracePeriod/GracePeriod.tsx +2 -2
  598. package/src/components/Header/Header.mobile.tsx +1 -1
  599. package/src/components/Header/Header.tsx +1 -1
  600. package/src/components/Header/HeaderSecondaryMenu.tsx +1 -1
  601. package/src/components/Header/HeaderSecondaryMenuButton.tsx +1 -1
  602. package/src/components/Header/HeaderTop.tsx +1 -1
  603. package/src/components/Headline/Headline.tsx +1 -1
  604. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +1 -1
  605. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +3 -6
  606. package/src/components/LinkDocs/LinkDocs.tsx +1 -4
  607. package/src/components/LinkList/LinkList.tsx +1 -1
  608. package/src/components/MobileAppTile/MobileAppTile.mobile.tsx +1 -1
  609. package/src/components/MobileAppTile/MobileAppTile.tsx +1 -1
  610. package/src/components/OfficeMap/useOfficeMap.ts +4 -4
  611. package/src/components/ProductBlock/ProductBlock.tsx +1 -1
  612. package/src/components/ProductGallery/ProductGallery.tsx +2 -2
  613. package/src/components/Recommendation/Recommendation.fixture.tsx +38 -1
  614. package/src/components/StepsBlock/StepsBlock.mobile.tsx +3 -3
  615. package/src/components/StepsBlock/StepsBlock.tsx +2 -4
  616. package/src/components/Tabs/LinkTab.tsx +2 -10
  617. package/src/components/Tabs/Tabs.tsx +11 -19
  618. package/src/components/TariffsTable/TariffsTable.tsx +1 -1
  619. package/src/components/TariffsTable/TariffsTableRow.tsx +1 -1
  620. package/src/components/TextBlock/TextBlock.fixture.mobile.tsx +3 -3
  621. package/src/hooks/useLink.ts +13 -2
  622. package/src/services/BlockRouter/BlockIntersection.ts +3 -0
  623. package/src/services/BlockRouter/BlockRouter.ts +51 -0
  624. package/src/services/BlockRouter/findActiveBlock.ts +20 -0
  625. package/src/services/BlockRouter/useBlockIntersectionObserver.ts +37 -0
  626. package/src/services/BlockRouter/useBlockRouter.ts +5 -0
  627. package/src/services/BlockRouter/useBlockRouterProvider.ts +49 -0
  628. package/src/ui-kit/BenefitItem/BenefitItem.tsx +1 -1
  629. package/src/ui-kit/BlockWrapper.tsx +9 -32
  630. package/src/ui-kit/HeaderItem/HeaderItem.mobile.tsx +1 -1
  631. package/src/ui-kit/HeaderItem/HeaderItem.tsx +1 -1
  632. package/src/ui-kit/InnerTable/InnerTableButton.tsx +5 -2
  633. package/src/ui-kit/InnerTable/InnerTableProps.ts +0 -6
  634. package/src/ui-kit/Select/Select.tsx +2 -2
  635. package/src/ui-kit/YandexMap/useYandexMaps.ts +3 -1
  636. package/src/utils/adjustHref.ts +3 -1
  637. package/src/utils/debounce.ts +24 -0
  638. package/bundle/components/SafeDepositRental/YandexMap.d.ts +0 -5
  639. package/bundle/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  640. package/bundle/utils/changeHashOnObserve.d.ts +0 -9
  641. package/dist/components/SafeDepositRental/YandexMap.d.ts +0 -5
  642. package/dist/components/SafeDepositRental/YandexMap.js +0 -31
  643. package/dist/components/SafeDepositRental/YandexMap.js.map +0 -1
  644. package/dist/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  645. package/dist/components/SafeDepositRental/useYandexMaps.js +0 -12
  646. package/dist/components/SafeDepositRental/useYandexMaps.js.map +0 -1
  647. package/dist/utils/changeHashOnObserve.d.ts +0 -9
  648. package/dist/utils/changeHashOnObserve.js +0 -21
  649. package/dist/utils/changeHashOnObserve.js.map +0 -1
  650. package/lib/components/SafeDepositRental/YandexMap.d.ts +0 -5
  651. package/lib/components/SafeDepositRental/YandexMap.js +0 -29
  652. package/lib/components/SafeDepositRental/YandexMap.js.map +0 -1
  653. package/lib/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  654. package/lib/components/SafeDepositRental/useYandexMaps.js +0 -9
  655. package/lib/components/SafeDepositRental/useYandexMaps.js.map +0 -1
  656. package/lib/utils/changeHashOnObserve.d.ts +0 -9
  657. package/lib/utils/changeHashOnObserve.js +0 -18
  658. package/lib/utils/changeHashOnObserve.js.map +0 -1
  659. package/mobile/bundle/components/SafeDepositRental/YandexMap.d.ts +0 -5
  660. package/mobile/bundle/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  661. package/mobile/bundle/utils/changeHashOnObserve.d.ts +0 -9
  662. package/mobile/dist/components/SafeDepositRental/YandexMap.d.ts +0 -5
  663. package/mobile/dist/components/SafeDepositRental/YandexMap.js +0 -31
  664. package/mobile/dist/components/SafeDepositRental/YandexMap.js.map +0 -1
  665. package/mobile/dist/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  666. package/mobile/dist/components/SafeDepositRental/useYandexMaps.js +0 -12
  667. package/mobile/dist/components/SafeDepositRental/useYandexMaps.js.map +0 -1
  668. package/mobile/dist/utils/changeHashOnObserve.d.ts +0 -9
  669. package/mobile/dist/utils/changeHashOnObserve.js +0 -21
  670. package/mobile/dist/utils/changeHashOnObserve.js.map +0 -1
  671. package/mobile/lib/components/SafeDepositRental/YandexMap.d.ts +0 -5
  672. package/mobile/lib/components/SafeDepositRental/YandexMap.js +0 -29
  673. package/mobile/lib/components/SafeDepositRental/YandexMap.js.map +0 -1
  674. package/mobile/lib/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  675. package/mobile/lib/components/SafeDepositRental/useYandexMaps.js +0 -9
  676. package/mobile/lib/components/SafeDepositRental/useYandexMaps.js.map +0 -1
  677. package/mobile/lib/utils/changeHashOnObserve.d.ts +0 -9
  678. package/mobile/lib/utils/changeHashOnObserve.js +0 -18
  679. package/mobile/lib/utils/changeHashOnObserve.js.map +0 -1
  680. package/mobile/src/components/SafeDepositRental/YandexMap.tsx +0 -43
  681. package/mobile/src/components/SafeDepositRental/useYandexMaps.ts +0 -13
  682. package/mobile/src/utils/changeHashOnObserve.ts +0 -30
  683. package/src/components/SafeDepositRental/YandexMap.tsx +0 -43
  684. package/src/components/SafeDepositRental/useYandexMaps.ts +0 -13
  685. package/src/utils/changeHashOnObserve.ts +0 -30
@@ -85,6 +85,9 @@
85
85
  get CDN() {
86
86
  return this._.CDN;
87
87
  }
88
+ get BASE_PATH() {
89
+ return this._.BASE_PATH;
90
+ }
88
91
  get YANDEX_MAP_API_KEY() {
89
92
  return this._.YANDEX_MAP_API_KEY;
90
93
  }
@@ -289,8 +292,7 @@
289
292
  subscribers = {};
290
293
  subjectsStateMap = {};
291
294
  subscribe(type, listener) {
292
- this.subscribers[type] ||= [];
293
- this.subscribers[type]?.push(listener);
295
+ this.subscribers[type] = (this.subscribers[type] || []).concat(listener);
294
296
  const latestEvent = this.subjectsStateMap[type];
295
297
  if (latestEvent) {
296
298
  listener(latestEvent);
@@ -303,7 +305,10 @@
303
305
  this.subscribers[type] = this.subscribers[type]?.filter((s) => s !== listener);
304
306
  }
305
307
  fire(type, event) {
306
- this.subjectsStateMap[type] = event;
308
+ const isSubjectDeclared = type in this.subjectsStateMap;
309
+ if (isSubjectDeclared) {
310
+ this.subjectsStateMap[type] = event;
311
+ }
307
312
  this.subscribers[type]?.forEach((s) => s(event));
308
313
  }
309
314
  subject(type, event) {
@@ -335,51 +340,71 @@
335
340
  .concat(1);
336
341
  }
337
342
 
338
- const changeHashOnObserve = ({ anchor, anchorClickRef }) => (entries) => {
339
- if (!entries?.length) {
340
- return;
343
+ const normalizeAnchor = (rawAnchor) => rawAnchor?.replace('#', '');
344
+ class BlockRouter {
345
+ static inst = new BlockRouter();
346
+ eventBus = new EventBus();
347
+ constructor() {
348
+ const anchor = normalizeAnchor(globalThis.location?.hash);
349
+ if (anchor) {
350
+ this.eventBus.subject('goto', { anchor });
351
+ }
341
352
  }
342
- const [entry] = entries;
343
- if (!entry.isIntersecting || entry.boundingClientRect.top > 150) {
344
- return;
353
+ goto(rawAnchor) {
354
+ const anchor = normalizeAnchor(rawAnchor);
355
+ if (anchor) {
356
+ this.push(anchor);
357
+ this.eventBus.fire('goto', { anchor });
358
+ }
345
359
  }
346
- if (anchorClickRef?.current?.isScrolling && anchorClickRef.current.label === `#${anchor}`) {
347
- EventBus.inst.fire('anchorClick', { isScrolling: false, label: undefined });
348
- EventBus.inst.fire('tab', { type: 'link', label: anchor });
360
+ push(rawAnchor) {
361
+ globalThis.history?.pushState(null, '', `#${normalizeAnchor(rawAnchor)}`);
349
362
  }
350
- else if (!anchorClickRef?.current?.isScrolling) {
351
- EventBus.inst.fire('tab', { type: 'link', label: anchor });
363
+ replace(rawAnchor) {
364
+ globalThis.history?.replaceState(null, '', `#${normalizeAnchor(rawAnchor)}`);
352
365
  }
353
- };
366
+ reset() {
367
+ globalThis.history?.replaceState(null, '', '#');
368
+ }
369
+ }
370
+
371
+ function useBlockIntersectionObserver(block, router = BlockRouter.inst) {
372
+ const observerCallback = useCallback((entries) => {
373
+ if (!block || !entries?.length) {
374
+ return;
375
+ }
376
+ const intersection = entries[entries.length - 1];
377
+ router.eventBus.fire('intersection', { block, intersection });
378
+ }, [block, router]);
379
+ const ref = useIntersectionObserver(observerCallback, { sensitivity: 1 });
380
+ useEffect(() => {
381
+ if (!ref.current) {
382
+ return undefined;
383
+ }
384
+ return router.eventBus.subscribe('goto', ({ anchor }) => {
385
+ if (ref.current && block?.anchor === anchor) {
386
+ ref.current.scrollIntoView({ behavior: 'smooth', block: 'start' });
387
+ }
388
+ });
389
+ }, [block, router]);
390
+ return ref;
391
+ }
354
392
 
355
393
  const BlockWrapper = JSX(({ className, block, tag = 'section', role, children }) => {
356
394
  const Tag = tag;
357
- const { anchor, labels } = block || {};
395
+ const ref = useBlockIntersectionObserver(block);
358
396
  const [isVisible, setVisible] = useState(true);
359
- const anchorClickRef = useRef({});
360
- const observerCallback = useMemo(() => changeHashOnObserve({ anchor, anchorClickRef }), [anchor]);
361
- const ref = useIntersectionObserver(observerCallback, { sensitivity: 1 });
362
- useEffect(() => EventBus.inst.subscribe('anchorClick', (e) => {
363
- setVisible(true);
364
- anchorClickRef.current = e;
365
- }), []);
366
397
  useEffect(() => EventBus.inst.subscribe('tab', (event) => {
367
398
  if (event.type === 'group') {
368
- const hasSettings = labels?.length || block?.anchor;
369
- setVisible(event.label ? !hasSettings || Boolean(labels?.includes(event.label)) : true);
399
+ const hasSettings = block?.labels?.length || block?.anchor;
400
+ setVisible(event.label ? !hasSettings || Boolean(block?.labels?.includes(event.label)) : true);
370
401
  }
371
402
  else {
372
- changeHash(event.label);
373
403
  setVisible(true);
374
404
  }
375
- }), []);
376
- return isVisible ? (jsx(Tag, { className: className, role: role, ...(anchor ? { id: anchor, ref } : {}), children: children })) : null;
405
+ }), [block]);
406
+ return isVisible ? (jsx(Tag, { className: className, role: role, ...(block?.anchor ? { id: block.anchor, ref } : {}), children: children })) : null;
377
407
  });
378
- function changeHash(label) {
379
- if (label) {
380
- globalThis.document.location.hash = label;
381
- }
382
- }
383
408
 
384
409
  const HEADING_STYLE_MAP = {
385
410
  h0: 'text-h0',
@@ -403,7 +428,7 @@
403
428
 
404
429
  const AccordionItemsList = JSX(({ children }) => (jsx("ul", { className: "list-none m-0 p-0", children: children })));
405
430
 
406
- const Accordion = JSX(({ className = '', title, accordionAlignTitle = 'center', description, ...rest }) => (jsxs(BlockWrapper, { className: `p-[50px] mb-1 last:mb-0 bg-white text-primary-text ${className}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: `mb-2.5 ${AlignText[accordionAlignTitle]}`, title: title })) : null, description ? (jsx("div", { className: "mb-2.5", children: jsx(Paragraph, { size: "text-l", children: description }) })) : null, jsx(AccordionItemsList, { children: renderChildren(rest) })] })));
431
+ const Accordion = JSX(({ className = '', title, accordionAlignTitle = 'center', description, ...rest }) => (jsxs(BlockWrapper, { className: `p-12 mb-1 last:mb-0 bg-white text-primary-text ${className}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: `mb-2.5 ${AlignText[accordionAlignTitle]}`, title: title })) : null, description ? (jsx("div", { className: "mb-2.5", children: jsx(Paragraph, { size: "text-l", children: description }) })) : null, jsx(AccordionItemsList, { children: renderChildren(rest) })] })));
407
432
  Accordion.childrenTypes = ['AccordionItem'];
408
433
 
409
434
  const Foldable = JSX(({ isFoldButtonOnTop = false, unfoldedByDefault = false, renderFoldableSection, renderFoldButton, }) => {
@@ -533,7 +558,7 @@
533
558
  const BenefitsBlock = JSX(({ className = '', title, benefitList, version = 'primary', ...rest }) => (jsxs(BlockWrapper, { className: `font-sans text-primary-text p-12 flex flex-col items-center ${className} ${VersionStyleMap[version]}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: `max-w-[47rem] text-center ${benefitsTextStyleMap[version]}`, title: title })) : null, benefitList?.length ? (jsx("div", { className: "flex flex-wrap w-full justify-center gap-x-20 mt-8", children: benefitList.map(renderStep(version)) })) : null] })));
534
559
  const renderStep = (version) => (benefit, i) => {
535
560
  const description = benefit.description;
536
- return (jsxs("div", { className: "flex items-center basis-1/2 max-w-[500px] mb-14", children: [benefit?.icon?.icon ? (jsx(ImgInner, { className: `w-[50px] h-[50px] min-w-[50px] p-3 rounded-full ${benefitsIconStyleMap[version]}`, image: getIconWithVersion(benefit.icon, version), asSVG: true })) : null, benefit?.icon?.src ? jsx(ImgInner, { image: benefit.icon }) : null, jsxs("div", { className: "ml-5", children: [benefit?.label ? (jsx("h3", { className: `text-h6 m-0 ${benefitsTextStyleMap[version]}`, children: benefit.label })) : null, renderDescription$3(description, version)] })] }, String(i)));
561
+ return (jsxs("div", { className: "flex items-center basis-1/2 max-w-[500px] mb-14", children: [benefit?.icon?.icon ? (jsx(ImgInner, { className: `w-12 h-12 min-w-12 p-3 rounded-full ${benefitsIconStyleMap[version]}`, image: getIconWithVersion(benefit.icon, version), asSVG: true })) : null, benefit?.icon?.src ? jsx(ImgInner, { image: benefit.icon }) : null, jsxs("div", { className: "ml-5", children: [benefit?.label ? (jsx("h3", { className: `text-h6 m-0 ${benefitsTextStyleMap[version]}`, children: benefit.label })) : null, renderDescription$3(description, version)] })] }, String(i)));
537
562
  };
538
563
  const renderDescription$3 = (description, version) => {
539
564
  const benefitType = description?.benefitType || null;
@@ -547,6 +572,10 @@
547
572
  return description?.items && description.items.length > 0 ? (jsx("ul", { className: listStyleType, children: description.items.map((_, i) => (jsx("li", { children: _ }, `benefitListItem-${i}`))) })) : null;
548
573
  };
549
574
 
575
+ function useBlockRouter() {
576
+ return BlockRouter.inst;
577
+ }
578
+
550
579
  const isURL = (href) => href?.includes('//');
551
580
  const withoutQuery = (href) => (href || '').replace(/\/?\?.*/, '');
552
581
  const getOrigin = (href) => {
@@ -581,9 +610,10 @@
581
610
  if (!href) {
582
611
  return href;
583
612
  }
613
+ const hrefWithBasePath = `${projectSettings.BASE_PATH || ''}${href}`;
584
614
  const origin = getOrigin(router?.href);
585
615
  // Relative URL
586
- return origin ? href.replace(origin, '') || '/' : href;
616
+ return origin ? hrefWithBasePath.replace(origin, '') || '/' : hrefWithBasePath;
587
617
  };
588
618
 
589
619
  /* eslint-disable @typescript-eslint/ban-types */
@@ -615,6 +645,7 @@
615
645
 
616
646
  function useLink() {
617
647
  const router = useRouter();
648
+ const blockRouter = useBlockRouter();
618
649
  return (props) => {
619
650
  const href = adjustHref(props.href, router);
620
651
  return {
@@ -625,8 +656,15 @@
625
656
  props.onClick && props.onClick(ev);
626
657
  const isLocalHref = href && !isURL(href);
627
658
  const isLocalTarget = !props.target || props.target === '_self';
628
- if (isLocalHref && isLocalTarget && !isHash(href)) {
629
- ev?.preventDefault();
659
+ if (!isLocalHref || !isLocalTarget) {
660
+ // Default handle
661
+ return;
662
+ }
663
+ ev?.preventDefault();
664
+ if (isHash(href)) {
665
+ blockRouter.goto(href);
666
+ }
667
+ else {
630
668
  router.push(href);
631
669
  }
632
670
  }, props),
@@ -783,12 +821,12 @@
783
821
  const Headline = JSX(({ className = '', bgColorHeadline = 'transparent', align = 'center', title, description, headlineVersion = 'XL', as, ...rest }) => {
784
822
  const STYLE_MAPS = HEADLINE_BLOCK_STYLE_MAPS[bgColorHeadline];
785
823
  const SIZE_MAPS = HEADLINE_VERSION[headlineVersion];
786
- return (jsxs(BlockWrapper, { className: `font-sans flex flex-col p-[50px] ${SIZE_MAPS.gap} ${STYLE_MAPS.background} ${className}`, ...rest, children: [title ? (jsx(Heading, { headingType: SIZE_MAPS?.headingType, as: as || SIZE_MAPS?.as, className: `whitespace-pre-wrap ${STYLE_MAPS.text} ${AlignText[align]}`, title: title })) : null, description ? (jsx("p", { className: `${SIZE_MAPS.descriptionFont} ${STYLE_MAPS.text} ${AlignText[align]}`, children: description })) : null] }));
824
+ return (jsxs(BlockWrapper, { className: `font-sans flex flex-col p-12 ${SIZE_MAPS.gap} ${STYLE_MAPS.background} ${className}`, ...rest, children: [title ? (jsx(Heading, { headingType: SIZE_MAPS?.headingType, as: as || SIZE_MAPS?.as, className: `whitespace-pre-wrap ${STYLE_MAPS.text} ${AlignText[align]}`, title: title })) : null, description ? (jsx("p", { className: `${SIZE_MAPS.descriptionFont} ${STYLE_MAPS.text} ${AlignText[align]}`, children: description })) : null] }));
787
825
  });
788
826
 
789
827
  const Bonus = JSX((props) => {
790
828
  const { className = '', title, description, bonusItems, ...rest } = props;
791
- return (jsx(BlockWrapper, { className: `font-sans bg-white p-[50px] pb-9 ${className}`, ...rest, children: jsxs("div", { className: "container", children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "M", align: "center", ...rest }), jsx("div", { className: "flex flex-wrap w-full mt-9", children: bonusItems?.length
829
+ return (jsx(BlockWrapper, { className: `font-sans bg-white p-12 pb-9 ${className}`, ...rest, children: jsxs("div", { className: "container", children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "M", align: "center", ...rest }), jsx("div", { className: "flex flex-wrap w-full mt-9", children: bonusItems?.length
792
830
  ? bonusItems.map((_, i) => {
793
831
  return (jsx("div", { className: "flex-grow w-[49%] border border-gray p-9 mb-3 mx-2 even:mr-0 odd:ml-0 last:odd:mx-0", children: jsxs("div", { className: "flex justify-between w-full", children: [jsxs("div", { className: "flex flex-col justify-between mr-4", children: [jsxs("div", { children: [jsx("div", { className: "text-h4", children: _.title }), jsx("div", { className: "text-xl-light mt-2 max-w-[488px]", children: _.description })] }), _?.buttons?.length ? jsx(ButtonSection, { buttons: _?.buttons }) : null] }), _.bonusItemContent?.bonusType
794
832
  ? renderBonusItemContent(_.bonusItemContent)
@@ -800,9 +838,9 @@
800
838
  ? renderBonusCount(bonusItemContent)
801
839
  : renderBonusImage(bonusItemContent) }));
802
840
  const renderBonusCount = (_) => (jsxs("div", { className: "relative -bottom-3 h-auto flex items-end mt-14 shrink-0", children: [_.bonusCount ? (jsx("span", { className: "font-mohave -tracking-[5px] text-title-extra bg-clip-text text-transparent bg-green-to-yellow -mb-7", children: _.bonusCount })) : null, _.bonusName ? (jsx("span", { className: "text-h2 bg-clip-text text-transparent bg-green-to-yellow", children: _.bonusName })) : null] }));
803
- const renderBonusImage = (_) => _.image ? (jsx(ImgInner, { className: `w-[50px] h-[50px] min-w-[50px] p-3 rounded-full`, image: _.image })) : null;
841
+ const renderBonusImage = (_) => _.image ? jsx(ImgInner, { className: `w-12 h-12 min-w-12 p-3 rounded-full`, image: _.image }) : null;
804
842
 
805
- const BonusBenefitsBlock = JSX(({ bonusBenefits, cardTextAlign = 'center', className = '', columnsCount = '4', subtitle, title, ...rest }) => (jsxs(BlockWrapper, { className: `font-sans text-primary-text bg-white p-[50px] flex flex-col text-center ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0 mb-8", title: title, description: subtitle, headlineVersion: "M", align: "center", ...rest }), bonusBenefits?.length ? (jsx("div", { className: `grid gap-1 ${AlignText[cardTextAlign]} ${getElementsColsValue(columnsCount)}`, children: bonusBenefits.map(renderBonusBenefit) })) : null] })));
843
+ const BonusBenefitsBlock = JSX(({ bonusBenefits, cardTextAlign = 'center', className = '', columnsCount = '4', subtitle, title, ...rest }) => (jsxs(BlockWrapper, { className: `font-sans text-primary-text bg-white p-12 flex flex-col text-center ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0 mb-8", title: title, description: subtitle, headlineVersion: "M", align: "center", ...rest }), bonusBenefits?.length ? (jsx("div", { className: `grid gap-1 ${AlignText[cardTextAlign]} ${getElementsColsValue(columnsCount)}`, children: bonusBenefits.map(renderBonusBenefit) })) : null] })));
806
844
  const renderBonusBenefit = ({ icon, label, description }, i) => {
807
845
  return (jsxs("div", { className: "flex flex-col items-center text-h6", children: [description ? jsx("span", { children: description }) : null, icon ? jsx(ImgInner, { image: icon, height: "180", width: "auto", className: "h-[180px] w-auto" }) : null, jsx("div", { children: label ? jsx("span", { children: label }) : null })] }, String(i)));
808
846
  };
@@ -828,7 +866,7 @@
828
866
  return (jsxs("li", { className: "flex items-center gap-3.5 mb-3 last:mb-0", children: [icon?.icon ? (jsx(ImgInner, { className: `w-12 h-12 min-w-12 p-3 rounded-full bg-main-divider`, image: icon.icon, asSVG: true })) : null, icon?.src ? jsx(ImgInner, { image: icon.icon }) : null, jsx("span", { className: "text-xl-light", children: text })] }, key));
829
867
  };
830
868
 
831
- const BusinessBlock = JSX(({ className = '', title, cards, ...rest }) => (jsxs(BlockWrapper, { className: `font-sans bg-white p-[50px] pb-9 ${className}`, ...rest, children: [jsx(Heading, { headingType: "h3", title: title, className: "text-center mb-8" }), jsx("div", { className: "flex gap-5", children: cards?.length ? cards.map((_, i) => jsx(BusinessCard, { ..._ }, String(i))) : null })] })));
869
+ const BusinessBlock = JSX(({ className = '', title, cards, ...rest }) => (jsxs(BlockWrapper, { className: `font-sans bg-white p-12 pb-9 ${className}`, ...rest, children: [jsx(Heading, { headingType: "h3", title: title, className: "text-center mb-8" }), jsx("div", { className: "flex gap-5", children: cards?.length ? cards.map((_, i) => jsx(BusinessCard, { ..._ }, String(i))) : null })] })));
832
870
 
833
871
  const useCarouselControls = (props) => {
834
872
  const { itemCount, visibleItemCount, isCyclic } = props;
@@ -1242,7 +1280,6 @@
1242
1280
  isMonthlyInterestPayment,
1243
1281
  };
1244
1282
  const handleMonthsValue = useCallback((_) => setMonthsValue(_), []);
1245
- useState(false);
1246
1283
  const calculatorParams = useDepositCalculatorParams(userInputParams, sourceBookDir);
1247
1284
  const { income, finalSum, rate } = calculatorParams;
1248
1285
  return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput('Сумма вклада, ₽', {
@@ -1381,7 +1418,7 @@
1381
1418
  ? getDisabledButtonClasses({ version: button?.version })
1382
1419
  : getRegularButtonClasses({ className: 'text-white', version: button?.version });
1383
1420
  const link = useLink();
1384
- return (jsxs(BlockWrapper, { className: `p-[50px] flex flex-col items-center font-sans bg-white ${className}`, ...rest, children: [title ? jsx(Heading, { className: "max-w-[684px] pb-9", headingType: "h2", title: title }) : null, jsxs("form", { className: "w-[468px]", method: "POST", action: FORM_URL, children: [jsx(CurrencyInput, { name: AMOUNT_KEY, value: value, onChange: handleChange, valid: value === '' || !isDisabled, placeholder: placeholder, label: label }), button?.text ? (jsx("button", { type: "submit", className: `w-full p-4 mt-6 ${buttonStyle} `, disabled: isDisabled, ...link(button), children: button.text })) : null] })] }));
1421
+ return (jsxs(BlockWrapper, { className: `p-12 flex flex-col items-center font-sans bg-white ${className}`, ...rest, children: [title ? jsx(Heading, { className: "max-w-[684px] pb-9", headingType: "h2", title: title }) : null, jsxs("form", { className: "w-[468px]", method: "POST", action: FORM_URL, children: [jsx(CurrencyInput, { name: AMOUNT_KEY, value: value, onChange: handleChange, valid: value === '' || !isDisabled, placeholder: placeholder, label: label }), button?.text ? (jsx("button", { type: "submit", className: `w-full p-4 mt-6 ${buttonStyle} `, disabled: isDisabled, ...link(button), children: button.text })) : null] })] }));
1385
1422
  });
1386
1423
 
1387
1424
  const mapChildren = (mapper) => (children) => {
@@ -1578,7 +1615,7 @@
1578
1615
  itemCount: cards?.length,
1579
1616
  visibleItemCount: CARD_VIEW_COUNT$1,
1580
1617
  });
1581
- return (jsxs(BlockWrapper, { className: `bg-white relative font-sans p-[50px] overflow-hidden text-center ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "M", align: "center", ...rest }), jsx("div", { className: "flex duration-1000 gap-3.5 mt-8", style: { transform: `translateX(-${activeIndex * CARD_SHIFT$1}px)` }, role: "list", children: cards?.length ? cards.map((card, i) => jsx(CatalogCard, { ...card }, String(i))) : null }), renderArrows({
1618
+ return (jsxs(BlockWrapper, { className: `bg-white relative font-sans p-12 overflow-hidden text-center ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "M", align: "center", ...rest }), jsx("div", { className: "flex duration-1000 gap-3.5 mt-8", style: { transform: `translateX(-${activeIndex * CARD_SHIFT$1}px)` }, role: "list", children: cards?.length ? cards.map((card, i) => jsx(CatalogCard, { ...card }, String(i))) : null }), renderArrows({
1582
1619
  ...controls,
1583
1620
  btnClass: ['left-8', 'right-8'],
1584
1621
  className: 'top-1/2 z-10 mt-6',
@@ -1648,13 +1685,13 @@
1648
1685
  const ComparisonTable = JSX(({ className = '', title, rowHeaders, columns, visibleRowLength = 0, isColoredFirstColumn = false, ...rest }) => {
1649
1686
  const [isShowAllRow, setIsShowAllRow] = useState(!visibleRowLength);
1650
1687
  const handleToggle = useCallback(() => setIsShowAllRow((_) => !_), []);
1651
- return (jsxs(BlockWrapper, { className: `bg-white font-sans py-[50px] pl-[50px] overflow-hidden text-primary-text relative ${className}`, ...rest, children: [jsx(Heading, { headingType: "h2", className: "max-w-[47rem] text-center mb-9 mx-auto", title: title }), jsx(ComparisonTableBody, { columns: columns, rowHeaders: rowHeaders, isShowAllRow: isShowAllRow, isColoredFirstColumn: isColoredFirstColumn, visibleRowLength: visibleRowLength }), visibleRowLength
1688
+ return (jsxs(BlockWrapper, { className: `bg-white font-sans py-12 pl-12 overflow-hidden text-primary-text relative ${className}`, ...rest, children: [jsx(Heading, { headingType: "h2", className: "max-w-[47rem] text-center mb-9 mx-auto", title: title }), jsx(ComparisonTableBody, { columns: columns, rowHeaders: rowHeaders, isShowAllRow: isShowAllRow, isColoredFirstColumn: isColoredFirstColumn, visibleRowLength: visibleRowLength }), visibleRowLength
1652
1689
  ? renderShowMoreToggleButton({ isShowAllRow, onClick: handleToggle })
1653
1690
  : null] }));
1654
1691
  });
1655
- const renderShowMoreToggleButton = ({ isShowAllRow, onClick, }) => (jsx("div", { className: "pr-[50px]", children: jsxs("div", { className: "flex w-full", children: [jsx("div", { className: FIRST_CELL_CLASSES$1 }), jsx("button", { onClick: onClick, className: "mt-5 flex-1 border-main-stroke border-solid border text-primary-text bg-white hover:border-primary-main hover:text-primary-main", children: jsx("div", { className: "font-sans text-xs-light font-medium py-3", children: !isShowAllRow ? 'Показать все параметры' : 'Скрыть' }) })] }) }));
1692
+ const renderShowMoreToggleButton = ({ isShowAllRow, onClick, }) => (jsx("div", { className: "pr-12", children: jsxs("div", { className: "flex w-full", children: [jsx("div", { className: FIRST_CELL_CLASSES$1 }), jsx("button", { onClick: onClick, className: "mt-5 flex-1 border-main-stroke border-solid border text-primary-text bg-white hover:border-primary-main hover:text-primary-main", children: jsx("div", { className: "font-sans text-xs-light font-medium py-3", children: !isShowAllRow ? 'Показать все параметры' : 'Скрыть' }) })] }) }));
1656
1693
 
1657
- const ContactsBlock = JSX(({ className = '', contacts, info, version = 'secondary', ...rest }) => (jsxs(BlockWrapper, { className: `${VersionStyleMap[version]} flex p-[50px] ${className}`, ...rest, children: [info?.length ? renderBlocks(info, version) : null, contacts?.length ? renderBlocks(contacts, version) : null] })));
1694
+ const ContactsBlock = JSX(({ className = '', contacts, info, version = 'secondary', ...rest }) => (jsxs(BlockWrapper, { className: `${VersionStyleMap[version]} flex p-12 ${className}`, ...rest, children: [info?.length ? renderBlocks(info, version) : null, contacts?.length ? renderBlocks(contacts, version) : null] })));
1658
1695
  const renderBlocks = (info, version) => (jsx("div", { className: "flex grow basis-0", children: info.map((column, index) => renderBlocksColumn({ column, index, version })) }));
1659
1696
  const renderBlocksColumn = ({ column, index, version }) => column ? (jsx("div", { className: "flex flex-col grow basis-0 pr-11 last:pr-0", children: column.map(({ title = '', description, additionalDescription, button }, key) => (jsxs("div", { className: "mt-6 first:mt-0", children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "XS", align: "left", bgColorHeadline: version }), additionalDescription ? (jsx("div", { className: "mt-1.5 opacity-80", children: jsx(Paragraph, { size: "text-m-light", children: additionalDescription }) })) : null, button ? jsx(Button, { className: "mt-6", ...button }) : null] }, String(key)))) }, `col-${String(index)}`)) : null;
1660
1697
 
@@ -1759,7 +1796,7 @@
1759
1796
  setSelectedItem(value || { key: '', text: '' });
1760
1797
  }, [value]);
1761
1798
  return (jsxs("div", { className: `${className}`, ref: wrapperRef, children: [label ? jsx("span", { className: "mb-2 flex text-primary-text", children: label }) : null, jsxs("div", { className: `relative ${isOpen ? 'z-20' : 'z-10'}`, children: [jsxs("div", { className: `text-l flex justify-between items-center mb-0.5 text-primary-text cursor-pointer
1762
- ${getBorderStyle(isBorder)}`, onClick: () => setIsOpen(!isOpen), children: [jsx("p", { className: "p-4 pr-8 h-[56px] overflow-hidden text-ellipsis whitespace-nowrap", children: selectedItem?.text || placeholder }), jsx(Icon, { name: "ArrowUpIcon", width: "16", height: "16", className: `absolute right-3 ${isOpen ? '' : 'rotate-180'}` })] }), options?.length ? (jsx("div", { className: `h-0 ${renderOptionsStyle(isOpen)}`, children: jsx("div", { className: `bg-white text-l max-h-[256px] overflow-y-auto overflow-x-hidden rounded-md shadow-[0_4px_25px_rgba(0,0,0,0.07)]`, children: options.map(renderOption(choiceOption, isOpen, isSelected)) }) })) : null] })] }));
1799
+ ${getBorderStyle(isBorder)}`, onClick: () => setIsOpen(!isOpen), children: [jsx("p", { className: "p-4 pr-8 h-14 overflow-hidden text-ellipsis whitespace-nowrap", children: selectedItem?.text || placeholder }), jsx(Icon, { name: "ArrowUpIcon", width: "16", height: "16", className: `absolute right-3 ${isOpen ? '' : 'rotate-180'}` })] }), options?.length ? (jsx("div", { className: `h-0 ${renderOptionsStyle(isOpen)}`, children: jsx("div", { className: `bg-white text-l max-h-64 overflow-y-auto overflow-x-hidden rounded-md shadow-[0_4px_25px_rgba(0,0,0,0.07)]`, children: options.map(renderOption(choiceOption, isOpen, isSelected)) }) })) : null] })] }));
1763
1800
  });
1764
1801
  const renderOptionsStyle = (isOpen) => (isOpen ? '' : 'overflow-hidden');
1765
1802
  const renderOption = (choiceOption, isOpen, isSelected) => (option, i) => {
@@ -1882,7 +1919,7 @@
1882
1919
  currencyRatesBuy.unshift({ currency: { currency: Currency.RUB } });
1883
1920
  const currencyRatesSell = currencyRates.filter((_) => _.saleExchangeRate);
1884
1921
  currencyRatesSell.push({ currency: { currency: Currency.RUB } });
1885
- return (jsx(BlockWrapper, { className: `bg-white text-primary-text font-sans p-9 box-border min-h-[320px] ${className}`, ...rest, children: jsx(BaseTile, { title: jsx(Heading, { headingType: "h4", title: title, className: "whitespace-pre-wrap text-h4 mb-5" }), children: jsxs("div", { className: "flex", children: [jsxs("div", { className: "mr-14 pt-4", children: [currencyRates ? (jsx(CurrencyTable, { className: "mb-[30px]", 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] }) }) }));
1922
+ return (jsx(BlockWrapper, { className: `bg-white text-primary-text font-sans p-9 box-border min-h-80 ${className}`, ...rest, children: jsx(BaseTile, { title: jsx(Heading, { headingType: "h4", title: title, className: "whitespace-pre-wrap text-h4 mb-5" }), children: jsxs("div", { className: "flex", children: [jsxs("div", { className: "mr-14 pt-4", children: [currencyRates ? (jsx(CurrencyTable, { className: "mb-[30px]", 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] }) }) }));
1886
1923
  });
1887
1924
  const getCurrencyRates = (currencies) => {
1888
1925
  return currencies?.filter((_) => _?.currency?.id === 1 || _?.currency?.id === 2) || [];
@@ -2028,7 +2065,7 @@
2028
2065
  }
2029
2066
  const classes = version === 'secondary'
2030
2067
  ? 'bg-white hover:bg-secondary-hover'
2031
- : 'border-solid border-[1px] border-main-divider hover:border-transparent hover:bg-primary-main';
2068
+ : 'border-solid border border-main-divider hover:border-transparent hover:bg-primary-main';
2032
2069
  const isPrimary = version === 'primary';
2033
2070
  return (jsx("a", { className: `flex items-center justify-center rounded-md w-14 h-14 group box-border ${classes} ${isPrimary ? 'hover:text-black' : ''}`, href: href, "aria-label": label, target: "_blank", rel: "noopener noreferrer", onClick: onClick, children: icon ? (jsx(ImgInner, { image: getIconWithVersion(icon), imageClassName: "group-hover:text-white", width: "24", height: "24", asSVG: true })) : null }));
2034
2071
  });
@@ -2046,8 +2083,8 @@
2046
2083
  const LEFT_COL_WIDTH_FULL_HD = 'w-[204px]';
2047
2084
  const Footer = JSX(({ className, ...rest }) => {
2048
2085
  const fallback = rest.options?.page?.fallback;
2049
- const { documents, relatedEnterprises, contacts, socialMedia, mobileApps, topItems } = useSWRResource(projectSettings.FOOTER || 'footer', fallback);
2050
- return (jsxs(BlockWrapper, { tag: "footer", className: `p-9 bg-white font-sans ${className || ''}`, ...rest, children: [jsxs("div", { className: "flex items-stretch gap-[54px] pb-[30px] xl:gap-8", children: [jsx(Logo, { className: LEFT_COL_WIDTH_FULL_HD }), jsx(SearchBar, { className: "grow" })] }), jsxs("div", { className: "flex items-stretch gap-[54px] xl:gap-8", children: [jsxs("div", { className: `${LEFT_COL_WIDTH_FULL_HD} flex flex-col shrink-0 overflow-hidden`, children: [jsx(Contacts, { items: contacts, hasButton: true }), jsx(SocialMedia, { media: socialMedia, children: "\u0421\u043E\u0446\u0441\u0435\u0442\u0438" }), jsx(SocialMedia, { className: "mt-6", 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: "pt-[3px]", items: topItems, fallback: fallback })] }), jsx(HorizontalNavigation, { className: "mt-[98px]", links: relatedEnterprises }), jsx(TextInformation, { links: documents })] }));
2086
+ const { documents, relatedEnterprises, contacts, socialMedia, mobileApps, topItems, logo } = useSWRResource(projectSettings.FOOTER || 'footer', fallback);
2087
+ return (jsxs(BlockWrapper, { tag: "footer", className: `p-9 bg-white font-sans ${className || ''}`, ...rest, children: [jsxs("div", { className: "flex items-stretch gap-[54px] pb-[30px] xl:gap-8", children: [jsx(Logo, { className: LEFT_COL_WIDTH_FULL_HD, logo: logo }), jsx(SearchBar, { className: "grow" })] }), jsxs("div", { className: "flex items-stretch gap-[54px] xl:gap-8", children: [jsxs("div", { className: `${LEFT_COL_WIDTH_FULL_HD} flex flex-col shrink-0 overflow-hidden`, children: [jsx(Contacts, { items: contacts, hasButton: true }), jsx(SocialMedia, { media: socialMedia, children: "\u0421\u043E\u0446\u0441\u0435\u0442\u0438" }), jsx(SocialMedia, { className: "mt-6", 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: "pt-[3px]", items: topItems, fallback: fallback })] }), jsx(HorizontalNavigation, { className: "mt-[98px]", links: relatedEnterprises }), jsx(TextInformation, { links: documents })] }));
2051
2088
  });
2052
2089
 
2053
2090
  const galleryLengthForScrollMap = {
@@ -2106,7 +2143,7 @@
2106
2143
  buttonClassName: `mt-6 ${isFullWidth ? '' : 'self-center'}`,
2107
2144
  })
2108
2145
  : null] })));
2109
- const renderImage$1 = (image, version) => (jsxs("div", { className: "flex justify-center", children: [image?.src ? jsx(ImgInner, { className: "mb-5", image: image }) : null, image?.icon ? (jsx(ImgInner, { className: `w-[32px] h-[32px] min-w-[32px] mb-5 rounded-full`, image: getIconWithVersion(image, version), asSVG: true })) : null] }));
2146
+ const renderImage$1 = (image, version) => (jsxs("div", { className: "flex justify-center", children: [image?.src ? jsx(ImgInner, { className: "mb-5", image: image }) : null, image?.icon ? (jsx(ImgInner, { className: `w-8 h-8 min-w-8 mb-5 rounded-full`, image: getIconWithVersion(image, version), asSVG: true })) : null] }));
2110
2147
  const renderCardTitle = (headlineSmallVersion, title) => title ? jsx("div", { className: HEADLINE_SMALL_VERSION[headlineSmallVersion], children: title }) : null;
2111
2148
  const renderDescription$2 = (description, title) => description ? jsx("div", { className: `text-l ${title ? 'mt-2' : ''}`, children: description }) : null;
2112
2149
  const renderAdditionalDescription$1 = (additionalDescription) => additionalDescription ? (jsx("div", { className: "text-m-light text-secondary-text mt-auto", children: additionalDescription })) : null;
@@ -2133,7 +2170,7 @@
2133
2170
 
2134
2171
  const Gallery = JSX((props) => jsx(GalleryInner, { ...props, version: "normal" }));
2135
2172
 
2136
- const GracePeriod = JSX(({ className = '', title, description, calendar, ...rest }) => (jsxs(BlockWrapper, { className: `font-sans bg-white p-[50px] ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0 mb-4", title: title, description: description, headlineVersion: "M", align: "center", ...rest }), calendar ? renderCalendar(calendar) : null] })));
2173
+ const GracePeriod = JSX(({ className = '', title, description, calendar, ...rest }) => (jsxs(BlockWrapper, { className: `font-sans bg-white p-12 ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0 mb-4", title: title, description: description, headlineVersion: "M", align: "center", ...rest }), calendar ? renderCalendar(calendar) : null] })));
2137
2174
  const renderCalendar = (calendar) => {
2138
2175
  const colCount = calendar.reduce((accumulator, currentValue) => currentValue?.month?.length ? accumulator + currentValue.month.length : accumulator, 0) || 1;
2139
2176
  const colSize = 100 / colCount;
@@ -2147,7 +2184,7 @@
2147
2184
  return (jsxs("div", { className: "w-full flex flex-col justify-center mt-13", children: [jsx("div", { className: "flex w-full mb-3 text-h6 text-center", children: mappedCalendar.map((_) => renderMonthNames(_, colSize)) }), jsx("div", { className: "flex w-full", children: mappedCalendar.map((_, ind) => (jsxs("div", { className: "pr-[11px] mr-3 border-r border-main-divider last:border-r-0 last:pr-0 last:mr-0", style: { flexBasis: _.flexBasis }, children: [jsx("div", { className: "flex", children: renderMonthImages(_) }), jsxs("div", { className: "text-s-light text-primary-text mt-3", children: [jsx("span", { children: _.text }), "\u2009", jsx("span", { className: "text-primary-main", children: _.greenText })] })] }, `monthItem-${ind}`))) })] }));
2148
2185
  };
2149
2186
  const renderMonthNames = (item, colSize) => item.month?.map((_, i) => (jsx("div", { style: { flexBasis: `${colSize}%` }, children: _.text }, `monthName-${i}`)));
2150
- const renderMonthImages = (item) => item.month?.map((_) => _.image?.src ? (jsx("div", { className: "h-[207px] border-r-[1px] pr-3 mr-3 border-main-divider last:border-r-0 last:pr-0 last:mr-0", children: jsx(ImgInner, { image: _.image, className: "flex" }) }, `monthImage-${_.image.src}`)) : null);
2187
+ 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(ImgInner, { image: _.image, className: "flex" }) }, `monthImage-${_.image.src}`)) : null);
2151
2188
 
2152
2189
  const checkIsHrefSameOrigin = (href, router) => getOrigin(href) === getOrigin(router.href);
2153
2190
 
@@ -2199,7 +2236,7 @@
2199
2236
  return [city, getCity];
2200
2237
  }
2201
2238
 
2202
- const HeaderSecondaryMenuButton = JSX(({ className = '', children, ariaLabel }) => (jsx("button", { type: "button", className: `border-0 p-0 w-[24px] h-[24px] flex items-center bg-inherit cursor-pointer ${className}`, disabled: true, "aria-label": ariaLabel, children: children })));
2239
+ const HeaderSecondaryMenuButton = JSX(({ className = '', children, ariaLabel }) => (jsx("button", { type: "button", className: `border-0 p-0 w-6 h-6 flex items-center bg-inherit cursor-pointer ${className}`, disabled: true, "aria-label": ariaLabel, children: children })));
2203
2240
 
2204
2241
  const COLORS_MAP = {
2205
2242
  'bg-white': 'text-primary-text hover:text-primary-main',
@@ -2215,7 +2252,7 @@
2215
2252
  };
2216
2253
  const HeaderSecondaryMenu = JSX(({ className, officesLink, defaultLocation = 'Москва', bgColor = 'bg-white' }) => {
2217
2254
  const [city, getCity] = useGeolocation(defaultLocation);
2218
- return (jsxs("div", { className: `flex items-center ${className || ''}`, children: [jsx(TopItem, { className: "mr-5", flat: true, href: "#", text: city, ariaLabel: "\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435", onClick: getCity, bgColor: bgColor }), officesLink ? (jsx(TopItem, { className: "mr-7", flat: true, href: officesLink, text: "\u041E\u0444\u0438\u0441\u044B \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u044B", ariaLabel: "\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u0441\u0435\u0445 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043E\u0444\u0438\u0441\u043E\u0432 \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u043E\u0432", bgColor: bgColor })) : null, jsx(HeaderSecondaryMenuButton, { className: `mr-5 group ${COLORS_MAP[bgColor]}`, ariaLabel: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", children: jsx(ImgInner, { image: { icon: 'LoupeIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full pointer-events-none", imageClassName: "group-hover:text-primary-hover group-hover:invert-0 pointer-events-none", asSVG: true }) }), jsx(HeaderSecondaryMenuButton, { className: `${LINKS_COLORS_MAP[bgColor]} group min-w-[32px] min-h-[32px]`, ariaLabel: "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0441\u0441\u044B\u043B\u043A\u0438", children: jsx(ImgInner, { image: { icon: 'GridIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full bg-main-divider/20 rounded-full pointer-events-none", imageClassName: "group-hover:text-primary-hover group-hover:invert-0", asSVG: true }) })] }));
2255
+ return (jsxs("div", { className: `flex items-center ${className || ''}`, children: [jsx(TopItem, { className: "mr-5", flat: true, href: "#", text: city, ariaLabel: "\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435", onClick: getCity, bgColor: bgColor }), officesLink ? (jsx(TopItem, { className: "mr-7", flat: true, href: officesLink, text: "\u041E\u0444\u0438\u0441\u044B \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u044B", ariaLabel: "\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u0441\u0435\u0445 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043E\u0444\u0438\u0441\u043E\u0432 \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u043E\u0432", bgColor: bgColor })) : null, jsx(HeaderSecondaryMenuButton, { className: `mr-5 group ${COLORS_MAP[bgColor]}`, ariaLabel: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", children: jsx(ImgInner, { image: { icon: 'LoupeIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full pointer-events-none", imageClassName: "group-hover:text-primary-hover group-hover:invert-0 pointer-events-none", asSVG: true }) }), jsx(HeaderSecondaryMenuButton, { className: `${LINKS_COLORS_MAP[bgColor]} group min-w-8 min-h-8`, ariaLabel: "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0441\u0441\u044B\u043B\u043A\u0438", children: jsx(ImgInner, { image: { icon: 'GridIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full bg-main-divider/20 rounded-full pointer-events-none", imageClassName: "group-hover:text-primary-hover group-hover:invert-0", asSVG: true }) })] }));
2219
2256
  });
2220
2257
 
2221
2258
  const findActiveSubItem = (router) => (items = []) => {
@@ -2240,7 +2277,7 @@
2240
2277
  const renderDot = (bgColor, i) => (jsx("div", { className: `w-[3px] h-[3px] rounded mr-1 ${DOT_BG_COLORS_MAP[bgColor]}` }, String(i)));
2241
2278
 
2242
2279
  const TEXT_CLASSES$1 = 'font-sans text-l-light';
2243
- const BORDER_CLASSES = 'absolute left-0 -bottom-3 w-full h-[2px]';
2280
+ const BORDER_CLASSES = 'absolute left-0 -bottom-3 w-full h-0.5';
2244
2281
  const HeaderItem = JSX(({ className = '', active, bgColor = 'bg-white', dataItemName, children, ...rest }) => {
2245
2282
  const link = useLink();
2246
2283
  const { href, target, text, onClick } = link(rest);
@@ -2299,7 +2336,7 @@
2299
2336
  const { topItems, logo, defaultLocation, officesLink } = useSWRResource(projectSettings.SITEMAP || 'sitemap', rest.options?.page?.fallback);
2300
2337
  const activeTopItem = showSubMenu ? getActiveItem(topItems, router) : null;
2301
2338
  const topMenu = topItems?.map((_, i) => (jsx(TopItem, { active: _ === activeTopItem, "aria-label": _.text, bgColor: bgColor, ..._ }, String(i))));
2302
- return (jsx(BlockWrapper, { tag: "header", className: `pt-6 px-20 ${bgColor} ${className} ${showSubMenu && activeTopItem?.items?.length ? 'pb-4' : 'pb-5'}`, ...rest, children: jsxs("div", { className: "container", children: [jsxs("div", { className: "flex items-center", children: [jsx(Logo, { className: "mr-8", bgColor: bgColor, logo: logo }), topMenu, jsx(HeaderSecondaryMenu, { className: "ml-auto", defaultLocation: defaultLocation, officesLink: officesLink, bgColor: bgColor })] }), jsx("div", { className: `mt-6 h-[1px] ${BORDER_COLORS[bgColor]}` }), showSubMenu && activeTopItem?.items?.length ? (jsx(HeaderSubMenu, { subItems: activeTopItem.items, bgColor: bgColor })) : null] }) }));
2339
+ return (jsx(BlockWrapper, { tag: "header", className: `pt-6 px-20 ${bgColor} ${className} ${showSubMenu && activeTopItem?.items?.length ? 'pb-4' : 'pb-5'}`, ...rest, children: jsxs("div", { className: "container", children: [jsxs("div", { className: "flex items-center", children: [jsx(Logo, { className: "mr-8", bgColor: bgColor, logo: logo }), topMenu, jsx(HeaderSecondaryMenu, { className: "ml-auto", defaultLocation: defaultLocation, officesLink: officesLink, bgColor: bgColor })] }), jsx("div", { className: `mt-6 h-px ${BORDER_COLORS[bgColor]}` }), showSubMenu && activeTopItem?.items?.length ? (jsx(HeaderSubMenu, { subItems: activeTopItem.items, bgColor: bgColor })) : null] }) }));
2303
2340
  });
2304
2341
  const getActiveItem = (topItems, router) => {
2305
2342
  const [firstPortal] = topItems || [];
@@ -2332,14 +2369,14 @@
2332
2369
  })
2333
2370
  : null, renderArrows({
2334
2371
  ...controls,
2335
- btnClass: ['left-[50px]', 'right-[50px]'],
2372
+ btnClass: ['left-12', 'right-12'],
2336
2373
  className: 'top-[62px]',
2337
- }), canDec ? (jsx("div", { className: "absolute top-0 left-0 h-full w-[136px] bg-opacity-from-white" })) : null, canInc ? (jsx("div", { className: "absolute top-0 right-0 h-full w-[136px] bg-opacity-to-white" })) : null] }), jsx(Button, { className: "w-[240px] text-center", version: "primary", ...button, href: activeHref })] }));
2374
+ }), canDec ? (jsx("div", { className: "absolute top-0 left-0 h-full w-[136px] bg-opacity-from-white" })) : null, canInc ? (jsx("div", { className: "absolute top-0 right-0 h-full w-[136px] bg-opacity-to-white" })) : null] }), jsx(Button, { className: "w-60 text-center", version: "primary", ...button, href: activeHref })] }));
2338
2375
  });
2339
2376
  function renderGallery({ activeIndex, cards, selectedCardIndex, onClick }) {
2340
2377
  const tabsShiftWidth = activeIndex * 460;
2341
2378
  const cardsAlignStyle = cards.length > 2 ? 'justify-start' : 'justify-center';
2342
- return (jsx("div", { style: { transform: `translateX(-${tabsShiftWidth}px)` }, className: "duration-1000 px-[50px]", children: jsx("div", { className: `w-full flex flex-nowrap gap-3.5 pb-12 ${cardsAlignStyle}`, children: cards.map((slide, i) => renderNavButton$2({
2379
+ return (jsx("div", { style: { transform: `translateX(-${tabsShiftWidth}px)` }, className: "duration-1000 px-12", children: jsx("div", { className: `w-full flex flex-nowrap gap-3.5 pb-12 ${cardsAlignStyle}`, children: cards.map((slide, i) => renderNavButton$2({
2343
2380
  slide,
2344
2381
  i,
2345
2382
  isActive: Boolean(i === selectedCardIndex),
@@ -2362,7 +2399,7 @@
2362
2399
  const InsuranceAmountBlock = JSX(({ className = '', title, insuranceTabs = [], button, ...rest }) => {
2363
2400
  const [activeSlideIndex, setActiveSlideIndex] = useState(0);
2364
2401
  const handleActiveSlideIndex = useCallback((_) => setActiveSlideIndex(_), []);
2365
- return (jsxs(BlockWrapper, { className: `box-border py-[50px] overflow-hidden relative font-sans w-100 bg-white ${className}`, ...rest, children: [title ? jsx(Heading, { className: "text-center mb-8", title: title, headingType: "h3" }) : null, insuranceTabs?.length > 1 ? (jsx("div", { className: "p-1.5 bg-secondary-light w-fit mx-auto mb-7 rounded-md", children: insuranceTabs.map((item, i) => renderNavButton$1({
2402
+ return (jsxs(BlockWrapper, { className: `box-border py-12 overflow-hidden relative font-sans w-100 bg-white ${className}`, ...rest, children: [title ? jsx(Heading, { className: "text-center mb-8", title: title, headingType: "h3" }) : null, insuranceTabs?.length > 1 ? (jsx("div", { className: "p-1.5 bg-secondary-light w-fit mx-auto mb-7 rounded-md", children: insuranceTabs.map((item, i) => renderNavButton$1({
2366
2403
  title: item?.title,
2367
2404
  i,
2368
2405
  isActive: Boolean(i === activeSlideIndex),
@@ -2457,7 +2494,7 @@
2457
2494
  double: 'flex gap-x-5 gap-y-[26px] flex-wrap',
2458
2495
  single: 'flex gap-3.5 flex-col',
2459
2496
  };
2460
- const LinkDocs = JSX(({ className = '', title, description, align = 'center', documents, icon = { icon: 'DocIcon' }, columnsMode = 'double', ...rest }) => (jsxs(BlockWrapper, { className: `font-sans text-primary-text p-[50px] bg-white ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0", title: title, description: description, align: align, headlineVersion: "M", as: "h2", ...rest }), jsx(LinkDocsList, { className: `mt-8 ${linkColumnsModeStyleMap[columnsMode]}`, columnsMode: columnsMode, documents: documents, icon: icon })] })));
2497
+ const LinkDocs = JSX(({ className = '', title, description, align = 'center', documents, icon = { icon: 'DocIcon' }, columnsMode = 'double', ...rest }) => (jsxs(BlockWrapper, { className: `font-sans text-primary-text p-12 bg-white ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0", title: title, description: description, align: align, headlineVersion: "M", as: "h2", ...rest }), jsx(LinkDocsList, { className: `mt-8 ${linkColumnsModeStyleMap[columnsMode]}`, columnsMode: columnsMode, documents: documents, icon: icon })] })));
2461
2498
 
2462
2499
  const MiniGallery = JSX((props) => (jsx(GalleryInner, { ...props, version: "mini" })));
2463
2500
 
@@ -2484,7 +2521,7 @@
2484
2521
  const textColorClass = version === 'primary' ? 'text-primary-text' : '';
2485
2522
  const containerStyle = version === 'secondary' ? 'p-3.5 min-w-[120px]' : 'min-w-[92px]';
2486
2523
  const buttonsWithClass = buttons?.map((_) => ({ ..._, className: 'min-w-[168px]' }));
2487
- return (jsxs(BlockWrapper, { className: `flex justify-between font-sans p-[50px] box-border relative min-h-[320px]
2524
+ return (jsxs(BlockWrapper, { className: `flex justify-between font-sans p-12 box-border relative min-h-80
2488
2525
  ${getTileMinHeight(className)}
2489
2526
  ${VersionStyleMap[version]}
2490
2527
  ${className}`, ...rest, children: [jsxs(BaseTile, { className: "z-10", title: title ? (jsx(Heading, { headingType: headingType, as: "h3", title: title, className: `whitespace-pre-wrap mb-7 w-full
@@ -2629,7 +2666,7 @@
2629
2666
 
2630
2667
  const YMAPS_NAMESPACE = 'ymaps';
2631
2668
  const useYandexMaps = () => {
2632
- const url = `https://api-maps.yandex.ru/2.1/?apikey=${projectSettings.YANDEX_MAP_API_KEY}&lang=ru_RU`;
2669
+ const url = `https://api-maps.yandex.ru/2.1/?apikey=${projectSettings.YANDEX_MAP_API_KEY || ''}&lang=ru_RU`;
2633
2670
  return useExternalNS(YMAPS_NAMESPACE, url);
2634
2671
  };
2635
2672
 
@@ -2853,16 +2890,15 @@
2853
2890
  // TODO: Список регионов можно получить через api/v1/regions
2854
2891
  function useOfficeMap(regionCode) {
2855
2892
  const { data } = useAsyncData(regionCode ? `${OFFICE_MAP_URL}?regionCode=${regionCode}` : undefined, fetchOfficeMap);
2856
- console.warn('WARNING!!! Hook useOfficeMap RETURN MOCK object for testing!');
2857
- console.log('Hook useOfficeMap get this data:', data);
2893
+ console.warn('Hook useOfficeMap RETURNs MOCK object for testing', data);
2858
2894
  return OFFICE_MAP;
2859
2895
  }
2860
- const fetchOfficeMap = (url) => {
2896
+ function fetchOfficeMap(url) {
2861
2897
  if (!url) {
2862
2898
  return {};
2863
2899
  }
2864
2900
  return fetchJSON(url, { method: 'GET' });
2865
- };
2901
+ }
2866
2902
 
2867
2903
  const OfficeMap = JSX(({ className = '' }) => {
2868
2904
  // TODO: useOfficeMap endpoint had use /api/v1/branches. This endpoint now is`t correct/
@@ -2966,7 +3002,7 @@
2966
3002
  else if (benefitsVersion === 'normal') {
2967
3003
  bgColorStyle = 'bg-secondary-light text-primary-main';
2968
3004
  }
2969
- return `w-[50px] h-[50px] min-w-[50px] rounded-full p-2.5 box-border flex items-center justify-center ${bgColorStyle}`;
3005
+ return `w-12 h-12 min-w-12 rounded-full p-2.5 box-border flex items-center justify-center ${bgColorStyle}`;
2970
3006
  }
2971
3007
 
2972
3008
  const PictureText = JSX(({ className = '', title, description, image, benefits, version = 'primary', sum, monthLimit, directionRight = false, ...rest }) => (jsxs(BlockWrapper, { className: `relative font-sans py-12 px-24 ${VersionStyleMap[version]} ${className}`, ...rest, children: [jsx(Headline, { className: "!p-0", title: title, description: description, headlineVersion: "M", bgColorHeadline: version, align: "center", ...rest }), jsxs("div", { className: 'flex justify-center gap-[122px] mt-[30px]', children: [image?.src ? jsx(ImgInner, { className: directionRight ? 'order-2' : '', image: image }) : null, jsxs("div", { className: "w-[558px] m-auto", children: [benefits?.length ? (jsx("div", { className: "flex flex-col gap-4", children: benefits.map(renderBenefit$2(version)) })) : null, renderInsuranceSumMonth(Number(sum), Number(monthLimit))] })] })] })));
@@ -3049,7 +3085,7 @@
3049
3085
  const ProductBlock = JSX((props) => {
3050
3086
  const { className = '', breadcrumbs, backwardButton, version = 'primary', ...rest } = props;
3051
3087
  const buttonVersion = version === 'primary' ? version : 'white';
3052
- return (jsxs(BlockWrapper, { className: `font-sans overflow-hidden p-[50px] flex flex-col box-border min-h-[454px] ${VersionStyleMap[version]} ${className}`, ...rest, children: [backwardButton?.text
3088
+ return (jsxs(BlockWrapper, { className: `font-sans overflow-hidden p-12 flex flex-col box-border min-h-[454px] ${VersionStyleMap[version]} ${className}`, ...rest, children: [backwardButton?.text
3053
3089
  ? renderBackwardButton(backwardButton, buttonVersion, 'mb-10 -mt-2.5')
3054
3090
  : null, breadcrumbs?.length ? (jsx("div", { className: "text-xs-light mb-6", children: joinList(jsx("span", { className: `mx-2 ${breadcrumbsStyleMap[version]}`, children: "/" }))(breadcrumbs.map((breadcrumb, i) => (jsx(Breadcrumb, { className: breadcrumbsStyleMap[version], ...breadcrumb }, String(i))))) })) : null, jsx(ProductBlockInner, { version: version, ...rest })] }));
3055
3091
  });
@@ -3068,7 +3104,7 @@
3068
3104
  const galleryBlocks = slides.map((s) => s.productBlock);
3069
3105
  const [activeSlideIndex, setActiveSlideIndex] = useState(0);
3070
3106
  const handleActiveSlideIndex = useCallback((_) => setActiveSlideIndex(_), []);
3071
- return (jsxs(BlockWrapper, { className: `box-border pt-[50px] overflow-hidden relative font-sans w-100 mb-6 ${className}
3107
+ return (jsxs(BlockWrapper, { className: `box-border pt-12 overflow-hidden relative font-sans w-100 mb-6 ${className}
3072
3108
  ${VersionStyleMap[version]}`, ...rest, children: [jsx("div", { className: "flex duration-1000 pb-14", style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: galleryBlocks.map((_, i) => renderProductBlock({ ..._, ...rest, version }, i)) }), jsx("div", { className: "flex items-center absolute bottom-6 left-0 right-0 px-[26px] box-border h-28", children: galleryNav.map((slide, i) => renderNavButton({
3073
3109
  slide,
3074
3110
  i,
@@ -3080,7 +3116,7 @@
3080
3116
  function renderProductBlock(block, i) {
3081
3117
  const { version } = block;
3082
3118
  const additionalClass = version ? productBlockStyleMap[version].title : '';
3083
- return (jsx("section", { className: "box-border relative flex grow-0 shrink-0 basis-full", role: "listitem", children: jsx("div", { className: "flex grow", children: jsx(ProductBlockInner, { className: `pl-[50px] z-10 ${additionalClass}`, textBlockClassName: "mb-[154px]", headlineVersion: "XXL", ...block }) }) }, String(i)));
3119
+ return (jsx("section", { className: "box-border relative flex grow-0 shrink-0 basis-full", role: "listitem", children: jsx("div", { className: "flex grow", children: jsx(ProductBlockInner, { className: `pl-12 z-10 ${additionalClass}`, textBlockClassName: "mb-[154px]", headlineVersion: "XXL", ...block }) }) }, String(i)));
3084
3120
  }
3085
3121
  function renderNavButton({ slide, i, isActive, onClick, version }) {
3086
3122
  const btnClassName = isActive
@@ -3369,13 +3405,13 @@
3369
3405
  const titleMargin = title ? 'mt-9' : '';
3370
3406
  const paddingX = getPaddingX(steps.length);
3371
3407
  return (jsxs(BlockWrapper, { className: [
3372
- 'box-border py-[50px] font-sans',
3408
+ 'box-border py-12 font-sans',
3373
3409
  shortGaps ? 'px-20' : 'px-[70px]',
3374
3410
  'flex flex-col items-center overflow-hidden',
3375
3411
  styleMap.background,
3376
3412
  styleMap.title,
3377
3413
  className,
3378
- ].join(' '), ...rest, children: [title ? (jsx(Heading, { headingType: "h3", className: "max-w-[752px] text-center", title: title })) : null, steps?.length ? (jsxs("div", { className: `box-border ${titleMargin}`, children: [jsx("div", { className: `flex items-center ${paddingX}`, children: joinList(jsx("div", { className: `h-0.5 w-full bg-secondary-light ${lineOpacity}` }))(steps.map(renderStepIcon(styleMap, version))) }), jsx("div", { className: `flex justify-between mt-4 ${shortGaps ? 'gap-x-3' : 'gap-x-[101px]'}`, children: steps.map(renderStepContent({ styleMap, isMainButton: Boolean(button?.text), version })) })] })) : null, button?.text ? (jsx(Button, { className: "mt-8 min-w-[240px]", version: "primary", ...button })) : null] }));
3414
+ ].join(' '), ...rest, children: [title ? (jsx(Heading, { headingType: "h3", className: "max-w-[752px] text-center", title: title })) : null, steps?.length ? (jsxs("div", { className: `box-border ${titleMargin}`, children: [jsx("div", { className: `flex items-center ${paddingX}`, children: joinList(jsx("div", { className: `h-0.5 w-full bg-secondary-light ${lineOpacity}` }))(steps.map(renderStepIcon(styleMap, version))) }), jsx("div", { className: `flex justify-between mt-4 ${shortGaps ? 'gap-x-3' : 'gap-x-[101px]'}`, children: steps.map(renderStepContent({ styleMap, isMainButton: Boolean(button?.text), version })) })] })) : null, button?.text ? jsx(Button, { className: "mt-8 min-w-60", version: "primary", ...button }) : null] }));
3379
3415
  });
3380
3416
  const renderStepIcon = (styleMap, version) => ({ icon }, i) => (jsx("div", { className: "flex flex-col items-center text-center", children: jsx("div", { className: `h-[100px] w-[100px] min-w-[100px] min-h-[100px] rounded-full p-[26px] box-border z-10 flex justify-center items-center
3381
3417
  ${styleMap.iconBackground} ${styleMap.title}`, children: checkIsIconRenderable(icon) ? (jsx(ImgInner, { image: getIconWithVersion(icon || {}, version), width: "48", height: "48", asSVG: true })) : (jsx("span", { className: `text-h4 ${styleMap.iconText}`, children: i + 1 })) }) }, String(i)));
@@ -3392,14 +3428,10 @@
3392
3428
  const INACTIVE_TEXT_CLASSES = 'text-secondary-text group-hover:text-primary-main';
3393
3429
 
3394
3430
  const LinkTab = JSX((props) => {
3395
- const { tab, currentTab, onClick } = props;
3431
+ const { tab, currentTab } = props;
3396
3432
  const active = currentTab?.type === 'link' && currentTab.href === tab.href;
3397
- const handleClick = useCallback(() => {
3398
- onClick && onClick(tab);
3399
- EventBus.inst.fire('anchorClick', { isScrolling: true, label: tab.href });
3400
- }, [tab, onClick]);
3401
3433
  const link = useLink();
3402
- const adjustedProps = link({ ...tab, onClick: handleClick });
3434
+ const adjustedProps = link(tab);
3403
3435
  return (jsx("a", { role: "tab", className: `${LINK_CLASSES} ${active ? ACTIVE_LINK_CLASSES : INACTIVE_LINK_CLASSES}`, target: tab.target, href: adjustedProps.href, onClick: adjustedProps.onClick, children: jsx("span", { className: `${TEXT_CLASSES} ${active ? ACTIVE_TEXT_CLASSES : INACTIVE_TEXT_CLASSES}`, children: tab.text }) }));
3404
3436
  });
3405
3437
 
@@ -3439,26 +3471,20 @@
3439
3471
  const { className = '', tabs, showCounter, isSticky, ...rest } = props;
3440
3472
  const [currentTab, setCurrentTab] = useState(tabs ? tabs[0] : undefined);
3441
3473
  useEffect(() => EventBus.inst.subscribe('tab', (event) => {
3442
- if (!tabs) {
3443
- return;
3444
- }
3445
- const tab = tabs.find(checkTab(event));
3474
+ const tab = tabs?.find(checkTab(event));
3446
3475
  if (event.type === 'link' && tab) {
3447
3476
  setCurrentTab(tab);
3448
3477
  }
3449
3478
  }), [tabs]);
3450
- useEffect(() => {
3451
- if (currentTab?.type === 'group') {
3452
- return EventBus.inst.subject('tab', { label: currentTab.ref });
3453
- }
3454
- return undefined;
3455
- }, [currentTab]);
3456
- const handleClick = (selectedTab) => {
3479
+ useEffect(() => currentTab?.type === 'group'
3480
+ ? EventBus.inst.subject('tab', { label: currentTab.ref })
3481
+ : undefined, [currentTab]);
3482
+ const handleClick = useCallback((selectedTab) => {
3457
3483
  if (selectedTab?.type === 'group') {
3458
3484
  EventBus.inst.fire('tab', { type: selectedTab.type, label: selectedTab.ref });
3459
3485
  }
3460
3486
  setCurrentTab(selectedTab);
3461
- };
3487
+ }, []);
3462
3488
  return (jsx(BlockWrapper, { className: `${isSticky ? 'sticky top-1 z-20 ' : ''}box-border flex gap-x-1 ${className}`, role: "tablist", ...rest, children: tabs?.map(renderTab({ onClick: handleClick, currentTab, showCounter, ...rest })) }));
3463
3489
  });
3464
3490
  const checkTab = (event) => (_) => _.type === 'link' && _.href === `#${event.label}`;
@@ -3612,7 +3638,7 @@
3612
3638
  const [openTableInnerIdx, setOpenTableInnerIdx] = useState(undefined);
3613
3639
  const handleOpenTableInnerIdx = useCallback((_) => setOpenTableInnerIdx(_), []);
3614
3640
  const onHideContentClick = () => setTableInner(undefined);
3615
- return (jsxs(TariffsTableRowContainer, { onHideContentClick: onHideContentClick, tableInner: tableInner, ...rest, children: [jsx("div", { className: `text-s py-5 ${FIRST_CELL_CLASSES} ${DIVIDER_CLASSES}`, children: jsxs("div", { className: "flex items-center text-primary-text", role: "cell", children: [header?.icon ? (jsx(ImgInner, { className: "mr-[14px] max-w-6 max-h-6", image: getIconWithVersion(header.icon), width: "24px", height: "24px", asSVG: true })) : null, header?.title ? jsx("div", { className: "text-m-light", children: header?.title }) : null] }) }), data?.length ? (jsx(TableCarouselContainer, { activeIndex: activeIndex, columnWidth: COLUMN_WIDTH$1, version: "tariff", children: data.map((cells, i) => (jsx(TariffsTableCell, { cells: cells, rowIdx: rowIdx, cellIdx: i, setTableInner: handleSetTableInner, tableInner: tableInner, openTableInnerIdx: openTableInnerIdx, setOpenTableInnerIdx: handleOpenTableInnerIdx, ...rest }, String(i)))) })) : null] }));
3641
+ return (jsxs(TariffsTableRowContainer, { onHideContentClick: onHideContentClick, tableInner: tableInner, ...rest, children: [jsx("div", { className: `text-s py-5 ${FIRST_CELL_CLASSES} ${DIVIDER_CLASSES}`, children: jsxs("div", { className: "flex items-center text-primary-text", role: "cell", children: [header?.icon ? (jsx(ImgInner, { className: "mr-3.5 max-w-6 max-h-6", image: getIconWithVersion(header.icon), width: "24px", height: "24px", asSVG: true })) : null, header?.title ? jsx("div", { className: "text-m-light", children: header?.title }) : null] }) }), data?.length ? (jsx(TableCarouselContainer, { activeIndex: activeIndex, columnWidth: COLUMN_WIDTH$1, version: "tariff", children: data.map((cells, i) => (jsx(TariffsTableCell, { cells: cells, rowIdx: rowIdx, cellIdx: i, setTableInner: handleSetTableInner, tableInner: tableInner, openTableInnerIdx: openTableInnerIdx, setOpenTableInnerIdx: handleOpenTableInnerIdx, ...rest }, String(i)))) })) : null] }));
3616
3642
  });
3617
3643
 
3618
3644
  const TariffsTable = JSX(({ className = '', title, description, rowHeaders, tariffsColumns: columns, hiddenRowsNum = 0, ...rest }) => {
@@ -3628,7 +3654,7 @@
3628
3654
  });
3629
3655
  const rows = (rowData || []).map((row, i) => (jsx(TariffsTableRow, { row: row, activeIndex: activeIndex, rowIdx: i, ...rest }, String(i))));
3630
3656
  const [visibleRows, hiddenRows] = hiddenRowsNum > 0 ? [rows.slice(0, -hiddenRowsNum), rows.slice(-hiddenRowsNum)] : [rows, []];
3631
- return (jsxs(BlockWrapper, { className: `bg-white font-sans p-[50px] overflow-hidden text-primary-text relative ${itemCount > 1 ? 'pr-0' : ''} ${className}`, ...rest, children: [renderTitle({ title, description }), renderDescription(description), hiddenRowsNum > 0 ? (jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => (jsxs(Wrapper, { controls: controls, children: [visibleRows, jsx(FoldableSection, { isUnfolded: isUnfolded, children: hiddenRows })] })), renderFoldButton: renderDefaultFoldButton })) : (jsx(Wrapper, { controls: controls, children: rows }))] }));
3657
+ return (jsxs(BlockWrapper, { className: `bg-white font-sans p-12 overflow-hidden text-primary-text relative ${itemCount > 1 ? 'pr-0' : ''} ${className}`, ...rest, children: [renderTitle({ title, description }), renderDescription(description), hiddenRowsNum > 0 ? (jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => (jsxs(Wrapper, { controls: controls, children: [visibleRows, jsx(FoldableSection, { isUnfolded: isUnfolded, children: hiddenRows })] })), renderFoldButton: renderDefaultFoldButton })) : (jsx(Wrapper, { controls: controls, children: rows }))] }));
3632
3658
  });
3633
3659
  function renderTitle({ title, description }) {
3634
3660
  return title ? (jsx(Heading, { headingType: "h3", className: `text-center ${description ? 'mb-2.5' : 'mb-8'}`, title: title })) : null;
@@ -3804,6 +3830,63 @@
3804
3830
  CarouselInvestmentCard,
3805
3831
  };
3806
3832
 
3833
+ const debounce = (fn, delay = 600) => {
3834
+ let timerId;
3835
+ const debouncedCallback = (...args) => {
3836
+ debouncedCallback.dispose();
3837
+ timerId = setTimeout(() => {
3838
+ fn(...args);
3839
+ }, delay);
3840
+ };
3841
+ debouncedCallback.dispose = () => {
3842
+ if (timerId) {
3843
+ clearTimeout(timerId);
3844
+ }
3845
+ };
3846
+ return debouncedCallback;
3847
+ };
3848
+
3849
+ const SPECIAL_BLOCK_TYPES = ['Header', 'Footer'];
3850
+ const EPS = 0.01;
3851
+ const topLineDelta = ([, { target }]) => Math.abs(target.getBoundingClientRect().top);
3852
+ function findActiveBlock(intersections) {
3853
+ const visibleIntersections = intersections
3854
+ .filter(([block]) => !SPECIAL_BLOCK_TYPES.includes(block.type || ''))
3855
+ .filter(([, { intersectionRatio }]) => intersectionRatio > EPS);
3856
+ const [activeBlock] = visibleIntersections.length > 0 ? minBy(topLineDelta)(visibleIntersections) : [];
3857
+ return activeBlock;
3858
+ }
3859
+
3860
+ const isScrolledEnough = () => globalThis.scrollY > (globalThis.innerHeight * 3) / 4;
3861
+ function useBlockRouterProvider(router = BlockRouter.inst, scrollTarget = globalThis) {
3862
+ const intersectionsMapRef = useRef(new Map());
3863
+ useEffect(() => router.eventBus.subscribe('intersection', ({ block, intersection }) => {
3864
+ if (intersectionsMapRef.current) {
3865
+ intersectionsMapRef.current.set(block, intersection);
3866
+ }
3867
+ }), [router]);
3868
+ useEffect(() => {
3869
+ const handleScroll = debounce(() => {
3870
+ if (!isScrolledEnough()) {
3871
+ router.reset();
3872
+ return;
3873
+ }
3874
+ const activeBlock = findActiveBlock([...(intersectionsMapRef.current || [])]);
3875
+ if (activeBlock?.anchor) {
3876
+ router.replace(activeBlock.anchor);
3877
+ }
3878
+ else if (!activeBlock) {
3879
+ router.reset();
3880
+ }
3881
+ }, 100);
3882
+ scrollTarget.addEventListener('scroll', handleScroll);
3883
+ return () => {
3884
+ handleScroll.dispose();
3885
+ scrollTarget.removeEventListener('scroll', handleScroll);
3886
+ };
3887
+ }, [router, scrollTarget]);
3888
+ }
3889
+
3807
3890
  const api = LikeAPI();
3808
3891
  function useLikeService(pagePath) {
3809
3892
  const [likeCount, setLikeCount] = useState(0);
@@ -3855,6 +3938,7 @@
3855
3938
  blockDecorator,
3856
3939
  parent: data,
3857
3940
  };
3941
+ useBlockRouterProvider();
3858
3942
  return (jsxs("section", { className: `relative ${style2className(pageStyle)} ${className}`, "data-theme": colorPalette, children: [slots?.header ? (jsx("div", { className: "mb-5 shadow-[0_8px_32px_0px_#00000014]", children: renderBlocksList(slots?.header, {
3859
3943
  ...options,
3860
3944
  slotName: 'header',
@@ -3871,7 +3955,7 @@
3871
3955
  return (jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: jsx(LikeControl, { className: "rounded-tl-lg sticky bottom-0 pointer-events-auto" }) }));
3872
3956
  }
3873
3957
 
3874
- const packageVersion = "0.6.37";
3958
+ const packageVersion = "0.6.38";
3875
3959
 
3876
3960
  exports.Blocks = Blocks;
3877
3961
  exports.ContentPage = ContentPage;