@redneckz/wildless-cms-uni-blocks 0.4.3 → 0.4.5

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 (1185) hide show
  1. package/bin/migrate.js +40 -0
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +344 -269
  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/BenefitsBlock.js +32 -9
  15. package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  16. package/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +11 -4
  17. package/dist/components/BlockContent.d.ts +2 -3
  18. package/dist/components/Blocks.d.ts +1 -3
  19. package/dist/components/Blocks.js +0 -4
  20. package/dist/components/Blocks.js.map +1 -1
  21. package/dist/components/Calculator/Calculator.js +1 -1
  22. package/dist/components/Calculator/Calculator.js.map +1 -1
  23. package/dist/components/Calculator/useCalculatorParams.js +2 -5
  24. package/dist/components/Calculator/useCalculatorParams.js.map +1 -1
  25. package/dist/components/Calculator/useCreditCalculatorParams.js +1 -2
  26. package/dist/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  27. package/dist/components/Catalog/CatalogCard.js +12 -6
  28. package/dist/components/Catalog/CatalogCard.js.map +1 -1
  29. package/dist/components/ComparisonTable/ComparisonTableContent.d.ts +7 -1
  30. package/dist/components/ComparisonTable/ComparisonTableRows.d.ts +2 -2
  31. package/dist/components/ComparisonTable/ComparisonTableRows.js +1 -1
  32. package/dist/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  33. package/dist/components/ContentPage/normalizePage.js +1 -1
  34. package/dist/components/ContentPage/normalizePage.js.map +1 -1
  35. package/dist/components/ContentPage/normalizePage.mobile.js +1 -1
  36. package/dist/components/ContentPage/normalizePage.mobile.js.map +1 -1
  37. package/dist/components/Gallery/Gallery.mobile.js +2 -5
  38. package/dist/components/Gallery/Gallery.mobile.js.map +1 -1
  39. package/dist/components/Gallery/GalleryCardInner.d.ts +2 -2
  40. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  41. package/dist/components/Gallery/GalleryContainer.d.ts +2 -2
  42. package/dist/components/Gallery/GalleryContainer.js +3 -2
  43. package/dist/components/Gallery/GalleryContainer.js.map +1 -1
  44. package/dist/components/Gallery/GalleryContent.d.ts +4 -4
  45. package/dist/components/Gallery/GalleryProps.d.ts +1 -1
  46. package/dist/components/Gallery/constants.d.ts +0 -2
  47. package/dist/components/Gallery/constants.js +1 -5
  48. package/dist/components/Gallery/constants.js.map +1 -1
  49. package/dist/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  50. package/dist/components/Header/Header.js +3 -2
  51. package/dist/components/Header/Header.js.map +1 -1
  52. package/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  53. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  54. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  55. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  56. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +4 -3
  57. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  58. package/dist/components/MobileAppTile/MobileAppTile.js +4 -6
  59. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  60. package/dist/components/MobileAppTile/MobileAppTileContent.d.ts +1 -0
  61. package/dist/components/Navigation/Navigation.d.ts +1 -1
  62. package/dist/components/OtherProducts/OtherProductsContent.d.ts +1 -4
  63. package/dist/components/PictureText/PictureText.js +2 -5
  64. package/dist/components/PictureText/PictureText.js.map +1 -1
  65. package/dist/components/ProductBlock/ProductBlock.js +2 -5
  66. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  67. package/dist/components/ProductBlock/ProductBlock.mobile.js +2 -5
  68. package/dist/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  69. package/dist/components/ProductBlock/ProductBlockContent.d.ts +14 -2
  70. package/dist/components/ProductGallery/ProductGallery.js +4 -11
  71. package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  72. package/dist/components/ProductGallery/ProductGalleryBlock.js +2 -5
  73. package/dist/components/ProductGallery/ProductGalleryBlock.js.map +1 -1
  74. package/dist/components/ProductTile/ProductTile.js +14 -14
  75. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  76. package/dist/components/PromoTile/PromoTile.js +2 -5
  77. package/dist/components/PromoTile/PromoTile.js.map +1 -1
  78. package/dist/components/PromoTile/PromoTileContent.d.ts +2 -2
  79. package/dist/components/Recommendation/RecommendationContent.d.ts +4 -4
  80. package/dist/components/SafeDepositRental/SafeDepositRental.js +4 -0
  81. package/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  82. package/dist/components/SafeDepositRental/SafeDepositRentalForm.js +1 -1
  83. package/dist/components/StepsBlock/StepsBlock.mobile.js +1 -1
  84. package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  85. package/dist/components/Tabs/Tabs.d.ts +4 -4
  86. package/dist/components/Tabs/Tabs.js +10 -3
  87. package/dist/components/Tabs/Tabs.js.map +1 -1
  88. package/dist/components/Tabs/TabsContent.d.ts +13 -11
  89. package/dist/components/Tabs/renderGroupTab.d.ts +3 -3
  90. package/dist/components/Tabs/renderGroupTab.js.map +1 -1
  91. package/dist/components/Tabs/renderTab.d.ts +1 -1
  92. package/dist/components/Tabs/renderTab.js +19 -8
  93. package/dist/components/Tabs/renderTab.js.map +1 -1
  94. package/dist/components/TariffsTable/EmbeddableCellData.d.ts +14 -0
  95. package/dist/components/TariffsTable/EmbeddableCellData.js +35 -0
  96. package/dist/components/TariffsTable/EmbeddableCellData.js.map +1 -0
  97. package/dist/components/TariffsTable/EmbeddableCellData.mobile.d.ts +15 -0
  98. package/dist/components/TariffsTable/EmbeddableCellData.mobile.js +21 -0
  99. package/dist/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -0
  100. package/dist/components/TariffsTable/TariffsTable.js +10 -11
  101. package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  102. package/dist/components/TariffsTable/TariffsTable.mobile.js +2 -2
  103. package/dist/components/TariffsTable/TariffsTable.mobile.js.map +1 -1
  104. package/dist/components/TariffsTable/TariffsTableCell.d.ts +6 -3
  105. package/dist/components/TariffsTable/TariffsTableCell.js +18 -10
  106. package/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  107. package/dist/components/TariffsTable/TariffsTableContent.d.ts +80 -26
  108. package/dist/components/TariffsTable/TariffsTableHorizontal.d.ts +5 -5
  109. package/dist/components/TariffsTable/TariffsTableHorizontal.js.map +1 -1
  110. package/dist/components/TariffsTable/TariffsTableRow.d.ts +5 -4
  111. package/dist/components/TariffsTable/TariffsTableRow.js +3 -3
  112. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  113. package/dist/components/TariffsTable/TariffsTableRowContainer.d.ts +7 -0
  114. package/dist/components/TariffsTable/TariffsTableRowContainer.js +15 -0
  115. package/dist/components/TariffsTable/TariffsTableRowContainer.js.map +1 -0
  116. package/dist/components/TariffsTable/TariffsTableTileCell.d.ts +7 -1
  117. package/dist/components/TariffsTable/TariffsTableTileCell.js +15 -9
  118. package/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  119. package/dist/components/TariffsTable/TariffsTableVertical.d.ts +5 -3
  120. package/dist/components/TariffsTable/TariffsTableVertical.js.map +1 -1
  121. package/dist/components/TariffsTable/dataFixture.d.ts +5 -0
  122. package/dist/components/TariffsTable/dataFixture.js +140 -0
  123. package/dist/components/TariffsTable/dataFixture.js.map +1 -0
  124. package/dist/components/Tile/Tile.js +6 -9
  125. package/dist/components/Tile/Tile.js.map +1 -1
  126. package/dist/components/Tile/TileContent.d.ts +4 -2
  127. package/dist/content-page-repository/transformContentPage.js +9 -3
  128. package/dist/content-page-repository/transformContentPage.js.map +1 -1
  129. package/dist/content-page-repository/transformImg.d.ts +11 -0
  130. package/dist/content-page-repository/transformImg.js +100 -0
  131. package/dist/content-page-repository/transformImg.js.map +1 -0
  132. package/dist/content-page-repository/transformPicture.js +15 -40
  133. package/dist/content-page-repository/transformPicture.js.map +1 -1
  134. package/dist/content-page-repository/transformSrc.d.ts +3 -0
  135. package/dist/content-page-repository/transformSrc.js +20 -0
  136. package/dist/content-page-repository/transformSrc.js.map +1 -0
  137. package/dist/hooks/useExchangeRates.js +9 -18
  138. package/dist/hooks/useExchangeRates.js.map +1 -1
  139. package/dist/hooks/useTariffsInnerTableData.d.ts +1 -0
  140. package/dist/hooks/useTariffsInnerTableData.js +16 -0
  141. package/dist/hooks/useTariffsInnerTableData.js.map +1 -0
  142. package/dist/icons/IconName.d.ts +4 -2
  143. package/dist/icons/IconName.js +2 -0
  144. package/dist/icons/IconName.js.map +1 -1
  145. package/dist/model/BlockVersion.d.ts +1 -0
  146. package/dist/model/BlockVersion.js +5 -0
  147. package/dist/model/BlockVersion.js.map +1 -1
  148. package/dist/model/HeadlineType.d.ts +3 -3
  149. package/dist/model/ImageSize.d.ts +6 -0
  150. package/dist/{components/GroupBlock/BlocksTypeProps.js → model/ImageSize.js} +1 -1
  151. package/dist/model/ImageSize.js.map +1 -0
  152. package/dist/model/LinkProps.d.ts +6 -4
  153. package/dist/model/Picture.d.ts +19 -6
  154. package/dist/services/sitemap/useSitemap.js +2 -8
  155. package/dist/services/sitemap/useSitemap.js.map +1 -1
  156. package/dist/ui-kit/BenefitItem/BenefitItem.js +2 -2
  157. package/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  158. package/dist/ui-kit/BlocksList/renderBlocksList.d.ts +1 -2
  159. package/dist/ui-kit/Button/Button.d.ts +2 -4
  160. package/dist/ui-kit/Button/Button.js +1 -1
  161. package/dist/ui-kit/Button/Button.js.map +1 -1
  162. package/dist/ui-kit/Button/Button.mobile.d.ts +2 -4
  163. package/dist/ui-kit/Button/Button.mobile.js.map +1 -1
  164. package/dist/ui-kit/Button/ButtonInner.d.ts +1 -1
  165. package/dist/ui-kit/Description/Description.d.ts +3 -3
  166. package/dist/ui-kit/Description/Description.js.map +1 -1
  167. package/dist/ui-kit/Foldable/Foldable.js +1 -1
  168. package/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  169. package/dist/ui-kit/Heading/HeadingProps.d.ts +5 -2
  170. package/dist/ui-kit/Img/ImgAsPicture.js +6 -2
  171. package/dist/ui-kit/Img/ImgAsPicture.js.map +1 -1
  172. package/dist/ui-kit/InnerTable/InnerTable.d.ts +5 -0
  173. package/dist/ui-kit/InnerTable/InnerTable.js +17 -0
  174. package/dist/ui-kit/InnerTable/InnerTable.js.map +1 -0
  175. package/dist/ui-kit/InnerTable/InnerTableBody.d.ts +7 -0
  176. package/dist/ui-kit/InnerTable/InnerTableBody.js +18 -0
  177. package/dist/ui-kit/InnerTable/InnerTableBody.js.map +1 -0
  178. package/dist/ui-kit/InnerTable/InnerTableBodyItem.d.ts +6 -0
  179. package/dist/ui-kit/InnerTable/InnerTableBodyItem.js +33 -0
  180. package/dist/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -0
  181. package/dist/ui-kit/InnerTable/InnerTableButton.d.ts +6 -0
  182. package/dist/ui-kit/InnerTable/InnerTableButton.js +14 -0
  183. package/dist/ui-kit/InnerTable/InnerTableButton.js.map +1 -0
  184. package/dist/ui-kit/InnerTable/InnerTableHeader.d.ts +7 -0
  185. package/dist/ui-kit/InnerTable/InnerTableHeader.js +8 -0
  186. package/dist/ui-kit/InnerTable/InnerTableHeader.js.map +1 -0
  187. package/dist/ui-kit/InnerTable/InnerTableProps.d.ts +24 -0
  188. package/{mobile/dist/components/GroupBlock/BlocksTypeProps.js → dist/ui-kit/InnerTable/InnerTableProps.js} +1 -1
  189. package/dist/ui-kit/InnerTable/InnerTableProps.js.map +1 -0
  190. package/dist/ui-kit/List/List.js +6 -2
  191. package/dist/ui-kit/List/List.js.map +1 -1
  192. package/dist/ui-kit/List/ListProps.d.ts +9 -1
  193. package/dist/ui-kit/Logo/Logo.js +6 -2
  194. package/dist/ui-kit/Logo/Logo.js.map +1 -1
  195. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  196. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  197. package/dist/ui-kit/TopItem/TopItem.d.ts +1 -1
  198. package/dist/ui-kit/TopItem/TopItem.js +2 -2
  199. package/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  200. package/dist/utils/assertUnreachable.d.ts +1 -0
  201. package/dist/utils/assertUnreachable.js +7 -0
  202. package/dist/utils/assertUnreachable.js.map +1 -0
  203. package/dist/utils/fetchJSON.d.ts +2 -0
  204. package/dist/utils/fetchJSON.js +24 -0
  205. package/dist/utils/fetchJSON.js.map +1 -0
  206. package/dist/utils/isPictureSizeEmpty.d.ts +2 -0
  207. package/dist/utils/isPictureSizeEmpty.js +7 -0
  208. package/dist/utils/isPictureSizeEmpty.js.map +1 -0
  209. package/dist/utils/roundTo.d.ts +1 -1
  210. package/dist/utils/roundTo.js +1 -1
  211. package/dist/utils/roundTo.js.map +1 -1
  212. package/lib/EventBus/EventMap.d.ts +2 -0
  213. package/lib/common.css +1 -1
  214. package/lib/components/Accordion/AccordionItem.js +1 -1
  215. package/lib/components/Accordion/AccordionItem.js.map +1 -1
  216. package/lib/components/Accordion/AccordionItem.mobile.js +1 -1
  217. package/lib/components/Accordion/AccordionItem.mobile.js.map +1 -1
  218. package/lib/components/BaseTile/BaseTile.js +1 -1
  219. package/lib/components/BaseTile/BaseTile.js.map +1 -1
  220. package/lib/components/BenefitsBlock/BenefitsBlock.fixture.d.ts +2 -0
  221. package/lib/components/BenefitsBlock/BenefitsBlock.js +32 -9
  222. package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  223. package/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +11 -4
  224. package/lib/components/BlockContent.d.ts +2 -3
  225. package/lib/components/Blocks.d.ts +1 -3
  226. package/lib/components/Blocks.js +0 -4
  227. package/lib/components/Blocks.js.map +1 -1
  228. package/lib/components/Calculator/Calculator.js +1 -1
  229. package/lib/components/Calculator/Calculator.js.map +1 -1
  230. package/lib/components/Calculator/useCalculatorParams.js +2 -5
  231. package/lib/components/Calculator/useCalculatorParams.js.map +1 -1
  232. package/lib/components/Calculator/useCreditCalculatorParams.js +1 -2
  233. package/lib/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  234. package/lib/components/Catalog/CatalogCard.js +12 -6
  235. package/lib/components/Catalog/CatalogCard.js.map +1 -1
  236. package/lib/components/ComparisonTable/ComparisonTableContent.d.ts +7 -1
  237. package/lib/components/ComparisonTable/ComparisonTableRows.d.ts +2 -2
  238. package/lib/components/ComparisonTable/ComparisonTableRows.js +1 -1
  239. package/lib/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  240. package/lib/components/ContentPage/normalizePage.js +1 -1
  241. package/lib/components/ContentPage/normalizePage.js.map +1 -1
  242. package/lib/components/ContentPage/normalizePage.mobile.js +1 -1
  243. package/lib/components/ContentPage/normalizePage.mobile.js.map +1 -1
  244. package/lib/components/Gallery/Gallery.mobile.js +2 -5
  245. package/lib/components/Gallery/Gallery.mobile.js.map +1 -1
  246. package/lib/components/Gallery/GalleryCardInner.d.ts +2 -2
  247. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  248. package/lib/components/Gallery/GalleryContainer.d.ts +2 -2
  249. package/lib/components/Gallery/GalleryContainer.js +4 -3
  250. package/lib/components/Gallery/GalleryContainer.js.map +1 -1
  251. package/lib/components/Gallery/GalleryContent.d.ts +4 -4
  252. package/lib/components/Gallery/GalleryProps.d.ts +1 -1
  253. package/lib/components/Gallery/constants.d.ts +0 -2
  254. package/lib/components/Gallery/constants.js +0 -4
  255. package/lib/components/Gallery/constants.js.map +1 -1
  256. package/lib/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  257. package/lib/components/Header/Header.js +3 -2
  258. package/lib/components/Header/Header.js.map +1 -1
  259. package/lib/components/Header/HeaderSecondaryMenu.js +1 -1
  260. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  261. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  262. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  263. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +4 -3
  264. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  265. package/lib/components/MobileAppTile/MobileAppTile.js +4 -6
  266. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  267. package/lib/components/MobileAppTile/MobileAppTileContent.d.ts +1 -0
  268. package/lib/components/Navigation/Navigation.d.ts +1 -1
  269. package/lib/components/OtherProducts/OtherProductsContent.d.ts +1 -4
  270. package/lib/components/PictureText/PictureText.js +2 -5
  271. package/lib/components/PictureText/PictureText.js.map +1 -1
  272. package/lib/components/ProductBlock/ProductBlock.js +2 -5
  273. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  274. package/lib/components/ProductBlock/ProductBlock.mobile.js +2 -5
  275. package/lib/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  276. package/lib/components/ProductBlock/ProductBlockContent.d.ts +14 -2
  277. package/lib/components/ProductGallery/ProductGallery.js +4 -11
  278. package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  279. package/lib/components/ProductGallery/ProductGalleryBlock.js +2 -5
  280. package/lib/components/ProductGallery/ProductGalleryBlock.js.map +1 -1
  281. package/lib/components/ProductTile/ProductTile.fixture.d.ts +1 -0
  282. package/lib/components/ProductTile/ProductTile.js +14 -14
  283. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  284. package/lib/components/PromoTile/PromoTile.js +2 -5
  285. package/lib/components/PromoTile/PromoTile.js.map +1 -1
  286. package/lib/components/PromoTile/PromoTileContent.d.ts +2 -2
  287. package/lib/components/Recommendation/RecommendationContent.d.ts +4 -4
  288. package/lib/components/SafeDepositRental/SafeDepositRental.js +4 -0
  289. package/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  290. package/lib/components/SafeDepositRental/SafeDepositRentalForm.js +1 -1
  291. package/lib/components/StepsBlock/StepsBlock.mobile.js +1 -1
  292. package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  293. package/lib/components/Tabs/Tabs.d.ts +4 -4
  294. package/lib/components/Tabs/Tabs.js +10 -3
  295. package/lib/components/Tabs/Tabs.js.map +1 -1
  296. package/lib/components/Tabs/TabsContent.d.ts +13 -11
  297. package/lib/components/Tabs/renderGroupTab.d.ts +3 -3
  298. package/lib/components/Tabs/renderGroupTab.js.map +1 -1
  299. package/lib/components/Tabs/renderTab.d.ts +1 -1
  300. package/lib/components/Tabs/renderTab.js +19 -8
  301. package/lib/components/Tabs/renderTab.js.map +1 -1
  302. package/lib/components/TariffsTable/EmbeddableCellData.d.ts +14 -0
  303. package/lib/components/TariffsTable/EmbeddableCellData.js +33 -0
  304. package/lib/components/TariffsTable/EmbeddableCellData.js.map +1 -0
  305. package/lib/components/TariffsTable/EmbeddableCellData.mobile.d.ts +14 -0
  306. package/lib/components/TariffsTable/EmbeddableCellData.mobile.js +19 -0
  307. package/lib/components/TariffsTable/EmbeddableCellData.mobile.js.map +1 -0
  308. package/lib/components/TariffsTable/TariffsTable.fixture.d.ts +1 -0
  309. package/lib/components/TariffsTable/TariffsTable.js +10 -11
  310. package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  311. package/lib/components/TariffsTable/TariffsTable.mobile.js +2 -2
  312. package/lib/components/TariffsTable/TariffsTable.mobile.js.map +1 -1
  313. package/lib/components/TariffsTable/TariffsTableCell.d.ts +6 -3
  314. package/lib/components/TariffsTable/TariffsTableCell.js +18 -10
  315. package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  316. package/lib/components/TariffsTable/TariffsTableContent.d.ts +80 -26
  317. package/lib/components/TariffsTable/TariffsTableHorizontal.d.ts +5 -5
  318. package/lib/components/TariffsTable/TariffsTableHorizontal.js.map +1 -1
  319. package/lib/components/TariffsTable/TariffsTableRow.d.ts +5 -4
  320. package/lib/components/TariffsTable/TariffsTableRow.js +3 -3
  321. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  322. package/lib/components/TariffsTable/TariffsTableRowContainer.d.ts +7 -0
  323. package/lib/components/TariffsTable/TariffsTableRowContainer.js +13 -0
  324. package/lib/components/TariffsTable/TariffsTableRowContainer.js.map +1 -0
  325. package/lib/components/TariffsTable/TariffsTableTileCell.d.ts +7 -1
  326. package/lib/components/TariffsTable/TariffsTableTileCell.js +15 -9
  327. package/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  328. package/lib/components/TariffsTable/TariffsTableVertical.d.ts +5 -3
  329. package/lib/components/TariffsTable/TariffsTableVertical.js.map +1 -1
  330. package/lib/components/TariffsTable/dataFixture.d.ts +5 -0
  331. package/lib/components/TariffsTable/dataFixture.js +138 -0
  332. package/lib/components/TariffsTable/dataFixture.js.map +1 -0
  333. package/lib/components/TextBlock/TextBlock.fixture.d.ts +1 -1
  334. package/lib/components/TextBlock/TextBlock.fixture.mobile.d.ts +1 -1
  335. package/lib/components/Tile/Tile.js +6 -9
  336. package/lib/components/Tile/Tile.js.map +1 -1
  337. package/lib/components/Tile/TileContent.d.ts +4 -2
  338. package/lib/content-page-repository/transformContentPage.js +9 -3
  339. package/lib/content-page-repository/transformContentPage.js.map +1 -1
  340. package/lib/content-page-repository/transformImg.d.ts +11 -0
  341. package/lib/content-page-repository/transformImg.js +94 -0
  342. package/lib/content-page-repository/transformImg.js.map +1 -0
  343. package/lib/content-page-repository/transformPicture.js +15 -40
  344. package/lib/content-page-repository/transformPicture.js.map +1 -1
  345. package/lib/content-page-repository/transformSrc.d.ts +3 -0
  346. package/lib/content-page-repository/transformSrc.js +14 -0
  347. package/lib/content-page-repository/transformSrc.js.map +1 -0
  348. package/lib/hooks/useExchangeRates.js +9 -18
  349. package/lib/hooks/useExchangeRates.js.map +1 -1
  350. package/lib/hooks/useTariffsInnerTableData.d.ts +1 -0
  351. package/lib/hooks/useTariffsInnerTableData.js +13 -0
  352. package/lib/hooks/useTariffsInnerTableData.js.map +1 -0
  353. package/lib/icons/IconName.d.ts +4 -2
  354. package/lib/icons/IconName.js +2 -0
  355. package/lib/icons/IconName.js.map +1 -1
  356. package/lib/model/BlockVersion.d.ts +1 -0
  357. package/lib/model/BlockVersion.js +4 -1
  358. package/lib/model/BlockVersion.js.map +1 -1
  359. package/lib/model/HeadlineType.d.ts +3 -3
  360. package/lib/model/ImageSize.d.ts +6 -0
  361. package/lib/model/ImageSize.js +2 -0
  362. package/lib/model/ImageSize.js.map +1 -0
  363. package/lib/model/LinkProps.d.ts +6 -4
  364. package/lib/model/Picture.d.ts +19 -6
  365. package/lib/services/sitemap/useSitemap.js +2 -8
  366. package/lib/services/sitemap/useSitemap.js.map +1 -1
  367. package/lib/ui-kit/BenefitItem/BenefitItem.js +2 -2
  368. package/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  369. package/lib/ui-kit/BlocksList/renderBlocksList.d.ts +1 -2
  370. package/lib/ui-kit/Button/Button.d.ts +2 -4
  371. package/lib/ui-kit/Button/Button.js +1 -1
  372. package/lib/ui-kit/Button/Button.js.map +1 -1
  373. package/lib/ui-kit/Button/Button.mobile.d.ts +2 -4
  374. package/lib/ui-kit/Button/Button.mobile.js.map +1 -1
  375. package/lib/ui-kit/Button/ButtonInner.d.ts +1 -1
  376. package/lib/ui-kit/Description/Description.d.ts +3 -3
  377. package/lib/ui-kit/Description/Description.js.map +1 -1
  378. package/lib/ui-kit/Foldable/Foldable.js +1 -1
  379. package/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  380. package/lib/ui-kit/Heading/HeadingProps.d.ts +5 -2
  381. package/lib/ui-kit/Img/ImgAsPicture.js +6 -2
  382. package/lib/ui-kit/Img/ImgAsPicture.js.map +1 -1
  383. package/lib/ui-kit/InnerTable/InnerTable.d.ts +5 -0
  384. package/lib/ui-kit/InnerTable/InnerTable.js +15 -0
  385. package/lib/ui-kit/InnerTable/InnerTable.js.map +1 -0
  386. package/lib/ui-kit/InnerTable/InnerTableBody.d.ts +7 -0
  387. package/lib/ui-kit/InnerTable/InnerTableBody.js +16 -0
  388. package/lib/ui-kit/InnerTable/InnerTableBody.js.map +1 -0
  389. package/lib/ui-kit/InnerTable/InnerTableBodyItem.d.ts +6 -0
  390. package/lib/ui-kit/InnerTable/InnerTableBodyItem.js +31 -0
  391. package/lib/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -0
  392. package/lib/ui-kit/InnerTable/InnerTableButton.d.ts +6 -0
  393. package/lib/ui-kit/InnerTable/InnerTableButton.js +12 -0
  394. package/lib/ui-kit/InnerTable/InnerTableButton.js.map +1 -0
  395. package/lib/ui-kit/InnerTable/InnerTableHeader.d.ts +7 -0
  396. package/lib/ui-kit/InnerTable/InnerTableHeader.js +6 -0
  397. package/lib/ui-kit/InnerTable/InnerTableHeader.js.map +1 -0
  398. package/lib/ui-kit/InnerTable/InnerTableProps.d.ts +24 -0
  399. package/lib/ui-kit/InnerTable/InnerTableProps.js +2 -0
  400. package/lib/ui-kit/InnerTable/InnerTableProps.js.map +1 -0
  401. package/lib/ui-kit/List/List.js +6 -2
  402. package/lib/ui-kit/List/List.js.map +1 -1
  403. package/lib/ui-kit/List/ListProps.d.ts +9 -1
  404. package/lib/ui-kit/Logo/Logo.js +6 -2
  405. package/lib/ui-kit/Logo/Logo.js.map +1 -1
  406. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  407. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  408. package/lib/ui-kit/TopItem/TopItem.d.ts +1 -1
  409. package/lib/ui-kit/TopItem/TopItem.js +2 -2
  410. package/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  411. package/lib/utils/assertUnreachable.d.ts +1 -0
  412. package/lib/utils/assertUnreachable.js +4 -0
  413. package/lib/utils/assertUnreachable.js.map +1 -0
  414. package/lib/utils/fetchJSON.d.ts +2 -0
  415. package/lib/utils/fetchJSON.js +20 -0
  416. package/lib/utils/fetchJSON.js.map +1 -0
  417. package/lib/utils/isPictureSizeEmpty.d.ts +2 -0
  418. package/lib/utils/isPictureSizeEmpty.js +4 -0
  419. package/lib/utils/isPictureSizeEmpty.js.map +1 -0
  420. package/lib/utils/roundTo.d.ts +1 -1
  421. package/lib/utils/roundTo.js +1 -1
  422. package/lib/utils/roundTo.js.map +1 -1
  423. package/mobile/bundle/bundle.umd.js +90 -62
  424. package/mobile/bundle/bundle.umd.min.js +1 -1
  425. package/mobile/dist/EventBus/EventMap.d.ts +2 -0
  426. package/mobile/dist/components/Accordion/AccordionItem.js +1 -1
  427. package/mobile/dist/components/Accordion/AccordionItem.js.map +1 -1
  428. package/mobile/dist/components/BaseTile/BaseTile.js +1 -1
  429. package/mobile/dist/components/BaseTile/BaseTile.js.map +1 -1
  430. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +32 -9
  431. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  432. package/mobile/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +11 -4
  433. package/mobile/dist/components/BlockContent.d.ts +2 -3
  434. package/mobile/dist/components/Calculator/Calculator.js +1 -1
  435. package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
  436. package/mobile/dist/components/Calculator/useCalculatorParams.js +2 -5
  437. package/mobile/dist/components/Calculator/useCalculatorParams.js.map +1 -1
  438. package/mobile/dist/components/Calculator/useCreditCalculatorParams.js +1 -2
  439. package/mobile/dist/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  440. package/mobile/dist/components/Catalog/CatalogCard.js +12 -6
  441. package/mobile/dist/components/Catalog/CatalogCard.js.map +1 -1
  442. package/mobile/dist/components/ComparisonTable/ComparisonTableContent.d.ts +7 -1
  443. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.d.ts +2 -2
  444. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.js +1 -1
  445. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  446. package/mobile/dist/components/ContentPage/normalizePage.js +1 -1
  447. package/mobile/dist/components/ContentPage/normalizePage.js.map +1 -1
  448. package/mobile/dist/components/Gallery/Gallery.js +2 -5
  449. package/mobile/dist/components/Gallery/Gallery.js.map +1 -1
  450. package/mobile/dist/components/Gallery/GalleryCardInner.d.ts +2 -2
  451. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  452. package/mobile/dist/components/Gallery/GalleryContainer.d.ts +2 -2
  453. package/mobile/dist/components/Gallery/GalleryContainer.js +3 -2
  454. package/mobile/dist/components/Gallery/GalleryContainer.js.map +1 -1
  455. package/mobile/dist/components/Gallery/GalleryContent.d.ts +4 -4
  456. package/mobile/dist/components/Gallery/GalleryProps.d.ts +1 -1
  457. package/mobile/dist/components/Gallery/constants.d.ts +0 -2
  458. package/mobile/dist/components/Gallery/constants.js +1 -5
  459. package/mobile/dist/components/Gallery/constants.js.map +1 -1
  460. package/mobile/dist/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  461. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +1 -1
  462. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  463. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  464. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  465. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +4 -3
  466. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  467. package/mobile/dist/components/MobileAppTile/MobileAppTileContent.d.ts +1 -0
  468. package/mobile/dist/components/Navigation/Navigation.d.ts +1 -1
  469. package/mobile/dist/components/OtherProducts/OtherProductsContent.d.ts +1 -4
  470. package/mobile/dist/components/PictureText/PictureText.js +2 -5
  471. package/mobile/dist/components/PictureText/PictureText.js.map +1 -1
  472. package/mobile/dist/components/ProductBlock/ProductBlock.js +2 -5
  473. package/mobile/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  474. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +14 -2
  475. package/mobile/dist/components/ProductGallery/ProductGalleryBlock.js +2 -5
  476. package/mobile/dist/components/ProductGallery/ProductGalleryBlock.js.map +1 -1
  477. package/mobile/dist/components/ProductTile/ProductTile.js +14 -14
  478. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  479. package/mobile/dist/components/PromoTile/PromoTile.js +2 -5
  480. package/mobile/dist/components/PromoTile/PromoTile.js.map +1 -1
  481. package/mobile/dist/components/PromoTile/PromoTileContent.d.ts +2 -2
  482. package/mobile/dist/components/Recommendation/RecommendationContent.d.ts +4 -4
  483. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js +4 -0
  484. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  485. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalForm.js +1 -1
  486. package/mobile/dist/components/StepsBlock/StepsBlock.js +1 -1
  487. package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  488. package/mobile/dist/components/Tabs/Tabs.d.ts +4 -4
  489. package/mobile/dist/components/Tabs/Tabs.js +10 -3
  490. package/mobile/dist/components/Tabs/Tabs.js.map +1 -1
  491. package/mobile/dist/components/Tabs/TabsContent.d.ts +13 -11
  492. package/mobile/dist/components/Tabs/renderGroupTab.d.ts +3 -3
  493. package/mobile/dist/components/Tabs/renderGroupTab.js.map +1 -1
  494. package/mobile/dist/components/Tabs/renderTab.d.ts +1 -1
  495. package/mobile/dist/components/Tabs/renderTab.js +19 -8
  496. package/mobile/dist/components/Tabs/renderTab.js.map +1 -1
  497. package/mobile/dist/components/TariffsTable/EmbeddableCellData.d.ts +15 -0
  498. package/mobile/dist/components/TariffsTable/EmbeddableCellData.js +21 -0
  499. package/mobile/dist/components/TariffsTable/EmbeddableCellData.js.map +1 -0
  500. package/mobile/dist/components/TariffsTable/TariffsTable.js +2 -2
  501. package/mobile/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  502. package/mobile/dist/components/TariffsTable/TariffsTableCell.d.ts +6 -3
  503. package/mobile/dist/components/TariffsTable/TariffsTableCell.js +18 -10
  504. package/mobile/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  505. package/mobile/dist/components/TariffsTable/TariffsTableContent.d.ts +80 -26
  506. package/mobile/dist/components/TariffsTable/TariffsTableHorizontal.d.ts +5 -5
  507. package/mobile/dist/components/TariffsTable/TariffsTableHorizontal.js.map +1 -1
  508. package/mobile/dist/components/TariffsTable/TariffsTableRow.d.ts +5 -4
  509. package/mobile/dist/components/TariffsTable/TariffsTableRow.js +3 -3
  510. package/mobile/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  511. package/mobile/dist/components/TariffsTable/TariffsTableRowContainer.d.ts +7 -0
  512. package/mobile/dist/components/TariffsTable/TariffsTableRowContainer.js +15 -0
  513. package/mobile/dist/components/TariffsTable/TariffsTableRowContainer.js.map +1 -0
  514. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.d.ts +7 -1
  515. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js +15 -9
  516. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  517. package/mobile/dist/components/TariffsTable/TariffsTableVertical.d.ts +5 -3
  518. package/mobile/dist/components/TariffsTable/TariffsTableVertical.js.map +1 -1
  519. package/mobile/dist/components/TariffsTable/dataFixture.d.ts +5 -0
  520. package/mobile/dist/components/TariffsTable/dataFixture.js +140 -0
  521. package/mobile/dist/components/TariffsTable/dataFixture.js.map +1 -0
  522. package/mobile/dist/components/Tile/Tile.js +6 -9
  523. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  524. package/mobile/dist/components/Tile/TileContent.d.ts +4 -2
  525. package/mobile/dist/content-page-repository/transformContentPage.js +9 -3
  526. package/mobile/dist/content-page-repository/transformContentPage.js.map +1 -1
  527. package/mobile/dist/content-page-repository/transformImg.d.ts +11 -0
  528. package/mobile/dist/content-page-repository/transformImg.js +100 -0
  529. package/mobile/dist/content-page-repository/transformImg.js.map +1 -0
  530. package/mobile/dist/content-page-repository/transformPicture.js +15 -40
  531. package/mobile/dist/content-page-repository/transformPicture.js.map +1 -1
  532. package/mobile/dist/content-page-repository/transformSrc.d.ts +3 -0
  533. package/mobile/dist/content-page-repository/transformSrc.js +20 -0
  534. package/mobile/dist/content-page-repository/transformSrc.js.map +1 -0
  535. package/mobile/dist/hooks/useExchangeRates.js +9 -18
  536. package/mobile/dist/hooks/useExchangeRates.js.map +1 -1
  537. package/mobile/dist/hooks/useTariffsInnerTableData.d.ts +1 -0
  538. package/mobile/dist/hooks/useTariffsInnerTableData.js +16 -0
  539. package/mobile/dist/hooks/useTariffsInnerTableData.js.map +1 -0
  540. package/mobile/dist/icons/IconName.d.ts +4 -2
  541. package/mobile/dist/icons/IconName.js +2 -0
  542. package/mobile/dist/icons/IconName.js.map +1 -1
  543. package/mobile/dist/model/BlockVersion.d.ts +1 -0
  544. package/mobile/dist/model/BlockVersion.js +5 -0
  545. package/mobile/dist/model/BlockVersion.js.map +1 -1
  546. package/mobile/dist/model/HeadlineType.d.ts +3 -3
  547. package/mobile/dist/model/ImageSize.d.ts +6 -0
  548. package/{dist/components/GroupBlock/GroupBlockContent.js → mobile/dist/model/ImageSize.js} +1 -1
  549. package/mobile/dist/model/ImageSize.js.map +1 -0
  550. package/mobile/dist/model/LinkProps.d.ts +6 -4
  551. package/mobile/dist/model/Picture.d.ts +19 -6
  552. package/mobile/dist/services/sitemap/useSitemap.js +2 -8
  553. package/mobile/dist/services/sitemap/useSitemap.js.map +1 -1
  554. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js +2 -2
  555. package/mobile/dist/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  556. package/mobile/dist/ui-kit/BlocksList/renderBlocksList.d.ts +1 -2
  557. package/mobile/dist/ui-kit/Button/Button.d.ts +2 -4
  558. package/mobile/dist/ui-kit/Button/Button.js.map +1 -1
  559. package/mobile/dist/ui-kit/Button/ButtonInner.d.ts +1 -1
  560. package/mobile/dist/ui-kit/Description/Description.d.ts +3 -3
  561. package/mobile/dist/ui-kit/Description/Description.js.map +1 -1
  562. package/mobile/dist/ui-kit/Foldable/Foldable.js +1 -1
  563. package/mobile/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  564. package/mobile/dist/ui-kit/Heading/HeadingProps.d.ts +5 -2
  565. package/mobile/dist/ui-kit/Img/ImgAsPicture.js +6 -2
  566. package/mobile/dist/ui-kit/Img/ImgAsPicture.js.map +1 -1
  567. package/mobile/dist/ui-kit/InnerTable/InnerTable.d.ts +5 -0
  568. package/mobile/dist/ui-kit/InnerTable/InnerTable.js +17 -0
  569. package/mobile/dist/ui-kit/InnerTable/InnerTable.js.map +1 -0
  570. package/mobile/dist/ui-kit/InnerTable/InnerTableBody.d.ts +7 -0
  571. package/mobile/dist/ui-kit/InnerTable/InnerTableBody.js +18 -0
  572. package/mobile/dist/ui-kit/InnerTable/InnerTableBody.js.map +1 -0
  573. package/mobile/dist/ui-kit/InnerTable/InnerTableBodyItem.d.ts +6 -0
  574. package/mobile/dist/ui-kit/InnerTable/InnerTableBodyItem.js +33 -0
  575. package/mobile/dist/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -0
  576. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.d.ts +6 -0
  577. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.js +14 -0
  578. package/mobile/dist/ui-kit/InnerTable/InnerTableButton.js.map +1 -0
  579. package/mobile/dist/ui-kit/InnerTable/InnerTableHeader.d.ts +7 -0
  580. package/mobile/dist/ui-kit/InnerTable/InnerTableHeader.js +8 -0
  581. package/mobile/dist/ui-kit/InnerTable/InnerTableHeader.js.map +1 -0
  582. package/mobile/dist/ui-kit/InnerTable/InnerTableProps.d.ts +24 -0
  583. package/mobile/dist/{components/GroupBlock/GroupBlockContent.js → ui-kit/InnerTable/InnerTableProps.js} +1 -1
  584. package/mobile/dist/ui-kit/InnerTable/InnerTableProps.js.map +1 -0
  585. package/mobile/dist/ui-kit/List/List.js +6 -2
  586. package/mobile/dist/ui-kit/List/List.js.map +1 -1
  587. package/mobile/dist/ui-kit/List/ListProps.d.ts +9 -1
  588. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  589. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  590. package/mobile/dist/ui-kit/TopItem/TopItem.d.ts +1 -1
  591. package/mobile/dist/ui-kit/TopItem/TopItem.js +2 -2
  592. package/mobile/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  593. package/mobile/dist/utils/assertUnreachable.d.ts +1 -0
  594. package/mobile/dist/utils/assertUnreachable.js +7 -0
  595. package/mobile/dist/utils/assertUnreachable.js.map +1 -0
  596. package/mobile/dist/utils/fetchJSON.d.ts +2 -0
  597. package/mobile/dist/utils/fetchJSON.js +24 -0
  598. package/mobile/dist/utils/fetchJSON.js.map +1 -0
  599. package/mobile/dist/utils/isPictureSizeEmpty.d.ts +2 -0
  600. package/mobile/dist/utils/isPictureSizeEmpty.js +7 -0
  601. package/mobile/dist/utils/isPictureSizeEmpty.js.map +1 -0
  602. package/mobile/dist/utils/roundTo.d.ts +1 -1
  603. package/mobile/dist/utils/roundTo.js +1 -1
  604. package/mobile/dist/utils/roundTo.js.map +1 -1
  605. package/mobile/lib/EventBus/EventMap.d.ts +2 -0
  606. package/mobile/lib/components/Accordion/AccordionItem.js +1 -1
  607. package/mobile/lib/components/Accordion/AccordionItem.js.map +1 -1
  608. package/mobile/lib/components/BaseTile/BaseTile.js +1 -1
  609. package/mobile/lib/components/BaseTile/BaseTile.js.map +1 -1
  610. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +32 -9
  611. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  612. package/mobile/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +11 -4
  613. package/mobile/lib/components/BlockContent.d.ts +2 -3
  614. package/mobile/lib/components/Calculator/Calculator.js +1 -1
  615. package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
  616. package/mobile/lib/components/Calculator/useCalculatorParams.js +2 -5
  617. package/mobile/lib/components/Calculator/useCalculatorParams.js.map +1 -1
  618. package/mobile/lib/components/Calculator/useCreditCalculatorParams.js +1 -2
  619. package/mobile/lib/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  620. package/mobile/lib/components/Catalog/CatalogCard.js +12 -6
  621. package/mobile/lib/components/Catalog/CatalogCard.js.map +1 -1
  622. package/mobile/lib/components/ComparisonTable/ComparisonTableContent.d.ts +7 -1
  623. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.d.ts +2 -2
  624. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.js +1 -1
  625. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.js.map +1 -1
  626. package/mobile/lib/components/ContentPage/normalizePage.js +1 -1
  627. package/mobile/lib/components/ContentPage/normalizePage.js.map +1 -1
  628. package/mobile/lib/components/Gallery/Gallery.js +2 -5
  629. package/mobile/lib/components/Gallery/Gallery.js.map +1 -1
  630. package/mobile/lib/components/Gallery/GalleryCardInner.d.ts +2 -2
  631. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  632. package/mobile/lib/components/Gallery/GalleryContainer.d.ts +2 -2
  633. package/mobile/lib/components/Gallery/GalleryContainer.js +4 -3
  634. package/mobile/lib/components/Gallery/GalleryContainer.js.map +1 -1
  635. package/mobile/lib/components/Gallery/GalleryContent.d.ts +4 -4
  636. package/mobile/lib/components/Gallery/GalleryProps.d.ts +1 -1
  637. package/mobile/lib/components/Gallery/constants.d.ts +0 -2
  638. package/mobile/lib/components/Gallery/constants.js +0 -4
  639. package/mobile/lib/components/Gallery/constants.js.map +1 -1
  640. package/mobile/lib/components/GracePeriod/GracePeriodContent.d.ts +2 -2
  641. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +1 -1
  642. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  643. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +1 -1
  644. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  645. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +4 -3
  646. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  647. package/mobile/lib/components/MobileAppTile/MobileAppTileContent.d.ts +1 -0
  648. package/mobile/lib/components/Navigation/Navigation.d.ts +1 -1
  649. package/mobile/lib/components/OtherProducts/OtherProductsContent.d.ts +1 -4
  650. package/mobile/lib/components/PictureText/PictureText.js +2 -5
  651. package/mobile/lib/components/PictureText/PictureText.js.map +1 -1
  652. package/mobile/lib/components/ProductBlock/ProductBlock.js +2 -5
  653. package/mobile/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  654. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +14 -2
  655. package/mobile/lib/components/ProductGallery/ProductGalleryBlock.js +2 -5
  656. package/mobile/lib/components/ProductGallery/ProductGalleryBlock.js.map +1 -1
  657. package/mobile/lib/components/ProductTile/ProductTile.js +14 -14
  658. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  659. package/mobile/lib/components/PromoTile/PromoTile.js +2 -5
  660. package/mobile/lib/components/PromoTile/PromoTile.js.map +1 -1
  661. package/mobile/lib/components/PromoTile/PromoTileContent.d.ts +2 -2
  662. package/mobile/lib/components/Recommendation/RecommendationContent.d.ts +4 -4
  663. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js +4 -0
  664. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  665. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalForm.js +1 -1
  666. package/mobile/lib/components/StepsBlock/StepsBlock.js +1 -1
  667. package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  668. package/mobile/lib/components/Tabs/Tabs.d.ts +4 -4
  669. package/mobile/lib/components/Tabs/Tabs.js +10 -3
  670. package/mobile/lib/components/Tabs/Tabs.js.map +1 -1
  671. package/mobile/lib/components/Tabs/TabsContent.d.ts +13 -11
  672. package/mobile/lib/components/Tabs/renderGroupTab.d.ts +3 -3
  673. package/mobile/lib/components/Tabs/renderGroupTab.js.map +1 -1
  674. package/mobile/lib/components/Tabs/renderTab.d.ts +1 -1
  675. package/mobile/lib/components/Tabs/renderTab.js +19 -8
  676. package/mobile/lib/components/Tabs/renderTab.js.map +1 -1
  677. package/mobile/lib/components/TariffsTable/EmbeddableCellData.d.ts +15 -0
  678. package/mobile/lib/components/TariffsTable/EmbeddableCellData.js +19 -0
  679. package/mobile/lib/components/TariffsTable/EmbeddableCellData.js.map +1 -0
  680. package/mobile/lib/components/TariffsTable/TariffsTable.js +2 -2
  681. package/mobile/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  682. package/mobile/lib/components/TariffsTable/TariffsTableCell.d.ts +6 -3
  683. package/mobile/lib/components/TariffsTable/TariffsTableCell.js +18 -10
  684. package/mobile/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  685. package/mobile/lib/components/TariffsTable/TariffsTableContent.d.ts +80 -26
  686. package/mobile/lib/components/TariffsTable/TariffsTableHorizontal.d.ts +5 -5
  687. package/mobile/lib/components/TariffsTable/TariffsTableHorizontal.js.map +1 -1
  688. package/mobile/lib/components/TariffsTable/TariffsTableRow.d.ts +5 -4
  689. package/mobile/lib/components/TariffsTable/TariffsTableRow.js +3 -3
  690. package/mobile/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  691. package/mobile/lib/components/TariffsTable/TariffsTableRowContainer.d.ts +7 -0
  692. package/mobile/lib/components/TariffsTable/TariffsTableRowContainer.js +13 -0
  693. package/mobile/lib/components/TariffsTable/TariffsTableRowContainer.js.map +1 -0
  694. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.d.ts +7 -1
  695. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js +15 -9
  696. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  697. package/mobile/lib/components/TariffsTable/TariffsTableVertical.d.ts +5 -3
  698. package/mobile/lib/components/TariffsTable/TariffsTableVertical.js.map +1 -1
  699. package/mobile/lib/components/TariffsTable/dataFixture.d.ts +5 -0
  700. package/mobile/lib/components/TariffsTable/dataFixture.js +138 -0
  701. package/mobile/lib/components/TariffsTable/dataFixture.js.map +1 -0
  702. package/mobile/lib/components/Tile/Tile.js +6 -9
  703. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  704. package/mobile/lib/components/Tile/TileContent.d.ts +4 -2
  705. package/mobile/lib/content-page-repository/transformContentPage.js +9 -3
  706. package/mobile/lib/content-page-repository/transformContentPage.js.map +1 -1
  707. package/mobile/lib/content-page-repository/transformImg.d.ts +11 -0
  708. package/mobile/lib/content-page-repository/transformImg.js +94 -0
  709. package/mobile/lib/content-page-repository/transformImg.js.map +1 -0
  710. package/mobile/lib/content-page-repository/transformPicture.js +15 -40
  711. package/mobile/lib/content-page-repository/transformPicture.js.map +1 -1
  712. package/mobile/lib/content-page-repository/transformSrc.d.ts +3 -0
  713. package/mobile/lib/content-page-repository/transformSrc.js +14 -0
  714. package/mobile/lib/content-page-repository/transformSrc.js.map +1 -0
  715. package/mobile/lib/hooks/useExchangeRates.js +9 -18
  716. package/mobile/lib/hooks/useExchangeRates.js.map +1 -1
  717. package/mobile/lib/hooks/useTariffsInnerTableData.d.ts +1 -0
  718. package/mobile/lib/hooks/useTariffsInnerTableData.js +13 -0
  719. package/mobile/lib/hooks/useTariffsInnerTableData.js.map +1 -0
  720. package/mobile/lib/icons/IconName.d.ts +4 -2
  721. package/mobile/lib/icons/IconName.js +2 -0
  722. package/mobile/lib/icons/IconName.js.map +1 -1
  723. package/mobile/lib/model/BlockVersion.d.ts +1 -0
  724. package/mobile/lib/model/BlockVersion.js +4 -1
  725. package/mobile/lib/model/BlockVersion.js.map +1 -1
  726. package/mobile/lib/model/HeadlineType.d.ts +3 -3
  727. package/mobile/lib/model/ImageSize.d.ts +6 -0
  728. package/mobile/lib/model/ImageSize.js +2 -0
  729. package/mobile/lib/model/ImageSize.js.map +1 -0
  730. package/mobile/lib/model/LinkProps.d.ts +6 -4
  731. package/mobile/lib/model/Picture.d.ts +19 -6
  732. package/mobile/lib/services/sitemap/useSitemap.js +2 -8
  733. package/mobile/lib/services/sitemap/useSitemap.js.map +1 -1
  734. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js +2 -2
  735. package/mobile/lib/ui-kit/BenefitItem/BenefitItem.js.map +1 -1
  736. package/mobile/lib/ui-kit/BlocksList/renderBlocksList.d.ts +1 -2
  737. package/mobile/lib/ui-kit/Button/Button.d.ts +2 -4
  738. package/mobile/lib/ui-kit/Button/Button.js.map +1 -1
  739. package/mobile/lib/ui-kit/Button/ButtonInner.d.ts +1 -1
  740. package/mobile/lib/ui-kit/Description/Description.d.ts +3 -3
  741. package/mobile/lib/ui-kit/Description/Description.js.map +1 -1
  742. package/mobile/lib/ui-kit/Foldable/Foldable.js +1 -1
  743. package/mobile/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  744. package/mobile/lib/ui-kit/Heading/HeadingProps.d.ts +5 -2
  745. package/mobile/lib/ui-kit/Img/ImgAsPicture.js +6 -2
  746. package/mobile/lib/ui-kit/Img/ImgAsPicture.js.map +1 -1
  747. package/mobile/lib/ui-kit/InnerTable/InnerTable.d.ts +5 -0
  748. package/mobile/lib/ui-kit/InnerTable/InnerTable.js +15 -0
  749. package/mobile/lib/ui-kit/InnerTable/InnerTable.js.map +1 -0
  750. package/mobile/lib/ui-kit/InnerTable/InnerTableBody.d.ts +7 -0
  751. package/mobile/lib/ui-kit/InnerTable/InnerTableBody.js +16 -0
  752. package/mobile/lib/ui-kit/InnerTable/InnerTableBody.js.map +1 -0
  753. package/mobile/lib/ui-kit/InnerTable/InnerTableBodyItem.d.ts +6 -0
  754. package/mobile/lib/ui-kit/InnerTable/InnerTableBodyItem.js +31 -0
  755. package/mobile/lib/ui-kit/InnerTable/InnerTableBodyItem.js.map +1 -0
  756. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.d.ts +6 -0
  757. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.js +12 -0
  758. package/mobile/lib/ui-kit/InnerTable/InnerTableButton.js.map +1 -0
  759. package/mobile/lib/ui-kit/InnerTable/InnerTableHeader.d.ts +7 -0
  760. package/mobile/lib/ui-kit/InnerTable/InnerTableHeader.js +6 -0
  761. package/mobile/lib/ui-kit/InnerTable/InnerTableHeader.js.map +1 -0
  762. package/mobile/lib/ui-kit/InnerTable/InnerTableProps.d.ts +24 -0
  763. package/mobile/lib/ui-kit/InnerTable/InnerTableProps.js +2 -0
  764. package/mobile/lib/ui-kit/InnerTable/InnerTableProps.js.map +1 -0
  765. package/mobile/lib/ui-kit/List/List.js +6 -2
  766. package/mobile/lib/ui-kit/List/List.js.map +1 -1
  767. package/mobile/lib/ui-kit/List/ListProps.d.ts +9 -1
  768. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  769. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  770. package/mobile/lib/ui-kit/TopItem/TopItem.d.ts +1 -1
  771. package/mobile/lib/ui-kit/TopItem/TopItem.js +2 -2
  772. package/mobile/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  773. package/mobile/lib/utils/assertUnreachable.d.ts +1 -0
  774. package/mobile/lib/utils/assertUnreachable.js +4 -0
  775. package/mobile/lib/utils/assertUnreachable.js.map +1 -0
  776. package/mobile/lib/utils/fetchJSON.d.ts +2 -0
  777. package/mobile/lib/utils/fetchJSON.js +20 -0
  778. package/mobile/lib/utils/fetchJSON.js.map +1 -0
  779. package/mobile/lib/utils/isPictureSizeEmpty.d.ts +2 -0
  780. package/mobile/lib/utils/isPictureSizeEmpty.js +4 -0
  781. package/mobile/lib/utils/isPictureSizeEmpty.js.map +1 -0
  782. package/mobile/lib/utils/roundTo.d.ts +1 -1
  783. package/mobile/lib/utils/roundTo.js +1 -1
  784. package/mobile/lib/utils/roundTo.js.map +1 -1
  785. package/mobile/src/EventBus/EventMap.ts +2 -1
  786. package/mobile/src/components/Accordion/AccordionItem.tsx +4 -2
  787. package/mobile/src/components/BaseTile/BaseTile.tsx +2 -2
  788. package/mobile/src/components/BenefitsBlock/BenefitsBlock.example.json +1 -0
  789. package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +78 -28
  790. package/mobile/src/components/BenefitsBlock/BenefitsBlockContent.ts +12 -4
  791. package/mobile/src/components/BlockContent.ts +3 -5
  792. package/mobile/src/components/Calculator/Calculator.tsx +1 -1
  793. package/mobile/src/components/Calculator/useCalculatorParams.ts +2 -10
  794. package/mobile/src/components/Calculator/useCreditCalculatorParams.ts +1 -3
  795. package/mobile/src/components/Catalog/CatalogCard.tsx +13 -6
  796. package/mobile/src/components/ComparisonTable/ComparisonTableContent.ts +8 -1
  797. package/mobile/src/components/ComparisonTable/ComparisonTableRows.tsx +3 -3
  798. package/mobile/src/components/ContentPage/ContentPage.page.json +2 -36
  799. package/mobile/src/components/ContentPage/normalizePage.ts +1 -1
  800. package/mobile/src/components/Gallery/Gallery.tsx +8 -13
  801. package/mobile/src/components/Gallery/GalleryCardInner.tsx +8 -4
  802. package/mobile/src/components/Gallery/GalleryContainer.tsx +6 -5
  803. package/mobile/src/components/Gallery/GalleryContent.ts +4 -4
  804. package/mobile/src/components/Gallery/GalleryProps.ts +1 -1
  805. package/mobile/src/components/Gallery/constants.ts +0 -6
  806. package/mobile/src/components/GracePeriod/GracePeriod.example.json +5 -0
  807. package/mobile/src/components/GracePeriod/GracePeriodContent.ts +2 -2
  808. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +3 -3
  809. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +2 -2
  810. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +6 -5
  811. package/mobile/src/components/MobileAppTile/MobileAppTile.example.json +1 -2
  812. package/mobile/src/components/MobileAppTile/MobileAppTileContent.ts +1 -0
  813. package/mobile/src/components/Navigation/Navigation.tsx +1 -1
  814. package/mobile/src/components/OtherProducts/OtherProductsContent.ts +1 -4
  815. package/mobile/src/components/PictureText/PictureText.tsx +2 -6
  816. package/mobile/src/components/ProductBlock/ProductBlock.tsx +2 -9
  817. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +14 -3
  818. package/mobile/src/components/ProductGallery/ProductGallery.example.json +34 -2
  819. package/mobile/src/components/ProductGallery/ProductGalleryBlock.tsx +2 -7
  820. package/mobile/src/components/ProductTile/ProductTile.tsx +39 -50
  821. package/mobile/src/components/PromoTile/PromoTile.tsx +12 -19
  822. package/mobile/src/components/PromoTile/PromoTileContent.ts +2 -2
  823. package/mobile/src/components/Recommendation/RecommendationContent.ts +4 -4
  824. package/mobile/src/components/SafeDepositRental/SafeDepositRental.tsx +4 -0
  825. package/mobile/src/components/SafeDepositRental/SafeDepositRentalForm.tsx +1 -1
  826. package/mobile/src/components/StepsBlock/StepsBlock.tsx +1 -1
  827. package/mobile/src/components/Tabs/Tabs.example.json +3 -0
  828. package/mobile/src/components/Tabs/Tabs.tsx +15 -7
  829. package/mobile/src/components/Tabs/TabsContent.ts +15 -11
  830. package/mobile/src/components/Tabs/renderGroupTab.tsx +3 -3
  831. package/mobile/src/components/Tabs/renderTab.tsx +18 -7
  832. package/mobile/src/components/TariffsTable/EmbeddableCellData.tsx +67 -0
  833. package/mobile/src/components/TariffsTable/TariffsTable.example.json +30 -29
  834. package/mobile/src/components/TariffsTable/TariffsTable.tsx +12 -7
  835. package/mobile/src/components/TariffsTable/TariffsTableCell.tsx +50 -55
  836. package/mobile/src/components/TariffsTable/TariffsTableContent.ts +101 -37
  837. package/mobile/src/components/TariffsTable/TariffsTableHorizontal.tsx +6 -7
  838. package/mobile/src/components/TariffsTable/TariffsTableRow.tsx +19 -11
  839. package/mobile/src/components/TariffsTable/TariffsTableRowContainer.tsx +36 -0
  840. package/mobile/src/components/TariffsTable/TariffsTableTileCell.tsx +35 -53
  841. package/mobile/src/components/TariffsTable/TariffsTableVertical.tsx +7 -3
  842. package/mobile/src/components/TariffsTable/dataFixture.ts +158 -0
  843. package/mobile/src/components/Tile/Tile.example.json +1 -0
  844. package/mobile/src/components/Tile/Tile.tsx +17 -13
  845. package/mobile/src/components/Tile/TileContent.ts +4 -2
  846. package/mobile/src/components/__snapshots__/Blocks.spec.tsx.snap +37 -49
  847. package/mobile/src/content-page-repository/transformContentPage.ts +10 -3
  848. package/mobile/src/content-page-repository/transformImg.ts +157 -0
  849. package/mobile/src/content-page-repository/transformPicture.ts +24 -58
  850. package/mobile/src/content-page-repository/transformSrc.ts +21 -0
  851. package/mobile/src/hooks/useExchangeRates.ts +9 -20
  852. package/mobile/src/hooks/useTariffsInnerTableData.ts +20 -0
  853. package/mobile/src/icons/CardTickIcon.svg +7 -1
  854. package/mobile/src/icons/DocDownload.svg +8 -0
  855. package/mobile/src/icons/IconName.ts +4 -4
  856. package/mobile/src/model/BlockVersion.ts +5 -0
  857. package/mobile/src/model/HeadlineType.ts +3 -3
  858. package/mobile/src/model/ImageSize.ts +6 -0
  859. package/mobile/src/model/LinkProps.ts +7 -4
  860. package/mobile/src/model/Picture.ts +29 -6
  861. package/mobile/src/services/sitemap/useSitemap.ts +5 -11
  862. package/mobile/src/ui-kit/BenefitItem/BenefitItem.tsx +2 -2
  863. package/mobile/src/ui-kit/BlocksList/renderBlocksList.tsx +1 -1
  864. package/mobile/src/ui-kit/Button/Button.tsx +2 -4
  865. package/mobile/src/ui-kit/Button/ButtonInner.tsx +1 -1
  866. package/mobile/src/ui-kit/Description/Description.tsx +3 -3
  867. package/mobile/src/ui-kit/Foldable/Foldable.tsx +1 -2
  868. package/mobile/src/ui-kit/HeaderItem/HeaderItem.tsx +1 -1
  869. package/mobile/src/ui-kit/Heading/HeadingProps.ts +5 -2
  870. package/mobile/src/ui-kit/Img/ImgAsPicture.tsx +8 -2
  871. package/mobile/src/ui-kit/InnerTable/InnerTable.tsx +32 -0
  872. package/mobile/src/ui-kit/InnerTable/InnerTableBody.tsx +53 -0
  873. package/mobile/src/ui-kit/InnerTable/InnerTableBodyItem.tsx +86 -0
  874. package/mobile/src/ui-kit/InnerTable/InnerTableButton.tsx +36 -0
  875. package/mobile/src/ui-kit/InnerTable/InnerTableHeader.tsx +42 -0
  876. package/mobile/src/ui-kit/InnerTable/InnerTableProps.ts +31 -0
  877. package/mobile/src/ui-kit/List/List.tsx +18 -3
  878. package/mobile/src/ui-kit/List/ListProps.ts +10 -1
  879. package/mobile/src/ui-kit/Logo/Logo.tsx +1 -1
  880. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
  881. package/mobile/src/ui-kit/TopItem/TopItem.tsx +3 -3
  882. package/mobile/src/utils/assertUnreachable.ts +3 -0
  883. package/mobile/src/utils/fetchJSON.ts +24 -0
  884. package/mobile/src/utils/isPictureSizeEmpty.ts +5 -0
  885. package/mobile/src/utils/roundTo.ts +2 -2
  886. package/package.json +6 -2
  887. package/src/EventBus/EventMap.ts +2 -1
  888. package/src/components/Accordion/AccordionItem.mobile.tsx +4 -2
  889. package/src/components/Accordion/AccordionItem.tsx +7 -1
  890. package/src/components/BaseTile/BaseTile.tsx +2 -2
  891. package/src/components/BenefitsBlock/BenefitsBlock.example.json +1 -0
  892. package/src/components/BenefitsBlock/BenefitsBlock.fixture.tsx +94 -1
  893. package/src/components/BenefitsBlock/BenefitsBlock.tsx +78 -28
  894. package/src/components/BenefitsBlock/BenefitsBlockContent.ts +12 -4
  895. package/src/components/BlockContent.ts +3 -5
  896. package/src/components/Blocks.ts +0 -4
  897. package/src/components/Calculator/Calculator.tsx +1 -1
  898. package/src/components/Calculator/useCalculatorParams.ts +2 -10
  899. package/src/components/Calculator/useCreditCalculatorParams.ts +1 -3
  900. package/src/components/Catalog/Catalog.fixture.tsx +5 -2
  901. package/src/components/Catalog/CatalogCard.tsx +13 -6
  902. package/src/components/ComparisonTable/ComparisonTableContent.ts +8 -1
  903. package/src/components/ComparisonTable/ComparisonTableRows.tsx +3 -3
  904. package/src/components/ContentPage/ContentPage.page.json +2 -36
  905. package/src/components/ContentPage/normalizePage.mobile.ts +1 -1
  906. package/src/components/ContentPage/normalizePage.ts +1 -1
  907. package/src/components/Gallery/Gallery.fixture.mobile.tsx +6 -6
  908. package/src/components/Gallery/Gallery.fixture.tsx +3 -3
  909. package/src/components/Gallery/Gallery.mobile.tsx +8 -13
  910. package/src/components/Gallery/GalleryCardInner.tsx +8 -4
  911. package/src/components/Gallery/GalleryContainer.tsx +6 -5
  912. package/src/components/Gallery/GalleryContent.ts +4 -4
  913. package/src/components/Gallery/GalleryProps.ts +1 -1
  914. package/src/components/Gallery/constants.ts +0 -6
  915. package/src/components/GracePeriod/GracePeriod.example.json +5 -0
  916. package/src/components/GracePeriod/GracePeriodContent.ts +2 -2
  917. package/src/components/Header/Header.tsx +3 -2
  918. package/src/components/Header/HeaderSecondaryMenu.tsx +3 -3
  919. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.tsx +2 -2
  920. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +2 -2
  921. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +6 -5
  922. package/src/components/MobileAppTile/MobileAppTile.example.json +1 -2
  923. package/src/components/MobileAppTile/MobileAppTile.tsx +8 -12
  924. package/src/components/MobileAppTile/MobileAppTileContent.ts +1 -0
  925. package/src/components/Navigation/Navigation.tsx +1 -1
  926. package/src/components/OtherProducts/OtherProductsContent.ts +1 -4
  927. package/src/components/PictureText/PictureText.fixture.tsx +1 -1
  928. package/src/components/PictureText/PictureText.tsx +2 -6
  929. package/src/components/ProductBlock/ProductBlock.mobile.tsx +2 -9
  930. package/src/components/ProductBlock/ProductBlock.tsx +3 -7
  931. package/src/components/ProductBlock/ProductBlockContent.ts +14 -3
  932. package/src/components/ProductGallery/ProductGallery.example.json +34 -2
  933. package/src/components/ProductGallery/ProductGallery.tsx +6 -15
  934. package/src/components/ProductGallery/ProductGalleryBlock.tsx +2 -7
  935. package/src/components/ProductTile/ProductTile.fixture.tsx +35 -1
  936. package/src/components/ProductTile/ProductTile.tsx +39 -50
  937. package/src/components/PromoTile/PromoTile.tsx +12 -19
  938. package/src/components/PromoTile/PromoTileContent.ts +2 -2
  939. package/src/components/Recommendation/RecommendationContent.ts +4 -4
  940. package/src/components/SafeDepositRental/SafeDepositRental.tsx +4 -0
  941. package/src/components/SafeDepositRental/SafeDepositRentalForm.tsx +1 -1
  942. package/src/components/StepsBlock/StepsBlock.mobile.tsx +1 -1
  943. package/src/components/Tabs/Tabs.example.json +3 -0
  944. package/src/components/Tabs/Tabs.fixture.tsx +3 -3
  945. package/src/components/Tabs/Tabs.tsx +15 -7
  946. package/src/components/Tabs/TabsContent.ts +15 -11
  947. package/src/components/Tabs/renderGroupTab.tsx +3 -3
  948. package/src/components/Tabs/renderTab.tsx +18 -7
  949. package/src/components/TariffsTable/EmbeddableCellData.mobile.tsx +67 -0
  950. package/src/components/TariffsTable/EmbeddableCellData.tsx +82 -0
  951. package/src/components/TariffsTable/TariffsTable.example.json +30 -29
  952. package/src/components/TariffsTable/TariffsTable.fixture.mobile.tsx +3 -111
  953. package/src/components/TariffsTable/TariffsTable.fixture.tsx +24 -151
  954. package/src/components/TariffsTable/TariffsTable.mobile.tsx +12 -7
  955. package/src/components/TariffsTable/TariffsTable.tsx +25 -29
  956. package/src/components/TariffsTable/TariffsTableCell.tsx +50 -55
  957. package/src/components/TariffsTable/TariffsTableContent.ts +101 -37
  958. package/src/components/TariffsTable/TariffsTableHorizontal.tsx +6 -7
  959. package/src/components/TariffsTable/TariffsTableRow.tsx +19 -11
  960. package/src/components/TariffsTable/TariffsTableRowContainer.tsx +36 -0
  961. package/src/components/TariffsTable/TariffsTableTileCell.tsx +35 -53
  962. package/src/components/TariffsTable/TariffsTableVertical.tsx +7 -3
  963. package/src/components/TariffsTable/dataFixture.ts +158 -0
  964. package/src/components/TextBlock/TextBlock.fixture.mobile.tsx +1 -1
  965. package/src/components/TextBlock/TextBlock.fixture.tsx +1 -1
  966. package/src/components/Tile/Tile.example.json +1 -0
  967. package/src/components/Tile/Tile.fixture.tsx +7 -6
  968. package/src/components/Tile/Tile.tsx +17 -13
  969. package/src/components/Tile/TileContent.ts +4 -2
  970. package/src/components/__snapshots__/Blocks.spec.tsx.snap +37 -49
  971. package/src/content-page-repository/transformContentPage.ts +10 -3
  972. package/src/content-page-repository/transformImg.ts +157 -0
  973. package/src/content-page-repository/transformPicture.ts +24 -58
  974. package/src/content-page-repository/transformSrc.ts +21 -0
  975. package/src/cosmos.decorator.tsx +1 -1
  976. package/src/hooks/useExchangeRates.ts +9 -20
  977. package/src/hooks/useTariffsInnerTableData.ts +20 -0
  978. package/src/icons/CardTickIcon.svg +7 -1
  979. package/src/icons/DocDownload.svg +8 -0
  980. package/src/icons/IconName.ts +4 -1
  981. package/src/model/BlockVersion.ts +5 -0
  982. package/src/model/HeadlineType.ts +3 -3
  983. package/src/model/ImageSize.ts +6 -0
  984. package/src/model/LinkProps.ts +7 -4
  985. package/src/model/Picture.ts +29 -6
  986. package/src/services/sitemap/useSitemap.ts +5 -11
  987. package/src/ui-kit/BenefitItem/BenefitItem.tsx +2 -2
  988. package/src/ui-kit/BlocksList/renderBlocksList.tsx +1 -1
  989. package/src/ui-kit/Button/Button.mobile.tsx +2 -4
  990. package/src/ui-kit/Button/Button.tsx +5 -7
  991. package/src/ui-kit/Button/ButtonInner.tsx +1 -1
  992. package/src/ui-kit/Description/Description.tsx +3 -3
  993. package/src/ui-kit/Foldable/Foldable.tsx +1 -2
  994. package/src/ui-kit/HeaderItem/HeaderItem.mobile.tsx +1 -1
  995. package/src/ui-kit/HeaderItem/HeaderItem.tsx +1 -1
  996. package/src/ui-kit/Heading/HeadingProps.ts +5 -2
  997. package/src/ui-kit/Img/ImgAsPicture.tsx +8 -2
  998. package/src/ui-kit/InnerTable/InnerTable.tsx +32 -0
  999. package/src/ui-kit/InnerTable/InnerTableBody.tsx +53 -0
  1000. package/src/ui-kit/InnerTable/InnerTableBodyItem.tsx +86 -0
  1001. package/src/ui-kit/InnerTable/InnerTableButton.tsx +36 -0
  1002. package/src/ui-kit/InnerTable/InnerTableHeader.tsx +42 -0
  1003. package/src/ui-kit/InnerTable/InnerTableProps.ts +31 -0
  1004. package/src/ui-kit/List/List.tsx +18 -3
  1005. package/src/ui-kit/List/ListProps.ts +10 -1
  1006. package/src/ui-kit/Logo/Logo.mobile.tsx +1 -1
  1007. package/src/ui-kit/Logo/Logo.tsx +8 -3
  1008. package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
  1009. package/src/ui-kit/TopItem/TopItem.tsx +3 -3
  1010. package/src/utils/assertUnreachable.ts +3 -0
  1011. package/src/utils/fetchJSON.ts +24 -0
  1012. package/src/utils/isPictureSizeEmpty.ts +5 -0
  1013. package/src/utils/roundTo.ts +2 -2
  1014. package/dist/components/GroupBlock/BlocksTypeProps.d.ts +0 -36
  1015. package/dist/components/GroupBlock/BlocksTypeProps.js.map +0 -1
  1016. package/dist/components/GroupBlock/EmbeddableGroupBlocks.d.ts +0 -4
  1017. package/dist/components/GroupBlock/EmbeddableGroupBlocks.js +0 -9
  1018. package/dist/components/GroupBlock/EmbeddableGroupBlocks.js.map +0 -1
  1019. package/dist/components/GroupBlock/GroupBlock.d.ts +0 -9
  1020. package/dist/components/GroupBlock/GroupBlock.js +0 -21
  1021. package/dist/components/GroupBlock/GroupBlock.js.map +0 -1
  1022. package/dist/components/GroupBlock/GroupBlockContent.d.ts +0 -21
  1023. package/dist/components/GroupBlock/GroupBlockContent.js.map +0 -1
  1024. package/dist/components/GroupBlock/GroupBlockTabs.d.ts +0 -9
  1025. package/dist/components/GroupBlock/GroupBlockTabs.js +0 -20
  1026. package/dist/components/GroupBlock/GroupBlockTabs.js.map +0 -1
  1027. package/dist/components/GroupBlock/GroupBlocksItem.d.ts +0 -9
  1028. package/dist/components/GroupBlock/GroupBlocksItem.js +0 -20
  1029. package/dist/components/GroupBlock/GroupBlocksItem.js.map +0 -1
  1030. package/dist/components/GroupBlock/filterBlocksByTag.d.ts +0 -2
  1031. package/dist/components/GroupBlock/filterBlocksByTag.js +0 -7
  1032. package/dist/components/GroupBlock/filterBlocksByTag.js.map +0 -1
  1033. package/dist/components/GroupBlock/renderBlocksTypes.d.ts +0 -10
  1034. package/dist/components/GroupBlock/renderBlocksTypes.js +0 -19
  1035. package/dist/components/GroupBlock/renderBlocksTypes.js.map +0 -1
  1036. package/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +0 -7
  1037. package/dist/components/NavigatorTabs/NavigatorTabItem.js +0 -16
  1038. package/dist/components/NavigatorTabs/NavigatorTabItem.js.map +0 -1
  1039. package/dist/components/NavigatorTabs/NavigatorTabs.d.ts +0 -5
  1040. package/dist/components/NavigatorTabs/NavigatorTabs.js +0 -19
  1041. package/dist/components/NavigatorTabs/NavigatorTabs.js.map +0 -1
  1042. package/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +0 -11
  1043. package/dist/components/NavigatorTabs/NavigatorTabsContent.js +0 -2
  1044. package/dist/components/NavigatorTabs/NavigatorTabsContent.js.map +0 -1
  1045. package/dist/hooks/useSafeDepositRental.d.ts +0 -1
  1046. package/dist/hooks/useSafeDepositRental.js +0 -24
  1047. package/dist/hooks/useSafeDepositRental.js.map +0 -1
  1048. package/lib/components/GroupBlock/BlocksTypeProps.d.ts +0 -36
  1049. package/lib/components/GroupBlock/BlocksTypeProps.js +0 -2
  1050. package/lib/components/GroupBlock/BlocksTypeProps.js.map +0 -1
  1051. package/lib/components/GroupBlock/EmbeddableGroupBlocks.d.ts +0 -4
  1052. package/lib/components/GroupBlock/EmbeddableGroupBlocks.js +0 -7
  1053. package/lib/components/GroupBlock/EmbeddableGroupBlocks.js.map +0 -1
  1054. package/lib/components/GroupBlock/GroupBlock.d.ts +0 -9
  1055. package/lib/components/GroupBlock/GroupBlock.fixture.d.ts +0 -6
  1056. package/lib/components/GroupBlock/GroupBlock.js +0 -19
  1057. package/lib/components/GroupBlock/GroupBlock.js.map +0 -1
  1058. package/lib/components/GroupBlock/GroupBlockContent.d.ts +0 -21
  1059. package/lib/components/GroupBlock/GroupBlockContent.js +0 -2
  1060. package/lib/components/GroupBlock/GroupBlockContent.js.map +0 -1
  1061. package/lib/components/GroupBlock/GroupBlockTabs.d.ts +0 -9
  1062. package/lib/components/GroupBlock/GroupBlockTabs.js +0 -18
  1063. package/lib/components/GroupBlock/GroupBlockTabs.js.map +0 -1
  1064. package/lib/components/GroupBlock/GroupBlocksItem.d.ts +0 -9
  1065. package/lib/components/GroupBlock/GroupBlocksItem.js +0 -17
  1066. package/lib/components/GroupBlock/GroupBlocksItem.js.map +0 -1
  1067. package/lib/components/GroupBlock/filterBlocksByTag.d.ts +0 -2
  1068. package/lib/components/GroupBlock/filterBlocksByTag.js +0 -4
  1069. package/lib/components/GroupBlock/filterBlocksByTag.js.map +0 -1
  1070. package/lib/components/GroupBlock/renderBlocksTypes.d.ts +0 -10
  1071. package/lib/components/GroupBlock/renderBlocksTypes.js +0 -16
  1072. package/lib/components/GroupBlock/renderBlocksTypes.js.map +0 -1
  1073. package/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +0 -7
  1074. package/lib/components/NavigatorTabs/NavigatorTabItem.js +0 -14
  1075. package/lib/components/NavigatorTabs/NavigatorTabItem.js.map +0 -1
  1076. package/lib/components/NavigatorTabs/NavigatorTabs.d.ts +0 -5
  1077. package/lib/components/NavigatorTabs/NavigatorTabs.fixture.d.ts +0 -5
  1078. package/lib/components/NavigatorTabs/NavigatorTabs.js +0 -17
  1079. package/lib/components/NavigatorTabs/NavigatorTabs.js.map +0 -1
  1080. package/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +0 -11
  1081. package/lib/components/NavigatorTabs/NavigatorTabsContent.js +0 -2
  1082. package/lib/components/NavigatorTabs/NavigatorTabsContent.js.map +0 -1
  1083. package/lib/hooks/useSafeDepositRental.d.ts +0 -1
  1084. package/lib/hooks/useSafeDepositRental.js +0 -21
  1085. package/lib/hooks/useSafeDepositRental.js.map +0 -1
  1086. package/mobile/dist/components/GroupBlock/BlocksTypeProps.d.ts +0 -36
  1087. package/mobile/dist/components/GroupBlock/BlocksTypeProps.js.map +0 -1
  1088. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.d.ts +0 -4
  1089. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.js +0 -9
  1090. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.js.map +0 -1
  1091. package/mobile/dist/components/GroupBlock/GroupBlock.d.ts +0 -9
  1092. package/mobile/dist/components/GroupBlock/GroupBlock.js +0 -21
  1093. package/mobile/dist/components/GroupBlock/GroupBlock.js.map +0 -1
  1094. package/mobile/dist/components/GroupBlock/GroupBlockContent.d.ts +0 -21
  1095. package/mobile/dist/components/GroupBlock/GroupBlockContent.js.map +0 -1
  1096. package/mobile/dist/components/GroupBlock/GroupBlockTabs.d.ts +0 -9
  1097. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js +0 -20
  1098. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js.map +0 -1
  1099. package/mobile/dist/components/GroupBlock/GroupBlocksItem.d.ts +0 -9
  1100. package/mobile/dist/components/GroupBlock/GroupBlocksItem.js +0 -20
  1101. package/mobile/dist/components/GroupBlock/GroupBlocksItem.js.map +0 -1
  1102. package/mobile/dist/components/GroupBlock/filterBlocksByTag.d.ts +0 -2
  1103. package/mobile/dist/components/GroupBlock/filterBlocksByTag.js +0 -7
  1104. package/mobile/dist/components/GroupBlock/filterBlocksByTag.js.map +0 -1
  1105. package/mobile/dist/components/GroupBlock/renderBlocksTypes.d.ts +0 -10
  1106. package/mobile/dist/components/GroupBlock/renderBlocksTypes.js +0 -19
  1107. package/mobile/dist/components/GroupBlock/renderBlocksTypes.js.map +0 -1
  1108. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +0 -7
  1109. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js +0 -16
  1110. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js.map +0 -1
  1111. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.d.ts +0 -5
  1112. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js +0 -19
  1113. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js.map +0 -1
  1114. package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +0 -11
  1115. package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.js +0 -2
  1116. package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.js.map +0 -1
  1117. package/mobile/dist/hooks/useSafeDepositRental.d.ts +0 -1
  1118. package/mobile/dist/hooks/useSafeDepositRental.js +0 -24
  1119. package/mobile/dist/hooks/useSafeDepositRental.js.map +0 -1
  1120. package/mobile/lib/components/GroupBlock/BlocksTypeProps.d.ts +0 -36
  1121. package/mobile/lib/components/GroupBlock/BlocksTypeProps.js +0 -2
  1122. package/mobile/lib/components/GroupBlock/BlocksTypeProps.js.map +0 -1
  1123. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.d.ts +0 -4
  1124. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.js +0 -7
  1125. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.js.map +0 -1
  1126. package/mobile/lib/components/GroupBlock/GroupBlock.d.ts +0 -9
  1127. package/mobile/lib/components/GroupBlock/GroupBlock.js +0 -19
  1128. package/mobile/lib/components/GroupBlock/GroupBlock.js.map +0 -1
  1129. package/mobile/lib/components/GroupBlock/GroupBlockContent.d.ts +0 -21
  1130. package/mobile/lib/components/GroupBlock/GroupBlockContent.js +0 -2
  1131. package/mobile/lib/components/GroupBlock/GroupBlockContent.js.map +0 -1
  1132. package/mobile/lib/components/GroupBlock/GroupBlockTabs.d.ts +0 -9
  1133. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js +0 -18
  1134. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js.map +0 -1
  1135. package/mobile/lib/components/GroupBlock/GroupBlocksItem.d.ts +0 -9
  1136. package/mobile/lib/components/GroupBlock/GroupBlocksItem.js +0 -17
  1137. package/mobile/lib/components/GroupBlock/GroupBlocksItem.js.map +0 -1
  1138. package/mobile/lib/components/GroupBlock/filterBlocksByTag.d.ts +0 -2
  1139. package/mobile/lib/components/GroupBlock/filterBlocksByTag.js +0 -4
  1140. package/mobile/lib/components/GroupBlock/filterBlocksByTag.js.map +0 -1
  1141. package/mobile/lib/components/GroupBlock/renderBlocksTypes.d.ts +0 -10
  1142. package/mobile/lib/components/GroupBlock/renderBlocksTypes.js +0 -16
  1143. package/mobile/lib/components/GroupBlock/renderBlocksTypes.js.map +0 -1
  1144. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +0 -7
  1145. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js +0 -14
  1146. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js.map +0 -1
  1147. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.d.ts +0 -5
  1148. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js +0 -17
  1149. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js.map +0 -1
  1150. package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +0 -11
  1151. package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.js +0 -2
  1152. package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.js.map +0 -1
  1153. package/mobile/lib/hooks/useSafeDepositRental.d.ts +0 -1
  1154. package/mobile/lib/hooks/useSafeDepositRental.js +0 -21
  1155. package/mobile/lib/hooks/useSafeDepositRental.js.map +0 -1
  1156. package/mobile/src/components/GroupBlock/BlocksTypeProps.ts +0 -39
  1157. package/mobile/src/components/GroupBlock/EmbeddableGroupBlocks.tsx +0 -7
  1158. package/mobile/src/components/GroupBlock/GroupBlock.example.json +0 -97
  1159. package/mobile/src/components/GroupBlock/GroupBlock.tsx +0 -50
  1160. package/mobile/src/components/GroupBlock/GroupBlockContent.ts +0 -23
  1161. package/mobile/src/components/GroupBlock/GroupBlockTabs.tsx +0 -55
  1162. package/mobile/src/components/GroupBlock/GroupBlocksItem.tsx +0 -31
  1163. package/mobile/src/components/GroupBlock/filterBlocksByTag.ts +0 -5
  1164. package/mobile/src/components/GroupBlock/renderBlocksTypes.tsx +0 -34
  1165. package/mobile/src/components/NavigatorTabs/NavigatorTabItem.tsx +0 -31
  1166. package/mobile/src/components/NavigatorTabs/NavigatorTabs.example.json +0 -7
  1167. package/mobile/src/components/NavigatorTabs/NavigatorTabs.tsx +0 -41
  1168. package/mobile/src/components/NavigatorTabs/NavigatorTabsContent.ts +0 -12
  1169. package/mobile/src/hooks/useSafeDepositRental.ts +0 -25
  1170. package/src/components/GroupBlock/BlocksTypeProps.ts +0 -39
  1171. package/src/components/GroupBlock/EmbeddableGroupBlocks.tsx +0 -7
  1172. package/src/components/GroupBlock/GroupBlock.example.json +0 -97
  1173. package/src/components/GroupBlock/GroupBlock.fixture.tsx +0 -67
  1174. package/src/components/GroupBlock/GroupBlock.tsx +0 -50
  1175. package/src/components/GroupBlock/GroupBlockContent.ts +0 -23
  1176. package/src/components/GroupBlock/GroupBlockTabs.tsx +0 -55
  1177. package/src/components/GroupBlock/GroupBlocksItem.tsx +0 -31
  1178. package/src/components/GroupBlock/filterBlocksByTag.ts +0 -5
  1179. package/src/components/GroupBlock/renderBlocksTypes.tsx +0 -34
  1180. package/src/components/NavigatorTabs/NavigatorTabItem.tsx +0 -31
  1181. package/src/components/NavigatorTabs/NavigatorTabs.example.json +0 -7
  1182. package/src/components/NavigatorTabs/NavigatorTabs.fixture.tsx +0 -16
  1183. package/src/components/NavigatorTabs/NavigatorTabs.tsx +0 -41
  1184. package/src/components/NavigatorTabs/NavigatorTabsContent.ts +0 -12
  1185. package/src/hooks/useSafeDepositRental.ts +0 -25
@@ -321,6 +321,7 @@
321
321
  IconMap["ComfortableCompIcon"] = "ComfortableCompIcon";
322
322
  IconMap["CreditCardsIcon"] = "CreditCardsIcon";
323
323
  IconMap["DiscountShapeIcon"] = "DiscountShapeIcon";
324
+ IconMap["DocDownload"] = "DocDownload";
324
325
  IconMap["DocIcon"] = "DocIcon";
325
326
  IconMap["DocIconMonoColor"] = "DocIconMonoColor";
326
327
  IconMap["DocsIcon"] = "DocsIcon";
@@ -406,6 +407,7 @@
406
407
  IconTitleMap["ComfortableCompIcon"] = "\u041A\u0440\u0435\u0441\u043B\u043E";
407
408
  IconTitleMap["CreditCardsIcon"] = "\u041A\u0440\u0435\u0434\u0438\u0442\u043D\u044B\u0435 \u043A\u0430\u0440\u0442\u044B";
408
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";
409
411
  IconTitleMap["DocIcon"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442";
410
412
  IconTitleMap["DocIconMonoColor"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442 (\u043E\u0434\u043D\u043E\u0446\u0432\u0435\u0442\u043D\u044B\u0439)";
411
413
  IconTitleMap["DocsIcon"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B";
@@ -496,14 +498,18 @@
496
498
  return (jsxs("picture", { className: `${pictureStyles} ${className}`, children: [image?.sources?.length
497
499
  ? image.sources
498
500
  .sort(sourcesComparator)
499
- .map(({ src, format, media, size }, index) => (jsx("source", { srcSet: src, type: formatToMimeType(format), media: media ? `(max-width: ${media}px)` : '', ...size }, `${index}_${src}`)))
501
+ .map(({ src, format, media }, index) => (jsx("source", { srcSet: src, type: formatToMimeType(format), media: media ? `(max-width: ${media}px)` : '', ...image.size }, `${index}_${src}`)))
500
502
  : null, renderImg(image, imageClassName, isMobile)] }));
501
503
  });
502
504
  const renderImg = (image, imageClassName = '', isMobile = false) => {
505
+ const style = {
506
+ width: image.size?.width ? `${image.size?.width}px` : '100%',
507
+ height: image.size?.height ? `${image.size?.height}px` : '100%',
508
+ };
503
509
  const title = image.title || '';
504
510
  const alt = image.alt || image.title;
505
511
  const imgStyle = isMobile ? 'm-auto' : 'm-0';
506
- return (jsx("img", { src: image.src, className: `${imgStyle} ${imageClassName}`, alt: alt, title: title, ...image.size }));
512
+ return (jsx("img", { src: image.src, className: `${imgStyle} ${imageClassName}`, alt: alt, title: title, style: style, ...image.size }));
507
513
  };
508
514
  function formatToMimeType(format) {
509
515
  return format ? `image/${String(format)}` : undefined;
@@ -638,7 +644,7 @@
638
644
  const BenefitItem = JSX((props) => {
639
645
  const { className = '', icon, label, description, version = 'primary', benefitsVersion = 'normal', } = props;
640
646
  const isIconWhite = benefitsVersion === 'white' || version === 'secondary';
641
- 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] })] }));
647
+ 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] })] }));
642
648
  });
643
649
  function renderBenefitIconBgStyle(version, benefitsVersion) {
644
650
  let bgColorStyle = 'bg-primary-main text-black';
@@ -648,19 +654,20 @@
648
654
  else if (benefitsVersion === 'normal') {
649
655
  bgColorStyle = 'bg-secondary-light text-primary-main';
650
656
  }
651
- return `w-[50px] h-[50px] rounded-full p-[10px] box-border ${bgColorStyle}`;
657
+ return `w-[50px] h-[50px] min-w-[50px] rounded-full p-[10px] box-border ${bgColorStyle}`;
652
658
  }
653
659
 
654
660
  const addSpacesBetweenNumbers = (number) => new Intl.NumberFormat('ru-RU', { maximumSignificantDigits: 3 }).format(number);
655
661
 
656
- const pictureTextStyleMap = {
662
+ const VersionStyleMap = {
657
663
  primary: 'bg-white text-primary-text',
658
664
  secondary: 'bg-primary-main text-white',
659
665
  };
666
+
660
667
  const PictureText = JSX(({ className = '', context, title, description, image, benefits, version = 'primary', sum, monthLimit, directionRight = false, ...rest }) => {
661
- 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)] })] })] }));
668
+ 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)] })] })] }));
662
669
  });
663
- const renderBenefit$1 = (version) => (benefit, i) => (jsx(BenefitItem, { icon: benefit.icon, label: benefit.label, description: benefit.description, version: version }, String(i)));
670
+ const renderBenefit$2 = (version) => (benefit, i) => (jsx(BenefitItem, { icon: benefit.icon, label: benefit.label, description: benefit.description, version: version }, String(i)));
664
671
  function renderInsuranceSumMonth(sum, monthLimit) {
665
672
  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)
666
673
  ? renderValueBlock$1('Ежемесячный лимит:', monthLimit, Boolean(sum))
@@ -786,7 +793,7 @@
786
793
  return disabled ? (jsx(DisabledButton, { rounded: rounded, ...rest, children: buttonInner })) : (jsx(RegularButton, { rounded: rounded, ...rest, children: buttonInner }));
787
794
  });
788
795
  const RegularButton = JSX(({ className = '', ariaLabel, version = 'none', rounded, href, target, children, onClick, ...rest }) => {
789
- 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 }));
796
+ 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 }));
790
797
  });
791
798
  const DisabledButton = JSX(({ className, children, ariaLabel, version = 'none', rounded }) => {
792
799
  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 }));
@@ -839,23 +846,27 @@
839
846
  tile: 'text-primary-text',
840
847
  'tile-white': 'text-white',
841
848
  };
849
+ const TEXT_SIZE_MAP = {
850
+ M: 'text-xl-light',
851
+ L: 'text-h5-light',
852
+ };
842
853
  const List = JSX((props) => {
843
- const { className = '', itemClassName, isDotted, items, version = 'primary' } = props;
844
- return (jsx("section", { className: `${TEXT_STYLE_MAP[version]} ${className}`, role: "list", children: items?.length
854
+ const { className = '', itemClassName, isDotted, items, listItemSize = 'M', version = 'primary', } = props;
855
+ return (jsx("section", { className: `${TEXT_STYLE_MAP[version]} ${TEXT_SIZE_MAP[listItemSize]} ${className}`, role: "list", children: items?.length
845
856
  ? items.map((_, i) => (jsx(ListItem, { className: itemClassName, isDotted: isDotted, version: version, children: _ }, String(i))))
846
857
  : null }));
847
858
  });
848
859
 
849
860
  const BaseTile = JSX(({ className = '', title = '', children, buttons, image }) => {
850
- 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] })] }));
861
+ 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] })] }));
851
862
  });
852
863
 
853
- const renderBenefit = (version = 'primary', benefitsVersion = 'normal') => ({ icon, label, description }, i) => {
864
+ const renderBenefit$1 = (version = 'primary', benefitsVersion = 'normal') => ({ icon, label, description }, i) => {
854
865
  return (jsx(BenefitItem, { icon: icon, label: label, description: description, version: version, benefitsVersion: benefitsVersion }, String(i)));
855
866
  };
856
867
 
857
868
  const ProductBlockInner = JSX(({ className = '', context, title, headlineVersion = 'L', description, benefits, benefitsVersion = 'normal', buttons, image, items, version = 'primary', isDotted = true, textBlockClassName = '', }) => {
858
- 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 })] }));
869
+ 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 })] }));
859
870
  });
860
871
  const getButtons = (context, buttons) => {
861
872
  return buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex gap-4" })) : null;
@@ -868,10 +879,6 @@
868
879
  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] }));
869
880
  }
870
881
 
871
- const productBlockStyleMap$1 = {
872
- primary: 'bg-white text-primary-text',
873
- secondary: 'bg-primary-main text-white',
874
- };
875
882
  const breadcrumbsStyleMap = {
876
883
  primary: 'text-secondary-text',
877
884
  secondary: 'text-white/80',
@@ -880,7 +887,7 @@
880
887
  const { context, className = '', breadcrumbs, backwardButton, version = 'primary', ...otherProps } = props;
881
888
  const router = context.useRouter();
882
889
  const { handlerDecorator } = context;
883
- 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
890
+ 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
884
891
  ? renderBackwardButton(useLink({ router, handlerDecorator }, backwardButton), version, 'mb-10 -mt-2.5')
885
892
  : 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 })] }));
886
893
  });
@@ -948,41 +955,36 @@
948
955
  }
949
956
  }
950
957
 
951
- const tileStyleMap = {
952
- primary: 'bg-white text-primary-text',
953
- secondary: 'bg-primary-main text-white',
954
- };
955
958
  const Tile = JSX((props) => {
956
- const { context, title, headingType = 'h3', description, items, children, buttons, image, isDotted = true, className = '', version = 'primary', ...rest } = props;
957
- 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
958
- ${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)] }) }));
959
+ const { context, title, headingType = 'h3', description, items, children, buttons, image, isDotted = true, listItemSize = 'M', className = '', version = 'primary', ...rest } = props;
960
+ const headingClassName = version === 'primary' ? 'text-primary-text' : '';
961
+ 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 })] }) }));
959
962
  });
960
- function renderList$2(items, version, isDotted) {
963
+ function renderList$1(items, { version, isDotted, listItemSize }) {
961
964
  const listVersion = version === 'primary' ? 'tile' : 'tile-white';
962
- return items?.length ? (jsx(List, { items: items, isDotted: isDotted, itemClassName: "text-h6 mt-2", version: listVersion })) : null;
965
+ return items?.length ? (jsx(List, { items: items, isDotted: isDotted, className: "mt-3", listItemSize: listItemSize, itemClassName: "mb-1.5", version: listVersion })) : null;
963
966
  }
964
967
 
965
- const productTileStyleMap = {
966
- primary: 'bg-white text-primary-text',
967
- secondary: 'bg-primary-main text-white',
968
- };
969
- const ProductTile = JSX(({ context, className = '', title, headlineVersion = 'S', description, additionalDescription, benefits, buttons, image, version = 'primary', ...rest }) => {
970
- 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
971
- ? renderAdditionalDescription(additionalDescription, version)
972
- : 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] }));
968
+ const ProductTile = JSX(({ context, className = '', title, headlineVersion = 'S', description, additionalDescription, benefits = [], buttons, image, version = 'primary', ...rest }) => {
969
+ 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] }));
973
970
  });
971
+ // picture width = 242px. Text can overlay picture 20px deep. Outer paddings_x = 36px. 242-36-20 = 186px
972
+ const BENEFITS_WIDTH = 'max-w-[calc(100%-186px)]';
974
973
  function renderBenefits$1(benefits, version) {
975
- 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] }));
976
- }
977
- function renderBenefitLabel(benefit, i) {
978
- return (jsx("div", { className: `${i ? 'mt-2.5' : ''}`, children: benefit.label }, String(i)));
974
+ 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 }));
979
975
  }
980
- function renderBenefitDescription(benefit, i, version = 'primary') {
976
+ function renderBenefit(version = 'primary') {
981
977
  const labelStyleMap = {
982
978
  primary: 'text-secondary-text',
983
979
  secondary: 'text-white',
984
980
  };
985
- return (jsx("div", { className: `text-m-light ${i ? 'mt-4' : ''} ${labelStyleMap[version]}`, children: benefit.description }, String(i)));
981
+ return function renderVersionedBenefit(benefit, i) {
982
+ const { label = '', description = '' } = benefit;
983
+ return [
984
+ jsx("div", { className: "text-h6", children: label }, `label-${i}`),
985
+ jsx("div", { className: `text-m-light ${labelStyleMap[version]}`, children: description }, `desc-${i}`),
986
+ ];
987
+ };
986
988
  }
987
989
  function renderAdditionalDescription(additionalDescription, version = 'primary') {
988
990
  const descStyleMap = {
@@ -1000,10 +1002,6 @@
1000
1002
  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] }));
1001
1003
  }
1002
1004
 
1003
- const cardVersionMap = {
1004
- primary: 'bg-white text-secondary-text',
1005
- secondary: 'bg-primary-main text-white',
1006
- };
1007
1005
  const galleryLengthForScrollMap = {
1008
1006
  normal: 3,
1009
1007
  mini: 4,
@@ -1041,7 +1039,7 @@
1041
1039
  });
1042
1040
  function renderCard({ card, version }, i) {
1043
1041
  return (jsx("section", { className: `box-border border-solid border border-main-stroke p-6 mx-2 flex flex-col justify-between
1044
- items-stretch ${cardStyleMap$1[version]} ${cardVersionMap[card.version ?? 'primary']} w-full col-span-4`, role: "listitem", children: jsx(GalleryCardInner, { ...card }) }, String(i)));
1042
+ items-stretch ${cardStyleMap$1[version]} ${VersionStyleMap[card.version ?? 'primary']} w-full col-span-4`, role: "listitem", children: jsx(GalleryCardInner, { ...card }) }, String(i)));
1045
1043
  }
1046
1044
 
1047
1045
  const GalleryInner = JSX(({ context, cards = [], className = '', version = 'normal', ...rest }) => {
@@ -1087,8 +1085,8 @@
1087
1085
  LinkList,
1088
1086
  };
1089
1087
 
1090
- const renderBlocksList = ({ blocks, context, className = '' }) => blocks?.length ? blocks.map(renderBlock$2({ context, className })) : null;
1091
- const renderBlock$2 = ({ context, className }) => (block, i) => {
1088
+ const renderBlocksList = ({ blocks, context, className = '' }) => blocks?.length ? blocks.map(renderBlock$1({ context, className })) : null;
1089
+ const renderBlock$1 = ({ context, className }) => (block, i) => {
1092
1090
  if (!block) {
1093
1091
  return null;
1094
1092
  }
@@ -1130,7 +1128,7 @@
1130
1128
  });
1131
1129
  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
1132
1130
  font-sans text-h6 ${hasContent ? 'group cursor-pointer' : ''}
1133
- `, 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] }));
1131
+ `, 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] }));
1134
1132
  });
1135
1133
 
1136
1134
  const ALIGN_TITLE = {
@@ -1142,22 +1140,45 @@
1142
1140
  return (jsxs(BlockWrapper, { context: context, className: `p-[50px] mb-1 last:mb-0 font-sans bg-white text-primary-text ${className}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: `mb-2.5 ${ALIGN_TITLE[accordionAlignTitle]}`, title: title })) : null, description ? jsx("div", { className: "mb-2.5 text-l", children: description }) : null, accordionItems?.length ? (jsx("ul", { className: "list-none m-0 p-0", children: accordionItems.map((item, i) => (jsx(AccordionItem, { ...item, context: context }, `AccordionItem${i}`))) })) : null] }));
1143
1141
  });
1144
1142
 
1145
- const BenefitsBlock = JSX(({ className = '', title, benefitList, ...rest }) => {
1146
- return (jsxs(BlockWrapper, { className: `font-sans text-primary-text bg-white p-12 flex flex-col items-center ${className}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: "max-w-[47rem] text-center", title: title })) : null, benefitList?.length ? renderBenefits(benefitList) : null] }));
1143
+ const benefitsBlockStyleMap = {
1144
+ primary: 'bg-white',
1145
+ secondary: 'bg-primary-main',
1146
+ };
1147
+ const benefitsTextStyleMap = {
1148
+ primary: '',
1149
+ secondary: 'text-white',
1150
+ };
1151
+ const benefitsDescriptionStyleMap = {
1152
+ primary: 'text-secondary-text',
1153
+ secondary: 'text-white opacity-80',
1154
+ };
1155
+ const benefitsIconStyleMap = {
1156
+ primary: 'bg-main-divider text-primary-main',
1157
+ secondary: 'bg-white/30 text-black',
1158
+ };
1159
+ const BenefitsBlock = JSX(({ className = '', title, benefitList, benefitsBlockVersion = 'primary', ...rest }) => {
1160
+ return (jsxs(BlockWrapper, { className: `font-sans text-primary-text p-12 flex flex-col items-center ${className} ${benefitsBlockStyleMap[benefitsBlockVersion]}`, ...rest, children: [title ? (jsx(Heading, { headingType: "h3", as: "h2", className: `max-w-[47rem] text-center ${benefitsTextStyleMap[benefitsBlockVersion]}`, title: title })) : null, benefitList?.length ? renderBenefits(benefitList, benefitsBlockVersion) : null] }));
1147
1161
  });
1148
- const renderBenefits = (benefits) => {
1149
- return (jsx("div", { className: "flex flex-wrap w-full justify-center gap-x-20 mt-8", children: benefits.map(renderStep) }));
1162
+ const renderBenefits = (benefitList, benefitsBlockVersion) => {
1163
+ return (jsx("div", { className: "flex flex-wrap w-full justify-center gap-x-20 mt-8", children: benefitList.map(renderStep(benefitsBlockVersion)) }));
1150
1164
  };
1151
- const renderStep = (benefit, i) => {
1152
- const description = benefit?.description || undefined;
1153
- return (jsxs("div", { className: "flex items-center basis-1/2 max-w-[500px] mb-14", children: [benefit?.icon?.icon ? (jsx(Img, { className: "w-[50px] h-[50px] min-w-[50px] p-3 rounded-full bg-main-divider", image: benefit.icon, asSVG: true })) : null, benefit?.icon?.src ? jsx(Img, { image: benefit.icon }) : null, jsxs("div", { className: "ml-5", children: [benefit?.label ? jsx("h3", { className: "text-h6 m-0", children: benefit.label }) : null, renderDescription(description)] })] }, String(i)));
1165
+ const setIconVersion = (benefitIcon, benefitsBlockVersion) => {
1166
+ if (!benefitIcon.icon) {
1167
+ return benefitIcon;
1168
+ }
1169
+ benefitIcon.iconVersion = benefitsBlockVersion === 'secondary' ? 'white' : 'normal';
1170
+ return benefitIcon;
1171
+ };
1172
+ const renderStep = (benefitsBlockVersion) => (benefit, i) => {
1173
+ const description = (benefit?.description || undefined);
1174
+ return (jsxs("div", { className: "flex items-center basis-1/2 max-w-[500px] mb-14", children: [benefit?.icon?.icon ? (jsx(Img, { className: `w-[50px] h-[50px] min-w-[50px] p-3 rounded-full ${benefitsIconStyleMap[benefitsBlockVersion]}`, image: setIconVersion(benefit.icon, benefitsBlockVersion), asSVG: true })) : null, benefit?.icon?.src ? jsx(Img, { image: benefit.icon }) : null, jsxs("div", { className: "ml-5", children: [benefit?.label ? (jsx("h3", { className: `text-h6 m-0 ${benefitsTextStyleMap[benefitsBlockVersion]}`, children: benefit.label })) : null, renderDescription(description, benefitsBlockVersion)] })] }, String(i)));
1154
1175
  };
1155
- const renderDescription = (description) => {
1176
+ const renderDescription = (description, benefitsBlockVersion) => {
1156
1177
  const benefitType = description ? description?.benefitType : null;
1157
1178
  if (!benefitType) {
1158
1179
  return null;
1159
1180
  }
1160
- return description ? (jsx("div", { className: "text-l-light text-secondary-text mt-2", children: benefitType === 'list'
1181
+ return description ? (jsx("div", { className: `text-l-light mt-2 ${benefitsDescriptionStyleMap[benefitsBlockVersion]}`, children: benefitType === 'list'
1161
1182
  ? renderListBenefit(description)
1162
1183
  : renderTextBenefit(description) })) : null;
1163
1184
  };
@@ -1347,15 +1368,31 @@
1347
1368
  let impl = useAsyncData$1;
1348
1369
  const useAsyncData = (key, fetcher) => impl(key, fetcher);
1349
1370
 
1350
- function useCalculatorParams(dir) {
1351
- const { data } = useAsyncData(`/wcms-resources/${dir}.json`, fetchCalculatorSourceBookParams);
1352
- return data;
1371
+ async function fetchJSON(url, options) {
1372
+ try {
1373
+ return await fetchJSONUnsafe(url, options);
1374
+ }
1375
+ catch (err) {
1376
+ console.error(err);
1377
+ }
1378
+ return null;
1353
1379
  }
1354
- async function fetchCalculatorSourceBookParams(url) {
1355
- const response = await fetch(url);
1380
+ async function fetchJSONUnsafe(url, options) {
1381
+ const response = await fetch(url, {
1382
+ ...options,
1383
+ headers: {
1384
+ ...options?.headers,
1385
+ 'Content-Type': 'application/json',
1386
+ },
1387
+ });
1356
1388
  return await response.json();
1357
1389
  }
1358
1390
 
1391
+ function useCalculatorParams(dir) {
1392
+ const { data } = useAsyncData(`/wcms-resources/${dir}.json`, fetchJSONUnsafe);
1393
+ return data;
1394
+ }
1395
+
1359
1396
  const useBonusCalculatorParams = (userInputParams, sourceBookDir) => {
1360
1397
  const { travelExpenseValue, restExpenseValue } = userInputParams;
1361
1398
  const bonusCalculatorSourceBookParams = useCalculatorParams(sourceBookDir || BONUS_CALC_DEFAULT_DIR) ||
@@ -1458,13 +1495,12 @@
1458
1495
  const { rateBottomRange, rateTopRange, sumBorder } = creditCalculatorSourceBookParams;
1459
1496
  const finalRate = moneyValue <= sumBorder ? rateBottomRange : rateTopRange;
1460
1497
  const monthlyPayment = getMonthlyPayment(finalRate, userInputParams);
1461
- const extendedCalculatorParams = {
1498
+ return {
1462
1499
  ...creditCalculatorSourceBookParams,
1463
1500
  ...userInputParams,
1464
1501
  finalRate,
1465
1502
  monthlyPayment,
1466
1503
  };
1467
- return extendedCalculatorParams;
1468
1504
  };
1469
1505
 
1470
1506
  const ANNUITY = 'annuity';
@@ -1621,7 +1657,7 @@
1621
1657
  ${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)));
1622
1658
  }
1623
1659
  function renderTabs({ tabsShift, tabsNav, activeSlideIndex, setActiveSlideIndex }) {
1624
- 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({
1660
+ 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({
1625
1661
  tab,
1626
1662
  i,
1627
1663
  activeSlideIndex,
@@ -1629,6 +1665,11 @@
1629
1665
  })) }) }), jsx("div", { className: "w-full h-2 bg-primary-main" })] }));
1630
1666
  }
1631
1667
 
1668
+ const iconVersionMap = {
1669
+ default: 'normal',
1670
+ primary: 'white',
1671
+ secondary: 'black',
1672
+ };
1632
1673
  const cardStyleMap = {
1633
1674
  black: 'bg-black',
1634
1675
  white: 'bg-white',
@@ -1638,16 +1679,17 @@
1638
1679
  });
1639
1680
  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)));
1640
1681
  const renderButton = (button) => {
1641
- const { icon, iconRight, text } = button;
1642
- if (!text) {
1682
+ const { icon, iconRight, ...other } = button;
1683
+ if (!button?.text) {
1643
1684
  return null;
1644
1685
  }
1645
- const leftIcon = renderButtonIcon(icon);
1646
- const rightIcon = renderButtonIcon(iconRight);
1647
- return (jsx(Button, { className: "mt-5 w-full", appendLeft: leftIcon, appendRight: rightIcon, ...button }));
1686
+ const iconVersion = iconVersionMap[button?.version || 'default'];
1687
+ const leftIcon = renderButtonIcon({ ...icon, iconVersion });
1688
+ const rightIcon = renderButtonIcon({ ...iconRight, iconVersion });
1689
+ return (jsx(Button, { className: "mt-5 w-full", appendLeft: leftIcon, appendRight: rightIcon, ...other }));
1648
1690
  };
1649
1691
  const renderButtonIcon = (buttonIcon) => {
1650
- if (!buttonIcon || !buttonIcon.icon) {
1692
+ if (!buttonIcon || (!buttonIcon?.icon && !buttonIcon?.src)) {
1651
1693
  return null;
1652
1694
  }
1653
1695
  const iconWidth = buttonIcon?.size?.width ? `${buttonIcon.size.width}` : '24';
@@ -1696,7 +1738,7 @@
1696
1738
  const DIVIDER_CLASSES$1 = 'border-main-divider border border-t-0 border-x-0';
1697
1739
  const FIRST_CELL_CLASSES$1 = 'w-[200px] mr-6';
1698
1740
  const COLS_LENGTH_FOR_SCROLL$1 = 2;
1699
- const COLUMN_WIDTH$1 = 4 * 80 + 4 * 4; // w-80 + gap-4 = 336px
1741
+ const COLUMN_WIDTH$2 = 4 * 80 + 4 * 4; // w-80 + gap-4 = 336px
1700
1742
 
1701
1743
  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 }) }) }))] })));
1702
1744
 
@@ -1709,7 +1751,17 @@
1709
1751
  const TableRowContainer = JSX(({ children }) => (jsx("div", { className: "self-start flex flex-col", role: "row", children: jsx("div", { className: "flex", children: children }) })));
1710
1752
 
1711
1753
  const ComparisonTableColumnHeaders = JSX(({ colHeaders, activeCardIndex, router, handlerDecorator }) => {
1712
- 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)))) })] }));
1754
+ 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)))) })] }));
1755
+ });
1756
+
1757
+ const TableArrowScrollControl = JSX(({ isScrollAvailable, handleNextClick, handlePrevClick, showNextButton, showPrevButton }) => {
1758
+ return isScrollAvailable ? (jsx("div", { children: renderArrows({
1759
+ handler: [handlePrevClick, handleNextClick],
1760
+ isShown: [showPrevButton, showNextButton],
1761
+ btnClass: ['top-[108px]', 'top-11'],
1762
+ className: 'right-7',
1763
+ isDisabled: true,
1764
+ }) })) : null;
1713
1765
  });
1714
1766
 
1715
1767
  const TableCell = JSX(({ cell, isFirstRow, isLastRow, isFillGradient }) => {
@@ -1722,17 +1774,7 @@
1722
1774
  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)));
1723
1775
 
1724
1776
  const titleStyle = (isLastRow = false) => `text-s py-7 ${DIVIDER_CLASSES$1} ${FIRST_CELL_CLASSES$1} ${isLastRow ? 'border-b-0' : 'border-solid'}`;
1725
- 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] })));
1726
-
1727
- const TableArrowScrollControl = JSX(({ isScrollAvailable, handleNextClick, handlePrevClick, showNextButton, showPrevButton }) => {
1728
- return isScrollAvailable ? (jsx("div", { children: renderArrows({
1729
- handler: [handlePrevClick, handleNextClick],
1730
- isShown: [showPrevButton, showNextButton],
1731
- btnClass: ['top-[108px]', 'top-11'],
1732
- className: 'right-7',
1733
- isDisabled: true,
1734
- }) })) : null;
1735
- });
1777
+ 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] })));
1736
1778
 
1737
1779
  const ComparisonTableRows = JSX(({ rowData, activeCardIndex, isColoredFirstColumn, ...tableArrowScrollProps }) => {
1738
1780
  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 })] }));
@@ -1771,26 +1813,21 @@
1771
1813
  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 ? 'Показать все параметры' : 'Скрыть' }) })] }) }));
1772
1814
  };
1773
1815
 
1816
+ const roundTo = (value, precision = 2) => {
1817
+ const factor = 10 ** precision;
1818
+ return Math.round(parseFloat(String(value)) * factor) / factor;
1819
+ };
1820
+
1774
1821
  function useExchangeRates() {
1775
1822
  const { data } = useAsyncData(EXCHANGE_RATES_URL, fetchExchangeRates);
1776
1823
  const result = data?.hits?.hits?.map((_) => _._source) || [];
1777
1824
  return result.length ? getCurrencyListByRate(result) : result;
1778
1825
  }
1779
- async function fetchExchangeRates() {
1780
- try {
1781
- const response = await fetch(EXCHANGE_RATES_URL, {
1782
- method: 'POST',
1783
- headers: {
1784
- 'Content-Type': 'application/json',
1785
- },
1786
- body: JSON.stringify(EXCHANGE_RATES_BODY),
1787
- });
1788
- return await response.json();
1789
- }
1790
- catch (err) {
1791
- console.error(err);
1792
- return Promise.resolve();
1793
- }
1826
+ function fetchExchangeRates() {
1827
+ return fetchJSON(EXCHANGE_RATES_URL, {
1828
+ method: 'POST',
1829
+ body: JSON.stringify(EXCHANGE_RATES_BODY),
1830
+ });
1794
1831
  }
1795
1832
  const EXCHANGE_RATES_URL = 'https://coins.rshb.ru/api/catalog/vue_storefront_magento_1_currency_rates_average/currency_rates_average/_search?size=10000';
1796
1833
  const EXCHANGE_RATES_BODY = {
@@ -1825,13 +1862,12 @@
1825
1862
  if (!result.some((i) => i.code === currencyCode)) {
1826
1863
  result.push({
1827
1864
  code: currencyCode,
1828
- buy: roundRate(Number(_.rate_buy)),
1829
- sell: roundRate(Number(_.rate_sell)),
1865
+ buy: roundTo(Number(_.rate_buy), 3),
1866
+ sell: roundTo(Number(_.rate_sell), 3),
1830
1867
  });
1831
1868
  }
1832
1869
  return result;
1833
1870
  }, []);
1834
- const roundRate = (value) => Math.round(value * 1000) / 1000;
1835
1871
 
1836
1872
  var Currency;
1837
1873
  (function (Currency) {
@@ -1861,11 +1897,6 @@
1861
1897
 
1862
1898
  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] })] })));
1863
1899
 
1864
- const roundTo = (value, precision = 2) => {
1865
- const factor = Math.pow(10, precision);
1866
- return Math.round(parseFloat(String(value)) * factor) / factor;
1867
- };
1868
-
1869
1900
  const calculateResult = (value, rate, precision) => {
1870
1901
  const result = Number(formatValue(value)) * Math.pow(rate, precision ? -1 : 1);
1871
1902
  return Number.isInteger(result) ? result : roundTo(result);
@@ -1993,6 +2024,10 @@
1993
2024
  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] }) }) }));
1994
2025
  });
1995
2026
 
2027
+ const ICON_VERSION_MAP = {
2028
+ 'bg-white': 'normal',
2029
+ transparent: 'white',
2030
+ };
1996
2031
  const SVG_COLOR = {
1997
2032
  'bg-white': 'text-primary-main',
1998
2033
  transparent: 'text-white',
@@ -2002,11 +2037,11 @@
2002
2037
  transparent: 'text-white',
2003
2038
  };
2004
2039
  const Logo = JSX(({ className = '', href, logo, children = logo?.title, targetBlank, bgColor = 'bg-white', hideTitle, }) => {
2005
- 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$1(children, bgColor, logo?.title)] }));
2040
+ 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)] }));
2006
2041
  });
2007
2042
  const renderTitle$1 = (children, bgColor, title) => {
2008
2043
  const text = children || title || 'Россельхозбанк';
2009
- return jsx("span", { className: `${TEXT_COLOR[bgColor]} font-medium ml-2.5`, children: text });
2044
+ return jsx("span", { className: `${TEXT_COLOR[bgColor]} font-light ml-2.5`, children: text });
2010
2045
  };
2011
2046
 
2012
2047
  const useSearch = () => {
@@ -2076,16 +2111,9 @@
2076
2111
  const mergeTopItems = (left, right) => substitute(left, right).concat(subtract(right, left));
2077
2112
 
2078
2113
  function useSitemap() {
2079
- const { data } = useAsyncData(sitemapURL(), fetchSitemap);
2114
+ const { data } = useAsyncData(`/wcms-resources/${projectSettings.SITEMAP || 'sitemap'}.json`, fetchJSONUnsafe);
2080
2115
  return data || {};
2081
2116
  }
2082
- async function fetchSitemap() {
2083
- const response = await fetch(sitemapURL());
2084
- return await response.json();
2085
- }
2086
- function sitemapURL() {
2087
- return `/wcms-resources/${projectSettings.SITEMAP || 'sitemap'}.json`;
2088
- }
2089
2117
 
2090
2118
  const Sitemap = JSX(({ className = '', items, context }) => {
2091
2119
  const sitemap = useSitemap();
@@ -2177,56 +2205,6 @@
2177
2205
  const renderMonthNames = (item, colSize) => item.month.map((_, i) => (jsx("div", { style: { flexBasis: `${colSize}%` }, children: _.text }, `monthName-${i}`)));
2178
2206
  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);
2179
2207
 
2180
- const filterBlocksByTag = (blocks, tag) => {
2181
- return tag ? blocks.filter((block) => block?.tags?.includes(tag)) : blocks;
2182
- };
2183
-
2184
- const EmbeddableGroupBlocks = {
2185
- ProductBlock,
2186
- ProductTile,
2187
- };
2188
-
2189
- const GroupBlocksItem = JSX(({ groupBlocks, context }) => {
2190
- return (jsx("div", { className: "grid grid-cols-12 gap-1 box-border", children: groupBlocks?.length ? groupBlocks.map(renderBlock$1(context)) : null }));
2191
- });
2192
- const renderBlock$1 = (context) => (block, i) => {
2193
- const type = block?.blockType;
2194
- if (!type || !(type in EmbeddableGroupBlocks)) {
2195
- return null;
2196
- }
2197
- const classNameBlock = style2className(block?.style);
2198
- const EmbeddedBlock = EmbeddableGroupBlocks[type];
2199
- return (jsx(EmbeddedBlock, { context: context, ...block, className: classNameBlock }, `block_${i}`));
2200
- };
2201
-
2202
- const GroupBlockTabs = JSX((props) => {
2203
- const { className = '', tabs, currentTag, isShowCounter = false, onTabClick } = props;
2204
- return (jsx("div", { className: `box-border flex gap-x-1 h-14 ${className}`, role: "tablist", children: tabs?.map(renderTab$2({ currentTag, isShowCounter, onTabClick })) }));
2205
- });
2206
- const badgeStyle = 'min-w-[22px] w-[22px] h-[22px] rounded-full text-xs-light ml-2';
2207
- const renderTab$2 = ({ currentTag, isShowCounter, onTabClick }) => (tab, i) => {
2208
- const isActive = currentTag === tab.tag;
2209
- const tabBg = isActive ? 'bg-primary-main' : 'group bg-white';
2210
- const tabText = `text-m-light ${isActive ? 'text-white' : 'text-secondary-text group-hover:text-primary-main'}`;
2211
- const counterBlockStyle = `${badgeStyle}
2212
- ${isActive
2213
- ? 'bg-white/30 text-white'
2214
- : 'bg-main-divider text-secondary-text group-hover:text-primary-main'}`;
2215
- 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)));
2216
- };
2217
-
2218
- const GroupBlock = JSX(({ className = '', tabs, context, groupBlocks = [], isShowCounter, ...rest }) => {
2219
- const [currentTag, setCurrentTag] = useState(tabs?.[0]?.tag);
2220
- const filteredBlocks = filterBlocksByTag(groupBlocks, currentTag);
2221
- const tabsNewMap = tabs?.map((tab) => {
2222
- const count = tab.tag
2223
- ? groupBlocks.filter((block) => block?.tags?.includes(tab.tag)).length
2224
- : groupBlocks.length;
2225
- return { ...tab, count };
2226
- });
2227
- 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] }));
2228
- });
2229
-
2230
2208
  const checkIsHrefSameOrigin = (href, router) => getOrigin(href) === getOrigin(router.href);
2231
2209
 
2232
2210
  const isHrefActive = (href, router, cmp = (targetHref, baseHref) => baseHref.startsWith(targetHref)) => {
@@ -2239,22 +2217,22 @@
2239
2217
  isHrefActive(topItem.href, router) ||
2240
2218
  checkIsHrefSameOrigin(topItem.href, router);
2241
2219
 
2242
- const TEXT_CLASSES$3 = 'font-sans text-s-light';
2243
- const LINK_CLASSES$2 = 'inline-block border border-solid bg-transparent text-center no-underline';
2244
- 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 }) })));
2245
- const getLinkClasses$1 = (bgColor, active = false, flat = false) => {
2220
+ const TEXT_CLASSES$2 = 'font-sans text-s-light';
2221
+ const LINK_CLASSES$1 = 'inline-block border border-solid bg-transparent text-center no-underline';
2222
+ 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 }) })));
2223
+ const getLinkClasses = (bgColor, active = false, flat = false) => {
2246
2224
  let classes = 'border-transparent';
2247
2225
  if (active) {
2248
2226
  classes = `rounded-md ${bgColor === 'bg-white' ? 'border-primary-main' : 'border-white'}`;
2249
2227
  }
2250
- return `${classes} ${LINK_CLASSES$2} ${flat ? '' : 'px-4 py-2'}`;
2228
+ return `${classes} ${LINK_CLASSES$1} ${flat ? '' : 'px-4 py-2'}`;
2251
2229
  };
2252
- const getTextClasses$2 = (bgColor, active = false, flat = false) => {
2253
- if (bgColor !== 'bg-white') {
2254
- return `text-white ${TEXT_CLASSES$3}`;
2230
+ const getTextClasses$1 = (bgColor, active = false, flat = false) => {
2231
+ if (bgColor === 'transparent') {
2232
+ return `text-white hover:text-primary-hover ${TEXT_CLASSES$2}`;
2255
2233
  }
2256
2234
  const nonActiveAtoms = `${flat ? 'text-primary-text' : 'text-secondary-text'} hover:text-primary-main`;
2257
- return `${active ? 'text-primary-main' : nonActiveAtoms} ${TEXT_CLASSES$3}`;
2235
+ return `${active ? 'text-primary-main' : nonActiveAtoms} ${TEXT_CLASSES$2}`;
2258
2236
  };
2259
2237
 
2260
2238
  const DaData = DaDataAPI('https://10.80.4.9');
@@ -2289,7 +2267,7 @@
2289
2267
  };
2290
2268
  const HeaderSecondaryMenu = JSX(({ className, defaultLocation = '', bgColor = 'bg-white' }) => {
2291
2269
  const [city, getCity] = useGeolocation(defaultLocation);
2292
- 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 }) })] }));
2270
+ 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 }) })] }));
2293
2271
  });
2294
2272
 
2295
2273
  const maxBy = (discriminator) => (list) => list.reduceRight((a, b) => (discriminator(a) > discriminator(b) ? a : b));
@@ -2301,15 +2279,15 @@
2301
2279
  : undefined;
2302
2280
  };
2303
2281
 
2304
- const TEXT_CLASSES$2 = 'font-sans text-l-light';
2282
+ const TEXT_CLASSES$1 = 'font-sans text-l-light';
2305
2283
  const BORDER_CLASSES = 'absolute left-0 -bottom-3 w-full h-[2px]';
2306
- 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] })));
2307
- const getTextClasses$1 = (bgColor, active = false) => {
2284
+ 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] })));
2285
+ const getTextClasses = (bgColor, active = false) => {
2308
2286
  let classes = 'text-white';
2309
2287
  if (bgColor === 'bg-white') {
2310
2288
  classes = active ? 'text-primary-main' : 'text-primary-text hover:text-primary-main';
2311
2289
  }
2312
- return `${classes} ${TEXT_CLASSES$2}`;
2290
+ return `${classes} ${TEXT_CLASSES$1}`;
2313
2291
  };
2314
2292
  const getBorderClasses = (bgColor, active = false) => {
2315
2293
  if (!active) {
@@ -2367,8 +2345,9 @@
2367
2345
  const { handlerDecorator } = context;
2368
2346
  const mergedItems = mergeTopItems(sitemap.topItems, topItems);
2369
2347
  const [firstPortal] = mergedItems;
2370
- // Если по слагу невозможно понять к какому подпорталу этот слаг относиться, то выбираем первый подпортал.
2371
- const activeTopItem = mergedItems.find(isTopItemActive(router)) || firstPortal;
2348
+ const activeTopItem = showSubMenu
2349
+ ? mergedItems.find(isTopItemActive(router)) || firstPortal // Если по слагу невозможно понять к какому подпорталу этот слаг относиться, то выбираем первый подпортал.
2350
+ : null;
2372
2351
  const topMenu = mergedItems.map((_, i) => (jsx(TopItem, { active: _ === activeTopItem, ...useLink({ router, handlerDecorator }, _), "aria-label": _.text, bgColor: bgColor }, String(i))));
2373
2352
  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] }) }));
2374
2353
  });
@@ -2384,7 +2363,7 @@
2384
2363
  const isLastShift = galleryLength === tabsShift + 2;
2385
2364
  const showPrevButton = tabsShift > 0;
2386
2365
  const activeHref = cards[activeSlideIndex]?.href;
2387
- return (jsxs("section", { role: "listitem", className: `min-w-full text-center ${className}`, children: [jsxs("div", { className: "relative mt-7 overflow-hidden", children: [galleryLength
2366
+ return (jsxs("section", { role: "listitem", className: `min-w-full text-center ${className}`, children: [jsxs("div", { className: "relative overflow-hidden", children: [galleryLength
2388
2367
  ? renderGallery({
2389
2368
  tabsShift,
2390
2369
  cards,
@@ -2401,7 +2380,8 @@
2401
2380
  });
2402
2381
  function renderGallery({ tabsShift, cards, activeSlideIndex, isLastShift, setActiveSlideIndex, }) {
2403
2382
  const tabsShiftWidth = isLastShift ? tabsShift * 460 - 240 : tabsShift * 460;
2404
- 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({
2383
+ const cardsAlignStyle = cards.length > 2 ? 'justify-start' : 'justify-center';
2384
+ 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({
2405
2385
  slide,
2406
2386
  i,
2407
2387
  activeSlideIndex,
@@ -2413,7 +2393,7 @@
2413
2393
  const btnClassName = isActiveBtn
2414
2394
  ? 'shadow-dark-blue/42 border-primary-main'
2415
2395
  : `ease-in duration-300 border-main-stroke`;
2416
- 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)));
2396
+ 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)));
2417
2397
  }
2418
2398
  function renderValueBlock(title, sum) {
2419
2399
  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 })] }));
@@ -2424,7 +2404,7 @@
2424
2404
 
2425
2405
  const InsuranceAmountBlock = JSX(({ className = '', context, title, insuranceTabs = [], button, ...rest }) => {
2426
2406
  const [activeSlideIndex, setActiveSlideIndex] = useState(0);
2427
- 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({
2407
+ 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({
2428
2408
  title: item?.title,
2429
2409
  i,
2430
2410
  activeSlideIndex,
@@ -2450,20 +2430,17 @@
2450
2430
  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)));
2451
2431
  }
2452
2432
 
2453
- const mobileAppStyleMap = {
2454
- primary: 'bg-white text-primary-text',
2455
- secondary: 'bg-primary-main text-white',
2456
- };
2457
2433
  const MobileAppTile = JSX(({ className = '', context, title = 'Мобильное приложение', qr, buttons, version = 'primary', items, image, headingType = 'h4', ...rest }) => {
2458
2434
  const textColorClass = version === 'primary' ? 'text-primary-text' : '';
2459
2435
  const containerStyle = version === 'secondary' ? 'p-3.5 min-w-[120px]' : 'min-w-[92px]';
2436
+ const buttonsWithClass = buttons?.map((_) => ({ ..._, className: 'min-w-[168px]' }));
2460
2437
  return (jsxs(BlockWrapper, { context: context, className: `flex justify-between font-sans p-9 box-border relative min-h-[320px]
2461
2438
  ${getTileMinHeight(className)}
2462
- ${mobileAppStyleMap[version]}
2439
+ ${VersionStyleMap[version]}
2463
2440
  ${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
2464
- ${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] }));
2441
+ ${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] }));
2465
2442
  });
2466
- const renderList$1 = (version, items) => {
2443
+ const renderList = (version, items) => {
2467
2444
  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" }));
2468
2445
  };
2469
2446
 
@@ -2478,29 +2455,6 @@
2478
2455
  .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] }));
2479
2456
  });
2480
2457
 
2481
- const TEXT_CLASSES$1 = 'font-sans text-m';
2482
- const LINK_CLASSES$1 = 'flex-1 flex items-center justify-center cursor-pointer';
2483
- 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 }) })));
2484
- const getLinkClasses = (className, active = false) => {
2485
- const classes = active ? 'bg-primary-main' : 'group bg-white';
2486
- return `${classes} ${LINK_CLASSES$1} ${className}`;
2487
- };
2488
- const getTextClasses = (active = false) => {
2489
- const classes = active ? 'text-white' : 'text-secondary-text group-hover:text-primary-main ';
2490
- return `${classes} ${TEXT_CLASSES$1}`;
2491
- };
2492
-
2493
- const NavigatorTabs = JSX(({ className = '', navigatorTabs, context, ...rest }) => {
2494
- 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 }));
2495
- });
2496
- const renderTab$1 = (context) => (tab, i) => {
2497
- const { handlerDecorator, useRouter } = context;
2498
- const router = useRouter();
2499
- const hash = getHash(router.href);
2500
- const active = hash ? tab.href === hash : i === 0;
2501
- return (jsx(NavigatorTabItem, { active: active, ...useLink({ router, handlerDecorator }, tab) }, tab.text));
2502
- };
2503
-
2504
2458
  const foldableBlockClassNames = 'transition-all duration-300 max-h-0 overflow-hidden';
2505
2459
  const useActiveHandler = ({ initialState = false }) => {
2506
2460
  const [isActive, setIsActive] = useState(initialState);
@@ -2530,7 +2484,7 @@
2530
2484
  const getFoldButtonLabel = isActive ? 'Скрыть' : foldButtonLabel;
2531
2485
  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;
2532
2486
  });
2533
- const renderBlocks = (blocks, render, { blocksToHide, isActive, containerClasses }) => {
2487
+ const renderBlocks = (blocks, render, { blocksToHide, isActive, containerClasses = '' }) => {
2534
2488
  const visibleBlocks = blocks.slice(0, blocks.length - blocksToHide);
2535
2489
  const hiddenBlocks = blocksToHide > 0 ? blocks.slice(-blocksToHide) : [];
2536
2490
  return render(jsxs("div", { children: [visibleBlocks, jsx("div", { className: `${foldableBlockClassNames} ${containerClasses}`, children: hiddenBlocks })] }), isActive);
@@ -2574,24 +2528,16 @@
2574
2528
  const renderShimmerItem = (width, index) => (jsx("div", { style: { width: `${width || 100}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
2575
2529
  const goldenSequence = (first, size) => [first].concat(size > 0 ? goldenSequence(first / GOLDEN_RATIO, size - 1) : []);
2576
2530
 
2577
- const productGalleryStyleMap = {
2578
- primary: 'bg-white text-primary-text',
2579
- secondary: 'bg-primary-main text-white',
2580
- };
2581
2531
  const productBlockStyleMap = {
2582
2532
  primary: { title: 'text-secondary-text', text: 'text-secondary-text' },
2583
2533
  secondary: { title: 'text-white', text: 'text-white/80' },
2584
2534
  };
2585
- const productSlideStyleMap = {
2586
- primary: 'bg-white text-primary-text',
2587
- secondary: 'bg-primary-main text-white',
2588
- };
2589
2535
  const ProductGallery = JSX(({ className = '', context, slides = [], version = 'primary', ...rest }) => {
2590
2536
  const galleryNav = slides.map((s) => s.nav);
2591
2537
  const galleryBlocks = slides.map((s) => s.productBlock);
2592
2538
  const [activeSlideIndex, setActiveSlideIndex] = useState(0);
2593
2539
  return (jsxs(BlockWrapper, { context: context, className: `box-border pt-[50px] overflow-hidden relative font-sans w-100 ${className}
2594
- ${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({
2540
+ ${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({
2595
2541
  slide,
2596
2542
  i,
2597
2543
  activeSlideIndex,
@@ -2602,14 +2548,14 @@
2602
2548
  function renderProductBlock(block, i, context) {
2603
2549
  const { version } = block;
2604
2550
  const additionalClass = version ? productBlockStyleMap[version].title : '';
2605
- 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)));
2551
+ 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)));
2606
2552
  }
2607
2553
  function renderNavButton({ slide, i, activeSlideIndex, onClick, version }) {
2608
2554
  const isActiveBtn = i === activeSlideIndex;
2609
2555
  const btnClassName = isActiveBtn
2610
2556
  ? 'bg-white shadow-dark-blue/42 w-[354px] min-w-[354px] border-none'
2611
2557
  : `min-w-[277px] hover:py-[26px] hover:py-[26px] ease-in duration-300 bg-white/10
2612
- ${productSlideStyleMap[version]}`;
2558
+ ${VersionStyleMap[version]}`;
2613
2559
  const btnTitleClassName = isActiveBtn
2614
2560
  ? 'text-primary-text text-h6'
2615
2561
  : `text-l ${productBlockStyleMap[version].title}`;
@@ -2622,12 +2568,8 @@
2622
2568
  `, 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)));
2623
2569
  }
2624
2570
 
2625
- const promoTileStyleMap = {
2626
- primary: 'bg-white text-primary-text',
2627
- secondary: 'bg-primary-main text-white',
2628
- };
2629
2571
  const PromoTile = JSX(({ className = '', context, title = 'Акции и спецпредложения', date, description, buttons = [], version = 'primary', ...rest }) => {
2630
- 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 })] }) }) }));
2572
+ 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 })] }) }) }));
2631
2573
  });
2632
2574
  function formatDate(date) {
2633
2575
  const dateObj = new Date(date);
@@ -2736,7 +2678,7 @@
2736
2678
  };
2737
2679
  // TODO: В качестве компонента не годится
2738
2680
  const RadioButtons = JSX(() => {
2739
- const [selected, setSelected] = useState('option1');
2681
+ const [selected, setSelected] = useState('option2');
2740
2682
  const onChange = (_) => setSelected(_.target.value);
2741
2683
  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 })] }));
2742
2684
  });
@@ -2770,6 +2712,10 @@
2770
2712
  {
2771
2713
  city: 'Москва',
2772
2714
  offices: [
2715
+ {
2716
+ office: 'выберите отделение',
2717
+ rate: null,
2718
+ },
2773
2719
  {
2774
2720
  office: 'МоскваОфис1',
2775
2721
  rate: 1,
@@ -2885,6 +2831,10 @@
2885
2831
  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)));
2886
2832
  };
2887
2833
 
2834
+ function assertUnreachable(x) {
2835
+ throw new Error(x);
2836
+ }
2837
+
2888
2838
  const LINK_CLASSES = 'h-12 flex-1 flex items-center justify-center cursor-pointer';
2889
2839
  const ACTIVE_LINK_CLASSES = 'bg-primary-main';
2890
2840
  const INACTIVE_LINK_CLASSES = 'group bg-white';
@@ -2907,25 +2857,43 @@
2907
2857
 
2908
2858
  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)));
2909
2859
 
2910
- const renderTab = ({ onClick, currentTab, showCounter, page, context }) => (tab, i) => {
2860
+ const renderTab = ({ onClick, currentTab, showCounter, page, context }) =>
2861
+ // Linter doesn't understand that switch processes all cases
2862
+ // eslint-disable-next-line consistent-return
2863
+ (tab, i) => {
2911
2864
  const { useRouter, handlerDecorator } = context;
2912
2865
  const router = useRouter();
2913
- if (isURL(tab?.ref)) {
2914
- return renderLinkTab({
2915
- ...useLink({ router, handlerDecorator }, { href: tab.ref, text: tab.title }),
2916
- i,
2917
- });
2866
+ const type = tab.type;
2867
+ if (!(type === 'group' || type === 'link')) {
2868
+ return null;
2869
+ }
2870
+ switch (type) {
2871
+ case 'group':
2872
+ return renderGroupTab({ onClick, currentTab, showCounter, page, context })(tab, i);
2873
+ case 'link':
2874
+ return renderLinkTab({
2875
+ ...useLink({ router, handlerDecorator }, tab),
2876
+ i,
2877
+ });
2878
+ default:
2879
+ assertUnreachable(type);
2918
2880
  }
2919
- return renderGroupTab({ onClick, currentTab, showCounter, page, context })(tab, i);
2920
2881
  };
2921
2882
 
2922
2883
  const Tabs = JSX((props) => {
2923
2884
  const { context, className, tabs, page, showCounter } = props;
2924
2885
  const [currentTab, setCurrentTab] = useState(tabs ? tabs[0] : undefined);
2925
- useEffect(() => EventBus.inst.subject('tab', { label: currentTab?.ref }), [currentTab]);
2886
+ useEffect(() => {
2887
+ if (currentTab?.type === 'group') {
2888
+ return EventBus.inst.subject('tab', { label: currentTab.ref });
2889
+ }
2890
+ return undefined;
2891
+ }, [currentTab]);
2926
2892
  const handleClick = (selectedTab) => {
2927
- EventBus.inst.fire('tab', { type: selectedTab.type, label: selectedTab.ref });
2928
- setCurrentTab(selectedTab);
2893
+ if (selectedTab?.type === 'group') {
2894
+ EventBus.inst.fire('tab', { type: selectedTab.type, label: selectedTab.ref });
2895
+ setCurrentTab(selectedTab);
2896
+ }
2929
2897
  };
2930
2898
  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 })) }));
2931
2899
  });
@@ -2933,40 +2901,149 @@
2933
2901
  const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
2934
2902
  const FIRST_CELL_CLASSES = 'w-[354px] flex-shrink-0';
2935
2903
  const COLS_LENGTH_FOR_SCROLL = 2;
2936
- const COLUMN_WIDTH = 4 * 80 + 40; // w-80 + pl-10 = 360px
2904
+ const COLUMN_WIDTH$1 = 4 * 80 + 40; // w-80 + pl-10 = 360px
2905
+
2906
+ const TableInnerButton = JSX(({ isOpen, dataUrl, rowIdx, cellIdx, fieldIdx }) => {
2907
+ const handleClick = () => {
2908
+ EventBus.inst.fire('tariffInnerTable', { dataUrl, rowIdx, cellIdx, fieldIdx });
2909
+ };
2910
+ 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 })] }));
2911
+ });
2937
2912
 
2938
2913
  const getButtonAriaLabel = (icon) => icon?.alt || icon?.title || IconTitleMap[icon?.icon ? icon.icon : ''];
2939
2914
 
2940
- const TariffsTableCell = JSX(({ cell, isLastRow }) => {
2941
- 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' : ''}`;
2942
- return (jsx("div", { className: cellWrapperClasses, role: "cell", children: jsx("div", { children: cell.map(renderCellInner) }) }));
2915
+ 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;
2916
+ const renderLabelDescriptionCellData = ({ label, description }) => {
2917
+ const labelClassName = `text-h6 font-medium m-0 ${description ? 'mb-1' : ''}`;
2918
+ return (jsxs("div", { children: [label ? jsx("div", { className: labelClassName, children: label }) : null, description ? jsx("div", { className: "text-s text-secondary-text", children: description }) : null] }));
2919
+ };
2920
+ const renderImgCellData = ({ image }) => (image?.src ? jsx(Img, { image: image }) : null);
2921
+ const renderListCellData = ({ isDotted, ...rest }) => (jsx(List, { className: "flex flex-col justify-between items-start text-sm", version: "gray", isDotted: isDotted ?? true, ...rest }));
2922
+ const renderTableCellData = JSX((props) => {
2923
+ const [showBtn, setShowBtn] = useState(true);
2924
+ const tariffInnerTableSubscriber = (event) => {
2925
+ const _showBtn = ['rowIdx', 'cellIdx', 'fieldIdx'].every((key) => props[key] === event[key]);
2926
+ setShowBtn(!_showBtn);
2927
+ };
2928
+ useEffect(() => EventBus.inst.subscribe('tariffInnerTable', tariffInnerTableSubscriber), []);
2929
+ return showBtn ? jsx(TableInnerButton, { ...props }) : null;
2930
+ });
2931
+ const EmbeddableCellData = {
2932
+ Buttons: renderButtonsCellData,
2933
+ Img: renderImgCellData,
2934
+ List: renderListCellData,
2935
+ LabelDescription: renderLabelDescriptionCellData,
2936
+ Table: renderTableCellData,
2937
+ };
2938
+
2939
+ const TariffsTableCell = JSX(({ context, cells, isLastRow, rowIdx, cellIdx }) => {
2940
+ 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' : ''}`;
2941
+ return (jsx("div", { className: cellWrapperClasses, role: "cell", children: cells.map(renderCellInner(rowIdx, context, cellIdx)) }));
2942
+ });
2943
+ const renderCellInner = (rowIdx, context, cellIdx) => (cell, i) => {
2944
+ 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)));
2945
+ };
2946
+ const renderCell = (cell, context, indexes) => {
2947
+ if (!cell) {
2948
+ return null;
2949
+ }
2950
+ const { tableCellType: type, ...rest } = cell;
2951
+ if (!type || !(type in EmbeddableCellData)) {
2952
+ return null;
2953
+ }
2954
+ const EmbeddableCellInner = EmbeddableCellData[type];
2955
+ return jsx(EmbeddableCellInner, { context: context, ...rest, ...indexes });
2956
+ };
2957
+
2958
+ function useTariffsInnerTableData(directoryName) {
2959
+ const { data } = useAsyncData(tariffsInnerTableDataUrl(directoryName), fetchTariffsInnerTableData);
2960
+ return data || {};
2961
+ }
2962
+ async function fetchTariffsInnerTableData(url) {
2963
+ const response = await fetch(url);
2964
+ return await response.json();
2965
+ }
2966
+ function tariffsInnerTableDataUrl(directoryName) {
2967
+ return `/wcms-resources/${directoryName || 'tariffs-inner-table-data'}.json`;
2968
+ }
2969
+
2970
+ const COLUMN_WIDTH = 140;
2971
+ const InnerTableBodyItem = JSX(({ rows }) => {
2972
+ const [activeColumnIndex, setActiveColumnIndex] = useState(0);
2973
+ const handleNextClick = () => setActiveColumnIndex(activeColumnIndex + 1);
2974
+ const handlePrevClick = () => setActiveColumnIndex(activeColumnIndex - 1);
2975
+ const rowsLength = rows?.[0]?.length ?? 0;
2976
+ const showNextButton = rowsLength > 3 && rowsLength > activeColumnIndex + 4;
2977
+ const showPrevButton = activeColumnIndex > 0;
2978
+ return (jsxs("div", { children: [rows?.map(renderRow(activeColumnIndex)), renderArrows({
2979
+ handler: [handlePrevClick, handleNextClick],
2980
+ isShown: [showPrevButton, showNextButton],
2981
+ btnClass: ['right-3 top-24', 'right-3 top-2'],
2982
+ className: '',
2983
+ })] }));
2943
2984
  });
2944
- 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)));
2945
- const renderList = (list) => (jsx(List, { className: "flex flex-col justify-between items-start text-s", version: "gray", items: list.items, isDotted: list.isDotted ?? true }));
2946
- 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)))) }));
2985
+ const renderRow = (activeColumnIndex) => (rowData, rowIdx) => {
2986
+ if (!rowData?.length) {
2987
+ return null;
2988
+ }
2989
+ const [headerColumn, ...columns] = rowData;
2990
+ const transform = [...Array(activeColumnIndex).keys()].reduce((res, i) => (columns?.[i]?.cols?.length ?? 1) * COLUMN_WIDTH + res, 0);
2991
+ 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: {
2992
+ transform: `translateX(-${transform}px)`,
2993
+ }, 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)));
2994
+ };
2995
+ 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;
2947
2996
 
2948
- const TariffsTableRow = JSX(({ row: { header, data }, activeCardIndex, isLastRow }) => {
2949
- 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] }));
2997
+ const InnerTableBody = JSX(({ context, activeTabIndex, items }) => {
2998
+ const [hiddenTables, setHiddenTables] = useState({});
2999
+ const toggleTable = (key) => {
3000
+ setHiddenTables((oldState) => ({ ...oldState, [key]: !oldState[key] }));
3001
+ };
3002
+ return (jsx("div", { children: items.map((_, tableIdx) => {
3003
+ const key = `activeTabIdx:${activeTabIndex}-tableIdx:${tableIdx}`;
3004
+ 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));
3005
+ }) }));
2950
3006
  });
2951
3007
 
2952
- const TariffsTable = JSX(({ className, context, title, description, rowHeaders, columns, hiddenRowsNum = 0, ...rest }) => {
3008
+ 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] })));
3009
+
3010
+ const InnerTable = JSX(({ context, dataUrl, pdfUrl }) => {
3011
+ const { tableData } = useTariffsInnerTableData(dataUrl);
3012
+ const [activeTabIndex, setActiveTabIndex] = useState(0);
3013
+ const items = tableData?.[activeTabIndex]?.items ?? [];
3014
+ const currencies = tableData?.map((item) => item.currency ?? '');
3015
+ 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;
3016
+ });
3017
+
3018
+ const TariffsTableRowContainer = JSX(({ context, children, rowIdx }) => {
3019
+ const [dataUrl, setDataUrl] = useState(undefined);
3020
+ useEffect(() => EventBus.inst.subscribe('tariffInnerTable', (event) => {
3021
+ setDataUrl(rowIdx === event.rowIdx ? event.dataUrl : undefined);
3022
+ }), [rowIdx]);
3023
+ 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] }));
3024
+ });
3025
+
3026
+ const TariffsTableRow = JSX(({ row: { header, data }, activeCardIndex, isLastRow, context, rowIdx }) => {
3027
+ 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] }));
3028
+ });
3029
+
3030
+ const TariffsTable = JSX(({ className = '', context, title, description, rowHeaders, tariffsColumns: columns, hiddenRowsNum = 0, ...rest }) => {
2953
3031
  const [activeCardIndex, setActiveCardIndex] = useState(0);
2954
- const colData = getColData(columns);
2955
- const rowData = getRowData(rowHeaders, colData);
3032
+ const colData = columns?.map(({ data }) => data) || [];
3033
+ const rowData = rowHeaders?.map((header, i) => ({
3034
+ header,
3035
+ data: colData.map((col) => col?.[i] || []),
3036
+ }));
3037
+ const columnsLength = colData.length;
2956
3038
  const tableArrowScrollControlProps = useTableArrowScrollControl({
2957
- columnsLength: colData.length,
3039
+ columnsLength,
2958
3040
  colsLengthForScroll: COLS_LENGTH_FOR_SCROLL,
2959
3041
  activeCardIndex,
2960
3042
  setActiveCardIndex,
2961
3043
  });
2962
- const foldableBlocks = rowData?.map((row, i, { length }) => (jsx(TariffsTableRow, { row: row, isLastRow: i + 1 === length, activeCardIndex: activeCardIndex }, String(i))));
2963
- 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] }));
2964
- });
2965
- const getColData = (columns) => columns?.map(({ data }) => data) || [];
2966
- const getRowData = (rowHeaders, colData) => rowHeaders?.map((header, i) => ({
2967
- header,
2968
- data: colData.map((col) => col?.[i] || [{}]),
2969
- }));
3044
+ const foldableBlocks = rowData?.map((row, i, { length }) => (jsx(TariffsTableRow, { context: context, row: row, isLastRow: i + 1 === length, activeCardIndex: activeCardIndex, rowIdx: i }, String(i))));
3045
+ 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] }));
3046
+ });
2970
3047
  const Wrapper = JSX(({ children, tableArrowScrollControlProps }) => {
2971
3048
  const { isScrollAvailable } = tableArrowScrollControlProps;
2972
3049
  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] }));
@@ -2989,7 +3066,6 @@
2989
3066
  LinkDocs,
2990
3067
  MiniGallery,
2991
3068
  MobileAppTile,
2992
- NavigatorTabs,
2993
3069
  PictureText,
2994
3070
  ProductBlock,
2995
3071
  ProductGallery,
@@ -3003,7 +3079,6 @@
3003
3079
  Tile,
3004
3080
  Navigation,
3005
3081
  Placeholder,
3006
- GroupBlock,
3007
3082
  BonusBenefitsBlock,
3008
3083
  SafeDepositRental,
3009
3084
  Tabs,