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

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 (659) hide show
  1. package/bundle/EventBus/EventBus.d.ts +6 -5
  2. package/bundle/EventBus/EventMap.d.ts +1 -4
  3. package/bundle/bundle.umd.js +178 -98
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/bundle/components/Footer/FooterDataProps.d.ts +8 -3
  6. package/bundle/components/Tabs/LinkTab.d.ts +0 -1
  7. package/bundle/components/Tabs/Tabs.d.ts +0 -4
  8. package/bundle/services/BlockRouter/BlockIntersection.d.ts +2 -0
  9. package/bundle/services/BlockRouter/BlockRouter.d.ts +23 -0
  10. package/bundle/services/BlockRouter/findActiveBlock.d.ts +3 -0
  11. package/bundle/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  12. package/bundle/services/BlockRouter/useBlockRouter.d.ts +2 -0
  13. package/bundle/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  14. package/bundle/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  15. package/bundle/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  16. package/bundle/utils/debounce.d.ts +5 -0
  17. package/dist/EventBus/EventBus.d.ts +6 -5
  18. package/dist/EventBus/EventBus.js +5 -3
  19. package/dist/EventBus/EventBus.js.map +1 -1
  20. package/dist/EventBus/EventMap.d.ts +1 -4
  21. package/dist/components/Accordion/Accordion.js +1 -1
  22. package/dist/components/Accordion/Accordion.js.map +1 -1
  23. package/dist/components/AccordionItem/AccordionItem.mobile.js +1 -1
  24. package/dist/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  25. package/dist/components/BenefitsBlock/BenefitsBlock.js +1 -1
  26. package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  27. package/dist/components/Bonus/Bonus.js +2 -2
  28. package/dist/components/Bonus/Bonus.js.map +1 -1
  29. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +1 -1
  30. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  31. package/dist/components/BusinessBlock/BusinessBlock.js +1 -1
  32. package/dist/components/BusinessBlock/BusinessBlock.js.map +1 -1
  33. package/dist/components/Calculator/DepositCalculatorForm.js +0 -1
  34. package/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  35. package/dist/components/Calculator/renderProposal.js +2 -2
  36. package/dist/components/Calculator/renderProposal.js.map +1 -1
  37. package/dist/components/CardTransfer/CardTransfer.js +1 -1
  38. package/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  39. package/dist/components/Catalog/Catalog.js +1 -1
  40. package/dist/components/Catalog/Catalog.js.map +1 -1
  41. package/dist/components/ComparisonTable/ComparisonTable.js +2 -2
  42. package/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
  43. package/dist/components/ContactsBlock/ContactsBlock.js +1 -1
  44. package/dist/components/ContactsBlock/ContactsBlock.js.map +1 -1
  45. package/dist/components/ContentPage/ContentPage.js +2 -0
  46. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  47. package/dist/components/ContentPage/useContentPageData.js +4 -8
  48. package/dist/components/ContentPage/useContentPageData.js.map +1 -1
  49. package/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  50. package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  51. package/dist/components/Footer/Footer.js +2 -2
  52. package/dist/components/Footer/Footer.js.map +1 -1
  53. package/dist/components/Footer/FooterDataProps.d.ts +8 -3
  54. package/dist/components/Footer/MediaButton.js +1 -1
  55. package/dist/components/Footer/MediaButton.js.map +1 -1
  56. package/dist/components/Gallery/Gallery.mobile.js +1 -1
  57. package/dist/components/Gallery/Gallery.mobile.js.map +1 -1
  58. package/dist/components/Gallery/GalleryCardInner.js +1 -1
  59. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  60. package/dist/components/GracePeriod/GracePeriod.js +2 -2
  61. package/dist/components/GracePeriod/GracePeriod.js.map +1 -1
  62. package/dist/components/Header/Header.js +1 -1
  63. package/dist/components/Header/Header.js.map +1 -1
  64. package/dist/components/Header/Header.mobile.js +1 -1
  65. package/dist/components/Header/Header.mobile.js.map +1 -1
  66. package/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  67. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  68. package/dist/components/Header/HeaderSecondaryMenuButton.js +1 -1
  69. package/dist/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  70. package/dist/components/Header/HeaderTop.js +1 -1
  71. package/dist/components/Header/HeaderTop.js.map +1 -1
  72. package/dist/components/Headline/Headline.js +1 -1
  73. package/dist/components/Headline/Headline.js.map +1 -1
  74. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  75. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  76. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +3 -3
  77. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  78. package/dist/components/LinkDocs/LinkDocs.js +1 -1
  79. package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
  80. package/dist/components/LinkList/LinkList.js +1 -1
  81. package/dist/components/LinkList/LinkList.js.map +1 -1
  82. package/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  83. package/dist/components/MobileAppTile/MobileAppTile.mobile.js +1 -1
  84. package/dist/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  85. package/dist/components/OfficeMap/useOfficeMap.js +3 -4
  86. package/dist/components/OfficeMap/useOfficeMap.js.map +1 -1
  87. package/dist/components/ProductBlock/ProductBlock.js +1 -1
  88. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  89. package/dist/components/ProductGallery/ProductGallery.js +2 -2
  90. package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  91. package/dist/components/StepsBlock/StepsBlock.js +2 -2
  92. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  93. package/dist/components/StepsBlock/StepsBlock.mobile.js +3 -3
  94. package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  95. package/dist/components/Tabs/LinkTab.d.ts +0 -1
  96. package/dist/components/Tabs/LinkTab.js +2 -8
  97. package/dist/components/Tabs/LinkTab.js.map +1 -1
  98. package/dist/components/Tabs/Tabs.d.ts +0 -4
  99. package/dist/components/Tabs/Tabs.js +6 -12
  100. package/dist/components/Tabs/Tabs.js.map +1 -1
  101. package/dist/components/TariffsTable/TariffsTable.js +1 -1
  102. package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  103. package/dist/components/TariffsTable/TariffsTableRow.js +1 -1
  104. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  105. package/dist/hooks/useLink.js +11 -2
  106. package/dist/hooks/useLink.js.map +1 -1
  107. package/dist/services/BlockRouter/BlockIntersection.d.ts +2 -0
  108. package/dist/services/BlockRouter/BlockIntersection.js +2 -0
  109. package/dist/services/BlockRouter/BlockIntersection.js.map +1 -0
  110. package/dist/services/BlockRouter/BlockRouter.d.ts +23 -0
  111. package/dist/services/BlockRouter/BlockRouter.js +32 -0
  112. package/dist/services/BlockRouter/BlockRouter.js.map +1 -0
  113. package/dist/services/BlockRouter/findActiveBlock.d.ts +3 -0
  114. package/dist/services/BlockRouter/findActiveBlock.js +15 -0
  115. package/dist/services/BlockRouter/findActiveBlock.js.map +1 -0
  116. package/dist/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  117. package/dist/services/BlockRouter/useBlockIntersectionObserver.js +28 -0
  118. package/dist/services/BlockRouter/useBlockIntersectionObserver.js.map +1 -0
  119. package/dist/services/BlockRouter/useBlockRouter.d.ts +2 -0
  120. package/dist/services/BlockRouter/useBlockRouter.js +8 -0
  121. package/dist/services/BlockRouter/useBlockRouter.js.map +1 -0
  122. package/dist/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  123. package/dist/services/BlockRouter/useBlockRouterProvider.js +37 -0
  124. package/dist/services/BlockRouter/useBlockRouterProvider.js.map +1 -0
  125. package/dist/ui-kit/BenefitItem/BenefitItem.js +1 -1
  126. package/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  127. package/dist/ui-kit/BlockWrapper.js +6 -20
  128. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  129. package/dist/ui-kit/HeaderItem/HeaderItem.js +1 -1
  130. package/dist/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  131. package/dist/ui-kit/HeaderItem/HeaderItem.mobile.js +1 -1
  132. package/dist/ui-kit/HeaderItem/HeaderItem.mobile.js.map +1 -1
  133. package/dist/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  134. package/dist/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  135. package/dist/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  136. package/dist/ui-kit/Select/Select.js +1 -1
  137. package/dist/ui-kit/Select/Select.js.map +1 -1
  138. package/dist/ui-kit/YandexMap/useYandexMaps.js +1 -1
  139. package/dist/ui-kit/YandexMap/useYandexMaps.js.map +1 -1
  140. package/dist/utils/debounce.d.ts +5 -0
  141. package/dist/utils/debounce.js +19 -0
  142. package/dist/utils/debounce.js.map +1 -0
  143. package/lib/EventBus/EventBus.d.ts +6 -5
  144. package/lib/EventBus/EventBus.js +5 -3
  145. package/lib/EventBus/EventBus.js.map +1 -1
  146. package/lib/EventBus/EventMap.d.ts +1 -4
  147. package/lib/common.css +1 -1
  148. package/lib/components/Accordion/Accordion.js +1 -1
  149. package/lib/components/Accordion/Accordion.js.map +1 -1
  150. package/lib/components/AccordionItem/AccordionItem.mobile.js +1 -1
  151. package/lib/components/AccordionItem/AccordionItem.mobile.js.map +1 -1
  152. package/lib/components/BenefitsBlock/BenefitsBlock.js +1 -1
  153. package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  154. package/lib/components/Bonus/Bonus.js +2 -2
  155. package/lib/components/Bonus/Bonus.js.map +1 -1
  156. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +1 -1
  157. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  158. package/lib/components/BusinessBlock/BusinessBlock.js +1 -1
  159. package/lib/components/BusinessBlock/BusinessBlock.js.map +1 -1
  160. package/lib/components/Calculator/DepositCalculatorForm.js +0 -1
  161. package/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  162. package/lib/components/Calculator/renderProposal.js +2 -2
  163. package/lib/components/Calculator/renderProposal.js.map +1 -1
  164. package/lib/components/CardTransfer/CardTransfer.js +1 -1
  165. package/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  166. package/lib/components/Catalog/Catalog.js +1 -1
  167. package/lib/components/Catalog/Catalog.js.map +1 -1
  168. package/lib/components/ComparisonTable/ComparisonTable.js +2 -2
  169. package/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  170. package/lib/components/ContactsBlock/ContactsBlock.js +1 -1
  171. package/lib/components/ContactsBlock/ContactsBlock.js.map +1 -1
  172. package/lib/components/ContentPage/ContentPage.js +2 -0
  173. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  174. package/lib/components/ContentPage/useContentPageData.js +4 -8
  175. package/lib/components/ContentPage/useContentPageData.js.map +1 -1
  176. package/lib/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  177. package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  178. package/lib/components/Footer/Footer.js +2 -2
  179. package/lib/components/Footer/Footer.js.map +1 -1
  180. package/lib/components/Footer/FooterDataProps.d.ts +8 -3
  181. package/lib/components/Footer/MediaButton.js +1 -1
  182. package/lib/components/Footer/MediaButton.js.map +1 -1
  183. package/lib/components/Gallery/Gallery.mobile.js +1 -1
  184. package/lib/components/Gallery/Gallery.mobile.js.map +1 -1
  185. package/lib/components/Gallery/GalleryCardInner.js +1 -1
  186. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  187. package/lib/components/GracePeriod/GracePeriod.js +2 -2
  188. package/lib/components/GracePeriod/GracePeriod.js.map +1 -1
  189. package/lib/components/Header/Header.js +1 -1
  190. package/lib/components/Header/Header.js.map +1 -1
  191. package/lib/components/Header/Header.mobile.js +1 -1
  192. package/lib/components/Header/Header.mobile.js.map +1 -1
  193. package/lib/components/Header/HeaderSecondaryMenu.js +1 -1
  194. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  195. package/lib/components/Header/HeaderSecondaryMenuButton.js +1 -1
  196. package/lib/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  197. package/lib/components/Header/HeaderTop.js +1 -1
  198. package/lib/components/Header/HeaderTop.js.map +1 -1
  199. package/lib/components/Headline/Headline.js +1 -1
  200. package/lib/components/Headline/Headline.js.map +1 -1
  201. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  202. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  203. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +3 -3
  204. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  205. package/lib/components/LinkDocs/LinkDocs.js +1 -1
  206. package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
  207. package/lib/components/LinkList/LinkList.js +1 -1
  208. package/lib/components/LinkList/LinkList.js.map +1 -1
  209. package/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  210. package/lib/components/MobileAppTile/MobileAppTile.mobile.js +1 -1
  211. package/lib/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  212. package/lib/components/OfficeMap/useOfficeMap.js +3 -4
  213. package/lib/components/OfficeMap/useOfficeMap.js.map +1 -1
  214. package/lib/components/ProductBlock/ProductBlock.js +1 -1
  215. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  216. package/lib/components/ProductGallery/ProductGallery.js +2 -2
  217. package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  218. package/lib/components/Recommendation/Recommendation.fixture.d.ts +3 -1
  219. package/lib/components/StepsBlock/StepsBlock.js +2 -2
  220. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  221. package/lib/components/StepsBlock/StepsBlock.mobile.js +3 -3
  222. package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  223. package/lib/components/Tabs/LinkTab.d.ts +0 -1
  224. package/lib/components/Tabs/LinkTab.js +2 -8
  225. package/lib/components/Tabs/LinkTab.js.map +1 -1
  226. package/lib/components/Tabs/Tabs.d.ts +0 -4
  227. package/lib/components/Tabs/Tabs.js +7 -13
  228. package/lib/components/Tabs/Tabs.js.map +1 -1
  229. package/lib/components/TariffsTable/TariffsTable.js +1 -1
  230. package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  231. package/lib/components/TariffsTable/TariffsTableRow.js +1 -1
  232. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  233. package/lib/hooks/useLink.js +11 -2
  234. package/lib/hooks/useLink.js.map +1 -1
  235. package/lib/services/BlockRouter/BlockIntersection.d.ts +2 -0
  236. package/lib/services/BlockRouter/BlockIntersection.js +2 -0
  237. package/lib/services/BlockRouter/BlockIntersection.js.map +1 -0
  238. package/lib/services/BlockRouter/BlockRouter.d.ts +23 -0
  239. package/lib/services/BlockRouter/BlockRouter.js +29 -0
  240. package/lib/services/BlockRouter/BlockRouter.js.map +1 -0
  241. package/lib/services/BlockRouter/findActiveBlock.d.ts +3 -0
  242. package/lib/services/BlockRouter/findActiveBlock.js +12 -0
  243. package/lib/services/BlockRouter/findActiveBlock.js.map +1 -0
  244. package/lib/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  245. package/lib/services/BlockRouter/useBlockIntersectionObserver.js +25 -0
  246. package/lib/services/BlockRouter/useBlockIntersectionObserver.js.map +1 -0
  247. package/lib/services/BlockRouter/useBlockRouter.d.ts +2 -0
  248. package/lib/services/BlockRouter/useBlockRouter.js +5 -0
  249. package/lib/services/BlockRouter/useBlockRouter.js.map +1 -0
  250. package/lib/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  251. package/lib/services/BlockRouter/useBlockRouterProvider.js +34 -0
  252. package/lib/services/BlockRouter/useBlockRouterProvider.js.map +1 -0
  253. package/lib/ui-kit/BenefitItem/BenefitItem.js +1 -1
  254. package/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  255. package/lib/ui-kit/BlockWrapper.js +7 -21
  256. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  257. package/lib/ui-kit/HeaderItem/HeaderItem.js +1 -1
  258. package/lib/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  259. package/lib/ui-kit/HeaderItem/HeaderItem.mobile.js +1 -1
  260. package/lib/ui-kit/HeaderItem/HeaderItem.mobile.js.map +1 -1
  261. package/lib/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  262. package/lib/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  263. package/lib/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  264. package/lib/ui-kit/Select/Select.js +1 -1
  265. package/lib/ui-kit/Select/Select.js.map +1 -1
  266. package/lib/ui-kit/YandexMap/useYandexMaps.js +1 -1
  267. package/lib/ui-kit/YandexMap/useYandexMaps.js.map +1 -1
  268. package/lib/utils/debounce.d.ts +5 -0
  269. package/lib/utils/debounce.js +16 -0
  270. package/lib/utils/debounce.js.map +1 -0
  271. package/mobile/bundle/EventBus/EventBus.d.ts +6 -5
  272. package/mobile/bundle/EventBus/EventMap.d.ts +1 -4
  273. package/mobile/bundle/bundle.umd.js +140 -48
  274. package/mobile/bundle/bundle.umd.min.js +1 -1
  275. package/mobile/bundle/components/Footer/FooterDataProps.d.ts +8 -3
  276. package/mobile/bundle/components/Tabs/LinkTab.d.ts +0 -1
  277. package/mobile/bundle/components/Tabs/Tabs.d.ts +0 -4
  278. package/mobile/bundle/services/BlockRouter/BlockIntersection.d.ts +2 -0
  279. package/mobile/bundle/services/BlockRouter/BlockRouter.d.ts +23 -0
  280. package/mobile/bundle/services/BlockRouter/findActiveBlock.d.ts +3 -0
  281. package/mobile/bundle/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  282. package/mobile/bundle/services/BlockRouter/useBlockRouter.d.ts +2 -0
  283. package/mobile/bundle/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  284. package/mobile/bundle/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  285. package/mobile/bundle/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  286. package/mobile/bundle/utils/debounce.d.ts +5 -0
  287. package/mobile/dist/EventBus/EventBus.d.ts +6 -5
  288. package/mobile/dist/EventBus/EventBus.js +5 -3
  289. package/mobile/dist/EventBus/EventBus.js.map +1 -1
  290. package/mobile/dist/EventBus/EventMap.d.ts +1 -4
  291. package/mobile/dist/components/AccordionItem/AccordionItem.js +1 -1
  292. package/mobile/dist/components/AccordionItem/AccordionItem.js.map +1 -1
  293. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +1 -1
  294. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  295. package/mobile/dist/components/Bonus/Bonus.js +2 -2
  296. package/mobile/dist/components/Bonus/Bonus.js.map +1 -1
  297. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +1 -1
  298. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  299. package/mobile/dist/components/BusinessBlock/BusinessBlock.js +1 -1
  300. package/mobile/dist/components/BusinessBlock/BusinessBlock.js.map +1 -1
  301. package/mobile/dist/components/Calculator/DepositCalculatorForm.js +0 -1
  302. package/mobile/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  303. package/mobile/dist/components/Calculator/renderProposal.js +2 -2
  304. package/mobile/dist/components/Calculator/renderProposal.js.map +1 -1
  305. package/mobile/dist/components/CardTransfer/CardTransfer.js +1 -1
  306. package/mobile/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  307. package/mobile/dist/components/Catalog/Catalog.js +1 -1
  308. package/mobile/dist/components/Catalog/Catalog.js.map +1 -1
  309. package/mobile/dist/components/ContactsBlock/ContactsBlock.js +1 -1
  310. package/mobile/dist/components/ContactsBlock/ContactsBlock.js.map +1 -1
  311. package/mobile/dist/components/ContentPage/ContentPage.js +2 -0
  312. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  313. package/mobile/dist/components/ContentPage/useContentPageData.js +4 -8
  314. package/mobile/dist/components/ContentPage/useContentPageData.js.map +1 -1
  315. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  316. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  317. package/mobile/dist/components/Footer/FooterDataProps.d.ts +8 -3
  318. package/mobile/dist/components/Footer/MediaButton.js +1 -1
  319. package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
  320. package/mobile/dist/components/Gallery/Gallery.js +1 -1
  321. package/mobile/dist/components/Gallery/Gallery.js.map +1 -1
  322. package/mobile/dist/components/Gallery/GalleryCardInner.js +1 -1
  323. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  324. package/mobile/dist/components/GracePeriod/GracePeriod.js +2 -2
  325. package/mobile/dist/components/GracePeriod/GracePeriod.js.map +1 -1
  326. package/mobile/dist/components/Header/Header.js +1 -1
  327. package/mobile/dist/components/Header/Header.js.map +1 -1
  328. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  329. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  330. package/mobile/dist/components/Header/HeaderSecondaryMenuButton.js +1 -1
  331. package/mobile/dist/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  332. package/mobile/dist/components/Header/HeaderTop.js +1 -1
  333. package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
  334. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  335. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  336. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +3 -3
  337. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  338. package/mobile/dist/components/LinkList/LinkList.js +1 -1
  339. package/mobile/dist/components/LinkList/LinkList.js.map +1 -1
  340. package/mobile/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  341. package/mobile/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  342. package/mobile/dist/components/OfficeMap/useOfficeMap.js +3 -4
  343. package/mobile/dist/components/OfficeMap/useOfficeMap.js.map +1 -1
  344. package/mobile/dist/components/ProductGallery/ProductGallery.js +2 -2
  345. package/mobile/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  346. package/mobile/dist/components/StepsBlock/StepsBlock.js +3 -3
  347. package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  348. package/mobile/dist/components/Tabs/LinkTab.d.ts +0 -1
  349. package/mobile/dist/components/Tabs/LinkTab.js +2 -8
  350. package/mobile/dist/components/Tabs/LinkTab.js.map +1 -1
  351. package/mobile/dist/components/Tabs/Tabs.d.ts +0 -4
  352. package/mobile/dist/components/Tabs/Tabs.js +6 -12
  353. package/mobile/dist/components/Tabs/Tabs.js.map +1 -1
  354. package/mobile/dist/components/TariffsTable/TariffsTableRow.js +1 -1
  355. package/mobile/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  356. package/mobile/dist/hooks/useLink.js +11 -2
  357. package/mobile/dist/hooks/useLink.js.map +1 -1
  358. package/mobile/dist/services/BlockRouter/BlockIntersection.d.ts +2 -0
  359. package/mobile/dist/services/BlockRouter/BlockIntersection.js +2 -0
  360. package/mobile/dist/services/BlockRouter/BlockIntersection.js.map +1 -0
  361. package/mobile/dist/services/BlockRouter/BlockRouter.d.ts +23 -0
  362. package/mobile/dist/services/BlockRouter/BlockRouter.js +32 -0
  363. package/mobile/dist/services/BlockRouter/BlockRouter.js.map +1 -0
  364. package/mobile/dist/services/BlockRouter/findActiveBlock.d.ts +3 -0
  365. package/mobile/dist/services/BlockRouter/findActiveBlock.js +15 -0
  366. package/mobile/dist/services/BlockRouter/findActiveBlock.js.map +1 -0
  367. package/mobile/dist/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  368. package/mobile/dist/services/BlockRouter/useBlockIntersectionObserver.js +28 -0
  369. package/mobile/dist/services/BlockRouter/useBlockIntersectionObserver.js.map +1 -0
  370. package/mobile/dist/services/BlockRouter/useBlockRouter.d.ts +2 -0
  371. package/mobile/dist/services/BlockRouter/useBlockRouter.js +8 -0
  372. package/mobile/dist/services/BlockRouter/useBlockRouter.js.map +1 -0
  373. package/mobile/dist/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  374. package/mobile/dist/services/BlockRouter/useBlockRouterProvider.js +37 -0
  375. package/mobile/dist/services/BlockRouter/useBlockRouterProvider.js.map +1 -0
  376. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js +1 -1
  377. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  378. package/mobile/dist/ui-kit/BlockWrapper.js +6 -20
  379. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  380. package/mobile/dist/ui-kit/HeaderItem/HeaderItem.js +1 -1
  381. package/mobile/dist/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  382. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  383. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  384. package/mobile/dist/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  385. package/mobile/dist/ui-kit/Select/Select.js +1 -1
  386. package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
  387. package/mobile/dist/ui-kit/YandexMap/useYandexMaps.js +1 -1
  388. package/mobile/dist/ui-kit/YandexMap/useYandexMaps.js.map +1 -1
  389. package/mobile/dist/utils/debounce.d.ts +5 -0
  390. package/mobile/dist/utils/debounce.js +19 -0
  391. package/mobile/dist/utils/debounce.js.map +1 -0
  392. package/mobile/lib/EventBus/EventBus.d.ts +6 -5
  393. package/mobile/lib/EventBus/EventBus.js +5 -3
  394. package/mobile/lib/EventBus/EventBus.js.map +1 -1
  395. package/mobile/lib/EventBus/EventMap.d.ts +1 -4
  396. package/mobile/lib/components/AccordionItem/AccordionItem.js +1 -1
  397. package/mobile/lib/components/AccordionItem/AccordionItem.js.map +1 -1
  398. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +1 -1
  399. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  400. package/mobile/lib/components/Bonus/Bonus.js +2 -2
  401. package/mobile/lib/components/Bonus/Bonus.js.map +1 -1
  402. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +1 -1
  403. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  404. package/mobile/lib/components/BusinessBlock/BusinessBlock.js +1 -1
  405. package/mobile/lib/components/BusinessBlock/BusinessBlock.js.map +1 -1
  406. package/mobile/lib/components/Calculator/DepositCalculatorForm.js +0 -1
  407. package/mobile/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  408. package/mobile/lib/components/Calculator/renderProposal.js +2 -2
  409. package/mobile/lib/components/Calculator/renderProposal.js.map +1 -1
  410. package/mobile/lib/components/CardTransfer/CardTransfer.js +1 -1
  411. package/mobile/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  412. package/mobile/lib/components/Catalog/Catalog.js +1 -1
  413. package/mobile/lib/components/Catalog/Catalog.js.map +1 -1
  414. package/mobile/lib/components/ContactsBlock/ContactsBlock.js +1 -1
  415. package/mobile/lib/components/ContactsBlock/ContactsBlock.js.map +1 -1
  416. package/mobile/lib/components/ContentPage/ContentPage.js +2 -0
  417. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  418. package/mobile/lib/components/ContentPage/useContentPageData.js +4 -8
  419. package/mobile/lib/components/ContentPage/useContentPageData.js.map +1 -1
  420. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  421. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  422. package/mobile/lib/components/Footer/FooterDataProps.d.ts +8 -3
  423. package/mobile/lib/components/Footer/MediaButton.js +1 -1
  424. package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
  425. package/mobile/lib/components/Gallery/Gallery.js +1 -1
  426. package/mobile/lib/components/Gallery/Gallery.js.map +1 -1
  427. package/mobile/lib/components/Gallery/GalleryCardInner.js +1 -1
  428. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  429. package/mobile/lib/components/GracePeriod/GracePeriod.js +2 -2
  430. package/mobile/lib/components/GracePeriod/GracePeriod.js.map +1 -1
  431. package/mobile/lib/components/Header/Header.js +1 -1
  432. package/mobile/lib/components/Header/Header.js.map +1 -1
  433. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +1 -1
  434. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  435. package/mobile/lib/components/Header/HeaderSecondaryMenuButton.js +1 -1
  436. package/mobile/lib/components/Header/HeaderSecondaryMenuButton.js.map +1 -1
  437. package/mobile/lib/components/Header/HeaderTop.js +1 -1
  438. package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
  439. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  440. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  441. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +3 -3
  442. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  443. package/mobile/lib/components/LinkList/LinkList.js +1 -1
  444. package/mobile/lib/components/LinkList/LinkList.js.map +1 -1
  445. package/mobile/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  446. package/mobile/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  447. package/mobile/lib/components/OfficeMap/useOfficeMap.js +3 -4
  448. package/mobile/lib/components/OfficeMap/useOfficeMap.js.map +1 -1
  449. package/mobile/lib/components/ProductGallery/ProductGallery.js +2 -2
  450. package/mobile/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  451. package/mobile/lib/components/StepsBlock/StepsBlock.js +3 -3
  452. package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  453. package/mobile/lib/components/Tabs/LinkTab.d.ts +0 -1
  454. package/mobile/lib/components/Tabs/LinkTab.js +2 -8
  455. package/mobile/lib/components/Tabs/LinkTab.js.map +1 -1
  456. package/mobile/lib/components/Tabs/Tabs.d.ts +0 -4
  457. package/mobile/lib/components/Tabs/Tabs.js +7 -13
  458. package/mobile/lib/components/Tabs/Tabs.js.map +1 -1
  459. package/mobile/lib/components/TariffsTable/TariffsTableRow.js +1 -1
  460. package/mobile/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  461. package/mobile/lib/hooks/useLink.js +11 -2
  462. package/mobile/lib/hooks/useLink.js.map +1 -1
  463. package/mobile/lib/services/BlockRouter/BlockIntersection.d.ts +2 -0
  464. package/mobile/lib/services/BlockRouter/BlockIntersection.js +2 -0
  465. package/mobile/lib/services/BlockRouter/BlockIntersection.js.map +1 -0
  466. package/mobile/lib/services/BlockRouter/BlockRouter.d.ts +23 -0
  467. package/mobile/lib/services/BlockRouter/BlockRouter.js +29 -0
  468. package/mobile/lib/services/BlockRouter/BlockRouter.js.map +1 -0
  469. package/mobile/lib/services/BlockRouter/findActiveBlock.d.ts +3 -0
  470. package/mobile/lib/services/BlockRouter/findActiveBlock.js +12 -0
  471. package/mobile/lib/services/BlockRouter/findActiveBlock.js.map +1 -0
  472. package/mobile/lib/services/BlockRouter/useBlockIntersectionObserver.d.ts +5 -0
  473. package/mobile/lib/services/BlockRouter/useBlockIntersectionObserver.js +25 -0
  474. package/mobile/lib/services/BlockRouter/useBlockIntersectionObserver.js.map +1 -0
  475. package/mobile/lib/services/BlockRouter/useBlockRouter.d.ts +2 -0
  476. package/mobile/lib/services/BlockRouter/useBlockRouter.js +5 -0
  477. package/mobile/lib/services/BlockRouter/useBlockRouter.js.map +1 -0
  478. package/mobile/lib/services/BlockRouter/useBlockRouterProvider.d.ts +2 -0
  479. package/mobile/lib/services/BlockRouter/useBlockRouterProvider.js +34 -0
  480. package/mobile/lib/services/BlockRouter/useBlockRouterProvider.js.map +1 -0
  481. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js +1 -1
  482. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  483. package/mobile/lib/ui-kit/BlockWrapper.js +7 -21
  484. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  485. package/mobile/lib/ui-kit/HeaderItem/HeaderItem.js +1 -1
  486. package/mobile/lib/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  487. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.d.ts +3 -2
  488. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.js.map +1 -1
  489. package/mobile/lib/ui-kit/InnerTable/InnerTableProps.d.ts +0 -3
  490. package/mobile/lib/ui-kit/Select/Select.js +1 -1
  491. package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
  492. package/mobile/lib/ui-kit/YandexMap/useYandexMaps.js +1 -1
  493. package/mobile/lib/ui-kit/YandexMap/useYandexMaps.js.map +1 -1
  494. package/mobile/lib/utils/debounce.d.ts +5 -0
  495. package/mobile/lib/utils/debounce.js +16 -0
  496. package/mobile/lib/utils/debounce.js.map +1 -0
  497. package/mobile/src/EventBus/EventBus.ts +18 -14
  498. package/mobile/src/EventBus/EventMap.ts +1 -4
  499. package/mobile/src/components/AccordionItem/AccordionItem.tsx +1 -1
  500. package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +1 -1
  501. package/mobile/src/components/Bonus/Bonus.tsx +2 -4
  502. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +1 -1
  503. package/mobile/src/components/BusinessBlock/BusinessBlock.tsx +1 -1
  504. package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +0 -1
  505. package/mobile/src/components/Calculator/renderProposal.tsx +2 -2
  506. package/mobile/src/components/CardTransfer/CardTransfer.tsx +1 -1
  507. package/mobile/src/components/Catalog/Catalog.example.json +1 -1
  508. package/mobile/src/components/Catalog/Catalog.tsx +1 -1
  509. package/mobile/src/components/ContactsBlock/ContactsBlock.tsx +1 -1
  510. package/mobile/src/components/ContentPage/ContentPage.tsx +3 -0
  511. package/mobile/src/components/ContentPage/useContentPageData.ts +4 -8
  512. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.tsx +1 -1
  513. package/mobile/src/components/Footer/FooterDataProps.ts +8 -3
  514. package/mobile/src/components/Footer/MediaButton.tsx +1 -1
  515. package/mobile/src/components/Gallery/Gallery.tsx +1 -1
  516. package/mobile/src/components/Gallery/GalleryCardInner.tsx +1 -1
  517. package/mobile/src/components/GracePeriod/GracePeriod.tsx +2 -2
  518. package/mobile/src/components/Header/Header.tsx +1 -1
  519. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +1 -1
  520. package/mobile/src/components/Header/HeaderSecondaryMenuButton.tsx +1 -1
  521. package/mobile/src/components/Header/HeaderTop.tsx +1 -1
  522. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +1 -1
  523. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +3 -6
  524. package/mobile/src/components/LinkList/LinkList.tsx +1 -1
  525. package/mobile/src/components/MobileAppTile/MobileAppTile.tsx +1 -1
  526. package/mobile/src/components/OfficeMap/useOfficeMap.ts +4 -4
  527. package/mobile/src/components/ProductGallery/ProductGallery.tsx +2 -2
  528. package/mobile/src/components/StepsBlock/StepsBlock.tsx +3 -3
  529. package/mobile/src/components/Tabs/LinkTab.tsx +2 -10
  530. package/mobile/src/components/Tabs/Tabs.tsx +11 -19
  531. package/mobile/src/components/TariffsTable/TariffsTableRow.tsx +1 -1
  532. package/mobile/src/hooks/useLink.ts +13 -2
  533. package/mobile/src/services/BlockRouter/BlockIntersection.ts +3 -0
  534. package/mobile/src/services/BlockRouter/BlockRouter.ts +51 -0
  535. package/mobile/src/services/BlockRouter/findActiveBlock.ts +20 -0
  536. package/mobile/src/services/BlockRouter/useBlockIntersectionObserver.ts +37 -0
  537. package/mobile/src/services/BlockRouter/useBlockRouter.ts +5 -0
  538. package/mobile/src/services/BlockRouter/useBlockRouterProvider.ts +49 -0
  539. package/mobile/src/ui-kit/BenefitItem/BenefitItem.tsx +1 -1
  540. package/mobile/src/ui-kit/BlockWrapper.tsx +9 -32
  541. package/mobile/src/ui-kit/HeaderItem/HeaderItem.tsx +1 -1
  542. package/mobile/src/ui-kit/InnerTable/InnerTableButton.tsx +5 -2
  543. package/mobile/src/ui-kit/InnerTable/InnerTableProps.ts +0 -6
  544. package/mobile/src/ui-kit/Select/Select.tsx +2 -2
  545. package/mobile/src/ui-kit/YandexMap/useYandexMaps.ts +3 -1
  546. package/mobile/src/utils/debounce.ts +24 -0
  547. package/package.json +1 -1
  548. package/src/EventBus/EventBus.ts +18 -14
  549. package/src/EventBus/EventMap.ts +1 -4
  550. package/src/components/Accordion/Accordion.tsx +1 -1
  551. package/src/components/AccordionItem/AccordionItem.mobile.tsx +1 -1
  552. package/src/components/BenefitsBlock/BenefitsBlock.tsx +1 -1
  553. package/src/components/Bonus/Bonus.tsx +2 -4
  554. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +1 -1
  555. package/src/components/BusinessBlock/BusinessBlock.tsx +1 -1
  556. package/src/components/Calculator/DepositCalculatorForm.tsx +0 -1
  557. package/src/components/Calculator/renderProposal.tsx +2 -2
  558. package/src/components/CardTransfer/CardTransfer.tsx +1 -1
  559. package/src/components/CarouselProgramsCard/CarouselProgramsCard.fixture.tsx +0 -1
  560. package/src/components/Catalog/Catalog.example.json +1 -1
  561. package/src/components/Catalog/Catalog.tsx +1 -1
  562. package/src/components/ComparisonTable/ComparisonTable.tsx +2 -2
  563. package/src/components/ContactsBlock/ContactsBlock.tsx +1 -1
  564. package/src/components/ContentPage/ContentPage.tsx +3 -0
  565. package/src/components/ContentPage/useContentPageData.ts +4 -8
  566. package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +1 -1
  567. package/src/components/Footer/Footer.tsx +2 -2
  568. package/src/components/Footer/FooterDataProps.ts +8 -3
  569. package/src/components/Footer/MediaButton.tsx +1 -1
  570. package/src/components/Gallery/Gallery.mobile.tsx +1 -1
  571. package/src/components/Gallery/GalleryCardInner.tsx +1 -1
  572. package/src/components/GracePeriod/GracePeriod.tsx +2 -2
  573. package/src/components/Header/Header.mobile.tsx +1 -1
  574. package/src/components/Header/Header.tsx +1 -1
  575. package/src/components/Header/HeaderSecondaryMenu.tsx +1 -1
  576. package/src/components/Header/HeaderSecondaryMenuButton.tsx +1 -1
  577. package/src/components/Header/HeaderTop.tsx +1 -1
  578. package/src/components/Headline/Headline.tsx +1 -1
  579. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +1 -1
  580. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +3 -6
  581. package/src/components/LinkDocs/LinkDocs.tsx +1 -4
  582. package/src/components/LinkList/LinkList.tsx +1 -1
  583. package/src/components/MobileAppTile/MobileAppTile.mobile.tsx +1 -1
  584. package/src/components/MobileAppTile/MobileAppTile.tsx +1 -1
  585. package/src/components/OfficeMap/useOfficeMap.ts +4 -4
  586. package/src/components/ProductBlock/ProductBlock.tsx +1 -1
  587. package/src/components/ProductGallery/ProductGallery.tsx +2 -2
  588. package/src/components/Recommendation/Recommendation.fixture.tsx +38 -1
  589. package/src/components/StepsBlock/StepsBlock.mobile.tsx +3 -3
  590. package/src/components/StepsBlock/StepsBlock.tsx +2 -4
  591. package/src/components/Tabs/LinkTab.tsx +2 -10
  592. package/src/components/Tabs/Tabs.tsx +11 -19
  593. package/src/components/TariffsTable/TariffsTable.tsx +1 -1
  594. package/src/components/TariffsTable/TariffsTableRow.tsx +1 -1
  595. package/src/components/TextBlock/TextBlock.fixture.mobile.tsx +3 -3
  596. package/src/hooks/useLink.ts +13 -2
  597. package/src/services/BlockRouter/BlockIntersection.ts +3 -0
  598. package/src/services/BlockRouter/BlockRouter.ts +51 -0
  599. package/src/services/BlockRouter/findActiveBlock.ts +20 -0
  600. package/src/services/BlockRouter/useBlockIntersectionObserver.ts +37 -0
  601. package/src/services/BlockRouter/useBlockRouter.ts +5 -0
  602. package/src/services/BlockRouter/useBlockRouterProvider.ts +49 -0
  603. package/src/ui-kit/BenefitItem/BenefitItem.tsx +1 -1
  604. package/src/ui-kit/BlockWrapper.tsx +9 -32
  605. package/src/ui-kit/HeaderItem/HeaderItem.mobile.tsx +1 -1
  606. package/src/ui-kit/HeaderItem/HeaderItem.tsx +1 -1
  607. package/src/ui-kit/InnerTable/InnerTableButton.tsx +5 -2
  608. package/src/ui-kit/InnerTable/InnerTableProps.ts +0 -6
  609. package/src/ui-kit/Select/Select.tsx +2 -2
  610. package/src/ui-kit/YandexMap/useYandexMaps.ts +3 -1
  611. package/src/utils/debounce.ts +24 -0
  612. package/bundle/components/SafeDepositRental/YandexMap.d.ts +0 -5
  613. package/bundle/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  614. package/bundle/utils/changeHashOnObserve.d.ts +0 -9
  615. package/dist/components/SafeDepositRental/YandexMap.d.ts +0 -5
  616. package/dist/components/SafeDepositRental/YandexMap.js +0 -31
  617. package/dist/components/SafeDepositRental/YandexMap.js.map +0 -1
  618. package/dist/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  619. package/dist/components/SafeDepositRental/useYandexMaps.js +0 -12
  620. package/dist/components/SafeDepositRental/useYandexMaps.js.map +0 -1
  621. package/dist/utils/changeHashOnObserve.d.ts +0 -9
  622. package/dist/utils/changeHashOnObserve.js +0 -21
  623. package/dist/utils/changeHashOnObserve.js.map +0 -1
  624. package/lib/components/SafeDepositRental/YandexMap.d.ts +0 -5
  625. package/lib/components/SafeDepositRental/YandexMap.js +0 -29
  626. package/lib/components/SafeDepositRental/YandexMap.js.map +0 -1
  627. package/lib/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  628. package/lib/components/SafeDepositRental/useYandexMaps.js +0 -9
  629. package/lib/components/SafeDepositRental/useYandexMaps.js.map +0 -1
  630. package/lib/utils/changeHashOnObserve.d.ts +0 -9
  631. package/lib/utils/changeHashOnObserve.js +0 -18
  632. package/lib/utils/changeHashOnObserve.js.map +0 -1
  633. package/mobile/bundle/components/SafeDepositRental/YandexMap.d.ts +0 -5
  634. package/mobile/bundle/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  635. package/mobile/bundle/utils/changeHashOnObserve.d.ts +0 -9
  636. package/mobile/dist/components/SafeDepositRental/YandexMap.d.ts +0 -5
  637. package/mobile/dist/components/SafeDepositRental/YandexMap.js +0 -31
  638. package/mobile/dist/components/SafeDepositRental/YandexMap.js.map +0 -1
  639. package/mobile/dist/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  640. package/mobile/dist/components/SafeDepositRental/useYandexMaps.js +0 -12
  641. package/mobile/dist/components/SafeDepositRental/useYandexMaps.js.map +0 -1
  642. package/mobile/dist/utils/changeHashOnObserve.d.ts +0 -9
  643. package/mobile/dist/utils/changeHashOnObserve.js +0 -21
  644. package/mobile/dist/utils/changeHashOnObserve.js.map +0 -1
  645. package/mobile/lib/components/SafeDepositRental/YandexMap.d.ts +0 -5
  646. package/mobile/lib/components/SafeDepositRental/YandexMap.js +0 -29
  647. package/mobile/lib/components/SafeDepositRental/YandexMap.js.map +0 -1
  648. package/mobile/lib/components/SafeDepositRental/useYandexMaps.d.ts +0 -2
  649. package/mobile/lib/components/SafeDepositRental/useYandexMaps.js +0 -9
  650. package/mobile/lib/components/SafeDepositRental/useYandexMaps.js.map +0 -1
  651. package/mobile/lib/utils/changeHashOnObserve.d.ts +0 -9
  652. package/mobile/lib/utils/changeHashOnObserve.js +0 -18
  653. package/mobile/lib/utils/changeHashOnObserve.js.map +0 -1
  654. package/mobile/src/components/SafeDepositRental/YandexMap.tsx +0 -43
  655. package/mobile/src/components/SafeDepositRental/useYandexMaps.ts +0 -13
  656. package/mobile/src/utils/changeHashOnObserve.ts +0 -30
  657. package/src/components/SafeDepositRental/YandexMap.tsx +0 -43
  658. package/src/components/SafeDepositRental/useYandexMaps.ts +0 -13
  659. package/src/utils/changeHashOnObserve.ts +0 -30
@@ -289,8 +289,7 @@
289
289
  subscribers = {};
290
290
  subjectsStateMap = {};
291
291
  subscribe(type, listener) {
292
- this.subscribers[type] ||= [];
293
- this.subscribers[type]?.push(listener);
292
+ this.subscribers[type] = (this.subscribers[type] || []).concat(listener);
294
293
  const latestEvent = this.subjectsStateMap[type];
295
294
  if (latestEvent) {
296
295
  listener(latestEvent);
@@ -303,7 +302,10 @@
303
302
  this.subscribers[type] = this.subscribers[type]?.filter((s) => s !== listener);
304
303
  }
305
304
  fire(type, event) {
306
- this.subjectsStateMap[type] = event;
305
+ const isSubjectDeclared = type in this.subjectsStateMap;
306
+ if (isSubjectDeclared) {
307
+ this.subjectsStateMap[type] = event;
308
+ }
307
309
  this.subscribers[type]?.forEach((s) => s(event));
308
310
  }
309
311
  subject(type, event) {
@@ -335,51 +337,71 @@
335
337
  .concat(1);
336
338
  }
337
339
 
338
- const changeHashOnObserve = ({ anchor, anchorClickRef }) => (entries) => {
339
- if (!entries?.length) {
340
- return;
340
+ const normalizeAnchor = (rawAnchor) => rawAnchor?.replace('#', '');
341
+ class BlockRouter {
342
+ static inst = new BlockRouter();
343
+ eventBus = new EventBus();
344
+ constructor() {
345
+ const anchor = normalizeAnchor(globalThis.location?.hash);
346
+ if (anchor) {
347
+ this.eventBus.subject('goto', { anchor });
348
+ }
341
349
  }
342
- const [entry] = entries;
343
- if (!entry.isIntersecting || entry.boundingClientRect.top > 150) {
344
- return;
350
+ goto(rawAnchor) {
351
+ const anchor = normalizeAnchor(rawAnchor);
352
+ if (anchor) {
353
+ this.push(anchor);
354
+ this.eventBus.fire('goto', { anchor });
355
+ }
345
356
  }
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 });
357
+ push(rawAnchor) {
358
+ globalThis.history?.pushState(null, '', `#${normalizeAnchor(rawAnchor)}`);
349
359
  }
350
- else if (!anchorClickRef?.current?.isScrolling) {
351
- EventBus.inst.fire('tab', { type: 'link', label: anchor });
360
+ replace(rawAnchor) {
361
+ globalThis.history?.replaceState(null, '', `#${normalizeAnchor(rawAnchor)}`);
352
362
  }
353
- };
363
+ reset() {
364
+ globalThis.history?.replaceState(null, '', '#');
365
+ }
366
+ }
367
+
368
+ function useBlockIntersectionObserver(block, router = BlockRouter.inst) {
369
+ const observerCallback = useCallback((entries) => {
370
+ if (!block || !entries?.length) {
371
+ return;
372
+ }
373
+ const intersection = entries[entries.length - 1];
374
+ router.eventBus.fire('intersection', { block, intersection });
375
+ }, [block, router]);
376
+ const ref = useIntersectionObserver(observerCallback, { sensitivity: 1 });
377
+ useEffect(() => {
378
+ if (!ref.current) {
379
+ return undefined;
380
+ }
381
+ return router.eventBus.subscribe('goto', ({ anchor }) => {
382
+ if (ref.current && block?.anchor === anchor) {
383
+ ref.current.scrollIntoView({ behavior: 'smooth', block: 'start' });
384
+ }
385
+ });
386
+ }, [block, router]);
387
+ return ref;
388
+ }
354
389
 
355
390
  const BlockWrapper = JSX(({ className, block, tag = 'section', role, children }) => {
356
391
  const Tag = tag;
357
- const { anchor, labels } = block || {};
392
+ const ref = useBlockIntersectionObserver(block);
358
393
  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
394
  useEffect(() => EventBus.inst.subscribe('tab', (event) => {
367
395
  if (event.type === 'group') {
368
- const hasSettings = labels?.length || block?.anchor;
369
- setVisible(event.label ? !hasSettings || Boolean(labels?.includes(event.label)) : true);
396
+ const hasSettings = block?.labels?.length || block?.anchor;
397
+ setVisible(event.label ? !hasSettings || Boolean(block?.labels?.includes(event.label)) : true);
370
398
  }
371
399
  else {
372
- changeHash(event.label);
373
400
  setVisible(true);
374
401
  }
375
- }), []);
376
- return isVisible ? (jsx(Tag, { className: className, role: role, ...(anchor ? { id: anchor, ref } : {}), children: children })) : null;
402
+ }), [block]);
403
+ return isVisible ? (jsx(Tag, { className: className, role: role, ...(block?.anchor ? { id: block.anchor, ref } : {}), children: children })) : null;
377
404
  });
378
- function changeHash(label) {
379
- if (label) {
380
- globalThis.document.location.hash = label;
381
- }
382
- }
383
405
 
384
406
  const HEADING_STYLE_MAP = {
385
407
  h0: 'text-h0',
@@ -403,7 +425,7 @@
403
425
 
404
426
  const AccordionItemsList = JSX(({ children }) => (jsx("ul", { className: "list-none m-0 p-0", children: children })));
405
427
 
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) })] })));
428
+ 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
429
  Accordion.childrenTypes = ['AccordionItem'];
408
430
 
409
431
  const Foldable = JSX(({ isFoldButtonOnTop = false, unfoldedByDefault = false, renderFoldableSection, renderFoldButton, }) => {
@@ -533,7 +555,7 @@
533
555
  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
556
  const renderStep = (version) => (benefit, i) => {
535
557
  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)));
558
+ 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
559
  };
538
560
  const renderDescription$3 = (description, version) => {
539
561
  const benefitType = description?.benefitType || null;
@@ -547,6 +569,10 @@
547
569
  return description?.items && description.items.length > 0 ? (jsx("ul", { className: listStyleType, children: description.items.map((_, i) => (jsx("li", { children: _ }, `benefitListItem-${i}`))) })) : null;
548
570
  };
549
571
 
572
+ function useBlockRouter() {
573
+ return BlockRouter.inst;
574
+ }
575
+
550
576
  const isURL = (href) => href?.includes('//');
551
577
  const withoutQuery = (href) => (href || '').replace(/\/?\?.*/, '');
552
578
  const getOrigin = (href) => {
@@ -615,6 +641,7 @@
615
641
 
616
642
  function useLink() {
617
643
  const router = useRouter();
644
+ const blockRouter = useBlockRouter();
618
645
  return (props) => {
619
646
  const href = adjustHref(props.href, router);
620
647
  return {
@@ -625,8 +652,15 @@
625
652
  props.onClick && props.onClick(ev);
626
653
  const isLocalHref = href && !isURL(href);
627
654
  const isLocalTarget = !props.target || props.target === '_self';
628
- if (isLocalHref && isLocalTarget && !isHash(href)) {
629
- ev?.preventDefault();
655
+ if (!isLocalHref || !isLocalTarget) {
656
+ // Default handle
657
+ return;
658
+ }
659
+ ev?.preventDefault();
660
+ if (isHash(href)) {
661
+ blockRouter.goto(href);
662
+ }
663
+ else {
630
664
  router.push(href);
631
665
  }
632
666
  }, props),
@@ -783,12 +817,12 @@
783
817
  const Headline = JSX(({ className = '', bgColorHeadline = 'transparent', align = 'center', title, description, headlineVersion = 'XL', as, ...rest }) => {
784
818
  const STYLE_MAPS = HEADLINE_BLOCK_STYLE_MAPS[bgColorHeadline];
785
819
  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] }));
820
+ 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
821
  });
788
822
 
789
823
  const Bonus = JSX((props) => {
790
824
  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
825
+ 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
826
  ? bonusItems.map((_, i) => {
793
827
  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
828
  ? renderBonusItemContent(_.bonusItemContent)
@@ -800,9 +834,9 @@
800
834
  ? renderBonusCount(bonusItemContent)
801
835
  : renderBonusImage(bonusItemContent) }));
802
836
  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;
837
+ const renderBonusImage = (_) => _.image ? jsx(ImgInner, { className: `w-12 h-12 min-w-12 p-3 rounded-full`, image: _.image }) : null;
804
838
 
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] })));
839
+ 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
840
  const renderBonusBenefit = ({ icon, label, description }, i) => {
807
841
  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
842
  };
@@ -828,7 +862,7 @@
828
862
  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
863
  };
830
864
 
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 })] })));
865
+ 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
866
 
833
867
  const useCarouselControls = (props) => {
834
868
  const { itemCount, visibleItemCount, isCyclic } = props;
@@ -1242,7 +1276,6 @@
1242
1276
  isMonthlyInterestPayment,
1243
1277
  };
1244
1278
  const handleMonthsValue = useCallback((_) => setMonthsValue(_), []);
1245
- useState(false);
1246
1279
  const calculatorParams = useDepositCalculatorParams(userInputParams, sourceBookDir);
1247
1280
  const { income, finalSum, rate } = calculatorParams;
1248
1281
  return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput('Сумма вклада, ₽', {
@@ -1381,7 +1414,7 @@
1381
1414
  ? getDisabledButtonClasses({ version: button?.version })
1382
1415
  : getRegularButtonClasses({ className: 'text-white', version: button?.version });
1383
1416
  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] })] }));
1417
+ 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
1418
  });
1386
1419
 
1387
1420
  const mapChildren = (mapper) => (children) => {
@@ -1578,7 +1611,7 @@
1578
1611
  itemCount: cards?.length,
1579
1612
  visibleItemCount: CARD_VIEW_COUNT$1,
1580
1613
  });
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({
1614
+ 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
1615
  ...controls,
1583
1616
  btnClass: ['left-8', 'right-8'],
1584
1617
  className: 'top-1/2 z-10 mt-6',
@@ -1648,13 +1681,13 @@
1648
1681
  const ComparisonTable = JSX(({ className = '', title, rowHeaders, columns, visibleRowLength = 0, isColoredFirstColumn = false, ...rest }) => {
1649
1682
  const [isShowAllRow, setIsShowAllRow] = useState(!visibleRowLength);
1650
1683
  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
1684
+ 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
1685
  ? renderShowMoreToggleButton({ isShowAllRow, onClick: handleToggle })
1653
1686
  : null] }));
1654
1687
  });
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 ? 'Показать все параметры' : 'Скрыть' }) })] }) }));
1688
+ 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
1689
 
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] })));
1690
+ 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
1691
  const renderBlocks = (info, version) => (jsx("div", { className: "flex grow basis-0", children: info.map((column, index) => renderBlocksColumn({ column, index, version })) }));
1659
1692
  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
1693
 
@@ -1759,7 +1792,7 @@
1759
1792
  setSelectedItem(value || { key: '', text: '' });
1760
1793
  }, [value]);
1761
1794
  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] })] }));
1795
+ ${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
1796
  });
1764
1797
  const renderOptionsStyle = (isOpen) => (isOpen ? '' : 'overflow-hidden');
1765
1798
  const renderOption = (choiceOption, isOpen, isSelected) => (option, i) => {
@@ -1882,7 +1915,7 @@
1882
1915
  currencyRatesBuy.unshift({ currency: { currency: Currency.RUB } });
1883
1916
  const currencyRatesSell = currencyRates.filter((_) => _.saleExchangeRate);
1884
1917
  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] }) }) }));
1918
+ 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
1919
  });
1887
1920
  const getCurrencyRates = (currencies) => {
1888
1921
  return currencies?.filter((_) => _?.currency?.id === 1 || _?.currency?.id === 2) || [];
@@ -2028,7 +2061,7 @@
2028
2061
  }
2029
2062
  const classes = version === 'secondary'
2030
2063
  ? 'bg-white hover:bg-secondary-hover'
2031
- : 'border-solid border-[1px] border-main-divider hover:border-transparent hover:bg-primary-main';
2064
+ : 'border-solid border border-main-divider hover:border-transparent hover:bg-primary-main';
2032
2065
  const isPrimary = version === 'primary';
2033
2066
  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
2067
  });
@@ -2046,8 +2079,8 @@
2046
2079
  const LEFT_COL_WIDTH_FULL_HD = 'w-[204px]';
2047
2080
  const Footer = JSX(({ className, ...rest }) => {
2048
2081
  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 })] }));
2082
+ const { documents, relatedEnterprises, contacts, socialMedia, mobileApps, topItems, logo } = useSWRResource(projectSettings.FOOTER || 'footer', fallback);
2083
+ 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
2084
  });
2052
2085
 
2053
2086
  const galleryLengthForScrollMap = {
@@ -2106,7 +2139,7 @@
2106
2139
  buttonClassName: `mt-6 ${isFullWidth ? '' : 'self-center'}`,
2107
2140
  })
2108
2141
  : 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] }));
2142
+ 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
2143
  const renderCardTitle = (headlineSmallVersion, title) => title ? jsx("div", { className: HEADLINE_SMALL_VERSION[headlineSmallVersion], children: title }) : null;
2111
2144
  const renderDescription$2 = (description, title) => description ? jsx("div", { className: `text-l ${title ? 'mt-2' : ''}`, children: description }) : null;
2112
2145
  const renderAdditionalDescription$1 = (additionalDescription) => additionalDescription ? (jsx("div", { className: "text-m-light text-secondary-text mt-auto", children: additionalDescription })) : null;
@@ -2133,7 +2166,7 @@
2133
2166
 
2134
2167
  const Gallery = JSX((props) => jsx(GalleryInner, { ...props, version: "normal" }));
2135
2168
 
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] })));
2169
+ 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
2170
  const renderCalendar = (calendar) => {
2138
2171
  const colCount = calendar.reduce((accumulator, currentValue) => currentValue?.month?.length ? accumulator + currentValue.month.length : accumulator, 0) || 1;
2139
2172
  const colSize = 100 / colCount;
@@ -2147,7 +2180,7 @@
2147
2180
  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
2181
  };
2149
2182
  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);
2183
+ 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
2184
 
2152
2185
  const checkIsHrefSameOrigin = (href, router) => getOrigin(href) === getOrigin(router.href);
2153
2186
 
@@ -2199,7 +2232,7 @@
2199
2232
  return [city, getCity];
2200
2233
  }
2201
2234
 
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 })));
2235
+ 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
2236
 
2204
2237
  const COLORS_MAP = {
2205
2238
  'bg-white': 'text-primary-text hover:text-primary-main',
@@ -2215,7 +2248,7 @@
2215
2248
  };
2216
2249
  const HeaderSecondaryMenu = JSX(({ className, officesLink, defaultLocation = 'Москва', bgColor = 'bg-white' }) => {
2217
2250
  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 }) })] }));
2251
+ 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
2252
  });
2220
2253
 
2221
2254
  const findActiveSubItem = (router) => (items = []) => {
@@ -2240,7 +2273,7 @@
2240
2273
  const renderDot = (bgColor, i) => (jsx("div", { className: `w-[3px] h-[3px] rounded mr-1 ${DOT_BG_COLORS_MAP[bgColor]}` }, String(i)));
2241
2274
 
2242
2275
  const TEXT_CLASSES$1 = 'font-sans text-l-light';
2243
- const BORDER_CLASSES = 'absolute left-0 -bottom-3 w-full h-[2px]';
2276
+ const BORDER_CLASSES = 'absolute left-0 -bottom-3 w-full h-0.5';
2244
2277
  const HeaderItem = JSX(({ className = '', active, bgColor = 'bg-white', dataItemName, children, ...rest }) => {
2245
2278
  const link = useLink();
2246
2279
  const { href, target, text, onClick } = link(rest);
@@ -2299,7 +2332,7 @@
2299
2332
  const { topItems, logo, defaultLocation, officesLink } = useSWRResource(projectSettings.SITEMAP || 'sitemap', rest.options?.page?.fallback);
2300
2333
  const activeTopItem = showSubMenu ? getActiveItem(topItems, router) : null;
2301
2334
  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] }) }));
2335
+ 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
2336
  });
2304
2337
  const getActiveItem = (topItems, router) => {
2305
2338
  const [firstPortal] = topItems || [];
@@ -2332,14 +2365,14 @@
2332
2365
  })
2333
2366
  : null, renderArrows({
2334
2367
  ...controls,
2335
- btnClass: ['left-[50px]', 'right-[50px]'],
2368
+ btnClass: ['left-12', 'right-12'],
2336
2369
  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 })] }));
2370
+ }), 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
2371
  });
2339
2372
  function renderGallery({ activeIndex, cards, selectedCardIndex, onClick }) {
2340
2373
  const tabsShiftWidth = activeIndex * 460;
2341
2374
  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({
2375
+ 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
2376
  slide,
2344
2377
  i,
2345
2378
  isActive: Boolean(i === selectedCardIndex),
@@ -2362,7 +2395,7 @@
2362
2395
  const InsuranceAmountBlock = JSX(({ className = '', title, insuranceTabs = [], button, ...rest }) => {
2363
2396
  const [activeSlideIndex, setActiveSlideIndex] = useState(0);
2364
2397
  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({
2398
+ 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
2399
  title: item?.title,
2367
2400
  i,
2368
2401
  isActive: Boolean(i === activeSlideIndex),
@@ -2457,7 +2490,7 @@
2457
2490
  double: 'flex gap-x-5 gap-y-[26px] flex-wrap',
2458
2491
  single: 'flex gap-3.5 flex-col',
2459
2492
  };
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 })] })));
2493
+ 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
2494
 
2462
2495
  const MiniGallery = JSX((props) => (jsx(GalleryInner, { ...props, version: "mini" })));
2463
2496
 
@@ -2484,7 +2517,7 @@
2484
2517
  const textColorClass = version === 'primary' ? 'text-primary-text' : '';
2485
2518
  const containerStyle = version === 'secondary' ? 'p-3.5 min-w-[120px]' : 'min-w-[92px]';
2486
2519
  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]
2520
+ return (jsxs(BlockWrapper, { className: `flex justify-between font-sans p-12 box-border relative min-h-80
2488
2521
  ${getTileMinHeight(className)}
2489
2522
  ${VersionStyleMap[version]}
2490
2523
  ${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 +2662,7 @@
2629
2662
 
2630
2663
  const YMAPS_NAMESPACE = 'ymaps';
2631
2664
  const useYandexMaps = () => {
2632
- const url = `https://api-maps.yandex.ru/2.1/?apikey=${projectSettings.YANDEX_MAP_API_KEY}&lang=ru_RU`;
2665
+ const url = `https://api-maps.yandex.ru/2.1/?apikey=${projectSettings.YANDEX_MAP_API_KEY || ''}&lang=ru_RU`;
2633
2666
  return useExternalNS(YMAPS_NAMESPACE, url);
2634
2667
  };
2635
2668
 
@@ -2853,16 +2886,15 @@
2853
2886
  // TODO: Список регионов можно получить через api/v1/regions
2854
2887
  function useOfficeMap(regionCode) {
2855
2888
  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);
2889
+ console.warn('Hook useOfficeMap RETURNs MOCK object for testing', data);
2858
2890
  return OFFICE_MAP;
2859
2891
  }
2860
- const fetchOfficeMap = (url) => {
2892
+ function fetchOfficeMap(url) {
2861
2893
  if (!url) {
2862
2894
  return {};
2863
2895
  }
2864
2896
  return fetchJSON(url, { method: 'GET' });
2865
- };
2897
+ }
2866
2898
 
2867
2899
  const OfficeMap = JSX(({ className = '' }) => {
2868
2900
  // TODO: useOfficeMap endpoint had use /api/v1/branches. This endpoint now is`t correct/
@@ -2966,7 +2998,7 @@
2966
2998
  else if (benefitsVersion === 'normal') {
2967
2999
  bgColorStyle = 'bg-secondary-light text-primary-main';
2968
3000
  }
2969
- return `w-[50px] h-[50px] min-w-[50px] rounded-full p-2.5 box-border flex items-center justify-center ${bgColorStyle}`;
3001
+ return `w-12 h-12 min-w-12 rounded-full p-2.5 box-border flex items-center justify-center ${bgColorStyle}`;
2970
3002
  }
2971
3003
 
2972
3004
  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 +3081,7 @@
3049
3081
  const ProductBlock = JSX((props) => {
3050
3082
  const { className = '', breadcrumbs, backwardButton, version = 'primary', ...rest } = props;
3051
3083
  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
3084
+ 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
3085
  ? renderBackwardButton(backwardButton, buttonVersion, 'mb-10 -mt-2.5')
3054
3086
  : 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
3087
  });
@@ -3068,7 +3100,7 @@
3068
3100
  const galleryBlocks = slides.map((s) => s.productBlock);
3069
3101
  const [activeSlideIndex, setActiveSlideIndex] = useState(0);
3070
3102
  const handleActiveSlideIndex = useCallback((_) => setActiveSlideIndex(_), []);
3071
- return (jsxs(BlockWrapper, { className: `box-border pt-[50px] overflow-hidden relative font-sans w-100 mb-6 ${className}
3103
+ return (jsxs(BlockWrapper, { className: `box-border pt-12 overflow-hidden relative font-sans w-100 mb-6 ${className}
3072
3104
  ${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
3105
  slide,
3074
3106
  i,
@@ -3080,7 +3112,7 @@
3080
3112
  function renderProductBlock(block, i) {
3081
3113
  const { version } = block;
3082
3114
  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)));
3115
+ 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
3116
  }
3085
3117
  function renderNavButton({ slide, i, isActive, onClick, version }) {
3086
3118
  const btnClassName = isActive
@@ -3369,13 +3401,13 @@
3369
3401
  const titleMargin = title ? 'mt-9' : '';
3370
3402
  const paddingX = getPaddingX(steps.length);
3371
3403
  return (jsxs(BlockWrapper, { className: [
3372
- 'box-border py-[50px] font-sans',
3404
+ 'box-border py-12 font-sans',
3373
3405
  shortGaps ? 'px-20' : 'px-[70px]',
3374
3406
  'flex flex-col items-center overflow-hidden',
3375
3407
  styleMap.background,
3376
3408
  styleMap.title,
3377
3409
  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] }));
3410
+ ].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
3411
  });
3380
3412
  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
3413
  ${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 +3424,10 @@
3392
3424
  const INACTIVE_TEXT_CLASSES = 'text-secondary-text group-hover:text-primary-main';
3393
3425
 
3394
3426
  const LinkTab = JSX((props) => {
3395
- const { tab, currentTab, onClick } = props;
3427
+ const { tab, currentTab } = props;
3396
3428
  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
3429
  const link = useLink();
3402
- const adjustedProps = link({ ...tab, onClick: handleClick });
3430
+ const adjustedProps = link(tab);
3403
3431
  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
3432
  });
3405
3433
 
@@ -3439,26 +3467,20 @@
3439
3467
  const { className = '', tabs, showCounter, isSticky, ...rest } = props;
3440
3468
  const [currentTab, setCurrentTab] = useState(tabs ? tabs[0] : undefined);
3441
3469
  useEffect(() => EventBus.inst.subscribe('tab', (event) => {
3442
- if (!tabs) {
3443
- return;
3444
- }
3445
- const tab = tabs.find(checkTab(event));
3470
+ const tab = tabs?.find(checkTab(event));
3446
3471
  if (event.type === 'link' && tab) {
3447
3472
  setCurrentTab(tab);
3448
3473
  }
3449
3474
  }), [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) => {
3475
+ useEffect(() => currentTab?.type === 'group'
3476
+ ? EventBus.inst.subject('tab', { label: currentTab.ref })
3477
+ : undefined, [currentTab]);
3478
+ const handleClick = useCallback((selectedTab) => {
3457
3479
  if (selectedTab?.type === 'group') {
3458
3480
  EventBus.inst.fire('tab', { type: selectedTab.type, label: selectedTab.ref });
3459
3481
  }
3460
3482
  setCurrentTab(selectedTab);
3461
- };
3483
+ }, []);
3462
3484
  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
3485
  });
3464
3486
  const checkTab = (event) => (_) => _.type === 'link' && _.href === `#${event.label}`;
@@ -3612,7 +3634,7 @@
3612
3634
  const [openTableInnerIdx, setOpenTableInnerIdx] = useState(undefined);
3613
3635
  const handleOpenTableInnerIdx = useCallback((_) => setOpenTableInnerIdx(_), []);
3614
3636
  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] }));
3637
+ 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
3638
  });
3617
3639
 
3618
3640
  const TariffsTable = JSX(({ className = '', title, description, rowHeaders, tariffsColumns: columns, hiddenRowsNum = 0, ...rest }) => {
@@ -3628,7 +3650,7 @@
3628
3650
  });
3629
3651
  const rows = (rowData || []).map((row, i) => (jsx(TariffsTableRow, { row: row, activeIndex: activeIndex, rowIdx: i, ...rest }, String(i))));
3630
3652
  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 }))] }));
3653
+ 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
3654
  });
3633
3655
  function renderTitle({ title, description }) {
3634
3656
  return title ? (jsx(Heading, { headingType: "h3", className: `text-center ${description ? 'mb-2.5' : 'mb-8'}`, title: title })) : null;
@@ -3804,6 +3826,63 @@
3804
3826
  CarouselInvestmentCard,
3805
3827
  };
3806
3828
 
3829
+ const debounce = (fn, delay = 600) => {
3830
+ let timerId;
3831
+ const debouncedCallback = (...args) => {
3832
+ debouncedCallback.dispose();
3833
+ timerId = setTimeout(() => {
3834
+ fn(...args);
3835
+ }, delay);
3836
+ };
3837
+ debouncedCallback.dispose = () => {
3838
+ if (timerId) {
3839
+ clearTimeout(timerId);
3840
+ }
3841
+ };
3842
+ return debouncedCallback;
3843
+ };
3844
+
3845
+ const SPECIAL_BLOCK_TYPES = ['Header', 'Footer'];
3846
+ const EPS = 0.01;
3847
+ const topLineDelta = ([, { target }]) => Math.abs(target.getBoundingClientRect().top);
3848
+ function findActiveBlock(intersections) {
3849
+ const visibleIntersections = intersections
3850
+ .filter(([block]) => !SPECIAL_BLOCK_TYPES.includes(block.type || ''))
3851
+ .filter(([, { intersectionRatio }]) => intersectionRatio > EPS);
3852
+ const [activeBlock] = visibleIntersections.length > 0 ? minBy(topLineDelta)(visibleIntersections) : [];
3853
+ return activeBlock;
3854
+ }
3855
+
3856
+ const isScrolledEnough = () => globalThis.scrollY > (globalThis.innerHeight * 3) / 4;
3857
+ function useBlockRouterProvider(router = BlockRouter.inst, scrollTarget = globalThis) {
3858
+ const intersectionsMapRef = useRef(new Map());
3859
+ useEffect(() => router.eventBus.subscribe('intersection', ({ block, intersection }) => {
3860
+ if (intersectionsMapRef.current) {
3861
+ intersectionsMapRef.current.set(block, intersection);
3862
+ }
3863
+ }), [router]);
3864
+ useEffect(() => {
3865
+ const handleScroll = debounce(() => {
3866
+ if (!isScrolledEnough()) {
3867
+ router.reset();
3868
+ return;
3869
+ }
3870
+ const activeBlock = findActiveBlock([...(intersectionsMapRef.current || [])]);
3871
+ if (activeBlock?.anchor) {
3872
+ router.replace(activeBlock.anchor);
3873
+ }
3874
+ else if (!activeBlock) {
3875
+ router.reset();
3876
+ }
3877
+ }, 100);
3878
+ scrollTarget.addEventListener('scroll', handleScroll);
3879
+ return () => {
3880
+ handleScroll.dispose();
3881
+ scrollTarget.removeEventListener('scroll', handleScroll);
3882
+ };
3883
+ }, [router, scrollTarget]);
3884
+ }
3885
+
3807
3886
  const api = LikeAPI();
3808
3887
  function useLikeService(pagePath) {
3809
3888
  const [likeCount, setLikeCount] = useState(0);
@@ -3855,6 +3934,7 @@
3855
3934
  blockDecorator,
3856
3935
  parent: data,
3857
3936
  };
3937
+ useBlockRouterProvider();
3858
3938
  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
3939
  ...options,
3860
3940
  slotName: 'header',
@@ -3871,7 +3951,7 @@
3871
3951
  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
3952
  }
3873
3953
 
3874
- const packageVersion = "0.6.37";
3954
+ const packageVersion = "0.6.39";
3875
3955
 
3876
3956
  exports.Blocks = Blocks;
3877
3957
  exports.ContentPage = ContentPage;