@redneckz/wildless-cms-uni-blocks 0.4.2 → 0.4.4

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 (1123) hide show
  1. package/bin/migrate.js +40 -0
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +336 -260
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/cosmos-static/icons/CardTickIcon.svg +1 -1
  6. package/cosmos-static/icons/DocDownload.svg +1 -0
  7. package/dist/EventBus/EventMap.d.ts +2 -0
  8. package/dist/components/Accordion/AccordionItem.js +1 -1
  9. package/dist/components/Accordion/AccordionItem.js.map +1 -1
  10. package/dist/components/Accordion/AccordionItem.mobile.js +1 -1
  11. package/dist/components/Accordion/AccordionItem.mobile.js.map +1 -1
  12. package/dist/components/BaseTile/BaseTile.js +1 -1
  13. package/dist/components/BaseTile/BaseTile.js.map +1 -1
  14. package/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +2 -2
  15. package/dist/components/BlockContent.d.ts +2 -3
  16. package/dist/components/Blocks.d.ts +1 -3
  17. package/dist/components/Blocks.js +0 -4
  18. package/dist/components/Blocks.js.map +1 -1
  19. package/dist/components/Calculator/Calculator.js +1 -1
  20. package/dist/components/Calculator/Calculator.js.map +1 -1
  21. package/dist/components/Calculator/useCalculatorParams.js +2 -5
  22. package/dist/components/Calculator/useCalculatorParams.js.map +1 -1
  23. package/dist/components/Calculator/useCreditCalculatorParams.js +1 -2
  24. package/dist/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  25. package/dist/components/Catalog/CatalogCard.js +12 -6
  26. package/dist/components/Catalog/CatalogCard.js.map +1 -1
  27. package/dist/components/ComparisonTable/ComparisonTableContent.d.ts +7 -1
  28. package/dist/components/ComparisonTable/ComparisonTableRows.d.ts +2 -2
  29. package/dist/components/ComparisonTable/ComparisonTableRows.js +1 -1
  30. package/dist/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  31. package/dist/components/ContentPage/normalizePage.js +1 -1
  32. package/dist/components/ContentPage/normalizePage.js.map +1 -1
  33. package/dist/components/ContentPage/normalizePage.mobile.js +1 -1
  34. package/dist/components/ContentPage/normalizePage.mobile.js.map +1 -1
  35. package/dist/components/Gallery/Gallery.mobile.js +2 -5
  36. package/dist/components/Gallery/Gallery.mobile.js.map +1 -1
  37. package/dist/components/Gallery/GalleryCardInner.d.ts +2 -2
  38. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  39. package/dist/components/Gallery/GalleryContainer.d.ts +2 -2
  40. package/dist/components/Gallery/GalleryContainer.js +3 -2
  41. package/dist/components/Gallery/GalleryContainer.js.map +1 -1
  42. package/dist/components/Gallery/GalleryContent.d.ts +4 -4
  43. package/dist/components/Gallery/GalleryProps.d.ts +1 -1
  44. package/dist/components/Gallery/constants.d.ts +0 -2
  45. package/dist/components/Gallery/constants.js +1 -5
  46. package/dist/components/Gallery/constants.js.map +1 -1
  47. package/dist/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  48. package/dist/components/Header/Header.js +3 -2
  49. package/dist/components/Header/Header.js.map +1 -1
  50. package/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  51. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  52. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  53. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  54. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +4 -3
  55. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  56. package/dist/components/MobileAppTile/MobileAppTile.js +4 -6
  57. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  58. package/dist/components/MobileAppTile/MobileAppTileContent.d.ts +1 -0
  59. package/dist/components/Navigation/Navigation.d.ts +1 -1
  60. package/dist/components/OtherProducts/OtherProductsContent.d.ts +1 -4
  61. package/dist/components/PictureText/PictureText.js +2 -5
  62. package/dist/components/PictureText/PictureText.js.map +1 -1
  63. package/dist/components/ProductBlock/ProductBlock.js +2 -5
  64. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  65. package/dist/components/ProductBlock/ProductBlock.mobile.js +2 -5
  66. package/dist/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  67. package/dist/components/ProductBlock/ProductBlockContent.d.ts +14 -2
  68. package/dist/components/ProductGallery/ProductGallery.js +4 -11
  69. package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  70. package/dist/components/ProductGallery/ProductGalleryBlock.js +2 -5
  71. package/dist/components/ProductGallery/ProductGalleryBlock.js.map +1 -1
  72. package/dist/components/ProductTile/ProductTile.js +14 -14
  73. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  74. package/dist/components/PromoTile/PromoTile.js +2 -5
  75. package/dist/components/PromoTile/PromoTile.js.map +1 -1
  76. package/dist/components/PromoTile/PromoTileContent.d.ts +2 -2
  77. package/dist/components/Recommendation/RecommendationContent.d.ts +4 -4
  78. package/dist/components/SafeDepositRental/SafeDepositRental.js +4 -0
  79. package/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  80. package/dist/components/SafeDepositRental/SafeDepositRentalForm.js +1 -1
  81. package/dist/components/StepsBlock/StepsBlock.mobile.js +1 -1
  82. package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  83. package/dist/components/Tabs/Tabs.d.ts +4 -3
  84. package/dist/components/Tabs/Tabs.js +11 -4
  85. package/dist/components/Tabs/Tabs.js.map +1 -1
  86. package/dist/components/Tabs/TabsContent.d.ts +14 -6
  87. package/dist/components/Tabs/renderGroupTab.d.ts +4 -0
  88. package/dist/components/Tabs/renderGroupTab.js +18 -0
  89. package/dist/components/Tabs/renderGroupTab.js.map +1 -0
  90. package/dist/components/Tabs/renderLinkTab.d.ts +8 -0
  91. package/dist/components/Tabs/renderLinkTab.js +7 -0
  92. package/dist/components/Tabs/renderLinkTab.js.map +1 -0
  93. package/dist/components/Tabs/renderTab.d.ts +5 -5
  94. package/dist/components/Tabs/renderTab.js +25 -14
  95. package/dist/components/Tabs/renderTab.js.map +1 -1
  96. package/dist/components/Tabs/tabItemClasses.d.ts +6 -0
  97. package/dist/components/Tabs/tabItemClasses.js +9 -0
  98. package/dist/components/Tabs/tabItemClasses.js.map +1 -0
  99. package/dist/components/TariffsTable/EmbeddableCellData.d.ts +14 -0
  100. package/dist/components/TariffsTable/EmbeddableCellData.js +35 -0
  101. package/dist/components/TariffsTable/EmbeddableCellData.js.map +1 -0
  102. package/dist/components/TariffsTable/EmbeddableCellData.mobile.d.ts +15 -0
  103. package/dist/components/TariffsTable/EmbeddableCellData.mobile.js +21 -0
  104. package/dist/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -0
  105. package/dist/components/TariffsTable/TariffsTable.js +10 -11
  106. package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  107. package/dist/components/TariffsTable/TariffsTable.mobile.js +2 -2
  108. package/dist/components/TariffsTable/TariffsTable.mobile.js.map +1 -1
  109. package/dist/components/TariffsTable/TariffsTableCell.d.ts +6 -3
  110. package/dist/components/TariffsTable/TariffsTableCell.js +18 -10
  111. package/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  112. package/dist/components/TariffsTable/TariffsTableContent.d.ts +80 -26
  113. package/dist/components/TariffsTable/TariffsTableHorizontal.d.ts +5 -5
  114. package/dist/components/TariffsTable/TariffsTableHorizontal.js.map +1 -1
  115. package/dist/components/TariffsTable/TariffsTableRow.d.ts +5 -4
  116. package/dist/components/TariffsTable/TariffsTableRow.js +3 -3
  117. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  118. package/dist/components/TariffsTable/TariffsTableRowContainer.d.ts +7 -0
  119. package/dist/components/TariffsTable/TariffsTableRowContainer.js +15 -0
  120. package/dist/components/TariffsTable/TariffsTableRowContainer.js.map +1 -0
  121. package/dist/components/TariffsTable/TariffsTableTileCell.d.ts +7 -1
  122. package/dist/components/TariffsTable/TariffsTableTileCell.js +15 -9
  123. package/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  124. package/dist/components/TariffsTable/TariffsTableVertical.d.ts +5 -3
  125. package/dist/components/TariffsTable/TariffsTableVertical.js.map +1 -1
  126. package/dist/components/TariffsTable/dataFixture.d.ts +5 -0
  127. package/dist/components/TariffsTable/dataFixture.js +140 -0
  128. package/dist/components/TariffsTable/dataFixture.js.map +1 -0
  129. package/dist/components/Tile/Tile.js +6 -9
  130. package/dist/components/Tile/Tile.js.map +1 -1
  131. package/dist/components/Tile/TileContent.d.ts +4 -2
  132. package/dist/hooks/useExchangeRates.js +9 -18
  133. package/dist/hooks/useExchangeRates.js.map +1 -1
  134. package/dist/hooks/useTariffsInnerTableData.d.ts +1 -0
  135. package/dist/hooks/useTariffsInnerTableData.js +16 -0
  136. package/dist/hooks/useTariffsInnerTableData.js.map +1 -0
  137. package/dist/icons/IconName.d.ts +4 -2
  138. package/dist/icons/IconName.js +2 -0
  139. package/dist/icons/IconName.js.map +1 -1
  140. package/dist/model/BlockVersion.d.ts +1 -0
  141. package/dist/model/BlockVersion.js +5 -0
  142. package/dist/model/BlockVersion.js.map +1 -1
  143. package/dist/model/HeadlineType.d.ts +3 -3
  144. package/dist/model/LinkProps.d.ts +6 -4
  145. package/dist/services/sitemap/useSitemap.js +2 -8
  146. package/dist/services/sitemap/useSitemap.js.map +1 -1
  147. package/dist/ui-kit/BenefitItem/BenefitItem.js +2 -2
  148. package/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  149. package/dist/ui-kit/BlockWrapper.js +10 -1
  150. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  151. package/dist/ui-kit/BlocksList/renderBlocksList.d.ts +1 -2
  152. package/dist/ui-kit/Button/Button.d.ts +2 -4
  153. package/dist/ui-kit/Button/Button.js +1 -1
  154. package/dist/ui-kit/Button/Button.js.map +1 -1
  155. package/dist/ui-kit/Button/Button.mobile.d.ts +2 -4
  156. package/dist/ui-kit/Button/Button.mobile.js.map +1 -1
  157. package/dist/ui-kit/Button/ButtonInner.d.ts +1 -1
  158. package/dist/ui-kit/Description/Description.d.ts +3 -3
  159. package/dist/ui-kit/Description/Description.js.map +1 -1
  160. package/dist/ui-kit/Foldable/Foldable.js +1 -1
  161. package/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  162. package/dist/ui-kit/Heading/HeadingProps.d.ts +5 -2
  163. package/dist/ui-kit/InnerTable/InnerTable.d.ts +5 -0
  164. package/dist/ui-kit/InnerTable/InnerTable.js +17 -0
  165. package/dist/ui-kit/InnerTable/InnerTable.js.map +1 -0
  166. package/dist/ui-kit/InnerTable/InnerTableBody.d.ts +7 -0
  167. package/dist/ui-kit/InnerTable/InnerTableBody.js +18 -0
  168. package/dist/ui-kit/InnerTable/InnerTableBody.js.map +1 -0
  169. package/dist/ui-kit/InnerTable/InnerTableBodyItem.d.ts +6 -0
  170. package/dist/ui-kit/InnerTable/InnerTableBodyItem.js +33 -0
  171. package/dist/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -0
  172. package/dist/ui-kit/InnerTable/InnerTableButton.d.ts +6 -0
  173. package/dist/ui-kit/InnerTable/InnerTableButton.js +14 -0
  174. package/dist/ui-kit/InnerTable/InnerTableButton.js.map +1 -0
  175. package/dist/ui-kit/InnerTable/InnerTableHeader.d.ts +7 -0
  176. package/dist/ui-kit/InnerTable/InnerTableHeader.js +8 -0
  177. package/dist/ui-kit/InnerTable/InnerTableHeader.js.map +1 -0
  178. package/dist/ui-kit/InnerTable/InnerTableProps.d.ts +24 -0
  179. package/dist/{components/GroupBlock/BlocksTypeProps.js → ui-kit/InnerTable/InnerTableProps.js} +1 -1
  180. package/dist/ui-kit/InnerTable/InnerTableProps.js.map +1 -0
  181. package/dist/ui-kit/List/List.js +6 -2
  182. package/dist/ui-kit/List/List.js.map +1 -1
  183. package/dist/ui-kit/List/ListProps.d.ts +9 -1
  184. package/dist/ui-kit/Logo/Logo.js +6 -2
  185. package/dist/ui-kit/Logo/Logo.js.map +1 -1
  186. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  187. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  188. package/dist/ui-kit/TopItem/TopItem.d.ts +1 -1
  189. package/dist/ui-kit/TopItem/TopItem.js +2 -2
  190. package/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  191. package/dist/utils/assertUnreachable.d.ts +1 -0
  192. package/dist/utils/assertUnreachable.js +7 -0
  193. package/dist/utils/assertUnreachable.js.map +1 -0
  194. package/dist/utils/fetchJSON.d.ts +2 -0
  195. package/dist/utils/fetchJSON.js +24 -0
  196. package/dist/utils/fetchJSON.js.map +1 -0
  197. package/dist/utils/roundTo.d.ts +1 -1
  198. package/dist/utils/roundTo.js +1 -1
  199. package/dist/utils/roundTo.js.map +1 -1
  200. package/lib/EventBus/EventMap.d.ts +2 -0
  201. package/lib/common.css +1 -1
  202. package/lib/components/Accordion/AccordionItem.js +1 -1
  203. package/lib/components/Accordion/AccordionItem.js.map +1 -1
  204. package/lib/components/Accordion/AccordionItem.mobile.js +1 -1
  205. package/lib/components/Accordion/AccordionItem.mobile.js.map +1 -1
  206. package/lib/components/BaseTile/BaseTile.js +1 -1
  207. package/lib/components/BaseTile/BaseTile.js.map +1 -1
  208. package/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +2 -2
  209. package/lib/components/BlockContent.d.ts +2 -3
  210. package/lib/components/Blocks.d.ts +1 -3
  211. package/lib/components/Blocks.js +0 -4
  212. package/lib/components/Blocks.js.map +1 -1
  213. package/lib/components/Calculator/Calculator.js +1 -1
  214. package/lib/components/Calculator/Calculator.js.map +1 -1
  215. package/lib/components/Calculator/useCalculatorParams.js +2 -5
  216. package/lib/components/Calculator/useCalculatorParams.js.map +1 -1
  217. package/lib/components/Calculator/useCreditCalculatorParams.js +1 -2
  218. package/lib/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  219. package/lib/components/Catalog/CatalogCard.js +12 -6
  220. package/lib/components/Catalog/CatalogCard.js.map +1 -1
  221. package/lib/components/ComparisonTable/ComparisonTableContent.d.ts +7 -1
  222. package/lib/components/ComparisonTable/ComparisonTableRows.d.ts +2 -2
  223. package/lib/components/ComparisonTable/ComparisonTableRows.js +1 -1
  224. package/lib/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  225. package/lib/components/ContentPage/normalizePage.js +1 -1
  226. package/lib/components/ContentPage/normalizePage.js.map +1 -1
  227. package/lib/components/ContentPage/normalizePage.mobile.js +1 -1
  228. package/lib/components/ContentPage/normalizePage.mobile.js.map +1 -1
  229. package/lib/components/Gallery/Gallery.mobile.js +2 -5
  230. package/lib/components/Gallery/Gallery.mobile.js.map +1 -1
  231. package/lib/components/Gallery/GalleryCardInner.d.ts +2 -2
  232. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  233. package/lib/components/Gallery/GalleryContainer.d.ts +2 -2
  234. package/lib/components/Gallery/GalleryContainer.js +4 -3
  235. package/lib/components/Gallery/GalleryContainer.js.map +1 -1
  236. package/lib/components/Gallery/GalleryContent.d.ts +4 -4
  237. package/lib/components/Gallery/GalleryProps.d.ts +1 -1
  238. package/lib/components/Gallery/constants.d.ts +0 -2
  239. package/lib/components/Gallery/constants.js +0 -4
  240. package/lib/components/Gallery/constants.js.map +1 -1
  241. package/lib/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  242. package/lib/components/Header/Header.js +3 -2
  243. package/lib/components/Header/Header.js.map +1 -1
  244. package/lib/components/Header/HeaderSecondaryMenu.js +1 -1
  245. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  246. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  247. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  248. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +4 -3
  249. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  250. package/lib/components/MobileAppTile/MobileAppTile.js +4 -6
  251. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  252. package/lib/components/MobileAppTile/MobileAppTileContent.d.ts +1 -0
  253. package/lib/components/Navigation/Navigation.d.ts +1 -1
  254. package/lib/components/OtherProducts/OtherProductsContent.d.ts +1 -4
  255. package/lib/components/PictureText/PictureText.js +2 -5
  256. package/lib/components/PictureText/PictureText.js.map +1 -1
  257. package/lib/components/ProductBlock/ProductBlock.js +2 -5
  258. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  259. package/lib/components/ProductBlock/ProductBlock.mobile.js +2 -5
  260. package/lib/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  261. package/lib/components/ProductBlock/ProductBlockContent.d.ts +14 -2
  262. package/lib/components/ProductGallery/ProductGallery.js +4 -11
  263. package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  264. package/lib/components/ProductGallery/ProductGalleryBlock.js +2 -5
  265. package/lib/components/ProductGallery/ProductGalleryBlock.js.map +1 -1
  266. package/lib/components/ProductTile/ProductTile.fixture.d.ts +1 -0
  267. package/lib/components/ProductTile/ProductTile.js +14 -14
  268. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  269. package/lib/components/PromoTile/PromoTile.js +2 -5
  270. package/lib/components/PromoTile/PromoTile.js.map +1 -1
  271. package/lib/components/PromoTile/PromoTileContent.d.ts +2 -2
  272. package/lib/components/Recommendation/RecommendationContent.d.ts +4 -4
  273. package/lib/components/SafeDepositRental/SafeDepositRental.js +4 -0
  274. package/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  275. package/lib/components/SafeDepositRental/SafeDepositRentalForm.js +1 -1
  276. package/lib/components/StepsBlock/StepsBlock.mobile.js +1 -1
  277. package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  278. package/lib/components/Tabs/Tabs.d.ts +4 -3
  279. package/lib/components/Tabs/Tabs.js +11 -4
  280. package/lib/components/Tabs/Tabs.js.map +1 -1
  281. package/lib/components/Tabs/TabsContent.d.ts +14 -6
  282. package/lib/components/Tabs/renderGroupTab.d.ts +4 -0
  283. package/lib/components/Tabs/renderGroupTab.js +15 -0
  284. package/lib/components/Tabs/renderGroupTab.js.map +1 -0
  285. package/lib/components/Tabs/renderLinkTab.d.ts +8 -0
  286. package/lib/components/Tabs/renderLinkTab.js +4 -0
  287. package/lib/components/Tabs/renderLinkTab.js.map +1 -0
  288. package/lib/components/Tabs/renderTab.d.ts +5 -5
  289. package/lib/components/Tabs/renderTab.js +25 -14
  290. package/lib/components/Tabs/renderTab.js.map +1 -1
  291. package/lib/components/Tabs/tabItemClasses.d.ts +6 -0
  292. package/lib/components/Tabs/tabItemClasses.js +7 -0
  293. package/lib/components/Tabs/tabItemClasses.js.map +1 -0
  294. package/lib/components/TariffsTable/EmbeddableCellData.d.ts +14 -0
  295. package/lib/components/TariffsTable/EmbeddableCellData.js +33 -0
  296. package/lib/components/TariffsTable/EmbeddableCellData.js.map +1 -0
  297. package/lib/components/TariffsTable/EmbeddableCellData.mobile.d.ts +14 -0
  298. package/lib/components/TariffsTable/EmbeddableCellData.mobile.js +19 -0
  299. package/lib/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -0
  300. package/lib/components/TariffsTable/TariffsTable.fixture.d.ts +1 -0
  301. package/lib/components/TariffsTable/TariffsTable.js +10 -11
  302. package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  303. package/lib/components/TariffsTable/TariffsTable.mobile.js +2 -2
  304. package/lib/components/TariffsTable/TariffsTable.mobile.js.map +1 -1
  305. package/lib/components/TariffsTable/TariffsTableCell.d.ts +6 -3
  306. package/lib/components/TariffsTable/TariffsTableCell.js +18 -10
  307. package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  308. package/lib/components/TariffsTable/TariffsTableContent.d.ts +80 -26
  309. package/lib/components/TariffsTable/TariffsTableHorizontal.d.ts +5 -5
  310. package/lib/components/TariffsTable/TariffsTableHorizontal.js.map +1 -1
  311. package/lib/components/TariffsTable/TariffsTableRow.d.ts +5 -4
  312. package/lib/components/TariffsTable/TariffsTableRow.js +3 -3
  313. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  314. package/lib/components/TariffsTable/TariffsTableRowContainer.d.ts +7 -0
  315. package/lib/components/TariffsTable/TariffsTableRowContainer.js +13 -0
  316. package/lib/components/TariffsTable/TariffsTableRowContainer.js.map +1 -0
  317. package/lib/components/TariffsTable/TariffsTableTileCell.d.ts +7 -1
  318. package/lib/components/TariffsTable/TariffsTableTileCell.js +15 -9
  319. package/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  320. package/lib/components/TariffsTable/TariffsTableVertical.d.ts +5 -3
  321. package/lib/components/TariffsTable/TariffsTableVertical.js.map +1 -1
  322. package/lib/components/TariffsTable/dataFixture.d.ts +5 -0
  323. package/lib/components/TariffsTable/dataFixture.js +138 -0
  324. package/lib/components/TariffsTable/dataFixture.js.map +1 -0
  325. package/lib/components/TextBlock/TextBlock.fixture.d.ts +1 -1
  326. package/lib/components/TextBlock/TextBlock.fixture.mobile.d.ts +1 -1
  327. package/lib/components/Tile/Tile.js +6 -9
  328. package/lib/components/Tile/Tile.js.map +1 -1
  329. package/lib/components/Tile/TileContent.d.ts +4 -2
  330. package/lib/hooks/useExchangeRates.js +9 -18
  331. package/lib/hooks/useExchangeRates.js.map +1 -1
  332. package/lib/hooks/useTariffsInnerTableData.d.ts +1 -0
  333. package/lib/hooks/useTariffsInnerTableData.js +13 -0
  334. package/lib/hooks/useTariffsInnerTableData.js.map +1 -0
  335. package/lib/icons/IconName.d.ts +4 -2
  336. package/lib/icons/IconName.js +2 -0
  337. package/lib/icons/IconName.js.map +1 -1
  338. package/lib/model/BlockVersion.d.ts +1 -0
  339. package/lib/model/BlockVersion.js +4 -1
  340. package/lib/model/BlockVersion.js.map +1 -1
  341. package/lib/model/HeadlineType.d.ts +3 -3
  342. package/lib/model/LinkProps.d.ts +6 -4
  343. package/lib/services/sitemap/useSitemap.js +2 -8
  344. package/lib/services/sitemap/useSitemap.js.map +1 -1
  345. package/lib/ui-kit/BenefitItem/BenefitItem.js +2 -2
  346. package/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  347. package/lib/ui-kit/BlockWrapper.js +10 -1
  348. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  349. package/lib/ui-kit/BlocksList/renderBlocksList.d.ts +1 -2
  350. package/lib/ui-kit/Button/Button.d.ts +2 -4
  351. package/lib/ui-kit/Button/Button.js +1 -1
  352. package/lib/ui-kit/Button/Button.js.map +1 -1
  353. package/lib/ui-kit/Button/Button.mobile.d.ts +2 -4
  354. package/lib/ui-kit/Button/Button.mobile.js.map +1 -1
  355. package/lib/ui-kit/Button/ButtonInner.d.ts +1 -1
  356. package/lib/ui-kit/Description/Description.d.ts +3 -3
  357. package/lib/ui-kit/Description/Description.js.map +1 -1
  358. package/lib/ui-kit/Foldable/Foldable.js +1 -1
  359. package/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  360. package/lib/ui-kit/Heading/HeadingProps.d.ts +5 -2
  361. package/lib/ui-kit/InnerTable/InnerTable.d.ts +5 -0
  362. package/lib/ui-kit/InnerTable/InnerTable.js +15 -0
  363. package/lib/ui-kit/InnerTable/InnerTable.js.map +1 -0
  364. package/lib/ui-kit/InnerTable/InnerTableBody.d.ts +7 -0
  365. package/lib/ui-kit/InnerTable/InnerTableBody.js +16 -0
  366. package/lib/ui-kit/InnerTable/InnerTableBody.js.map +1 -0
  367. package/lib/ui-kit/InnerTable/InnerTableBodyItem.d.ts +6 -0
  368. package/lib/ui-kit/InnerTable/InnerTableBodyItem.js +31 -0
  369. package/lib/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -0
  370. package/lib/ui-kit/InnerTable/InnerTableButton.d.ts +6 -0
  371. package/lib/ui-kit/InnerTable/InnerTableButton.js +12 -0
  372. package/lib/ui-kit/InnerTable/InnerTableButton.js.map +1 -0
  373. package/lib/ui-kit/InnerTable/InnerTableHeader.d.ts +7 -0
  374. package/lib/ui-kit/InnerTable/InnerTableHeader.js +6 -0
  375. package/lib/ui-kit/InnerTable/InnerTableHeader.js.map +1 -0
  376. package/lib/ui-kit/InnerTable/InnerTableProps.d.ts +24 -0
  377. package/lib/ui-kit/InnerTable/InnerTableProps.js +2 -0
  378. package/lib/ui-kit/InnerTable/InnerTableProps.js.map +1 -0
  379. package/lib/ui-kit/List/List.js +6 -2
  380. package/lib/ui-kit/List/List.js.map +1 -1
  381. package/lib/ui-kit/List/ListProps.d.ts +9 -1
  382. package/lib/ui-kit/Logo/Logo.js +6 -2
  383. package/lib/ui-kit/Logo/Logo.js.map +1 -1
  384. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  385. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  386. package/lib/ui-kit/TopItem/TopItem.d.ts +1 -1
  387. package/lib/ui-kit/TopItem/TopItem.js +2 -2
  388. package/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  389. package/lib/utils/assertUnreachable.d.ts +1 -0
  390. package/lib/utils/assertUnreachable.js +4 -0
  391. package/lib/utils/assertUnreachable.js.map +1 -0
  392. package/lib/utils/fetchJSON.d.ts +2 -0
  393. package/lib/utils/fetchJSON.js +20 -0
  394. package/lib/utils/fetchJSON.js.map +1 -0
  395. package/lib/utils/roundTo.d.ts +1 -1
  396. package/lib/utils/roundTo.js +1 -1
  397. package/lib/utils/roundTo.js.map +1 -1
  398. package/mobile/bundle/bundle.umd.js +94 -61
  399. package/mobile/bundle/bundle.umd.min.js +1 -1
  400. package/mobile/dist/EventBus/EventMap.d.ts +2 -0
  401. package/mobile/dist/components/Accordion/AccordionItem.js +1 -1
  402. package/mobile/dist/components/Accordion/AccordionItem.js.map +1 -1
  403. package/mobile/dist/components/BaseTile/BaseTile.js +1 -1
  404. package/mobile/dist/components/BaseTile/BaseTile.js.map +1 -1
  405. package/mobile/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +2 -2
  406. package/mobile/dist/components/BlockContent.d.ts +2 -3
  407. package/mobile/dist/components/Calculator/Calculator.js +1 -1
  408. package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
  409. package/mobile/dist/components/Calculator/useCalculatorParams.js +2 -5
  410. package/mobile/dist/components/Calculator/useCalculatorParams.js.map +1 -1
  411. package/mobile/dist/components/Calculator/useCreditCalculatorParams.js +1 -2
  412. package/mobile/dist/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  413. package/mobile/dist/components/Catalog/CatalogCard.js +12 -6
  414. package/mobile/dist/components/Catalog/CatalogCard.js.map +1 -1
  415. package/mobile/dist/components/ComparisonTable/ComparisonTableContent.d.ts +7 -1
  416. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.d.ts +2 -2
  417. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.js +1 -1
  418. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  419. package/mobile/dist/components/ContentPage/normalizePage.js +1 -1
  420. package/mobile/dist/components/ContentPage/normalizePage.js.map +1 -1
  421. package/mobile/dist/components/Gallery/Gallery.js +2 -5
  422. package/mobile/dist/components/Gallery/Gallery.js.map +1 -1
  423. package/mobile/dist/components/Gallery/GalleryCardInner.d.ts +2 -2
  424. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  425. package/mobile/dist/components/Gallery/GalleryContainer.d.ts +2 -2
  426. package/mobile/dist/components/Gallery/GalleryContainer.js +3 -2
  427. package/mobile/dist/components/Gallery/GalleryContainer.js.map +1 -1
  428. package/mobile/dist/components/Gallery/GalleryContent.d.ts +4 -4
  429. package/mobile/dist/components/Gallery/GalleryProps.d.ts +1 -1
  430. package/mobile/dist/components/Gallery/constants.d.ts +0 -2
  431. package/mobile/dist/components/Gallery/constants.js +1 -5
  432. package/mobile/dist/components/Gallery/constants.js.map +1 -1
  433. package/mobile/dist/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  434. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  435. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  436. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  437. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  438. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +4 -3
  439. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  440. package/mobile/dist/components/MobileAppTile/MobileAppTileContent.d.ts +1 -0
  441. package/mobile/dist/components/Navigation/Navigation.d.ts +1 -1
  442. package/mobile/dist/components/OtherProducts/OtherProductsContent.d.ts +1 -4
  443. package/mobile/dist/components/PictureText/PictureText.js +2 -5
  444. package/mobile/dist/components/PictureText/PictureText.js.map +1 -1
  445. package/mobile/dist/components/ProductBlock/ProductBlock.js +2 -5
  446. package/mobile/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  447. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +14 -2
  448. package/mobile/dist/components/ProductGallery/ProductGalleryBlock.js +2 -5
  449. package/mobile/dist/components/ProductGallery/ProductGalleryBlock.js.map +1 -1
  450. package/mobile/dist/components/ProductTile/ProductTile.js +14 -14
  451. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  452. package/mobile/dist/components/PromoTile/PromoTile.js +2 -5
  453. package/mobile/dist/components/PromoTile/PromoTile.js.map +1 -1
  454. package/mobile/dist/components/PromoTile/PromoTileContent.d.ts +2 -2
  455. package/mobile/dist/components/Recommendation/RecommendationContent.d.ts +4 -4
  456. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js +4 -0
  457. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  458. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalForm.js +1 -1
  459. package/mobile/dist/components/StepsBlock/StepsBlock.js +1 -1
  460. package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  461. package/mobile/dist/components/Tabs/Tabs.d.ts +4 -3
  462. package/mobile/dist/components/Tabs/Tabs.js +11 -4
  463. package/mobile/dist/components/Tabs/Tabs.js.map +1 -1
  464. package/mobile/dist/components/Tabs/TabsContent.d.ts +14 -6
  465. package/mobile/dist/components/Tabs/renderGroupTab.d.ts +4 -0
  466. package/mobile/dist/components/Tabs/renderGroupTab.js +18 -0
  467. package/mobile/dist/components/Tabs/renderGroupTab.js.map +1 -0
  468. package/mobile/dist/components/Tabs/renderLinkTab.d.ts +8 -0
  469. package/mobile/dist/components/Tabs/renderLinkTab.js +7 -0
  470. package/mobile/dist/components/Tabs/renderLinkTab.js.map +1 -0
  471. package/mobile/dist/components/Tabs/renderTab.d.ts +5 -5
  472. package/mobile/dist/components/Tabs/renderTab.js +25 -14
  473. package/mobile/dist/components/Tabs/renderTab.js.map +1 -1
  474. package/mobile/dist/components/Tabs/tabItemClasses.d.ts +6 -0
  475. package/mobile/dist/components/Tabs/tabItemClasses.js +9 -0
  476. package/mobile/dist/components/Tabs/tabItemClasses.js.map +1 -0
  477. package/mobile/dist/components/TariffsTable/EmbeddableCellData.d.ts +15 -0
  478. package/mobile/dist/components/TariffsTable/EmbeddableCellData.js +21 -0
  479. package/mobile/dist/components/TariffsTable/EmbeddableCellData.js.map +1 -0
  480. package/mobile/dist/components/TariffsTable/TariffsTable.js +2 -2
  481. package/mobile/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  482. package/mobile/dist/components/TariffsTable/TariffsTableCell.d.ts +6 -3
  483. package/mobile/dist/components/TariffsTable/TariffsTableCell.js +18 -10
  484. package/mobile/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  485. package/mobile/dist/components/TariffsTable/TariffsTableContent.d.ts +80 -26
  486. package/mobile/dist/components/TariffsTable/TariffsTableHorizontal.d.ts +5 -5
  487. package/mobile/dist/components/TariffsTable/TariffsTableHorizontal.js.map +1 -1
  488. package/mobile/dist/components/TariffsTable/TariffsTableRow.d.ts +5 -4
  489. package/mobile/dist/components/TariffsTable/TariffsTableRow.js +3 -3
  490. package/mobile/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  491. package/mobile/dist/components/TariffsTable/TariffsTableRowContainer.d.ts +7 -0
  492. package/mobile/dist/components/TariffsTable/TariffsTableRowContainer.js +15 -0
  493. package/mobile/dist/components/TariffsTable/TariffsTableRowContainer.js.map +1 -0
  494. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.d.ts +7 -1
  495. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js +15 -9
  496. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  497. package/mobile/dist/components/TariffsTable/TariffsTableVertical.d.ts +5 -3
  498. package/mobile/dist/components/TariffsTable/TariffsTableVertical.js.map +1 -1
  499. package/mobile/dist/components/TariffsTable/dataFixture.d.ts +5 -0
  500. package/mobile/dist/components/TariffsTable/dataFixture.js +140 -0
  501. package/mobile/dist/components/TariffsTable/dataFixture.js.map +1 -0
  502. package/mobile/dist/components/Tile/Tile.js +6 -9
  503. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  504. package/mobile/dist/components/Tile/TileContent.d.ts +4 -2
  505. package/mobile/dist/hooks/useExchangeRates.js +9 -18
  506. package/mobile/dist/hooks/useExchangeRates.js.map +1 -1
  507. package/mobile/dist/hooks/useTariffsInnerTableData.d.ts +1 -0
  508. package/mobile/dist/hooks/useTariffsInnerTableData.js +16 -0
  509. package/mobile/dist/hooks/useTariffsInnerTableData.js.map +1 -0
  510. package/mobile/dist/icons/IconName.d.ts +4 -2
  511. package/mobile/dist/icons/IconName.js +2 -0
  512. package/mobile/dist/icons/IconName.js.map +1 -1
  513. package/mobile/dist/model/BlockVersion.d.ts +1 -0
  514. package/mobile/dist/model/BlockVersion.js +5 -0
  515. package/mobile/dist/model/BlockVersion.js.map +1 -1
  516. package/mobile/dist/model/HeadlineType.d.ts +3 -3
  517. package/mobile/dist/model/LinkProps.d.ts +6 -4
  518. package/mobile/dist/services/sitemap/useSitemap.js +2 -8
  519. package/mobile/dist/services/sitemap/useSitemap.js.map +1 -1
  520. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js +2 -2
  521. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  522. package/mobile/dist/ui-kit/BlockWrapper.js +10 -1
  523. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  524. package/mobile/dist/ui-kit/BlocksList/renderBlocksList.d.ts +1 -2
  525. package/mobile/dist/ui-kit/Button/Button.d.ts +2 -4
  526. package/mobile/dist/ui-kit/Button/Button.js.map +1 -1
  527. package/mobile/dist/ui-kit/Button/ButtonInner.d.ts +1 -1
  528. package/mobile/dist/ui-kit/Description/Description.d.ts +3 -3
  529. package/mobile/dist/ui-kit/Description/Description.js.map +1 -1
  530. package/mobile/dist/ui-kit/Foldable/Foldable.js +1 -1
  531. package/mobile/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  532. package/mobile/dist/ui-kit/Heading/HeadingProps.d.ts +5 -2
  533. package/mobile/dist/ui-kit/InnerTable/InnerTable.d.ts +5 -0
  534. package/mobile/dist/ui-kit/InnerTable/InnerTable.js +17 -0
  535. package/mobile/dist/ui-kit/InnerTable/InnerTable.js.map +1 -0
  536. package/mobile/dist/ui-kit/InnerTable/InnerTableBody.d.ts +7 -0
  537. package/mobile/dist/ui-kit/InnerTable/InnerTableBody.js +18 -0
  538. package/mobile/dist/ui-kit/InnerTable/InnerTableBody.js.map +1 -0
  539. package/mobile/dist/ui-kit/InnerTable/InnerTableBodyItem.d.ts +6 -0
  540. package/mobile/dist/ui-kit/InnerTable/InnerTableBodyItem.js +33 -0
  541. package/mobile/dist/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -0
  542. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.d.ts +6 -0
  543. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.js +14 -0
  544. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.js.map +1 -0
  545. package/mobile/dist/ui-kit/InnerTable/InnerTableHeader.d.ts +7 -0
  546. package/mobile/dist/ui-kit/InnerTable/InnerTableHeader.js +8 -0
  547. package/mobile/dist/ui-kit/InnerTable/InnerTableHeader.js.map +1 -0
  548. package/mobile/dist/ui-kit/InnerTable/InnerTableProps.d.ts +24 -0
  549. package/mobile/dist/{components/GroupBlock/BlocksTypeProps.js → ui-kit/InnerTable/InnerTableProps.js} +1 -1
  550. package/mobile/dist/ui-kit/InnerTable/InnerTableProps.js.map +1 -0
  551. package/mobile/dist/ui-kit/List/List.js +6 -2
  552. package/mobile/dist/ui-kit/List/List.js.map +1 -1
  553. package/mobile/dist/ui-kit/List/ListProps.d.ts +9 -1
  554. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  555. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  556. package/mobile/dist/ui-kit/TopItem/TopItem.d.ts +1 -1
  557. package/mobile/dist/ui-kit/TopItem/TopItem.js +2 -2
  558. package/mobile/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  559. package/mobile/dist/utils/assertUnreachable.d.ts +1 -0
  560. package/mobile/dist/utils/assertUnreachable.js +7 -0
  561. package/mobile/dist/utils/assertUnreachable.js.map +1 -0
  562. package/mobile/dist/utils/fetchJSON.d.ts +2 -0
  563. package/mobile/dist/utils/fetchJSON.js +24 -0
  564. package/mobile/dist/utils/fetchJSON.js.map +1 -0
  565. package/mobile/dist/utils/roundTo.d.ts +1 -1
  566. package/mobile/dist/utils/roundTo.js +1 -1
  567. package/mobile/dist/utils/roundTo.js.map +1 -1
  568. package/mobile/lib/EventBus/EventMap.d.ts +2 -0
  569. package/mobile/lib/components/Accordion/AccordionItem.js +1 -1
  570. package/mobile/lib/components/Accordion/AccordionItem.js.map +1 -1
  571. package/mobile/lib/components/BaseTile/BaseTile.js +1 -1
  572. package/mobile/lib/components/BaseTile/BaseTile.js.map +1 -1
  573. package/mobile/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +2 -2
  574. package/mobile/lib/components/BlockContent.d.ts +2 -3
  575. package/mobile/lib/components/Calculator/Calculator.js +1 -1
  576. package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
  577. package/mobile/lib/components/Calculator/useCalculatorParams.js +2 -5
  578. package/mobile/lib/components/Calculator/useCalculatorParams.js.map +1 -1
  579. package/mobile/lib/components/Calculator/useCreditCalculatorParams.js +1 -2
  580. package/mobile/lib/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  581. package/mobile/lib/components/Catalog/CatalogCard.js +12 -6
  582. package/mobile/lib/components/Catalog/CatalogCard.js.map +1 -1
  583. package/mobile/lib/components/ComparisonTable/ComparisonTableContent.d.ts +7 -1
  584. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.d.ts +2 -2
  585. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.js +1 -1
  586. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  587. package/mobile/lib/components/ContentPage/normalizePage.js +1 -1
  588. package/mobile/lib/components/ContentPage/normalizePage.js.map +1 -1
  589. package/mobile/lib/components/Gallery/Gallery.js +2 -5
  590. package/mobile/lib/components/Gallery/Gallery.js.map +1 -1
  591. package/mobile/lib/components/Gallery/GalleryCardInner.d.ts +2 -2
  592. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  593. package/mobile/lib/components/Gallery/GalleryContainer.d.ts +2 -2
  594. package/mobile/lib/components/Gallery/GalleryContainer.js +4 -3
  595. package/mobile/lib/components/Gallery/GalleryContainer.js.map +1 -1
  596. package/mobile/lib/components/Gallery/GalleryContent.d.ts +4 -4
  597. package/mobile/lib/components/Gallery/GalleryProps.d.ts +1 -1
  598. package/mobile/lib/components/Gallery/constants.d.ts +0 -2
  599. package/mobile/lib/components/Gallery/constants.js +0 -4
  600. package/mobile/lib/components/Gallery/constants.js.map +1 -1
  601. package/mobile/lib/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  602. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +1 -1
  603. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  604. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  605. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  606. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +4 -3
  607. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  608. package/mobile/lib/components/MobileAppTile/MobileAppTileContent.d.ts +1 -0
  609. package/mobile/lib/components/Navigation/Navigation.d.ts +1 -1
  610. package/mobile/lib/components/OtherProducts/OtherProductsContent.d.ts +1 -4
  611. package/mobile/lib/components/PictureText/PictureText.js +2 -5
  612. package/mobile/lib/components/PictureText/PictureText.js.map +1 -1
  613. package/mobile/lib/components/ProductBlock/ProductBlock.js +2 -5
  614. package/mobile/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  615. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +14 -2
  616. package/mobile/lib/components/ProductGallery/ProductGalleryBlock.js +2 -5
  617. package/mobile/lib/components/ProductGallery/ProductGalleryBlock.js.map +1 -1
  618. package/mobile/lib/components/ProductTile/ProductTile.js +14 -14
  619. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  620. package/mobile/lib/components/PromoTile/PromoTile.js +2 -5
  621. package/mobile/lib/components/PromoTile/PromoTile.js.map +1 -1
  622. package/mobile/lib/components/PromoTile/PromoTileContent.d.ts +2 -2
  623. package/mobile/lib/components/Recommendation/RecommendationContent.d.ts +4 -4
  624. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js +4 -0
  625. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  626. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalForm.js +1 -1
  627. package/mobile/lib/components/StepsBlock/StepsBlock.js +1 -1
  628. package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  629. package/mobile/lib/components/Tabs/Tabs.d.ts +4 -3
  630. package/mobile/lib/components/Tabs/Tabs.js +11 -4
  631. package/mobile/lib/components/Tabs/Tabs.js.map +1 -1
  632. package/mobile/lib/components/Tabs/TabsContent.d.ts +14 -6
  633. package/mobile/lib/components/Tabs/renderGroupTab.d.ts +4 -0
  634. package/mobile/lib/components/Tabs/renderGroupTab.js +15 -0
  635. package/mobile/lib/components/Tabs/renderGroupTab.js.map +1 -0
  636. package/mobile/lib/components/Tabs/renderLinkTab.d.ts +8 -0
  637. package/mobile/lib/components/Tabs/renderLinkTab.js +4 -0
  638. package/mobile/lib/components/Tabs/renderLinkTab.js.map +1 -0
  639. package/mobile/lib/components/Tabs/renderTab.d.ts +5 -5
  640. package/mobile/lib/components/Tabs/renderTab.js +25 -14
  641. package/mobile/lib/components/Tabs/renderTab.js.map +1 -1
  642. package/mobile/lib/components/Tabs/tabItemClasses.d.ts +6 -0
  643. package/mobile/lib/components/Tabs/tabItemClasses.js +7 -0
  644. package/mobile/lib/components/Tabs/tabItemClasses.js.map +1 -0
  645. package/mobile/lib/components/TariffsTable/EmbeddableCellData.d.ts +15 -0
  646. package/mobile/lib/components/TariffsTable/EmbeddableCellData.js +19 -0
  647. package/mobile/lib/components/TariffsTable/EmbeddableCellData.js.map +1 -0
  648. package/mobile/lib/components/TariffsTable/TariffsTable.js +2 -2
  649. package/mobile/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  650. package/mobile/lib/components/TariffsTable/TariffsTableCell.d.ts +6 -3
  651. package/mobile/lib/components/TariffsTable/TariffsTableCell.js +18 -10
  652. package/mobile/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  653. package/mobile/lib/components/TariffsTable/TariffsTableContent.d.ts +80 -26
  654. package/mobile/lib/components/TariffsTable/TariffsTableHorizontal.d.ts +5 -5
  655. package/mobile/lib/components/TariffsTable/TariffsTableHorizontal.js.map +1 -1
  656. package/mobile/lib/components/TariffsTable/TariffsTableRow.d.ts +5 -4
  657. package/mobile/lib/components/TariffsTable/TariffsTableRow.js +3 -3
  658. package/mobile/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  659. package/mobile/lib/components/TariffsTable/TariffsTableRowContainer.d.ts +7 -0
  660. package/mobile/lib/components/TariffsTable/TariffsTableRowContainer.js +13 -0
  661. package/mobile/lib/components/TariffsTable/TariffsTableRowContainer.js.map +1 -0
  662. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.d.ts +7 -1
  663. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js +15 -9
  664. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  665. package/mobile/lib/components/TariffsTable/TariffsTableVertical.d.ts +5 -3
  666. package/mobile/lib/components/TariffsTable/TariffsTableVertical.js.map +1 -1
  667. package/mobile/lib/components/TariffsTable/dataFixture.d.ts +5 -0
  668. package/mobile/lib/components/TariffsTable/dataFixture.js +138 -0
  669. package/mobile/lib/components/TariffsTable/dataFixture.js.map +1 -0
  670. package/mobile/lib/components/Tile/Tile.js +6 -9
  671. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  672. package/mobile/lib/components/Tile/TileContent.d.ts +4 -2
  673. package/mobile/lib/hooks/useExchangeRates.js +9 -18
  674. package/mobile/lib/hooks/useExchangeRates.js.map +1 -1
  675. package/mobile/lib/hooks/useTariffsInnerTableData.d.ts +1 -0
  676. package/mobile/lib/hooks/useTariffsInnerTableData.js +13 -0
  677. package/mobile/lib/hooks/useTariffsInnerTableData.js.map +1 -0
  678. package/mobile/lib/icons/IconName.d.ts +4 -2
  679. package/mobile/lib/icons/IconName.js +2 -0
  680. package/mobile/lib/icons/IconName.js.map +1 -1
  681. package/mobile/lib/model/BlockVersion.d.ts +1 -0
  682. package/mobile/lib/model/BlockVersion.js +4 -1
  683. package/mobile/lib/model/BlockVersion.js.map +1 -1
  684. package/mobile/lib/model/HeadlineType.d.ts +3 -3
  685. package/mobile/lib/model/LinkProps.d.ts +6 -4
  686. package/mobile/lib/services/sitemap/useSitemap.js +2 -8
  687. package/mobile/lib/services/sitemap/useSitemap.js.map +1 -1
  688. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js +2 -2
  689. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  690. package/mobile/lib/ui-kit/BlockWrapper.js +10 -1
  691. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  692. package/mobile/lib/ui-kit/BlocksList/renderBlocksList.d.ts +1 -2
  693. package/mobile/lib/ui-kit/Button/Button.d.ts +2 -4
  694. package/mobile/lib/ui-kit/Button/Button.js.map +1 -1
  695. package/mobile/lib/ui-kit/Button/ButtonInner.d.ts +1 -1
  696. package/mobile/lib/ui-kit/Description/Description.d.ts +3 -3
  697. package/mobile/lib/ui-kit/Description/Description.js.map +1 -1
  698. package/mobile/lib/ui-kit/Foldable/Foldable.js +1 -1
  699. package/mobile/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  700. package/mobile/lib/ui-kit/Heading/HeadingProps.d.ts +5 -2
  701. package/mobile/lib/ui-kit/InnerTable/InnerTable.d.ts +5 -0
  702. package/mobile/lib/ui-kit/InnerTable/InnerTable.js +15 -0
  703. package/mobile/lib/ui-kit/InnerTable/InnerTable.js.map +1 -0
  704. package/mobile/lib/ui-kit/InnerTable/InnerTableBody.d.ts +7 -0
  705. package/mobile/lib/ui-kit/InnerTable/InnerTableBody.js +16 -0
  706. package/mobile/lib/ui-kit/InnerTable/InnerTableBody.js.map +1 -0
  707. package/mobile/lib/ui-kit/InnerTable/InnerTableBodyItem.d.ts +6 -0
  708. package/mobile/lib/ui-kit/InnerTable/InnerTableBodyItem.js +31 -0
  709. package/mobile/lib/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -0
  710. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.d.ts +6 -0
  711. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.js +12 -0
  712. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.js.map +1 -0
  713. package/mobile/lib/ui-kit/InnerTable/InnerTableHeader.d.ts +7 -0
  714. package/mobile/lib/ui-kit/InnerTable/InnerTableHeader.js +6 -0
  715. package/mobile/lib/ui-kit/InnerTable/InnerTableHeader.js.map +1 -0
  716. package/mobile/lib/ui-kit/InnerTable/InnerTableProps.d.ts +24 -0
  717. package/mobile/lib/ui-kit/InnerTable/InnerTableProps.js +2 -0
  718. package/mobile/lib/ui-kit/InnerTable/InnerTableProps.js.map +1 -0
  719. package/mobile/lib/ui-kit/List/List.js +6 -2
  720. package/mobile/lib/ui-kit/List/List.js.map +1 -1
  721. package/mobile/lib/ui-kit/List/ListProps.d.ts +9 -1
  722. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  723. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  724. package/mobile/lib/ui-kit/TopItem/TopItem.d.ts +1 -1
  725. package/mobile/lib/ui-kit/TopItem/TopItem.js +2 -2
  726. package/mobile/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  727. package/mobile/lib/utils/assertUnreachable.d.ts +1 -0
  728. package/mobile/lib/utils/assertUnreachable.js +4 -0
  729. package/mobile/lib/utils/assertUnreachable.js.map +1 -0
  730. package/mobile/lib/utils/fetchJSON.d.ts +2 -0
  731. package/mobile/lib/utils/fetchJSON.js +20 -0
  732. package/mobile/lib/utils/fetchJSON.js.map +1 -0
  733. package/mobile/lib/utils/roundTo.d.ts +1 -1
  734. package/mobile/lib/utils/roundTo.js +1 -1
  735. package/mobile/lib/utils/roundTo.js.map +1 -1
  736. package/mobile/src/EventBus/EventMap.ts +2 -1
  737. package/mobile/src/components/Accordion/AccordionItem.tsx +4 -2
  738. package/mobile/src/components/BaseTile/BaseTile.tsx +2 -2
  739. package/mobile/src/components/BenefitsBlock/BenefitsBlockContent.ts +2 -2
  740. package/mobile/src/components/BlockContent.ts +3 -5
  741. package/mobile/src/components/Calculator/Calculator.tsx +1 -1
  742. package/mobile/src/components/Calculator/useCalculatorParams.ts +2 -10
  743. package/mobile/src/components/Calculator/useCreditCalculatorParams.ts +1 -3
  744. package/mobile/src/components/Catalog/CatalogCard.tsx +13 -6
  745. package/mobile/src/components/ComparisonTable/ComparisonTableContent.ts +8 -1
  746. package/mobile/src/components/ComparisonTable/ComparisonTableRows.tsx +3 -3
  747. package/mobile/src/components/ContentPage/ContentPage.page.json +1 -34
  748. package/mobile/src/components/ContentPage/normalizePage.ts +1 -1
  749. package/mobile/src/components/Gallery/Gallery.tsx +8 -13
  750. package/mobile/src/components/Gallery/GalleryCardInner.tsx +8 -4
  751. package/mobile/src/components/Gallery/GalleryContainer.tsx +6 -5
  752. package/mobile/src/components/Gallery/GalleryContent.ts +4 -4
  753. package/mobile/src/components/Gallery/GalleryProps.ts +1 -1
  754. package/mobile/src/components/Gallery/constants.ts +0 -6
  755. package/mobile/src/components/GracePeriod/GracePeriod.example.json +5 -0
  756. package/mobile/src/components/GracePeriod/GracePeriodContent.ts +2 -2
  757. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +3 -3
  758. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +2 -2
  759. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +6 -5
  760. package/mobile/src/components/MobileAppTile/MobileAppTile.example.json +1 -2
  761. package/mobile/src/components/MobileAppTile/MobileAppTileContent.ts +1 -0
  762. package/mobile/src/components/Navigation/Navigation.tsx +1 -1
  763. package/mobile/src/components/OtherProducts/OtherProductsContent.ts +1 -4
  764. package/mobile/src/components/PictureText/PictureText.tsx +2 -6
  765. package/mobile/src/components/ProductBlock/ProductBlock.tsx +2 -9
  766. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +14 -3
  767. package/mobile/src/components/ProductGallery/ProductGallery.example.json +34 -2
  768. package/mobile/src/components/ProductGallery/ProductGalleryBlock.tsx +2 -7
  769. package/mobile/src/components/ProductTile/ProductTile.tsx +39 -50
  770. package/mobile/src/components/PromoTile/PromoTile.tsx +12 -19
  771. package/mobile/src/components/PromoTile/PromoTileContent.ts +2 -2
  772. package/mobile/src/components/Recommendation/RecommendationContent.ts +4 -4
  773. package/mobile/src/components/SafeDepositRental/SafeDepositRental.tsx +4 -0
  774. package/mobile/src/components/SafeDepositRental/SafeDepositRentalForm.tsx +1 -1
  775. package/mobile/src/components/StepsBlock/StepsBlock.tsx +1 -1
  776. package/mobile/src/components/Tabs/Tabs.example.json +6 -3
  777. package/mobile/src/components/Tabs/Tabs.tsx +15 -6
  778. package/mobile/src/components/Tabs/TabsContent.ts +17 -6
  779. package/mobile/src/components/Tabs/renderGroupTab.tsx +51 -0
  780. package/mobile/src/components/Tabs/renderLinkTab.tsx +25 -0
  781. package/mobile/src/components/Tabs/renderTab.tsx +28 -37
  782. package/mobile/src/components/Tabs/tabItemClasses.ts +7 -0
  783. package/mobile/src/components/TariffsTable/EmbeddableCellData.tsx +67 -0
  784. package/mobile/src/components/TariffsTable/TariffsTable.example.json +30 -29
  785. package/mobile/src/components/TariffsTable/TariffsTable.tsx +12 -7
  786. package/mobile/src/components/TariffsTable/TariffsTableCell.tsx +50 -55
  787. package/mobile/src/components/TariffsTable/TariffsTableContent.ts +101 -37
  788. package/mobile/src/components/TariffsTable/TariffsTableHorizontal.tsx +6 -7
  789. package/mobile/src/components/TariffsTable/TariffsTableRow.tsx +19 -11
  790. package/mobile/src/components/TariffsTable/TariffsTableRowContainer.tsx +36 -0
  791. package/mobile/src/components/TariffsTable/TariffsTableTileCell.tsx +35 -53
  792. package/mobile/src/components/TariffsTable/TariffsTableVertical.tsx +7 -3
  793. package/mobile/src/components/TariffsTable/dataFixture.ts +158 -0
  794. package/mobile/src/components/Tile/Tile.example.json +1 -0
  795. package/mobile/src/components/Tile/Tile.tsx +17 -13
  796. package/mobile/src/components/Tile/TileContent.ts +4 -2
  797. package/mobile/src/components/__snapshots__/Blocks.spec.tsx.snap +36 -48
  798. package/mobile/src/hooks/useExchangeRates.ts +9 -20
  799. package/mobile/src/hooks/useTariffsInnerTableData.ts +20 -0
  800. package/mobile/src/icons/CardTickIcon.svg +7 -1
  801. package/mobile/src/icons/DocDownload.svg +8 -0
  802. package/mobile/src/icons/IconName.ts +4 -4
  803. package/mobile/src/model/BlockVersion.ts +5 -0
  804. package/mobile/src/model/HeadlineType.ts +3 -3
  805. package/mobile/src/model/LinkProps.ts +7 -4
  806. package/mobile/src/services/sitemap/useSitemap.ts +5 -11
  807. package/mobile/src/ui-kit/BenefitItem/BenefitItem.tsx +2 -2
  808. package/mobile/src/ui-kit/BlockWrapper.tsx +12 -1
  809. package/mobile/src/ui-kit/BlocksList/renderBlocksList.tsx +1 -1
  810. package/mobile/src/ui-kit/Button/Button.tsx +2 -4
  811. package/mobile/src/ui-kit/Button/ButtonInner.tsx +1 -1
  812. package/mobile/src/ui-kit/Description/Description.tsx +3 -3
  813. package/mobile/src/ui-kit/Foldable/Foldable.tsx +1 -2
  814. package/mobile/src/ui-kit/HeaderItem/HeaderItem.tsx +1 -1
  815. package/mobile/src/ui-kit/Heading/HeadingProps.ts +5 -2
  816. package/mobile/src/ui-kit/InnerTable/InnerTable.tsx +32 -0
  817. package/mobile/src/ui-kit/InnerTable/InnerTableBody.tsx +53 -0
  818. package/mobile/src/ui-kit/InnerTable/InnerTableBodyItem.tsx +86 -0
  819. package/mobile/src/ui-kit/InnerTable/InnerTableButton.tsx +36 -0
  820. package/mobile/src/ui-kit/InnerTable/InnerTableHeader.tsx +42 -0
  821. package/mobile/src/ui-kit/InnerTable/InnerTableProps.ts +31 -0
  822. package/mobile/src/ui-kit/List/List.tsx +18 -3
  823. package/mobile/src/ui-kit/List/ListProps.ts +10 -1
  824. package/mobile/src/ui-kit/Logo/Logo.tsx +1 -1
  825. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
  826. package/mobile/src/ui-kit/TopItem/TopItem.tsx +3 -3
  827. package/mobile/src/utils/assertUnreachable.ts +3 -0
  828. package/mobile/src/utils/fetchJSON.ts +24 -0
  829. package/mobile/src/utils/roundTo.ts +2 -2
  830. package/package.json +5 -2
  831. package/src/EventBus/EventMap.ts +2 -1
  832. package/src/components/Accordion/AccordionItem.mobile.tsx +4 -2
  833. package/src/components/Accordion/AccordionItem.tsx +7 -1
  834. package/src/components/BaseTile/BaseTile.tsx +2 -2
  835. package/src/components/BenefitsBlock/BenefitsBlockContent.ts +2 -2
  836. package/src/components/BlockContent.ts +3 -5
  837. package/src/components/Blocks.ts +0 -4
  838. package/src/components/Calculator/Calculator.tsx +1 -1
  839. package/src/components/Calculator/useCalculatorParams.ts +2 -10
  840. package/src/components/Calculator/useCreditCalculatorParams.ts +1 -3
  841. package/src/components/Catalog/Catalog.fixture.tsx +5 -2
  842. package/src/components/Catalog/CatalogCard.tsx +13 -6
  843. package/src/components/ComparisonTable/ComparisonTableContent.ts +8 -1
  844. package/src/components/ComparisonTable/ComparisonTableRows.tsx +3 -3
  845. package/src/components/ContentPage/ContentPage.page.json +1 -34
  846. package/src/components/ContentPage/normalizePage.mobile.ts +1 -1
  847. package/src/components/ContentPage/normalizePage.ts +1 -1
  848. package/src/components/Gallery/Gallery.fixture.mobile.tsx +6 -6
  849. package/src/components/Gallery/Gallery.fixture.tsx +3 -3
  850. package/src/components/Gallery/Gallery.mobile.tsx +8 -13
  851. package/src/components/Gallery/GalleryCardInner.tsx +8 -4
  852. package/src/components/Gallery/GalleryContainer.tsx +6 -5
  853. package/src/components/Gallery/GalleryContent.ts +4 -4
  854. package/src/components/Gallery/GalleryProps.ts +1 -1
  855. package/src/components/Gallery/constants.ts +0 -6
  856. package/src/components/GracePeriod/GracePeriod.example.json +5 -0
  857. package/src/components/GracePeriod/GracePeriodContent.ts +2 -2
  858. package/src/components/Header/Header.tsx +3 -2
  859. package/src/components/Header/HeaderSecondaryMenu.tsx +3 -3
  860. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.tsx +2 -2
  861. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +2 -2
  862. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +6 -5
  863. package/src/components/MobileAppTile/MobileAppTile.example.json +1 -2
  864. package/src/components/MobileAppTile/MobileAppTile.tsx +8 -12
  865. package/src/components/MobileAppTile/MobileAppTileContent.ts +1 -0
  866. package/src/components/Navigation/Navigation.tsx +1 -1
  867. package/src/components/OtherProducts/OtherProductsContent.ts +1 -4
  868. package/src/components/PictureText/PictureText.fixture.tsx +1 -1
  869. package/src/components/PictureText/PictureText.tsx +2 -6
  870. package/src/components/ProductBlock/ProductBlock.mobile.tsx +2 -9
  871. package/src/components/ProductBlock/ProductBlock.tsx +3 -7
  872. package/src/components/ProductBlock/ProductBlockContent.ts +14 -3
  873. package/src/components/ProductGallery/ProductGallery.example.json +34 -2
  874. package/src/components/ProductGallery/ProductGallery.tsx +6 -15
  875. package/src/components/ProductGallery/ProductGalleryBlock.tsx +2 -7
  876. package/src/components/ProductTile/ProductTile.fixture.tsx +35 -1
  877. package/src/components/ProductTile/ProductTile.tsx +39 -50
  878. package/src/components/PromoTile/PromoTile.tsx +12 -19
  879. package/src/components/PromoTile/PromoTileContent.ts +2 -2
  880. package/src/components/Recommendation/RecommendationContent.ts +4 -4
  881. package/src/components/SafeDepositRental/SafeDepositRental.tsx +4 -0
  882. package/src/components/SafeDepositRental/SafeDepositRentalForm.tsx +1 -1
  883. package/src/components/StepsBlock/StepsBlock.mobile.tsx +1 -1
  884. package/src/components/Tabs/Tabs.example.json +6 -3
  885. package/src/components/Tabs/Tabs.fixture.tsx +3 -3
  886. package/src/components/Tabs/Tabs.tsx +15 -6
  887. package/src/components/Tabs/TabsContent.ts +17 -6
  888. package/src/components/Tabs/renderGroupTab.tsx +51 -0
  889. package/src/components/Tabs/renderLinkTab.tsx +25 -0
  890. package/src/components/Tabs/renderTab.tsx +28 -37
  891. package/src/components/Tabs/tabItemClasses.ts +7 -0
  892. package/src/components/TariffsTable/EmbeddableCellData.mobile.tsx +67 -0
  893. package/src/components/TariffsTable/EmbeddableCellData.tsx +82 -0
  894. package/src/components/TariffsTable/TariffsTable.example.json +30 -29
  895. package/src/components/TariffsTable/TariffsTable.fixture.mobile.tsx +3 -111
  896. package/src/components/TariffsTable/TariffsTable.fixture.tsx +24 -151
  897. package/src/components/TariffsTable/TariffsTable.mobile.tsx +12 -7
  898. package/src/components/TariffsTable/TariffsTable.tsx +25 -29
  899. package/src/components/TariffsTable/TariffsTableCell.tsx +50 -55
  900. package/src/components/TariffsTable/TariffsTableContent.ts +101 -37
  901. package/src/components/TariffsTable/TariffsTableHorizontal.tsx +6 -7
  902. package/src/components/TariffsTable/TariffsTableRow.tsx +19 -11
  903. package/src/components/TariffsTable/TariffsTableRowContainer.tsx +36 -0
  904. package/src/components/TariffsTable/TariffsTableTileCell.tsx +35 -53
  905. package/src/components/TariffsTable/TariffsTableVertical.tsx +7 -3
  906. package/src/components/TariffsTable/dataFixture.ts +158 -0
  907. package/src/components/TextBlock/TextBlock.fixture.mobile.tsx +1 -1
  908. package/src/components/TextBlock/TextBlock.fixture.tsx +1 -1
  909. package/src/components/Tile/Tile.example.json +1 -0
  910. package/src/components/Tile/Tile.fixture.tsx +7 -6
  911. package/src/components/Tile/Tile.tsx +17 -13
  912. package/src/components/Tile/TileContent.ts +4 -2
  913. package/src/components/__snapshots__/Blocks.spec.tsx.snap +36 -48
  914. package/src/cosmos.decorator.tsx +1 -1
  915. package/src/hooks/useExchangeRates.ts +9 -20
  916. package/src/hooks/useTariffsInnerTableData.ts +20 -0
  917. package/src/icons/CardTickIcon.svg +7 -1
  918. package/src/icons/DocDownload.svg +8 -0
  919. package/src/icons/IconName.ts +4 -1
  920. package/src/model/BlockVersion.ts +5 -0
  921. package/src/model/HeadlineType.ts +3 -3
  922. package/src/model/LinkProps.ts +7 -4
  923. package/src/services/sitemap/useSitemap.ts +5 -11
  924. package/src/ui-kit/BenefitItem/BenefitItem.tsx +2 -2
  925. package/src/ui-kit/BlockWrapper.tsx +12 -1
  926. package/src/ui-kit/BlocksList/renderBlocksList.tsx +1 -1
  927. package/src/ui-kit/Button/Button.mobile.tsx +2 -4
  928. package/src/ui-kit/Button/Button.tsx +5 -7
  929. package/src/ui-kit/Button/ButtonInner.tsx +1 -1
  930. package/src/ui-kit/Description/Description.tsx +3 -3
  931. package/src/ui-kit/Foldable/Foldable.tsx +1 -2
  932. package/src/ui-kit/HeaderItem/HeaderItem.mobile.tsx +1 -1
  933. package/src/ui-kit/HeaderItem/HeaderItem.tsx +1 -1
  934. package/src/ui-kit/Heading/HeadingProps.ts +5 -2
  935. package/src/ui-kit/InnerTable/InnerTable.tsx +32 -0
  936. package/src/ui-kit/InnerTable/InnerTableBody.tsx +53 -0
  937. package/src/ui-kit/InnerTable/InnerTableBodyItem.tsx +86 -0
  938. package/src/ui-kit/InnerTable/InnerTableButton.tsx +36 -0
  939. package/src/ui-kit/InnerTable/InnerTableHeader.tsx +42 -0
  940. package/src/ui-kit/InnerTable/InnerTableProps.ts +31 -0
  941. package/src/ui-kit/List/List.tsx +18 -3
  942. package/src/ui-kit/List/ListProps.ts +10 -1
  943. package/src/ui-kit/Logo/Logo.mobile.tsx +1 -1
  944. package/src/ui-kit/Logo/Logo.tsx +8 -3
  945. package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
  946. package/src/ui-kit/TopItem/TopItem.tsx +3 -3
  947. package/src/utils/assertUnreachable.ts +3 -0
  948. package/src/utils/fetchJSON.ts +24 -0
  949. package/src/utils/roundTo.ts +2 -2
  950. package/dist/components/GroupBlock/BlocksTypeProps.d.ts +0 -36
  951. package/dist/components/GroupBlock/BlocksTypeProps.js.map +0 -1
  952. package/dist/components/GroupBlock/EmbeddableGroupBlocks.d.ts +0 -4
  953. package/dist/components/GroupBlock/EmbeddableGroupBlocks.js +0 -9
  954. package/dist/components/GroupBlock/EmbeddableGroupBlocks.js.map +0 -1
  955. package/dist/components/GroupBlock/GroupBlock.d.ts +0 -9
  956. package/dist/components/GroupBlock/GroupBlock.js +0 -21
  957. package/dist/components/GroupBlock/GroupBlock.js.map +0 -1
  958. package/dist/components/GroupBlock/GroupBlockContent.d.ts +0 -21
  959. package/dist/components/GroupBlock/GroupBlockContent.js +0 -2
  960. package/dist/components/GroupBlock/GroupBlockContent.js.map +0 -1
  961. package/dist/components/GroupBlock/GroupBlockTabs.d.ts +0 -9
  962. package/dist/components/GroupBlock/GroupBlockTabs.js +0 -20
  963. package/dist/components/GroupBlock/GroupBlockTabs.js.map +0 -1
  964. package/dist/components/GroupBlock/GroupBlocksItem.d.ts +0 -9
  965. package/dist/components/GroupBlock/GroupBlocksItem.js +0 -20
  966. package/dist/components/GroupBlock/GroupBlocksItem.js.map +0 -1
  967. package/dist/components/GroupBlock/filterBlocksByTag.d.ts +0 -2
  968. package/dist/components/GroupBlock/filterBlocksByTag.js +0 -7
  969. package/dist/components/GroupBlock/filterBlocksByTag.js.map +0 -1
  970. package/dist/components/GroupBlock/renderBlocksTypes.d.ts +0 -10
  971. package/dist/components/GroupBlock/renderBlocksTypes.js +0 -19
  972. package/dist/components/GroupBlock/renderBlocksTypes.js.map +0 -1
  973. package/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +0 -7
  974. package/dist/components/NavigatorTabs/NavigatorTabItem.js +0 -16
  975. package/dist/components/NavigatorTabs/NavigatorTabItem.js.map +0 -1
  976. package/dist/components/NavigatorTabs/NavigatorTabs.d.ts +0 -5
  977. package/dist/components/NavigatorTabs/NavigatorTabs.js +0 -19
  978. package/dist/components/NavigatorTabs/NavigatorTabs.js.map +0 -1
  979. package/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +0 -11
  980. package/dist/components/NavigatorTabs/NavigatorTabsContent.js +0 -2
  981. package/dist/components/NavigatorTabs/NavigatorTabsContent.js.map +0 -1
  982. package/dist/hooks/useSafeDepositRental.d.ts +0 -1
  983. package/dist/hooks/useSafeDepositRental.js +0 -24
  984. package/dist/hooks/useSafeDepositRental.js.map +0 -1
  985. package/lib/components/GroupBlock/BlocksTypeProps.d.ts +0 -36
  986. package/lib/components/GroupBlock/BlocksTypeProps.js +0 -2
  987. package/lib/components/GroupBlock/BlocksTypeProps.js.map +0 -1
  988. package/lib/components/GroupBlock/EmbeddableGroupBlocks.d.ts +0 -4
  989. package/lib/components/GroupBlock/EmbeddableGroupBlocks.js +0 -7
  990. package/lib/components/GroupBlock/EmbeddableGroupBlocks.js.map +0 -1
  991. package/lib/components/GroupBlock/GroupBlock.d.ts +0 -9
  992. package/lib/components/GroupBlock/GroupBlock.fixture.d.ts +0 -6
  993. package/lib/components/GroupBlock/GroupBlock.js +0 -19
  994. package/lib/components/GroupBlock/GroupBlock.js.map +0 -1
  995. package/lib/components/GroupBlock/GroupBlockContent.d.ts +0 -21
  996. package/lib/components/GroupBlock/GroupBlockContent.js +0 -2
  997. package/lib/components/GroupBlock/GroupBlockContent.js.map +0 -1
  998. package/lib/components/GroupBlock/GroupBlockTabs.d.ts +0 -9
  999. package/lib/components/GroupBlock/GroupBlockTabs.js +0 -18
  1000. package/lib/components/GroupBlock/GroupBlockTabs.js.map +0 -1
  1001. package/lib/components/GroupBlock/GroupBlocksItem.d.ts +0 -9
  1002. package/lib/components/GroupBlock/GroupBlocksItem.js +0 -17
  1003. package/lib/components/GroupBlock/GroupBlocksItem.js.map +0 -1
  1004. package/lib/components/GroupBlock/filterBlocksByTag.d.ts +0 -2
  1005. package/lib/components/GroupBlock/filterBlocksByTag.js +0 -4
  1006. package/lib/components/GroupBlock/filterBlocksByTag.js.map +0 -1
  1007. package/lib/components/GroupBlock/renderBlocksTypes.d.ts +0 -10
  1008. package/lib/components/GroupBlock/renderBlocksTypes.js +0 -16
  1009. package/lib/components/GroupBlock/renderBlocksTypes.js.map +0 -1
  1010. package/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +0 -7
  1011. package/lib/components/NavigatorTabs/NavigatorTabItem.js +0 -14
  1012. package/lib/components/NavigatorTabs/NavigatorTabItem.js.map +0 -1
  1013. package/lib/components/NavigatorTabs/NavigatorTabs.d.ts +0 -5
  1014. package/lib/components/NavigatorTabs/NavigatorTabs.fixture.d.ts +0 -5
  1015. package/lib/components/NavigatorTabs/NavigatorTabs.js +0 -17
  1016. package/lib/components/NavigatorTabs/NavigatorTabs.js.map +0 -1
  1017. package/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +0 -11
  1018. package/lib/components/NavigatorTabs/NavigatorTabsContent.js +0 -2
  1019. package/lib/components/NavigatorTabs/NavigatorTabsContent.js.map +0 -1
  1020. package/lib/hooks/useSafeDepositRental.d.ts +0 -1
  1021. package/lib/hooks/useSafeDepositRental.js +0 -21
  1022. package/lib/hooks/useSafeDepositRental.js.map +0 -1
  1023. package/mobile/dist/components/GroupBlock/BlocksTypeProps.d.ts +0 -36
  1024. package/mobile/dist/components/GroupBlock/BlocksTypeProps.js.map +0 -1
  1025. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.d.ts +0 -4
  1026. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.js +0 -9
  1027. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.js.map +0 -1
  1028. package/mobile/dist/components/GroupBlock/GroupBlock.d.ts +0 -9
  1029. package/mobile/dist/components/GroupBlock/GroupBlock.js +0 -21
  1030. package/mobile/dist/components/GroupBlock/GroupBlock.js.map +0 -1
  1031. package/mobile/dist/components/GroupBlock/GroupBlockContent.d.ts +0 -21
  1032. package/mobile/dist/components/GroupBlock/GroupBlockContent.js +0 -2
  1033. package/mobile/dist/components/GroupBlock/GroupBlockContent.js.map +0 -1
  1034. package/mobile/dist/components/GroupBlock/GroupBlockTabs.d.ts +0 -9
  1035. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js +0 -20
  1036. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js.map +0 -1
  1037. package/mobile/dist/components/GroupBlock/GroupBlocksItem.d.ts +0 -9
  1038. package/mobile/dist/components/GroupBlock/GroupBlocksItem.js +0 -20
  1039. package/mobile/dist/components/GroupBlock/GroupBlocksItem.js.map +0 -1
  1040. package/mobile/dist/components/GroupBlock/filterBlocksByTag.d.ts +0 -2
  1041. package/mobile/dist/components/GroupBlock/filterBlocksByTag.js +0 -7
  1042. package/mobile/dist/components/GroupBlock/filterBlocksByTag.js.map +0 -1
  1043. package/mobile/dist/components/GroupBlock/renderBlocksTypes.d.ts +0 -10
  1044. package/mobile/dist/components/GroupBlock/renderBlocksTypes.js +0 -19
  1045. package/mobile/dist/components/GroupBlock/renderBlocksTypes.js.map +0 -1
  1046. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +0 -7
  1047. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js +0 -16
  1048. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js.map +0 -1
  1049. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.d.ts +0 -5
  1050. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js +0 -19
  1051. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js.map +0 -1
  1052. package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +0 -11
  1053. package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.js +0 -2
  1054. package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.js.map +0 -1
  1055. package/mobile/dist/hooks/useSafeDepositRental.d.ts +0 -1
  1056. package/mobile/dist/hooks/useSafeDepositRental.js +0 -24
  1057. package/mobile/dist/hooks/useSafeDepositRental.js.map +0 -1
  1058. package/mobile/lib/components/GroupBlock/BlocksTypeProps.d.ts +0 -36
  1059. package/mobile/lib/components/GroupBlock/BlocksTypeProps.js +0 -2
  1060. package/mobile/lib/components/GroupBlock/BlocksTypeProps.js.map +0 -1
  1061. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.d.ts +0 -4
  1062. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.js +0 -7
  1063. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.js.map +0 -1
  1064. package/mobile/lib/components/GroupBlock/GroupBlock.d.ts +0 -9
  1065. package/mobile/lib/components/GroupBlock/GroupBlock.js +0 -19
  1066. package/mobile/lib/components/GroupBlock/GroupBlock.js.map +0 -1
  1067. package/mobile/lib/components/GroupBlock/GroupBlockContent.d.ts +0 -21
  1068. package/mobile/lib/components/GroupBlock/GroupBlockContent.js +0 -2
  1069. package/mobile/lib/components/GroupBlock/GroupBlockContent.js.map +0 -1
  1070. package/mobile/lib/components/GroupBlock/GroupBlockTabs.d.ts +0 -9
  1071. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js +0 -18
  1072. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js.map +0 -1
  1073. package/mobile/lib/components/GroupBlock/GroupBlocksItem.d.ts +0 -9
  1074. package/mobile/lib/components/GroupBlock/GroupBlocksItem.js +0 -17
  1075. package/mobile/lib/components/GroupBlock/GroupBlocksItem.js.map +0 -1
  1076. package/mobile/lib/components/GroupBlock/filterBlocksByTag.d.ts +0 -2
  1077. package/mobile/lib/components/GroupBlock/filterBlocksByTag.js +0 -4
  1078. package/mobile/lib/components/GroupBlock/filterBlocksByTag.js.map +0 -1
  1079. package/mobile/lib/components/GroupBlock/renderBlocksTypes.d.ts +0 -10
  1080. package/mobile/lib/components/GroupBlock/renderBlocksTypes.js +0 -16
  1081. package/mobile/lib/components/GroupBlock/renderBlocksTypes.js.map +0 -1
  1082. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +0 -7
  1083. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js +0 -14
  1084. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js.map +0 -1
  1085. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.d.ts +0 -5
  1086. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js +0 -17
  1087. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js.map +0 -1
  1088. package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +0 -11
  1089. package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.js +0 -2
  1090. package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.js.map +0 -1
  1091. package/mobile/lib/hooks/useSafeDepositRental.d.ts +0 -1
  1092. package/mobile/lib/hooks/useSafeDepositRental.js +0 -21
  1093. package/mobile/lib/hooks/useSafeDepositRental.js.map +0 -1
  1094. package/mobile/src/components/GroupBlock/BlocksTypeProps.ts +0 -39
  1095. package/mobile/src/components/GroupBlock/EmbeddableGroupBlocks.tsx +0 -7
  1096. package/mobile/src/components/GroupBlock/GroupBlock.example.json +0 -97
  1097. package/mobile/src/components/GroupBlock/GroupBlock.tsx +0 -50
  1098. package/mobile/src/components/GroupBlock/GroupBlockContent.ts +0 -23
  1099. package/mobile/src/components/GroupBlock/GroupBlockTabs.tsx +0 -55
  1100. package/mobile/src/components/GroupBlock/GroupBlocksItem.tsx +0 -31
  1101. package/mobile/src/components/GroupBlock/filterBlocksByTag.ts +0 -5
  1102. package/mobile/src/components/GroupBlock/renderBlocksTypes.tsx +0 -34
  1103. package/mobile/src/components/NavigatorTabs/NavigatorTabItem.tsx +0 -31
  1104. package/mobile/src/components/NavigatorTabs/NavigatorTabs.example.json +0 -7
  1105. package/mobile/src/components/NavigatorTabs/NavigatorTabs.tsx +0 -41
  1106. package/mobile/src/components/NavigatorTabs/NavigatorTabsContent.ts +0 -12
  1107. package/mobile/src/hooks/useSafeDepositRental.ts +0 -25
  1108. package/src/components/GroupBlock/BlocksTypeProps.ts +0 -39
  1109. package/src/components/GroupBlock/EmbeddableGroupBlocks.tsx +0 -7
  1110. package/src/components/GroupBlock/GroupBlock.example.json +0 -97
  1111. package/src/components/GroupBlock/GroupBlock.fixture.tsx +0 -67
  1112. package/src/components/GroupBlock/GroupBlock.tsx +0 -50
  1113. package/src/components/GroupBlock/GroupBlockContent.ts +0 -23
  1114. package/src/components/GroupBlock/GroupBlockTabs.tsx +0 -55
  1115. package/src/components/GroupBlock/GroupBlocksItem.tsx +0 -31
  1116. package/src/components/GroupBlock/filterBlocksByTag.ts +0 -5
  1117. package/src/components/GroupBlock/renderBlocksTypes.tsx +0 -34
  1118. package/src/components/NavigatorTabs/NavigatorTabItem.tsx +0 -31
  1119. package/src/components/NavigatorTabs/NavigatorTabs.example.json +0 -7
  1120. package/src/components/NavigatorTabs/NavigatorTabs.fixture.tsx +0 -16
  1121. package/src/components/NavigatorTabs/NavigatorTabs.tsx +0 -41
  1122. package/src/components/NavigatorTabs/NavigatorTabsContent.ts +0 -12
  1123. package/src/hooks/useSafeDepositRental.ts +0 -25
@@ -261,13 +261,22 @@
261
261
  const { IntersectionObserverTag } = context;
262
262
  const [shouldRenderBlock, setShouldRenderBlock] = useState(true);
263
263
  useEffect(() => EventBus.inst.subscribe('tab', (event) => {
264
- setShouldRenderBlock(!labels?.length || !event.label || labels.includes(event.label));
264
+ if (event.type === 'group') {
265
+ setShouldRenderBlock(!labels?.length || !event.label || labels.includes(event.label));
266
+ }
267
+ else {
268
+ setShouldRenderBlock(true);
269
+ scrollToBlock(event.label);
270
+ }
265
271
  }), [labels]);
266
272
  if (!shouldRenderBlock) {
267
273
  return null;
268
274
  }
269
275
  return anchor ? (jsx(IntersectionObserverTag, { tag: tag, className: className, observerCallback: changeHashOnObserve, observerOptions: { threshold: 1 }, anchor: anchor, children: children })) : (jsx(Tag, { className: className, children: children }));
270
276
  });
277
+ function scrollToBlock(label) {
278
+ setTimeout(() => globalThis.document.getElementById(`#${label}`)?.scrollIntoView({ behavior: 'smooth' }));
279
+ }
271
280
 
272
281
  const HEADING_STYLE_MAP = {
273
282
  h0: 'text-h0',
@@ -312,6 +321,7 @@
312
321
  IconMap["ComfortableCompIcon"] = "ComfortableCompIcon";
313
322
  IconMap["CreditCardsIcon"] = "CreditCardsIcon";
314
323
  IconMap["DiscountShapeIcon"] = "DiscountShapeIcon";
324
+ IconMap["DocDownload"] = "DocDownload";
315
325
  IconMap["DocIcon"] = "DocIcon";
316
326
  IconMap["DocIconMonoColor"] = "DocIconMonoColor";
317
327
  IconMap["DocsIcon"] = "DocsIcon";
@@ -397,6 +407,7 @@
397
407
  IconTitleMap["ComfortableCompIcon"] = "\u041A\u0440\u0435\u0441\u043B\u043E";
398
408
  IconTitleMap["CreditCardsIcon"] = "\u041A\u0440\u0435\u0434\u0438\u0442\u043D\u044B\u0435 \u043A\u0430\u0440\u0442\u044B";
399
409
  IconTitleMap["DiscountShapeIcon"] = "\u0421\u043A\u0438\u0434\u043A\u0430";
410
+ IconTitleMap["DocDownload"] = "\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442";
400
411
  IconTitleMap["DocIcon"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442";
401
412
  IconTitleMap["DocIconMonoColor"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442 (\u043E\u0434\u043D\u043E\u0446\u0432\u0435\u0442\u043D\u044B\u0439)";
402
413
  IconTitleMap["DocsIcon"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B";
@@ -629,7 +640,7 @@
629
640
  const BenefitItem = JSX((props) => {
630
641
  const { className = '', icon, label, description, version = 'primary', benefitsVersion = 'normal', } = props;
631
642
  const isIconWhite = benefitsVersion === 'white' || version === 'secondary';
632
- return (jsxs("div", { className: `flex items-center gap-5 ${className}`, children: [icon ? (jsx(Img, { className: renderBenefitIconBgStyle(version, benefitsVersion), image: { ...icon, iconVersion: isIconWhite ? 'white' : 'normal' }, asSVG: true })) : null, jsxs("div", { className: "gap-0.5", children: [label ? jsx("div", { className: `text-h6 ${titleStyleMap[version]}`, children: label }) : null, description ? (jsx("div", { className: `text-m-light ${descStyleMap[version]}`, children: description })) : null] })] }));
643
+ return (jsxs("div", { className: `flex items-start gap-5 ${className}`, children: [icon ? (jsx(Img, { className: renderBenefitIconBgStyle(version, benefitsVersion), image: { ...icon, iconVersion: isIconWhite ? 'white' : 'normal' }, asSVG: true })) : null, jsxs("div", { className: "gap-0.5", children: [label ? jsx("div", { className: `text-h6 ${titleStyleMap[version]}`, children: label }) : null, description ? (jsx("div", { className: `text-m-light ${descStyleMap[version]}`, children: description })) : null] })] }));
633
644
  });
634
645
  function renderBenefitIconBgStyle(version, benefitsVersion) {
635
646
  let bgColorStyle = 'bg-primary-main text-black';
@@ -639,19 +650,20 @@
639
650
  else if (benefitsVersion === 'normal') {
640
651
  bgColorStyle = 'bg-secondary-light text-primary-main';
641
652
  }
642
- return `w-[50px] h-[50px] rounded-full p-[10px] box-border ${bgColorStyle}`;
653
+ return `w-[50px] h-[50px] min-w-[50px] rounded-full p-[10px] box-border ${bgColorStyle}`;
643
654
  }
644
655
 
645
656
  const addSpacesBetweenNumbers = (number) => new Intl.NumberFormat('ru-RU', { maximumSignificantDigits: 3 }).format(number);
646
657
 
647
- const pictureTextStyleMap = {
658
+ const VersionStyleMap = {
648
659
  primary: 'bg-white text-primary-text',
649
660
  secondary: 'bg-primary-main text-white',
650
661
  };
662
+
651
663
  const PictureText = JSX(({ className = '', context, title, description, image, benefits, version = 'primary', sum, monthLimit, directionRight = false, ...rest }) => {
652
- return (jsxs(BlockWrapper, { className: `relative font-sans p-14 ${pictureTextStyleMap[version]} ${className}`, context: context, ...rest, children: [jsx(Headline, { context: context, className: "!p-0", title: title, description: description, headlineVersion: "M", bgColorHeadline: version, align: "center" }), jsxs("div", { className: 'flex justify-center gap-[122px] mt-[30px]', children: [image?.src && jsx(Img, { className: directionRight ? 'order-2 ml-6' : 'mr-6', image: image }), jsxs("div", { className: "w-[558px] m-auto", children: [benefits?.length ? (jsx("div", { className: "flex flex-col gap-4", children: benefits.map(renderBenefit$1(version)) })) : null, renderInsuranceSumMonth(sum, monthLimit)] })] })] }));
664
+ return (jsxs(BlockWrapper, { className: `relative font-sans p-14 ${VersionStyleMap[version]} ${className}`, context: context, ...rest, children: [jsx(Headline, { context: context, className: "!p-0", title: title, description: description, headlineVersion: "M", bgColorHeadline: version, align: "center" }), jsxs("div", { className: 'flex justify-center gap-[122px] mt-[30px]', children: [image?.src && jsx(Img, { className: directionRight ? 'order-2 ml-6' : 'mr-6', image: image }), 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(sum, monthLimit)] })] })] }));
653
665
  });
654
- const renderBenefit$1 = (version) => (benefit, i) => (jsx(BenefitItem, { icon: benefit.icon, label: benefit.label, description: benefit.description, version: version }, String(i)));
666
+ const renderBenefit$2 = (version) => (benefit, i) => (jsx(BenefitItem, { icon: benefit.icon, label: benefit.label, description: benefit.description, version: version }, String(i)));
655
667
  function renderInsuranceSumMonth(sum, monthLimit) {
656
668
  return sum || monthLimit ? (jsxs("div", { className: "bg-main-divider rounded-md flex mt-7 gap-6 px-5 py-4", children: [Number.isFinite(sum) ? renderValueBlock$1('Страховая сумма:', sum, Boolean(monthLimit)) : null, Number.isFinite(monthLimit)
657
669
  ? renderValueBlock$1('Ежемесячный лимит:', monthLimit, Boolean(sum))
@@ -777,7 +789,7 @@
777
789
  return disabled ? (jsx(DisabledButton, { rounded: rounded, ...rest, children: buttonInner })) : (jsx(RegularButton, { rounded: rounded, ...rest, children: buttonInner }));
778
790
  });
779
791
  const RegularButton = JSX(({ className = '', ariaLabel, version = 'none', rounded, href, target, children, onClick, ...rest }) => {
780
- return (jsx("a", { className: `${buttonStyle} inline-block cursor-pointer no-underline focus:border-primary-focus focus:border ${buttonStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, role: href ? 'link' : 'button', ...rest, children: children }));
792
+ return (jsx("a", { className: `${buttonStyle} border border-transparent inline-block cursor-pointer no-underline focus:border-primary-focus focus:border ${buttonStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, role: href ? 'link' : 'button', ...rest, children: children }));
781
793
  });
782
794
  const DisabledButton = JSX(({ className, children, ariaLabel, version = 'none', rounded }) => {
783
795
  return (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: -1, className: `inline-block ${buttonStyle} ${buttonDisabledStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, children: children }));
@@ -830,23 +842,27 @@
830
842
  tile: 'text-primary-text',
831
843
  'tile-white': 'text-white',
832
844
  };
845
+ const TEXT_SIZE_MAP = {
846
+ M: 'text-xl-light',
847
+ L: 'text-h5-light',
848
+ };
833
849
  const List = JSX((props) => {
834
- const { className = '', itemClassName, isDotted, items, version = 'primary' } = props;
835
- return (jsx("section", { className: `${TEXT_STYLE_MAP[version]} ${className}`, role: "list", children: items?.length
850
+ const { className = '', itemClassName, isDotted, items, listItemSize = 'M', version = 'primary', } = props;
851
+ return (jsx("section", { className: `${TEXT_STYLE_MAP[version]} ${TEXT_SIZE_MAP[listItemSize]} ${className}`, role: "list", children: items?.length
836
852
  ? items.map((_, i) => (jsx(ListItem, { className: itemClassName, isDotted: isDotted, version: version, children: _ }, String(i))))
837
853
  : null }));
838
854
  });
839
855
 
840
856
  const BaseTile = JSX(({ className = '', title = '', children, buttons, image }) => {
841
- return (jsxs("div", { className: `font-sans flex flex-col grow h-full items-start ${className}`, children: [title, jsxs("div", { className: "flex grow w-full justify-between", children: [jsxs("div", { className: "flex flex-col w-full", children: [jsx("div", { children: children }), buttons ? jsx("div", { className: "mt-9", children: buttons }) : null] }), image] })] }));
857
+ return (jsxs("div", { className: `font-sans flex flex-col grow h-full items-start ${className}`, children: [title, jsxs("div", { className: "flex grow w-full justify-between", children: [jsxs("div", { className: "flex flex-col justify-between w-full", children: [jsx("div", { children: children }), buttons ? jsx("div", { className: "mt-auto", children: buttons }) : null] }), image] })] }));
842
858
  });
843
859
 
844
- const renderBenefit = (version = 'primary', benefitsVersion = 'normal') => ({ icon, label, description }, i) => {
860
+ const renderBenefit$1 = (version = 'primary', benefitsVersion = 'normal') => ({ icon, label, description }, i) => {
845
861
  return (jsx(BenefitItem, { icon: icon, label: label, description: description, version: version, benefitsVersion: benefitsVersion }, String(i)));
846
862
  };
847
863
 
848
864
  const ProductBlockInner = JSX(({ className = '', context, title, headlineVersion = 'L', description, benefits, benefitsVersion = 'normal', buttons, image, items, version = 'primary', isDotted = true, textBlockClassName = '', }) => {
849
- return (jsxs("div", { className: `flex grow justify-between items-stretch h-full ${className}`, children: [jsxs("div", { className: `flex flex-col ${textBlockClassName}`, children: [jsx(Headline, { context: context, title: title, description: description, className: `!p-0 max-w-[600px]`, bgColorHeadline: version, headlineVersion: headlineVersion, align: "left" }), jsxs(BaseTile, { context: context, buttons: getButtons(context, buttons), children: [benefits?.filter((_) => _.label)?.length ? (jsx("div", { className: "flex gap-6 mt-6", children: benefits.map(renderBenefit(version, benefitsVersion)) })) : null, items?.length ? (jsx(List, { className: "mt-5 text-h6", items: items, itemClassName: "mb-[7px]", version: version, isDotted: isDotted })) : null] })] }), image?.src && jsx(Img, { className: "mt-[-50px]", image: image })] }));
865
+ return (jsxs("div", { className: `flex grow justify-between items-stretch h-full ${className}`, children: [jsxs("div", { className: `flex flex-col ${textBlockClassName}`, children: [jsx(Headline, { context: context, title: title, description: description, className: `!p-0 max-w-[600px]`, bgColorHeadline: version, headlineVersion: headlineVersion, align: "left" }), jsxs(BaseTile, { context: context, buttons: getButtons(context, buttons), children: [benefits?.filter((_) => _.label)?.length ? (jsx("div", { className: "flex gap-6 mt-6", children: benefits.map(renderBenefit$1(version, benefitsVersion)) })) : null, items?.length ? (jsx(List, { className: "mt-5 text-h6", items: items, itemClassName: "mb-[7px]", version: version, isDotted: isDotted })) : null] })] }), image?.src && jsx(Img, { className: "mt-[-50px]", image: image })] }));
850
866
  });
851
867
  const getButtons = (context, buttons) => {
852
868
  return buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex gap-4" })) : null;
@@ -859,10 +875,6 @@
859
875
  return (jsxs("div", { className: `flex items-center cursor-pointer ${className}`, onClick: onClick, children: [jsx(Button, { version: version, rounded: true, className: "w-12 h-12 min-h-12 min-w-12 flex items-center justify-center mr-3", ariaLabel: text, href: href, target: target, children: jsx(Img, { className: "w-4 h-4", image: { ...backwardIcon, iconVersion }, asSVG: true }) }), text ? jsx("span", { className: "text-m", children: text }) : null] }));
860
876
  }
861
877
 
862
- const productBlockStyleMap$1 = {
863
- primary: 'bg-white text-primary-text',
864
- secondary: 'bg-primary-main text-white',
865
- };
866
878
  const breadcrumbsStyleMap = {
867
879
  primary: 'text-secondary-text',
868
880
  secondary: 'text-white/80',
@@ -871,7 +883,7 @@
871
883
  const { context, className = '', breadcrumbs, backwardButton, version = 'primary', ...otherProps } = props;
872
884
  const router = context.useRouter();
873
885
  const { handlerDecorator } = context;
874
- return (jsxs(BlockWrapper, { context: context, className: `font-sans overflow-hidden p-[50px] flex flex-col box-border min-h-[528px] ${productBlockStyleMap$1[version]} ${className}`, ...otherProps, children: [backwardButton?.text
886
+ return (jsxs(BlockWrapper, { context: context, className: `font-sans overflow-hidden p-[50px] flex flex-col box-border min-h-[454px] ${VersionStyleMap[version]} ${className}`, ...otherProps, children: [backwardButton?.text
875
887
  ? renderBackwardButton(useLink({ router, handlerDecorator }, backwardButton), version, 'mb-10 -mt-2.5')
876
888
  : 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, { ...useLink({ router, handlerDecorator }, { className: breadcrumbsStyleMap[version], ...breadcrumb }) }, String(i))))) })) : null, jsx(ProductBlockInner, { context: context, version: version, ...otherProps })] }));
877
889
  });
@@ -939,41 +951,36 @@
939
951
  }
940
952
  }
941
953
 
942
- const tileStyleMap = {
943
- primary: 'bg-white text-primary-text',
944
- secondary: 'bg-primary-main text-white',
945
- };
946
954
  const Tile = JSX((props) => {
947
- const { context, title, headingType = 'h3', description, items, children, buttons, image, isDotted = true, className = '', version = 'primary', ...rest } = props;
948
- return (jsx(BlockWrapper, { context: context, className: `overflow-hidden font-sans p-9 pr-3 box-border ${className} ${tileStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, ...rest, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: headingType, as: "h2", title: title, className: `whitespace-pre-wrap max-w-[600px] text-h4
949
- ${version === 'primary' ? 'text-primary-text' : ''}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons.map((button) => ({ ...button, className: 'w-[158px]' })), className: "flex mt-9 gap-3" })) : null, image: image?.src ? jsx(Img, { className: "mt-auto ml-7", image: image }) : null, children: [description ? (jsx(Description, { className: "max-w-[600px] text-xl-light mt-2", description: description })) : null, children, renderList$2(items, version, isDotted)] }) }));
955
+ const { context, title, headingType = 'h3', description, items, children, buttons, image, isDotted = true, listItemSize = 'M', className = '', version = 'primary', ...rest } = props;
956
+ const headingClassName = version === 'primary' ? 'text-primary-text' : '';
957
+ return (jsx(BlockWrapper, { context: context, className: `overflow-hidden font-sans p-9 pr-3 box-border ${className} ${VersionStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, ...rest, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: headingType, as: "h2", title: title, className: `whitespace-pre-wrap max-w-[600px] ${headingClassName}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons.map((button) => ({ ...button, className: 'w-[158px]' })), className: "flex mt-8 gap-3" })) : null, image: image?.src ? jsx(Img, { className: "mt-auto ml-7", image: image }) : null, children: [description ? (jsx(Description, { className: "max-w-[600px] text-xl-light mt-2", description: description })) : null, children, renderList$1(items, { version, isDotted, listItemSize })] }) }));
950
958
  });
951
- function renderList$2(items, version, isDotted) {
959
+ function renderList$1(items, { version, isDotted, listItemSize }) {
952
960
  const listVersion = version === 'primary' ? 'tile' : 'tile-white';
953
- return items?.length ? (jsx(List, { items: items, isDotted: isDotted, itemClassName: "text-h6 mt-2", version: listVersion })) : null;
961
+ return items?.length ? (jsx(List, { items: items, isDotted: isDotted, className: "mt-3", listItemSize: listItemSize, itemClassName: "mb-1.5", version: listVersion })) : null;
954
962
  }
955
963
 
956
- const productTileStyleMap = {
957
- primary: 'bg-white text-primary-text',
958
- secondary: 'bg-primary-main text-white',
959
- };
960
- const ProductTile = JSX(({ context, className = '', title, headlineVersion = 'S', description, additionalDescription, benefits, buttons, image, version = 'primary', ...rest }) => {
961
- return (jsxs(BlockWrapper, { context: context, className: `bg-white overflow-hidden text-primary-text font-sans p-9 box-border min-h-[364px] relative justify-between grid ${className} ${productTileStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, ...rest, children: [jsxs("div", { className: "z-[1]", children: [jsx(Headline, { context: context, className: "!p-0", as: "h2", title: title, description: description, headlineVersion: headlineVersion, bgColorHeadline: version, align: "left" }), renderBenefits$1(benefits || [], version), additionalDescription
962
- ? renderAdditionalDescription(additionalDescription, version)
963
- : null] }), buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex self-end mt-5 gap-4 z-[1] text-l" })) : null, image?.src ? jsx(Img, { className: "absolute right-0 bottom-0", image: image }) : null] }));
964
+ const ProductTile = JSX(({ context, className = '', title, headlineVersion = 'S', description, additionalDescription, benefits = [], buttons, image, version = 'primary', ...rest }) => {
965
+ return (jsxs(BlockWrapper, { context: context, className: `overflow-hidden font-sans p-9 box-border relative justify-between grid ${className} ${VersionStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)}`, ...rest, children: [jsx(Headline, { context: context, className: `!p-0 z-10 ${title || description ? 'mb-3.5' : ''}`, as: "h2", title: title, description: description, headlineVersion: headlineVersion, bgColorHeadline: version, align: "left" }), renderBenefits$1(benefits, version), additionalDescription ? renderAdditionalDescription(additionalDescription, version) : null, buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex self-end mt-5 gap-4 z-10 text-l" })) : null, image?.src ? jsx(Img, { className: "absolute right-0 bottom-0", image: image }) : null] }));
964
966
  });
967
+ // picture width = 242px. Text can overlay picture 20px deep. Outer paddings_x = 36px. 242-36-20 = 186px
968
+ const BENEFITS_WIDTH = 'max-w-[calc(100%-186px)]';
965
969
  function renderBenefits$1(benefits, version) {
966
- return (jsxs("div", { className: "flex mt-3.5", children: [benefits.length ? (jsx("div", { className: "mr-6 gap-2.5 text-h6", children: benefits.map(renderBenefitLabel) })) : null, benefits.length ? (jsx("div", { className: "pt-1 text-m", children: benefits.map((_, i) => renderBenefitDescription(_, i, version)) })) : null] }));
967
- }
968
- function renderBenefitLabel(benefit, i) {
969
- return (jsx("div", { className: `${i ? 'mt-2.5' : ''}`, children: benefit.label }, String(i)));
970
+ return (jsx("div", { className: `z-10 grid grid-cols-[max-content_1fr] auto-rows-auto gap-x-6 gap-y-2.5 items-baseline ${BENEFITS_WIDTH}`, children: benefits.length ? benefits.map(renderBenefit(version)) : null }));
970
971
  }
971
- function renderBenefitDescription(benefit, i, version = 'primary') {
972
+ function renderBenefit(version = 'primary') {
972
973
  const labelStyleMap = {
973
974
  primary: 'text-secondary-text',
974
975
  secondary: 'text-white',
975
976
  };
976
- return (jsx("div", { className: `text-m-light ${i ? 'mt-4' : ''} ${labelStyleMap[version]}`, children: benefit.description }, String(i)));
977
+ return function renderVersionedBenefit(benefit, i) {
978
+ const { label = '', description = '' } = benefit;
979
+ return [
980
+ jsx("div", { className: "text-h6", children: label }, `label-${i}`),
981
+ jsx("div", { className: `text-m-light ${labelStyleMap[version]}`, children: description }, `desc-${i}`),
982
+ ];
983
+ };
977
984
  }
978
985
  function renderAdditionalDescription(additionalDescription, version = 'primary') {
979
986
  const descStyleMap = {
@@ -991,10 +998,6 @@
991
998
  return (jsxs("div", { children: [isShown[0] || isDisabled ? (jsx(ArrowButton, { className: `absolute z-10 ${btnClass[0]} ${className}`, onClick: handler[0], ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left", disabled: !isShown[0] })) : null, isShown[1] || isDisabled ? (jsx(ArrowButton, { className: `absolute z-10 rotate-180 ${btnClass[1]} ${className}`, onClick: handler[1], ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right", disabled: !isShown[1] })) : null] }));
992
999
  }
993
1000
 
994
- const cardVersionMap = {
995
- primary: 'bg-white text-secondary-text',
996
- secondary: 'bg-primary-main text-white',
997
- };
998
1001
  const galleryLengthForScrollMap = {
999
1002
  normal: 3,
1000
1003
  mini: 4,
@@ -1032,7 +1035,7 @@
1032
1035
  });
1033
1036
  function renderCard({ card, version }, i) {
1034
1037
  return (jsx("section", { className: `box-border border-solid border border-main-stroke p-6 mx-2 flex flex-col justify-between
1035
- items-stretch ${cardStyleMap$1[version]} ${cardVersionMap[card.version ?? 'primary']} w-full col-span-4`, role: "listitem", children: jsx(GalleryCardInner, { ...card }) }, String(i)));
1038
+ items-stretch ${cardStyleMap$1[version]} ${VersionStyleMap[card.version ?? 'primary']} w-full col-span-4`, role: "listitem", children: jsx(GalleryCardInner, { ...card }) }, String(i)));
1036
1039
  }
1037
1040
 
1038
1041
  const GalleryInner = JSX(({ context, cards = [], className = '', version = 'normal', ...rest }) => {
@@ -1078,8 +1081,8 @@
1078
1081
  LinkList,
1079
1082
  };
1080
1083
 
1081
- const renderBlocksList = ({ blocks, context, className = '' }) => blocks?.length ? blocks.map(renderBlock$2({ context, className })) : null;
1082
- const renderBlock$2 = ({ context, className }) => (block, i) => {
1084
+ const renderBlocksList = ({ blocks, context, className = '' }) => blocks?.length ? blocks.map(renderBlock$1({ context, className })) : null;
1085
+ const renderBlock$1 = ({ context, className }) => (block, i) => {
1083
1086
  if (!block) {
1084
1087
  return null;
1085
1088
  }
@@ -1121,7 +1124,7 @@
1121
1124
  });
1122
1125
  return (jsxs("li", { className: "border-0 border-b border-solid border-main-divider last:border-b-0", children: [jsxs("button", { className: `border-none bg-transparent px-0 pt-5 pb-3.5 flex justify-between text-left w-full
1123
1126
  font-sans text-h6 ${hasContent ? 'group cursor-pointer' : ''}
1124
- `, onClick: handleToggle, children: [jsx("span", { className: `text-xl font-medium pr-2.5`, children: label }), hasContent ? (jsx(Img, { image: icon, className: "text-primary-main", width: "24", height: "24", asSVG: true })) : null] }), hasContent ? (jsx(AccordionItemInner, { isExpanded: isActive, blocks: blocks, context: context })) : null] }));
1127
+ `, onClick: handleToggle, children: [jsx("span", { className: `text-xl font-medium pr-2.5`, children: label }), hasContent ? (jsx(Img, { image: icon, className: "text-primary-main flex-shrink-0", width: "24", height: "24", asSVG: true })) : null] }), hasContent ? (jsx(AccordionItemInner, { isExpanded: isActive, blocks: blocks, context: context })) : null] }));
1125
1128
  });
1126
1129
 
1127
1130
  const ALIGN_TITLE = {
@@ -1338,15 +1341,31 @@
1338
1341
  let impl = useAsyncData$1;
1339
1342
  const useAsyncData = (key, fetcher) => impl(key, fetcher);
1340
1343
 
1341
- function useCalculatorParams(dir) {
1342
- const { data } = useAsyncData(`/wcms-resources/${dir}.json`, fetchCalculatorSourceBookParams);
1343
- return data;
1344
+ async function fetchJSON(url, options) {
1345
+ try {
1346
+ return await fetchJSONUnsafe(url, options);
1347
+ }
1348
+ catch (err) {
1349
+ console.error(err);
1350
+ }
1351
+ return null;
1344
1352
  }
1345
- async function fetchCalculatorSourceBookParams(url) {
1346
- const response = await fetch(url);
1353
+ async function fetchJSONUnsafe(url, options) {
1354
+ const response = await fetch(url, {
1355
+ ...options,
1356
+ headers: {
1357
+ ...options?.headers,
1358
+ 'Content-Type': 'application/json',
1359
+ },
1360
+ });
1347
1361
  return await response.json();
1348
1362
  }
1349
1363
 
1364
+ function useCalculatorParams(dir) {
1365
+ const { data } = useAsyncData(`/wcms-resources/${dir}.json`, fetchJSONUnsafe);
1366
+ return data;
1367
+ }
1368
+
1350
1369
  const useBonusCalculatorParams = (userInputParams, sourceBookDir) => {
1351
1370
  const { travelExpenseValue, restExpenseValue } = userInputParams;
1352
1371
  const bonusCalculatorSourceBookParams = useCalculatorParams(sourceBookDir || BONUS_CALC_DEFAULT_DIR) ||
@@ -1449,13 +1468,12 @@
1449
1468
  const { rateBottomRange, rateTopRange, sumBorder } = creditCalculatorSourceBookParams;
1450
1469
  const finalRate = moneyValue <= sumBorder ? rateBottomRange : rateTopRange;
1451
1470
  const monthlyPayment = getMonthlyPayment(finalRate, userInputParams);
1452
- const extendedCalculatorParams = {
1471
+ return {
1453
1472
  ...creditCalculatorSourceBookParams,
1454
1473
  ...userInputParams,
1455
1474
  finalRate,
1456
1475
  monthlyPayment,
1457
1476
  };
1458
- return extendedCalculatorParams;
1459
1477
  };
1460
1478
 
1461
1479
  const ANNUITY = 'annuity';
@@ -1612,7 +1630,7 @@
1612
1630
  ${btnClassName}`, children: [jsx(Img, { className: `h-[24px] w-[24px] min-w-[24px] min-h-[24px] mr-4 ${iconClassName}`, image: { ...tab?.icon, iconVersion: isActiveBtn ? 'white' : 'normal' }, width: "24", height: "24", asSVG: true }), jsxs("div", { className: "border-0", children: [jsx("div", { className: `${btnTitleClassName}`, children: tab?.title }), jsx("div", { className: `text-secondary-text ${btnDescClassName}`, children: tab.description })] })] }, String(i)));
1613
1631
  }
1614
1632
  function renderTabs({ tabsShift, tabsNav, activeSlideIndex, setActiveSlideIndex }) {
1615
- return (jsxs("div", { children: [jsx("div", { style: { transform: `translateX(-${tabsShift * 388}px)` }, className: "flex flex-col justify-end items-center h-[126px] pt-[38px] box-border duration-1000", children: jsx("div", { className: "w-full flex flex-nowrap items-end gap-2", children: tabsNav.map((tab, i) => renderNavButton$2({
1633
+ return (jsxs("div", { children: [jsx("div", { style: { transform: `translateX(-${tabsShift * 388}px)` }, className: "flex flex-col justify-end items-center h-[126px] pt-9 box-border duration-1000", children: jsx("div", { className: "w-full flex flex-nowrap items-end gap-2", children: tabsNav.map((tab, i) => renderNavButton$2({
1616
1634
  tab,
1617
1635
  i,
1618
1636
  activeSlideIndex,
@@ -1620,6 +1638,11 @@
1620
1638
  })) }) }), jsx("div", { className: "w-full h-2 bg-primary-main" })] }));
1621
1639
  }
1622
1640
 
1641
+ const iconVersionMap = {
1642
+ default: 'normal',
1643
+ primary: 'white',
1644
+ secondary: 'black',
1645
+ };
1623
1646
  const cardStyleMap = {
1624
1647
  black: 'bg-black',
1625
1648
  white: 'bg-white',
@@ -1629,16 +1652,17 @@
1629
1652
  });
1630
1653
  const renderColorOption = (color, i) => (jsx("span", { className: `w-6 h-6 ml-3 border border-solid border-main-divider rounded-full ${cardStyleMap[color]}` }, String(i)));
1631
1654
  const renderButton = (button) => {
1632
- const { icon, iconRight, text } = button;
1633
- if (!text) {
1655
+ const { icon, iconRight, ...other } = button;
1656
+ if (!button?.text) {
1634
1657
  return null;
1635
1658
  }
1636
- const leftIcon = renderButtonIcon(icon);
1637
- const rightIcon = renderButtonIcon(iconRight);
1638
- return (jsx(Button, { className: "mt-5 w-full", appendLeft: leftIcon, appendRight: rightIcon, ...button }));
1659
+ const iconVersion = iconVersionMap[button?.version || 'default'];
1660
+ const leftIcon = renderButtonIcon({ ...icon, iconVersion });
1661
+ const rightIcon = renderButtonIcon({ ...iconRight, iconVersion });
1662
+ return (jsx(Button, { className: "mt-5 w-full", appendLeft: leftIcon, appendRight: rightIcon, ...other }));
1639
1663
  };
1640
1664
  const renderButtonIcon = (buttonIcon) => {
1641
- if (!buttonIcon || !buttonIcon.icon) {
1665
+ if (!buttonIcon || (!buttonIcon?.icon && !buttonIcon?.src)) {
1642
1666
  return null;
1643
1667
  }
1644
1668
  const iconWidth = buttonIcon?.size?.width ? `${buttonIcon.size.width}` : '24';
@@ -1687,7 +1711,7 @@
1687
1711
  const DIVIDER_CLASSES$1 = 'border-main-divider border border-t-0 border-x-0';
1688
1712
  const FIRST_CELL_CLASSES$1 = 'w-[200px] mr-6';
1689
1713
  const COLS_LENGTH_FOR_SCROLL$1 = 2;
1690
- const COLUMN_WIDTH$1 = 4 * 80 + 4 * 4; // w-80 + gap-4 = 336px
1714
+ const COLUMN_WIDTH$2 = 4 * 80 + 4 * 4; // w-80 + gap-4 = 336px
1691
1715
 
1692
1716
  const HeaderCell = JSX(({ icon, image, title, link }) => (jsxs("div", { className: `w-80 box-border flex flex-col items-center rounded-t-md border-b-0 px-7 pt-7 pb-[46px] ${BORDER_CLASSES$1} ${GRADIENT}`, role: "columnheader", children: [icon && !image?.src && (jsx(Img, { className: "h-[63px] w-[63px] min-w-[63px] min-h-[63px] mb-4", image: icon, width: "63", height: "63" })), image?.src && jsx(Img, { className: "mb-[18px]", image: image }), title ? (jsx(Heading, { headingType: "h4", as: "h3", className: "text-center text-white", title: title })) : null, link?.text && (jsx("div", { className: "mt-auto w-full", children: jsx(Button, { href: link.href, target: link.target, className: "mt-4 w-full text-primary-main bg-white hover:bg-secondary-hover active:bg-secondary-active", children: jsx("div", { className: "text-xs-light font-medium py-[11px]", children: link.text }) }) }))] })));
1693
1717
 
@@ -1700,7 +1724,17 @@
1700
1724
  const TableRowContainer = JSX(({ children }) => (jsx("div", { className: "self-start flex flex-col", role: "row", children: jsx("div", { className: "flex", children: children }) })));
1701
1725
 
1702
1726
  const ComparisonTableColumnHeaders = JSX(({ colHeaders, activeCardIndex, router, handlerDecorator }) => {
1703
- return (jsxs(TableRowContainer, { children: [jsx("div", { className: FIRST_CELL_CLASSES$1, role: "columnheader" }), jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$1, children: colHeaders.map((header, i) => (jsx(HeaderCell, { ...header, link: header.link && useLink({ router, handlerDecorator }, header.link) }, String(i)))) })] }));
1727
+ return (jsxs(TableRowContainer, { children: [jsx("div", { className: FIRST_CELL_CLASSES$1, role: "columnheader" }), jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$2, children: colHeaders.map((header, i) => (jsx(HeaderCell, { ...header, link: header.link && useLink({ router, handlerDecorator }, header.link) }, String(i)))) })] }));
1728
+ });
1729
+
1730
+ const TableArrowScrollControl = JSX(({ isScrollAvailable, handleNextClick, handlePrevClick, showNextButton, showPrevButton }) => {
1731
+ return isScrollAvailable ? (jsx("div", { children: renderArrows({
1732
+ handler: [handlePrevClick, handleNextClick],
1733
+ isShown: [showPrevButton, showNextButton],
1734
+ btnClass: ['top-[108px]', 'top-11'],
1735
+ className: 'right-7',
1736
+ isDisabled: true,
1737
+ }) })) : null;
1704
1738
  });
1705
1739
 
1706
1740
  const TableCell = JSX(({ cell, isFirstRow, isLastRow, isFillGradient }) => {
@@ -1713,17 +1747,7 @@
1713
1747
  const renderCellInner$1 = ({ label, description }, i, isFillGradient) => (jsxs("div", { className: "first:pt-7 pt-6 last:pb-7", children: [label ? jsx("h4", { className: labelStyle(isFillGradient), children: label }) : null, description ? jsx("div", { className: descriptionStyle(isFillGradient), children: description }) : null] }, String(i)));
1714
1748
 
1715
1749
  const titleStyle = (isLastRow = false) => `text-s py-7 ${DIVIDER_CLASSES$1} ${FIRST_CELL_CLASSES$1} ${isLastRow ? 'border-b-0' : 'border-solid'}`;
1716
- const TableRow = JSX(({ row: { header, data }, activeCardIndex, isColoredFirstColumn, isFirstRow, isLastRow }) => (jsxs(TableRowContainer, { children: [header?.title ? jsx("div", { className: titleStyle(isLastRow), children: header.title }) : null, data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$1, children: data.map((cell, i) => (jsx(TableCell, { cell: cell, isFirstRow: isFirstRow, isLastRow: isLastRow, isFillGradient: isColoredFirstColumn && i === 0 }, String(i)))) })) : null] })));
1717
-
1718
- const TableArrowScrollControl = JSX(({ isScrollAvailable, handleNextClick, handlePrevClick, showNextButton, showPrevButton }) => {
1719
- return isScrollAvailable ? (jsx("div", { children: renderArrows({
1720
- handler: [handlePrevClick, handleNextClick],
1721
- isShown: [showPrevButton, showNextButton],
1722
- btnClass: ['top-[108px]', 'top-11'],
1723
- className: 'right-7',
1724
- isDisabled: true,
1725
- }) })) : null;
1726
- });
1750
+ const TableRow = JSX(({ row: { header, data }, activeCardIndex, isColoredFirstColumn, isFirstRow, isLastRow }) => (jsxs(TableRowContainer, { children: [header?.title ? jsx("div", { className: titleStyle(isLastRow), children: header.title }) : null, data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$2, children: data.map((cell, i) => (jsx(TableCell, { cell: cell, isFirstRow: isFirstRow, isLastRow: isLastRow, isFillGradient: isColoredFirstColumn && i === 0 }, String(i)))) })) : null] })));
1727
1751
 
1728
1752
  const ComparisonTableRows = JSX(({ rowData, activeCardIndex, isColoredFirstColumn, ...tableArrowScrollProps }) => {
1729
1753
  return (jsxs("div", { className: "relative", children: [rowData.map((row, i, { length }) => (jsx(TableRow, { row: row, isFirstRow: i === 0, isLastRow: i + 1 === length, activeCardIndex: activeCardIndex, isColoredFirstColumn: isColoredFirstColumn }, String(i)))), jsx(TableArrowScrollControl, { ...tableArrowScrollProps })] }));
@@ -1762,26 +1786,21 @@
1762
1786
  return (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-[11px]", children: !isShowAllRow ? 'Показать все параметры' : 'Скрыть' }) })] }) }));
1763
1787
  };
1764
1788
 
1789
+ const roundTo = (value, precision = 2) => {
1790
+ const factor = 10 ** precision;
1791
+ return Math.round(parseFloat(String(value)) * factor) / factor;
1792
+ };
1793
+
1765
1794
  function useExchangeRates() {
1766
1795
  const { data } = useAsyncData(EXCHANGE_RATES_URL, fetchExchangeRates);
1767
1796
  const result = data?.hits?.hits?.map((_) => _._source) || [];
1768
1797
  return result.length ? getCurrencyListByRate(result) : result;
1769
1798
  }
1770
- async function fetchExchangeRates() {
1771
- try {
1772
- const response = await fetch(EXCHANGE_RATES_URL, {
1773
- method: 'POST',
1774
- headers: {
1775
- 'Content-Type': 'application/json',
1776
- },
1777
- body: JSON.stringify(EXCHANGE_RATES_BODY),
1778
- });
1779
- return await response.json();
1780
- }
1781
- catch (err) {
1782
- console.error(err);
1783
- return Promise.resolve();
1784
- }
1799
+ function fetchExchangeRates() {
1800
+ return fetchJSON(EXCHANGE_RATES_URL, {
1801
+ method: 'POST',
1802
+ body: JSON.stringify(EXCHANGE_RATES_BODY),
1803
+ });
1785
1804
  }
1786
1805
  const EXCHANGE_RATES_URL = 'https://coins.rshb.ru/api/catalog/vue_storefront_magento_1_currency_rates_average/currency_rates_average/_search?size=10000';
1787
1806
  const EXCHANGE_RATES_BODY = {
@@ -1816,13 +1835,12 @@
1816
1835
  if (!result.some((i) => i.code === currencyCode)) {
1817
1836
  result.push({
1818
1837
  code: currencyCode,
1819
- buy: roundRate(Number(_.rate_buy)),
1820
- sell: roundRate(Number(_.rate_sell)),
1838
+ buy: roundTo(Number(_.rate_buy), 3),
1839
+ sell: roundTo(Number(_.rate_sell), 3),
1821
1840
  });
1822
1841
  }
1823
1842
  return result;
1824
1843
  }, []);
1825
- const roundRate = (value) => Math.round(value * 1000) / 1000;
1826
1844
 
1827
1845
  var Currency;
1828
1846
  (function (Currency) {
@@ -1852,11 +1870,6 @@
1852
1870
 
1853
1871
  const CurrentLocation = JSX(({ className = '', address, distance }) => (jsxs("div", { className: `flex ${className}`, children: [jsx(Img, { image: { icon: 'GpsIcon' }, width: "24", height: "24", asSVG: true }), jsxs("div", { className: "ml-3", children: [address ? jsx("p", { className: "text-primary-main m-0 mb-1 text-l", children: address }) : null, distance ? (jsxs("p", { className: "text-secondary-text m-0 text-m", children: ["\u041A\u0443\u0440\u0441 \u0443\u043A\u0430\u0437\u0430\u043D \u0434\u043B\u044F \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043E \u043E\u0444\u0438\u0441\u0430 - ", distance] })) : null] })] })));
1854
1872
 
1855
- const roundTo = (value, precision = 2) => {
1856
- const factor = Math.pow(10, precision);
1857
- return Math.round(parseFloat(String(value)) * factor) / factor;
1858
- };
1859
-
1860
1873
  const calculateResult = (value, rate, precision) => {
1861
1874
  const result = Number(formatValue(value)) * Math.pow(rate, precision ? -1 : 1);
1862
1875
  return Number.isInteger(result) ? result : roundTo(result);
@@ -1984,6 +1997,10 @@
1984
1997
  return (jsx(BlockWrapper, { context: context, className: `bg-white text-primary-text font-sans p-9 box-border ${className}`, ...rest, children: jsx(BaseTile, { context: context, title: jsx(Heading, { headingType: "h4", title: title, className: "whitespace-pre-wrap text-h4" }), 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, { ...DEFAULT_LOCATION })] }), currencyRates.length && currencyRatesBuy.length && currencyRatesSell.length ? (jsx(ExchangeCurrencyCalculator, { className: "grow", context: context, currencyRatesBuy: currencyRatesBuy, currencyRatesSell: currencyRatesSell, button: button })) : null] }) }) }));
1985
1998
  });
1986
1999
 
2000
+ const ICON_VERSION_MAP = {
2001
+ 'bg-white': 'normal',
2002
+ transparent: 'white',
2003
+ };
1987
2004
  const SVG_COLOR = {
1988
2005
  'bg-white': 'text-primary-main',
1989
2006
  transparent: 'text-white',
@@ -1993,11 +2010,11 @@
1993
2010
  transparent: 'text-white',
1994
2011
  };
1995
2012
  const Logo = JSX(({ className = '', href, logo, children = logo?.title, targetBlank, bgColor = 'bg-white', hideTitle, }) => {
1996
- return (jsxs("a", { className: `inline-flex items-center font-sans no-underline ${className}`, href: href || '/', target: targetBlank ? '_blank' : '_self', "aria-label": logo?.title || 'Россельхозбанк', children: [logo?.image?.src ? (jsx(Img, { image: logo.image, className: SVG_COLOR[bgColor], width: "40", height: "45", asSVG: true })) : (jsx(Img, { image: { icon: 'Logo' }, className: `${SVG_COLOR[bgColor]} w-10`, width: "40", height: "45", asSVG: true })), hideTitle ? null : renderTitle(children, bgColor, logo?.title)] }));
2013
+ return (jsxs("a", { className: `inline-flex items-center font-sans no-underline ${className}`, href: href || '/', target: targetBlank ? '_blank' : '_self', "aria-label": logo?.title || 'Россельхозбанк', children: [logo?.image?.src ? (jsx(Img, { image: logo.image, className: SVG_COLOR[bgColor], width: "40", height: "45", asSVG: true })) : (jsx(Img, { image: { icon: 'Logo', iconVersion: ICON_VERSION_MAP[bgColor] }, className: `${SVG_COLOR[bgColor]} w-10`, width: "40", height: "45", asSVG: true })), hideTitle ? null : renderTitle$1(children, bgColor, logo?.title)] }));
1997
2014
  });
1998
- const renderTitle = (children, bgColor, title) => {
2015
+ const renderTitle$1 = (children, bgColor, title) => {
1999
2016
  const text = children || title || 'Россельхозбанк';
2000
- return jsx("span", { className: `${TEXT_COLOR[bgColor]} font-medium ml-2.5`, children: text });
2017
+ return jsx("span", { className: `${TEXT_COLOR[bgColor]} font-light ml-2.5`, children: text });
2001
2018
  };
2002
2019
 
2003
2020
  const useSearch = () => {
@@ -2067,16 +2084,9 @@
2067
2084
  const mergeTopItems = (left, right) => substitute(left, right).concat(subtract(right, left));
2068
2085
 
2069
2086
  function useSitemap() {
2070
- const { data } = useAsyncData(sitemapURL(), fetchSitemap);
2087
+ const { data } = useAsyncData(`/wcms-resources/${projectSettings.SITEMAP || 'sitemap'}.json`, fetchJSONUnsafe);
2071
2088
  return data || {};
2072
2089
  }
2073
- async function fetchSitemap() {
2074
- const response = await fetch(sitemapURL());
2075
- return await response.json();
2076
- }
2077
- function sitemapURL() {
2078
- return `/wcms-resources/${projectSettings.SITEMAP || 'sitemap'}.json`;
2079
- }
2080
2090
 
2081
2091
  const Sitemap = JSX(({ className = '', items, context }) => {
2082
2092
  const sitemap = useSitemap();
@@ -2168,56 +2178,6 @@
2168
2178
  const renderMonthNames = (item, colSize) => item.month.map((_, i) => (jsx("div", { style: { flexBasis: `${colSize}%` }, children: _.text }, `monthName-${i}`)));
2169
2179
  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(Img, { image: _.image, className: "flex" }) }, `monthImage-${_.image.src}`)) : null);
2170
2180
 
2171
- const filterBlocksByTag = (blocks, tag) => {
2172
- return tag ? blocks.filter((block) => block?.tags?.includes(tag)) : blocks;
2173
- };
2174
-
2175
- const EmbeddableGroupBlocks = {
2176
- ProductBlock,
2177
- ProductTile,
2178
- };
2179
-
2180
- const GroupBlocksItem = JSX(({ groupBlocks, context }) => {
2181
- return (jsx("div", { className: "grid grid-cols-12 gap-1 box-border", children: groupBlocks?.length ? groupBlocks.map(renderBlock$1(context)) : null }));
2182
- });
2183
- const renderBlock$1 = (context) => (block, i) => {
2184
- const type = block?.blockType;
2185
- if (!type || !(type in EmbeddableGroupBlocks)) {
2186
- return null;
2187
- }
2188
- const classNameBlock = style2className(block?.style);
2189
- const EmbeddedBlock = EmbeddableGroupBlocks[type];
2190
- return (jsx(EmbeddedBlock, { context: context, ...block, className: classNameBlock }, `block_${i}`));
2191
- };
2192
-
2193
- const GroupBlockTabs = JSX((props) => {
2194
- const { className = '', tabs, currentTag, isShowCounter = false, onTabClick } = props;
2195
- return (jsx("div", { className: `box-border flex gap-x-1 h-14 ${className}`, role: "tablist", children: tabs?.map(renderTab$2({ currentTag, isShowCounter, onTabClick })) }));
2196
- });
2197
- const badgeStyle$1 = 'min-w-[22px] w-[22px] h-[22px] rounded-full text-xs-light ml-2';
2198
- const renderTab$2 = ({ currentTag, isShowCounter, onTabClick }) => (tab, i) => {
2199
- const isActive = currentTag === tab.tag;
2200
- const tabBg = isActive ? 'bg-primary-main' : 'group bg-white';
2201
- const tabText = `text-m-light ${isActive ? 'text-white' : 'text-secondary-text group-hover:text-primary-main'}`;
2202
- const counterBlockStyle = `${badgeStyle$1}
2203
- ${isActive
2204
- ? 'bg-white/30 text-white'
2205
- : 'bg-main-divider text-secondary-text group-hover:text-primary-main'}`;
2206
- return (jsxs("div", { className: `flex-1 flex items-center justify-center cursor-pointer m-1 ${tabBg}`, role: "tab", onClick: () => onTabClick(tab.tag), "aria-selected": isActive, children: [tab?.title ? jsx("div", { className: tabText, children: tab.title }) : null, isShowCounter ? (jsx("div", { className: `flex items-center justify-center ${counterBlockStyle}`, children: tab.count })) : null] }, String(i)));
2207
- };
2208
-
2209
- const GroupBlock = JSX(({ className = '', tabs, context, groupBlocks = [], isShowCounter, ...rest }) => {
2210
- const [currentTag, setCurrentTag] = useState(tabs?.[0]?.tag);
2211
- const filteredBlocks = filterBlocksByTag(groupBlocks, currentTag);
2212
- const tabsNewMap = tabs?.map((tab) => {
2213
- const count = tab.tag
2214
- ? groupBlocks.filter((block) => block?.tags?.includes(tab.tag)).length
2215
- : groupBlocks.length;
2216
- return { ...tab, count };
2217
- });
2218
- return (jsxs(BlockWrapper, { context: context, className: `box-border ${className}`, ...rest, children: [tabsNewMap?.length ? (jsx(GroupBlockTabs, { currentTag: currentTag, onTabClick: setCurrentTag, tabs: tabsNewMap, isShowCounter: isShowCounter })) : null, groupBlocks.length ? (jsx("div", { className: "mt-1", children: jsx(GroupBlocksItem, { context: context, groupBlocks: filteredBlocks }) })) : null] }));
2219
- });
2220
-
2221
2181
  const checkIsHrefSameOrigin = (href, router) => getOrigin(href) === getOrigin(router.href);
2222
2182
 
2223
2183
  const isHrefActive = (href, router, cmp = (targetHref, baseHref) => baseHref.startsWith(targetHref)) => {
@@ -2232,17 +2192,17 @@
2232
2192
 
2233
2193
  const TEXT_CLASSES$2 = 'font-sans text-s-light';
2234
2194
  const LINK_CLASSES$1 = 'inline-block border border-solid bg-transparent text-center no-underline';
2235
- const TopItem = JSX(({ className = '', text, href, target, active, flat, onClick, children, ariaLabel, bgColor = 'bg-white', }) => (jsx("a", { className: `${getLinkClasses$1(bgColor, active, flat)} ${className}`, href: href, target: target, onClick: onClick, rel: "noopener noreferrer", "aria-label": ariaLabel, children: jsx("span", { className: getTextClasses$2(bgColor, active, flat), children: text || children }) })));
2236
- const getLinkClasses$1 = (bgColor, active = false, flat = false) => {
2195
+ const TopItem = JSX(({ className = '', text, href, target, active, flat, onClick, children, ariaLabel, bgColor = 'bg-white', }) => (jsx("a", { className: `${getLinkClasses(bgColor, active, flat)} ${className}`, href: href, target: target, onClick: onClick, rel: "noopener noreferrer", "aria-label": ariaLabel, children: jsx("span", { className: getTextClasses$1(bgColor, active, flat), children: text || children }) })));
2196
+ const getLinkClasses = (bgColor, active = false, flat = false) => {
2237
2197
  let classes = 'border-transparent';
2238
2198
  if (active) {
2239
2199
  classes = `rounded-md ${bgColor === 'bg-white' ? 'border-primary-main' : 'border-white'}`;
2240
2200
  }
2241
2201
  return `${classes} ${LINK_CLASSES$1} ${flat ? '' : 'px-4 py-2'}`;
2242
2202
  };
2243
- const getTextClasses$2 = (bgColor, active = false, flat = false) => {
2244
- if (bgColor !== 'bg-white') {
2245
- return `text-white ${TEXT_CLASSES$2}`;
2203
+ const getTextClasses$1 = (bgColor, active = false, flat = false) => {
2204
+ if (bgColor === 'transparent') {
2205
+ return `text-white hover:text-primary-hover ${TEXT_CLASSES$2}`;
2246
2206
  }
2247
2207
  const nonActiveAtoms = `${flat ? 'text-primary-text' : 'text-secondary-text'} hover:text-primary-main`;
2248
2208
  return `${active ? 'text-primary-main' : nonActiveAtoms} ${TEXT_CLASSES$2}`;
@@ -2280,7 +2240,7 @@
2280
2240
  };
2281
2241
  const HeaderSecondaryMenu = JSX(({ className, defaultLocation = '', bgColor = 'bg-white' }) => {
2282
2242
  const [city, getCity] = useGeolocation(defaultLocation);
2283
- 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 }), jsx(TopItem, { className: "mr-7", flat: true, href: "#", 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 }), jsx(HeaderSecondaryMenuButton, { className: `mr-5 group ${COLORS_MAP[bgColor]}`, ariaLabel: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", children: jsx(Img, { image: { icon: 'LoupeIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full pointer-events-none", imageClassName: "group-hover:text-primary-main 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(Img, { image: { icon: 'GridIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full bg-main-divider rounded-full pointer-events-none", imageClassName: "group-hover:text-primary-main", asSVG: true }) })] }));
2243
+ 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 }), jsx(TopItem, { className: "mr-7", flat: true, href: "#", 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 }), jsx(HeaderSecondaryMenuButton, { className: `mr-5 group ${COLORS_MAP[bgColor]}`, ariaLabel: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", children: jsx(Img, { 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(Img, { 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 }) })] }));
2284
2244
  });
2285
2245
 
2286
2246
  const maxBy = (discriminator) => (list) => list.reduceRight((a, b) => (discriminator(a) > discriminator(b) ? a : b));
@@ -2294,8 +2254,8 @@
2294
2254
 
2295
2255
  const TEXT_CLASSES$1 = 'font-sans text-l-light';
2296
2256
  const BORDER_CLASSES = 'absolute left-0 -bottom-3 w-full h-[2px]';
2297
- const HeaderItem = JSX(({ className = '', text, href, target, active, onClick, children, bgColor = 'bg-white', dataItemName, }) => (jsxs("a", { className: `relative inline-block bg-transparent text-center no-underline ${className}`, href: href, target: target, onClick: onClick, "data-item-name": dataItemName, children: [jsx("span", { className: getTextClasses$1(bgColor, active), children: text || children }), active ? jsx("div", { className: getBorderClasses(bgColor, active) }) : null] })));
2298
- const getTextClasses$1 = (bgColor, active = false) => {
2257
+ const HeaderItem = JSX(({ className = '', text, href, target, active, onClick, children, bgColor = 'bg-white', dataItemName, }) => (jsxs("a", { className: `relative inline-block bg-transparent text-center no-underline ${className}`, href: href, target: target, onClick: onClick, "data-item-name": dataItemName, children: [jsx("span", { className: getTextClasses(bgColor, active), children: text || children }), active ? jsx("div", { className: getBorderClasses(bgColor, active) }) : null] })));
2258
+ const getTextClasses = (bgColor, active = false) => {
2299
2259
  let classes = 'text-white';
2300
2260
  if (bgColor === 'bg-white') {
2301
2261
  classes = active ? 'text-primary-main' : 'text-primary-text hover:text-primary-main';
@@ -2358,8 +2318,9 @@
2358
2318
  const { handlerDecorator } = context;
2359
2319
  const mergedItems = mergeTopItems(sitemap.topItems, topItems);
2360
2320
  const [firstPortal] = mergedItems;
2361
- // Если по слагу невозможно понять к какому подпорталу этот слаг относиться, то выбираем первый подпортал.
2362
- const activeTopItem = mergedItems.find(isTopItemActive(router)) || firstPortal;
2321
+ const activeTopItem = showSubMenu
2322
+ ? mergedItems.find(isTopItemActive(router)) || firstPortal // Если по слагу невозможно понять к какому подпорталу этот слаг относиться, то выбираем первый подпортал.
2323
+ : null;
2363
2324
  const topMenu = mergedItems.map((_, i) => (jsx(TopItem, { active: _ === activeTopItem, ...useLink({ router, handlerDecorator }, _), "aria-label": _.text, bgColor: bgColor }, String(i))));
2364
2325
  return (jsx(BlockWrapper, { tag: "header", context: context, className: `pt-6 pb-5 px-20 ${bgColor} ${className}`, ...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, bgColor: bgColor })] }), jsx("div", { className: `mt-6 h-[1px] ${BORDER_COLORS[bgColor]}` }), showSubMenu && activeTopItem?.items?.length ? (jsx(HeaderSubMenu, { context: context, subItems: activeTopItem.items, bgColor: bgColor })) : null] }) }));
2365
2326
  });
@@ -2375,7 +2336,7 @@
2375
2336
  const isLastShift = galleryLength === tabsShift + 2;
2376
2337
  const showPrevButton = tabsShift > 0;
2377
2338
  const activeHref = cards[activeSlideIndex]?.href;
2378
- return (jsxs("section", { role: "listitem", className: `min-w-full text-center ${className}`, children: [jsxs("div", { className: "relative mt-7 overflow-hidden", children: [galleryLength
2339
+ return (jsxs("section", { role: "listitem", className: `min-w-full text-center ${className}`, children: [jsxs("div", { className: "relative overflow-hidden", children: [galleryLength
2379
2340
  ? renderGallery({
2380
2341
  tabsShift,
2381
2342
  cards,
@@ -2392,7 +2353,8 @@
2392
2353
  });
2393
2354
  function renderGallery({ tabsShift, cards, activeSlideIndex, isLastShift, setActiveSlideIndex, }) {
2394
2355
  const tabsShiftWidth = isLastShift ? tabsShift * 460 - 240 : tabsShift * 460;
2395
- 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-[38px]", children: cards.map((slide, i) => renderSlide({
2356
+ const cardsAlignStyle = cards.length > 2 ? 'justify-start' : 'justify-center';
2357
+ 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) => renderSlide({
2396
2358
  slide,
2397
2359
  i,
2398
2360
  activeSlideIndex,
@@ -2404,7 +2366,7 @@
2404
2366
  const btnClassName = isActiveBtn
2405
2367
  ? 'shadow-dark-blue/42 border-primary-main'
2406
2368
  : `ease-in duration-300 border-main-stroke`;
2407
- return (jsxs("button", { type: "button", onClick: onClick, className: `p-[30px] min-w-[460px] flex items-center bg-white border-solid border relative ${btnClassName}`, children: [slide?.icon ? (jsx(Img, { className: "p-3 rounded-full bg-secondary-light mr-[30px]", image: slide.icon, width: "70", height: "70" })) : null, jsxs("div", { className: "flex gap-3.5", children: [slide?.sum ? renderValueBlock('страховая сумма', slide.sum) : null, slide?.fee ? renderValueBlock('страховой взнос', slide.fee) : null] }), renderDoneIcon(isActiveBtn)] }, String(i)));
2369
+ return (jsxs("button", { type: "button", onClick: onClick, className: `p-[30px] min-w-[460px] flex items-center bg-white border-solid border relative ${btnClassName}`, children: [slide?.icon ? (jsx(Img, { className: "p-6 rounded-full bg-secondary-light mr-[30px]", image: slide.icon, width: "108", height: "108" })) : null, jsxs("div", { className: "flex gap-3.5", children: [slide?.sum ? renderValueBlock('страховая сумма', slide.sum) : null, slide?.fee ? renderValueBlock('страховой взнос', slide.fee) : null] }), renderDoneIcon(isActiveBtn)] }, String(i)));
2408
2370
  }
2409
2371
  function renderValueBlock(title, sum) {
2410
2372
  return (jsxs("div", { className: "flex flex-col text-left whitespace-pre", children: [jsxs("span", { className: "text-h6", children: [addSpacesBetweenNumbers(sum), " \u20BD"] }), jsx("span", { className: "text-secondary-text text-l mt-1", children: title })] }));
@@ -2415,7 +2377,7 @@
2415
2377
 
2416
2378
  const InsuranceAmountBlock = JSX(({ className = '', context, title, insuranceTabs = [], button, ...rest }) => {
2417
2379
  const [activeSlideIndex, setActiveSlideIndex] = useState(0);
2418
- return (jsxs(BlockWrapper, { context: context, className: `box-border py-[50px] overflow-hidden relative font-sans w-100 bg-white ${className}`, ...rest, children: [title ? jsx(Heading, { className: "text-center", title: title, headingType: "h3" }) : null, insuranceTabs?.length > 1 ? (jsx("div", { className: "p-1.5 bg-secondary-light w-fit m-auto rounded-md mt-[34px]", children: insuranceTabs.map((item, i) => renderNavButton$1({
2380
+ return (jsxs(BlockWrapper, { context: context, 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({
2419
2381
  title: item?.title,
2420
2382
  i,
2421
2383
  activeSlideIndex,
@@ -2441,20 +2403,17 @@
2441
2403
  return (jsx("button", { type: "button", onClick: onClick, "aria-label": title, className: `box-border px-4 py-3 text-m-light ${btnClassName}`, children: title }, String(i)));
2442
2404
  }
2443
2405
 
2444
- const mobileAppStyleMap = {
2445
- primary: 'bg-white text-primary-text',
2446
- secondary: 'bg-primary-main text-white',
2447
- };
2448
2406
  const MobileAppTile = JSX(({ className = '', context, title = 'Мобильное приложение', qr, buttons, version = 'primary', items, image, headingType = 'h4', ...rest }) => {
2449
2407
  const textColorClass = version === 'primary' ? 'text-primary-text' : '';
2450
2408
  const containerStyle = version === 'secondary' ? 'p-3.5 min-w-[120px]' : 'min-w-[92px]';
2409
+ const buttonsWithClass = buttons?.map((_) => ({ ..._, className: 'min-w-[168px]' }));
2451
2410
  return (jsxs(BlockWrapper, { context: context, className: `flex justify-between font-sans p-9 box-border relative min-h-[320px]
2452
2411
  ${getTileMinHeight(className)}
2453
- ${mobileAppStyleMap[version]}
2412
+ ${VersionStyleMap[version]}
2454
2413
  ${className}`, ...rest, children: [jsx(BaseTile, { context: context, className: "z-[1]", title: title ? (jsx(Heading, { headingType: headingType, as: "h3", title: title, className: `whitespace-pre-wrap max-w-[509px] mb-6
2455
- ${textColorClass}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-8 gap-4" })) : null, children: jsxs("div", { className: "flex flex-1 items-center", children: [qr?.src && (jsx("div", { className: `flex justify-center mr-5 bg-white rounded-md ${containerStyle}`, children: jsx(Img, { image: qr }) })), renderList$1(version, items)] }) }), image?.src ? (jsx("div", { className: "absolute right-0 bottom-0", children: jsx(Img, { image: image }) })) : null] }));
2414
+ ${textColorClass}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttonsWithClass, className: "flex gap-4" })) : null, children: jsxs("div", { className: "flex flex-1 items-center", children: [qr?.src ? (jsx("div", { className: `flex justify-center mr-5 bg-white rounded-md ${containerStyle}`, children: jsx(Img, { className: "w-fit", image: qr }) })) : null, renderList(version, items)] }) }), image?.src ? (jsx("div", { className: "absolute right-0 bottom-0", children: jsx(Img, { image: image }) })) : null] }));
2456
2415
  });
2457
- const renderList$1 = (version, items) => {
2416
+ const renderList = (version, items) => {
2458
2417
  return items?.length ? (jsx(List, { items: items, itemClassName: "text-l-light mb-2 last:mb-0", version: version === 'primary' ? 'tile' : 'tile-white' })) : (jsx("span", { className: "text-m-light text-secondary-text", children: "\u041D\u0430\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u0443 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u043D\u0430 QR-\u043A\u043E\u0434 \u0438 \u0441\u043A\u0430\u0447\u0430\u0439\u0442\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" }));
2459
2418
  };
2460
2419
 
@@ -2469,29 +2428,6 @@
2469
2428
  .map((button, i) => (jsx(NavigationItem, { className: "first:rounded-tl-md first:rounded-bl-md last:rounded-tr-md last:rounded-br-md", isActive: button === activeButton, ...useLink({ router, handlerDecorator }, button) }, String(i)))) })) : null] }));
2470
2429
  });
2471
2430
 
2472
- const TEXT_CLASSES = 'font-sans text-m';
2473
- const LINK_CLASSES = 'flex-1 flex items-center justify-center cursor-pointer';
2474
- const NavigatorTabItem = JSX(({ className = '', text, active, onClick, href, target = '_self', children }) => (jsx("a", { className: getLinkClasses(className, active), target: target, href: href, onClick: onClick, children: jsx("span", { className: getTextClasses(active), children: text || children }) })));
2475
- const getLinkClasses = (className, active = false) => {
2476
- const classes = active ? 'bg-primary-main' : 'group bg-white';
2477
- return `${classes} ${LINK_CLASSES} ${className}`;
2478
- };
2479
- const getTextClasses = (active = false) => {
2480
- const classes = active ? 'text-white' : 'text-secondary-text group-hover:text-primary-main ';
2481
- return `${classes} ${TEXT_CLASSES}`;
2482
- };
2483
-
2484
- const NavigatorTabs = JSX(({ className = '', navigatorTabs, context, ...rest }) => {
2485
- return (jsx(BlockWrapper, { context: context, className: `sticky top-0 z-20 box-border flex gap-x-1 h-14 ${className}`, ...rest, children: navigatorTabs ? navigatorTabs.map(renderTab$1(context)) : null }));
2486
- });
2487
- const renderTab$1 = (context) => (tab, i) => {
2488
- const { handlerDecorator, useRouter } = context;
2489
- const router = useRouter();
2490
- const hash = getHash(router.href);
2491
- const active = hash ? tab.href === hash : i === 0;
2492
- return (jsx(NavigatorTabItem, { active: active, ...useLink({ router, handlerDecorator }, tab) }, tab.text));
2493
- };
2494
-
2495
2431
  const foldableBlockClassNames = 'transition-all duration-300 max-h-0 overflow-hidden';
2496
2432
  const useActiveHandler = ({ initialState = false }) => {
2497
2433
  const [isActive, setIsActive] = useState(initialState);
@@ -2521,7 +2457,7 @@
2521
2457
  const getFoldButtonLabel = isActive ? 'Скрыть' : foldButtonLabel;
2522
2458
  return blocks ? (jsxs("div", { children: [renderBlocks(blocks, render, { blocksToHide, isActive, containerClasses }), hiddenBlocksNum ? (jsxs("button", { className: buttonClassName, "data-theme": foldButtonDataTheme, onClick: handleToggle, children: [jsx("span", { className: "pr-3", children: getFoldButtonLabel }), icon ? jsx(Icon, { name: icon, iconVersion: "white", width: "20", height: "20", asSVG: true }) : null] })) : null] })) : null;
2523
2459
  });
2524
- const renderBlocks = (blocks, render, { blocksToHide, isActive, containerClasses }) => {
2460
+ const renderBlocks = (blocks, render, { blocksToHide, isActive, containerClasses = '' }) => {
2525
2461
  const visibleBlocks = blocks.slice(0, blocks.length - blocksToHide);
2526
2462
  const hiddenBlocks = blocksToHide > 0 ? blocks.slice(-blocksToHide) : [];
2527
2463
  return render(jsxs("div", { children: [visibleBlocks, jsx("div", { className: `${foldableBlockClassNames} ${containerClasses}`, children: hiddenBlocks })] }), isActive);
@@ -2565,24 +2501,16 @@
2565
2501
  const renderShimmerItem = (width, index) => (jsx("div", { style: { width: `${width || 100}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
2566
2502
  const goldenSequence = (first, size) => [first].concat(size > 0 ? goldenSequence(first / GOLDEN_RATIO, size - 1) : []);
2567
2503
 
2568
- const productGalleryStyleMap = {
2569
- primary: 'bg-white text-primary-text',
2570
- secondary: 'bg-primary-main text-white',
2571
- };
2572
2504
  const productBlockStyleMap = {
2573
2505
  primary: { title: 'text-secondary-text', text: 'text-secondary-text' },
2574
2506
  secondary: { title: 'text-white', text: 'text-white/80' },
2575
2507
  };
2576
- const productSlideStyleMap = {
2577
- primary: 'bg-white text-primary-text',
2578
- secondary: 'bg-primary-main text-white',
2579
- };
2580
2508
  const ProductGallery = JSX(({ className = '', context, slides = [], version = 'primary', ...rest }) => {
2581
2509
  const galleryNav = slides.map((s) => s.nav);
2582
2510
  const galleryBlocks = slides.map((s) => s.productBlock);
2583
2511
  const [activeSlideIndex, setActiveSlideIndex] = useState(0);
2584
2512
  return (jsxs(BlockWrapper, { context: context, className: `box-border pt-[50px] overflow-hidden relative font-sans w-100 ${className}
2585
- ${productGalleryStyleMap[version]}`, ...rest, children: [jsx("div", { className: "flex duration-1000 pb-14", style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: galleryBlocks.map((_, i) => renderProductBlock({ ..._, version }, i, context)) }), 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({
2513
+ ${VersionStyleMap[version]}`, ...rest, children: [jsx("div", { className: "flex duration-1000 pb-14", style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: galleryBlocks.map((_, i) => renderProductBlock({ ..._, version }, i, context)) }), 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({
2586
2514
  slide,
2587
2515
  i,
2588
2516
  activeSlideIndex,
@@ -2593,14 +2521,14 @@
2593
2521
  function renderProductBlock(block, i, context) {
2594
2522
  const { version } = block;
2595
2523
  const additionalClass = version ? productBlockStyleMap[version].title : '';
2596
- 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-[1] ${additionalClass}`, context: context, textBlockClassName: "mb-[154px]", ...block, headlineVersion: "XXL" }) }) }, String(i)));
2524
+ 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}`, context: context, textBlockClassName: "mb-[154px]", ...block, headlineVersion: "XXL" }) }) }, String(i)));
2597
2525
  }
2598
2526
  function renderNavButton({ slide, i, activeSlideIndex, onClick, version }) {
2599
2527
  const isActiveBtn = i === activeSlideIndex;
2600
2528
  const btnClassName = isActiveBtn
2601
2529
  ? 'bg-white shadow-dark-blue/42 w-[354px] min-w-[354px] border-none'
2602
2530
  : `min-w-[277px] hover:py-[26px] hover:py-[26px] ease-in duration-300 bg-white/10
2603
- ${productSlideStyleMap[version]}`;
2531
+ ${VersionStyleMap[version]}`;
2604
2532
  const btnTitleClassName = isActiveBtn
2605
2533
  ? 'text-primary-text text-h6'
2606
2534
  : `text-l ${productBlockStyleMap[version].title}`;
@@ -2613,12 +2541,8 @@
2613
2541
  `, children: jsxs("div", { className: "border-0 px-6", children: [jsx("div", { className: `font-medium ${btnTitleClassName}`, children: slide?.title }), jsx("div", { className: `text-secondary-text ${btnDescClassName}`, children: slide.description })] }) }, String(i)));
2614
2542
  }
2615
2543
 
2616
- const promoTileStyleMap = {
2617
- primary: 'bg-white text-primary-text',
2618
- secondary: 'bg-primary-main text-white',
2619
- };
2620
2544
  const PromoTile = JSX(({ className = '', context, title = 'Акции и спецпредложения', date, description, buttons = [], version = 'primary', ...rest }) => {
2621
- return (jsx(BlockWrapper, { context: context, className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${promoTileStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, ...rest, children: jsx(BaseTile, { context: context, title: title ? (jsx("div", { children: jsx(Headline, { context: context, title: title, className: `!p-0 max-w-[600px]`, headlineVersion: getTileHeadingType(className), bgColorHeadline: version, align: "left", as: "h2" }) })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex gap-3" })) : null, children: jsxs("div", { className: "mt-1.5", children: [date ? jsx("div", { className: "text-s mb-2", children: formatDate(date) }) : null, jsx("div", { className: "text-l", children: description })] }) }) }));
2545
+ return (jsx(BlockWrapper, { context: context, className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${VersionStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, ...rest, children: jsx(BaseTile, { context: context, title: title ? (jsx(Headline, { context: context, title: title, className: `!p-0 max-w-[600px]`, headlineVersion: getTileHeadingType(className), bgColorHeadline: version, align: "left", as: "h2" })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex gap-3" })) : null, children: jsxs("div", { className: "mt-1.5", children: [date ? jsx("div", { className: "text-s mb-2", children: formatDate(date) }) : null, jsx("div", { className: "text-l", children: description })] }) }) }));
2622
2546
  });
2623
2547
  function formatDate(date) {
2624
2548
  const dateObj = new Date(date);
@@ -2727,7 +2651,7 @@
2727
2651
  };
2728
2652
  // TODO: В качестве компонента не годится
2729
2653
  const RadioButtons = JSX(() => {
2730
- const [selected, setSelected] = useState('option1');
2654
+ const [selected, setSelected] = useState('option2');
2731
2655
  const onChange = (_) => setSelected(_.target.value);
2732
2656
  return (jsxs("div", { children: [jsx(Radio, { className: "mb-2", name: "contractType", text: "\u041F\u0440\u043E\u0441\u0442\u043E\u0435 \u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435", value: "option1", checked: selected === 'option1', onChange: onChange }), jsx(Radio, { name: "contractType", text: "\u0421\u0434\u0435\u043B\u043A\u0430 \u0441 \u043D\u0435\u0434\u0432\u0438\u0436\u0438\u043C\u043E\u0441\u0442\u044C\u044E", value: "option2", checked: selected === 'option2', onChange: onChange })] }));
2733
2657
  });
@@ -2761,6 +2685,10 @@
2761
2685
  {
2762
2686
  city: 'Москва',
2763
2687
  offices: [
2688
+ {
2689
+ office: 'выберите отделение',
2690
+ rate: null,
2691
+ },
2764
2692
  {
2765
2693
  office: 'МоскваОфис1',
2766
2694
  rate: 1,
@@ -2876,69 +2804,219 @@
2876
2804
  return (jsxs("div", { className: "flex flex-col items-center justify-between text-center relative w-[276px]\n whitespace-pre-line overflow-hidden", children: [step?.label ? jsx("div", { className: "text-xl m-0 mt-4", children: step.label }) : null, step?.description ? (jsx("div", { className: `text-l-light ${styleMap.description} ${additionalMarginClass}`, children: step.description })) : null, step.button?.text && !isMainButton ? (jsx(Button, { className: "box-border mt-8 py-3 h-12 w-full max-w-[240px]", ...useLink({ router, handlerDecorator }, step.button), version: version, children: step.button.text })) : null] }, String(i)));
2877
2805
  };
2878
2806
 
2879
- const badgeStyle = 'min-w-[22px] w-[22px] h-[22px] rounded-full text-xs-light ml-2';
2880
- const renderTab = ({ onClick, currentTab, showCounter, page }) => (tab, i) => {
2881
- const isActive = currentTab === tab;
2882
- const tabBg = isActive ? 'bg-primary-main' : 'group bg-white';
2883
- const tabText = `text-m-light ${isActive ? 'text-white' : 'text-secondary-text group-hover:text-primary-main'}`;
2884
- const counterBlockStyle = `${badgeStyle}
2885
- ${isActive
2886
- ? 'bg-white/30 text-white'
2887
- : 'bg-main-divider text-secondary-text group-hover:text-primary-main'}`;
2888
- const count = tab.id
2889
- ? page?.blocks?.filter((block) => block?.labels?.includes(tab.id)).length
2807
+ function assertUnreachable(x) {
2808
+ throw new Error(x);
2809
+ }
2810
+
2811
+ const LINK_CLASSES = 'h-12 flex-1 flex items-center justify-center cursor-pointer';
2812
+ const ACTIVE_LINK_CLASSES = 'bg-primary-main';
2813
+ const INACTIVE_LINK_CLASSES = 'group bg-white';
2814
+ const TEXT_CLASSES = 'font-sans text-m';
2815
+ const ACTIVE_TEXT_CLASSES = 'text-white';
2816
+ const INACTIVE_TEXT_CLASSES = 'text-secondary-text group-hover:text-primary-main';
2817
+
2818
+ const BADGE_CLASSES = 'min-w-[22px] w-[22px] h-[22px] rounded-full text-xs ml-2';
2819
+ const ACTIVE_BADGE_CLASSES = 'bg-white/30 text-white';
2820
+ const INACTIVE_BADGE_CLASSES = 'bg-main-divider text-secondary-text group-hover:text-primary-main';
2821
+ const renderGroupTab = ({ onClick, currentTab, showCounter, page }) => (tab, i) => {
2822
+ const active = currentTab === tab;
2823
+ const count = tab.ref
2824
+ ? page?.blocks?.filter((block) => block?.labels?.includes(tab.ref)).length
2890
2825
  : page?.blocks?.length;
2891
- return (jsx("div", { className: `flex h-12 w-full flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`, role: "tab", "aria-selected": isActive, onClick: () => onClick(tab), children: jsxs("div", { className: "flex flex-1 items-center justify-center", children: [tab?.title ? jsx("h3", { className: tabText, children: tab?.title }) : null, showCounter ? (jsx("div", { className: `flex items-center justify-center ${counterBlockStyle}`, children: count })) : null] }) }, String(i)));
2826
+ return (jsx("div", { className: `${LINK_CLASSES} ${active ? ACTIVE_LINK_CLASSES : INACTIVE_LINK_CLASSES}`, role: "tab", "aria-selected": active, onClick: () => onClick(tab), children: jsxs("div", { className: "flex flex-1 items-center justify-center", children: [tab?.title ? renderTitle(tab.title, active) : null, showCounter && count ? renderCount(count, active) : null] }) }, String(i)));
2827
+ };
2828
+ const renderTitle = (title, active) => (jsx("h3", { className: `${TEXT_CLASSES} ${active ? ACTIVE_TEXT_CLASSES : INACTIVE_TEXT_CLASSES}`, children: title }));
2829
+ const renderCount = (count, active) => (jsx("div", { className: `${BADGE_CLASSES} ${active ? ACTIVE_BADGE_CLASSES : INACTIVE_BADGE_CLASSES}`, children: count }));
2830
+
2831
+ const renderLinkTab = ({ text, onClick, href, target = '_self', i }) => (jsx("a", { className: `${LINK_CLASSES} ${INACTIVE_LINK_CLASSES}`, target: target, href: href, onClick: onClick, children: jsx("span", { className: `${TEXT_CLASSES} ${INACTIVE_TEXT_CLASSES}`, children: text }) }, String(i)));
2832
+
2833
+ const renderTab = ({ onClick, currentTab, showCounter, page, context }) =>
2834
+ // Linter doesn't understand that switch processes all cases
2835
+ // eslint-disable-next-line consistent-return
2836
+ (tab, i) => {
2837
+ const { useRouter, handlerDecorator } = context;
2838
+ const router = useRouter();
2839
+ const type = tab.type;
2840
+ if (!(type === 'group' || type === 'link')) {
2841
+ return null;
2842
+ }
2843
+ switch (type) {
2844
+ case 'group':
2845
+ return renderGroupTab({ onClick, currentTab, showCounter, page, context })(tab, i);
2846
+ case 'link':
2847
+ return renderLinkTab({
2848
+ ...useLink({ router, handlerDecorator }, tab),
2849
+ i,
2850
+ });
2851
+ default:
2852
+ assertUnreachable(type);
2853
+ }
2892
2854
  };
2893
2855
 
2894
2856
  const Tabs = JSX((props) => {
2895
2857
  const { context, className, tabs, page, showCounter } = props;
2896
2858
  const [currentTab, setCurrentTab] = useState(tabs ? tabs[0] : undefined);
2897
- useEffect(() => EventBus.inst.subject('tab', { label: currentTab?.id }), [currentTab]);
2859
+ useEffect(() => {
2860
+ if (currentTab?.type === 'group') {
2861
+ return EventBus.inst.subject('tab', { label: currentTab.ref });
2862
+ }
2863
+ return undefined;
2864
+ }, [currentTab]);
2898
2865
  const handleClick = (selectedTab) => {
2899
- EventBus.inst.fire('tab', { label: selectedTab.id });
2900
- setCurrentTab(selectedTab);
2866
+ if (selectedTab?.type === 'group') {
2867
+ EventBus.inst.fire('tab', { type: selectedTab.type, label: selectedTab.ref });
2868
+ setCurrentTab(selectedTab);
2869
+ }
2901
2870
  };
2902
- return (jsx(BlockWrapper, { context: context, className: `mb-2 box-border flex gap-x-1 ${className}`, role: "tablist", children: tabs?.map(renderTab({ onClick: handleClick, currentTab, page, showCounter })) }));
2871
+ return (jsx(BlockWrapper, { context: context, className: `mb-2 box-border flex gap-x-1 ${className}`, role: "tablist", children: tabs?.map(renderTab({ onClick: handleClick, currentTab, page, showCounter, context })) }));
2903
2872
  });
2904
2873
 
2905
2874
  const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
2906
2875
  const FIRST_CELL_CLASSES = 'w-[354px] flex-shrink-0';
2907
2876
  const COLS_LENGTH_FOR_SCROLL = 2;
2908
- const COLUMN_WIDTH = 4 * 80 + 40; // w-80 + pl-10 = 360px
2877
+ const COLUMN_WIDTH$1 = 4 * 80 + 40; // w-80 + pl-10 = 360px
2878
+
2879
+ const TableInnerButton = JSX(({ isOpen, dataUrl, rowIdx, cellIdx, fieldIdx }) => {
2880
+ const handleClick = () => {
2881
+ EventBus.inst.fire('tariffInnerTable', { dataUrl, rowIdx, cellIdx, fieldIdx });
2882
+ };
2883
+ return (jsxs(Button, { version: "primary", onClick: handleClick, className: "w-full flex items-center justify-center rounded-none py-5 ", children: [jsx("div", { className: "text-h4", children: isOpen ? 'Скрыть' : 'Показать ставки по вкладу' }), jsx(Icon, { name: isOpen ? 'ArrowUpIcon' : 'ArrowDownIcon', className: "ml-3", iconVersion: "white", width: "20", height: "20", asSVG: true })] }));
2884
+ });
2909
2885
 
2910
2886
  const getButtonAriaLabel = (icon) => icon?.alt || icon?.title || IconTitleMap[icon?.icon ? icon.icon : ''];
2911
2887
 
2912
- const TariffsTableCell = JSX(({ cell, isLastRow }) => {
2913
- const cellWrapperClasses = `first:pl-0 pl-10 w-80 flex-grow flex flex-col border-solid border-main-divider border border-t-0 border-x-0 ${isLastRow ? 'border-t-0 rounded-b-md' : ''}`;
2914
- return (jsx("div", { className: cellWrapperClasses, role: "cell", children: jsx("div", { children: cell.map(renderCellInner) }) }));
2888
+ const renderButtonsCellData = ({ buttons }) => buttons && buttons?.length ? (jsx("div", { children: buttons.map(({ icon, rounded, ...buttonProps }, idx) => (jsx(Button, { className: `${idx > 0 && rounded ? 'ml-3' : ''} w-12 h-12`, ariaLabel: getButtonAriaLabel(icon), rounded: rounded, appendLeft: icon?.src || icon?.icon ? jsx(Img, { image: icon, width: "24px", height: "24px", asSVG: true }) : null, ...buttonProps }, String(idx)))) })) : null;
2889
+ const renderLabelDescriptionCellData = ({ label, description }) => {
2890
+ const labelClassName = `text-h6 font-medium m-0 ${description ? 'mb-1' : ''}`;
2891
+ return (jsxs("div", { children: [label ? jsx("div", { className: labelClassName, children: label }) : null, description ? jsx("div", { className: "text-s text-secondary-text", children: description }) : null] }));
2892
+ };
2893
+ const renderImgCellData = ({ image }) => (image?.src ? jsx(Img, { image: image }) : null);
2894
+ const renderListCellData = ({ isDotted, ...rest }) => (jsx(List, { className: "flex flex-col justify-between items-start text-sm", version: "gray", isDotted: isDotted ?? true, ...rest }));
2895
+ const renderTableCellData = JSX((props) => {
2896
+ const [showBtn, setShowBtn] = useState(true);
2897
+ const tariffInnerTableSubscriber = (event) => {
2898
+ const _showBtn = ['rowIdx', 'cellIdx', 'fieldIdx'].every((key) => props[key] === event[key]);
2899
+ setShowBtn(!_showBtn);
2900
+ };
2901
+ useEffect(() => EventBus.inst.subscribe('tariffInnerTable', tariffInnerTableSubscriber), []);
2902
+ return showBtn ? jsx(TableInnerButton, { ...props }) : null;
2903
+ });
2904
+ const EmbeddableCellData = {
2905
+ Buttons: renderButtonsCellData,
2906
+ Img: renderImgCellData,
2907
+ List: renderListCellData,
2908
+ LabelDescription: renderLabelDescriptionCellData,
2909
+ Table: renderTableCellData,
2910
+ };
2911
+
2912
+ const TariffsTableCell = JSX(({ context, cells, isLastRow, rowIdx, cellIdx }) => {
2913
+ const cellWrapperClasses = `first:pl-0 w-80 flex-grow flex flex-col border-solid border-main-divider border border-t-0 border-x-0 ${isLastRow ? 'border-t-0 rounded-b-md' : ''}`;
2914
+ return (jsx("div", { className: cellWrapperClasses, role: "cell", children: cells.map(renderCellInner(rowIdx, context, cellIdx)) }));
2915
+ });
2916
+ const renderCellInner = (rowIdx, context, cellIdx) => (cell, i) => {
2917
+ return (jsxs("div", { className: cell?.tableCellType === 'Table' ? 'mx-0.5' : `first:pt-5 last:pb-5 pl-10`, children: [i > 0 ? jsx("div", { className: "h-5" }) : null, renderCell(cell, context, { rowIdx, cellIdx, fieldIdx: i })] }, String(i)));
2918
+ };
2919
+ const renderCell = (cell, context, indexes) => {
2920
+ if (!cell) {
2921
+ return null;
2922
+ }
2923
+ const { tableCellType: type, ...rest } = cell;
2924
+ if (!type || !(type in EmbeddableCellData)) {
2925
+ return null;
2926
+ }
2927
+ const EmbeddableCellInner = EmbeddableCellData[type];
2928
+ return jsx(EmbeddableCellInner, { context: context, ...rest, ...indexes });
2929
+ };
2930
+
2931
+ function useTariffsInnerTableData(directoryName) {
2932
+ const { data } = useAsyncData(tariffsInnerTableDataUrl(directoryName), fetchTariffsInnerTableData);
2933
+ return data || {};
2934
+ }
2935
+ async function fetchTariffsInnerTableData(url) {
2936
+ const response = await fetch(url);
2937
+ return await response.json();
2938
+ }
2939
+ function tariffsInnerTableDataUrl(directoryName) {
2940
+ return `/wcms-resources/${directoryName || 'tariffs-inner-table-data'}.json`;
2941
+ }
2942
+
2943
+ const COLUMN_WIDTH = 140;
2944
+ const InnerTableBodyItem = JSX(({ rows }) => {
2945
+ const [activeColumnIndex, setActiveColumnIndex] = useState(0);
2946
+ const handleNextClick = () => setActiveColumnIndex(activeColumnIndex + 1);
2947
+ const handlePrevClick = () => setActiveColumnIndex(activeColumnIndex - 1);
2948
+ const rowsLength = rows?.[0]?.length ?? 0;
2949
+ const showNextButton = rowsLength > 3 && rowsLength > activeColumnIndex + 4;
2950
+ const showPrevButton = activeColumnIndex > 0;
2951
+ return (jsxs("div", { children: [rows?.map(renderRow(activeColumnIndex)), renderArrows({
2952
+ handler: [handlePrevClick, handleNextClick],
2953
+ isShown: [showPrevButton, showNextButton],
2954
+ btnClass: ['right-3 top-24', 'right-3 top-2'],
2955
+ className: '',
2956
+ })] }));
2915
2957
  });
2916
- const renderCellInner = ({ label, description, list, image, buttons }, i) => (jsxs("div", { className: "first:pt-5 last:pb-5", children: [i > 0 && (jsx("div", { className: "border-main-divider border border-solid border-t-0 border-x-0 my-4" })), label ? jsx("div", { className: "text-xl m-0", children: label }) : null, description ? jsx("div", { className: "text-s text-secondary-text", children: description }) : null, list?.items?.length ? renderList(list) : null, image ? jsx(Img, { image: image }) : null, buttons?.length ? renderButtons(buttons) : null] }, String(i)));
2917
- const renderList = (list) => (jsx(List, { className: "flex flex-col justify-between items-start text-s", version: "gray", items: list.items, isDotted: list.isDotted ?? true }));
2918
- const renderButtons = (buttons) => (jsx("div", { children: buttons.map(({ icon, rounded, ...buttonProps }, idx) => (jsx(Button, { className: `${idx > 0 && rounded ? 'ml-3' : ''} w-12 h-12`, ariaLabel: getButtonAriaLabel(icon), rounded: rounded, appendLeft: icon ? jsx(Img, { image: icon, width: "24px", height: "24px", asSVG: true }) : null, ...buttonProps }, String(idx)))) }));
2958
+ const renderRow = (activeColumnIndex) => (rowData, rowIdx) => {
2959
+ if (!rowData?.length) {
2960
+ return null;
2961
+ }
2962
+ const [headerColumn, ...columns] = rowData;
2963
+ const transform = [...Array(activeColumnIndex).keys()].reduce((res, i) => (columns?.[i]?.cols?.length ?? 1) * COLUMN_WIDTH + res, 0);
2964
+ return (jsxs("div", { className: "flex border-main-divider border border-t-0 border-x-0 border-solid", children: [jsx("div", { className: "text-xl-light min-w-[214px] w-[214px] pt-6 pb-5", children: headerColumn.data }), jsx("div", { className: "flex flex-grow overflow-hidden", children: jsx("div", { className: "flex duration-1000 text-center", style: {
2965
+ transform: `translateX(-${transform}px)`,
2966
+ }, children: columns?.map((_, i) => (jsxs("div", { className: "flex flex-col flex-grow justify-center pt-6 pb-5 odd:bg-main-divider", children: [_?.data ? jsx("div", { className: "text-xl-light mb-3", children: _.data }) : null, _?.cols ? renderCols(_.cols, activeColumnIndex) : null] }, `row${i}`))) }) })] }, String(rowIdx)));
2967
+ };
2968
+ const renderCols = (cols, rowIndex) => cols ? (jsx("div", { className: `flex text-xl-light ${rowIndex === 0 ? 'text-secondary-text' : ''}`, children: cols.map((data, i) => (jsx("div", { className: "w-[76px] mx-8", children: data }, String(i)))) })) : null;
2919
2969
 
2920
- const TariffsTableRow = JSX(({ row: { header, data }, activeCardIndex, isLastRow }) => {
2921
- return (jsxs(TableRowContainer, { children: [jsx("div", { className: `text-s py-5 ${FIRST_CELL_CLASSES} ${DIVIDER_CLASSES} ${!isLastRow ? 'border-solid' : ''}`, children: jsxs("div", { className: "flex items-center text-primary-text", children: [header?.icon ? (jsx(Img, { className: "mr-[14px] max-w-6 max-h-6", image: header.icon, width: "24px", height: "24px", asSVG: true })) : null, header?.title] }) }), data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH, version: "tariff", children: data.map((cell, i) => (jsx(TariffsTableCell, { cell: cell, isLastRow: isLastRow }, String(i)))) })) : null] }));
2970
+ const InnerTableBody = JSX(({ context, activeTabIndex, items }) => {
2971
+ const [hiddenTables, setHiddenTables] = useState({});
2972
+ const toggleTable = (key) => {
2973
+ setHiddenTables((oldState) => ({ ...oldState, [key]: !oldState[key] }));
2974
+ };
2975
+ return (jsx("div", { children: items.map((_, tableIdx) => {
2976
+ const key = `activeTabIdx:${activeTabIndex}-tableIdx:${tableIdx}`;
2977
+ return (jsxs("div", { className: "w-full", children: [jsxs("div", { className: "flex p-4 bg-main-stroke text-xl-light text-center justify-center cursor-pointer relative", onClick: () => toggleTable(key), children: [_.title, jsx(Img, { image: hiddenTables[key] ? 'PlusIcon' : 'MinusIcon', className: "absolute right-[22px]", width: "24", height: "24" })] }), jsx("div", { className: `w-full pl-2 overflow-hidden transition-height duration-500 ease-in-out ${hiddenTables[key] ? 'h-0' : 'h-[243px]'}`, children: jsx("div", { className: "relative", children: jsx(InnerTableBodyItem, { context: context, rows: _.rowsData }) }) })] }, key));
2978
+ }) }));
2922
2979
  });
2923
2980
 
2924
- const TariffsTable = JSX(({ className, context, title, description, rowHeaders, columns, hiddenRowsNum = 0, ...rest }) => {
2981
+ const InnerTableHeader = JSX(({ currencies, linkToPDF, activeTabIndex, setActiveTabIndex }) => (jsxs("div", { className: "flex justify-between w-full pt-2.5 pb-3", children: [currencies && currencies.length > 1 ? (jsx("div", { className: "flex bg-secondary-light p-1 rounded-md", children: currencies.map((currency, idx) => (jsx("div", { className: `rounded-md text-xl-light px-4 py-3 cursor-pointer ${idx === activeTabIndex ? 'bg-primary-main text-white' : 'text-secondary-text'}`, onClick: () => setActiveTabIndex(idx), children: currency || idx + 1 }, currency))) })) : null, linkToPDF ? (jsxs(Button, { href: linkToPDF, version: "secondary", className: "flex justify-center items-center text-l-light text-primary-main px-8", children: [jsx(Img, { image: "DocDownload", className: "mr-[10px]", width: "24", height: "24", asSVG: true }), jsx("span", { children: "\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0432 PDF" })] })) : null] })));
2982
+
2983
+ const InnerTable = JSX(({ context, dataUrl, pdfUrl }) => {
2984
+ const { tableData } = useTariffsInnerTableData(dataUrl);
2985
+ const [activeTabIndex, setActiveTabIndex] = useState(0);
2986
+ const items = tableData?.[activeTabIndex]?.items ?? [];
2987
+ const currencies = tableData?.map((item) => item.currency ?? '');
2988
+ return tableData ? (jsxs("div", { className: "bg-white z-10 pr-[50px]", children: [jsx(InnerTableHeader, { currencies: currencies, activeTabIndex: activeTabIndex, setActiveTabIndex: setActiveTabIndex, linkToPDF: pdfUrl }), jsx(InnerTableBody, { context: context, activeTabIndex: activeTabIndex, items: items }), jsx(TableInnerButton, { context: context, isOpen: true })] })) : null;
2989
+ });
2990
+
2991
+ const TariffsTableRowContainer = JSX(({ context, children, rowIdx }) => {
2992
+ const [dataUrl, setDataUrl] = useState(undefined);
2993
+ useEffect(() => EventBus.inst.subscribe('tariffInnerTable', (event) => {
2994
+ setDataUrl(rowIdx === event.rowIdx ? event.dataUrl : undefined);
2995
+ }), [rowIdx]);
2996
+ return (jsxs("div", { className: "self-start flex flex-col", role: "row", children: [jsx("div", { className: "flex", children: children }), dataUrl ? (jsx("div", { className: "origin-top animate-expansion", children: jsx(InnerTable, { context: context, dataUrl: dataUrl }) })) : null] }));
2997
+ });
2998
+
2999
+ const TariffsTableRow = JSX(({ row: { header, data }, activeCardIndex, isLastRow, context, rowIdx }) => {
3000
+ return (jsxs(TariffsTableRowContainer, { context: context, rowIdx: rowIdx, children: [jsx("div", { className: `text-s py-5 ${FIRST_CELL_CLASSES} ${DIVIDER_CLASSES} ${!isLastRow ? 'border-solid' : ''}`, children: jsxs("div", { className: "flex items-center text-primary-text", role: "cell", children: [header?.icon ? (jsx(Img, { className: "mr-[14px] max-w-6 max-h-6", image: header.icon, width: "24px", height: "24px", asSVG: true })) : null, header?.title] }) }), data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$1, version: "tariff", children: data.map((cells, i) => (jsx(TariffsTableCell, { cells: cells, isLastRow: isLastRow, rowIdx: rowIdx, cellIdx: i, context: context }, String(i)))) })) : null] }));
3001
+ });
3002
+
3003
+ const TariffsTable = JSX(({ className = '', context, title, description, rowHeaders, tariffsColumns: columns, hiddenRowsNum = 0, ...rest }) => {
2925
3004
  const [activeCardIndex, setActiveCardIndex] = useState(0);
2926
- const colData = getColData(columns);
2927
- const rowData = getRowData(rowHeaders, colData);
3005
+ const colData = columns?.map(({ data }) => data) || [];
3006
+ const rowData = rowHeaders?.map((header, i) => ({
3007
+ header,
3008
+ data: colData.map((col) => col?.[i] || []),
3009
+ }));
3010
+ const columnsLength = colData.length;
2928
3011
  const tableArrowScrollControlProps = useTableArrowScrollControl({
2929
- columnsLength: colData.length,
3012
+ columnsLength,
2930
3013
  colsLengthForScroll: COLS_LENGTH_FOR_SCROLL,
2931
3014
  activeCardIndex,
2932
3015
  setActiveCardIndex,
2933
3016
  });
2934
- const foldableBlocks = rowData?.map((row, i, { length }) => (jsx(TariffsTableRow, { row: row, isLastRow: i + 1 === length, activeCardIndex: activeCardIndex }, String(i))));
2935
- return (jsxs(BlockWrapper, { context: context, className: `bg-white font-sans py-[50px] pl-[50px] overflow-hidden text-primary-text relative ${className || ''}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h2", className: `text-center ${description ? 'mb-2.5' : 'mb-9'}`, title: title })) : null, description ? jsx("div", { className: "mb-9 text-center text-l", children: description }) : null, rowData?.length ? (jsx(Foldable, { blocks: foldableBlocks, hiddenBlocksNum: hiddenRowsNum, context: context, render: (children) => (jsx(Wrapper, { tableArrowScrollControlProps: tableArrowScrollControlProps, children: children })), foldButtonLabel: "\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C" })) : null] }));
2936
- });
2937
- const getColData = (columns) => columns?.map(({ data }) => data) || [];
2938
- const getRowData = (rowHeaders, colData) => rowHeaders?.map((header, i) => ({
2939
- header,
2940
- data: colData.map((col) => col?.[i] || [{}]),
2941
- }));
3017
+ const foldableBlocks = rowData?.map((row, i, { length }) => (jsx(TariffsTableRow, { context: context, row: row, isLastRow: i + 1 === length, activeCardIndex: activeCardIndex, rowIdx: i }, String(i))));
3018
+ return (jsxs(BlockWrapper, { className: `bg-white font-sans p-[50px] overflow-hidden text-primary-text relative ${columnsLength > 1 ? 'pr-0' : ''} ${className}`, context: context, ...rest, children: [title ? (jsx(Heading, { headingType: "h2", className: `text-center ${description ? 'mb-2.5' : 'mb-9'}`, title: title })) : null, description ? jsx("div", { className: "mb-9 text-center text-l", children: description }) : null, rowData?.length ? (jsx(Foldable, { blocks: foldableBlocks, hiddenBlocksNum: hiddenRowsNum, context: context, render: (children) => (jsx(Wrapper, { tableArrowScrollControlProps: tableArrowScrollControlProps, children: children })), foldButtonLabel: "\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C" })) : null] }));
3019
+ });
2942
3020
  const Wrapper = JSX(({ children, tableArrowScrollControlProps }) => {
2943
3021
  const { isScrollAvailable } = tableArrowScrollControlProps;
2944
3022
  return (jsxs("div", { role: "table", children: [jsxs("div", { className: "relative", children: [children, jsx(TableArrowScrollControl, { ...tableArrowScrollControlProps })] }), isScrollAvailable ? (jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[84px] bg-opacity-to-white" })) : null] }));
@@ -2961,7 +3039,6 @@
2961
3039
  LinkDocs,
2962
3040
  MiniGallery,
2963
3041
  MobileAppTile,
2964
- NavigatorTabs,
2965
3042
  PictureText,
2966
3043
  ProductBlock,
2967
3044
  ProductGallery,
@@ -2975,7 +3052,6 @@
2975
3052
  Tile,
2976
3053
  Navigation,
2977
3054
  Placeholder,
2978
- GroupBlock,
2979
3055
  BonusBenefitsBlock,
2980
3056
  SafeDepositRental,
2981
3057
  Tabs,