@redneckz/wildless-cms-uni-blocks 0.3.95 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1815) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +3038 -2926
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/cosmos-static/icons/StateMortgageIcon.svg +1 -0
  5. package/dist/components/Accordion/Accordion.d.ts +1 -1
  6. package/dist/components/Accordion/Accordion.js +1 -1
  7. package/dist/components/Accordion/Accordion.js.map +1 -1
  8. package/dist/components/Accordion/Accordion.mobile.d.ts +1 -1
  9. package/dist/components/Accordion/Accordion.mobile.js +1 -1
  10. package/dist/components/Accordion/Accordion.mobile.js.map +1 -1
  11. package/dist/components/Accordion/AccordionItem.d.ts +1 -1
  12. package/dist/components/Accordion/AccordionItem.js +3 -4
  13. package/dist/components/Accordion/AccordionItem.js.map +1 -1
  14. package/dist/components/Accordion/AccordionItem.mobile.d.ts +1 -1
  15. package/dist/components/Accordion/AccordionItem.mobile.js +2 -5
  16. package/dist/components/Accordion/AccordionItem.mobile.js.map +1 -1
  17. package/dist/components/Accordion/AccordionItemInner.d.ts +1 -1
  18. package/dist/components/Accordion/AccordionItemInner.js +1 -1
  19. package/dist/components/Accordion/AccordionItemInner.js.map +1 -1
  20. package/dist/components/Accordion/AccordionItemInner.mobile.d.ts +1 -1
  21. package/dist/components/Accordion/useActiveHandler.d.ts +1 -1
  22. package/dist/components/Accordion/useActiveHandler.js +3 -2
  23. package/dist/components/Accordion/useActiveHandler.js.map +1 -1
  24. package/dist/components/BaseTile/BaseTile.d.ts +1 -1
  25. package/dist/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  26. package/dist/components/BenefitsBlock/BenefitsBlock.js +4 -4
  27. package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  28. package/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +4 -4
  29. package/dist/components/Blocks.d.ts +35 -35
  30. package/dist/components/Blocks.mobile.d.ts +16 -16
  31. package/dist/components/Bonus/Bonus.d.ts +1 -1
  32. package/dist/components/Bonus/Bonus.js +3 -3
  33. package/dist/components/Bonus/Bonus.js.map +1 -1
  34. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.d.ts +1 -1
  35. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +3 -3
  36. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  37. package/dist/components/Calculator/BonusCalculatorForm.d.ts +1 -1
  38. package/dist/components/Calculator/BonusCalculatorForm.js +4 -3
  39. package/dist/components/Calculator/BonusCalculatorForm.js.map +1 -1
  40. package/dist/components/Calculator/Calculator.d.ts +1 -1
  41. package/dist/components/Calculator/Calculator.js +7 -6
  42. package/dist/components/Calculator/Calculator.js.map +1 -1
  43. package/dist/components/Calculator/CalculatorValueBlock.d.ts +1 -1
  44. package/dist/components/Calculator/CreditCalculatorForm.d.ts +1 -1
  45. package/dist/components/Calculator/CreditCalculatorForm.js +8 -7
  46. package/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
  47. package/dist/components/Calculator/DepositCalculatorForm.d.ts +1 -1
  48. package/dist/components/Calculator/DepositCalculatorForm.js +3 -2
  49. package/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  50. package/dist/components/Calculator/EmbeddableCalcBlocks.d.ts +4 -4
  51. package/dist/components/Calculator/MortgageCalculatorForm.d.ts +1 -1
  52. package/dist/components/Calculator/MortgageCalculatorForm.js +5 -4
  53. package/dist/components/Calculator/MortgageCalculatorForm.js.map +1 -1
  54. package/dist/components/Calculator/Rate.d.ts +1 -1
  55. package/dist/components/Calculator/renderCalculatorBlock.js +1 -1
  56. package/dist/components/Calculator/renderCalculatorBlock.js.map +1 -1
  57. package/dist/components/Calculator/useBonusCalculatorParams.d.ts +1 -2
  58. package/dist/components/Calculator/useBonusCalculatorParams.js +3 -2
  59. package/dist/components/Calculator/useBonusCalculatorParams.js.map +1 -1
  60. package/dist/components/Calculator/useCalculatorParams.d.ts +1 -2
  61. package/dist/components/Calculator/useCalculatorParams.js +3 -2
  62. package/dist/components/Calculator/useCalculatorParams.js.map +1 -1
  63. package/dist/components/Calculator/useCreditCalculatorParams.d.ts +1 -2
  64. package/dist/components/Calculator/useCreditCalculatorParams.js +2 -2
  65. package/dist/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  66. package/dist/components/Catalog/Catalog.d.ts +1 -1
  67. package/dist/components/Catalog/Catalog.js +4 -4
  68. package/dist/components/Catalog/Catalog.js.map +1 -1
  69. package/dist/components/Catalog/CatalogCard.d.ts +1 -1
  70. package/dist/components/Catalog/CatalogCard.js +1 -1
  71. package/dist/components/Catalog/CatalogCard.js.map +1 -1
  72. package/dist/components/ComparisonTable/ComparisonTable.d.ts +1 -1
  73. package/dist/components/ComparisonTable/ComparisonTable.js +3 -2
  74. package/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
  75. package/dist/components/ComparisonTable/ComparisonTable.mobile.d.ts +1 -1
  76. package/dist/components/ComparisonTable/ComparisonTable.mobile.js +2 -1
  77. package/dist/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  78. package/dist/components/ComparisonTable/ComparisonTableBody.d.ts +1 -1
  79. package/dist/components/ComparisonTable/ComparisonTableBody.js +3 -2
  80. package/dist/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  81. package/dist/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  82. package/dist/components/ComparisonTable/ComparisonTableRows.d.ts +1 -1
  83. package/dist/components/ComparisonTable/HeaderCell.d.ts +1 -1
  84. package/dist/components/ComparisonTable/HeaderCell.js +1 -1
  85. package/dist/components/ComparisonTable/HeaderCell.js.map +1 -1
  86. package/dist/components/ComparisonTable/HeaderCell.mobile.d.ts +1 -1
  87. package/dist/components/ComparisonTable/HeaderCell.mobile.js +1 -1
  88. package/dist/components/ComparisonTable/HeaderCell.mobile.js.map +1 -1
  89. package/dist/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  90. package/dist/components/ComparisonTable/TableCell.d.ts +1 -1
  91. package/dist/components/ComparisonTable/TableCell.js +2 -2
  92. package/dist/components/ComparisonTable/TableCell.js.map +1 -1
  93. package/dist/components/ComparisonTable/TableCell.mobile.d.ts +1 -1
  94. package/dist/components/ComparisonTable/TableCell.mobile.js +1 -1
  95. package/dist/components/ComparisonTable/TableCell.mobile.js.map +1 -1
  96. package/dist/components/ComparisonTable/TableColumn.d.ts +1 -1
  97. package/dist/components/ComparisonTable/TableColumn.js +2 -2
  98. package/dist/components/ComparisonTable/TableColumn.js.map +1 -1
  99. package/dist/components/ComparisonTable/TableRow.d.ts +1 -1
  100. package/dist/components/ComparisonTable/TableRow.js +1 -1
  101. package/dist/components/ComparisonTable/TableRow.js.map +1 -1
  102. package/dist/components/ComparisonTable/TableRowContainer.d.ts +1 -4
  103. package/dist/components/ContentPage/ContentPage.d.ts +3 -3
  104. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  105. package/dist/components/ContentPage/ContentPageContext.d.ts +1 -19
  106. package/dist/components/ContentPage/ContentPageHead.d.ts +1 -1
  107. package/dist/components/ExchangeRateTile/CurrencyTable.d.ts +1 -1
  108. package/dist/components/ExchangeRateTile/CurrencyTable.js +1 -1
  109. package/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  110. package/dist/components/ExchangeRateTile/CurrentLocation.d.ts +1 -1
  111. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +1 -1
  112. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +4 -3
  113. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  114. package/dist/components/ExchangeRateTile/ExchangeRateTile.d.ts +1 -1
  115. package/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  116. package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  117. package/dist/components/Footer/Contacts.d.ts +1 -1
  118. package/dist/components/Footer/Footer.d.ts +1 -1
  119. package/dist/components/Footer/Footer.mobile.d.ts +1 -1
  120. package/dist/components/Footer/Footer.mobile.js +2 -2
  121. package/dist/components/Footer/Footer.mobile.js.map +1 -1
  122. package/dist/components/Footer/HorizontalNavigation.d.ts +1 -1
  123. package/dist/components/Footer/HorizontalNavigation.mobile.d.ts +1 -1
  124. package/dist/components/Footer/HorizontalNavigation.mobile.js +1 -1
  125. package/dist/components/Footer/HorizontalNavigation.mobile.js.map +1 -1
  126. package/dist/components/Footer/HorizontalNavigationLink.d.ts +1 -1
  127. package/dist/components/Footer/MediaButton.d.ts +1 -1
  128. package/dist/components/Footer/Sitemap.d.ts +1 -1
  129. package/dist/components/Footer/Sitemap.js +2 -2
  130. package/dist/components/Footer/Sitemap.js.map +1 -1
  131. package/dist/components/Footer/SocialMedia.d.ts +1 -1
  132. package/dist/components/Footer/SocialMedia.mobile.d.ts +1 -1
  133. package/dist/components/Footer/TextInformation.d.ts +1 -1
  134. package/dist/components/Footer/TextInformation.js +1 -1
  135. package/dist/components/Footer/TextInformation.js.map +1 -1
  136. package/dist/components/Footer/TextInformation.mobile.d.ts +1 -1
  137. package/dist/components/Footer/TextInformation.mobile.js +1 -1
  138. package/dist/components/Footer/TextInformation.mobile.js.map +1 -1
  139. package/dist/components/Footer/TextInformationLink.d.ts +1 -1
  140. package/dist/components/Footer/TextInformationLink.js +1 -1
  141. package/dist/components/Footer/TextInformationLink.js.map +1 -1
  142. package/dist/components/Gallery/Gallery.d.ts +1 -1
  143. package/dist/components/Gallery/Gallery.mobile.d.ts +1 -1
  144. package/dist/components/Gallery/Gallery.mobile.js +4 -4
  145. package/dist/components/Gallery/Gallery.mobile.js.map +1 -1
  146. package/dist/components/Gallery/GalleryCardInner.d.ts +1 -1
  147. package/dist/components/Gallery/GalleryCardInner.js +1 -1
  148. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  149. package/dist/components/Gallery/GalleryContainer.d.ts +1 -1
  150. package/dist/components/Gallery/GalleryContainer.js +2 -2
  151. package/dist/components/Gallery/GalleryContainer.js.map +1 -1
  152. package/dist/components/Gallery/GalleryInner.d.ts +1 -1
  153. package/dist/components/Gallery/GalleryInner.js +2 -1
  154. package/dist/components/Gallery/GalleryInner.js.map +1 -1
  155. package/dist/components/GracePeriod/GracePeriod.d.ts +1 -1
  156. package/dist/components/GracePeriod/GracePeriod.js +4 -4
  157. package/dist/components/GracePeriod/GracePeriod.js.map +1 -1
  158. package/dist/components/GroupBlock/EmbeddableGroupBlocks.d.ts +2 -2
  159. package/dist/components/GroupBlock/GroupBlock.d.ts +1 -1
  160. package/dist/components/GroupBlock/GroupBlock.js +2 -1
  161. package/dist/components/GroupBlock/GroupBlock.js.map +1 -1
  162. package/dist/components/GroupBlock/GroupBlockTabs.d.ts +1 -1
  163. package/dist/components/GroupBlock/GroupBlockTabs.js +2 -2
  164. package/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  165. package/dist/components/GroupBlock/GroupBlocksItem.d.ts +1 -1
  166. package/dist/components/Header/DropdownMenu.d.ts +1 -1
  167. package/dist/components/Header/Header.d.ts +1 -1
  168. package/dist/components/Header/Header.js +2 -2
  169. package/dist/components/Header/Header.js.map +1 -1
  170. package/dist/components/Header/Header.mobile.d.ts +1 -1
  171. package/dist/components/Header/Header.mobile.js +4 -3
  172. package/dist/components/Header/Header.mobile.js.map +1 -1
  173. package/dist/components/Header/HeaderBurger.d.ts +1 -1
  174. package/dist/components/Header/HeaderBurger.js +4 -3
  175. package/dist/components/Header/HeaderBurger.js.map +1 -1
  176. package/dist/components/Header/HeaderSecondaryMenu.d.ts +3 -3
  177. package/dist/components/Header/HeaderSecondaryMenu.js +3 -2
  178. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  179. package/dist/components/Header/HeaderSecondaryMenuButton.d.ts +1 -1
  180. package/dist/components/Header/HeaderSubMenu.d.ts +1 -1
  181. package/dist/components/Header/HeaderSubMenu.js +3 -2
  182. package/dist/components/Header/HeaderSubMenu.js.map +1 -1
  183. package/dist/components/Header/HeaderTop.d.ts +1 -1
  184. package/dist/components/Header/HeaderTop.js +1 -1
  185. package/dist/components/Header/HeaderTop.js.map +1 -1
  186. package/dist/components/Headline/Headline.d.ts +1 -1
  187. package/dist/components/Headline/Headline.mobile.d.ts +1 -1
  188. package/dist/components/Headline/Headline.mobile.js +1 -1
  189. package/dist/components/Headline/Headline.mobile.js.map +1 -1
  190. package/dist/components/Headline/constants.js +1 -1
  191. package/dist/components/Headline/constants.js.map +1 -1
  192. package/dist/components/Insurance/Insurance.d.ts +1 -1
  193. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.d.ts +1 -1
  194. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +7 -5
  195. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  196. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +3 -0
  197. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +3 -1
  198. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +5 -4
  199. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  200. package/dist/components/LikeControl/LikeControl.d.ts +1 -1
  201. package/dist/components/LikeControl/LikeControl.js +6 -2
  202. package/dist/components/LikeControl/LikeControl.js.map +1 -1
  203. package/dist/components/LinkDocs/LinkDocs.d.ts +1 -1
  204. package/dist/components/LinkDocs/LinkDocs.mobile.d.ts +1 -1
  205. package/dist/components/LinkDocs/LinkDocsHorizontalList.d.ts +1 -1
  206. package/dist/components/LinkDocs/LinkDocsList.d.ts +1 -1
  207. package/dist/components/LinkDocs/LinkDocsListItem.d.ts +1 -1
  208. package/dist/components/LinkDocs/LinkDocsListItem.js +1 -1
  209. package/dist/components/LinkDocs/LinkDocsListItem.js.map +1 -1
  210. package/dist/components/LinkDocs/LinkDocsListItem.mobile.d.ts +1 -1
  211. package/dist/components/LinkDocs/LinkDocsListItemBase.d.ts +1 -1
  212. package/dist/components/LinkDocs/LinkDocsVerticalList.d.ts +1 -1
  213. package/dist/components/LinkList/LinkList.d.ts +1 -1
  214. package/dist/components/LinkList/LinkList.js +1 -1
  215. package/dist/components/LinkList/LinkList.js.map +1 -1
  216. package/dist/components/MiniGallery/MiniGallery.d.ts +1 -1
  217. package/dist/components/MobileAppTile/MobileAppTile.d.ts +1 -1
  218. package/dist/components/MobileAppTile/MobileAppTile.js +7 -7
  219. package/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  220. package/dist/components/MobileAppTile/MobileAppTile.mobile.d.ts +1 -1
  221. package/dist/components/MobileAppTile/MobileAppTile.mobile.js +1 -1
  222. package/dist/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  223. package/dist/components/MobileAppTile/MobileAppTileContent.d.ts +4 -11
  224. package/dist/components/Navigation/Navigation.d.ts +1 -1
  225. package/dist/components/Navigation/Navigation.js +1 -1
  226. package/dist/components/Navigation/Navigation.js.map +1 -1
  227. package/dist/components/Navigation/NavigationItem.d.ts +2 -2
  228. package/dist/components/Navigation/NavigationItem.js +1 -1
  229. package/dist/components/Navigation/NavigationItem.js.map +1 -1
  230. package/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +1 -1
  231. package/dist/components/NavigatorTabs/NavigatorTabs.d.ts +1 -1
  232. package/dist/components/OtherProducts/OtherProducts.d.ts +1 -1
  233. package/dist/components/OtherProducts/OtherProductsItem.d.ts +1 -1
  234. package/dist/components/PictureText/PictureText.d.ts +1 -1
  235. package/dist/components/PictureText/PictureText.js +1 -1
  236. package/dist/components/PictureText/PictureText.js.map +1 -1
  237. package/dist/components/Placeholder/Placeholder.d.ts +2 -2
  238. package/dist/components/Placeholder/Placeholder.js +1 -1
  239. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  240. package/dist/components/ProductBlock/ProductBlock.d.ts +1 -1
  241. package/dist/components/ProductBlock/ProductBlock.js +1 -1
  242. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  243. package/dist/components/ProductBlock/ProductBlock.mobile.d.ts +1 -1
  244. package/dist/components/ProductBlock/ProductBlockInner.d.ts +1 -1
  245. package/dist/components/ProductBlock/ProductBlockInner.js +1 -1
  246. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  247. package/dist/components/ProductBlock/ProductBlockInner.mobile.d.ts +1 -1
  248. package/dist/components/ProductBlock/renderBenefit.js +1 -1
  249. package/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  250. package/dist/components/ProductGallery/ProductGallery.d.ts +1 -1
  251. package/dist/components/ProductGallery/ProductGallery.js +3 -2
  252. package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  253. package/dist/components/ProductGallery/ProductGallery.mobile.d.ts +1 -1
  254. package/dist/components/ProductGallery/ProductGalleryBlock.d.ts +1 -1
  255. package/dist/components/ProductTile/ProductTile.d.ts +1 -1
  256. package/dist/components/ProductTile/ProductTile.js +2 -2
  257. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  258. package/dist/components/PromoTile/PromoTile.d.ts +1 -1
  259. package/dist/components/PromoTile/PromoTile.js +1 -1
  260. package/dist/components/PromoTile/PromoTile.js.map +1 -1
  261. package/dist/components/Recommendation/Recommendation.d.ts +1 -1
  262. package/dist/components/Recommendation/Recommendation.js +2 -1
  263. package/dist/components/Recommendation/Recommendation.js.map +1 -1
  264. package/dist/components/Recommendation/RecommendationCard.d.ts +1 -1
  265. package/dist/components/Recommendation/RecommendationCard.js +2 -2
  266. package/dist/components/Recommendation/RecommendationCard.js.map +1 -1
  267. package/dist/components/SafeDepositRental/SafeDepositRental.d.ts +1 -1
  268. package/dist/components/SafeDepositRental/SafeDepositRental.js +3 -2
  269. package/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  270. package/dist/components/SafeDepositRental/SafeDepositRentalForm.d.ts +1 -8
  271. package/dist/components/SafeDepositRental/SafeDepositRentalForm.js +19 -18
  272. package/dist/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -1
  273. package/dist/components/SafeDepositRental/SafeDepositRentalTotal.js +2 -2
  274. package/dist/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  275. package/dist/components/StepsBlock/StepsBlock.d.ts +1 -1
  276. package/dist/components/StepsBlock/StepsBlock.js +2 -2
  277. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  278. package/dist/components/StepsBlock/StepsBlock.mobile.d.ts +1 -1
  279. package/dist/components/StepsBlock/StepsBlock.mobile.js +2 -2
  280. package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  281. package/dist/components/Tabs/Tabs.d.ts +1 -1
  282. package/dist/components/Tabs/Tabs.js +3 -2
  283. package/dist/components/Tabs/Tabs.js.map +1 -1
  284. package/dist/components/Tabs/renderTab.js +2 -2
  285. package/dist/components/Tabs/renderTab.js.map +1 -1
  286. package/dist/components/TariffsTable/TableTileHeader.d.ts +1 -1
  287. package/dist/components/TariffsTable/TariffsTable.d.ts +1 -1
  288. package/dist/components/TariffsTable/TariffsTable.js +2 -1
  289. package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  290. package/dist/components/TariffsTable/TariffsTable.mobile.d.ts +1 -1
  291. package/dist/components/TariffsTable/TariffsTable.mobile.js +1 -1
  292. package/dist/components/TariffsTable/TariffsTable.mobile.js.map +1 -1
  293. package/dist/components/TariffsTable/TariffsTableCell.d.ts +1 -1
  294. package/dist/components/TariffsTable/TariffsTableCell.js +2 -2
  295. package/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  296. package/dist/components/TariffsTable/TariffsTableHorizontal.d.ts +2 -2
  297. package/dist/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  298. package/dist/components/TariffsTable/TariffsTableRow.js +1 -1
  299. package/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  300. package/dist/components/TariffsTable/TariffsTableTileCell.d.ts +1 -1
  301. package/dist/components/TariffsTable/TariffsTableTileCell.js +2 -2
  302. package/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  303. package/dist/components/TariffsTable/TariffsTableVertical.d.ts +2 -2
  304. package/dist/components/TextBlock/TextBlock.d.ts +1 -1
  305. package/dist/components/TextBlock/TextBlock.js +2 -2
  306. package/dist/components/TextBlock/TextBlock.js.map +1 -1
  307. package/dist/components/TextBlock/TextBlock.mobile.d.ts +1 -1
  308. package/dist/components/TextBlock/TextBlock.mobile.js +2 -2
  309. package/dist/components/TextBlock/TextBlock.mobile.js.map +1 -1
  310. package/dist/components/Tile/Tile.d.ts +1 -1
  311. package/dist/components/Tile/Tile.js +1 -1
  312. package/dist/components/Tile/Tile.js.map +1 -1
  313. package/dist/hooks/useExchangeRates.d.ts +1 -2
  314. package/dist/hooks/useExchangeRates.js +3 -2
  315. package/dist/hooks/useExchangeRates.js.map +1 -1
  316. package/dist/hooks/useGeolocation.d.ts +1 -0
  317. package/dist/hooks/useGeolocation.js +21 -0
  318. package/dist/hooks/useGeolocation.js.map +1 -0
  319. package/dist/hooks/useLikeService.d.ts +5 -0
  320. package/dist/hooks/useLikeService.js +29 -0
  321. package/dist/hooks/useLikeService.js.map +1 -0
  322. package/dist/hooks/useLink.d.ts +1 -0
  323. package/dist/hooks/useLink.js +3 -2
  324. package/dist/hooks/useLink.js.map +1 -1
  325. package/dist/hooks/useSafeDepositRental.d.ts +1 -2
  326. package/dist/hooks/useSafeDepositRental.js +3 -2
  327. package/dist/hooks/useSafeDepositRental.js.map +1 -1
  328. package/dist/hooks/useSearch.d.ts +4 -0
  329. package/dist/hooks/useSearch.js +12 -0
  330. package/dist/hooks/useSearch.js.map +1 -0
  331. package/dist/icons/IconName.d.ts +4 -2
  332. package/dist/icons/IconName.js +2 -0
  333. package/dist/icons/IconName.js.map +1 -1
  334. package/dist/index.d.ts +2 -1
  335. package/dist/index.js +5 -3
  336. package/dist/index.js.map +1 -1
  337. package/dist/react/setup-fixture.d.ts +1 -0
  338. package/dist/react/setup-fixture.js +1 -48
  339. package/dist/react/setup-fixture.js.map +1 -1
  340. package/dist/services/sitemap/useSitemap.d.ts +1 -2
  341. package/dist/services/sitemap/useSitemap.js +3 -2
  342. package/dist/services/sitemap/useSitemap.js.map +1 -1
  343. package/dist/ui-kit/BlockWrapper.d.ts +1 -1
  344. package/dist/ui-kit/BlockWrapper.js +3 -2
  345. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  346. package/dist/ui-kit/BlocksList/BlocksListProps.d.ts +0 -2
  347. package/dist/ui-kit/BlocksList/EmbeddableBlocks.d.ts +10 -10
  348. package/dist/ui-kit/BlocksList/EmbeddableBlocks.mobile.d.ts +6 -6
  349. package/dist/ui-kit/Breadcrumb.d.ts +1 -1
  350. package/dist/ui-kit/Button/ArrowButton.d.ts +1 -1
  351. package/dist/ui-kit/Button/Button.d.ts +1 -1
  352. package/dist/ui-kit/Button/Button.mobile.d.ts +1 -1
  353. package/dist/ui-kit/Button/Button.mobile.js +2 -2
  354. package/dist/ui-kit/Button/Button.mobile.js.map +1 -1
  355. package/dist/ui-kit/Button/ButtonInner.d.ts +1 -1
  356. package/dist/ui-kit/Button/ButtonInner.js +1 -1
  357. package/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  358. package/dist/ui-kit/Button/ButtonProps.d.ts +2 -2
  359. package/dist/ui-kit/Button/ButtonSection.d.ts +1 -1
  360. package/dist/ui-kit/Button/LikeButton.d.ts +1 -1
  361. package/dist/ui-kit/Checkbox/Checkbox.d.ts +1 -1
  362. package/dist/ui-kit/Checkbox/Checkbox.js +5 -3
  363. package/dist/ui-kit/Checkbox/Checkbox.js.map +1 -1
  364. package/dist/ui-kit/Description/Description.d.ts +1 -1
  365. package/dist/ui-kit/Foldable/Foldable.d.ts +1 -1
  366. package/dist/ui-kit/Foldable/Foldable.js +2 -3
  367. package/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  368. package/dist/ui-kit/Foldable/useActiveHandler.d.ts +1 -3
  369. package/dist/ui-kit/Foldable/useActiveHandler.js +3 -2
  370. package/dist/ui-kit/Foldable/useActiveHandler.js.map +1 -1
  371. package/dist/ui-kit/HeaderItem/HeaderItem.d.ts +1 -1
  372. package/dist/ui-kit/HeaderItem/HeaderItem.mobile.d.ts +1 -1
  373. package/dist/ui-kit/HeaderItem/HeaderItem.mobile.js +1 -1
  374. package/dist/ui-kit/HeaderItem/HeaderItem.mobile.js.map +1 -1
  375. package/dist/ui-kit/Heading/Heading.d.ts +1 -1
  376. package/dist/ui-kit/Heading/Heading.mobile.d.ts +1 -1
  377. package/dist/ui-kit/Icon/Icon.d.ts +1 -1
  378. package/dist/ui-kit/Img/Img.d.ts +1 -1
  379. package/dist/ui-kit/Img/Img.mobile.d.ts +1 -1
  380. package/dist/ui-kit/Img/Img.mobile.js +2 -2
  381. package/dist/ui-kit/Img/Img.mobile.js.map +1 -1
  382. package/dist/ui-kit/Img/ImgAsPicture.d.ts +1 -1
  383. package/dist/ui-kit/Img/ImgAsPicture.js +1 -1
  384. package/dist/ui-kit/Img/ImgAsPicture.js.map +1 -1
  385. package/dist/ui-kit/Img/ImgInner.d.ts +1 -1
  386. package/dist/ui-kit/Input/Input.d.ts +1 -1
  387. package/dist/ui-kit/InputRange/InputRange.d.ts +1 -1
  388. package/dist/ui-kit/InputRange/InputRange.js +4 -3
  389. package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  390. package/dist/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
  391. package/dist/ui-kit/List/List.d.ts +1 -1
  392. package/dist/ui-kit/List/ListItem.d.ts +1 -1
  393. package/dist/ui-kit/Logo/Logo.d.ts +1 -1
  394. package/dist/ui-kit/Logo/Logo.mobile.d.ts +1 -1
  395. package/dist/ui-kit/Logo/Logo.mobile.js +1 -1
  396. package/dist/ui-kit/Logo/Logo.mobile.js.map +1 -1
  397. package/dist/ui-kit/Radio/Radio.d.ts +1 -1
  398. package/dist/ui-kit/Radio/Radio.js +1 -1
  399. package/dist/ui-kit/Radio/Radio.js.map +1 -1
  400. package/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -1
  401. package/dist/ui-kit/SVG.d.ts +1 -1
  402. package/dist/ui-kit/SearchBar/SearchBar.d.ts +1 -1
  403. package/dist/ui-kit/SearchBar/SearchBar.js +2 -2
  404. package/dist/ui-kit/SearchBar/SearchBar.js.map +1 -1
  405. package/dist/ui-kit/SearchBar/SearchBar.mobile.d.ts +1 -1
  406. package/dist/ui-kit/SearchBar/SearchBar.mobile.js +2 -2
  407. package/dist/ui-kit/SearchBar/SearchBar.mobile.js.map +1 -1
  408. package/dist/ui-kit/SearchBar/SearchBarInner.d.ts +3 -3
  409. package/dist/ui-kit/SearchBar/SearchBarInner.js +6 -7
  410. package/dist/ui-kit/SearchBar/SearchBarInner.js.map +1 -1
  411. package/dist/ui-kit/Select/Select.d.ts +1 -1
  412. package/dist/ui-kit/Select/SelectOption.d.ts +1 -1
  413. package/dist/ui-kit/SwipeListControl/SwipeListControl.d.ts +1 -1
  414. package/dist/ui-kit/SwipeListControl/SwipeListControl.js +4 -3
  415. package/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  416. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +1 -1
  417. package/dist/ui-kit/SwipeListControl/SwipeListControlItem.d.ts +1 -1
  418. package/dist/ui-kit/SwipeListControl/SwipeListControlList.d.ts +1 -1
  419. package/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.d.ts +1 -1
  420. package/dist/ui-kit/Tabs/Tabs.d.ts +1 -1
  421. package/dist/ui-kit/Tabs/Tabs.js +2 -2
  422. package/dist/ui-kit/Tabs/Tabs.js.map +1 -1
  423. package/dist/ui-kit/TopItem/TopItem.d.ts +1 -1
  424. package/dist/ui-kit/TopItem/TopItem.js +1 -1
  425. package/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  426. package/lib/common.css +1 -1
  427. package/lib/components/Accordion/Accordion.d.ts +1 -1
  428. package/lib/components/Accordion/Accordion.js +1 -1
  429. package/lib/components/Accordion/Accordion.js.map +1 -1
  430. package/lib/components/Accordion/Accordion.mobile.d.ts +1 -1
  431. package/lib/components/Accordion/Accordion.mobile.js +1 -1
  432. package/lib/components/Accordion/Accordion.mobile.js.map +1 -1
  433. package/lib/components/Accordion/AccordionItem.d.ts +1 -1
  434. package/lib/components/Accordion/AccordionItem.js +3 -4
  435. package/lib/components/Accordion/AccordionItem.js.map +1 -1
  436. package/lib/components/Accordion/AccordionItem.mobile.d.ts +1 -1
  437. package/lib/components/Accordion/AccordionItem.mobile.js +2 -5
  438. package/lib/components/Accordion/AccordionItem.mobile.js.map +1 -1
  439. package/lib/components/Accordion/AccordionItemInner.d.ts +1 -1
  440. package/lib/components/Accordion/AccordionItemInner.js +1 -1
  441. package/lib/components/Accordion/AccordionItemInner.js.map +1 -1
  442. package/lib/components/Accordion/AccordionItemInner.mobile.d.ts +1 -1
  443. package/lib/components/Accordion/useActiveHandler.d.ts +1 -1
  444. package/lib/components/Accordion/useActiveHandler.js +3 -2
  445. package/lib/components/Accordion/useActiveHandler.js.map +1 -1
  446. package/lib/components/BaseTile/BaseTile.d.ts +1 -1
  447. package/lib/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  448. package/lib/components/BenefitsBlock/BenefitsBlock.fixture.d.ts +2 -1
  449. package/lib/components/BenefitsBlock/BenefitsBlock.js +4 -4
  450. package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  451. package/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +4 -4
  452. package/lib/components/Blocks.d.ts +35 -35
  453. package/lib/components/Blocks.mobile.d.ts +16 -16
  454. package/lib/components/Bonus/Bonus.d.ts +1 -1
  455. package/lib/components/Bonus/Bonus.js +3 -3
  456. package/lib/components/Bonus/Bonus.js.map +1 -1
  457. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.d.ts +1 -1
  458. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +3 -3
  459. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  460. package/lib/components/Calculator/BonusCalculatorForm.d.ts +1 -1
  461. package/lib/components/Calculator/BonusCalculatorForm.js +4 -3
  462. package/lib/components/Calculator/BonusCalculatorForm.js.map +1 -1
  463. package/lib/components/Calculator/Calculator.d.ts +1 -1
  464. package/lib/components/Calculator/Calculator.js +7 -6
  465. package/lib/components/Calculator/Calculator.js.map +1 -1
  466. package/lib/components/Calculator/CalculatorValueBlock.d.ts +1 -1
  467. package/lib/components/Calculator/CreditCalculatorForm.d.ts +1 -1
  468. package/lib/components/Calculator/CreditCalculatorForm.js +8 -7
  469. package/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
  470. package/lib/components/Calculator/DepositCalculatorForm.d.ts +1 -1
  471. package/lib/components/Calculator/DepositCalculatorForm.js +3 -2
  472. package/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  473. package/lib/components/Calculator/EmbeddableCalcBlocks.d.ts +4 -4
  474. package/lib/components/Calculator/MortgageCalculatorForm.d.ts +1 -1
  475. package/lib/components/Calculator/MortgageCalculatorForm.js +5 -4
  476. package/lib/components/Calculator/MortgageCalculatorForm.js.map +1 -1
  477. package/lib/components/Calculator/Rate.d.ts +1 -1
  478. package/lib/components/Calculator/renderCalculatorBlock.js +1 -1
  479. package/lib/components/Calculator/renderCalculatorBlock.js.map +1 -1
  480. package/lib/components/Calculator/useBonusCalculatorParams.d.ts +1 -2
  481. package/lib/components/Calculator/useBonusCalculatorParams.js +3 -2
  482. package/lib/components/Calculator/useBonusCalculatorParams.js.map +1 -1
  483. package/lib/components/Calculator/useCalculatorParams.d.ts +1 -2
  484. package/lib/components/Calculator/useCalculatorParams.js +2 -1
  485. package/lib/components/Calculator/useCalculatorParams.js.map +1 -1
  486. package/lib/components/Calculator/useCreditCalculatorParams.d.ts +1 -2
  487. package/lib/components/Calculator/useCreditCalculatorParams.js +2 -2
  488. package/lib/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  489. package/lib/components/Catalog/Catalog.d.ts +1 -1
  490. package/lib/components/Catalog/Catalog.js +4 -4
  491. package/lib/components/Catalog/Catalog.js.map +1 -1
  492. package/lib/components/Catalog/CatalogCard.d.ts +1 -1
  493. package/lib/components/Catalog/CatalogCard.js +1 -1
  494. package/lib/components/Catalog/CatalogCard.js.map +1 -1
  495. package/lib/components/ComparisonTable/ComparisonTable.d.ts +1 -1
  496. package/lib/components/ComparisonTable/ComparisonTable.js +3 -2
  497. package/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  498. package/lib/components/ComparisonTable/ComparisonTable.mobile.d.ts +1 -1
  499. package/lib/components/ComparisonTable/ComparisonTable.mobile.js +2 -1
  500. package/lib/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  501. package/lib/components/ComparisonTable/ComparisonTableBody.d.ts +1 -1
  502. package/lib/components/ComparisonTable/ComparisonTableBody.js +3 -2
  503. package/lib/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  504. package/lib/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  505. package/lib/components/ComparisonTable/ComparisonTableRows.d.ts +1 -1
  506. package/lib/components/ComparisonTable/HeaderCell.d.ts +1 -1
  507. package/lib/components/ComparisonTable/HeaderCell.js +1 -1
  508. package/lib/components/ComparisonTable/HeaderCell.js.map +1 -1
  509. package/lib/components/ComparisonTable/HeaderCell.mobile.d.ts +1 -1
  510. package/lib/components/ComparisonTable/HeaderCell.mobile.js +1 -1
  511. package/lib/components/ComparisonTable/HeaderCell.mobile.js.map +1 -1
  512. package/lib/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  513. package/lib/components/ComparisonTable/TableCell.d.ts +1 -1
  514. package/lib/components/ComparisonTable/TableCell.js +2 -2
  515. package/lib/components/ComparisonTable/TableCell.js.map +1 -1
  516. package/lib/components/ComparisonTable/TableCell.mobile.d.ts +1 -1
  517. package/lib/components/ComparisonTable/TableCell.mobile.js +1 -1
  518. package/lib/components/ComparisonTable/TableCell.mobile.js.map +1 -1
  519. package/lib/components/ComparisonTable/TableColumn.d.ts +1 -1
  520. package/lib/components/ComparisonTable/TableColumn.js +2 -2
  521. package/lib/components/ComparisonTable/TableColumn.js.map +1 -1
  522. package/lib/components/ComparisonTable/TableRow.d.ts +1 -1
  523. package/lib/components/ComparisonTable/TableRow.js +1 -1
  524. package/lib/components/ComparisonTable/TableRow.js.map +1 -1
  525. package/lib/components/ComparisonTable/TableRowContainer.d.ts +1 -4
  526. package/lib/components/ContentPage/ContentPage.d.ts +3 -3
  527. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  528. package/lib/components/ContentPage/ContentPageContext.d.ts +1 -19
  529. package/lib/components/ContentPage/ContentPageHead.d.ts +1 -1
  530. package/lib/components/ExchangeRateTile/CurrencyTable.d.ts +1 -1
  531. package/lib/components/ExchangeRateTile/CurrencyTable.js +1 -1
  532. package/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  533. package/lib/components/ExchangeRateTile/CurrentLocation.d.ts +1 -1
  534. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +1 -1
  535. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +4 -3
  536. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  537. package/lib/components/ExchangeRateTile/ExchangeRateTile.d.ts +1 -1
  538. package/lib/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  539. package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  540. package/lib/components/Footer/Contacts.d.ts +1 -1
  541. package/lib/components/Footer/Footer.d.ts +1 -1
  542. package/lib/components/Footer/Footer.mobile.d.ts +1 -1
  543. package/lib/components/Footer/Footer.mobile.js +2 -2
  544. package/lib/components/Footer/Footer.mobile.js.map +1 -1
  545. package/lib/components/Footer/HorizontalNavigation.d.ts +1 -1
  546. package/lib/components/Footer/HorizontalNavigation.mobile.d.ts +1 -1
  547. package/lib/components/Footer/HorizontalNavigation.mobile.js +1 -1
  548. package/lib/components/Footer/HorizontalNavigation.mobile.js.map +1 -1
  549. package/lib/components/Footer/HorizontalNavigationLink.d.ts +1 -1
  550. package/lib/components/Footer/MediaButton.d.ts +1 -1
  551. package/lib/components/Footer/Sitemap.d.ts +1 -1
  552. package/lib/components/Footer/Sitemap.js +2 -2
  553. package/lib/components/Footer/Sitemap.js.map +1 -1
  554. package/lib/components/Footer/SocialMedia.d.ts +1 -1
  555. package/lib/components/Footer/SocialMedia.mobile.d.ts +1 -1
  556. package/lib/components/Footer/TextInformation.d.ts +1 -1
  557. package/lib/components/Footer/TextInformation.js +1 -1
  558. package/lib/components/Footer/TextInformation.js.map +1 -1
  559. package/lib/components/Footer/TextInformation.mobile.d.ts +1 -1
  560. package/lib/components/Footer/TextInformation.mobile.js +1 -1
  561. package/lib/components/Footer/TextInformation.mobile.js.map +1 -1
  562. package/lib/components/Footer/TextInformationLink.d.ts +1 -1
  563. package/lib/components/Footer/TextInformationLink.js +1 -1
  564. package/lib/components/Footer/TextInformationLink.js.map +1 -1
  565. package/lib/components/Gallery/Gallery.d.ts +1 -1
  566. package/lib/components/Gallery/Gallery.mobile.d.ts +1 -1
  567. package/lib/components/Gallery/Gallery.mobile.js +4 -4
  568. package/lib/components/Gallery/Gallery.mobile.js.map +1 -1
  569. package/lib/components/Gallery/GalleryCardInner.d.ts +1 -1
  570. package/lib/components/Gallery/GalleryCardInner.js +1 -1
  571. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  572. package/lib/components/Gallery/GalleryContainer.d.ts +1 -1
  573. package/lib/components/Gallery/GalleryContainer.js +2 -2
  574. package/lib/components/Gallery/GalleryContainer.js.map +1 -1
  575. package/lib/components/Gallery/GalleryInner.d.ts +1 -1
  576. package/lib/components/Gallery/GalleryInner.js +2 -1
  577. package/lib/components/Gallery/GalleryInner.js.map +1 -1
  578. package/lib/components/GracePeriod/GracePeriod.d.ts +1 -1
  579. package/lib/components/GracePeriod/GracePeriod.js +4 -4
  580. package/lib/components/GracePeriod/GracePeriod.js.map +1 -1
  581. package/lib/components/GroupBlock/EmbeddableGroupBlocks.d.ts +2 -2
  582. package/lib/components/GroupBlock/GroupBlock.d.ts +1 -1
  583. package/lib/components/GroupBlock/GroupBlock.js +2 -1
  584. package/lib/components/GroupBlock/GroupBlock.js.map +1 -1
  585. package/lib/components/GroupBlock/GroupBlockTabs.d.ts +1 -1
  586. package/lib/components/GroupBlock/GroupBlockTabs.js +2 -2
  587. package/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  588. package/lib/components/GroupBlock/GroupBlocksItem.d.ts +1 -1
  589. package/lib/components/Header/DropdownMenu.d.ts +1 -1
  590. package/lib/components/Header/Header.d.ts +1 -1
  591. package/lib/components/Header/Header.js +2 -2
  592. package/lib/components/Header/Header.js.map +1 -1
  593. package/lib/components/Header/Header.mobile.d.ts +1 -1
  594. package/lib/components/Header/Header.mobile.js +4 -3
  595. package/lib/components/Header/Header.mobile.js.map +1 -1
  596. package/lib/components/Header/HeaderBurger.d.ts +1 -1
  597. package/lib/components/Header/HeaderBurger.js +4 -3
  598. package/lib/components/Header/HeaderBurger.js.map +1 -1
  599. package/lib/components/Header/HeaderSecondaryMenu.d.ts +3 -3
  600. package/lib/components/Header/HeaderSecondaryMenu.js +3 -2
  601. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  602. package/lib/components/Header/HeaderSecondaryMenuButton.d.ts +1 -1
  603. package/lib/components/Header/HeaderSubMenu.d.ts +1 -1
  604. package/lib/components/Header/HeaderSubMenu.js +3 -2
  605. package/lib/components/Header/HeaderSubMenu.js.map +1 -1
  606. package/lib/components/Header/HeaderTop.d.ts +1 -1
  607. package/lib/components/Header/HeaderTop.js +1 -1
  608. package/lib/components/Header/HeaderTop.js.map +1 -1
  609. package/lib/components/Headline/Headline.d.ts +1 -1
  610. package/lib/components/Headline/Headline.fixture.d.ts +1 -1
  611. package/lib/components/Headline/Headline.fixture.mobile.d.ts +1 -1
  612. package/lib/components/Headline/Headline.mobile.d.ts +1 -1
  613. package/lib/components/Headline/Headline.mobile.js +1 -1
  614. package/lib/components/Headline/Headline.mobile.js.map +1 -1
  615. package/lib/components/Headline/constants.js +1 -1
  616. package/lib/components/Headline/constants.js.map +1 -1
  617. package/lib/components/Insurance/Insurance.d.ts +1 -1
  618. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.d.ts +1 -1
  619. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +7 -5
  620. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  621. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +3 -0
  622. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +3 -1
  623. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +5 -4
  624. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  625. package/lib/components/LikeControl/LikeControl.d.ts +1 -1
  626. package/lib/components/LikeControl/LikeControl.js +6 -2
  627. package/lib/components/LikeControl/LikeControl.js.map +1 -1
  628. package/lib/components/LinkDocs/LinkDocs.d.ts +1 -1
  629. package/lib/components/LinkDocs/LinkDocs.mobile.d.ts +1 -1
  630. package/lib/components/LinkDocs/LinkDocsHorizontalList.d.ts +1 -1
  631. package/lib/components/LinkDocs/LinkDocsList.d.ts +1 -1
  632. package/lib/components/LinkDocs/LinkDocsListItem.d.ts +1 -1
  633. package/lib/components/LinkDocs/LinkDocsListItem.js +1 -1
  634. package/lib/components/LinkDocs/LinkDocsListItem.js.map +1 -1
  635. package/lib/components/LinkDocs/LinkDocsListItem.mobile.d.ts +1 -1
  636. package/lib/components/LinkDocs/LinkDocsListItemBase.d.ts +1 -1
  637. package/lib/components/LinkDocs/LinkDocsVerticalList.d.ts +1 -1
  638. package/lib/components/LinkList/LinkList.d.ts +1 -1
  639. package/lib/components/LinkList/LinkList.js +1 -1
  640. package/lib/components/LinkList/LinkList.js.map +1 -1
  641. package/lib/components/MiniGallery/MiniGallery.d.ts +1 -1
  642. package/lib/components/MobileAppTile/MobileAppTile.d.ts +1 -1
  643. package/lib/components/MobileAppTile/MobileAppTile.fixture.d.ts +1 -0
  644. package/lib/components/MobileAppTile/MobileAppTile.js +7 -7
  645. package/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  646. package/lib/components/MobileAppTile/MobileAppTile.mobile.d.ts +1 -1
  647. package/lib/components/MobileAppTile/MobileAppTile.mobile.js +1 -1
  648. package/lib/components/MobileAppTile/MobileAppTile.mobile.js.map +1 -1
  649. package/lib/components/MobileAppTile/MobileAppTileContent.d.ts +4 -11
  650. package/lib/components/Navigation/Navigation.d.ts +1 -1
  651. package/lib/components/Navigation/Navigation.js +1 -1
  652. package/lib/components/Navigation/Navigation.js.map +1 -1
  653. package/lib/components/Navigation/NavigationItem.d.ts +2 -2
  654. package/lib/components/Navigation/NavigationItem.js +1 -1
  655. package/lib/components/Navigation/NavigationItem.js.map +1 -1
  656. package/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +1 -1
  657. package/lib/components/NavigatorTabs/NavigatorTabs.d.ts +1 -1
  658. package/lib/components/OtherProducts/OtherProducts.d.ts +1 -1
  659. package/lib/components/OtherProducts/OtherProductsItem.d.ts +1 -1
  660. package/lib/components/PictureText/PictureText.d.ts +1 -1
  661. package/lib/components/PictureText/PictureText.js +1 -1
  662. package/lib/components/PictureText/PictureText.js.map +1 -1
  663. package/lib/components/Placeholder/Placeholder.d.ts +2 -2
  664. package/lib/components/Placeholder/Placeholder.js +1 -1
  665. package/lib/components/Placeholder/Placeholder.js.map +1 -1
  666. package/lib/components/ProductBlock/ProductBlock.d.ts +1 -1
  667. package/lib/components/ProductBlock/ProductBlock.js +1 -1
  668. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  669. package/lib/components/ProductBlock/ProductBlock.mobile.d.ts +1 -1
  670. package/lib/components/ProductBlock/ProductBlockInner.d.ts +1 -1
  671. package/lib/components/ProductBlock/ProductBlockInner.js +1 -1
  672. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  673. package/lib/components/ProductBlock/ProductBlockInner.mobile.d.ts +1 -1
  674. package/lib/components/ProductBlock/renderBenefit.js +1 -1
  675. package/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  676. package/lib/components/ProductGallery/ProductGallery.d.ts +1 -1
  677. package/lib/components/ProductGallery/ProductGallery.js +3 -2
  678. package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  679. package/lib/components/ProductGallery/ProductGallery.mobile.d.ts +1 -1
  680. package/lib/components/ProductGallery/ProductGalleryBlock.d.ts +1 -1
  681. package/lib/components/ProductTile/ProductTile.d.ts +1 -1
  682. package/lib/components/ProductTile/ProductTile.js +2 -2
  683. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  684. package/lib/components/PromoTile/PromoTile.d.ts +1 -1
  685. package/lib/components/PromoTile/PromoTile.js +1 -1
  686. package/lib/components/PromoTile/PromoTile.js.map +1 -1
  687. package/lib/components/Recommendation/Recommendation.d.ts +1 -1
  688. package/lib/components/Recommendation/Recommendation.js +2 -1
  689. package/lib/components/Recommendation/Recommendation.js.map +1 -1
  690. package/lib/components/Recommendation/RecommendationCard.d.ts +1 -1
  691. package/lib/components/Recommendation/RecommendationCard.js +2 -2
  692. package/lib/components/Recommendation/RecommendationCard.js.map +1 -1
  693. package/lib/components/SafeDepositRental/SafeDepositRental.d.ts +1 -1
  694. package/lib/components/SafeDepositRental/SafeDepositRental.js +3 -2
  695. package/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  696. package/lib/components/SafeDepositRental/SafeDepositRentalForm.d.ts +1 -8
  697. package/lib/components/SafeDepositRental/SafeDepositRentalForm.js +19 -17
  698. package/lib/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -1
  699. package/lib/components/SafeDepositRental/SafeDepositRentalTotal.js +2 -2
  700. package/lib/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  701. package/lib/components/StepsBlock/StepsBlock.d.ts +1 -1
  702. package/lib/components/StepsBlock/StepsBlock.js +2 -2
  703. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  704. package/lib/components/StepsBlock/StepsBlock.mobile.d.ts +1 -1
  705. package/lib/components/StepsBlock/StepsBlock.mobile.js +2 -2
  706. package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  707. package/lib/components/Tabs/Tabs.d.ts +1 -1
  708. package/lib/components/Tabs/Tabs.js +3 -2
  709. package/lib/components/Tabs/Tabs.js.map +1 -1
  710. package/lib/components/Tabs/renderTab.js +2 -2
  711. package/lib/components/Tabs/renderTab.js.map +1 -1
  712. package/lib/components/TariffsTable/TableTileHeader.d.ts +1 -1
  713. package/lib/components/TariffsTable/TariffsTable.d.ts +1 -1
  714. package/lib/components/TariffsTable/TariffsTable.js +2 -1
  715. package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  716. package/lib/components/TariffsTable/TariffsTable.mobile.d.ts +1 -1
  717. package/lib/components/TariffsTable/TariffsTable.mobile.js +1 -1
  718. package/lib/components/TariffsTable/TariffsTable.mobile.js.map +1 -1
  719. package/lib/components/TariffsTable/TariffsTableCell.d.ts +1 -1
  720. package/lib/components/TariffsTable/TariffsTableCell.js +2 -2
  721. package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  722. package/lib/components/TariffsTable/TariffsTableHorizontal.d.ts +2 -2
  723. package/lib/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  724. package/lib/components/TariffsTable/TariffsTableRow.js +1 -1
  725. package/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  726. package/lib/components/TariffsTable/TariffsTableTileCell.d.ts +1 -1
  727. package/lib/components/TariffsTable/TariffsTableTileCell.js +2 -2
  728. package/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  729. package/lib/components/TariffsTable/TariffsTableVertical.d.ts +2 -2
  730. package/lib/components/TextBlock/TextBlock.d.ts +1 -1
  731. package/lib/components/TextBlock/TextBlock.js +2 -2
  732. package/lib/components/TextBlock/TextBlock.js.map +1 -1
  733. package/lib/components/TextBlock/TextBlock.mobile.d.ts +1 -1
  734. package/lib/components/TextBlock/TextBlock.mobile.js +2 -2
  735. package/lib/components/TextBlock/TextBlock.mobile.js.map +1 -1
  736. package/lib/components/Tile/Tile.d.ts +1 -1
  737. package/lib/components/Tile/Tile.js +1 -1
  738. package/lib/components/Tile/Tile.js.map +1 -1
  739. package/lib/hooks/useExchangeRates.d.ts +1 -2
  740. package/lib/hooks/useExchangeRates.js +2 -1
  741. package/lib/hooks/useExchangeRates.js.map +1 -1
  742. package/lib/hooks/useGeolocation.d.ts +1 -0
  743. package/lib/hooks/useGeolocation.js +18 -0
  744. package/lib/hooks/useGeolocation.js.map +1 -0
  745. package/lib/hooks/useLikeService.d.ts +5 -0
  746. package/lib/hooks/useLikeService.js +26 -0
  747. package/lib/hooks/useLikeService.js.map +1 -0
  748. package/lib/hooks/useLink.d.ts +1 -0
  749. package/lib/hooks/useLink.js +1 -1
  750. package/lib/hooks/useLink.js.map +1 -1
  751. package/lib/hooks/useSafeDepositRental.d.ts +1 -2
  752. package/lib/hooks/useSafeDepositRental.js +2 -1
  753. package/lib/hooks/useSafeDepositRental.js.map +1 -1
  754. package/lib/hooks/useSearch.d.ts +4 -0
  755. package/lib/hooks/useSearch.js +9 -0
  756. package/lib/hooks/useSearch.js.map +1 -0
  757. package/lib/icons/IconName.d.ts +4 -2
  758. package/lib/icons/IconName.js +2 -0
  759. package/lib/icons/IconName.js.map +1 -1
  760. package/lib/index.d.ts +2 -1
  761. package/lib/index.js +2 -1
  762. package/lib/index.js.map +1 -1
  763. package/lib/react/setup-fixture.d.ts +1 -0
  764. package/lib/react/setup-fixture.js +2 -46
  765. package/lib/react/setup-fixture.js.map +1 -1
  766. package/lib/services/sitemap/useSitemap.d.ts +1 -2
  767. package/lib/services/sitemap/useSitemap.js +2 -1
  768. package/lib/services/sitemap/useSitemap.js.map +1 -1
  769. package/lib/ui-kit/BlockWrapper.d.ts +1 -1
  770. package/lib/ui-kit/BlockWrapper.js +3 -2
  771. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  772. package/lib/ui-kit/BlocksList/BlocksListProps.d.ts +0 -2
  773. package/lib/ui-kit/BlocksList/EmbeddableBlocks.d.ts +10 -10
  774. package/lib/ui-kit/BlocksList/EmbeddableBlocks.mobile.d.ts +6 -6
  775. package/lib/ui-kit/Breadcrumb.d.ts +1 -1
  776. package/lib/ui-kit/Button/ArrowButton.d.ts +1 -1
  777. package/lib/ui-kit/Button/Button.d.ts +1 -1
  778. package/lib/ui-kit/Button/Button.mobile.d.ts +1 -1
  779. package/lib/ui-kit/Button/Button.mobile.js +2 -2
  780. package/lib/ui-kit/Button/Button.mobile.js.map +1 -1
  781. package/lib/ui-kit/Button/ButtonInner.d.ts +1 -1
  782. package/lib/ui-kit/Button/ButtonInner.js +1 -1
  783. package/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  784. package/lib/ui-kit/Button/ButtonProps.d.ts +2 -2
  785. package/lib/ui-kit/Button/ButtonSection.d.ts +1 -1
  786. package/lib/ui-kit/Button/LikeButton.d.ts +1 -1
  787. package/lib/ui-kit/Checkbox/Checkbox.d.ts +1 -1
  788. package/lib/ui-kit/Checkbox/Checkbox.js +5 -3
  789. package/lib/ui-kit/Checkbox/Checkbox.js.map +1 -1
  790. package/lib/ui-kit/Description/Description.d.ts +1 -1
  791. package/lib/ui-kit/Foldable/Foldable.d.ts +1 -1
  792. package/lib/ui-kit/Foldable/Foldable.js +2 -3
  793. package/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  794. package/lib/ui-kit/Foldable/useActiveHandler.d.ts +1 -3
  795. package/lib/ui-kit/Foldable/useActiveHandler.js +3 -2
  796. package/lib/ui-kit/Foldable/useActiveHandler.js.map +1 -1
  797. package/lib/ui-kit/HeaderItem/HeaderItem.d.ts +1 -1
  798. package/lib/ui-kit/HeaderItem/HeaderItem.mobile.d.ts +1 -1
  799. package/lib/ui-kit/HeaderItem/HeaderItem.mobile.js +1 -1
  800. package/lib/ui-kit/HeaderItem/HeaderItem.mobile.js.map +1 -1
  801. package/lib/ui-kit/Heading/Heading.d.ts +1 -1
  802. package/lib/ui-kit/Heading/Heading.mobile.d.ts +1 -1
  803. package/lib/ui-kit/Icon/Icon.d.ts +1 -1
  804. package/lib/ui-kit/Img/Img.d.ts +1 -1
  805. package/lib/ui-kit/Img/Img.mobile.d.ts +1 -1
  806. package/lib/ui-kit/Img/Img.mobile.js +2 -2
  807. package/lib/ui-kit/Img/Img.mobile.js.map +1 -1
  808. package/lib/ui-kit/Img/ImgAsPicture.d.ts +1 -1
  809. package/lib/ui-kit/Img/ImgAsPicture.js +1 -1
  810. package/lib/ui-kit/Img/ImgAsPicture.js.map +1 -1
  811. package/lib/ui-kit/Img/ImgInner.d.ts +1 -1
  812. package/lib/ui-kit/Input/Input.d.ts +1 -1
  813. package/lib/ui-kit/InputRange/InputRange.d.ts +1 -1
  814. package/lib/ui-kit/InputRange/InputRange.js +4 -3
  815. package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  816. package/lib/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
  817. package/lib/ui-kit/List/List.d.ts +1 -1
  818. package/lib/ui-kit/List/ListItem.d.ts +1 -1
  819. package/lib/ui-kit/Logo/Logo.d.ts +1 -1
  820. package/lib/ui-kit/Logo/Logo.mobile.d.ts +1 -1
  821. package/lib/ui-kit/Logo/Logo.mobile.js +1 -1
  822. package/lib/ui-kit/Logo/Logo.mobile.js.map +1 -1
  823. package/lib/ui-kit/Radio/Radio.d.ts +1 -1
  824. package/lib/ui-kit/Radio/Radio.js +1 -1
  825. package/lib/ui-kit/Radio/Radio.js.map +1 -1
  826. package/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -1
  827. package/lib/ui-kit/SVG.d.ts +1 -1
  828. package/lib/ui-kit/SearchBar/SearchBar.d.ts +1 -1
  829. package/lib/ui-kit/SearchBar/SearchBar.js +2 -2
  830. package/lib/ui-kit/SearchBar/SearchBar.js.map +1 -1
  831. package/lib/ui-kit/SearchBar/SearchBar.mobile.d.ts +1 -1
  832. package/lib/ui-kit/SearchBar/SearchBar.mobile.js +2 -2
  833. package/lib/ui-kit/SearchBar/SearchBar.mobile.js.map +1 -1
  834. package/lib/ui-kit/SearchBar/SearchBarInner.d.ts +3 -3
  835. package/lib/ui-kit/SearchBar/SearchBarInner.js +6 -7
  836. package/lib/ui-kit/SearchBar/SearchBarInner.js.map +1 -1
  837. package/lib/ui-kit/Select/Select.d.ts +1 -1
  838. package/lib/ui-kit/Select/SelectOption.d.ts +1 -1
  839. package/lib/ui-kit/SwipeListControl/SwipeListControl.d.ts +1 -1
  840. package/lib/ui-kit/SwipeListControl/SwipeListControl.js +4 -3
  841. package/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  842. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +1 -1
  843. package/lib/ui-kit/SwipeListControl/SwipeListControlItem.d.ts +1 -1
  844. package/lib/ui-kit/SwipeListControl/SwipeListControlList.d.ts +1 -1
  845. package/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.d.ts +1 -1
  846. package/lib/ui-kit/Tabs/Tabs.d.ts +1 -1
  847. package/lib/ui-kit/Tabs/Tabs.js +2 -2
  848. package/lib/ui-kit/Tabs/Tabs.js.map +1 -1
  849. package/lib/ui-kit/TopItem/TopItem.d.ts +1 -1
  850. package/lib/ui-kit/TopItem/TopItem.js +1 -1
  851. package/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  852. package/mobile/bundle/bundle.umd.js +1902 -1797
  853. package/mobile/bundle/bundle.umd.min.js +1 -1
  854. package/mobile/dist/components/Accordion/Accordion.d.ts +1 -1
  855. package/mobile/dist/components/Accordion/Accordion.js +1 -1
  856. package/mobile/dist/components/Accordion/Accordion.js.map +1 -1
  857. package/mobile/dist/components/Accordion/AccordionItem.d.ts +1 -1
  858. package/mobile/dist/components/Accordion/AccordionItem.js +2 -5
  859. package/mobile/dist/components/Accordion/AccordionItem.js.map +1 -1
  860. package/mobile/dist/components/Accordion/AccordionItemInner.d.ts +1 -1
  861. package/mobile/dist/components/Accordion/useActiveHandler.d.ts +1 -1
  862. package/mobile/dist/components/Accordion/useActiveHandler.js +3 -2
  863. package/mobile/dist/components/Accordion/useActiveHandler.js.map +1 -1
  864. package/mobile/dist/components/BaseTile/BaseTile.d.ts +1 -1
  865. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  866. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +4 -4
  867. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  868. package/mobile/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +4 -4
  869. package/mobile/dist/components/Blocks.d.ts +16 -16
  870. package/mobile/dist/components/Bonus/Bonus.d.ts +1 -1
  871. package/mobile/dist/components/Bonus/Bonus.js +3 -3
  872. package/mobile/dist/components/Bonus/Bonus.js.map +1 -1
  873. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.d.ts +1 -1
  874. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +3 -3
  875. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  876. package/mobile/dist/components/Calculator/BonusCalculatorForm.d.ts +1 -1
  877. package/mobile/dist/components/Calculator/BonusCalculatorForm.js +4 -3
  878. package/mobile/dist/components/Calculator/BonusCalculatorForm.js.map +1 -1
  879. package/mobile/dist/components/Calculator/Calculator.d.ts +1 -1
  880. package/mobile/dist/components/Calculator/Calculator.js +7 -6
  881. package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
  882. package/mobile/dist/components/Calculator/CalculatorValueBlock.d.ts +1 -1
  883. package/mobile/dist/components/Calculator/CreditCalculatorForm.d.ts +1 -1
  884. package/mobile/dist/components/Calculator/CreditCalculatorForm.js +8 -7
  885. package/mobile/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
  886. package/mobile/dist/components/Calculator/DepositCalculatorForm.d.ts +1 -1
  887. package/mobile/dist/components/Calculator/DepositCalculatorForm.js +3 -2
  888. package/mobile/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  889. package/mobile/dist/components/Calculator/EmbeddableCalcBlocks.d.ts +4 -4
  890. package/mobile/dist/components/Calculator/MortgageCalculatorForm.d.ts +1 -1
  891. package/mobile/dist/components/Calculator/MortgageCalculatorForm.js +5 -4
  892. package/mobile/dist/components/Calculator/MortgageCalculatorForm.js.map +1 -1
  893. package/mobile/dist/components/Calculator/Rate.d.ts +1 -1
  894. package/mobile/dist/components/Calculator/renderCalculatorBlock.js +1 -1
  895. package/mobile/dist/components/Calculator/renderCalculatorBlock.js.map +1 -1
  896. package/mobile/dist/components/Calculator/useBonusCalculatorParams.d.ts +1 -2
  897. package/mobile/dist/components/Calculator/useBonusCalculatorParams.js +3 -2
  898. package/mobile/dist/components/Calculator/useBonusCalculatorParams.js.map +1 -1
  899. package/mobile/dist/components/Calculator/useCalculatorParams.d.ts +1 -2
  900. package/mobile/dist/components/Calculator/useCalculatorParams.js +3 -2
  901. package/mobile/dist/components/Calculator/useCalculatorParams.js.map +1 -1
  902. package/mobile/dist/components/Calculator/useCreditCalculatorParams.d.ts +1 -2
  903. package/mobile/dist/components/Calculator/useCreditCalculatorParams.js +2 -2
  904. package/mobile/dist/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  905. package/mobile/dist/components/Catalog/Catalog.d.ts +1 -1
  906. package/mobile/dist/components/Catalog/Catalog.js +4 -4
  907. package/mobile/dist/components/Catalog/Catalog.js.map +1 -1
  908. package/mobile/dist/components/Catalog/CatalogCard.d.ts +1 -1
  909. package/mobile/dist/components/Catalog/CatalogCard.js +1 -1
  910. package/mobile/dist/components/Catalog/CatalogCard.js.map +1 -1
  911. package/mobile/dist/components/ComparisonTable/ComparisonTable.d.ts +1 -1
  912. package/mobile/dist/components/ComparisonTable/ComparisonTable.js +2 -1
  913. package/mobile/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
  914. package/mobile/dist/components/ComparisonTable/ComparisonTableBody.d.ts +1 -1
  915. package/mobile/dist/components/ComparisonTable/ComparisonTableBody.js +3 -2
  916. package/mobile/dist/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  917. package/mobile/dist/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  918. package/mobile/dist/components/ComparisonTable/ComparisonTableRows.d.ts +1 -1
  919. package/mobile/dist/components/ComparisonTable/HeaderCell.d.ts +1 -1
  920. package/mobile/dist/components/ComparisonTable/HeaderCell.js +1 -1
  921. package/mobile/dist/components/ComparisonTable/HeaderCell.js.map +1 -1
  922. package/mobile/dist/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  923. package/mobile/dist/components/ComparisonTable/TableCell.d.ts +1 -1
  924. package/mobile/dist/components/ComparisonTable/TableCell.js +1 -1
  925. package/mobile/dist/components/ComparisonTable/TableCell.js.map +1 -1
  926. package/mobile/dist/components/ComparisonTable/TableColumn.d.ts +1 -1
  927. package/mobile/dist/components/ComparisonTable/TableColumn.js +2 -2
  928. package/mobile/dist/components/ComparisonTable/TableColumn.js.map +1 -1
  929. package/mobile/dist/components/ComparisonTable/TableRow.d.ts +1 -1
  930. package/mobile/dist/components/ComparisonTable/TableRow.js +1 -1
  931. package/mobile/dist/components/ComparisonTable/TableRow.js.map +1 -1
  932. package/mobile/dist/components/ComparisonTable/TableRowContainer.d.ts +1 -4
  933. package/mobile/dist/components/ContentPage/ContentPage.d.ts +3 -3
  934. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  935. package/mobile/dist/components/ContentPage/ContentPageContext.d.ts +1 -19
  936. package/mobile/dist/components/ContentPage/ContentPageHead.d.ts +1 -1
  937. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.d.ts +1 -1
  938. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js +1 -1
  939. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  940. package/mobile/dist/components/ExchangeRateTile/CurrentLocation.d.ts +1 -1
  941. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +1 -1
  942. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +4 -3
  943. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  944. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.d.ts +1 -1
  945. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  946. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  947. package/mobile/dist/components/Footer/Contacts.d.ts +1 -1
  948. package/mobile/dist/components/Footer/Footer.d.ts +1 -1
  949. package/mobile/dist/components/Footer/Footer.js +2 -2
  950. package/mobile/dist/components/Footer/Footer.js.map +1 -1
  951. package/mobile/dist/components/Footer/HorizontalNavigation.d.ts +1 -1
  952. package/mobile/dist/components/Footer/HorizontalNavigation.js +1 -1
  953. package/mobile/dist/components/Footer/HorizontalNavigation.js.map +1 -1
  954. package/mobile/dist/components/Footer/HorizontalNavigationLink.d.ts +1 -1
  955. package/mobile/dist/components/Footer/MediaButton.d.ts +1 -1
  956. package/mobile/dist/components/Footer/Sitemap.d.ts +1 -1
  957. package/mobile/dist/components/Footer/Sitemap.js +2 -2
  958. package/mobile/dist/components/Footer/Sitemap.js.map +1 -1
  959. package/mobile/dist/components/Footer/SocialMedia.d.ts +1 -1
  960. package/mobile/dist/components/Footer/TextInformation.d.ts +1 -1
  961. package/mobile/dist/components/Footer/TextInformation.js +1 -1
  962. package/mobile/dist/components/Footer/TextInformation.js.map +1 -1
  963. package/mobile/dist/components/Footer/TextInformationLink.d.ts +1 -1
  964. package/mobile/dist/components/Footer/TextInformationLink.js +1 -1
  965. package/mobile/dist/components/Footer/TextInformationLink.js.map +1 -1
  966. package/mobile/dist/components/Gallery/Gallery.d.ts +1 -1
  967. package/mobile/dist/components/Gallery/Gallery.js +4 -4
  968. package/mobile/dist/components/Gallery/Gallery.js.map +1 -1
  969. package/mobile/dist/components/Gallery/GalleryCardInner.d.ts +1 -1
  970. package/mobile/dist/components/Gallery/GalleryCardInner.js +1 -1
  971. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  972. package/mobile/dist/components/Gallery/GalleryContainer.d.ts +1 -1
  973. package/mobile/dist/components/Gallery/GalleryContainer.js +2 -2
  974. package/mobile/dist/components/Gallery/GalleryContainer.js.map +1 -1
  975. package/mobile/dist/components/Gallery/GalleryInner.d.ts +1 -1
  976. package/mobile/dist/components/Gallery/GalleryInner.js +2 -1
  977. package/mobile/dist/components/Gallery/GalleryInner.js.map +1 -1
  978. package/mobile/dist/components/GracePeriod/GracePeriod.d.ts +1 -1
  979. package/mobile/dist/components/GracePeriod/GracePeriod.js +4 -4
  980. package/mobile/dist/components/GracePeriod/GracePeriod.js.map +1 -1
  981. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.d.ts +2 -2
  982. package/mobile/dist/components/GroupBlock/GroupBlock.d.ts +1 -1
  983. package/mobile/dist/components/GroupBlock/GroupBlock.js +2 -1
  984. package/mobile/dist/components/GroupBlock/GroupBlock.js.map +1 -1
  985. package/mobile/dist/components/GroupBlock/GroupBlockTabs.d.ts +1 -1
  986. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js +2 -2
  987. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  988. package/mobile/dist/components/GroupBlock/GroupBlocksItem.d.ts +1 -1
  989. package/mobile/dist/components/Header/DropdownMenu.d.ts +1 -1
  990. package/mobile/dist/components/Header/Header.d.ts +1 -1
  991. package/mobile/dist/components/Header/Header.js +4 -3
  992. package/mobile/dist/components/Header/Header.js.map +1 -1
  993. package/mobile/dist/components/Header/HeaderBurger.d.ts +1 -1
  994. package/mobile/dist/components/Header/HeaderBurger.js +4 -3
  995. package/mobile/dist/components/Header/HeaderBurger.js.map +1 -1
  996. package/mobile/dist/components/Header/HeaderSecondaryMenu.d.ts +3 -3
  997. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +3 -2
  998. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  999. package/mobile/dist/components/Header/HeaderSecondaryMenuButton.d.ts +1 -1
  1000. package/mobile/dist/components/Header/HeaderSubMenu.d.ts +1 -1
  1001. package/mobile/dist/components/Header/HeaderSubMenu.js +3 -2
  1002. package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
  1003. package/mobile/dist/components/Header/HeaderTop.d.ts +1 -1
  1004. package/mobile/dist/components/Header/HeaderTop.js +1 -1
  1005. package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
  1006. package/mobile/dist/components/Headline/Headline.d.ts +1 -1
  1007. package/mobile/dist/components/Headline/Headline.js +1 -1
  1008. package/mobile/dist/components/Headline/Headline.js.map +1 -1
  1009. package/mobile/dist/components/Headline/constants.js +1 -1
  1010. package/mobile/dist/components/Headline/constants.js.map +1 -1
  1011. package/mobile/dist/components/Insurance/Insurance.d.ts +1 -1
  1012. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.d.ts +1 -1
  1013. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js +7 -5
  1014. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  1015. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +3 -0
  1016. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +3 -1
  1017. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +5 -4
  1018. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  1019. package/mobile/dist/components/LikeControl/LikeControl.d.ts +1 -1
  1020. package/mobile/dist/components/LikeControl/LikeControl.js +6 -2
  1021. package/mobile/dist/components/LikeControl/LikeControl.js.map +1 -1
  1022. package/mobile/dist/components/LinkDocs/LinkDocs.d.ts +1 -1
  1023. package/mobile/dist/components/LinkDocs/LinkDocsHorizontalList.d.ts +1 -1
  1024. package/mobile/dist/components/LinkDocs/LinkDocsList.d.ts +1 -1
  1025. package/mobile/dist/components/LinkDocs/LinkDocsListItem.d.ts +1 -1
  1026. package/mobile/dist/components/LinkDocs/LinkDocsListItemBase.d.ts +1 -1
  1027. package/mobile/dist/components/LinkDocs/LinkDocsVerticalList.d.ts +1 -1
  1028. package/mobile/dist/components/LinkList/LinkList.d.ts +1 -1
  1029. package/mobile/dist/components/LinkList/LinkList.js +1 -1
  1030. package/mobile/dist/components/LinkList/LinkList.js.map +1 -1
  1031. package/mobile/dist/components/MiniGallery/MiniGallery.d.ts +1 -1
  1032. package/mobile/dist/components/MobileAppTile/MobileAppTile.d.ts +1 -1
  1033. package/mobile/dist/components/MobileAppTile/MobileAppTile.js +1 -1
  1034. package/mobile/dist/components/MobileAppTile/MobileAppTile.js.map +1 -1
  1035. package/mobile/dist/components/MobileAppTile/MobileAppTileContent.d.ts +4 -11
  1036. package/mobile/dist/components/Navigation/Navigation.d.ts +1 -1
  1037. package/mobile/dist/components/Navigation/Navigation.js +1 -1
  1038. package/mobile/dist/components/Navigation/Navigation.js.map +1 -1
  1039. package/mobile/dist/components/Navigation/NavigationItem.d.ts +2 -2
  1040. package/mobile/dist/components/Navigation/NavigationItem.js +1 -1
  1041. package/mobile/dist/components/Navigation/NavigationItem.js.map +1 -1
  1042. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +1 -1
  1043. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.d.ts +1 -1
  1044. package/mobile/dist/components/OtherProducts/OtherProducts.d.ts +1 -1
  1045. package/mobile/dist/components/OtherProducts/OtherProductsItem.d.ts +1 -1
  1046. package/mobile/dist/components/PictureText/PictureText.d.ts +1 -1
  1047. package/mobile/dist/components/PictureText/PictureText.js +1 -1
  1048. package/mobile/dist/components/PictureText/PictureText.js.map +1 -1
  1049. package/mobile/dist/components/Placeholder/Placeholder.d.ts +2 -2
  1050. package/mobile/dist/components/Placeholder/Placeholder.js +1 -1
  1051. package/mobile/dist/components/Placeholder/Placeholder.js.map +1 -1
  1052. package/mobile/dist/components/ProductBlock/ProductBlock.d.ts +1 -1
  1053. package/mobile/dist/components/ProductBlock/ProductBlockInner.d.ts +1 -1
  1054. package/mobile/dist/components/ProductGallery/ProductGallery.d.ts +1 -1
  1055. package/mobile/dist/components/ProductGallery/ProductGalleryBlock.d.ts +1 -1
  1056. package/mobile/dist/components/ProductTile/ProductTile.d.ts +1 -1
  1057. package/mobile/dist/components/ProductTile/ProductTile.js +2 -2
  1058. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  1059. package/mobile/dist/components/PromoTile/PromoTile.d.ts +1 -1
  1060. package/mobile/dist/components/PromoTile/PromoTile.js +1 -1
  1061. package/mobile/dist/components/PromoTile/PromoTile.js.map +1 -1
  1062. package/mobile/dist/components/Recommendation/Recommendation.d.ts +1 -1
  1063. package/mobile/dist/components/Recommendation/Recommendation.js +2 -1
  1064. package/mobile/dist/components/Recommendation/Recommendation.js.map +1 -1
  1065. package/mobile/dist/components/Recommendation/RecommendationCard.d.ts +1 -1
  1066. package/mobile/dist/components/Recommendation/RecommendationCard.js +2 -2
  1067. package/mobile/dist/components/Recommendation/RecommendationCard.js.map +1 -1
  1068. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.d.ts +1 -1
  1069. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js +3 -2
  1070. package/mobile/dist/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  1071. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalForm.d.ts +1 -8
  1072. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalForm.js +19 -18
  1073. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -1
  1074. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTotal.js +2 -2
  1075. package/mobile/dist/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  1076. package/mobile/dist/components/StepsBlock/StepsBlock.d.ts +1 -1
  1077. package/mobile/dist/components/StepsBlock/StepsBlock.js +2 -2
  1078. package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  1079. package/mobile/dist/components/Tabs/Tabs.d.ts +1 -1
  1080. package/mobile/dist/components/Tabs/Tabs.js +3 -2
  1081. package/mobile/dist/components/Tabs/Tabs.js.map +1 -1
  1082. package/mobile/dist/components/Tabs/renderTab.js +2 -2
  1083. package/mobile/dist/components/Tabs/renderTab.js.map +1 -1
  1084. package/mobile/dist/components/TariffsTable/TableTileHeader.d.ts +1 -1
  1085. package/mobile/dist/components/TariffsTable/TariffsTable.d.ts +1 -1
  1086. package/mobile/dist/components/TariffsTable/TariffsTable.js +1 -1
  1087. package/mobile/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  1088. package/mobile/dist/components/TariffsTable/TariffsTableCell.d.ts +1 -1
  1089. package/mobile/dist/components/TariffsTable/TariffsTableCell.js +2 -2
  1090. package/mobile/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  1091. package/mobile/dist/components/TariffsTable/TariffsTableHorizontal.d.ts +2 -2
  1092. package/mobile/dist/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  1093. package/mobile/dist/components/TariffsTable/TariffsTableRow.js +1 -1
  1094. package/mobile/dist/components/TariffsTable/TariffsTableRow.js.map +1 -1
  1095. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.d.ts +1 -1
  1096. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js +2 -2
  1097. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  1098. package/mobile/dist/components/TariffsTable/TariffsTableVertical.d.ts +2 -2
  1099. package/mobile/dist/components/TextBlock/TextBlock.d.ts +1 -1
  1100. package/mobile/dist/components/TextBlock/TextBlock.js +2 -2
  1101. package/mobile/dist/components/TextBlock/TextBlock.js.map +1 -1
  1102. package/mobile/dist/components/Tile/Tile.d.ts +1 -1
  1103. package/mobile/dist/components/Tile/Tile.js +1 -1
  1104. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  1105. package/mobile/dist/hooks/useExchangeRates.d.ts +1 -2
  1106. package/mobile/dist/hooks/useExchangeRates.js +3 -2
  1107. package/mobile/dist/hooks/useExchangeRates.js.map +1 -1
  1108. package/mobile/dist/hooks/useGeolocation.d.ts +1 -0
  1109. package/mobile/dist/hooks/useGeolocation.js +21 -0
  1110. package/mobile/dist/hooks/useGeolocation.js.map +1 -0
  1111. package/mobile/dist/hooks/useLikeService.d.ts +5 -0
  1112. package/mobile/dist/hooks/useLikeService.js +29 -0
  1113. package/mobile/dist/hooks/useLikeService.js.map +1 -0
  1114. package/mobile/dist/hooks/useLink.d.ts +1 -0
  1115. package/mobile/dist/hooks/useLink.js +3 -2
  1116. package/mobile/dist/hooks/useLink.js.map +1 -1
  1117. package/mobile/dist/hooks/useSafeDepositRental.d.ts +1 -2
  1118. package/mobile/dist/hooks/useSafeDepositRental.js +3 -2
  1119. package/mobile/dist/hooks/useSafeDepositRental.js.map +1 -1
  1120. package/mobile/dist/hooks/useSearch.d.ts +4 -0
  1121. package/mobile/dist/hooks/useSearch.js +12 -0
  1122. package/mobile/dist/hooks/useSearch.js.map +1 -0
  1123. package/mobile/dist/icons/IconName.d.ts +4 -2
  1124. package/mobile/dist/icons/IconName.js +2 -0
  1125. package/mobile/dist/icons/IconName.js.map +1 -1
  1126. package/mobile/dist/index.d.ts +2 -1
  1127. package/mobile/dist/index.js +5 -3
  1128. package/mobile/dist/index.js.map +1 -1
  1129. package/mobile/dist/react/setup-fixture.d.ts +1 -0
  1130. package/mobile/dist/react/setup-fixture.js +1 -48
  1131. package/mobile/dist/react/setup-fixture.js.map +1 -1
  1132. package/mobile/dist/services/sitemap/useSitemap.d.ts +1 -2
  1133. package/mobile/dist/services/sitemap/useSitemap.js +3 -2
  1134. package/mobile/dist/services/sitemap/useSitemap.js.map +1 -1
  1135. package/mobile/dist/ui-kit/BlockWrapper.d.ts +1 -1
  1136. package/mobile/dist/ui-kit/BlockWrapper.js +3 -2
  1137. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  1138. package/mobile/dist/ui-kit/BlocksList/BlocksListProps.d.ts +0 -2
  1139. package/mobile/dist/ui-kit/BlocksList/EmbeddableBlocks.d.ts +6 -6
  1140. package/mobile/dist/ui-kit/Breadcrumb.d.ts +1 -1
  1141. package/mobile/dist/ui-kit/Button/ArrowButton.d.ts +1 -1
  1142. package/mobile/dist/ui-kit/Button/Button.d.ts +1 -1
  1143. package/mobile/dist/ui-kit/Button/Button.js +2 -2
  1144. package/mobile/dist/ui-kit/Button/Button.js.map +1 -1
  1145. package/mobile/dist/ui-kit/Button/ButtonInner.d.ts +1 -1
  1146. package/mobile/dist/ui-kit/Button/ButtonInner.js +1 -1
  1147. package/mobile/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  1148. package/mobile/dist/ui-kit/Button/ButtonProps.d.ts +2 -2
  1149. package/mobile/dist/ui-kit/Button/ButtonSection.d.ts +1 -1
  1150. package/mobile/dist/ui-kit/Button/LikeButton.d.ts +1 -1
  1151. package/mobile/dist/ui-kit/Checkbox/Checkbox.d.ts +1 -1
  1152. package/mobile/dist/ui-kit/Checkbox/Checkbox.js +5 -3
  1153. package/mobile/dist/ui-kit/Checkbox/Checkbox.js.map +1 -1
  1154. package/mobile/dist/ui-kit/Description/Description.d.ts +1 -1
  1155. package/mobile/dist/ui-kit/Foldable/Foldable.d.ts +1 -1
  1156. package/mobile/dist/ui-kit/Foldable/Foldable.js +2 -3
  1157. package/mobile/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  1158. package/mobile/dist/ui-kit/Foldable/useActiveHandler.d.ts +1 -3
  1159. package/mobile/dist/ui-kit/Foldable/useActiveHandler.js +3 -2
  1160. package/mobile/dist/ui-kit/Foldable/useActiveHandler.js.map +1 -1
  1161. package/mobile/dist/ui-kit/HeaderItem/HeaderItem.d.ts +1 -1
  1162. package/mobile/dist/ui-kit/HeaderItem/HeaderItem.js +1 -1
  1163. package/mobile/dist/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  1164. package/mobile/dist/ui-kit/Heading/Heading.d.ts +1 -1
  1165. package/mobile/dist/ui-kit/Icon/Icon.d.ts +1 -1
  1166. package/mobile/dist/ui-kit/Img/Img.d.ts +1 -1
  1167. package/mobile/dist/ui-kit/Img/Img.js +2 -2
  1168. package/mobile/dist/ui-kit/Img/Img.js.map +1 -1
  1169. package/mobile/dist/ui-kit/Img/ImgAsPicture.d.ts +1 -1
  1170. package/mobile/dist/ui-kit/Img/ImgAsPicture.js +1 -1
  1171. package/mobile/dist/ui-kit/Img/ImgAsPicture.js.map +1 -1
  1172. package/mobile/dist/ui-kit/Img/ImgInner.d.ts +1 -1
  1173. package/mobile/dist/ui-kit/Input/Input.d.ts +1 -1
  1174. package/mobile/dist/ui-kit/InputRange/InputRange.d.ts +1 -1
  1175. package/mobile/dist/ui-kit/InputRange/InputRange.js +4 -3
  1176. package/mobile/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  1177. package/mobile/dist/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
  1178. package/mobile/dist/ui-kit/List/List.d.ts +1 -1
  1179. package/mobile/dist/ui-kit/List/ListItem.d.ts +1 -1
  1180. package/mobile/dist/ui-kit/Logo/Logo.d.ts +1 -1
  1181. package/mobile/dist/ui-kit/Logo/Logo.js +1 -1
  1182. package/mobile/dist/ui-kit/Logo/Logo.js.map +1 -1
  1183. package/mobile/dist/ui-kit/Radio/Radio.d.ts +1 -1
  1184. package/mobile/dist/ui-kit/Radio/Radio.js +1 -1
  1185. package/mobile/dist/ui-kit/Radio/Radio.js.map +1 -1
  1186. package/mobile/dist/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -1
  1187. package/mobile/dist/ui-kit/SVG.d.ts +1 -1
  1188. package/mobile/dist/ui-kit/SearchBar/SearchBar.d.ts +1 -1
  1189. package/mobile/dist/ui-kit/SearchBar/SearchBar.js +2 -2
  1190. package/mobile/dist/ui-kit/SearchBar/SearchBar.js.map +1 -1
  1191. package/mobile/dist/ui-kit/SearchBar/SearchBarInner.d.ts +3 -3
  1192. package/mobile/dist/ui-kit/SearchBar/SearchBarInner.js +6 -7
  1193. package/mobile/dist/ui-kit/SearchBar/SearchBarInner.js.map +1 -1
  1194. package/mobile/dist/ui-kit/Select/Select.d.ts +1 -1
  1195. package/mobile/dist/ui-kit/Select/SelectOption.d.ts +1 -1
  1196. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.d.ts +1 -1
  1197. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js +4 -3
  1198. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  1199. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +1 -1
  1200. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlItem.d.ts +1 -1
  1201. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlList.d.ts +1 -1
  1202. package/mobile/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.d.ts +1 -1
  1203. package/mobile/dist/ui-kit/Tabs/Tabs.d.ts +1 -1
  1204. package/mobile/dist/ui-kit/Tabs/Tabs.js +2 -2
  1205. package/mobile/dist/ui-kit/Tabs/Tabs.js.map +1 -1
  1206. package/mobile/dist/ui-kit/TopItem/TopItem.d.ts +1 -1
  1207. package/mobile/dist/ui-kit/TopItem/TopItem.js +1 -1
  1208. package/mobile/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  1209. package/mobile/lib/components/Accordion/Accordion.d.ts +1 -1
  1210. package/mobile/lib/components/Accordion/Accordion.js +1 -1
  1211. package/mobile/lib/components/Accordion/Accordion.js.map +1 -1
  1212. package/mobile/lib/components/Accordion/AccordionItem.d.ts +1 -1
  1213. package/mobile/lib/components/Accordion/AccordionItem.js +2 -5
  1214. package/mobile/lib/components/Accordion/AccordionItem.js.map +1 -1
  1215. package/mobile/lib/components/Accordion/AccordionItemInner.d.ts +1 -1
  1216. package/mobile/lib/components/Accordion/useActiveHandler.d.ts +1 -1
  1217. package/mobile/lib/components/Accordion/useActiveHandler.js +3 -2
  1218. package/mobile/lib/components/Accordion/useActiveHandler.js.map +1 -1
  1219. package/mobile/lib/components/BaseTile/BaseTile.d.ts +1 -1
  1220. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  1221. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +4 -4
  1222. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  1223. package/mobile/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +4 -4
  1224. package/mobile/lib/components/Blocks.d.ts +16 -16
  1225. package/mobile/lib/components/Bonus/Bonus.d.ts +1 -1
  1226. package/mobile/lib/components/Bonus/Bonus.js +3 -3
  1227. package/mobile/lib/components/Bonus/Bonus.js.map +1 -1
  1228. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.d.ts +1 -1
  1229. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +3 -3
  1230. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  1231. package/mobile/lib/components/Calculator/BonusCalculatorForm.d.ts +1 -1
  1232. package/mobile/lib/components/Calculator/BonusCalculatorForm.js +4 -3
  1233. package/mobile/lib/components/Calculator/BonusCalculatorForm.js.map +1 -1
  1234. package/mobile/lib/components/Calculator/Calculator.d.ts +1 -1
  1235. package/mobile/lib/components/Calculator/Calculator.js +7 -6
  1236. package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
  1237. package/mobile/lib/components/Calculator/CalculatorValueBlock.d.ts +1 -1
  1238. package/mobile/lib/components/Calculator/CreditCalculatorForm.d.ts +1 -1
  1239. package/mobile/lib/components/Calculator/CreditCalculatorForm.js +8 -7
  1240. package/mobile/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
  1241. package/mobile/lib/components/Calculator/DepositCalculatorForm.d.ts +1 -1
  1242. package/mobile/lib/components/Calculator/DepositCalculatorForm.js +3 -2
  1243. package/mobile/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  1244. package/mobile/lib/components/Calculator/EmbeddableCalcBlocks.d.ts +4 -4
  1245. package/mobile/lib/components/Calculator/MortgageCalculatorForm.d.ts +1 -1
  1246. package/mobile/lib/components/Calculator/MortgageCalculatorForm.js +5 -4
  1247. package/mobile/lib/components/Calculator/MortgageCalculatorForm.js.map +1 -1
  1248. package/mobile/lib/components/Calculator/Rate.d.ts +1 -1
  1249. package/mobile/lib/components/Calculator/renderCalculatorBlock.js +1 -1
  1250. package/mobile/lib/components/Calculator/renderCalculatorBlock.js.map +1 -1
  1251. package/mobile/lib/components/Calculator/useBonusCalculatorParams.d.ts +1 -2
  1252. package/mobile/lib/components/Calculator/useBonusCalculatorParams.js +3 -2
  1253. package/mobile/lib/components/Calculator/useBonusCalculatorParams.js.map +1 -1
  1254. package/mobile/lib/components/Calculator/useCalculatorParams.d.ts +1 -2
  1255. package/mobile/lib/components/Calculator/useCalculatorParams.js +2 -1
  1256. package/mobile/lib/components/Calculator/useCalculatorParams.js.map +1 -1
  1257. package/mobile/lib/components/Calculator/useCreditCalculatorParams.d.ts +1 -2
  1258. package/mobile/lib/components/Calculator/useCreditCalculatorParams.js +2 -2
  1259. package/mobile/lib/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  1260. package/mobile/lib/components/Catalog/Catalog.d.ts +1 -1
  1261. package/mobile/lib/components/Catalog/Catalog.js +4 -4
  1262. package/mobile/lib/components/Catalog/Catalog.js.map +1 -1
  1263. package/mobile/lib/components/Catalog/CatalogCard.d.ts +1 -1
  1264. package/mobile/lib/components/Catalog/CatalogCard.js +1 -1
  1265. package/mobile/lib/components/Catalog/CatalogCard.js.map +1 -1
  1266. package/mobile/lib/components/ComparisonTable/ComparisonTable.d.ts +1 -1
  1267. package/mobile/lib/components/ComparisonTable/ComparisonTable.js +2 -1
  1268. package/mobile/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  1269. package/mobile/lib/components/ComparisonTable/ComparisonTableBody.d.ts +1 -1
  1270. package/mobile/lib/components/ComparisonTable/ComparisonTableBody.js +3 -2
  1271. package/mobile/lib/components/ComparisonTable/ComparisonTableBody.js.map +1 -1
  1272. package/mobile/lib/components/ComparisonTable/ComparisonTableColumnHeaders.d.ts +1 -1
  1273. package/mobile/lib/components/ComparisonTable/ComparisonTableRows.d.ts +1 -1
  1274. package/mobile/lib/components/ComparisonTable/HeaderCell.d.ts +1 -1
  1275. package/mobile/lib/components/ComparisonTable/HeaderCell.js +1 -1
  1276. package/mobile/lib/components/ComparisonTable/HeaderCell.js.map +1 -1
  1277. package/mobile/lib/components/ComparisonTable/TableCarouselContainer.d.ts +1 -1
  1278. package/mobile/lib/components/ComparisonTable/TableCell.d.ts +1 -1
  1279. package/mobile/lib/components/ComparisonTable/TableCell.js +1 -1
  1280. package/mobile/lib/components/ComparisonTable/TableCell.js.map +1 -1
  1281. package/mobile/lib/components/ComparisonTable/TableColumn.d.ts +1 -1
  1282. package/mobile/lib/components/ComparisonTable/TableColumn.js +2 -2
  1283. package/mobile/lib/components/ComparisonTable/TableColumn.js.map +1 -1
  1284. package/mobile/lib/components/ComparisonTable/TableRow.d.ts +1 -1
  1285. package/mobile/lib/components/ComparisonTable/TableRow.js +1 -1
  1286. package/mobile/lib/components/ComparisonTable/TableRow.js.map +1 -1
  1287. package/mobile/lib/components/ComparisonTable/TableRowContainer.d.ts +1 -4
  1288. package/mobile/lib/components/ContentPage/ContentPage.d.ts +3 -3
  1289. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  1290. package/mobile/lib/components/ContentPage/ContentPageContext.d.ts +1 -19
  1291. package/mobile/lib/components/ContentPage/ContentPageHead.d.ts +1 -1
  1292. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.d.ts +1 -1
  1293. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js +1 -1
  1294. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  1295. package/mobile/lib/components/ExchangeRateTile/CurrentLocation.d.ts +1 -1
  1296. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +1 -1
  1297. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +4 -3
  1298. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  1299. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.d.ts +1 -1
  1300. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  1301. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  1302. package/mobile/lib/components/Footer/Contacts.d.ts +1 -1
  1303. package/mobile/lib/components/Footer/Footer.d.ts +1 -1
  1304. package/mobile/lib/components/Footer/Footer.js +2 -2
  1305. package/mobile/lib/components/Footer/Footer.js.map +1 -1
  1306. package/mobile/lib/components/Footer/HorizontalNavigation.d.ts +1 -1
  1307. package/mobile/lib/components/Footer/HorizontalNavigation.js +1 -1
  1308. package/mobile/lib/components/Footer/HorizontalNavigation.js.map +1 -1
  1309. package/mobile/lib/components/Footer/HorizontalNavigationLink.d.ts +1 -1
  1310. package/mobile/lib/components/Footer/MediaButton.d.ts +1 -1
  1311. package/mobile/lib/components/Footer/Sitemap.d.ts +1 -1
  1312. package/mobile/lib/components/Footer/Sitemap.js +2 -2
  1313. package/mobile/lib/components/Footer/Sitemap.js.map +1 -1
  1314. package/mobile/lib/components/Footer/SocialMedia.d.ts +1 -1
  1315. package/mobile/lib/components/Footer/TextInformation.d.ts +1 -1
  1316. package/mobile/lib/components/Footer/TextInformation.js +1 -1
  1317. package/mobile/lib/components/Footer/TextInformation.js.map +1 -1
  1318. package/mobile/lib/components/Footer/TextInformationLink.d.ts +1 -1
  1319. package/mobile/lib/components/Footer/TextInformationLink.js +1 -1
  1320. package/mobile/lib/components/Footer/TextInformationLink.js.map +1 -1
  1321. package/mobile/lib/components/Gallery/Gallery.d.ts +1 -1
  1322. package/mobile/lib/components/Gallery/Gallery.js +4 -4
  1323. package/mobile/lib/components/Gallery/Gallery.js.map +1 -1
  1324. package/mobile/lib/components/Gallery/GalleryCardInner.d.ts +1 -1
  1325. package/mobile/lib/components/Gallery/GalleryCardInner.js +1 -1
  1326. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  1327. package/mobile/lib/components/Gallery/GalleryContainer.d.ts +1 -1
  1328. package/mobile/lib/components/Gallery/GalleryContainer.js +2 -2
  1329. package/mobile/lib/components/Gallery/GalleryContainer.js.map +1 -1
  1330. package/mobile/lib/components/Gallery/GalleryInner.d.ts +1 -1
  1331. package/mobile/lib/components/Gallery/GalleryInner.js +2 -1
  1332. package/mobile/lib/components/Gallery/GalleryInner.js.map +1 -1
  1333. package/mobile/lib/components/GracePeriod/GracePeriod.d.ts +1 -1
  1334. package/mobile/lib/components/GracePeriod/GracePeriod.js +4 -4
  1335. package/mobile/lib/components/GracePeriod/GracePeriod.js.map +1 -1
  1336. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.d.ts +2 -2
  1337. package/mobile/lib/components/GroupBlock/GroupBlock.d.ts +1 -1
  1338. package/mobile/lib/components/GroupBlock/GroupBlock.js +2 -1
  1339. package/mobile/lib/components/GroupBlock/GroupBlock.js.map +1 -1
  1340. package/mobile/lib/components/GroupBlock/GroupBlockTabs.d.ts +1 -1
  1341. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js +2 -2
  1342. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  1343. package/mobile/lib/components/GroupBlock/GroupBlocksItem.d.ts +1 -1
  1344. package/mobile/lib/components/Header/DropdownMenu.d.ts +1 -1
  1345. package/mobile/lib/components/Header/Header.d.ts +1 -1
  1346. package/mobile/lib/components/Header/Header.js +4 -3
  1347. package/mobile/lib/components/Header/Header.js.map +1 -1
  1348. package/mobile/lib/components/Header/HeaderBurger.d.ts +1 -1
  1349. package/mobile/lib/components/Header/HeaderBurger.js +4 -3
  1350. package/mobile/lib/components/Header/HeaderBurger.js.map +1 -1
  1351. package/mobile/lib/components/Header/HeaderSecondaryMenu.d.ts +3 -3
  1352. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +3 -2
  1353. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  1354. package/mobile/lib/components/Header/HeaderSecondaryMenuButton.d.ts +1 -1
  1355. package/mobile/lib/components/Header/HeaderSubMenu.d.ts +1 -1
  1356. package/mobile/lib/components/Header/HeaderSubMenu.js +3 -2
  1357. package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
  1358. package/mobile/lib/components/Header/HeaderTop.d.ts +1 -1
  1359. package/mobile/lib/components/Header/HeaderTop.js +1 -1
  1360. package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
  1361. package/mobile/lib/components/Headline/Headline.d.ts +1 -1
  1362. package/mobile/lib/components/Headline/Headline.js +1 -1
  1363. package/mobile/lib/components/Headline/Headline.js.map +1 -1
  1364. package/mobile/lib/components/Headline/constants.js +1 -1
  1365. package/mobile/lib/components/Headline/constants.js.map +1 -1
  1366. package/mobile/lib/components/Insurance/Insurance.d.ts +1 -1
  1367. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.d.ts +1 -1
  1368. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js +7 -5
  1369. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlock.js.map +1 -1
  1370. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockContent.d.ts +3 -0
  1371. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.d.ts +3 -1
  1372. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +5 -4
  1373. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  1374. package/mobile/lib/components/LikeControl/LikeControl.d.ts +1 -1
  1375. package/mobile/lib/components/LikeControl/LikeControl.js +6 -2
  1376. package/mobile/lib/components/LikeControl/LikeControl.js.map +1 -1
  1377. package/mobile/lib/components/LinkDocs/LinkDocs.d.ts +1 -1
  1378. package/mobile/lib/components/LinkDocs/LinkDocsHorizontalList.d.ts +1 -1
  1379. package/mobile/lib/components/LinkDocs/LinkDocsList.d.ts +1 -1
  1380. package/mobile/lib/components/LinkDocs/LinkDocsListItem.d.ts +1 -1
  1381. package/mobile/lib/components/LinkDocs/LinkDocsListItemBase.d.ts +1 -1
  1382. package/mobile/lib/components/LinkDocs/LinkDocsVerticalList.d.ts +1 -1
  1383. package/mobile/lib/components/LinkList/LinkList.d.ts +1 -1
  1384. package/mobile/lib/components/LinkList/LinkList.js +1 -1
  1385. package/mobile/lib/components/LinkList/LinkList.js.map +1 -1
  1386. package/mobile/lib/components/MiniGallery/MiniGallery.d.ts +1 -1
  1387. package/mobile/lib/components/MobileAppTile/MobileAppTile.d.ts +1 -1
  1388. package/mobile/lib/components/MobileAppTile/MobileAppTile.js +1 -1
  1389. package/mobile/lib/components/MobileAppTile/MobileAppTile.js.map +1 -1
  1390. package/mobile/lib/components/MobileAppTile/MobileAppTileContent.d.ts +4 -11
  1391. package/mobile/lib/components/Navigation/Navigation.d.ts +1 -1
  1392. package/mobile/lib/components/Navigation/Navigation.js +1 -1
  1393. package/mobile/lib/components/Navigation/Navigation.js.map +1 -1
  1394. package/mobile/lib/components/Navigation/NavigationItem.d.ts +2 -2
  1395. package/mobile/lib/components/Navigation/NavigationItem.js +1 -1
  1396. package/mobile/lib/components/Navigation/NavigationItem.js.map +1 -1
  1397. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +1 -1
  1398. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.d.ts +1 -1
  1399. package/mobile/lib/components/OtherProducts/OtherProducts.d.ts +1 -1
  1400. package/mobile/lib/components/OtherProducts/OtherProductsItem.d.ts +1 -1
  1401. package/mobile/lib/components/PictureText/PictureText.d.ts +1 -1
  1402. package/mobile/lib/components/PictureText/PictureText.js +1 -1
  1403. package/mobile/lib/components/PictureText/PictureText.js.map +1 -1
  1404. package/mobile/lib/components/Placeholder/Placeholder.d.ts +2 -2
  1405. package/mobile/lib/components/Placeholder/Placeholder.js +1 -1
  1406. package/mobile/lib/components/Placeholder/Placeholder.js.map +1 -1
  1407. package/mobile/lib/components/ProductBlock/ProductBlock.d.ts +1 -1
  1408. package/mobile/lib/components/ProductBlock/ProductBlockInner.d.ts +1 -1
  1409. package/mobile/lib/components/ProductGallery/ProductGallery.d.ts +1 -1
  1410. package/mobile/lib/components/ProductGallery/ProductGalleryBlock.d.ts +1 -1
  1411. package/mobile/lib/components/ProductTile/ProductTile.d.ts +1 -1
  1412. package/mobile/lib/components/ProductTile/ProductTile.js +2 -2
  1413. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  1414. package/mobile/lib/components/PromoTile/PromoTile.d.ts +1 -1
  1415. package/mobile/lib/components/PromoTile/PromoTile.js +1 -1
  1416. package/mobile/lib/components/PromoTile/PromoTile.js.map +1 -1
  1417. package/mobile/lib/components/Recommendation/Recommendation.d.ts +1 -1
  1418. package/mobile/lib/components/Recommendation/Recommendation.js +2 -1
  1419. package/mobile/lib/components/Recommendation/Recommendation.js.map +1 -1
  1420. package/mobile/lib/components/Recommendation/RecommendationCard.d.ts +1 -1
  1421. package/mobile/lib/components/Recommendation/RecommendationCard.js +2 -2
  1422. package/mobile/lib/components/Recommendation/RecommendationCard.js.map +1 -1
  1423. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.d.ts +1 -1
  1424. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js +3 -2
  1425. package/mobile/lib/components/SafeDepositRental/SafeDepositRental.js.map +1 -1
  1426. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalForm.d.ts +1 -8
  1427. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalForm.js +19 -17
  1428. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalForm.js.map +1 -1
  1429. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTotal.js +2 -2
  1430. package/mobile/lib/components/SafeDepositRental/SafeDepositRentalTotal.js.map +1 -1
  1431. package/mobile/lib/components/StepsBlock/StepsBlock.d.ts +1 -1
  1432. package/mobile/lib/components/StepsBlock/StepsBlock.js +2 -2
  1433. package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  1434. package/mobile/lib/components/Tabs/Tabs.d.ts +1 -1
  1435. package/mobile/lib/components/Tabs/Tabs.js +3 -2
  1436. package/mobile/lib/components/Tabs/Tabs.js.map +1 -1
  1437. package/mobile/lib/components/Tabs/renderTab.js +2 -2
  1438. package/mobile/lib/components/Tabs/renderTab.js.map +1 -1
  1439. package/mobile/lib/components/TariffsTable/TableTileHeader.d.ts +1 -1
  1440. package/mobile/lib/components/TariffsTable/TariffsTable.d.ts +1 -1
  1441. package/mobile/lib/components/TariffsTable/TariffsTable.js +1 -1
  1442. package/mobile/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  1443. package/mobile/lib/components/TariffsTable/TariffsTableCell.d.ts +1 -1
  1444. package/mobile/lib/components/TariffsTable/TariffsTableCell.js +2 -2
  1445. package/mobile/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  1446. package/mobile/lib/components/TariffsTable/TariffsTableHorizontal.d.ts +2 -2
  1447. package/mobile/lib/components/TariffsTable/TariffsTableRow.d.ts +1 -1
  1448. package/mobile/lib/components/TariffsTable/TariffsTableRow.js +1 -1
  1449. package/mobile/lib/components/TariffsTable/TariffsTableRow.js.map +1 -1
  1450. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.d.ts +1 -1
  1451. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js +2 -2
  1452. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  1453. package/mobile/lib/components/TariffsTable/TariffsTableVertical.d.ts +2 -2
  1454. package/mobile/lib/components/TextBlock/TextBlock.d.ts +1 -1
  1455. package/mobile/lib/components/TextBlock/TextBlock.js +2 -2
  1456. package/mobile/lib/components/TextBlock/TextBlock.js.map +1 -1
  1457. package/mobile/lib/components/Tile/Tile.d.ts +1 -1
  1458. package/mobile/lib/components/Tile/Tile.js +1 -1
  1459. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  1460. package/mobile/lib/hooks/useExchangeRates.d.ts +1 -2
  1461. package/mobile/lib/hooks/useExchangeRates.js +2 -1
  1462. package/mobile/lib/hooks/useExchangeRates.js.map +1 -1
  1463. package/mobile/lib/hooks/useGeolocation.d.ts +1 -0
  1464. package/mobile/lib/hooks/useGeolocation.js +18 -0
  1465. package/mobile/lib/hooks/useGeolocation.js.map +1 -0
  1466. package/mobile/lib/hooks/useLikeService.d.ts +5 -0
  1467. package/mobile/lib/hooks/useLikeService.js +26 -0
  1468. package/mobile/lib/hooks/useLikeService.js.map +1 -0
  1469. package/mobile/lib/hooks/useLink.d.ts +1 -0
  1470. package/mobile/lib/hooks/useLink.js +1 -1
  1471. package/mobile/lib/hooks/useLink.js.map +1 -1
  1472. package/mobile/lib/hooks/useSafeDepositRental.d.ts +1 -2
  1473. package/mobile/lib/hooks/useSafeDepositRental.js +2 -1
  1474. package/mobile/lib/hooks/useSafeDepositRental.js.map +1 -1
  1475. package/mobile/lib/hooks/useSearch.d.ts +4 -0
  1476. package/mobile/lib/hooks/useSearch.js +9 -0
  1477. package/mobile/lib/hooks/useSearch.js.map +1 -0
  1478. package/mobile/lib/icons/IconName.d.ts +4 -2
  1479. package/mobile/lib/icons/IconName.js +2 -0
  1480. package/mobile/lib/icons/IconName.js.map +1 -1
  1481. package/mobile/lib/index.d.ts +2 -1
  1482. package/mobile/lib/index.js +2 -1
  1483. package/mobile/lib/index.js.map +1 -1
  1484. package/mobile/lib/react/setup-fixture.d.ts +1 -0
  1485. package/mobile/lib/react/setup-fixture.js +2 -46
  1486. package/mobile/lib/react/setup-fixture.js.map +1 -1
  1487. package/mobile/lib/services/sitemap/useSitemap.d.ts +1 -2
  1488. package/mobile/lib/services/sitemap/useSitemap.js +2 -1
  1489. package/mobile/lib/services/sitemap/useSitemap.js.map +1 -1
  1490. package/mobile/lib/ui-kit/BlockWrapper.d.ts +1 -1
  1491. package/mobile/lib/ui-kit/BlockWrapper.js +3 -2
  1492. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  1493. package/mobile/lib/ui-kit/BlocksList/BlocksListProps.d.ts +0 -2
  1494. package/mobile/lib/ui-kit/BlocksList/EmbeddableBlocks.d.ts +6 -6
  1495. package/mobile/lib/ui-kit/Breadcrumb.d.ts +1 -1
  1496. package/mobile/lib/ui-kit/Button/ArrowButton.d.ts +1 -1
  1497. package/mobile/lib/ui-kit/Button/Button.d.ts +1 -1
  1498. package/mobile/lib/ui-kit/Button/Button.js +2 -2
  1499. package/mobile/lib/ui-kit/Button/Button.js.map +1 -1
  1500. package/mobile/lib/ui-kit/Button/ButtonInner.d.ts +1 -1
  1501. package/mobile/lib/ui-kit/Button/ButtonInner.js +1 -1
  1502. package/mobile/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  1503. package/mobile/lib/ui-kit/Button/ButtonProps.d.ts +2 -2
  1504. package/mobile/lib/ui-kit/Button/ButtonSection.d.ts +1 -1
  1505. package/mobile/lib/ui-kit/Button/LikeButton.d.ts +1 -1
  1506. package/mobile/lib/ui-kit/Checkbox/Checkbox.d.ts +1 -1
  1507. package/mobile/lib/ui-kit/Checkbox/Checkbox.js +5 -3
  1508. package/mobile/lib/ui-kit/Checkbox/Checkbox.js.map +1 -1
  1509. package/mobile/lib/ui-kit/Description/Description.d.ts +1 -1
  1510. package/mobile/lib/ui-kit/Foldable/Foldable.d.ts +1 -1
  1511. package/mobile/lib/ui-kit/Foldable/Foldable.js +2 -3
  1512. package/mobile/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  1513. package/mobile/lib/ui-kit/Foldable/useActiveHandler.d.ts +1 -3
  1514. package/mobile/lib/ui-kit/Foldable/useActiveHandler.js +3 -2
  1515. package/mobile/lib/ui-kit/Foldable/useActiveHandler.js.map +1 -1
  1516. package/mobile/lib/ui-kit/HeaderItem/HeaderItem.d.ts +1 -1
  1517. package/mobile/lib/ui-kit/HeaderItem/HeaderItem.js +1 -1
  1518. package/mobile/lib/ui-kit/HeaderItem/HeaderItem.js.map +1 -1
  1519. package/mobile/lib/ui-kit/Heading/Heading.d.ts +1 -1
  1520. package/mobile/lib/ui-kit/Icon/Icon.d.ts +1 -1
  1521. package/mobile/lib/ui-kit/Img/Img.d.ts +1 -1
  1522. package/mobile/lib/ui-kit/Img/Img.js +2 -2
  1523. package/mobile/lib/ui-kit/Img/Img.js.map +1 -1
  1524. package/mobile/lib/ui-kit/Img/ImgAsPicture.d.ts +1 -1
  1525. package/mobile/lib/ui-kit/Img/ImgAsPicture.js +1 -1
  1526. package/mobile/lib/ui-kit/Img/ImgAsPicture.js.map +1 -1
  1527. package/mobile/lib/ui-kit/Img/ImgInner.d.ts +1 -1
  1528. package/mobile/lib/ui-kit/Input/Input.d.ts +1 -1
  1529. package/mobile/lib/ui-kit/InputRange/InputRange.d.ts +1 -1
  1530. package/mobile/lib/ui-kit/InputRange/InputRange.js +4 -3
  1531. package/mobile/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  1532. package/mobile/lib/ui-kit/InputRange/InputRangeProps.d.ts +1 -0
  1533. package/mobile/lib/ui-kit/List/List.d.ts +1 -1
  1534. package/mobile/lib/ui-kit/List/ListItem.d.ts +1 -1
  1535. package/mobile/lib/ui-kit/Logo/Logo.d.ts +1 -1
  1536. package/mobile/lib/ui-kit/Logo/Logo.js +1 -1
  1537. package/mobile/lib/ui-kit/Logo/Logo.js.map +1 -1
  1538. package/mobile/lib/ui-kit/Radio/Radio.d.ts +1 -1
  1539. package/mobile/lib/ui-kit/Radio/Radio.js +1 -1
  1540. package/mobile/lib/ui-kit/Radio/Radio.js.map +1 -1
  1541. package/mobile/lib/ui-kit/RadioButtonGroup/RadioButtonGroup.d.ts +1 -1
  1542. package/mobile/lib/ui-kit/SVG.d.ts +1 -1
  1543. package/mobile/lib/ui-kit/SearchBar/SearchBar.d.ts +1 -1
  1544. package/mobile/lib/ui-kit/SearchBar/SearchBar.js +2 -2
  1545. package/mobile/lib/ui-kit/SearchBar/SearchBar.js.map +1 -1
  1546. package/mobile/lib/ui-kit/SearchBar/SearchBarInner.d.ts +3 -3
  1547. package/mobile/lib/ui-kit/SearchBar/SearchBarInner.js +6 -7
  1548. package/mobile/lib/ui-kit/SearchBar/SearchBarInner.js.map +1 -1
  1549. package/mobile/lib/ui-kit/Select/Select.d.ts +1 -1
  1550. package/mobile/lib/ui-kit/Select/SelectOption.d.ts +1 -1
  1551. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.d.ts +1 -1
  1552. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js +4 -3
  1553. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  1554. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +1 -1
  1555. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlItem.d.ts +1 -1
  1556. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlList.d.ts +1 -1
  1557. package/mobile/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.d.ts +1 -1
  1558. package/mobile/lib/ui-kit/Tabs/Tabs.d.ts +1 -1
  1559. package/mobile/lib/ui-kit/Tabs/Tabs.js +2 -2
  1560. package/mobile/lib/ui-kit/Tabs/Tabs.js.map +1 -1
  1561. package/mobile/lib/ui-kit/TopItem/TopItem.d.ts +1 -1
  1562. package/mobile/lib/ui-kit/TopItem/TopItem.js +1 -1
  1563. package/mobile/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  1564. package/mobile/src/common.css +25 -7
  1565. package/mobile/src/components/Accordion/Accordion.tsx +1 -1
  1566. package/mobile/src/components/Accordion/AccordionItem.tsx +3 -6
  1567. package/mobile/src/components/Accordion/useActiveHandler.ts +3 -2
  1568. package/mobile/src/components/BenefitsBlock/BenefitsBlock.example.json +12 -2
  1569. package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +13 -18
  1570. package/mobile/src/components/BenefitsBlock/BenefitsBlockContent.ts +4 -4
  1571. package/mobile/src/components/Blocks.spec.tsx +9 -15
  1572. package/mobile/src/components/Bonus/Bonus.tsx +15 -7
  1573. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +12 -5
  1574. package/mobile/src/components/Calculator/BonusCalculatorForm.tsx +4 -3
  1575. package/mobile/src/components/Calculator/Calculator.tsx +8 -7
  1576. package/mobile/src/components/Calculator/CreditCalculatorForm.tsx +8 -7
  1577. package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +3 -2
  1578. package/mobile/src/components/Calculator/MortgageCalculatorForm.tsx +5 -4
  1579. package/mobile/src/components/Calculator/renderCalculatorBlock.tsx +1 -1
  1580. package/mobile/src/components/Calculator/useBonusCalculatorParams.ts +2 -6
  1581. package/mobile/src/components/Calculator/useCalculatorParams.ts +2 -2
  1582. package/mobile/src/components/Calculator/useCreditCalculatorParams.ts +1 -6
  1583. package/mobile/src/components/Catalog/Catalog.tsx +12 -6
  1584. package/mobile/src/components/Catalog/CatalogCard.tsx +3 -5
  1585. package/mobile/src/components/ComparisonTable/ComparisonTable.tsx +3 -2
  1586. package/mobile/src/components/ComparisonTable/ComparisonTableBody.tsx +5 -4
  1587. package/mobile/src/components/ComparisonTable/HeaderCell.tsx +1 -1
  1588. package/mobile/src/components/ComparisonTable/TableCell.tsx +1 -1
  1589. package/mobile/src/components/ComparisonTable/TableColumn.tsx +2 -2
  1590. package/mobile/src/components/ComparisonTable/TableRow.tsx +1 -1
  1591. package/mobile/src/components/ContentPage/ContentPage.tsx +3 -5
  1592. package/mobile/src/components/ContentPage/ContentPageContext.tsx +1 -26
  1593. package/mobile/src/components/ExchangeRateTile/CurrencyTable.tsx +1 -1
  1594. package/mobile/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +4 -3
  1595. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.tsx +1 -1
  1596. package/mobile/src/components/Footer/Footer.tsx +2 -2
  1597. package/mobile/src/components/Footer/HorizontalNavigation.tsx +2 -2
  1598. package/mobile/src/components/Footer/Sitemap.tsx +2 -2
  1599. package/mobile/src/components/Footer/TextInformation.tsx +2 -2
  1600. package/mobile/src/components/Footer/TextInformationLink.tsx +1 -1
  1601. package/mobile/src/components/Gallery/Gallery.tsx +5 -7
  1602. package/mobile/src/components/Gallery/GalleryCardInner.tsx +2 -4
  1603. package/mobile/src/components/Gallery/GalleryContainer.tsx +10 -7
  1604. package/mobile/src/components/Gallery/GalleryInner.tsx +3 -2
  1605. package/mobile/src/components/GracePeriod/GracePeriod.example.json +5 -15
  1606. package/mobile/src/components/GracePeriod/GracePeriod.tsx +17 -7
  1607. package/mobile/src/components/GroupBlock/GroupBlock.tsx +2 -1
  1608. package/mobile/src/components/GroupBlock/GroupBlockTabs.tsx +2 -2
  1609. package/mobile/src/components/Header/Header.tsx +4 -3
  1610. package/mobile/src/components/Header/HeaderBurger.tsx +5 -4
  1611. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +6 -4
  1612. package/mobile/src/components/Header/HeaderSubMenu.tsx +3 -2
  1613. package/mobile/src/components/Header/HeaderTop.tsx +3 -3
  1614. package/mobile/src/components/Headline/Headline.tsx +1 -5
  1615. package/mobile/src/components/Headline/constants.ts +1 -1
  1616. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlock.example.json +7 -1
  1617. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +8 -4
  1618. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockContent.ts +3 -0
  1619. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +9 -7
  1620. package/mobile/src/components/LikeControl/LikeControl.tsx +11 -3
  1621. package/mobile/src/components/LinkList/LinkList.tsx +1 -1
  1622. package/mobile/src/components/MobileAppTile/MobileAppTile.example.json +0 -1
  1623. package/mobile/src/components/MobileAppTile/MobileAppTile.tsx +2 -2
  1624. package/mobile/src/components/MobileAppTile/MobileAppTileContent.ts +4 -11
  1625. package/mobile/src/components/Navigation/Navigation.tsx +1 -1
  1626. package/mobile/src/components/Navigation/NavigationItem.tsx +1 -1
  1627. package/mobile/src/components/PictureText/PictureText.tsx +2 -8
  1628. package/mobile/src/components/Placeholder/Placeholder.tsx +2 -2
  1629. package/mobile/src/components/ProductTile/ProductTile.tsx +4 -2
  1630. package/mobile/src/components/PromoTile/PromoTile.tsx +1 -1
  1631. package/mobile/src/components/Recommendation/Recommendation.tsx +2 -1
  1632. package/mobile/src/components/Recommendation/RecommendationCard.tsx +2 -2
  1633. package/mobile/src/components/SafeDepositRental/SafeDepositRental.tsx +4 -3
  1634. package/mobile/src/components/SafeDepositRental/SafeDepositRentalForm.tsx +35 -35
  1635. package/mobile/src/components/SafeDepositRental/SafeDepositRentalTotal.tsx +2 -2
  1636. package/mobile/src/components/StepsBlock/StepsBlock.tsx +4 -4
  1637. package/mobile/src/components/Tabs/Tabs.tsx +3 -2
  1638. package/mobile/src/components/Tabs/renderTab.tsx +2 -2
  1639. package/mobile/src/components/TariffsTable/TariffsTable.tsx +1 -1
  1640. package/mobile/src/components/TariffsTable/TariffsTableCell.tsx +3 -3
  1641. package/mobile/src/components/TariffsTable/TariffsTableRow.tsx +1 -1
  1642. package/mobile/src/components/TariffsTable/TariffsTableTileCell.tsx +3 -5
  1643. package/mobile/src/components/TextBlock/TextBlock.tsx +4 -4
  1644. package/mobile/src/components/Tile/Tile.tsx +1 -6
  1645. package/mobile/src/components/__snapshots__/Blocks.spec.tsx.snap +64 -55
  1646. package/mobile/src/hooks/useExchangeRates.ts +2 -2
  1647. package/mobile/src/hooks/useGeolocation.ts +22 -0
  1648. package/mobile/src/hooks/useLikeService.ts +32 -0
  1649. package/mobile/src/hooks/useLink.ts +1 -1
  1650. package/mobile/src/hooks/useSafeDepositRental.ts +2 -2
  1651. package/mobile/src/hooks/useSearch.ts +10 -0
  1652. package/mobile/src/icons/IconName.ts +4 -4
  1653. package/mobile/src/icons/StateMortgageIcon.svg +1 -0
  1654. package/mobile/src/index.ts +2 -1
  1655. package/mobile/src/react/setup-fixture.ts +2 -55
  1656. package/mobile/src/services/sitemap/useSitemap.ts +2 -2
  1657. package/mobile/src/ui-kit/BlockWrapper.tsx +3 -2
  1658. package/mobile/src/ui-kit/BlocksList/BlocksListProps.ts +0 -2
  1659. package/mobile/src/ui-kit/Button/Button.tsx +2 -2
  1660. package/mobile/src/ui-kit/Button/ButtonInner.tsx +1 -1
  1661. package/mobile/src/ui-kit/Button/ButtonProps.ts +2 -2
  1662. package/mobile/src/ui-kit/Checkbox/Checkbox.tsx +28 -26
  1663. package/mobile/src/ui-kit/Foldable/Foldable.tsx +1 -3
  1664. package/mobile/src/ui-kit/Foldable/useActiveHandler.ts +3 -4
  1665. package/mobile/src/ui-kit/HeaderItem/HeaderItem.tsx +1 -1
  1666. package/mobile/src/ui-kit/Img/Img.tsx +13 -3
  1667. package/mobile/src/ui-kit/Img/ImgAsPicture.tsx +1 -1
  1668. package/mobile/src/ui-kit/InputRange/InputRange.tsx +21 -7
  1669. package/mobile/src/ui-kit/InputRange/InputRangeProps.ts +1 -0
  1670. package/mobile/src/ui-kit/Logo/Logo.tsx +1 -1
  1671. package/mobile/src/ui-kit/Radio/Radio.tsx +1 -1
  1672. package/mobile/src/ui-kit/SearchBar/SearchBar.tsx +2 -2
  1673. package/mobile/src/ui-kit/SearchBar/SearchBarInner.tsx +57 -60
  1674. package/mobile/src/ui-kit/SwipeListControl/SwipeListControl.tsx +3 -3
  1675. package/mobile/src/ui-kit/Tabs/Tabs.tsx +2 -2
  1676. package/mobile/src/ui-kit/TopItem/TopItem.tsx +1 -1
  1677. package/package.json +2 -2
  1678. package/src/common.css +25 -7
  1679. package/src/components/Accordion/Accordion.mobile.tsx +1 -1
  1680. package/src/components/Accordion/Accordion.tsx +2 -2
  1681. package/src/components/Accordion/AccordionItem.mobile.tsx +3 -6
  1682. package/src/components/Accordion/AccordionItem.tsx +3 -4
  1683. package/src/components/Accordion/AccordionItemInner.tsx +1 -1
  1684. package/src/components/Accordion/useActiveHandler.ts +3 -2
  1685. package/src/components/BenefitsBlock/BenefitsBlock.example.json +12 -2
  1686. package/src/components/BenefitsBlock/BenefitsBlock.fixture.tsx +60 -5
  1687. package/src/components/BenefitsBlock/BenefitsBlock.tsx +13 -18
  1688. package/src/components/BenefitsBlock/BenefitsBlockContent.ts +4 -4
  1689. package/src/components/Blocks.spec.tsx +9 -15
  1690. package/src/components/Bonus/Bonus.tsx +15 -7
  1691. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +12 -5
  1692. package/src/components/Calculator/BonusCalculatorForm.tsx +4 -3
  1693. package/src/components/Calculator/Calculator.fixture.tsx +1 -1
  1694. package/src/components/Calculator/Calculator.tsx +8 -7
  1695. package/src/components/Calculator/CreditCalculatorForm.tsx +8 -7
  1696. package/src/components/Calculator/DepositCalculatorForm.tsx +3 -2
  1697. package/src/components/Calculator/MortgageCalculatorForm.tsx +5 -4
  1698. package/src/components/Calculator/renderCalculatorBlock.tsx +1 -1
  1699. package/src/components/Calculator/useBonusCalculatorParams.ts +2 -6
  1700. package/src/components/Calculator/useCalculatorParams.ts +2 -2
  1701. package/src/components/Calculator/useCreditCalculatorParams.ts +1 -6
  1702. package/src/components/Catalog/Catalog.tsx +12 -6
  1703. package/src/components/Catalog/CatalogCard.tsx +3 -5
  1704. package/src/components/ComparisonTable/ComparisonTable.mobile.tsx +3 -2
  1705. package/src/components/ComparisonTable/ComparisonTable.tsx +3 -2
  1706. package/src/components/ComparisonTable/ComparisonTableBody.tsx +5 -4
  1707. package/src/components/ComparisonTable/HeaderCell.mobile.tsx +1 -1
  1708. package/src/components/ComparisonTable/HeaderCell.tsx +1 -1
  1709. package/src/components/ComparisonTable/TableCell.mobile.tsx +1 -1
  1710. package/src/components/ComparisonTable/TableCell.tsx +2 -2
  1711. package/src/components/ComparisonTable/TableColumn.tsx +2 -2
  1712. package/src/components/ComparisonTable/TableRow.tsx +1 -1
  1713. package/src/components/ContentPage/ContentPage.tsx +3 -5
  1714. package/src/components/ContentPage/ContentPageContext.tsx +1 -26
  1715. package/src/components/ExchangeRateTile/CurrencyTable.tsx +1 -1
  1716. package/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +4 -3
  1717. package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +1 -1
  1718. package/src/components/Footer/Footer.mobile.tsx +2 -2
  1719. package/src/components/Footer/HorizontalNavigation.mobile.tsx +2 -2
  1720. package/src/components/Footer/Sitemap.tsx +2 -2
  1721. package/src/components/Footer/TextInformation.mobile.tsx +2 -2
  1722. package/src/components/Footer/TextInformation.tsx +1 -2
  1723. package/src/components/Footer/TextInformationLink.tsx +1 -1
  1724. package/src/components/Gallery/Gallery.mobile.tsx +5 -7
  1725. package/src/components/Gallery/GalleryCardInner.tsx +2 -4
  1726. package/src/components/Gallery/GalleryContainer.tsx +10 -7
  1727. package/src/components/Gallery/GalleryInner.tsx +3 -2
  1728. package/src/components/GracePeriod/GracePeriod.example.json +5 -15
  1729. package/src/components/GracePeriod/GracePeriod.tsx +17 -7
  1730. package/src/components/GroupBlock/GroupBlock.tsx +2 -1
  1731. package/src/components/GroupBlock/GroupBlockTabs.tsx +2 -2
  1732. package/src/components/Header/Header.mobile.tsx +4 -3
  1733. package/src/components/Header/Header.tsx +1 -2
  1734. package/src/components/Header/HeaderBurger.tsx +5 -4
  1735. package/src/components/Header/HeaderSecondaryMenu.tsx +6 -4
  1736. package/src/components/Header/HeaderSubMenu.tsx +3 -2
  1737. package/src/components/Header/HeaderTop.tsx +3 -3
  1738. package/src/components/Headline/Headline.fixture.mobile.tsx +2 -2
  1739. package/src/components/Headline/Headline.fixture.tsx +1 -1
  1740. package/src/components/Headline/Headline.mobile.tsx +1 -5
  1741. package/src/components/Headline/constants.ts +1 -1
  1742. package/src/components/Insurance/Insurance.fixture.tsx +1 -1
  1743. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.example.json +7 -1
  1744. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.tsx +13 -4
  1745. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.tsx +8 -4
  1746. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockContent.ts +3 -0
  1747. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +9 -7
  1748. package/src/components/LikeControl/LikeControl.tsx +11 -3
  1749. package/src/components/LinkDocs/LinkDocsListItem.tsx +1 -1
  1750. package/src/components/LinkList/LinkList.tsx +1 -1
  1751. package/src/components/MobileAppTile/MobileAppTile.example.json +0 -1
  1752. package/src/components/MobileAppTile/MobileAppTile.fixture.tsx +28 -15
  1753. package/src/components/MobileAppTile/MobileAppTile.mobile.tsx +2 -2
  1754. package/src/components/MobileAppTile/MobileAppTile.tsx +13 -18
  1755. package/src/components/MobileAppTile/MobileAppTileContent.ts +4 -11
  1756. package/src/components/Navigation/Navigation.tsx +1 -1
  1757. package/src/components/Navigation/NavigationItem.tsx +1 -1
  1758. package/src/components/PictureText/PictureText.tsx +2 -8
  1759. package/src/components/Placeholder/Placeholder.tsx +2 -2
  1760. package/src/components/ProductBlock/ProductBlock.tsx +1 -1
  1761. package/src/components/ProductBlock/ProductBlockInner.tsx +1 -1
  1762. package/src/components/ProductBlock/renderBenefit.tsx +3 -1
  1763. package/src/components/ProductGallery/ProductGallery.tsx +4 -3
  1764. package/src/components/ProductTile/ProductTile.tsx +4 -2
  1765. package/src/components/PromoTile/PromoTile.tsx +1 -1
  1766. package/src/components/Recommendation/Recommendation.tsx +2 -1
  1767. package/src/components/Recommendation/RecommendationCard.tsx +2 -2
  1768. package/src/components/SafeDepositRental/SafeDepositRental.tsx +4 -3
  1769. package/src/components/SafeDepositRental/SafeDepositRentalForm.tsx +35 -35
  1770. package/src/components/SafeDepositRental/SafeDepositRentalTotal.tsx +2 -2
  1771. package/src/components/StepsBlock/StepsBlock.mobile.tsx +4 -4
  1772. package/src/components/StepsBlock/StepsBlock.tsx +4 -6
  1773. package/src/components/Tabs/Tabs.tsx +3 -2
  1774. package/src/components/Tabs/renderTab.tsx +2 -2
  1775. package/src/components/TariffsTable/TariffsTable.mobile.tsx +1 -1
  1776. package/src/components/TariffsTable/TariffsTable.tsx +3 -2
  1777. package/src/components/TariffsTable/TariffsTableCell.tsx +3 -3
  1778. package/src/components/TariffsTable/TariffsTableRow.tsx +1 -1
  1779. package/src/components/TariffsTable/TariffsTableTileCell.tsx +3 -5
  1780. package/src/components/TextBlock/TextBlock.mobile.tsx +4 -4
  1781. package/src/components/TextBlock/TextBlock.tsx +3 -3
  1782. package/src/components/Tile/Tile.tsx +1 -6
  1783. package/src/components/__snapshots__/Blocks.spec.tsx.snap +64 -55
  1784. package/src/hooks/useExchangeRates.ts +2 -2
  1785. package/src/hooks/useGeolocation.ts +22 -0
  1786. package/src/hooks/useLikeService.ts +32 -0
  1787. package/src/hooks/useLink.ts +1 -1
  1788. package/src/hooks/useSafeDepositRental.ts +2 -2
  1789. package/src/hooks/useSearch.ts +10 -0
  1790. package/src/icons/IconName.ts +4 -1
  1791. package/src/icons/StateMortgageIcon.svg +1 -0
  1792. package/src/index.ts +2 -1
  1793. package/src/react/setup-fixture.ts +2 -55
  1794. package/src/services/sitemap/useSitemap.ts +2 -2
  1795. package/src/ui-kit/BlockWrapper.tsx +3 -2
  1796. package/src/ui-kit/BlocksList/BlocksListProps.ts +0 -2
  1797. package/src/ui-kit/Button/Button.mobile.tsx +2 -2
  1798. package/src/ui-kit/Button/ButtonInner.tsx +1 -1
  1799. package/src/ui-kit/Button/ButtonProps.ts +2 -2
  1800. package/src/ui-kit/Checkbox/Checkbox.tsx +28 -26
  1801. package/src/ui-kit/Foldable/Foldable.tsx +1 -3
  1802. package/src/ui-kit/Foldable/useActiveHandler.ts +3 -4
  1803. package/src/ui-kit/HeaderItem/HeaderItem.mobile.tsx +1 -1
  1804. package/src/ui-kit/Img/Img.mobile.tsx +13 -3
  1805. package/src/ui-kit/Img/ImgAsPicture.tsx +1 -1
  1806. package/src/ui-kit/InputRange/InputRange.tsx +21 -7
  1807. package/src/ui-kit/InputRange/InputRangeProps.ts +1 -0
  1808. package/src/ui-kit/Logo/Logo.mobile.tsx +1 -1
  1809. package/src/ui-kit/Radio/Radio.tsx +1 -1
  1810. package/src/ui-kit/SearchBar/SearchBar.mobile.tsx +2 -2
  1811. package/src/ui-kit/SearchBar/SearchBar.tsx +2 -2
  1812. package/src/ui-kit/SearchBar/SearchBarInner.tsx +57 -60
  1813. package/src/ui-kit/SwipeListControl/SwipeListControl.tsx +3 -3
  1814. package/src/ui-kit/Tabs/Tabs.tsx +2 -2
  1815. package/src/ui-kit/TopItem/TopItem.tsx +1 -1
@@ -1,1804 +1,1909 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.UniMobileBlocks = {}));
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.UniMobileBlocks = {}));
5
5
  })(this, (function (exports) { 'use strict';
6
6
 
7
- const setup = (_jsx, _jsxs) => {
8
- setup._jsx = _jsx;
9
- setup._jsxs = _jsxs || _jsx;
10
- };
11
-
12
- setup.vue = _ => {
13
- const adapter = (type, { children, dangerouslySetInnerHTML, ...rest } = {}) => {
14
- const props = Object.assign({}, rest, dangerouslySetInnerHTML ? { innerHTML: dangerouslySetInnerHTML.__html } : {});
15
- const isComponent = typeof type !== 'string';
16
- const lazyChildren = isComponent ? () => children : children; // Vue optimization
17
- return _(type, props, lazyChildren);
18
- };
19
- setup(adapter);
20
- };
21
-
22
- const jsx = (...args) => setup._jsx(...args);
23
- const jsxs = (...args) => setup._jsxs(...args);
24
-
25
- const JSX = Component => {
26
- if (Component._tmpl) return Component._tmpl;
27
-
28
- Component._tmpl = function JSXTmpl(rawProps, context) {
29
- const { children: rawChildren, ...props } = rawProps || {};
30
-
31
- const defaultSlot = context?.slots?.default; // Vue
32
- const children = rawChildren || (defaultSlot && defaultSlot());
33
- return Component(Object.assign(props, children && { children }), context);
34
- };
35
-
36
- Component._tmpl.inheritAttrs = false; // Vue
37
-
38
- return Component._tmpl;
39
- };
40
-
41
- const getGeolocation = async () => new Promise((resolve) => navigator.geolocation.getCurrentPosition(({ coords }) => resolve(coords)));
42
-
43
- function DaDataAPI(baseURL = '') {
44
- async function getFetcherAddress() {
45
- if (!('geolocation' in navigator)) {
46
- return null;
47
- }
48
- try {
49
- const coords = await getGeolocation();
50
- const response = await fetch(`${baseURL}/geolocate`, {
51
- method: 'POST',
52
- mode: 'cors',
53
- body: JSON.stringify({
54
- lat: coords.latitude,
55
- lon: coords.longitude,
56
- count: 1,
57
- }),
58
- });
59
- const data = (await response.json());
60
- return data?.suggestions?.[0]?.data?.city;
61
- }
62
- catch (e) {
63
- console.error(e);
64
- return null;
65
- }
66
- }
67
- return {
68
- getFetcherAddress,
69
- };
70
- }
71
-
72
- const AUTH_PREFIX = 'guest';
73
- const STORAGE_KEY = 'likesToken';
74
- // eslint-disable-next-line max-lines-per-function
75
- function LikeAPI(projectId, baseURL = '') {
76
- async function getLikeCount(...nodeIds) {
77
- if (!nodeIds.length) {
78
- return [];
79
- }
80
- const { token: Authorization } = await auth();
81
- try {
82
- const response = await fetch(`${baseURL}/assist/v1/public/projects/${projectId}/nodes/likes`, {
83
- method: 'POST',
84
- mode: 'cors',
85
- headers: { 'Content-Type': 'application/json', Authorization },
86
- body: JSON.stringify({
87
- node_ids: nodeIds,
88
- }),
89
- });
90
- const { likes } = await response.json();
91
- return likes || [];
92
- }
93
- catch (e) {
94
- console.error(e);
95
- return [];
96
- }
97
- }
98
- async function like(nodeId) {
99
- if (!nodeId) {
100
- return 0;
101
- }
102
- const { token: Authorization, name } = await auth();
103
- try {
104
- const response = await fetch(`${baseURL}/assist/v1/public/projects/${projectId}/nodes/like`, {
105
- method: 'POST',
106
- mode: 'cors',
107
- headers: {
108
- 'Content-Type': 'application/json',
109
- Authorization,
110
- UserID: name,
111
- },
112
- body: JSON.stringify({
113
- node_id: nodeId,
114
- user_name: name,
115
- }),
116
- });
117
- const { likes } = await response.json();
118
- return likes || 0;
119
- }
120
- catch (e) {
121
- console.error(e);
122
- return 0;
123
- }
124
- }
125
- async function dislike(nodeId) {
126
- if (!nodeId) {
127
- return 0;
128
- }
129
- const { token: Authorization, name } = await auth();
130
- try {
131
- const response = await fetch(`${baseURL}/assist/v1/public/projects/${projectId}/nodes/unlike`, {
132
- method: 'POST',
133
- mode: 'cors',
134
- headers: {
135
- 'Content-Type': 'application/json',
136
- Authorization,
137
- UserID: name,
138
- },
139
- body: JSON.stringify({
140
- node_id: nodeId,
141
- user_name: name,
142
- }),
143
- });
144
- const { likes } = await response.json();
145
- return likes || 0;
146
- }
147
- catch (e) {
148
- console.error(e);
149
- return 0;
150
- }
151
- }
152
- async function auth() {
153
- try {
154
- const userData = JSON.parse(globalThis.localStorage.getItem(STORAGE_KEY) || '');
155
- if (userData?.token) {
156
- return userData;
157
- }
158
- }
159
- catch (e) {
160
- // do nothing
161
- }
162
- try {
163
- const response = await fetch(`${baseURL}/assist/v1/public/auth`, {
164
- method: 'POST',
165
- mode: 'cors',
166
- headers: {
167
- 'Content-Type': 'application/json',
168
- },
169
- body: JSON.stringify({
170
- prefix: AUTH_PREFIX,
171
- }),
172
- });
173
- const { token, name } = await response.json();
174
- globalThis.localStorage.setItem(STORAGE_KEY, JSON.stringify({ token, name }));
175
- return { token, name };
176
- }
177
- catch (e) {
178
- console.error(e);
179
- return {};
180
- }
181
- }
182
- return {
183
- getLikeCount,
184
- like,
185
- dislike,
186
- };
187
- }
188
-
189
- const HeadingClass = {
190
- h0: 'text-m-title',
191
- h1: 'text-m-title',
192
- h2: 'text-m-title',
193
- h3: 'text-h6',
194
- h4: 'text-m-title-xs',
195
- h5: 'text-m-title-xs',
196
- h6: 'text-m-title-xs',
197
- };
198
- const Heading = JSX((props) => {
199
- const { className, headingType = 'h3', title, as: Tag = 'h3' } = props;
200
- return (jsx(Tag, { className: `font-sans font-medium m-0 ${HeadingClass[headingType]} ${className || ''}`, children: title }));
201
- });
202
-
203
- // Generated. Do not touch
204
- /* eslint-disable max-len, max-lines */
205
- var IconMap;
206
- (function (IconMap) {
207
- IconMap["ActualBalanceIcon"] = "ActualBalanceIcon";
208
- IconMap["AirPlane"] = "AirPlane";
209
- IconMap["AppleIcon"] = "AppleIcon";
210
- IconMap["ArrowDownIcon"] = "ArrowDownIcon";
211
- IconMap["ArrowLeftIcon"] = "ArrowLeftIcon";
212
- IconMap["ArrowUpIcon"] = "ArrowUpIcon";
213
- IconMap["AtmIcon"] = "AtmIcon";
214
- IconMap["BankIcon"] = "BankIcon";
215
- IconMap["BurgerIcon"] = "BurgerIcon";
216
- IconMap["Calendar2Icon"] = "Calendar2Icon";
217
- IconMap["CalendarCircleIcon"] = "CalendarCircleIcon";
218
- IconMap["CalendarIcon"] = "CalendarIcon";
219
- IconMap["CalendarTickIcon"] = "CalendarTickIcon";
220
- IconMap["CardIcon"] = "CardIcon";
221
- IconMap["CardPosIcon"] = "CardPosIcon";
222
- IconMap["CardTickIcon"] = "CardTickIcon";
223
- IconMap["CardWithGemIcon"] = "CardWithGemIcon";
224
- IconMap["CarIcon"] = "CarIcon";
225
- IconMap["ChartSquareIcon"] = "ChartSquareIcon";
226
- IconMap["CinemaIcon"] = "CinemaIcon";
227
- IconMap["ClockIcon"] = "ClockIcon";
228
- IconMap["CloseIcon"] = "CloseIcon";
229
- IconMap["ComfortableCompIcon"] = "ComfortableCompIcon";
230
- IconMap["CreditCardsIcon"] = "CreditCardsIcon";
231
- IconMap["DiscountShapeIcon"] = "DiscountShapeIcon";
232
- IconMap["DocIcon"] = "DocIcon";
233
- IconMap["DocIconMonoColor"] = "DocIconMonoColor";
234
- IconMap["DocsIcon"] = "DocsIcon";
235
- IconMap["DocumentTextIcon"] = "DocumentTextIcon";
236
- IconMap["DollarIcon"] = "DollarIcon";
237
- IconMap["DoneIcon"] = "DoneIcon";
238
- IconMap["EarthIcon"] = "EarthIcon";
239
- IconMap["EmptyWalletChangeIcon"] = "EmptyWalletChangeIcon";
240
- IconMap["EmptyWalletIcon"] = "EmptyWalletIcon";
241
- IconMap["EuroIcon"] = "EuroIcon";
242
- IconMap["GeolocationIcon"] = "GeolocationIcon";
243
- IconMap["GlassIcon"] = "GlassIcon";
244
- IconMap["GlobalIcon"] = "GlobalIcon";
245
- IconMap["GpsIcon"] = "GpsIcon";
246
- IconMap["GridIcon"] = "GridIcon";
247
- IconMap["InterestGrowthIcon"] = "InterestGrowthIcon";
248
- IconMap["InterestIcon"] = "InterestIcon";
249
- IconMap["JCBIcon"] = "JCBIcon";
250
- IconMap["Logo"] = "Logo";
251
- IconMap["LoupeIcon"] = "LoupeIcon";
252
- IconMap["MasterCardIcon"] = "MasterCardIcon";
253
- IconMap["MinusIcon"] = "MinusIcon";
254
- IconMap["MirIcon"] = "MirIcon";
255
- IconMap["MoneyIcon"] = "MoneyIcon";
256
- IconMap["MoneyInsuranceIcon"] = "MoneyInsuranceIcon";
257
- IconMap["MonitorMobileIcon"] = "MonitorMobileIcon";
258
- IconMap["NewDocIcon"] = "NewDocIcon";
259
- IconMap["OfficeIcon"] = "OfficeIcon";
260
- IconMap["OkIcon"] = "OkIcon";
261
- IconMap["PackA4"] = "PackA4";
262
- IconMap["PassSendIcon"] = "PassSendIcon";
263
- IconMap["PercentageRoundIcon"] = "PercentageRoundIcon";
264
- IconMap["PercentageSquareIcon"] = "PercentageSquareIcon";
265
- IconMap["PersonalCardIcon"] = "PersonalCardIcon";
266
- IconMap["PlayMarketIcon"] = "PlayMarketIcon";
267
- IconMap["PlusIcon"] = "PlusIcon";
268
- IconMap["PowerIcon"] = "PowerIcon";
269
- IconMap["Profile2UserIcon"] = "Profile2UserIcon";
270
- IconMap["ProfileIcon"] = "ProfileIcon";
271
- IconMap["PumpkinIcon"] = "PumpkinIcon";
272
- IconMap["RoundRubleIcon"] = "RoundRubleIcon";
273
- IconMap["SafeIcon"] = "SafeIcon";
274
- IconMap["ShieldTickIcon"] = "ShieldTickIcon";
275
- IconMap["SignDocsIcon"] = "SignDocsIcon";
276
- IconMap["SmallClockIcon"] = "SmallClockIcon";
277
- IconMap["SoundIcon"] = "SoundIcon";
278
- IconMap["TelegramIcon"] = "TelegramIcon";
279
- IconMap["UnionPayIcon"] = "UnionPayIcon";
280
- IconMap["UserTickIcon"] = "UserTickIcon";
281
- IconMap["VisaIcon"] = "VisaIcon";
282
- IconMap["VKIcon"] = "VKIcon";
283
- IconMap["WalletAdd2Icon"] = "WalletAdd2Icon";
284
- IconMap["WalletAddIcon"] = "WalletAddIcon";
285
- IconMap["WalletIcon"] = "WalletIcon";
286
- IconMap["WalletWithMoneyIcon"] = "WalletWithMoneyIcon";
287
- IconMap["WateringCan"] = "WateringCan";
288
- })(IconMap || (IconMap = {}));
289
- var IconTitleMap;
290
- (function (IconTitleMap) {
291
- IconTitleMap["ActualBalanceIcon"] = "\u0414\u0435\u043D\u044C\u0433\u0438";
292
- IconTitleMap["AirPlane"] = "\u0421\u0430\u043C\u043E\u043B\u0435\u0442";
293
- IconTitleMap["AppleIcon"] = "\u041B\u043E\u0433\u043E \u00ABApple\u00BB";
294
- IconTitleMap["ArrowDownIcon"] = "\u0421\u0442\u0440\u0435\u043B\u043A\u0430 '\u0412\u043D\u0438\u0437'";
295
- IconTitleMap["ArrowLeftIcon"] = "\u0421\u0442\u0440\u0435\u043B\u043A\u0430";
296
- IconTitleMap["ArrowUpIcon"] = "\u0421\u0442\u0440\u0435\u043B\u043A\u0430 \u0432\u0432\u0435\u0440\u0445";
297
- IconTitleMap["AtmIcon"] = "\u0411\u0430\u043D\u043A\u043E\u043C\u0430\u0442";
298
- IconTitleMap["BankIcon"] = "\u0411\u0430\u043D\u043A";
299
- IconTitleMap["BurgerIcon"] = "\u0411\u0443\u0440\u0433\u0435\u0440";
300
- IconTitleMap["Calendar2Icon"] = "\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C 2";
301
- IconTitleMap["CalendarCircleIcon"] = "\u0421\u043A\u0440\u0443\u0433\u043B\u0451\u043D\u043D\u044B\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C";
302
- IconTitleMap["CalendarIcon"] = "\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C";
303
- IconTitleMap["CalendarTickIcon"] = "\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u0441 \u0433\u0430\u043B\u043E\u0447\u043A\u043E\u0439";
304
- IconTitleMap["CardIcon"] = "\u041A\u0440\u0435\u0434. \u043A\u0430\u0440\u0442\u0430";
305
- IconTitleMap["CardPosIcon"] = "\u041A\u0440\u0435\u0434. \u043A\u0430\u0440\u0442\u0430 \u043F\u043E\u0434 \u043D\u0430\u043A\u043B\u043E\u043D\u043E\u043C";
306
- IconTitleMap["CardTickIcon"] = "\u041A\u0440\u0435\u0434. \u043A\u0430\u0440\u0442\u0430 \u0441 \u0433\u0430\u043B\u043E\u0447\u043A\u043E\u0439";
307
- IconTitleMap["CardWithGemIcon"] = "\u041A\u0430\u0440\u0442\u0430 \u0441 \u0434\u0440\u0430\u0433\u043E\u0446\u0435\u043D\u043D\u043E\u0441\u0442\u044F\u043C\u0438";
308
- IconTitleMap["CarIcon"] = "\u041C\u0430\u0448\u0438\u043D\u0430";
309
- IconTitleMap["ChartSquareIcon"] = "\u0414\u0435\u043D\u044C\u0433\u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430";
310
- IconTitleMap["CinemaIcon"] = "\u041A\u0438\u043D\u043E";
311
- IconTitleMap["ClockIcon"] = "\u0427\u0430\u0441\u044B";
312
- IconTitleMap["CloseIcon"] = "\u041A\u0440\u0435\u0441\u0442\u0438\u043A";
313
- IconTitleMap["ComfortableCompIcon"] = "\u041A\u0440\u0435\u0441\u043B\u043E";
314
- IconTitleMap["CreditCardsIcon"] = "\u041A\u0440\u0435\u0434\u0438\u0442\u043D\u044B\u0435 \u043A\u0430\u0440\u0442\u044B";
315
- IconTitleMap["DiscountShapeIcon"] = "\u0421\u043A\u0438\u0434\u043A\u0430";
316
- IconTitleMap["DocIcon"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442";
317
- IconTitleMap["DocIconMonoColor"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442 (\u043E\u0434\u043D\u043E\u0446\u0432\u0435\u0442\u043D\u044B\u0439)";
318
- IconTitleMap["DocsIcon"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B";
319
- IconTitleMap["DocumentTextIcon"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0441 \u0442\u0435\u043A\u0441\u0442\u043E\u043C";
320
- IconTitleMap["DollarIcon"] = "\u0414\u043E\u043B\u043B\u0430\u0440";
321
- IconTitleMap["DoneIcon"] = "\u0417\u0435\u043B\u0451\u043D\u0430\u044F '\u0433\u0430\u043B\u043E\u0447\u043A\u0430'";
322
- IconTitleMap["EarthIcon"] = "\u0417\u0435\u043C\u043B\u044F";
323
- IconTitleMap["EmptyWalletChangeIcon"] = "\u041F\u0443\u0441\u0442\u043E\u0439 \u043A\u043E\u0448\u0435\u043B\u0451\u043A \u0441 \u0432\u043E\u0437\u0432\u0440\u0430\u0442\u043E\u043C";
324
- IconTitleMap["EmptyWalletIcon"] = "\u041F\u0443\u0441\u0442\u043E\u0439 \u043A\u043E\u0448\u0435\u043B\u0451\u043A";
325
- IconTitleMap["EuroIcon"] = "\u0415\u0432\u0440\u043E";
326
- IconTitleMap["GeolocationIcon"] = "\u0413\u0435\u043E\u043B\u043E\u043A\u0430\u0446\u0438\u044F";
327
- IconTitleMap["GlassIcon"] = "\u0417\u0435\u0440\u043A\u0430\u043B\u043E";
328
- IconTitleMap["GlobalIcon"] = "\u0413\u043B\u043E\u0431\u0443\u0441";
329
- IconTitleMap["GpsIcon"] = "Gps";
330
- IconTitleMap["GridIcon"] = "\u0421\u0435\u0442\u043A\u0430 (\u0431\u0435\u043B\u0430\u044F)";
331
- IconTitleMap["InterestGrowthIcon"] = "\u0414\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u0440\u043E\u0441\u0442\u0430";
332
- IconTitleMap["InterestIcon"] = "\u0421\u043A\u0438\u0434\u043A\u0430";
333
- IconTitleMap["JCBIcon"] = "JCB";
334
- IconTitleMap["Logo"] = "Logo";
335
- IconTitleMap["LoupeIcon"] = "\u041B\u0443\u043F\u0430";
336
- IconTitleMap["MasterCardIcon"] = "MasterCard";
337
- IconTitleMap["MinusIcon"] = "\u041C\u0438\u043D\u0443\u0441";
338
- IconTitleMap["MirIcon"] = "\u041C\u0418\u0420";
339
- IconTitleMap["MoneyIcon"] = "\u0414\u0435\u043D\u044C\u0433\u0438";
340
- IconTitleMap["MoneyInsuranceIcon"] = "\u0414\u0435\u043D\u0435\u0436\u043D\u043E\u0435 \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u043D\u0438\u0435";
341
- IconTitleMap["MonitorMobileIcon"] = "\u041C\u043E\u043D\u0438\u0442\u043E\u0440 \u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0439";
342
- IconTitleMap["NewDocIcon"] = "\u041D\u043E\u0432\u044B\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442";
343
- IconTitleMap["OfficeIcon"] = "\u041E\u0444\u0438\u0441";
344
- IconTitleMap["OkIcon"] = "\u041B\u043E\u0433\u043E \u00AB\u041E\u0434\u043D\u043E\u043A\u043B\u0430\u0441\u0441\u043D\u0438\u043A\u0438\u00BB";
345
- IconTitleMap["PackA4"] = "PackA4";
346
- IconTitleMap["PassSendIcon"] = "\u0411\u0438\u0437\u043D\u0435\u0441";
347
- IconTitleMap["PercentageRoundIcon"] = "\u041F\u0440\u043E\u0446\u0435\u043D\u0442\u044B (\u043A\u0440\u0443\u0433.)";
348
- IconTitleMap["PercentageSquareIcon"] = "\u041F\u0440\u043E\u0446\u0435\u043D\u0442\u044B";
349
- IconTitleMap["PersonalCardIcon"] = "\u041F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u0430\u044F \u043A\u0430\u0440\u0442\u0430";
350
- IconTitleMap["PlayMarketIcon"] = "\u041B\u043E\u0433\u043E \u00ABPlayMarket\u00BB";
351
- IconTitleMap["PlusIcon"] = "\u041F\u043B\u044E\u0441";
352
- IconTitleMap["PowerIcon"] = "\u0429\u0438\u0442";
353
- IconTitleMap["Profile2UserIcon"] = "\u041F\u0440\u043E\u0444\u0438\u043B\u044C, 2 \u043F\u0435\u0440\u0441\u043E\u043D\u044B";
354
- IconTitleMap["ProfileIcon"] = "\u041F\u0440\u043E\u0444\u0438\u043B\u044C";
355
- IconTitleMap["PumpkinIcon"] = "\u0422\u044B\u043A\u0432\u0430";
356
- IconTitleMap["RoundRubleIcon"] = "\u0420\u0443\u0431\u043B\u044C (\u043A\u0440\u0443\u0433.)";
357
- IconTitleMap["SafeIcon"] = "\u0421\u0435\u0439\u0444";
358
- IconTitleMap["ShieldTickIcon"] = "\u0411\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C";
359
- IconTitleMap["SignDocsIcon"] = "\u041F\u043E\u0434\u043F\u0438\u0441\u0430\u043D\u043D\u044B\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B";
360
- IconTitleMap["SmallClockIcon"] = "\u041C\u0430\u043B\u0435\u043D\u044C\u043A\u0438\u0435 \u0447\u0430\u0441\u044B";
361
- IconTitleMap["SoundIcon"] = "\u0417\u0432\u0443\u043A";
362
- IconTitleMap["TelegramIcon"] = "\u041B\u043E\u0433\u043E \u00ABTelegram\u00BB";
363
- IconTitleMap["UnionPayIcon"] = "UnionPay";
364
- IconTitleMap["UserTickIcon"] = "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C";
365
- IconTitleMap["VisaIcon"] = "Visa";
366
- IconTitleMap["VKIcon"] = "\u041B\u043E\u0433\u043E \u00ABVK\u00BB";
367
- IconTitleMap["WalletAdd2Icon"] = "\u041F\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u0430\u0440\u0442\u044B";
368
- IconTitleMap["WalletAddIcon"] = "\u041A\u043E\u0448\u0435\u043B\u0451\u043A \u0441 \u043F\u043B\u044E\u0441\u043E\u043C";
369
- IconTitleMap["WalletIcon"] = "\u041A\u043E\u0448\u0435\u043B\u0451\u043A";
370
- IconTitleMap["WalletWithMoneyIcon"] = "\u041A\u043E\u0448\u0435\u043B\u0451\u043A \u0441 \u0434\u0435\u043D\u044C\u0433\u0430\u043C\u0438";
371
- IconTitleMap["WateringCan"] = "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u043E\u0434\u0443\u043A\u0442";
372
- })(IconTitleMap || (IconTitleMap = {}));
373
-
374
- const projectSettings = new (class {
375
- _ = {
376
- PROD_BRANCH: 'master',
377
- FORCED_DRAFT_FLOW: false,
378
- };
379
- setup(_) {
380
- this._ = _;
381
- }
382
- get TEST_BRANCH() {
383
- return this._.TEST_BRANCH;
384
- }
385
- get RC_BRANCH() {
386
- return this._.RC_BRANCH;
387
- }
388
- get PROD_BRANCH() {
389
- return this._.PROD_BRANCH;
390
- }
391
- get FORCED_DRAFT_FLOW() {
392
- return this._.FORCED_DRAFT_FLOW;
393
- }
394
- get ENABLE_ASSIST() {
395
- return this._.ENABLE_ASSIST;
396
- }
397
- get SITEMAP() {
398
- return this._.SITEMAP;
399
- }
400
- get CDN() {
401
- return this._.CDN;
402
- }
403
- })();
404
-
405
- const svgUseStyleMap = {
406
- normal: 'text-primary-main',
407
- black: 'text-black',
408
- white: 'text-black invert',
409
- };
410
- const Icon = JSX(({ className = '', imageClassName = '', name = '', alt = `Иконка ${IconTitleMap[name] || name}`, title = alt, iconVersion = 'normal', asSVG, ...imgProps }) => {
411
- const href = `${projectSettings.CDN || ''}icons/${name}.svg`;
412
- if (asSVG) {
413
- return (jsxs("svg", { className: className, ...imgProps, "aria-hidden": "true", children: [title ? jsx("title", { children: title }) : null, alt ? jsx("desc", { children: alt }) : null, jsx("use", { className: `${svgUseStyleMap[iconVersion]} ${imageClassName}`, href: `${href}#icon`, xlinkHref: `${href}#icon` })] }));
414
- }
415
- return (jsx("img", { className: className, src: href, alt: alt, title: title, ...imgProps, "aria-hidden": "true" }));
416
- });
417
-
418
- function getIconVersion(image) {
419
- return typeof image === 'string' ? 'normal' : image.iconVersion || 'normal';
420
- }
421
-
422
- const sourcesComparator = (a, b) => {
423
- if (a.media && b.media) {
424
- return a.media - b.media;
425
- }
426
- return 0;
427
- };
428
- const ImgAsPicture = JSX(({ className = '', image, imageClassName = '', isMobile = false }) => {
429
- if (!image) {
430
- return null;
431
- }
432
- const pictureStyles = isMobile ? 'flex' : 'flex-none';
433
- return (jsxs("picture", { className: `${pictureStyles} ${className}`, children: [image?.sources?.length
434
- ? image.sources
435
- .sort(sourcesComparator)
436
- .map(({ src, format, media, size }, index) => (jsx("source", { srcSet: src, type: formatToMimeType(format), media: media ? `(max-width: ${media}px)` : '', ...size }, `${index}_${src}`)))
437
- : null, renderImg(image, imageClassName, isMobile)] }));
438
- });
439
- const renderImg = (image, imageClassName = '', isMobile = false) => {
440
- const title = image.title || '';
441
- const alt = image.alt || image.title;
442
- const imgStyle = isMobile ? 'm-auto' : 'm-0';
443
- return (jsx("img", { src: image.src, className: `${imgStyle} ${imageClassName}`, alt: alt, title: title, ...image.size }));
444
- };
445
- function formatToMimeType(format) {
446
- return format ? `image/${String(format)}` : undefined;
447
- }
448
-
449
- const ImgInner = JSX(({ className = '', image, imageClassName = '', isMobile, ...iconProps }) => {
450
- if (!image) {
451
- return null;
452
- }
453
- // backwards compatibility with existing icons in usage
454
- const icon = typeof image === 'string' ? image : image.icon;
455
- if (icon || icon === '') {
456
- return icon.length ? (jsx(Icon, { className: className, imageClassName: imageClassName, iconVersion: getIconVersion(image), name: icon, ...iconProps })) : null;
457
- }
458
- return (jsx(ImgAsPicture, { className: className, imageClassName: imageClassName, image: image, isMobile: isMobile }));
459
- });
460
-
461
- const Img = JSX(({ className = '', image }) => {
462
- return jsx(ImgInner, { className: className, image: image, isMobile: true });
463
- });
464
-
465
- function style2className(style) {
466
- return style ? style.filter(Boolean).join(' ') : '';
467
- }
468
-
469
- const ALIGN_TEXT = {
470
- left: 'text-left',
471
- center: 'text-center',
472
- right: 'text-right',
473
- };
474
- const HEADLINE_BLOCK_STYLE_MAPS = {
475
- transparent: {
476
- background: 'bg-transparent',
477
- text: 'text-primary-text',
478
- description: 'text-primary-text',
479
- },
480
- primary: {
481
- background: 'bg-white',
482
- text: 'text-primary-text',
483
- description: 'text-primary-text',
484
- },
485
- secondary: {
486
- background: 'bg-primary-main',
487
- text: 'text-white',
488
- description: 'text-white/80',
489
- },
490
- };
491
-
492
- const Headline = JSX(({ bgColorHeadline = 'transparent', className = '', title, description, image, align = 'left', }) => {
493
- const STYLE_MAPS = HEADLINE_BLOCK_STYLE_MAPS[bgColorHeadline];
494
- return (jsxs("section", { className: `px-4 py-6 flex flex-col gap-2.5 ${STYLE_MAPS.background} ${className}`, children: [title ? (jsx(Heading, { headingType: "h2", className: `${STYLE_MAPS.text} ${ALIGN_TEXT[align]}`, title: title })) : null, description ? (jsx("p", { className: `font-normal text-m ${STYLE_MAPS.description} ${ALIGN_TEXT[align]} `, children: description })) : null, image?.src && (jsx("div", { className: "mt-2.5 mx-auto flex justify-center", children: jsx(Img, { image: image }) }))] }));
495
- });
496
-
497
- // column-gap between children of SwipeListControl container
498
- const DEFAULT_GAP = 14;
499
- /*
500
- Horizontal padding used on a container above SwipeListControl.
501
- Same value used on a SwipeListControlChildren container to compensate it
502
- and get rid of a clipping effect caused by overflow: hidden.
503
- */
504
- const DEFAULT_PADDING = 16;
505
- // Classes used to compensate outer container padding, so that child elements won't be clipped
506
-
507
- const DOT_STYLES = 'bg-primary-main opacity-30 w-1.5 h-1.5 min-w-1.5 min-h-1.5 rounded-full';
508
- const BASE_DOT_WIDTH = 6;
509
- const ACTIVE_DOT_WIDTH_CHANGE = 16;
510
- const BASE_DOT_OPACITY = 0.3;
511
- const ACTIVE_DOT_OPACITY_CHANGE = 0.7;
512
- const SwipeListControlDots = JSX(({ children, activeIndex, indexFraction, showDots }) => {
513
- const handleClick = (idx) => (e) => {
514
- if (idx === activeIndex) {
515
- return;
516
- }
517
- const contentContainer = e.currentTarget.parentElement
518
- ?.previousElementSibling;
519
- contentContainer?.children[idx]?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
520
- };
521
- return showDots && children?.length ? (jsx("div", { className: "flex gap-2 mx-auto mt-5 w-fit", children: children?.map((_, idx) => (jsx("div", { onClick: handleClick(idx), className: `${DOT_STYLES}`, style: getDotStyles(idx, activeIndex, indexFraction), "aria-hidden": true }, String(idx)))) })) : null;
522
- });
523
- const getDotStyles = (currentIdx, activeIndex, indexFraction) => {
524
- if (currentIdx < activeIndex || currentIdx > activeIndex + 1) {
525
- return;
526
- }
527
- const leftIndexMod = 1 - indexFraction;
528
- const rightIndexMod = indexFraction;
529
- return currentIdx === activeIndex
530
- ? {
531
- opacity: `${BASE_DOT_OPACITY + ACTIVE_DOT_OPACITY_CHANGE * leftIndexMod}`,
532
- width: `${BASE_DOT_WIDTH + ACTIVE_DOT_WIDTH_CHANGE * leftIndexMod}px`,
533
- }
534
- : {
535
- opacity: `${BASE_DOT_OPACITY + ACTIVE_DOT_OPACITY_CHANGE * rightIndexMod}`,
536
- width: `${BASE_DOT_WIDTH + ACTIVE_DOT_WIDTH_CHANGE * rightIndexMod}px`,
537
- };
538
- };
539
-
540
- const SwipeListControlItem = JSX(({ className = '', children, ...rest }) => {
541
- return (jsx("div", { className: `snap-center snap-always min-w-full box-border ${className}`, role: "listitem", ...rest, children: children }));
542
- });
543
-
544
- // styles used to compensate outer container padding to get rid of clipping effect
545
- const getContainerStyle = (padding) => {
546
- return {
547
- marginLeft: `${-padding}px`,
548
- marginRight: `${-padding}px`,
549
- paddingLeft: `${padding}px`,
550
- paddingRight: `${padding}px`,
551
- };
552
- };
553
-
554
- const SwipeListControlList = JSX(({ className = '', children, activeIndex, onScroll, gap = DEFAULT_GAP, padding = DEFAULT_PADDING, }) => {
555
- return (jsx("div", { className: `overflow-auto flex horizontal-list no-scrollbar ${className}`, style: { ...getContainerStyle(padding), gap: `${gap}px` }, role: "list", onScroll: onScroll, children: children?.length ? (children?.map((child, idx) => (jsx(SwipeListControlItem, { style: getContainerStyle(padding / 4), "aria-current": Boolean(activeIndex === idx), children: child }, String(idx))))) : (jsx(SwipeListControlItem, { children: children })) }));
556
- });
557
-
558
- /*
559
- Returns object containing whole index part, and it's decimal part for a given
560
- scrollLeft value of a container and an array of tuple containing values of a
561
- start and end boundaries of a scrollable child, right boundary non-inclusive.
562
- Returns object with index equal -1 and fraction equal 0 if scrollLeft is outside given scrollPoints
563
- */
564
- const getIndexParts = (scrollLeft, scrollPoints) => {
565
- const index = scrollPoints.findIndex(([pointStart, pointEnd]) => pointStart <= scrollLeft && scrollLeft < pointEnd);
566
- if (index < 0) {
567
- return { index, fraction: 0 };
568
- }
569
- const [start, end] = scrollPoints[index];
570
- const fraction = (scrollLeft - start) / (end - start);
571
- return { index, fraction };
572
- };
573
-
574
- /*
575
- Calculates array of breakpoints for each scrollable element in container.
576
- Returns array of tuples consisting of [start, end] boundary scrollLeft values.
577
- */
578
- const getScrollPoints = ({ gap, padding, clientWidth, scrollWidth, childElementCount, itemWidth, }) => {
579
- const scrollableDistance = scrollWidth - clientWidth;
580
- if (childElementCount === 2) {
581
- return [
582
- [0, scrollableDistance],
583
- [scrollableDistance, scrollWidth],
584
- ];
585
- }
586
- const scrollItemWidth = itemWidth + gap;
587
- const edgeScrollDistance = clientWidth - gap - padding;
588
- const lastScrollableIdx = childElementCount - 2;
589
- const scrollPoints = new Array(childElementCount)
590
- .fill(0)
591
- .map((_, idx) => idx === 0 || idx === lastScrollableIdx
592
- ? [
593
- idx > 0 ? scrollableDistance - edgeScrollDistance : 0,
594
- idx > 0 ? scrollableDistance : edgeScrollDistance,
595
- ]
596
- : [
597
- (idx - 1) * scrollItemWidth + edgeScrollDistance,
598
- idx * scrollItemWidth + edgeScrollDistance,
599
- ]);
600
- scrollPoints[childElementCount - 1] = [scrollableDistance, scrollWidth];
601
- return scrollPoints;
602
- };
603
-
604
- const SwipeListControl = JSX(({ className, context, children, gap = DEFAULT_GAP, padding = DEFAULT_PADDING, showDots = true, onSlideChange, }) => {
605
- const [activeIndex, setActiveIndex] = context.useState(0);
606
- const [indexFraction, setIndexFraction] = context.useState(0);
607
- const dotsProps = {
608
- activeIndex,
609
- indexFraction,
610
- showDots,
611
- children,
612
- };
613
- const handleScroll = (e) => {
614
- const { scrollLeft, clientWidth, childElementCount, scrollWidth, children: childrenCollection, } = e?.currentTarget;
615
- // horizontal PADDING / 2 to compensate padding-margin combo of child container
616
- // without CSS calc function, as wrapper element gets bigger in the DOM, remaining same visually
617
- const itemWidth = childrenCollection[0].offsetWidth - padding / 2;
618
- const scrollPoints = getScrollPoints({
619
- gap,
620
- padding,
621
- clientWidth,
622
- scrollWidth,
623
- childElementCount,
624
- itemWidth,
625
- });
626
- const { index, fraction } = getIndexParts(scrollLeft, scrollPoints);
627
- if (index !== activeIndex && onSlideChange) {
628
- onSlideChange();
629
- }
630
- setActiveIndex(index);
631
- setIndexFraction(fraction);
632
- };
633
- return (jsxs("div", { className: className, children: [jsx(SwipeListControlList, { gap: gap, padding: padding, activeIndex: activeIndex, onScroll: handleScroll, children: children }), jsx(SwipeListControlDots, { ...dotsProps })] }));
634
- });
635
-
636
- const LinkDocsListItemBase = JSX(({ className, iconClassName, textClassName, suffixClassName, doc, icon }) => {
637
- const { text, fileSize, ...linkProps } = doc;
638
- return (jsxs("a", { className: className, role: "link", ...linkProps, children: [icon ? (jsx(Img, { className: iconClassName, image: icon, width: "24px", height: "24px", asSVG: true })) : null, text ? (jsxs("span", { className: textClassName, children: [text, jsx("span", { className: suffixClassName, children: linkProps?.href && formatSuffix(getExtFromHref(linkProps.href), fileSize) })] })) : null] }));
639
- });
640
- const formatSuffix = (ext, fileSize) => {
641
- const prefix = ext || fileSize ? ',' : '';
642
- const extension = ext ? ` ${ext}` : '';
643
- const size = fileSize ? ` (${fileSize})` : '';
644
- return prefix + extension + size;
645
- };
646
- const getExtFromHref = (href) => {
647
- if (!href) {
648
- return '';
649
- }
650
- const index = href.lastIndexOf('.');
651
- return index !== -1 ? href.substring(index + 1) : '';
652
- };
653
-
654
- const LinkDocsListItem = JSX(({ className = '', doc, icon }) => (jsx(LinkDocsListItemBase, { className: `flex h-full box-border ${className}`, iconClassName: "mr-3 min-w-6 min-h-6", doc: doc, icon: icon })));
655
-
656
- const LinkDocsHorizontalList = JSX(({ context, hasBorder = true, documents, icon }) => {
657
- return (jsx(SwipeListControl, { context: context, className: "text-s text-primary-main mt-5", children: documents?.length
658
- ? documents.map((doc, i) => (jsx(LinkDocsListItem, { className: hasBorder ? 'rounded-md border-main-stroke border border-solid p-4' : '', doc: doc, icon: icon }, String(i))))
659
- : null }));
660
- });
661
-
662
- const LinkDocsVerticalList = JSX(({ hasBorder = true, documents, icon }) => {
663
- return (jsx("div", { className: `text-s text-primary-main flex flex-col mt-5 ${hasBorder ? 'gap-3.5' : 'gap-2'}`, role: "list", children: documents?.length
664
- ? documents.map((doc, i) => (jsx("div", { role: "listitem", children: jsx(LinkDocsListItem, { className: hasBorder ? 'rounded-md border-main-stroke border border-solid p-4' : '', doc: doc, icon: icon }) }, String(i))))
665
- : null }));
666
- });
667
-
668
- const LinkDocs = JSX(({ className = '', context, title, description, icon = { icon: 'DocIconMonoColor' }, documents, orientation = 'vertical', hasBorder = true, }) => {
669
- return (jsxs("section", { className: `font-sans text-primary-text py-6 px-4 bg-white overflow-x-hidden ${className}`, children: [jsx(Headline, { className: `!p-0 ${description ? 'gap-2' : 'gap-5'}`, title: title, description: description, context: context, align: "center" }), orientation === 'vertical' ? (jsx(LinkDocsVerticalList, { hasBorder: hasBorder, documents: documents, icon: icon })) : (jsx(LinkDocsHorizontalList, { context: context, hasBorder: hasBorder, documents: documents, icon: icon }))] }));
670
- });
671
-
672
- const isURL = (href) => href?.includes('//');
673
- const withoutQuery = (href) => (href || '').replace(/\/?\?.*/, '');
674
- const getOrigin = (href) => {
675
- if (!href || !isURL(href)) {
676
- return undefined;
677
- }
678
- const url = href;
679
- const protoSeparator = '//';
680
- const endOfProto = url.indexOf(protoSeparator);
681
- const endOfOrigin = url.indexOf('/', endOfProto + protoSeparator.length);
682
- return endOfOrigin !== -1 ? url.substring(0, endOfOrigin) : url;
683
- };
684
- const getHash = (href) => {
685
- if (!href || !isURL(href)) {
686
- return undefined;
687
- }
688
- const hashIndex = href.indexOf('#');
689
- return hashIndex !== -1 ? href.substring(hashIndex, href.length) : undefined;
690
- };
691
- const isHash = (href) => href?.startsWith('#');
692
-
693
- var url = /*#__PURE__*/Object.freeze({
694
- __proto__: null,
695
- isURL: isURL,
696
- withoutQuery: withoutQuery,
697
- getOrigin: getOrigin,
698
- getHash: getHash,
699
- isHash: isHash
700
- });
701
-
702
- const MOBILE_URL_PATH = '/mobile';
703
- const withoutMobilePath = (href) => (href || '').replace(MOBILE_URL_PATH, '');
704
-
705
- const adjustHref = (href, router) => {
706
- if (!href) {
707
- return href;
708
- }
709
- const relativeHref = toRelativeHref(href, router) || '';
710
- const isMobilePage = router?.pathname.startsWith(MOBILE_URL_PATH);
711
- return isMobilePage && !isURL(relativeHref) ? `${MOBILE_URL_PATH}${relativeHref}` : relativeHref;
712
- };
713
- const toRelativeHref = (href, router) => {
714
- if (!href) {
715
- return href;
716
- }
717
- const origin = getOrigin(router?.href);
718
- return origin ? href.replace(origin, '') || '/' : href;
719
- };
720
-
721
- const defaultHandlerDecorator = (handler) => handler;
722
- function useLink({ router, handlerDecorator = defaultHandlerDecorator, }, link) {
723
- const href = adjustHref(link.href, router);
724
- return {
725
- ...link,
726
- href,
727
- 'aria-label': link.text,
728
- onClick: handlerDecorator((ev) => {
729
- const isLocalHref = href && !isURL(href);
730
- const isLocalTarget = !link.target || link.target === '_self';
731
- if (isLocalHref && isLocalTarget) {
732
- ev?.preventDefault();
733
- router.push(href);
734
- }
735
- }, link),
736
- };
737
- }
738
-
739
- const ButtonInner = JSX((props) => {
740
- const { text, aboveText, appendLeft, appendRight } = props;
741
- return (jsxs("div", { className: getButtonStyle(props), children: [appendLeft ? appendLeft : null, isWithText(props) ? (jsxs("div", { children: [jsx("div", { className: "text-xs text-left", children: aboveText }), jsx("div", { className: `text-left ${aboveText ? 'text-s -mt-0.5' : 'text-l'}`, children: text })] })) : null, appendRight ? appendRight : null] }));
742
- });
743
- const getButtonStyle = (props) => {
744
- const { version, aboveText, rounded } = props;
745
- if (version === 'link') {
746
- return '';
747
- }
748
- const withTextStyle = `gap-2 ${aboveText ? 'py-2.5 px-7' : 'py-4 px-9'}`;
749
- return [
750
- 'flex items-center justify-center',
751
- isWithText(props) ? withTextStyle : 'h-12 w-12',
752
- rounded ? 'rounded-full' : '',
753
- ].join(' ');
754
- };
755
- const isWithText = ({ text, aboveText, appendLeft }) => Boolean(text || aboveText || !appendLeft);
756
-
757
- const buttonStyleMap = {
758
- primary: 'text-white bg-primary-main hover:bg-primary-hover active:bg-primary-active',
759
- secondary: 'text-primary-main bg-secondary-light hover:bg-secondary-hover active:bg-secondary-active',
760
- link: 'text-primary-main',
761
- };
762
- const buttonDisabledStyleMap = {
763
- primary: 'bg-secondary-dark text-secondary-text',
764
- secondary: 'bg-secondary-light text-secondary-text',
765
- link: '',
766
- };
767
- const styleButton = 'w-full text-center font-sans select-none';
768
- const Button = JSX(({ className, text, aboveText, appendLeft, href, target, onClick, children, disabled, rounded, version = 'primary', ariaLabel, ...rest }) => {
769
- const buttonInner = children ?? (jsx(ButtonInner, { text: text, aboveText: aboveText, appendLeft: appendLeft, rounded: rounded, version: version }));
770
- if (disabled) {
771
- return (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: -1, className: `inline-block ${styleButton} ${buttonDisabledStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, children: buttonInner }));
772
- }
773
- return (jsx("a", { className: `${styleButton} inline-block cursor-pointer no-underline ${buttonStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, role: !href ? 'button' : 'link', ...rest, children: buttonInner }));
774
- });
775
-
776
- const ButtonSection = JSX(({ context, className = '', buttons }) => {
777
- const { handlerDecorator } = context;
778
- const router = context.useRouter();
779
- return buttons && buttons?.length ? (jsx("div", { className: className, children: buttons.map((button, index) => renderButton$2(useLink({ router, handlerDecorator }, button), index)) })) : null;
780
- });
781
- function renderButton$2({ icon, iconRight, ...button }, i) {
782
- if (!button?.text) {
783
- return null;
784
- }
785
- return icon ? (jsx(Button, { appendLeft: jsx(Img, { image: icon, width: "24", height: "24", asSVG: true }), appendRight: jsx(Img, { image: iconRight, width: "24", height: "24", asSVG: true }), ...button }, String(i))) : (jsx(Button, { ...button }, String(i)));
786
- }
787
-
788
- const LIST_STYLE_CLASSES = {
789
- primary: 'rounded-full inline-block mr-3 mt-2',
790
- secondary: 'rounded-full inline-block mr-3 mt-2',
791
- gray: 'rounded-full inline-block mr-3 mt-2',
792
- tile: 'rounded-full inline-block mr-4 mt-3',
793
- 'tile-white': 'rounded-full inline-block mr-4 mt-3',
794
- };
795
- const LIST_DOT_STYLE_MAP = {
796
- primary: 'bg-primary-text',
797
- secondary: 'bg-white',
798
- gray: 'bg-secondary-text',
799
- tile: 'bg-black',
800
- 'tile-white': 'bg-white',
801
- };
802
- const ListItem = JSX(({ className = '', isDotted = true, children, version = 'primary' }) => {
803
- return (jsxs("div", { className: `font-sans flex items-start ${className}`, role: "listitem", children: [isDotted ? jsx("div", { className: getListStyle(version) }) : null, jsx("span", { children: children })] }));
804
- });
805
- const getListStyle = (version) => {
806
- const size = {
807
- primary: 'w-2 h-2 min-w-2 min-h-2',
808
- secondary: 'w-2 h-2 min-w-2 min-h-2',
809
- gray: 'w-1.5 h-1.5 min-w-1.5 min-h-1.5',
810
- tile: 'w-[7px] h-[7px] min-w-[7px] min-h-[7px]',
811
- 'tile-white': 'w-[7px] h-[7px] min-w-[7px] min-h-[7px]',
812
- };
813
- return `${LIST_STYLE_CLASSES[version]} ${LIST_DOT_STYLE_MAP[version]} ${size[version]}`;
814
- };
815
-
816
- const TEXT_STYLE_MAP = {
817
- primary: 'text-primary-text',
818
- secondary: 'text-white',
819
- gray: 'text-secondary-text',
820
- tile: 'text-primary-text',
821
- 'tile-white': 'text-white',
822
- };
823
- const List = JSX((props) => {
824
- const { className = '', itemClassName, isDotted, items, version = 'primary' } = props;
825
- return (jsx("section", { className: `${TEXT_STYLE_MAP[version]} ${className}`, role: "list", children: items?.length
826
- ? items.map((_, i) => (jsx(ListItem, { className: itemClassName, isDotted: isDotted, version: version, children: _ }, String(i))))
827
- : null }));
828
- });
829
-
830
- const BaseTile = JSX(({ className = '', title = '', children, buttons, image }) => {
831
- 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", { children: buttons }) : null] }), image] })] }));
832
- });
833
-
834
- const benefitTitleStyleMap = {
835
- primary: 'text-primary-text',
836
- secondary: 'text-white',
837
- };
838
- const benefitDescStyleMap = {
839
- primary: 'text-secondary-text',
840
- secondary: 'text-white',
841
- };
842
- function renderBenefit({ benefit, version = 'primary' }, i) {
843
- const isIconWhite = version === 'secondary';
844
- return (jsxs("div", { className: "flex gap-3 items-center mb-2.5 last:mb-0", children: [benefit.icon ? (jsx(Img, { className: renderBenefitIconBgStyle(version), image: { ...benefit?.icon, iconVersion: isIconWhite ? 'white' : 'normal' }, width: "24", height: "24", asSVG: true })) : null, jsx("div", { className: `text-l m-0 ${benefitTitleStyleMap[version]}`, children: benefit.label }), benefit.description && (jsx("div", { className: `text-s ${benefitDescStyleMap[version]}`, children: benefit.description }))] }, String(i)));
845
- }
846
- function renderBenefitIconBgStyle(version) {
847
- let bgColorStyle = 'text-primary-main';
848
- if (version === 'secondary') {
849
- bgColorStyle = 'text-black';
850
- }
851
- return `w-6 h-6 rounded-full box-border ${bgColorStyle}`;
852
- }
853
-
854
- const ProductBlockInner = JSX(({ className = '', context, title, headlineVersion = 'L', description, benefits, benefitsVersion = 'normal', buttons, image, items, version = 'primary', isDotted = true, label, }) => {
855
- return (jsxs("div", { className: `w-full ${className}`, children: [jsxs("div", { children: [label ? renderLabel(label, version) : null, jsx(Headline, { context: context, className: "!p-0 max-w-[600px]", title: title, description: description, bgColorHeadline: version, headlineVersion: headlineVersion }), jsxs(BaseTile, { context: context, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex flex-col mt-5 gap-2.5" })) : null, children: [benefits?.filter((_) => _.label)?.length ? (jsx("div", { className: "mt-3", children: benefits.map((benefit, i) => renderBenefit({ benefit, version, benefitsVersion }, i)) })) : null, items?.length ? (jsx(List, { className: "mt-3 text-m", items: items, version: version, isDotted: isDotted })) : null] })] }), renderImage$1(image)] }));
856
- });
857
- function renderImage$1(image) {
858
- return image?.src ? (jsx(Img, { imageClassName: "mt-5 mx-auto block", image: { className: 'block', ...image } })) : null;
859
- }
860
- const labelStyleMap = {
861
- primary: 'text-primary-main border-secondary-hover',
862
- secondary: 'text-white/80',
863
- };
864
- const renderLabel = (label, version) => (jsx("div", { className: `px-2.5 py-1.5 mb-5 rounded-md border-2 border-solid w-fit ${labelStyleMap[version]}`, children: label }));
865
-
866
- const productBlockStyleMap = {
867
- primary: 'bg-white text-primary-text',
868
- secondary: 'bg-primary-main text-white',
869
- };
870
- const ProductBlock = JSX((props /* Get rid of image and benefits */) => {
871
- const { className = '', version = 'primary' } = props;
872
- return (jsx("section", { className: `font-sans bg-white px-4 py-6 ${productBlockStyleMap[version]} ${className}`, children: jsx(ProductBlockInner, { ...props }) }));
873
- });
874
-
875
- const textBlockStyleMaps = {
876
- primary: {
877
- background: 'bg-white',
878
- icon: 'bg-primary-main text-white',
879
- title: 'text-primary-text',
880
- description: 'text-secondary-text',
881
- },
882
- secondary: {
883
- background: 'bg-primary-main',
884
- icon: 'bg-white text-primary-main',
885
- title: 'text-white',
886
- description: 'text-white',
887
- },
888
- 'secondary-light': {
889
- background: 'bg-primary-main/10',
890
- icon: 'bg-primary-main text-white',
891
- title: 'text-primary-text',
892
- description: 'text-secondary-text',
893
- },
894
- };
895
- const TextBlock = JSX(({ title, description, blockVersion = 'primary', iconVersion, image, className = '', items, isDotted = true, }) => {
896
- const textBlockStyleMap = textBlockStyleMaps[blockVersion];
897
- const listBlockVersion = blockVersion === 'secondary' ? 'secondary' : 'gray';
898
- return (jsxs("section", { className: `font-sans px-4 py-[18px] flex flex-col ${textBlockStyleMap.background} ${className}`, children: [iconVersion === 'small' ? renderIcon(textBlockStyleMap.icon) : null, iconVersion === 'big' ? renderImage(image) : null, jsxs("div", { className: "py-0.5", children: [title ? (jsx("div", { className: `font-medium text-base mb-1 ${textBlockStyleMap.title}`, children: title })) : null, description ? (jsx("div", { className: `text-sm ${textBlockStyleMap.description}`, children: description })) : null, items?.length ? (jsx(List, { className: "mt-1 text-m-md", items: items, isDotted: isDotted, version: listBlockVersion })) : null] })] }));
899
- });
900
- function renderIcon(className) {
901
- return (jsx("div", { className: "mb-3", children: jsx("div", { className: `rounded-full h-4 w-4 text-center text-xs ${className}`, children: "i" }) }));
902
- }
903
- function renderImage(image) {
904
- return image?.src ? jsx(Img, { className: "pb-3 mr-auto", image: image }) : null;
905
- }
906
-
907
- const blockStyle = {
908
- primary: 'bg-white',
909
- secondary: 'bg-primary-main text-white',
910
- };
911
- const Gallery = JSX(({ context, title, description, cards = [], className, orientation = 'horizontal' }) => {
912
- const headingClassName = description ? 'mb-2' : 'mb-5';
913
- return (jsxs("section", { className: `relative font-sans text-primary-text bg-white px-4 py-6 overflow-hidden ${className}`, children: [jsxs("div", { className: "flex flex-col items-center mb-5", children: [title ? (jsx(Heading, { headingType: "h3", className: `text-center ${headingClassName}`, title: title })) : null, description ? (jsx("div", { className: "font-normal text-m-md max-w-[600px] text-center mb-5", children: description })) : null] }), renderCardsLayout(orientation, cards, context)] }));
914
- });
915
- function renderCardsLayout(orientation, cards, context) {
916
- return orientation === 'horizontal' ? (jsx(SwipeListControl, { context: context, children: cards?.map(renderCard) })) : (jsx("div", { className: "grid gap-[14px]", children: cards?.map(renderCard) }));
917
- }
918
- function renderCard(card, key) {
919
- return (jsxs("div", { className: `h-full justify-between box-border horizontal-list-item border-solid border rounded-md border-main-stroke p-4 flex flex-col
920
- ${blockStyle[card.version ?? 'primary']}`, children: [jsxs("div", { children: [card.image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-3.5", image: card.image }) })) : null, card.title ? jsx("h3", { className: `font-medium text-m-title-xs m-0`, children: card.title }) : null, card.description ? renderDescription(card) : null, card.items?.length ? renderItems(card.items, card.isDotted, card.version) : null] }), card?.button?.text ? renderButton$1(card.button) : null] }, key));
921
- }
922
- function renderButton$1(button) {
923
- return (jsx(Button, { className: "mt-3", appendLeft: button?.icon && jsx(Img, { image: button?.icon, width: "24px", height: "24px", asSVG: true }), ...button }));
924
- }
925
- function renderDescription(card) {
926
- return (jsx("div", { className: `text-secondary-text mt-1 text-m-sm ${card.version === 'secondary' ? 'text-white opacity-80' : ''}`, children: card.description }));
927
- }
928
- function renderItems(items, isDotted, version = 'primary') {
929
- return (jsx("section", { className: "mt-3", children: items.map((item, i) => (jsxs("div", { children: [isDotted ? jsx("div", { className: getListStyle(version) }) : null, jsx("span", { className: "text-m-md font-medium", children: item.title }), jsx("span", { className: `text-m-sm pl-2 ${version === 'primary' ? 'text-secondary-text' : ''}`, children: item.text })] }, String(i)))) }));
930
- }
931
-
932
- class EventBus {
933
- static inst = new EventBus();
934
- subscribers = {};
935
- subjectsStateMap = {};
936
- subscribe(type, listener) {
937
- this.subscribers[type] ||= [];
938
- this.subscribers[type]?.push(listener);
939
- const latestEvent = this.subjectsStateMap[type];
940
- if (latestEvent) {
941
- listener(latestEvent);
942
- }
943
- return () => {
944
- this.unsubscribe(type, listener);
945
- };
946
- }
947
- unsubscribe(type, listener) {
948
- this.subscribers[type] = this.subscribers[type]?.filter((s) => s !== listener);
949
- }
950
- fire(type, event) {
951
- this.subjectsStateMap[type] = event;
952
- this.subscribers[type]?.forEach((s) => s(event));
953
- }
954
- subject(type, event) {
955
- this.subjectsStateMap[type] = event;
956
- }
957
- }
958
-
959
- const changeHashOnObserve = (entries) => {
960
- if (!entries.length) {
961
- return;
962
- }
963
- const [entry] = entries;
964
- if (entry.isIntersecting) ;
965
- };
966
-
967
- const BlockWrapper = JSX(({ anchor, className, context, children, tag = 'section', labels }) => {
968
- const Tag = tag;
969
- const { IntersectionObserverTag } = context;
970
- const [shouldRenderBlock, setShouldRenderBlock] = context.useState(true);
971
- context.useEffect(() => EventBus.inst.subscribe('tab', (event) => {
972
- setShouldRenderBlock(!labels?.length || !event.label || labels.includes(event.label));
973
- }), [labels]);
974
- if (!shouldRenderBlock) {
975
- return null;
976
- }
977
- return anchor ? (jsx(IntersectionObserverTag, { tag: tag, className: className, observerCallback: changeHashOnObserve, observerOptions: { threshold: 1 }, anchor: anchor, children: children })) : (jsx(Tag, { className: className, children: children }));
978
- });
979
-
980
- const LinkList = JSX(({ className = '', documents, ...rest }) => {
981
- return (jsx(BlockWrapper, { className: `font-sans bg-white mt-[10px] ${className}`, ...rest, children: jsx("ul", { className: "flex flex-col text-sm text-secondary-text p-0", children: documents?.length ? renderLinkListItem(documents) : null }) }));
982
- });
983
- const renderLinkListItem = (documents) => {
984
- return documents.map((doc, i) => {
985
- const { text, ...linkProps } = doc;
986
- return (jsx("li", { className: "mb-4 list-none", children: jsx("a", { className: "hover:text-primary-main", role: "link", ...linkProps, children: text ? text : null }) }, `list_item_${String(i)}`));
987
- });
988
- };
989
-
990
- const EmbeddableBlocks = {
991
- Headline,
992
- LinkDocs,
993
- TextBlock,
994
- ProductBlock,
995
- Gallery,
996
- LinkList,
997
- };
998
-
999
- const renderBlocksList = ({ blocks, context, className = '' }) => blocks?.length ? blocks.map(renderBlock$1({ context, className })) : null;
1000
- const renderBlock$1 = ({ context, className }) => (block, i) => {
1001
- if (!block) {
1002
- return null;
1003
- }
1004
- const { style, blockListType: type, ...rest } = block;
1005
- if (!type || !(type in EmbeddableBlocks)) {
1006
- return null;
1007
- }
1008
- const classNameBlock = style2className(style);
1009
- const EmbeddedBlock = EmbeddableBlocks[type];
1010
- return (jsx(EmbeddedBlock, { className: `${className} ${classNameBlock}`, context: context, ...rest }, `block_${i}`));
1011
- };
1012
-
1013
- const AccordionItemInner = JSX(({ blocks, context }) => {
1014
- return (jsx("div", { className: "flex flex-wrap transition-all duration-300 max-h-0 overflow-hidden group-last:last:pb-0", children: renderBlocksList({ context, blocks, className: '!px-0' }) }));
1015
- });
1016
-
1017
- const useActiveHandler = ({ context, blocks, initialState = false }) => {
1018
- const [isActive, setIsActive] = context.useState(initialState);
1019
- const hasContent = blocks?.length;
1020
- const icon = isActive ? 'MinusIcon' : 'PlusIcon';
1021
- const handleToggle = (e) => {
1022
- const currentTarget = e.currentTarget;
1023
- if (!currentTarget) {
1024
- return;
1025
- }
1026
- setIsActive(!isActive);
1027
- const contentBlock = currentTarget.nextSibling;
1028
- contentBlock.style.maxHeight = contentBlock.style.maxHeight
1029
- ? ''
1030
- : `${contentBlock.scrollHeight}px`;
1031
- };
1032
- return { isActive, hasContent, icon, handleToggle };
1033
- };
1034
-
1035
- const AccordionItem = JSX(({ label, labelIcon, blocks, bordered, context }) => {
1036
- const { hasContent, icon, handleToggle } = useActiveHandler({
1037
- context,
1038
- blocks,
1039
- });
1040
- return (jsxs("li", { className: `${borderedLiClass(bordered)} border-solid border-main-divider`, children: [jsxs("button", { className: `border-none bg-transparent flex justify-between text-left w-full font-sans text-primary-text
7
+ let _hooks;
8
+ const setupHooks = (_) => {
9
+ _hooks = _;
10
+ };
11
+ const lazyHook = (name) => (...args) => _hooks[name](...args);
12
+ const useState = lazyHook('useState');
13
+ const useEffect = lazyHook('useEffect');
14
+ const useCallback = lazyHook('useCallback');
15
+ const useMemo = lazyHook('useMemo');
16
+
17
+ const setup = (_jsx, _jsxs) => {
18
+ globalThis._uni = {
19
+ _jsx,
20
+ _jsxs: _jsxs || _jsx
21
+ };
22
+ };
23
+
24
+ const getGeolocation = async () => new Promise((resolve) => navigator.geolocation.getCurrentPosition(({ coords }) => resolve(coords)));
25
+
26
+ function DaDataAPI(baseURL = '') {
27
+ async function getFetcherAddress() {
28
+ if (!('geolocation' in navigator)) {
29
+ return null;
30
+ }
31
+ try {
32
+ const coords = await getGeolocation();
33
+ const response = await fetch(`${baseURL}/geolocate`, {
34
+ method: 'POST',
35
+ mode: 'cors',
36
+ body: JSON.stringify({
37
+ lat: coords.latitude,
38
+ lon: coords.longitude,
39
+ count: 1,
40
+ }),
41
+ });
42
+ const data = (await response.json());
43
+ return data?.suggestions?.[0]?.data?.city;
44
+ }
45
+ catch (e) {
46
+ console.error(e);
47
+ return null;
48
+ }
49
+ }
50
+ return {
51
+ getFetcherAddress,
52
+ };
53
+ }
54
+
55
+ const AUTH_PREFIX = 'guest';
56
+ const STORAGE_KEY = 'likesToken';
57
+ // eslint-disable-next-line max-lines-per-function
58
+ function LikeAPI(projectId, baseURL = '') {
59
+ async function getLikeCount(...nodeIds) {
60
+ if (!nodeIds.length) {
61
+ return [];
62
+ }
63
+ const { token: Authorization } = await auth();
64
+ try {
65
+ const response = await fetch(`${baseURL}/assist/v1/public/projects/${projectId}/nodes/likes`, {
66
+ method: 'POST',
67
+ mode: 'cors',
68
+ headers: { 'Content-Type': 'application/json', Authorization },
69
+ body: JSON.stringify({
70
+ node_ids: nodeIds,
71
+ }),
72
+ });
73
+ const { likes } = await response.json();
74
+ return likes || [];
75
+ }
76
+ catch (e) {
77
+ console.error(e);
78
+ return [];
79
+ }
80
+ }
81
+ async function like(nodeId) {
82
+ if (!nodeId) {
83
+ return 0;
84
+ }
85
+ const { token: Authorization, name } = await auth();
86
+ try {
87
+ const response = await fetch(`${baseURL}/assist/v1/public/projects/${projectId}/nodes/like`, {
88
+ method: 'POST',
89
+ mode: 'cors',
90
+ headers: {
91
+ 'Content-Type': 'application/json',
92
+ Authorization,
93
+ UserID: name,
94
+ },
95
+ body: JSON.stringify({
96
+ node_id: nodeId,
97
+ user_name: name,
98
+ }),
99
+ });
100
+ const { likes } = await response.json();
101
+ return likes || 0;
102
+ }
103
+ catch (e) {
104
+ console.error(e);
105
+ return 0;
106
+ }
107
+ }
108
+ async function dislike(nodeId) {
109
+ if (!nodeId) {
110
+ return 0;
111
+ }
112
+ const { token: Authorization, name } = await auth();
113
+ try {
114
+ const response = await fetch(`${baseURL}/assist/v1/public/projects/${projectId}/nodes/unlike`, {
115
+ method: 'POST',
116
+ mode: 'cors',
117
+ headers: {
118
+ 'Content-Type': 'application/json',
119
+ Authorization,
120
+ UserID: name,
121
+ },
122
+ body: JSON.stringify({
123
+ node_id: nodeId,
124
+ user_name: name,
125
+ }),
126
+ });
127
+ const { likes } = await response.json();
128
+ return likes || 0;
129
+ }
130
+ catch (e) {
131
+ console.error(e);
132
+ return 0;
133
+ }
134
+ }
135
+ async function auth() {
136
+ try {
137
+ const userData = JSON.parse(globalThis.localStorage.getItem(STORAGE_KEY) || '');
138
+ if (userData?.token) {
139
+ return userData;
140
+ }
141
+ }
142
+ catch (e) {
143
+ // do nothing
144
+ }
145
+ try {
146
+ const response = await fetch(`${baseURL}/assist/v1/public/auth`, {
147
+ method: 'POST',
148
+ mode: 'cors',
149
+ headers: {
150
+ 'Content-Type': 'application/json',
151
+ },
152
+ body: JSON.stringify({
153
+ prefix: AUTH_PREFIX,
154
+ }),
155
+ });
156
+ const { token, name } = await response.json();
157
+ globalThis.localStorage.setItem(STORAGE_KEY, JSON.stringify({ token, name }));
158
+ return { token, name };
159
+ }
160
+ catch (e) {
161
+ console.error(e);
162
+ return {};
163
+ }
164
+ }
165
+ return {
166
+ getLikeCount,
167
+ like,
168
+ dislike,
169
+ };
170
+ }
171
+
172
+ const jsx = (...args) => globalThis._uni._jsx(...args);
173
+ const jsxs = (...args) => globalThis._uni._jsxs(...args);
174
+
175
+ const JSX = (Component) => {
176
+ const Internal = Component;
177
+ if (!Internal._tmpl) {
178
+ Internal._tmpl = globalThis.__UNI_REACT__ ? Component : VueTmpl(Component);
179
+ }
180
+ return Internal._tmpl;
181
+ };
182
+ const VueTmpl = (Component) => {
183
+ function JSXTmpl(rawProps, context) {
184
+ const { children: rawChildren, ...props } = rawProps || {};
185
+ const defaultSlot = context?.slots?.default; // Vue
186
+ const children = rawChildren || (defaultSlot && defaultSlot());
187
+ return Component(Object.assign(props, children && { children }), context);
188
+ }
189
+ JSXTmpl.inheritAttrs = false;
190
+ return JSXTmpl;
191
+ };
192
+
193
+ const HeadingClass = {
194
+ h0: 'text-m-title',
195
+ h1: 'text-m-title',
196
+ h2: 'text-m-title',
197
+ h3: 'text-h6',
198
+ h4: 'text-m-title-xs',
199
+ h5: 'text-m-title-xs',
200
+ h6: 'text-m-title-xs',
201
+ };
202
+ const Heading = JSX((props) => {
203
+ const { className, headingType = 'h3', title, as: Tag = 'h3' } = props;
204
+ return (jsx(Tag, { className: `font-sans font-medium m-0 ${HeadingClass[headingType]} ${className || ''}`, children: title }));
205
+ });
206
+
207
+ // Generated. Do not touch
208
+ /* eslint-disable max-len, max-lines */
209
+ var IconMap;
210
+ (function (IconMap) {
211
+ IconMap["ActualBalanceIcon"] = "ActualBalanceIcon";
212
+ IconMap["AirPlane"] = "AirPlane";
213
+ IconMap["AppleIcon"] = "AppleIcon";
214
+ IconMap["ArrowDownIcon"] = "ArrowDownIcon";
215
+ IconMap["ArrowLeftIcon"] = "ArrowLeftIcon";
216
+ IconMap["ArrowUpIcon"] = "ArrowUpIcon";
217
+ IconMap["AtmIcon"] = "AtmIcon";
218
+ IconMap["BankIcon"] = "BankIcon";
219
+ IconMap["BurgerIcon"] = "BurgerIcon";
220
+ IconMap["Calendar2Icon"] = "Calendar2Icon";
221
+ IconMap["CalendarCircleIcon"] = "CalendarCircleIcon";
222
+ IconMap["CalendarIcon"] = "CalendarIcon";
223
+ IconMap["CalendarTickIcon"] = "CalendarTickIcon";
224
+ IconMap["CardIcon"] = "CardIcon";
225
+ IconMap["CardPosIcon"] = "CardPosIcon";
226
+ IconMap["CardTickIcon"] = "CardTickIcon";
227
+ IconMap["CardWithGemIcon"] = "CardWithGemIcon";
228
+ IconMap["CarIcon"] = "CarIcon";
229
+ IconMap["ChartSquareIcon"] = "ChartSquareIcon";
230
+ IconMap["CinemaIcon"] = "CinemaIcon";
231
+ IconMap["ClockIcon"] = "ClockIcon";
232
+ IconMap["CloseIcon"] = "CloseIcon";
233
+ IconMap["ComfortableCompIcon"] = "ComfortableCompIcon";
234
+ IconMap["CreditCardsIcon"] = "CreditCardsIcon";
235
+ IconMap["DiscountShapeIcon"] = "DiscountShapeIcon";
236
+ IconMap["DocIcon"] = "DocIcon";
237
+ IconMap["DocIconMonoColor"] = "DocIconMonoColor";
238
+ IconMap["DocsIcon"] = "DocsIcon";
239
+ IconMap["DocumentTextIcon"] = "DocumentTextIcon";
240
+ IconMap["DollarIcon"] = "DollarIcon";
241
+ IconMap["DoneIcon"] = "DoneIcon";
242
+ IconMap["EarthIcon"] = "EarthIcon";
243
+ IconMap["EmptyWalletChangeIcon"] = "EmptyWalletChangeIcon";
244
+ IconMap["EmptyWalletIcon"] = "EmptyWalletIcon";
245
+ IconMap["EuroIcon"] = "EuroIcon";
246
+ IconMap["GeolocationIcon"] = "GeolocationIcon";
247
+ IconMap["GlassIcon"] = "GlassIcon";
248
+ IconMap["GlobalIcon"] = "GlobalIcon";
249
+ IconMap["GpsIcon"] = "GpsIcon";
250
+ IconMap["GridIcon"] = "GridIcon";
251
+ IconMap["InterestGrowthIcon"] = "InterestGrowthIcon";
252
+ IconMap["InterestIcon"] = "InterestIcon";
253
+ IconMap["JCBIcon"] = "JCBIcon";
254
+ IconMap["Logo"] = "Logo";
255
+ IconMap["LoupeIcon"] = "LoupeIcon";
256
+ IconMap["MasterCardIcon"] = "MasterCardIcon";
257
+ IconMap["MinusIcon"] = "MinusIcon";
258
+ IconMap["MirIcon"] = "MirIcon";
259
+ IconMap["MoneyIcon"] = "MoneyIcon";
260
+ IconMap["MoneyInsuranceIcon"] = "MoneyInsuranceIcon";
261
+ IconMap["MonitorMobileIcon"] = "MonitorMobileIcon";
262
+ IconMap["NewDocIcon"] = "NewDocIcon";
263
+ IconMap["OfficeIcon"] = "OfficeIcon";
264
+ IconMap["OkIcon"] = "OkIcon";
265
+ IconMap["PackA4"] = "PackA4";
266
+ IconMap["PassSendIcon"] = "PassSendIcon";
267
+ IconMap["PercentageRoundIcon"] = "PercentageRoundIcon";
268
+ IconMap["PercentageSquareIcon"] = "PercentageSquareIcon";
269
+ IconMap["PersonalCardIcon"] = "PersonalCardIcon";
270
+ IconMap["PlayMarketIcon"] = "PlayMarketIcon";
271
+ IconMap["PlusIcon"] = "PlusIcon";
272
+ IconMap["PowerIcon"] = "PowerIcon";
273
+ IconMap["Profile2UserIcon"] = "Profile2UserIcon";
274
+ IconMap["ProfileIcon"] = "ProfileIcon";
275
+ IconMap["PumpkinIcon"] = "PumpkinIcon";
276
+ IconMap["RoundRubleIcon"] = "RoundRubleIcon";
277
+ IconMap["SafeIcon"] = "SafeIcon";
278
+ IconMap["ShieldTickIcon"] = "ShieldTickIcon";
279
+ IconMap["SignDocsIcon"] = "SignDocsIcon";
280
+ IconMap["SmallClockIcon"] = "SmallClockIcon";
281
+ IconMap["SoundIcon"] = "SoundIcon";
282
+ IconMap["StateMortgageIcon"] = "StateMortgageIcon";
283
+ IconMap["TelegramIcon"] = "TelegramIcon";
284
+ IconMap["UnionPayIcon"] = "UnionPayIcon";
285
+ IconMap["UserTickIcon"] = "UserTickIcon";
286
+ IconMap["VisaIcon"] = "VisaIcon";
287
+ IconMap["VKIcon"] = "VKIcon";
288
+ IconMap["WalletAdd2Icon"] = "WalletAdd2Icon";
289
+ IconMap["WalletAddIcon"] = "WalletAddIcon";
290
+ IconMap["WalletIcon"] = "WalletIcon";
291
+ IconMap["WalletWithMoneyIcon"] = "WalletWithMoneyIcon";
292
+ IconMap["WateringCan"] = "WateringCan";
293
+ })(IconMap || (IconMap = {}));
294
+ var IconTitleMap;
295
+ (function (IconTitleMap) {
296
+ IconTitleMap["ActualBalanceIcon"] = "\u0414\u0435\u043D\u044C\u0433\u0438";
297
+ IconTitleMap["AirPlane"] = "\u0421\u0430\u043C\u043E\u043B\u0435\u0442";
298
+ IconTitleMap["AppleIcon"] = "\u041B\u043E\u0433\u043E \u00ABApple\u00BB";
299
+ IconTitleMap["ArrowDownIcon"] = "\u0421\u0442\u0440\u0435\u043B\u043A\u0430 '\u0412\u043D\u0438\u0437'";
300
+ IconTitleMap["ArrowLeftIcon"] = "\u0421\u0442\u0440\u0435\u043B\u043A\u0430";
301
+ IconTitleMap["ArrowUpIcon"] = "\u0421\u0442\u0440\u0435\u043B\u043A\u0430 \u0432\u0432\u0435\u0440\u0445";
302
+ IconTitleMap["AtmIcon"] = "\u0411\u0430\u043D\u043A\u043E\u043C\u0430\u0442";
303
+ IconTitleMap["BankIcon"] = "\u0411\u0430\u043D\u043A";
304
+ IconTitleMap["BurgerIcon"] = "\u0411\u0443\u0440\u0433\u0435\u0440";
305
+ IconTitleMap["Calendar2Icon"] = "\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C 2";
306
+ IconTitleMap["CalendarCircleIcon"] = "\u0421\u043A\u0440\u0443\u0433\u043B\u0451\u043D\u043D\u044B\u0439 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C";
307
+ IconTitleMap["CalendarIcon"] = "\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C";
308
+ IconTitleMap["CalendarTickIcon"] = "\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C \u0441 \u0433\u0430\u043B\u043E\u0447\u043A\u043E\u0439";
309
+ IconTitleMap["CardIcon"] = "\u041A\u0440\u0435\u0434. \u043A\u0430\u0440\u0442\u0430";
310
+ IconTitleMap["CardPosIcon"] = "\u041A\u0440\u0435\u0434. \u043A\u0430\u0440\u0442\u0430 \u043F\u043E\u0434 \u043D\u0430\u043A\u043B\u043E\u043D\u043E\u043C";
311
+ IconTitleMap["CardTickIcon"] = "\u041A\u0440\u0435\u0434. \u043A\u0430\u0440\u0442\u0430 \u0441 \u0433\u0430\u043B\u043E\u0447\u043A\u043E\u0439";
312
+ IconTitleMap["CardWithGemIcon"] = "\u041A\u0430\u0440\u0442\u0430 \u0441 \u0434\u0440\u0430\u0433\u043E\u0446\u0435\u043D\u043D\u043E\u0441\u0442\u044F\u043C\u0438";
313
+ IconTitleMap["CarIcon"] = "\u041C\u0430\u0448\u0438\u043D\u0430";
314
+ IconTitleMap["ChartSquareIcon"] = "\u0414\u0435\u043D\u044C\u0433\u0438 \u0432\u043D\u0443\u0442\u0440\u0438 \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430";
315
+ IconTitleMap["CinemaIcon"] = "\u041A\u0438\u043D\u043E";
316
+ IconTitleMap["ClockIcon"] = "\u0427\u0430\u0441\u044B";
317
+ IconTitleMap["CloseIcon"] = "\u041A\u0440\u0435\u0441\u0442\u0438\u043A";
318
+ IconTitleMap["ComfortableCompIcon"] = "\u041A\u0440\u0435\u0441\u043B\u043E";
319
+ IconTitleMap["CreditCardsIcon"] = "\u041A\u0440\u0435\u0434\u0438\u0442\u043D\u044B\u0435 \u043A\u0430\u0440\u0442\u044B";
320
+ IconTitleMap["DiscountShapeIcon"] = "\u0421\u043A\u0438\u0434\u043A\u0430";
321
+ IconTitleMap["DocIcon"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442";
322
+ IconTitleMap["DocIconMonoColor"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442 (\u043E\u0434\u043D\u043E\u0446\u0432\u0435\u0442\u043D\u044B\u0439)";
323
+ IconTitleMap["DocsIcon"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B";
324
+ IconTitleMap["DocumentTextIcon"] = "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0441 \u0442\u0435\u043A\u0441\u0442\u043E\u043C";
325
+ IconTitleMap["DollarIcon"] = "\u0414\u043E\u043B\u043B\u0430\u0440";
326
+ IconTitleMap["DoneIcon"] = "\u0417\u0435\u043B\u0451\u043D\u0430\u044F '\u0433\u0430\u043B\u043E\u0447\u043A\u0430'";
327
+ IconTitleMap["EarthIcon"] = "\u0417\u0435\u043C\u043B\u044F";
328
+ IconTitleMap["EmptyWalletChangeIcon"] = "\u041F\u0443\u0441\u0442\u043E\u0439 \u043A\u043E\u0448\u0435\u043B\u0451\u043A \u0441 \u0432\u043E\u0437\u0432\u0440\u0430\u0442\u043E\u043C";
329
+ IconTitleMap["EmptyWalletIcon"] = "\u041F\u0443\u0441\u0442\u043E\u0439 \u043A\u043E\u0448\u0435\u043B\u0451\u043A";
330
+ IconTitleMap["EuroIcon"] = "\u0415\u0432\u0440\u043E";
331
+ IconTitleMap["GeolocationIcon"] = "\u0413\u0435\u043E\u043B\u043E\u043A\u0430\u0446\u0438\u044F";
332
+ IconTitleMap["GlassIcon"] = "\u0417\u0435\u0440\u043A\u0430\u043B\u043E";
333
+ IconTitleMap["GlobalIcon"] = "\u0413\u043B\u043E\u0431\u0443\u0441";
334
+ IconTitleMap["GpsIcon"] = "Gps";
335
+ IconTitleMap["GridIcon"] = "\u0421\u0435\u0442\u043A\u0430 (\u0431\u0435\u043B\u0430\u044F)";
336
+ IconTitleMap["InterestGrowthIcon"] = "\u0414\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u0440\u043E\u0441\u0442\u0430";
337
+ IconTitleMap["InterestIcon"] = "\u0421\u043A\u0438\u0434\u043A\u0430";
338
+ IconTitleMap["JCBIcon"] = "JCB";
339
+ IconTitleMap["Logo"] = "Logo";
340
+ IconTitleMap["LoupeIcon"] = "\u041B\u0443\u043F\u0430";
341
+ IconTitleMap["MasterCardIcon"] = "MasterCard";
342
+ IconTitleMap["MinusIcon"] = "\u041C\u0438\u043D\u0443\u0441";
343
+ IconTitleMap["MirIcon"] = "\u041C\u0418\u0420";
344
+ IconTitleMap["MoneyIcon"] = "\u0414\u0435\u043D\u044C\u0433\u0438";
345
+ IconTitleMap["MoneyInsuranceIcon"] = "\u0414\u0435\u043D\u0435\u0436\u043D\u043E\u0435 \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u043D\u0438\u0435";
346
+ IconTitleMap["MonitorMobileIcon"] = "\u041C\u043E\u043D\u0438\u0442\u043E\u0440 \u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0439";
347
+ IconTitleMap["NewDocIcon"] = "\u041D\u043E\u0432\u044B\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442";
348
+ IconTitleMap["OfficeIcon"] = "\u041E\u0444\u0438\u0441";
349
+ IconTitleMap["OkIcon"] = "\u041B\u043E\u0433\u043E \u00AB\u041E\u0434\u043D\u043E\u043A\u043B\u0430\u0441\u0441\u043D\u0438\u043A\u0438\u00BB";
350
+ IconTitleMap["PackA4"] = "PackA4";
351
+ IconTitleMap["PassSendIcon"] = "\u0411\u0438\u0437\u043D\u0435\u0441";
352
+ IconTitleMap["PercentageRoundIcon"] = "\u041F\u0440\u043E\u0446\u0435\u043D\u0442\u044B (\u043A\u0440\u0443\u0433.)";
353
+ IconTitleMap["PercentageSquareIcon"] = "\u041F\u0440\u043E\u0446\u0435\u043D\u0442\u044B";
354
+ IconTitleMap["PersonalCardIcon"] = "\u041F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u0430\u044F \u043A\u0430\u0440\u0442\u0430";
355
+ IconTitleMap["PlayMarketIcon"] = "\u041B\u043E\u0433\u043E \u00ABPlayMarket\u00BB";
356
+ IconTitleMap["PlusIcon"] = "\u041F\u043B\u044E\u0441";
357
+ IconTitleMap["PowerIcon"] = "\u0429\u0438\u0442";
358
+ IconTitleMap["Profile2UserIcon"] = "\u041F\u0440\u043E\u0444\u0438\u043B\u044C, 2 \u043F\u0435\u0440\u0441\u043E\u043D\u044B";
359
+ IconTitleMap["ProfileIcon"] = "\u041F\u0440\u043E\u0444\u0438\u043B\u044C";
360
+ IconTitleMap["PumpkinIcon"] = "\u0422\u044B\u043A\u0432\u0430";
361
+ IconTitleMap["RoundRubleIcon"] = "\u0420\u0443\u0431\u043B\u044C (\u043A\u0440\u0443\u0433.)";
362
+ IconTitleMap["SafeIcon"] = "\u0421\u0435\u0439\u0444";
363
+ IconTitleMap["ShieldTickIcon"] = "\u0411\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C";
364
+ IconTitleMap["SignDocsIcon"] = "\u041F\u043E\u0434\u043F\u0438\u0441\u0430\u043D\u043D\u044B\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B";
365
+ IconTitleMap["SmallClockIcon"] = "\u041C\u0430\u043B\u0435\u043D\u044C\u043A\u0438\u0435 \u0447\u0430\u0441\u044B";
366
+ IconTitleMap["SoundIcon"] = "\u0417\u0432\u0443\u043A";
367
+ IconTitleMap["StateMortgageIcon"] = "StateMortgageIcon";
368
+ IconTitleMap["TelegramIcon"] = "\u041B\u043E\u0433\u043E \u00ABTelegram\u00BB";
369
+ IconTitleMap["UnionPayIcon"] = "UnionPay";
370
+ IconTitleMap["UserTickIcon"] = "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C";
371
+ IconTitleMap["VisaIcon"] = "Visa";
372
+ IconTitleMap["VKIcon"] = "\u041B\u043E\u0433\u043E \u00ABVK\u00BB";
373
+ IconTitleMap["WalletAdd2Icon"] = "\u041F\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u043A\u0430\u0440\u0442\u044B";
374
+ IconTitleMap["WalletAddIcon"] = "\u041A\u043E\u0448\u0435\u043B\u0451\u043A \u0441 \u043F\u043B\u044E\u0441\u043E\u043C";
375
+ IconTitleMap["WalletIcon"] = "\u041A\u043E\u0448\u0435\u043B\u0451\u043A";
376
+ IconTitleMap["WalletWithMoneyIcon"] = "\u041A\u043E\u0448\u0435\u043B\u0451\u043A \u0441 \u0434\u0435\u043D\u044C\u0433\u0430\u043C\u0438";
377
+ IconTitleMap["WateringCan"] = "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043F\u0440\u043E\u0434\u0443\u043A\u0442";
378
+ })(IconTitleMap || (IconTitleMap = {}));
379
+
380
+ const projectSettings = new (class {
381
+ _ = {
382
+ PROD_BRANCH: 'master',
383
+ FORCED_DRAFT_FLOW: false,
384
+ };
385
+ setup(_) {
386
+ this._ = _;
387
+ }
388
+ get TEST_BRANCH() {
389
+ return this._.TEST_BRANCH;
390
+ }
391
+ get RC_BRANCH() {
392
+ return this._.RC_BRANCH;
393
+ }
394
+ get PROD_BRANCH() {
395
+ return this._.PROD_BRANCH;
396
+ }
397
+ get FORCED_DRAFT_FLOW() {
398
+ return this._.FORCED_DRAFT_FLOW;
399
+ }
400
+ get ENABLE_ASSIST() {
401
+ return this._.ENABLE_ASSIST;
402
+ }
403
+ get SITEMAP() {
404
+ return this._.SITEMAP;
405
+ }
406
+ get CDN() {
407
+ return this._.CDN;
408
+ }
409
+ })();
410
+
411
+ const svgUseStyleMap = {
412
+ normal: 'text-primary-main',
413
+ black: 'text-black',
414
+ white: 'text-black invert',
415
+ };
416
+ const Icon = JSX(({ className = '', imageClassName = '', name = '', alt = `Иконка ${IconTitleMap[name] || name}`, title = alt, iconVersion = 'normal', asSVG, ...imgProps }) => {
417
+ const href = `${projectSettings.CDN || ''}icons/${name}.svg`;
418
+ if (asSVG) {
419
+ return (jsxs("svg", { className: className, ...imgProps, "aria-hidden": "true", children: [title ? jsx("title", { children: title }) : null, alt ? jsx("desc", { children: alt }) : null, jsx("use", { className: `${svgUseStyleMap[iconVersion]} ${imageClassName}`, href: `${href}#icon`, xlinkHref: `${href}#icon` })] }));
420
+ }
421
+ return (jsx("img", { className: className, src: href, alt: alt, title: title, ...imgProps, "aria-hidden": "true" }));
422
+ });
423
+
424
+ function getIconVersion(image) {
425
+ return typeof image === 'string' ? 'normal' : image.iconVersion || 'normal';
426
+ }
427
+
428
+ const sourcesComparator = (a, b) => {
429
+ if (a.media && b.media) {
430
+ return a.media - b.media;
431
+ }
432
+ return 0;
433
+ };
434
+ const ImgAsPicture = JSX(({ className = '', image, imageClassName = '', isMobile = false }) => {
435
+ if (!image || (!image?.sources && !image?.src)) {
436
+ return null;
437
+ }
438
+ const pictureStyles = isMobile ? 'flex' : 'flex-none';
439
+ return (jsxs("picture", { className: `${pictureStyles} ${className}`, children: [image?.sources?.length
440
+ ? image.sources
441
+ .sort(sourcesComparator)
442
+ .map(({ src, format, media, size }, index) => (jsx("source", { srcSet: src, type: formatToMimeType(format), media: media ? `(max-width: ${media}px)` : '', ...size }, `${index}_${src}`)))
443
+ : null, renderImg(image, imageClassName, isMobile)] }));
444
+ });
445
+ const renderImg = (image, imageClassName = '', isMobile = false) => {
446
+ const title = image.title || '';
447
+ const alt = image.alt || image.title;
448
+ const imgStyle = isMobile ? 'm-auto' : 'm-0';
449
+ return (jsx("img", { src: image.src, className: `${imgStyle} ${imageClassName}`, alt: alt, title: title, ...image.size }));
450
+ };
451
+ function formatToMimeType(format) {
452
+ return format ? `image/${String(format)}` : undefined;
453
+ }
454
+
455
+ const ImgInner = JSX(({ className = '', image, imageClassName = '', isMobile, ...iconProps }) => {
456
+ if (!image) {
457
+ return null;
458
+ }
459
+ // backwards compatibility with existing icons in usage
460
+ const icon = typeof image === 'string' ? image : image.icon;
461
+ if (icon || icon === '') {
462
+ return icon.length ? (jsx(Icon, { className: className, imageClassName: imageClassName, iconVersion: getIconVersion(image), name: icon, ...iconProps })) : null;
463
+ }
464
+ return (jsx(ImgAsPicture, { className: className, imageClassName: imageClassName, image: image, isMobile: isMobile }));
465
+ });
466
+
467
+ const Img = JSX(({ className = '', image, imageClassName, ...iconProps }) => {
468
+ return (jsx(ImgInner, { className: className, image: image, imageClassName: imageClassName, ...iconProps, isMobile: true }));
469
+ });
470
+
471
+ function style2className(style) {
472
+ return style ? style.filter(Boolean).join(' ') : '';
473
+ }
474
+
475
+ const ALIGN_TEXT = {
476
+ left: 'text-left',
477
+ center: 'text-center',
478
+ right: 'text-right',
479
+ };
480
+ const HEADLINE_BLOCK_STYLE_MAPS = {
481
+ transparent: {
482
+ background: 'bg-transparent',
483
+ text: 'text-primary-text',
484
+ description: 'text-primary-text',
485
+ },
486
+ primary: {
487
+ background: 'bg-white',
488
+ text: 'text-primary-text',
489
+ description: 'text-primary-text',
490
+ },
491
+ secondary: {
492
+ background: 'bg-primary-main',
493
+ text: 'text-white',
494
+ description: 'text-white/80',
495
+ },
496
+ };
497
+
498
+ const Headline = JSX(({ bgColorHeadline = 'transparent', className = '', title, description, image, align = 'left', }) => {
499
+ const STYLE_MAPS = HEADLINE_BLOCK_STYLE_MAPS[bgColorHeadline];
500
+ return (jsxs("section", { className: `px-4 py-6 flex flex-col gap-2.5 ${STYLE_MAPS.background} ${className}`, children: [title ? (jsx(Heading, { headingType: "h2", className: `${STYLE_MAPS.text} ${ALIGN_TEXT[align]}`, title: title })) : null, description ? (jsx("p", { className: `text-m ${STYLE_MAPS.description} ${ALIGN_TEXT[align]}`, children: description })) : null, image?.src && (jsx("div", { className: "mt-2.5 mx-auto flex justify-center", children: jsx(Img, { image: image }) }))] }));
501
+ });
502
+
503
+ // column-gap between children of SwipeListControl container
504
+ const DEFAULT_GAP = 14;
505
+ /*
506
+ Horizontal padding used on a container above SwipeListControl.
507
+ Same value used on a SwipeListControlChildren container to compensate it
508
+ and get rid of a clipping effect caused by overflow: hidden.
509
+ */
510
+ const DEFAULT_PADDING = 16;
511
+ // Classes used to compensate outer container padding, so that child elements won't be clipped
512
+
513
+ const DOT_STYLES = 'bg-primary-main opacity-30 w-1.5 h-1.5 min-w-1.5 min-h-1.5 rounded-full';
514
+ const BASE_DOT_WIDTH = 6;
515
+ const ACTIVE_DOT_WIDTH_CHANGE = 16;
516
+ const BASE_DOT_OPACITY = 0.3;
517
+ const ACTIVE_DOT_OPACITY_CHANGE = 0.7;
518
+ const SwipeListControlDots = JSX(({ children, activeIndex, indexFraction, showDots }) => {
519
+ const handleClick = (idx) => (e) => {
520
+ if (idx === activeIndex) {
521
+ return;
522
+ }
523
+ const contentContainer = e.currentTarget.parentElement
524
+ ?.previousElementSibling;
525
+ contentContainer?.children[idx]?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
526
+ };
527
+ return showDots && children?.length ? (jsx("div", { className: "flex gap-2 mx-auto mt-5 w-fit", children: children?.map((_, idx) => (jsx("div", { onClick: handleClick(idx), className: `${DOT_STYLES}`, style: getDotStyles(idx, activeIndex, indexFraction), "aria-hidden": true }, String(idx)))) })) : null;
528
+ });
529
+ const getDotStyles = (currentIdx, activeIndex, indexFraction) => {
530
+ if (currentIdx < activeIndex || currentIdx > activeIndex + 1) {
531
+ return;
532
+ }
533
+ const leftIndexMod = 1 - indexFraction;
534
+ const rightIndexMod = indexFraction;
535
+ return currentIdx === activeIndex
536
+ ? {
537
+ opacity: `${BASE_DOT_OPACITY + ACTIVE_DOT_OPACITY_CHANGE * leftIndexMod}`,
538
+ width: `${BASE_DOT_WIDTH + ACTIVE_DOT_WIDTH_CHANGE * leftIndexMod}px`,
539
+ }
540
+ : {
541
+ opacity: `${BASE_DOT_OPACITY + ACTIVE_DOT_OPACITY_CHANGE * rightIndexMod}`,
542
+ width: `${BASE_DOT_WIDTH + ACTIVE_DOT_WIDTH_CHANGE * rightIndexMod}px`,
543
+ };
544
+ };
545
+
546
+ const SwipeListControlItem = JSX(({ className = '', children, ...rest }) => {
547
+ return (jsx("div", { className: `snap-center snap-always min-w-full box-border ${className}`, role: "listitem", ...rest, children: children }));
548
+ });
549
+
550
+ // styles used to compensate outer container padding to get rid of clipping effect
551
+ const getContainerStyle = (padding) => {
552
+ return {
553
+ marginLeft: `${-padding}px`,
554
+ marginRight: `${-padding}px`,
555
+ paddingLeft: `${padding}px`,
556
+ paddingRight: `${padding}px`,
557
+ };
558
+ };
559
+
560
+ const SwipeListControlList = JSX(({ className = '', children, activeIndex, onScroll, gap = DEFAULT_GAP, padding = DEFAULT_PADDING, }) => {
561
+ return (jsx("div", { className: `overflow-auto flex horizontal-list no-scrollbar ${className}`, style: { ...getContainerStyle(padding), gap: `${gap}px` }, role: "list", onScroll: onScroll, children: children?.length ? (children?.map((child, idx) => (jsx(SwipeListControlItem, { style: getContainerStyle(padding / 4), "aria-current": Boolean(activeIndex === idx), children: child }, String(idx))))) : (jsx(SwipeListControlItem, { children: children })) }));
562
+ });
563
+
564
+ /*
565
+ Returns object containing whole index part, and it's decimal part for a given
566
+ scrollLeft value of a container and an array of tuple containing values of a
567
+ start and end boundaries of a scrollable child, right boundary non-inclusive.
568
+ Returns object with index equal -1 and fraction equal 0 if scrollLeft is outside given scrollPoints
569
+ */
570
+ const getIndexParts = (scrollLeft, scrollPoints) => {
571
+ const index = scrollPoints.findIndex(([pointStart, pointEnd]) => pointStart <= scrollLeft && scrollLeft < pointEnd);
572
+ if (index < 0) {
573
+ return { index, fraction: 0 };
574
+ }
575
+ const [start, end] = scrollPoints[index];
576
+ const fraction = (scrollLeft - start) / (end - start);
577
+ return { index, fraction };
578
+ };
579
+
580
+ /*
581
+ Calculates array of breakpoints for each scrollable element in container.
582
+ Returns array of tuples consisting of [start, end] boundary scrollLeft values.
583
+ */
584
+ const getScrollPoints = ({ gap, padding, clientWidth, scrollWidth, childElementCount, itemWidth, }) => {
585
+ const scrollableDistance = scrollWidth - clientWidth;
586
+ if (childElementCount === 2) {
587
+ return [
588
+ [0, scrollableDistance],
589
+ [scrollableDistance, scrollWidth],
590
+ ];
591
+ }
592
+ const scrollItemWidth = itemWidth + gap;
593
+ const edgeScrollDistance = clientWidth - gap - padding;
594
+ const lastScrollableIdx = childElementCount - 2;
595
+ const scrollPoints = new Array(childElementCount)
596
+ .fill(0)
597
+ .map((_, idx) => idx === 0 || idx === lastScrollableIdx
598
+ ? [
599
+ idx > 0 ? scrollableDistance - edgeScrollDistance : 0,
600
+ idx > 0 ? scrollableDistance : edgeScrollDistance,
601
+ ]
602
+ : [
603
+ (idx - 1) * scrollItemWidth + edgeScrollDistance,
604
+ idx * scrollItemWidth + edgeScrollDistance,
605
+ ]);
606
+ scrollPoints[childElementCount - 1] = [scrollableDistance, scrollWidth];
607
+ return scrollPoints;
608
+ };
609
+
610
+ const SwipeListControl = JSX(({ className, children, gap = DEFAULT_GAP, padding = DEFAULT_PADDING, showDots = true, onSlideChange, }) => {
611
+ const [activeIndex, setActiveIndex] = useState(0);
612
+ const [indexFraction, setIndexFraction] = useState(0);
613
+ const dotsProps = {
614
+ activeIndex,
615
+ indexFraction,
616
+ showDots,
617
+ children,
618
+ };
619
+ const handleScroll = (e) => {
620
+ const { scrollLeft, clientWidth, childElementCount, scrollWidth, children: childrenCollection, } = e?.currentTarget;
621
+ // horizontal PADDING / 2 to compensate padding-margin combo of child container
622
+ // without CSS calc function, as wrapper element gets bigger in the DOM, remaining same visually
623
+ const itemWidth = childrenCollection[0].offsetWidth - padding / 2;
624
+ const scrollPoints = getScrollPoints({
625
+ gap,
626
+ padding,
627
+ clientWidth,
628
+ scrollWidth,
629
+ childElementCount,
630
+ itemWidth,
631
+ });
632
+ const { index, fraction } = getIndexParts(scrollLeft, scrollPoints);
633
+ if (index !== activeIndex && onSlideChange) {
634
+ onSlideChange();
635
+ }
636
+ setActiveIndex(index);
637
+ setIndexFraction(fraction);
638
+ };
639
+ return (jsxs("div", { className: className, children: [jsx(SwipeListControlList, { gap: gap, padding: padding, activeIndex: activeIndex, onScroll: handleScroll, children: children }), jsx(SwipeListControlDots, { ...dotsProps })] }));
640
+ });
641
+
642
+ const LinkDocsListItemBase = JSX(({ className, iconClassName, textClassName, suffixClassName, doc, icon }) => {
643
+ const { text, fileSize, ...linkProps } = doc;
644
+ return (jsxs("a", { className: className, role: "link", ...linkProps, children: [icon ? (jsx(Img, { className: iconClassName, image: icon, width: "24px", height: "24px", asSVG: true })) : null, text ? (jsxs("span", { className: textClassName, children: [text, jsx("span", { className: suffixClassName, children: linkProps?.href && formatSuffix(getExtFromHref(linkProps.href), fileSize) })] })) : null] }));
645
+ });
646
+ const formatSuffix = (ext, fileSize) => {
647
+ const prefix = ext || fileSize ? ',' : '';
648
+ const extension = ext ? ` ${ext}` : '';
649
+ const size = fileSize ? ` (${fileSize})` : '';
650
+ return prefix + extension + size;
651
+ };
652
+ const getExtFromHref = (href) => {
653
+ if (!href) {
654
+ return '';
655
+ }
656
+ const index = href.lastIndexOf('.');
657
+ return index !== -1 ? href.substring(index + 1) : '';
658
+ };
659
+
660
+ const LinkDocsListItem = JSX(({ className = '', doc, icon }) => (jsx(LinkDocsListItemBase, { className: `flex h-full box-border ${className}`, iconClassName: "mr-3 min-w-6 min-h-6", doc: doc, icon: icon })));
661
+
662
+ const LinkDocsHorizontalList = JSX(({ context, hasBorder = true, documents, icon }) => {
663
+ return (jsx(SwipeListControl, { context: context, className: "text-s text-primary-main mt-5", children: documents?.length
664
+ ? documents.map((doc, i) => (jsx(LinkDocsListItem, { className: hasBorder ? 'rounded-md border-main-stroke border border-solid p-4' : '', doc: doc, icon: icon }, String(i))))
665
+ : null }));
666
+ });
667
+
668
+ const LinkDocsVerticalList = JSX(({ hasBorder = true, documents, icon }) => {
669
+ return (jsx("div", { className: `text-s text-primary-main flex flex-col mt-5 ${hasBorder ? 'gap-3.5' : 'gap-2'}`, role: "list", children: documents?.length
670
+ ? documents.map((doc, i) => (jsx("div", { role: "listitem", children: jsx(LinkDocsListItem, { className: hasBorder ? 'rounded-md border-main-stroke border border-solid p-4' : '', doc: doc, icon: icon }) }, String(i))))
671
+ : null }));
672
+ });
673
+
674
+ const LinkDocs = JSX(({ className = '', context, title, description, icon = { icon: 'DocIconMonoColor' }, documents, orientation = 'vertical', hasBorder = true, }) => {
675
+ return (jsxs("section", { className: `font-sans text-primary-text py-6 px-4 bg-white overflow-x-hidden ${className}`, children: [jsx(Headline, { className: `!p-0 ${description ? 'gap-2' : 'gap-5'}`, title: title, description: description, context: context, align: "center" }), orientation === 'vertical' ? (jsx(LinkDocsVerticalList, { hasBorder: hasBorder, documents: documents, icon: icon })) : (jsx(LinkDocsHorizontalList, { context: context, hasBorder: hasBorder, documents: documents, icon: icon }))] }));
676
+ });
677
+
678
+ const isURL = (href) => href?.includes('//');
679
+ const withoutQuery = (href) => (href || '').replace(/\/?\?.*/, '');
680
+ const getOrigin = (href) => {
681
+ if (!href || !isURL(href)) {
682
+ return undefined;
683
+ }
684
+ const url = href;
685
+ const protoSeparator = '//';
686
+ const endOfProto = url.indexOf(protoSeparator);
687
+ const endOfOrigin = url.indexOf('/', endOfProto + protoSeparator.length);
688
+ return endOfOrigin !== -1 ? url.substring(0, endOfOrigin) : url;
689
+ };
690
+ const getHash = (href) => {
691
+ if (!href || !isURL(href)) {
692
+ return undefined;
693
+ }
694
+ const hashIndex = href.indexOf('#');
695
+ return hashIndex !== -1 ? href.substring(hashIndex, href.length) : undefined;
696
+ };
697
+ const isHash = (href) => href?.startsWith('#');
698
+
699
+ var url = /*#__PURE__*/Object.freeze({
700
+ __proto__: null,
701
+ isURL: isURL,
702
+ withoutQuery: withoutQuery,
703
+ getOrigin: getOrigin,
704
+ getHash: getHash,
705
+ isHash: isHash
706
+ });
707
+
708
+ const MOBILE_URL_PATH = '/mobile';
709
+ const withoutMobilePath = (href) => (href || '').replace(MOBILE_URL_PATH, '');
710
+
711
+ const adjustHref = (href, router) => {
712
+ if (!href) {
713
+ return href;
714
+ }
715
+ const relativeHref = toRelativeHref(href, router) || '';
716
+ const isMobilePage = router?.pathname.startsWith(MOBILE_URL_PATH);
717
+ return isMobilePage && !isURL(relativeHref) ? `${MOBILE_URL_PATH}${relativeHref}` : relativeHref;
718
+ };
719
+ const toRelativeHref = (href, router) => {
720
+ if (!href) {
721
+ return href;
722
+ }
723
+ const origin = getOrigin(router?.href);
724
+ return origin ? href.replace(origin, '') || '/' : href;
725
+ };
726
+
727
+ const defaultHandlerDecorator = (handler) => handler;
728
+ function useLink({ router, handlerDecorator = defaultHandlerDecorator, }, link) {
729
+ const href = adjustHref(link.href, router);
730
+ return {
731
+ ...link,
732
+ href,
733
+ 'aria-label': link.text,
734
+ onClick: handlerDecorator((ev) => {
735
+ const isLocalHref = href && !isURL(href);
736
+ const isLocalTarget = !link.target || link.target === '_self';
737
+ if (isLocalHref && isLocalTarget) {
738
+ ev?.preventDefault();
739
+ router.push(href);
740
+ }
741
+ }, link),
742
+ };
743
+ }
744
+
745
+ const ButtonInner = JSX((props) => {
746
+ const { text, aboveText, appendLeft, appendRight } = props;
747
+ return (jsxs("div", { className: getButtonStyle(props), children: [appendLeft ? appendLeft : null, isWithText(props) ? (jsxs("div", { children: [jsx("div", { className: "text-xs-light text-left", children: aboveText }), jsx("div", { className: `text-left ${aboveText ? 'text-s -mt-0.5' : 'text-l'}`, children: text })] })) : null, appendRight ? appendRight : null] }));
748
+ });
749
+ const getButtonStyle = (props) => {
750
+ const { version, aboveText, rounded } = props;
751
+ if (version === 'link') {
752
+ return '';
753
+ }
754
+ const withTextStyle = `gap-2 ${aboveText ? 'py-2.5 px-7' : 'py-4 px-9'}`;
755
+ return [
756
+ 'flex items-center justify-center',
757
+ isWithText(props) ? withTextStyle : 'h-12 w-12',
758
+ rounded ? 'rounded-full' : '',
759
+ ].join(' ');
760
+ };
761
+ const isWithText = ({ text, aboveText, appendLeft }) => Boolean(text || aboveText || !appendLeft);
762
+
763
+ const buttonStyleMap = {
764
+ primary: 'text-white bg-primary-main hover:bg-primary-hover active:bg-primary-active',
765
+ secondary: 'text-primary-main bg-main-divider hover:text-white hover:bg-primary-hover active:bg-primary-active',
766
+ link: 'text-primary-main',
767
+ };
768
+ const buttonDisabledStyleMap = {
769
+ primary: 'bg-secondary-dark text-secondary-text',
770
+ secondary: 'bg-secondary-light text-secondary-text',
771
+ link: '',
772
+ };
773
+ const styleButton = 'w-full text-center font-sans select-none';
774
+ const Button = JSX(({ className, text, aboveText, appendLeft, href, target, onClick, children, disabled, rounded, version = 'primary', ariaLabel, ...rest }) => {
775
+ const buttonInner = children ?? (jsx(ButtonInner, { text: text, aboveText: aboveText, appendLeft: appendLeft, rounded: rounded, version: version }));
776
+ if (disabled) {
777
+ return (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: -1, className: `inline-block ${styleButton} ${buttonDisabledStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, children: buttonInner }));
778
+ }
779
+ return (jsx("a", { className: `${styleButton} inline-block cursor-pointer no-underline focus:border focus:border-primary-focus ${buttonStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, role: !href ? 'button' : 'link', ...rest, children: buttonInner }));
780
+ });
781
+
782
+ const ButtonSection = JSX(({ context, className = '', buttons }) => {
783
+ const { handlerDecorator } = context;
784
+ const router = context.useRouter();
785
+ return buttons && buttons?.length ? (jsx("div", { className: className, children: buttons.map((button, index) => renderButton$2(useLink({ router, handlerDecorator }, button), index)) })) : null;
786
+ });
787
+ function renderButton$2({ icon, iconRight, ...button }, i) {
788
+ if (!button?.text) {
789
+ return null;
790
+ }
791
+ return icon ? (jsx(Button, { appendLeft: jsx(Img, { image: icon, width: "24", height: "24", asSVG: true }), appendRight: jsx(Img, { image: iconRight, width: "24", height: "24", asSVG: true }), ...button }, String(i))) : (jsx(Button, { ...button }, String(i)));
792
+ }
793
+
794
+ const LIST_STYLE_CLASSES = {
795
+ primary: 'rounded-full inline-block mr-3 mt-2',
796
+ secondary: 'rounded-full inline-block mr-3 mt-2',
797
+ gray: 'rounded-full inline-block mr-3 mt-2',
798
+ tile: 'rounded-full inline-block mr-4 mt-3',
799
+ 'tile-white': 'rounded-full inline-block mr-4 mt-3',
800
+ };
801
+ const LIST_DOT_STYLE_MAP = {
802
+ primary: 'bg-primary-text',
803
+ secondary: 'bg-white',
804
+ gray: 'bg-secondary-text',
805
+ tile: 'bg-black',
806
+ 'tile-white': 'bg-white',
807
+ };
808
+ const ListItem = JSX(({ className = '', isDotted = true, children, version = 'primary' }) => {
809
+ return (jsxs("div", { className: `font-sans flex items-start ${className}`, role: "listitem", children: [isDotted ? jsx("div", { className: getListStyle(version) }) : null, jsx("span", { children: children })] }));
810
+ });
811
+ const getListStyle = (version) => {
812
+ const size = {
813
+ primary: 'w-2 h-2 min-w-2 min-h-2',
814
+ secondary: 'w-2 h-2 min-w-2 min-h-2',
815
+ gray: 'w-1.5 h-1.5 min-w-1.5 min-h-1.5',
816
+ tile: 'w-[7px] h-[7px] min-w-[7px] min-h-[7px]',
817
+ 'tile-white': 'w-[7px] h-[7px] min-w-[7px] min-h-[7px]',
818
+ };
819
+ return `${LIST_STYLE_CLASSES[version]} ${LIST_DOT_STYLE_MAP[version]} ${size[version]}`;
820
+ };
821
+
822
+ const TEXT_STYLE_MAP = {
823
+ primary: 'text-primary-text',
824
+ secondary: 'text-white',
825
+ gray: 'text-secondary-text',
826
+ tile: 'text-primary-text',
827
+ 'tile-white': 'text-white',
828
+ };
829
+ const List = JSX((props) => {
830
+ const { className = '', itemClassName, isDotted, items, version = 'primary' } = props;
831
+ return (jsx("section", { className: `${TEXT_STYLE_MAP[version]} ${className}`, role: "list", children: items?.length
832
+ ? items.map((_, i) => (jsx(ListItem, { className: itemClassName, isDotted: isDotted, version: version, children: _ }, String(i))))
833
+ : null }));
834
+ });
835
+
836
+ const BaseTile = JSX(({ className = '', title = '', children, buttons, image }) => {
837
+ 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", { children: buttons }) : null] }), image] })] }));
838
+ });
839
+
840
+ const benefitTitleStyleMap = {
841
+ primary: 'text-primary-text',
842
+ secondary: 'text-white',
843
+ };
844
+ const benefitDescStyleMap = {
845
+ primary: 'text-secondary-text',
846
+ secondary: 'text-white',
847
+ };
848
+ function renderBenefit({ benefit, version = 'primary' }, i) {
849
+ const isIconWhite = version === 'secondary';
850
+ return (jsxs("div", { className: "flex gap-3 items-center mb-2.5 last:mb-0", children: [benefit.icon ? (jsx(Img, { className: renderBenefitIconBgStyle(version), image: { ...benefit?.icon, iconVersion: isIconWhite ? 'white' : 'normal' }, width: "24", height: "24", asSVG: true })) : null, jsx("div", { className: `text-l m-0 ${benefitTitleStyleMap[version]}`, children: benefit.label }), benefit.description && (jsx("div", { className: `text-s ${benefitDescStyleMap[version]}`, children: benefit.description }))] }, String(i)));
851
+ }
852
+ function renderBenefitIconBgStyle(version) {
853
+ let bgColorStyle = 'text-primary-main';
854
+ if (version === 'secondary') {
855
+ bgColorStyle = 'text-black';
856
+ }
857
+ return `w-6 h-6 rounded-full box-border ${bgColorStyle}`;
858
+ }
859
+
860
+ const ProductBlockInner = JSX(({ className = '', context, title, headlineVersion = 'L', description, benefits, benefitsVersion = 'normal', buttons, image, items, version = 'primary', isDotted = true, label, }) => {
861
+ return (jsxs("div", { className: `w-full ${className}`, children: [jsxs("div", { children: [label ? renderLabel(label, version) : null, jsx(Headline, { context: context, className: "!p-0 max-w-[600px]", title: title, description: description, bgColorHeadline: version, headlineVersion: headlineVersion }), jsxs(BaseTile, { context: context, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex flex-col mt-5 gap-2.5" })) : null, children: [benefits?.filter((_) => _.label)?.length ? (jsx("div", { className: "mt-3", children: benefits.map((benefit, i) => renderBenefit({ benefit, version, benefitsVersion }, i)) })) : null, items?.length ? (jsx(List, { className: "mt-3 text-m", items: items, version: version, isDotted: isDotted })) : null] })] }), renderImage$1(image)] }));
862
+ });
863
+ function renderImage$1(image) {
864
+ return image?.src ? (jsx(Img, { imageClassName: "mt-5 mx-auto block", image: { className: 'block', ...image } })) : null;
865
+ }
866
+ const labelStyleMap = {
867
+ primary: 'text-primary-main border-secondary-hover',
868
+ secondary: 'text-white/80',
869
+ };
870
+ const renderLabel = (label, version) => (jsx("div", { className: `px-2.5 py-1.5 mb-5 rounded-md border-2 border-solid w-fit ${labelStyleMap[version]}`, children: label }));
871
+
872
+ const productBlockStyleMap = {
873
+ primary: 'bg-white text-primary-text',
874
+ secondary: 'bg-primary-main text-white',
875
+ };
876
+ const ProductBlock = JSX((props /* Get rid of image and benefits */) => {
877
+ const { className = '', version = 'primary' } = props;
878
+ return (jsx("section", { className: `font-sans bg-white px-4 py-6 ${productBlockStyleMap[version]} ${className}`, children: jsx(ProductBlockInner, { ...props }) }));
879
+ });
880
+
881
+ const textBlockStyleMaps = {
882
+ primary: {
883
+ background: 'bg-white',
884
+ icon: 'bg-primary-main text-white',
885
+ title: 'text-primary-text',
886
+ description: 'text-secondary-text',
887
+ },
888
+ secondary: {
889
+ background: 'bg-primary-main',
890
+ icon: 'bg-white text-primary-main',
891
+ title: 'text-white',
892
+ description: 'text-white',
893
+ },
894
+ 'secondary-light': {
895
+ background: 'bg-primary-main/10',
896
+ icon: 'bg-primary-main text-white',
897
+ title: 'text-primary-text',
898
+ description: 'text-secondary-text',
899
+ },
900
+ };
901
+ const TextBlock = JSX(({ title, description, blockVersion = 'primary', iconVersion, image, className = '', items, isDotted = true, }) => {
902
+ const textBlockStyleMap = textBlockStyleMaps[blockVersion];
903
+ const listBlockVersion = blockVersion === 'secondary' ? 'secondary' : 'gray';
904
+ return (jsxs("section", { className: `font-sans px-4 py-[18px] flex flex-col ${textBlockStyleMap.background} ${className}`, children: [iconVersion === 'small' ? renderIcon(textBlockStyleMap.icon) : null, iconVersion === 'big' ? renderImage(image) : null, jsxs("div", { className: "py-0.5", children: [title ? (jsx("div", { className: `text-l font-medium mb-1 ${textBlockStyleMap.title}`, children: title })) : null, description ? (jsx("div", { className: `text-s ${textBlockStyleMap.description}`, children: description })) : null, items?.length ? (jsx(List, { className: "mt-1 text-m", items: items, isDotted: isDotted, version: listBlockVersion })) : null] })] }));
905
+ });
906
+ function renderIcon(className) {
907
+ return (jsx("div", { className: "mb-3", children: jsx("div", { className: `rounded-full h-4 w-4 text-center text-xs-light ${className}`, children: "i" }) }));
908
+ }
909
+ function renderImage(image) {
910
+ return image?.src ? jsx(Img, { className: "pb-3 mr-auto", image: image }) : null;
911
+ }
912
+
913
+ const blockStyle = {
914
+ primary: 'bg-white',
915
+ secondary: 'bg-primary-main text-white',
916
+ };
917
+ const Gallery = JSX(({ context, title, description, cards = [], className, orientation = 'horizontal' }) => {
918
+ const headingClassName = description ? 'mb-2' : 'mb-5';
919
+ return (jsxs("section", { className: `relative font-sans text-primary-text bg-white px-4 py-6 overflow-hidden ${className}`, children: [jsxs("div", { className: "flex flex-col items-center mb-5", children: [title ? (jsx(Heading, { headingType: "h3", className: `text-center ${headingClassName}`, title: title })) : null, description ? (jsx("div", { className: "text-m max-w-[600px] text-center mb-5", children: description })) : null] }), renderCardsLayout(orientation, cards, context)] }));
920
+ });
921
+ function renderCardsLayout(orientation, cards, context) {
922
+ return orientation === 'horizontal' ? (jsx(SwipeListControl, { context: context, children: cards?.map(renderCard) })) : (jsx("div", { className: "grid gap-[14px]", children: cards?.map(renderCard) }));
923
+ }
924
+ function renderCard(card, key) {
925
+ return (jsxs("div", { className: `h-full justify-between box-border horizontal-list-item border-solid border rounded-md border-main-stroke p-4 flex flex-col
926
+ ${blockStyle[card.version ?? 'primary']}`, children: [jsxs("div", { children: [card.image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-3.5", image: card.image }) })) : null, card.title ? jsx("h3", { className: `text-m-title-xs font-medium m-0`, children: card.title }) : null, card.description ? renderDescription(card) : null, card.items?.length ? renderItems(card.items, card.isDotted, card.version) : null] }), card?.button?.text ? renderButton$1(card.button) : null] }, key));
927
+ }
928
+ function renderButton$1(button) {
929
+ return (jsx(Button, { className: "mt-3", appendLeft: button?.icon && jsx(Img, { image: button?.icon, width: "24px", height: "24px", asSVG: true }), ...button }));
930
+ }
931
+ function renderDescription(card) {
932
+ return (jsx("div", { className: `text-secondary-text mt-1 text-s ${card.version === 'secondary' ? 'text-white opacity-80' : ''}`, children: card.description }));
933
+ }
934
+ function renderItems(items, isDotted, version = 'primary') {
935
+ return (jsx("section", { className: "mt-3", children: items.map((item, i) => (jsxs("div", { children: [isDotted ? jsx("div", { className: getListStyle(version) }) : null, jsx("span", { className: "text-m font-medium", children: item.title }), jsx("span", { className: `text-s pl-2 ${version === 'primary' ? 'text-secondary-text' : ''}`, children: item.text })] }, String(i)))) }));
936
+ }
937
+
938
+ class EventBus {
939
+ static inst = new EventBus();
940
+ subscribers = {};
941
+ subjectsStateMap = {};
942
+ subscribe(type, listener) {
943
+ this.subscribers[type] ||= [];
944
+ this.subscribers[type]?.push(listener);
945
+ const latestEvent = this.subjectsStateMap[type];
946
+ if (latestEvent) {
947
+ listener(latestEvent);
948
+ }
949
+ return () => {
950
+ this.unsubscribe(type, listener);
951
+ };
952
+ }
953
+ unsubscribe(type, listener) {
954
+ this.subscribers[type] = this.subscribers[type]?.filter((s) => s !== listener);
955
+ }
956
+ fire(type, event) {
957
+ this.subjectsStateMap[type] = event;
958
+ this.subscribers[type]?.forEach((s) => s(event));
959
+ }
960
+ subject(type, event) {
961
+ this.subjectsStateMap[type] = event;
962
+ }
963
+ }
964
+
965
+ const changeHashOnObserve = (entries) => {
966
+ if (!entries.length) {
967
+ return;
968
+ }
969
+ const [entry] = entries;
970
+ if (entry.isIntersecting) ;
971
+ };
972
+
973
+ const BlockWrapper = JSX(({ anchor, className, context, children, tag = 'section', labels }) => {
974
+ const Tag = tag;
975
+ const { IntersectionObserverTag } = context;
976
+ const [shouldRenderBlock, setShouldRenderBlock] = useState(true);
977
+ useEffect(() => EventBus.inst.subscribe('tab', (event) => {
978
+ setShouldRenderBlock(!labels?.length || !event.label || labels.includes(event.label));
979
+ }), [labels]);
980
+ if (!shouldRenderBlock) {
981
+ return null;
982
+ }
983
+ return anchor ? (jsx(IntersectionObserverTag, { tag: tag, className: className, observerCallback: changeHashOnObserve, observerOptions: { threshold: 1 }, anchor: anchor, children: children })) : (jsx(Tag, { className: className, children: children }));
984
+ });
985
+
986
+ const LinkList = JSX(({ className = '', documents, ...rest }) => {
987
+ return (jsx(BlockWrapper, { className: `font-sans bg-white mt-[10px] ${className}`, ...rest, children: jsx("ul", { className: "flex flex-col text-s text-secondary-text p-0", children: documents?.length ? renderLinkListItem(documents) : null }) }));
988
+ });
989
+ const renderLinkListItem = (documents) => {
990
+ return documents.map((doc, i) => {
991
+ const { text, ...linkProps } = doc;
992
+ return (jsx("li", { className: "mb-4 list-none", children: jsx("a", { className: "hover:text-primary-main", role: "link", ...linkProps, children: text ? text : null }) }, `list_item_${String(i)}`));
993
+ });
994
+ };
995
+
996
+ const EmbeddableBlocks = {
997
+ Headline,
998
+ LinkDocs,
999
+ TextBlock,
1000
+ ProductBlock,
1001
+ Gallery,
1002
+ LinkList,
1003
+ };
1004
+
1005
+ const renderBlocksList = ({ blocks, context, className = '' }) => blocks?.length ? blocks.map(renderBlock$1({ context, className })) : null;
1006
+ const renderBlock$1 = ({ context, className }) => (block, i) => {
1007
+ if (!block) {
1008
+ return null;
1009
+ }
1010
+ const { style, blockListType: type, ...rest } = block;
1011
+ if (!type || !(type in EmbeddableBlocks)) {
1012
+ return null;
1013
+ }
1014
+ const classNameBlock = style2className(style);
1015
+ const EmbeddedBlock = EmbeddableBlocks[type];
1016
+ return (jsx(EmbeddedBlock, { className: `${className} ${classNameBlock}`, context: context, ...rest }, `block_${i}`));
1017
+ };
1018
+
1019
+ const AccordionItemInner = JSX(({ blocks, context }) => {
1020
+ return (jsx("div", { className: "flex flex-wrap transition-all duration-300 max-h-0 overflow-hidden group-last:last:pb-0", children: renderBlocksList({ context, blocks, className: '!px-0' }) }));
1021
+ });
1022
+
1023
+ const useActiveHandler = ({ blocks, initialState = false }) => {
1024
+ const [isActive, setIsActive] = useState(initialState);
1025
+ const hasContent = blocks?.length;
1026
+ const icon = isActive ? 'MinusIcon' : 'PlusIcon';
1027
+ const handleToggle = (e) => {
1028
+ const currentTarget = e.currentTarget;
1029
+ if (!currentTarget) {
1030
+ return;
1031
+ }
1032
+ setIsActive(!isActive);
1033
+ const contentBlock = currentTarget.nextSibling;
1034
+ contentBlock.style.maxHeight = contentBlock.style.maxHeight
1035
+ ? ''
1036
+ : `${contentBlock.scrollHeight}px`;
1037
+ };
1038
+ return { isActive, hasContent, icon, handleToggle };
1039
+ };
1040
+
1041
+ const AccordionItem = JSX(({ label, labelIcon, blocks, bordered, context }) => {
1042
+ const { hasContent, icon, handleToggle } = useActiveHandler({ blocks });
1043
+ return (jsxs("li", { className: `${borderedLiClass(bordered)} border-solid border-main-divider`, children: [jsxs("button", { className: `border-none bg-transparent flex justify-between text-left w-full font-sans text-primary-text
1041
1044
  ${bordered ? '' : 'py-[14px] px-0'}
1042
- ${hasContent ? 'group cursor-pointer' : ''}`, onClick: handleToggle, children: [jsxs("span", { className: `text-m-title-xs pr-2.5 font-medium flex ${hasContent ? 'group-hover:text-primary-main' : ''}`, children: [labelIcon ? (jsx(Img, { image: labelIcon, width: "24", height: "24", asSVG: true, className: "mr-3" })) : null, label] }), hasContent ? jsx(Img, { image: icon, width: "24", height: "24", asSVG: true }) : null] }), hasContent ? jsx(AccordionItemInner, { blocks: blocks, context: context }) : null] }));
1043
- });
1044
- function borderedLiClass(bordered) {
1045
- return bordered ? 'border p-4 rounded mb-4' : 'border-0 border-b last:border-b-0';
1046
- }
1047
-
1048
- const Accordion = JSX(({ title, description, accordionItems, context, className = '', bordered }) => {
1049
- return (jsxs("section", { className: `py-6 px-4 font-sans bg-white text-primary-text ${className}`, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-2 text-center", title: title }) : null, description ? jsx("div", { className: "mb-5 text-m-md text-center", children: description }) : null, accordionItems?.length ? (jsx("ul", { className: "list-none m-0 p-0", children: accordionItems.map((item, i) => (jsx(AccordionItem, { ...item, context: context, bordered: bordered }, `AccordionItem_${i}`))) })) : null] }));
1050
- });
1051
-
1052
- const GRADIENT = 'bg-gradient-to-r from-main-gradient-start to-main-gradient-end';
1053
- const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
1054
-
1055
- const headingStyle = (isFillGradient = false) => (isFillGradient ? 'text-white' : '');
1056
- const subtitleStyle = (isFillGradient = false) => `text-m-sm mb-3.5 ${isFillGradient ? 'text-white' : 'text-secondary-text/80'}`;
1057
- const HeaderCell = JSX(({ icon, image, title, subtitle, isFillGradient }) => (jsxs("div", { role: "columnheader", children: [icon ? (jsx(Img, { className: "h-[63px] w-[63px] min-w-[63px] min-h-[63px] mb-4", image: icon, width: "63", height: "63" })) : null, image?.src && (jsx("div", { className: "mb-3.5", children: jsx(Img, { image: image }) })), title ? (jsx(Heading, { headingType: "h4", className: headingStyle(isFillGradient), title: title })) : null, subtitle ? jsx("div", { className: subtitleStyle(isFillGradient), children: subtitle }) : null] })));
1058
-
1059
- const TableCell = JSX(({ cell, rowHeader, isFillGradient = false }) => {
1060
- const cellWrapperClasses = `box-border flex flex-col`;
1061
- const cellClasses = `h-full ${DIVIDER_CLASSES}`;
1062
- return (jsx("div", { className: cellWrapperClasses, role: "cell", children: jsx("div", { className: cellClasses, children: cell.map(renderCellInner$1(isFillGradient, rowHeader)) }) }));
1063
- });
1064
- const renderCellInner$1 = (isFillGradient, rowHeader) => ({ label, description }, i) => (jsxs("div", { className: "flex justify-between text-m-sm py-3.5", children: [jsx("div", { className: `${isFillGradient ? 'text-white/80' : 'text-secondary-text'}`, children: rowHeader }), jsxs("div", { className: "basis-1/2", children: [label ? (jsx("div", { className: `text-right ${isFillGradient ? 'text-white' : ''}`, children: label })) : null, description ? (jsx("div", { className: `text-right ${isFillGradient ? 'text-white/80' : 'text-secondary-text'}`, children: description })) : null] })] }, String(i)));
1065
-
1066
- const TableColumn = JSX(({ header, columnData, visibleRowLength = 0, isFillGradient, showRow, onToggleColumn }) => {
1067
- const columnDataView = columnData?.slice(0, showRow ? columnData.length : visibleRowLength);
1068
- const gradientClassName = isFillGradient ? GRADIENT : '';
1069
- const buttonVersion = isFillGradient ? 'secondary' : 'primary';
1070
- return (jsxs("div", { className: `border border-main-stroke rounded-md p-4 mb-3.5 ${gradientClassName}`, role: "row", children: [jsx(HeaderCell, { ...header, isFillGradient: isFillGradient }), columnDataView?.length
1071
- ? columnDataView.map(({ rowHeader, cell }, i) => (jsx(TableCell, { cell: cell, rowHeader: rowHeader, isFillGradient: isFillGradient }, String(i))))
1072
- : null, showRow && renderButton({ header, buttonVersion }), renderToggleButton({ onToggleColumn, isFillGradient, showRow })] }));
1073
- });
1074
- const renderButton = ({ header, buttonVersion }) => (jsx(Button, { href: header.link.href, target: header.link.target, version: buttonVersion, className: "font-medium text-m-sm mt-4 py-[11px]", children: header.link.text }));
1075
- const renderToggleButton = ({ onToggleColumn, isFillGradient, showRow }) => (jsx("div", { className: "mt-5", role: "cell", children: jsx("a", { role: "link", onClick: onToggleColumn, className: `font-medium text-m-sm cursor-pointer ${isFillGradient ? 'text-white/80' : 'text-primary-main'}`, children: !showRow ? 'Показать описание' : 'Скрыть' }) }));
1076
-
1077
- const ComparisonTable = JSX(({ className, context, title, rowHeaders, columns, visibleRowLength = 0, isColoredFirstColumn = false, orientation = 'vertical', }) => {
1078
- const tableData = columns?.map(({ data, header }) => ({
1079
- header,
1080
- column: data?.map((cell, i) => ({ cell, rowHeader: rowHeaders?.[i]?.title })),
1081
- })) || [];
1082
- const [columnsViewState, setColumnsViewState] = context.useState(new Array(columns?.length).fill(!visibleRowLength));
1083
- const handleToggleColumn = (i) => {
1084
- columnsViewState[i] = !columnsViewState[i];
1085
- setColumnsViewState([...columnsViewState]);
1086
- };
1087
- return (jsxs("section", { className: `bg-white font-sans px-4 py-6 overflow-hidden text-primary-text relative ${className || ''}`, children: [title ? (jsx(Heading, { headingType: "h3", className: "font-medium text-center m-0 mb-5", title: title })) : null, renderColumns({
1088
- tableData,
1089
- context,
1090
- visibleRowLength,
1091
- isColoredFirstColumn,
1092
- columnsViewState,
1093
- handleToggleColumn,
1094
- orientation,
1095
- setColumnsViewState,
1096
- })] }));
1097
- });
1098
- const renderColumns = ({ context, tableData, visibleRowLength, isColoredFirstColumn, columnsViewState, handleToggleColumn, orientation = 'horizontal', setColumnsViewState, }) => (jsx("div", { role: "table", children: tableData?.length
1099
- ? renderInnerTable({
1100
- orientation,
1101
- context,
1102
- columnsViewState,
1103
- setColumnsViewState,
1104
- tableData,
1105
- visibleRowLength,
1106
- isColoredFirstColumn,
1107
- handleToggleColumn,
1108
- })
1109
- : null }));
1110
- const renderInnerTable = ({ orientation, context, columnsViewState, setColumnsViewState, tableData, visibleRowLength, isColoredFirstColumn, handleToggleColumn, }) => orientation === 'horizontal' ? (jsx(SwipeListControl, { context: context, onSlideChange: onSlideChange(columnsViewState, setColumnsViewState), children: tableData.map(renderColumn({
1111
- context,
1112
- visibleRowLength,
1113
- isColoredFirstColumn,
1114
- columnsViewState,
1115
- handleToggleColumn,
1116
- })) })) : (tableData.map(renderColumn({
1117
- context,
1118
- visibleRowLength,
1119
- isColoredFirstColumn,
1120
- columnsViewState,
1121
- handleToggleColumn,
1122
- })));
1123
- const renderColumn = ({ context, visibleRowLength, isColoredFirstColumn, columnsViewState, handleToggleColumn }) => (columnData, i) => (jsx(TableColumn, { context: context, visibleRowLength: visibleRowLength, showRow: columnsViewState[i], header: columnData.header, columnData: columnData.column, isFillGradient: i === 0 && isColoredFirstColumn, onToggleColumn: () => handleToggleColumn(i) }, String(i)));
1124
- const onSlideChange = (columnsViewState, setColumnsViewState) => () => {
1125
- setColumnsViewState(new Array(columnsViewState.length).fill(false));
1126
- };
1127
-
1128
- function useExchangeRates(useAsyncData) {
1129
- const { data } = useAsyncData(EXCHANGE_RATES_URL, fetchExchangeRates);
1130
- const result = data?.hits?.hits?.map((_) => _._source) || [];
1131
- return result.length ? getCurrencyListByRate(result) : result;
1132
- }
1133
- async function fetchExchangeRates() {
1134
- try {
1135
- const response = await fetch(EXCHANGE_RATES_URL, {
1136
- method: 'POST',
1137
- headers: {
1138
- 'Content-Type': 'application/json',
1139
- },
1140
- body: JSON.stringify(EXCHANGE_RATES_BODY),
1141
- });
1142
- return await response.json();
1143
- }
1144
- catch (err) {
1145
- console.error(err);
1146
- return Promise.resolve();
1147
- }
1148
- }
1149
- const EXCHANGE_RATES_URL = 'https://coins.rshb.ru/api/catalog/vue_storefront_magento_1_currency_rates_average/currency_rates_average/_search?size=10000';
1150
- const EXCHANGE_RATES_BODY = {
1151
- query: {
1152
- bool: {
1153
- must: [
1154
- {
1155
- term: {
1156
- // eslint-disable-next-line camelcase
1157
- russian_region_code: '77',
1158
- },
1159
- },
1160
- {
1161
- term: {
1162
- // eslint-disable-next-line camelcase
1163
- from_volume: '0',
1164
- },
1165
- },
1166
- {
1167
- terms: {
1168
- // eslint-disable-next-line camelcase
1169
- currency_pair: ['USD/RUB', 'EUR/RUB'],
1170
- },
1171
- },
1172
- ],
1173
- },
1174
- },
1175
- };
1176
- const getCurrencyListByRate = (currencyRates) => currencyRates.reduce((result, _) => {
1177
- const currencyInfo = _['currency_first'];
1178
- const currencyCode = currencyInfo?.code;
1179
- if (!result.some((i) => i.code === currencyCode)) {
1180
- result.push({
1181
- code: currencyCode,
1182
- buy: roundRate(Number(_.rate_buy)),
1183
- sell: roundRate(Number(_.rate_sell)),
1184
- });
1185
- }
1186
- return result;
1187
- }, []);
1188
- const roundRate = (value) => Math.round(value * 1000) / 1000;
1189
-
1190
- var Currency;
1191
- (function (Currency) {
1192
- Currency["RUB"] = "RUB";
1193
- Currency["EUR"] = "EUR";
1194
- Currency["USD"] = "USD";
1195
- })(Currency || (Currency = {}));
1196
-
1197
- const currencyNumberFormat = new Intl.NumberFormat('ru', {
1198
- style: 'currency',
1199
- currency: Currency.RUB,
1200
- });
1201
- const formatCurrency = (value) => (value ? currencyNumberFormat.format(value) : '');
1202
-
1203
- const TABLE_HEAD_STYLE = 'text-left text-m text-secondary-text';
1204
- const CURRENCY_ICONS_MAP = {
1205
- USD: 'DollarIcon',
1206
- EUR: 'EuroIcon',
1207
- };
1208
- const CurrencyTable = JSX(({ className, exchangeCurrencyItems }) => {
1209
- return (jsxs("table", { className: `h-fit w-fit ${className}`, children: [jsx("thead", { children: jsxs("tr", { children: [jsx("th", { className: TABLE_HEAD_STYLE, children: "\u0412\u0430\u043B\u044E\u0442\u0430" }), jsx("th", { className: `${TABLE_HEAD_STYLE} pl-11`, children: "\u041A\u0443\u043F\u0438\u0442\u044C" }), jsx("th", { className: `${TABLE_HEAD_STYLE} pl-11`, children: "\u041F\u0440\u043E\u0434\u0430\u0442\u044C" })] }) }), jsx("tbody", { children: exchangeCurrencyItems.map((item) => renderCurrencyRow(item)) })] }));
1210
- });
1211
- const renderCurrencyRow = (exchangeCurrencyItem) => {
1212
- const code = exchangeCurrencyItem?.code;
1213
- return (jsxs("tr", { className: "pb-1 text-h6", children: [jsx("td", { className: "pt-4", children: jsxs("div", { className: "flex items-center", children: [code ? jsx(Img, { image: { icon: CURRENCY_ICONS_MAP[code] }, width: "24", height: "24" }) : null, jsx("span", { className: "ml-2", children: code })] }) }), jsx("td", { className: "pt-4 pl-11", children: formatCurrency(exchangeCurrencyItem?.sell) }), jsx("td", { className: "pt-4 pl-11", children: formatCurrency(exchangeCurrencyItem?.buy) })] }, code));
1214
- };
1215
-
1216
- 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] })] })));
1217
-
1218
- const roundTo = (value, precision = 2) => {
1219
- const factor = Math.pow(10, precision);
1220
- return Math.round(parseFloat(String(value)) * factor) / factor;
1221
- };
1222
-
1223
- const calculateResult = (value, rate, precision) => {
1224
- const result = Number(formatValue(value)) * Math.pow(rate, precision ? -1 : 1);
1225
- return Number.isInteger(result) ? result : roundTo(result);
1226
- };
1227
- const formatValue = (value) => value.replace(/[^\d.,]/g, '').replace(',', '.');
1228
-
1229
- const tableFunc = (table) => (input) => {
1230
- const [, output] = table.find(([predicate]) => predicate(input)) || [];
1231
- return output;
1232
- };
1233
-
1234
- const callbackCurrencySelect = (props) => tableFunc([
1235
- [
1236
- (_) => _.value !== Currency.RUB && _.oppositeValue !== Currency.RUB,
1237
- () => props.handleConvert(props.value, Currency.RUB),
1238
- ],
1239
- [
1240
- (_) => _.value === Currency.RUB && _.oppositeValue === Currency.RUB,
1241
- () => props.handleConvert(props.value, Currency.USD),
1242
- ],
1243
- [() => true, () => props.handleConvert(props.value)],
1244
- ])(props)?.();
1245
-
1246
- const Input = JSX(({ className = '', id, name, type = 'text', placeholder, pattern, value, onChange }) => {
1247
- const handleChange = (e) => {
1248
- const validInputValue = e.target.validity.valid ? e.target.value : value;
1249
- onChange(validInputValue);
1250
- };
1251
- return (jsx("input", { className: className, id: id, name: name || id, type: type, pattern: pattern, placeholder: placeholder, value: value, onChange: handleChange }));
1252
- });
1253
-
1254
- const selectStyle = {
1255
- background: `url('/icons/ArrowDownIcon.svg') no-repeat right 16px top 50%`,
1256
- };
1257
- const Select = JSX(({ className = '', id, name, children, value, onChange }) => {
1258
- return (jsx("select", { className: `appearance-none ${className}`, style: selectStyle, id: id, name: name || id, value: value, onChange: (e) => onChange(e.target.value), children: children }));
1259
- });
1260
-
1261
- const SelectOption = JSX(({ className = '', value, selected, children }) => {
1262
- return (jsx("option", { className: className, value: `${value}`, selected: selected, children: children }));
1263
- });
1264
-
1265
- function renderInput(props) {
1266
- const { placeholder, rates, selected, value, setValue, setSelected } = props;
1267
- return (jsxs("div", { className: "relative flex items-center", children: [jsx(Input, { className: "shrink-0 h-13 border pl-4 pt-4 pb-4 rounded-md text-l w-full appearance-none -mr-12", placeholder: placeholder, type: "text", value: value, onChange: setValue }), rates.length ? (jsx(Select, { className: "shrink-0 w-20 h-9 -translate-x-8 bg-transparent", value: selected, onChange: (_) => setSelected(_), children: rates.map((_, i) => (jsx(SelectOption, { value: _.code, children: _.code }, String(i)))) })) : null] }));
1268
- }
1269
-
1270
- const ExchangeCurrencyCalculator = JSX(({ context, className = '', currencyRatesBuy, currencyRatesSell, button }) => {
1271
- const { useRouter, handlerDecorator } = context;
1272
- const router = useRouter();
1273
- const [calcState, setCalcState] = context.useState({
1274
- inputSell: '',
1275
- inputBuy: '',
1276
- selectSell: currencyRatesBuy?.[0]?.code || Currency.RUB,
1277
- selectBuy: currencyRatesSell?.[0]?.code || Currency.USD,
1278
- });
1279
- const handleSetCalcState = (newState) => {
1280
- setCalcState((oldState) => ({ ...oldState, ...newState }));
1281
- };
1282
- return (jsxs("div", { className: `grid gap-[18px] pt-2 ${className}`, children: [renderInput({
1283
- placeholder: 'Хочу продать',
1284
- rates: currencyRatesBuy,
1285
- selected: calcState.selectSell,
1286
- setSelected: handleSelectSell(calcState, handleSetCalcState, currencyRatesSell),
1287
- value: calcState.inputSell,
1288
- setValue: (value) => handleInputSell(handleSetCalcState, currencyRatesSell)(value, calcState.selectSell, calcState.selectBuy),
1289
- }), renderInput({
1290
- placeholder: 'Получу',
1291
- rates: currencyRatesSell,
1292
- selected: calcState.selectBuy,
1293
- setSelected: handleSelectBuy(calcState, handleSetCalcState, currencyRatesBuy),
1294
- value: calcState.inputBuy,
1295
- setValue: (value) => handleInputBuy(handleSetCalcState, currencyRatesBuy)(value, calcState.selectBuy, calcState.selectSell),
1296
- }), button?.text ? (jsx(Button, { className: "py-4 mr-1", version: button?.version, ...useLink({ router, handlerDecorator }, button), children: button.text })) : null] }));
1297
- });
1298
- const handleSelectSell = (calcState, setCalcState, currencyRatesSell) => (value) => {
1299
- setCalcState({ selectSell: value });
1300
- callbackCurrencySelect({
1301
- value,
1302
- oppositeValue: calcState.selectBuy,
1303
- handleConvert: (codeFrom = calcState.selectSell, codeTo = calcState.selectBuy) => {
1304
- handleInputSell(setCalcState, currencyRatesSell)(calcState.inputSell, codeFrom, codeTo);
1305
- },
1306
- });
1307
- };
1308
- const handleSelectBuy = (calcState, setCalcState, currencyRatesBuy) => (value) => {
1309
- setCalcState({ selectBuy: value });
1310
- callbackCurrencySelect({
1311
- value,
1312
- oppositeValue: calcState.selectSell,
1313
- handleConvert: (codeTo = calcState.selectBuy, codeFrom = calcState.selectSell) => handleInputBuy(setCalcState, currencyRatesBuy)(calcState.inputBuy, codeTo, codeFrom),
1314
- });
1315
- };
1316
- const handleInputSell = (setCalcState, currencyRatesSell) => (value, codeFrom, codeTo) => {
1317
- setCalcState({ inputSell: formatValue(value), selectBuy: codeTo });
1318
- const rate = currencyRatesSell.find((_) => _.code === codeTo)?.buy ||
1319
- currencyRatesSell.find((_) => _.code === codeFrom)?.sell;
1320
- if (rate) {
1321
- setCalcState({
1322
- inputBuy: String(calculateResult(value, rate, codeFrom === Currency.RUB) || ''),
1323
- });
1324
- }
1325
- };
1326
- const handleInputBuy = (setCalcState, currencyRatesBuy) => (value, codeTo, codeFrom) => {
1327
- setCalcState({ inputBuy: formatValue(value), selectSell: codeFrom });
1328
- const rate = currencyRatesBuy.find((_) => _.code === codeFrom)?.sell ||
1329
- currencyRatesBuy.find((_) => _.code === codeTo)?.buy;
1330
- if (rate) {
1331
- setCalcState({
1332
- inputSell: String(calculateResult(value, rate, codeTo === Currency.RUB) || ''),
1333
- });
1334
- }
1335
- };
1336
-
1337
- const DEFAULT_LOCATION = {
1338
- address: 'Москва, ул.Ленина д.28',
1339
- distance: '6км',
1340
- };
1341
- const ExchangeRateTile = JSX(({ className = '', context, title = 'Курсы обмена валют', button, ...rest }) => {
1342
- const currencyRates = useExchangeRates(context.useAsyncData);
1343
- const currencyRatesBuy = currencyRates.filter((_) => _.buy);
1344
- currencyRatesBuy.unshift({ code: Currency.RUB });
1345
- const currencyRatesSell = currencyRates.filter((_) => _.sell);
1346
- currencyRatesSell.push({ code: Currency.RUB });
1347
- 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] }) }) }));
1348
- });
1349
-
1350
- const SVG_COLOR = {
1351
- 'bg-white': 'text-primary-main',
1352
- transparent: 'text-white',
1353
- };
1354
- const TEXT_COLOR = {
1355
- 'bg-white': 'text-black',
1356
- transparent: 'text-white',
1357
- };
1358
- const Logo = JSX(({ className = '', href, children, targetBlank, bgColor = 'bg-white', hideTitle }) => {
1359
- return (jsxs("a", { className: `inline-flex items-center font-sans no-underline ${className}`, href: href || 'https://rshb.ru/', target: targetBlank ? '_blank' : '_self', "aria-label": "\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A", children: [jsx(Img, { image: { icon: 'Logo' }, className: `${SVG_COLOR[bgColor]} w-10 h-[38px]`, asSVG: true }), hideTitle ? null : (jsx("span", { className: `${TEXT_COLOR[bgColor]} text-sm font-medium ml-2.5`, children: children || 'Россельхозбанк' }))] }));
1360
- });
1361
-
1362
- const MobileAppTile = JSX(({ className = '', title = 'Мобильное приложение', description, href = '#' }) => {
1363
- return (jsx("div", { className: `col-span-12 rounded-md cursor-pointer p-4 mt-6 mb-6 bg-secondary-light ${className}`, children: href ? (jsxs("div", { className: "flex", children: [jsx("div", { className: "flex justify-center align-middle rounded-md bg-primary-main w-[50px] h-[50px]", children: jsx(Logo, { className: "w-[33px]", bgColor: "transparent", hideTitle: true }) }), jsxs("a", { href: href, target: "_blank", className: "flex flex-col justify-center pl-3 font-sans", children: [jsx("div", { className: "text-s font-medium mb-[3px]", children: title }), jsx("div", { className: "text-s text-secondary-text", children: description })] })] })) : null }));
1364
- });
1365
-
1366
- const Contacts = JSX(({ className = '', items, hasButton, context }) => {
1367
- const router = context.useRouter();
1368
- const { handlerDecorator } = context;
1369
- return (jsxs("div", { className: className, children: [items?.length ? items.map(renderContact) : null, hasButton ? (jsx(Button, { version: "primary", className: "mb-6 w-full", ...useLink({ router, handlerDecorator }, {
1370
- text: 'Обратная связь',
1371
- href: '/',
1372
- target: '_blank',
1373
- }) })) : null] }));
1374
- });
1375
- const renderContact = (item, index) => {
1376
- const { type, text, description } = item;
1377
- return (jsxs("div", { className: "mb-4", children: [jsx("div", { children: renderText(type, text) }), jsx("div", { className: "mt-1 text-s-light text-secondary-text", children: description })] }, String(index)));
1378
- };
1379
- const renderText = (type, text = '') => {
1380
- switch (type) {
1381
- case 'tel':
1382
- return (jsx("a", { className: "text-h6 text-primary-text hover:text-primary-main no-underline", href: `tel:${formatTel(text)}`, children: text }));
1383
- case 'email':
1384
- return (jsx("a", { className: "text-xl-light text-primary-text no-underline", href: `mailto:${text}`, children: text }));
1385
- default:
1386
- return jsx("span", { children: text });
1387
- }
1388
- };
1389
- const formatTel = (s) => s.replaceAll(/\D/g, '');
1390
-
1391
- const HorizontalNavigationLink = JSX(({ className = '', index, text, href, target, onClick }) => (jsx("a", { className: `text-secondary-text hover:text-primary-main inline-block no-underline ${className}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` })));
1392
-
1393
- const HorizontalNavigation = JSX(({ title, links, className = '', context }) => {
1394
- const router = context.useRouter();
1395
- const { handlerDecorator } = context;
1396
- return (jsxs("div", { className: className, children: [jsx("span", { className: "text-primary-text font-medium text-sm", children: title }), links?.length ? (jsx("div", { className: "flex flex-col gap-2 pt-3", children: links.map((_, i) => (jsx(HorizontalNavigationLink, { index: i, className: "font-normal text-sm", ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null] }));
1397
- });
1398
-
1399
- const ICONS_MAP = [
1400
- {
1401
- origins: ['t.me', 'telegram.org'],
1402
- icon: { icon: 'TelegramIcon' },
1403
- label: 'Телеграм',
1404
- },
1405
- {
1406
- origins: ['vk.com'],
1407
- icon: { icon: 'VKIcon' },
1408
- label: 'ВКонтакте',
1409
- },
1410
- {
1411
- origins: ['ok.ru'],
1412
- icon: { icon: 'OkIcon' },
1413
- label: 'Одноклассники',
1414
- },
1415
- {
1416
- origins: ['apps.apple.com'],
1417
- icon: { icon: 'AppleIcon' },
1418
- label: 'App Store',
1419
- },
1420
- {
1421
- origins: ['play.google.com'],
1422
- icon: { icon: 'PlayMarketIcon' },
1423
- label: 'Google Play',
1424
- },
1425
- ];
1426
- const MediaButton = JSX(({ href, version = 'primary' }) => {
1427
- const { icon, label } = ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
1428
- if (!icon) {
1429
- return null;
1430
- }
1431
- const classes = version === 'secondary'
1432
- ? 'bg-secondary-light hover:bg-secondary-hover'
1433
- : 'border-solid border-[1px] border-main-divider hover:border-transparent hover:bg-primary-main';
1434
- const isPrimary = version === 'primary';
1435
- return (jsx("a", { className: `flex items-center justify-center rounded-md w-14 h-14 group box-border ${classes} ${isPrimary ? 'hover:text-black' : ''}`, href: href, "aria-label": label, target: "_blank", rel: "noopener noreferrer", children: icon ? (jsx(Img, { image: icon, imageClassName: "group-hover:text-white", width: "24", height: "24", asSVG: true })) : null }));
1436
- });
1437
-
1438
- const SocialMedia = JSX(({ className, media, version, context }) => {
1439
- const router = context.useRouter();
1440
- const { handlerDecorator } = context;
1441
- return (jsx("div", { className: `flex gap-2 items-start justify-start pt-6 pb-6 ${className || ''}`, children: media?.map((_, index) => (jsx(MediaButton, { version: version, ...useLink({ router, handlerDecorator }, _) }, String(index)))) }));
1442
- });
1443
-
1444
- const TextInformationLink = JSX(({ className = '', index, text, href, target, onClick }) => (jsx("a", { className: `text-xs text-secondary-text visited:text-secondary-text hover:text-primary-main inline-block no-underline max-w-[292px] ${className}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` })));
1445
-
1446
- const TextInformation = JSX(({ className, links, context }) => {
1447
- const router = context.useRouter();
1448
- const { handlerDecorator } = context;
1449
- return (jsxs("div", { className: `${className || ''}`, children: [jsx("div", { className: "py-6", children: jsx("span", { className: "font-normal text-xs text-secondary-text", children: `\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00ABРоссельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.` }) }), links?.length ? (jsx("div", { className: `flex flex-col justify-start items-start gap-2`, children: links.map((_, i) => (jsx(TextInformationLink, { index: i, className: "font-normal", ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null] }));
1450
- });
1451
-
1452
- function useSitemap(useAsyncData) {
1453
- const { data } = useAsyncData(sitemapURL(), fetchSitemap);
1454
- return data || {};
1455
- }
1456
- async function fetchSitemap() {
1457
- const response = await fetch(sitemapURL());
1458
- return await response.json();
1459
- }
1460
- function sitemapURL() {
1461
- return `/wcms-resources/${projectSettings.SITEMAP || 'sitemap'}.json`;
1462
- }
1463
-
1464
- const SearchBarInner = JSX(({ className, context, isMobile = false }) => {
1465
- const { term, setTerm } = context.useSearch();
1466
- const LoupeIconClassName = isMobile ? 'w-[20px] h-[20px]' : 'w-[24px] h-[24px]';
1467
- const SearchBarLabelClassName = isMobile ? 'font-normal text-sm' : 'text-l-light';
1468
- const SearchBarInputClassName = isMobile
1469
- ? ' placeholder-transparent font-normal'
1470
- : 'font-light h-full';
1471
- const inputPlaceholder = isMobile ? 'some search' : undefined;
1472
- return (jsxs("form", { className: `font-sans relative ${className}`, children: [jsxs("div", { className: "absolute rounded h-full flex items-center justify-center pl-4 max-w-[170px] gap-3.5 pointer-events-none", children: [jsx("div", { className: LoupeIconClassName, children: jsx(Img, { image: "LoupeIcon", width: "24", height: "24" }) }), term ? null : (jsx("label", { htmlFor: "search-bar-input", className: `text-secondary-text ${SearchBarLabelClassName}`, children: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443" }))] }), jsx("input", { id: "search-bar-input", className: `h-12 pl-12 w-full peer text-l text-black border border-solid rounded-md box-border
1045
+ ${hasContent ? 'group cursor-pointer' : ''}`, onClick: handleToggle, children: [jsxs("span", { className: `text-m-title-xs font-medium pr-2.5 flex ${hasContent ? 'group-hover:text-primary-main' : ''}`, children: [labelIcon ? (jsx(Img, { image: labelIcon, width: "24", height: "24", asSVG: true, className: "mr-3" })) : null, label] }), hasContent ? jsx(Img, { className: "w-6", image: icon, width: "24", height: "24", asSVG: true }) : null] }), hasContent ? jsx(AccordionItemInner, { blocks: blocks, context: context }) : null] }));
1046
+ });
1047
+ function borderedLiClass(bordered) {
1048
+ return bordered ? 'border p-4 rounded mb-4' : 'border-0 border-b last:border-b-0';
1049
+ }
1050
+
1051
+ const Accordion = JSX(({ title, description, accordionItems, context, className = '', bordered }) => {
1052
+ return (jsxs("section", { className: `py-6 px-4 font-sans bg-white text-primary-text ${className}`, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-2 text-center", title: title }) : null, description ? jsx("div", { className: "mb-5 text-m-light text-center", children: description }) : null, accordionItems?.length ? (jsx("ul", { className: "list-none m-0 p-0", children: accordionItems.map((item, i) => (jsx(AccordionItem, { ...item, context: context, bordered: bordered }, `AccordionItem_${i}`))) })) : null] }));
1053
+ });
1054
+
1055
+ const GRADIENT = 'bg-gradient-to-r from-main-gradient-start to-main-gradient-end';
1056
+ const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
1057
+
1058
+ const headingStyle = (isFillGradient = false) => (isFillGradient ? 'text-white' : '');
1059
+ const subtitleStyle = (isFillGradient = false) => `text-s mb-3.5 ${isFillGradient ? 'text-white' : 'text-secondary-text/80'}`;
1060
+ const HeaderCell = JSX(({ icon, image, title, subtitle, isFillGradient }) => (jsxs("div", { role: "columnheader", children: [icon ? (jsx(Img, { className: "h-[63px] w-[63px] min-w-[63px] min-h-[63px] mb-4", image: icon, width: "63", height: "63" })) : null, image?.src && (jsx("div", { className: "mb-3.5", children: jsx(Img, { image: image }) })), title ? (jsx(Heading, { headingType: "h4", className: headingStyle(isFillGradient), title: title })) : null, subtitle ? jsx("div", { className: subtitleStyle(isFillGradient), children: subtitle }) : null] })));
1061
+
1062
+ const TableCell = JSX(({ cell, rowHeader, isFillGradient = false }) => {
1063
+ const cellWrapperClasses = `box-border flex flex-col`;
1064
+ const cellClasses = `h-full ${DIVIDER_CLASSES}`;
1065
+ return (jsx("div", { className: cellWrapperClasses, role: "cell", children: jsx("div", { className: cellClasses, children: cell.map(renderCellInner$1(isFillGradient, rowHeader)) }) }));
1066
+ });
1067
+ const renderCellInner$1 = (isFillGradient, rowHeader) => ({ label, description }, i) => (jsxs("div", { className: "flex justify-between text-s py-3.5", children: [jsx("div", { className: `${isFillGradient ? 'text-white/80' : 'text-secondary-text'}`, children: rowHeader }), jsxs("div", { className: "basis-1/2", children: [label ? (jsx("div", { className: `text-right ${isFillGradient ? 'text-white' : ''}`, children: label })) : null, description ? (jsx("div", { className: `text-right ${isFillGradient ? 'text-white/80' : 'text-secondary-text'}`, children: description })) : null] })] }, String(i)));
1068
+
1069
+ const TableColumn = JSX(({ header, columnData, visibleRowLength = 0, isFillGradient, showRow, onToggleColumn }) => {
1070
+ const columnDataView = columnData?.slice(0, showRow ? columnData.length : visibleRowLength);
1071
+ const gradientClassName = isFillGradient ? GRADIENT : '';
1072
+ const buttonVersion = isFillGradient ? 'secondary' : 'primary';
1073
+ return (jsxs("div", { className: `border border-main-stroke rounded-md p-4 mb-3.5 ${gradientClassName}`, role: "row", children: [jsx(HeaderCell, { ...header, isFillGradient: isFillGradient }), columnDataView?.length
1074
+ ? columnDataView.map(({ rowHeader, cell }, i) => (jsx(TableCell, { cell: cell, rowHeader: rowHeader, isFillGradient: isFillGradient }, String(i))))
1075
+ : null, showRow && renderButton({ header, buttonVersion }), renderToggleButton({ onToggleColumn, isFillGradient, showRow })] }));
1076
+ });
1077
+ const renderButton = ({ header, buttonVersion }) => (jsx(Button, { href: header.link.href, target: header.link.target, version: buttonVersion, className: "text-s font-medium mt-4 py-[11px]", children: header.link.text }));
1078
+ const renderToggleButton = ({ onToggleColumn, isFillGradient, showRow }) => (jsx("div", { className: "mt-5", role: "cell", children: jsx("a", { role: "link", onClick: onToggleColumn, className: `text-s font-medium cursor-pointer ${isFillGradient ? 'text-white/80' : 'text-primary-main'}`, children: !showRow ? 'Показать описание' : 'Скрыть' }) }));
1079
+
1080
+ const ComparisonTable = JSX(({ className, context, title, rowHeaders, columns, visibleRowLength = 0, isColoredFirstColumn = false, orientation = 'vertical', }) => {
1081
+ const tableData = columns?.map(({ data, header }) => ({
1082
+ header,
1083
+ column: data?.map((cell, i) => ({ cell, rowHeader: rowHeaders?.[i]?.title })),
1084
+ })) || [];
1085
+ const [columnsViewState, setColumnsViewState] = useState(new Array(columns?.length || 0).fill(!visibleRowLength));
1086
+ const handleToggleColumn = (i) => {
1087
+ columnsViewState[i] = !columnsViewState[i];
1088
+ setColumnsViewState([...columnsViewState]);
1089
+ };
1090
+ return (jsxs("section", { className: `bg-white font-sans px-4 py-6 overflow-hidden text-primary-text relative ${className || ''}`, children: [title ? (jsx(Heading, { headingType: "h3", className: "font-medium text-center m-0 mb-5", title: title })) : null, renderColumns({
1091
+ tableData,
1092
+ context,
1093
+ visibleRowLength,
1094
+ isColoredFirstColumn,
1095
+ columnsViewState,
1096
+ handleToggleColumn,
1097
+ orientation,
1098
+ setColumnsViewState,
1099
+ })] }));
1100
+ });
1101
+ const renderColumns = ({ context, tableData, visibleRowLength, isColoredFirstColumn, columnsViewState, handleToggleColumn, orientation = 'horizontal', setColumnsViewState, }) => (jsx("div", { role: "table", children: tableData?.length
1102
+ ? renderInnerTable({
1103
+ orientation,
1104
+ context,
1105
+ columnsViewState,
1106
+ setColumnsViewState,
1107
+ tableData,
1108
+ visibleRowLength,
1109
+ isColoredFirstColumn,
1110
+ handleToggleColumn,
1111
+ })
1112
+ : null }));
1113
+ const renderInnerTable = ({ orientation, context, columnsViewState, setColumnsViewState, tableData, visibleRowLength, isColoredFirstColumn, handleToggleColumn, }) => orientation === 'horizontal' ? (jsx(SwipeListControl, { context: context, onSlideChange: onSlideChange(columnsViewState, setColumnsViewState), children: tableData.map(renderColumn({
1114
+ context,
1115
+ visibleRowLength,
1116
+ isColoredFirstColumn,
1117
+ columnsViewState,
1118
+ handleToggleColumn,
1119
+ })) })) : (tableData.map(renderColumn({
1120
+ context,
1121
+ visibleRowLength,
1122
+ isColoredFirstColumn,
1123
+ columnsViewState,
1124
+ handleToggleColumn,
1125
+ })));
1126
+ const renderColumn = ({ context, visibleRowLength, isColoredFirstColumn, columnsViewState, handleToggleColumn }) => (columnData, i) => (jsx(TableColumn, { context: context, visibleRowLength: visibleRowLength, showRow: columnsViewState[i], header: columnData.header, columnData: columnData.column, isFillGradient: i === 0 && isColoredFirstColumn, onToggleColumn: () => handleToggleColumn(i) }, String(i)));
1127
+ const onSlideChange = (columnsViewState, setColumnsViewState) => () => {
1128
+ setColumnsViewState(new Array(columnsViewState.length).fill(false));
1129
+ };
1130
+
1131
+ const consistentDataMap = new Map();
1132
+ function useAsyncData$1(key, fetcher) {
1133
+ const args = useMemo(() => keyToArgs(key), [key]);
1134
+ const [data, setData] = useState();
1135
+ const [error, setError] = useState();
1136
+ const chainToConsistentResult = (_) => {
1137
+ _.then(_data => consistentDataMap.get(args) || _data)
1138
+ .then(setData)
1139
+ .catch(setError);
1140
+ };
1141
+ useEffect(() => {
1142
+ const isEmptyKey = args.every(_ => _ === null);
1143
+ if (isEmptyKey) {
1144
+ return;
1145
+ }
1146
+ try {
1147
+ const _ = fetcher(...args);
1148
+ if ('then' in _) {
1149
+ chainToConsistentResult(_);
1150
+ }
1151
+ else {
1152
+ setData(_);
1153
+ }
1154
+ }
1155
+ catch (err) {
1156
+ setError(err);
1157
+ }
1158
+ }, [fetcher, ...args]);
1159
+ return {
1160
+ data,
1161
+ error,
1162
+ mutate: () => Promise.resolve(undefined),
1163
+ isValidating: false
1164
+ };
1165
+ }
1166
+ function keyToArgs(key) {
1167
+ if (!key) {
1168
+ return [key];
1169
+ }
1170
+ if (Array.isArray(key)) {
1171
+ return key;
1172
+ }
1173
+ else if (key instanceof Function) {
1174
+ return keyToArgs(key());
1175
+ }
1176
+ else {
1177
+ return [key];
1178
+ }
1179
+ }
1180
+
1181
+ let impl = useAsyncData$1;
1182
+ const useAsyncData = (key, fetcher) => impl(key, fetcher);
1183
+
1184
+ function useExchangeRates() {
1185
+ const { data } = useAsyncData(EXCHANGE_RATES_URL, fetchExchangeRates);
1186
+ const result = data?.hits?.hits?.map((_) => _._source) || [];
1187
+ return result.length ? getCurrencyListByRate(result) : result;
1188
+ }
1189
+ async function fetchExchangeRates() {
1190
+ try {
1191
+ const response = await fetch(EXCHANGE_RATES_URL, {
1192
+ method: 'POST',
1193
+ headers: {
1194
+ 'Content-Type': 'application/json',
1195
+ },
1196
+ body: JSON.stringify(EXCHANGE_RATES_BODY),
1197
+ });
1198
+ return await response.json();
1199
+ }
1200
+ catch (err) {
1201
+ console.error(err);
1202
+ return Promise.resolve();
1203
+ }
1204
+ }
1205
+ const EXCHANGE_RATES_URL = 'https://coins.rshb.ru/api/catalog/vue_storefront_magento_1_currency_rates_average/currency_rates_average/_search?size=10000';
1206
+ const EXCHANGE_RATES_BODY = {
1207
+ query: {
1208
+ bool: {
1209
+ must: [
1210
+ {
1211
+ term: {
1212
+ // eslint-disable-next-line camelcase
1213
+ russian_region_code: '77',
1214
+ },
1215
+ },
1216
+ {
1217
+ term: {
1218
+ // eslint-disable-next-line camelcase
1219
+ from_volume: '0',
1220
+ },
1221
+ },
1222
+ {
1223
+ terms: {
1224
+ // eslint-disable-next-line camelcase
1225
+ currency_pair: ['USD/RUB', 'EUR/RUB'],
1226
+ },
1227
+ },
1228
+ ],
1229
+ },
1230
+ },
1231
+ };
1232
+ const getCurrencyListByRate = (currencyRates) => currencyRates.reduce((result, _) => {
1233
+ const currencyInfo = _['currency_first'];
1234
+ const currencyCode = currencyInfo?.code;
1235
+ if (!result.some((i) => i.code === currencyCode)) {
1236
+ result.push({
1237
+ code: currencyCode,
1238
+ buy: roundRate(Number(_.rate_buy)),
1239
+ sell: roundRate(Number(_.rate_sell)),
1240
+ });
1241
+ }
1242
+ return result;
1243
+ }, []);
1244
+ const roundRate = (value) => Math.round(value * 1000) / 1000;
1245
+
1246
+ var Currency;
1247
+ (function (Currency) {
1248
+ Currency["RUB"] = "RUB";
1249
+ Currency["EUR"] = "EUR";
1250
+ Currency["USD"] = "USD";
1251
+ })(Currency || (Currency = {}));
1252
+
1253
+ const currencyNumberFormat = new Intl.NumberFormat('ru', {
1254
+ style: 'currency',
1255
+ currency: Currency.RUB,
1256
+ });
1257
+ const formatCurrency = (value) => (value ? currencyNumberFormat.format(value) : '');
1258
+
1259
+ const TABLE_HEAD_STYLE = 'text-left text-m-light text-secondary-text';
1260
+ const CURRENCY_ICONS_MAP = {
1261
+ USD: 'DollarIcon',
1262
+ EUR: 'EuroIcon',
1263
+ };
1264
+ const CurrencyTable = JSX(({ className, exchangeCurrencyItems }) => {
1265
+ return (jsxs("table", { className: `h-fit w-fit ${className}`, children: [jsx("thead", { children: jsxs("tr", { children: [jsx("th", { className: TABLE_HEAD_STYLE, children: "\u0412\u0430\u043B\u044E\u0442\u0430" }), jsx("th", { className: `${TABLE_HEAD_STYLE} pl-11`, children: "\u041A\u0443\u043F\u0438\u0442\u044C" }), jsx("th", { className: `${TABLE_HEAD_STYLE} pl-11`, children: "\u041F\u0440\u043E\u0434\u0430\u0442\u044C" })] }) }), jsx("tbody", { children: exchangeCurrencyItems.map((item) => renderCurrencyRow(item)) })] }));
1266
+ });
1267
+ const renderCurrencyRow = (exchangeCurrencyItem) => {
1268
+ const code = exchangeCurrencyItem?.code;
1269
+ return (jsxs("tr", { className: "pb-1 text-h6", children: [jsx("td", { className: "pt-4", children: jsxs("div", { className: "flex items-center", children: [code ? jsx(Img, { image: { icon: CURRENCY_ICONS_MAP[code] }, width: "24", height: "24" }) : null, jsx("span", { className: "ml-2", children: code })] }) }), jsx("td", { className: "pt-4 pl-11", children: formatCurrency(exchangeCurrencyItem?.sell) }), jsx("td", { className: "pt-4 pl-11", children: formatCurrency(exchangeCurrencyItem?.buy) })] }, code));
1270
+ };
1271
+
1272
+ 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] })] })));
1273
+
1274
+ const roundTo = (value, precision = 2) => {
1275
+ const factor = Math.pow(10, precision);
1276
+ return Math.round(parseFloat(String(value)) * factor) / factor;
1277
+ };
1278
+
1279
+ const calculateResult = (value, rate, precision) => {
1280
+ const result = Number(formatValue(value)) * Math.pow(rate, precision ? -1 : 1);
1281
+ return Number.isInteger(result) ? result : roundTo(result);
1282
+ };
1283
+ const formatValue = (value) => value.replace(/[^\d.,]/g, '').replace(',', '.');
1284
+
1285
+ const tableFunc = (table) => (input) => {
1286
+ const [, output] = table.find(([predicate]) => predicate(input)) || [];
1287
+ return output;
1288
+ };
1289
+
1290
+ const callbackCurrencySelect = (props) => tableFunc([
1291
+ [
1292
+ (_) => _.value !== Currency.RUB && _.oppositeValue !== Currency.RUB,
1293
+ () => props.handleConvert(props.value, Currency.RUB),
1294
+ ],
1295
+ [
1296
+ (_) => _.value === Currency.RUB && _.oppositeValue === Currency.RUB,
1297
+ () => props.handleConvert(props.value, Currency.USD),
1298
+ ],
1299
+ [() => true, () => props.handleConvert(props.value)],
1300
+ ])(props)?.();
1301
+
1302
+ const Input = JSX(({ className = '', id, name, type = 'text', placeholder, pattern, value, onChange }) => {
1303
+ const handleChange = (e) => {
1304
+ const validInputValue = e.target.validity.valid ? e.target.value : value;
1305
+ onChange(validInputValue);
1306
+ };
1307
+ return (jsx("input", { className: className, id: id, name: name || id, type: type, pattern: pattern, placeholder: placeholder, value: value, onChange: handleChange }));
1308
+ });
1309
+
1310
+ const selectStyle = {
1311
+ background: `url('/icons/ArrowDownIcon.svg') no-repeat right 16px top 50%`,
1312
+ };
1313
+ const Select = JSX(({ className = '', id, name, children, value, onChange }) => {
1314
+ return (jsx("select", { className: `appearance-none ${className}`, style: selectStyle, id: id, name: name || id, value: value, onChange: (e) => onChange(e.target.value), children: children }));
1315
+ });
1316
+
1317
+ const SelectOption = JSX(({ className = '', value, selected, children }) => {
1318
+ return (jsx("option", { className: className, value: `${value}`, selected: selected, children: children }));
1319
+ });
1320
+
1321
+ function renderInput(props) {
1322
+ const { placeholder, rates, selected, value, setValue, setSelected } = props;
1323
+ return (jsxs("div", { className: "relative flex items-center", children: [jsx(Input, { className: "shrink-0 h-13 border pl-4 pt-4 pb-4 rounded-md text-l w-full appearance-none -mr-12", placeholder: placeholder, type: "text", value: value, onChange: setValue }), rates.length ? (jsx(Select, { className: "shrink-0 w-20 h-9 -translate-x-8 bg-transparent", value: selected, onChange: (_) => setSelected(_), children: rates.map((_, i) => (jsx(SelectOption, { value: _.code, children: _.code }, String(i)))) })) : null] }));
1324
+ }
1325
+
1326
+ const ExchangeCurrencyCalculator = JSX(({ context, className = '', currencyRatesBuy, currencyRatesSell, button }) => {
1327
+ const { useRouter, handlerDecorator } = context;
1328
+ const router = useRouter();
1329
+ const [calcState, setCalcState] = useState({
1330
+ inputSell: '',
1331
+ inputBuy: '',
1332
+ selectSell: currencyRatesBuy?.[0]?.code || Currency.RUB,
1333
+ selectBuy: currencyRatesSell?.[0]?.code || Currency.USD,
1334
+ });
1335
+ const handleSetCalcState = (newState) => {
1336
+ setCalcState((oldState) => ({ ...oldState, ...newState }));
1337
+ };
1338
+ return (jsxs("div", { className: `grid gap-[18px] pt-2 ${className}`, children: [renderInput({
1339
+ placeholder: 'Хочу продать',
1340
+ rates: currencyRatesSell,
1341
+ selected: calcState.selectSell,
1342
+ setSelected: handleSelectSell(calcState, handleSetCalcState, currencyRatesSell),
1343
+ value: calcState.inputSell,
1344
+ setValue: (value) => handleInputSell(handleSetCalcState, currencyRatesSell)(value, calcState.selectSell, calcState.selectBuy),
1345
+ }), renderInput({
1346
+ placeholder: 'Получу',
1347
+ rates: currencyRatesBuy,
1348
+ selected: calcState.selectBuy,
1349
+ setSelected: handleSelectBuy(calcState, handleSetCalcState, currencyRatesBuy),
1350
+ value: calcState.inputBuy,
1351
+ setValue: (value) => handleInputBuy(handleSetCalcState, currencyRatesBuy)(value, calcState.selectBuy, calcState.selectSell),
1352
+ }), button?.text ? (jsx(Button, { className: "py-4 mr-1", version: button?.version, ...useLink({ router, handlerDecorator }, button), children: button.text })) : null] }));
1353
+ });
1354
+ const handleSelectSell = (calcState, setCalcState, currencyRatesSell) => (value) => {
1355
+ setCalcState({ selectSell: value });
1356
+ callbackCurrencySelect({
1357
+ value,
1358
+ oppositeValue: calcState.selectBuy,
1359
+ handleConvert: (codeFrom = calcState.selectSell, codeTo = calcState.selectBuy) => {
1360
+ handleInputSell(setCalcState, currencyRatesSell)(calcState.inputSell, codeFrom, codeTo);
1361
+ },
1362
+ });
1363
+ };
1364
+ const handleSelectBuy = (calcState, setCalcState, currencyRatesBuy) => (value) => {
1365
+ setCalcState({ selectBuy: value });
1366
+ callbackCurrencySelect({
1367
+ value,
1368
+ oppositeValue: calcState.selectSell,
1369
+ handleConvert: (codeTo = calcState.selectBuy, codeFrom = calcState.selectSell) => handleInputBuy(setCalcState, currencyRatesBuy)(calcState.inputBuy, codeTo, codeFrom),
1370
+ });
1371
+ };
1372
+ const handleInputSell = (setCalcState, currencyRatesSell) => (value, codeFrom, codeTo) => {
1373
+ setCalcState({ inputSell: formatValue(value), selectBuy: codeTo });
1374
+ const rate = currencyRatesSell.find((_) => _.code === codeTo)?.buy ||
1375
+ currencyRatesSell.find((_) => _.code === codeFrom)?.sell;
1376
+ if (rate) {
1377
+ setCalcState({
1378
+ inputBuy: String(calculateResult(value, rate, codeFrom === Currency.RUB) || ''),
1379
+ });
1380
+ }
1381
+ };
1382
+ const handleInputBuy = (setCalcState, currencyRatesBuy) => (value, codeTo, codeFrom) => {
1383
+ setCalcState({ inputBuy: formatValue(value), selectSell: codeFrom });
1384
+ const rate = currencyRatesBuy.find((_) => _.code === codeFrom)?.sell ||
1385
+ currencyRatesBuy.find((_) => _.code === codeTo)?.buy;
1386
+ if (rate) {
1387
+ setCalcState({
1388
+ inputSell: String(calculateResult(value, rate, codeTo === Currency.RUB) || ''),
1389
+ });
1390
+ }
1391
+ };
1392
+
1393
+ const DEFAULT_LOCATION = {
1394
+ address: 'Москва, ул.Ленина д.28',
1395
+ distance: '6км',
1396
+ };
1397
+ const ExchangeRateTile = JSX(({ className = '', context, title = 'Курсы обмена валют', button, ...rest }) => {
1398
+ const currencyRates = useExchangeRates();
1399
+ const currencyRatesBuy = currencyRates.filter((_) => _.buy);
1400
+ currencyRatesBuy.unshift({ code: Currency.RUB });
1401
+ const currencyRatesSell = currencyRates.filter((_) => _.sell);
1402
+ currencyRatesSell.push({ code: Currency.RUB });
1403
+ 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] }) }) }));
1404
+ });
1405
+
1406
+ const SVG_COLOR = {
1407
+ 'bg-white': 'text-primary-main',
1408
+ transparent: 'text-white',
1409
+ };
1410
+ const TEXT_COLOR = {
1411
+ 'bg-white': 'text-black',
1412
+ transparent: 'text-white',
1413
+ };
1414
+ const Logo = JSX(({ className = '', href, children, targetBlank, bgColor = 'bg-white', hideTitle }) => {
1415
+ return (jsxs("a", { className: `inline-flex items-center font-sans no-underline ${className}`, href: href || 'https://rshb.ru/', target: targetBlank ? '_blank' : '_self', "aria-label": "\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A", children: [jsx(Img, { image: { icon: 'Logo' }, className: `${SVG_COLOR[bgColor]} w-10 h-[38px]`, asSVG: true }), hideTitle ? null : (jsx("span", { className: `${TEXT_COLOR[bgColor]} text-s font-medium ml-2.5`, children: children || 'Россельхозбанк' }))] }));
1416
+ });
1417
+
1418
+ const MobileAppTile = JSX(({ className = '', title = 'Мобильное приложение', description, href = '#' }) => {
1419
+ return (jsx("div", { className: `col-span-12 rounded-md cursor-pointer p-4 mt-6 mb-6 bg-secondary-light font-sans ${className}`, children: href ? (jsxs("div", { className: "flex", children: [jsx("div", { className: "flex justify-center align-middle rounded-md bg-primary-main w-[50px] h-[50px]", children: jsx(Logo, { className: "w-[33px]", bgColor: "transparent", hideTitle: true }) }), jsxs("a", { href: href, target: "_blank", className: "flex flex-col justify-center pl-3", children: [jsx("div", { className: "text-s font-medium mb-[3px]", children: title }), jsx("div", { className: "text-s text-secondary-text", children: description })] })] })) : null }));
1420
+ });
1421
+
1422
+ const Contacts = JSX(({ className = '', items, hasButton, context }) => {
1423
+ const router = context.useRouter();
1424
+ const { handlerDecorator } = context;
1425
+ return (jsxs("div", { className: className, children: [items?.length ? items.map(renderContact) : null, hasButton ? (jsx(Button, { version: "primary", className: "mb-6 w-full", ...useLink({ router, handlerDecorator }, {
1426
+ text: 'Обратная связь',
1427
+ href: '/',
1428
+ target: '_blank',
1429
+ }) })) : null] }));
1430
+ });
1431
+ const renderContact = (item, index) => {
1432
+ const { type, text, description } = item;
1433
+ return (jsxs("div", { className: "mb-4", children: [jsx("div", { children: renderText(type, text) }), jsx("div", { className: "mt-1 text-s-light text-secondary-text", children: description })] }, String(index)));
1434
+ };
1435
+ const renderText = (type, text = '') => {
1436
+ switch (type) {
1437
+ case 'tel':
1438
+ return (jsx("a", { className: "text-h6 text-primary-text hover:text-primary-main no-underline", href: `tel:${formatTel(text)}`, children: text }));
1439
+ case 'email':
1440
+ return (jsx("a", { className: "text-xl-light text-primary-text no-underline", href: `mailto:${text}`, children: text }));
1441
+ default:
1442
+ return jsx("span", { children: text });
1443
+ }
1444
+ };
1445
+ const formatTel = (s) => s.replaceAll(/\D/g, '');
1446
+
1447
+ const HorizontalNavigationLink = JSX(({ className = '', index, text, href, target, onClick }) => (jsx("a", { className: `text-secondary-text hover:text-primary-main inline-block no-underline ${className}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` })));
1448
+
1449
+ const HorizontalNavigation = JSX(({ title, links, className = '', context }) => {
1450
+ const router = context.useRouter();
1451
+ const { handlerDecorator } = context;
1452
+ return (jsxs("div", { className: className, children: [jsx("span", { className: "text-primary-text text-s font-medium", children: title }), links?.length ? (jsx("div", { className: "flex flex-col gap-2 pt-3", children: links.map((_, i) => (jsx(HorizontalNavigationLink, { index: i, className: "text-s", ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null] }));
1453
+ });
1454
+
1455
+ const ICONS_MAP = [
1456
+ {
1457
+ origins: ['t.me', 'telegram.org'],
1458
+ icon: { icon: 'TelegramIcon' },
1459
+ label: 'Телеграм',
1460
+ },
1461
+ {
1462
+ origins: ['vk.com'],
1463
+ icon: { icon: 'VKIcon' },
1464
+ label: 'ВКонтакте',
1465
+ },
1466
+ {
1467
+ origins: ['ok.ru'],
1468
+ icon: { icon: 'OkIcon' },
1469
+ label: 'Одноклассники',
1470
+ },
1471
+ {
1472
+ origins: ['apps.apple.com'],
1473
+ icon: { icon: 'AppleIcon' },
1474
+ label: 'App Store',
1475
+ },
1476
+ {
1477
+ origins: ['play.google.com'],
1478
+ icon: { icon: 'PlayMarketIcon' },
1479
+ label: 'Google Play',
1480
+ },
1481
+ ];
1482
+ const MediaButton = JSX(({ href, version = 'primary' }) => {
1483
+ const { icon, label } = ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
1484
+ if (!icon) {
1485
+ return null;
1486
+ }
1487
+ const classes = version === 'secondary'
1488
+ ? 'bg-secondary-light hover:bg-secondary-hover'
1489
+ : 'border-solid border-[1px] border-main-divider hover:border-transparent hover:bg-primary-main';
1490
+ const isPrimary = version === 'primary';
1491
+ return (jsx("a", { className: `flex items-center justify-center rounded-md w-14 h-14 group box-border ${classes} ${isPrimary ? 'hover:text-black' : ''}`, href: href, "aria-label": label, target: "_blank", rel: "noopener noreferrer", children: icon ? (jsx(Img, { image: icon, imageClassName: "group-hover:text-white", width: "24", height: "24", asSVG: true })) : null }));
1492
+ });
1493
+
1494
+ const SocialMedia = JSX(({ className, media, version, context }) => {
1495
+ const router = context.useRouter();
1496
+ const { handlerDecorator } = context;
1497
+ return (jsx("div", { className: `flex gap-2 items-start justify-start pt-6 pb-6 ${className || ''}`, children: media?.map((_, index) => (jsx(MediaButton, { version: version, ...useLink({ router, handlerDecorator }, _) }, String(index)))) }));
1498
+ });
1499
+
1500
+ const TextInformationLink = JSX(({ className = '', index, text, href, target, onClick }) => (jsx("a", { className: `text-xs-light text-secondary-text visited:text-secondary-text hover:text-primary-main inline-block no-underline max-w-[292px] ${className}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` })));
1501
+
1502
+ const TextInformation = JSX(({ className, links, context }) => {
1503
+ const router = context.useRouter();
1504
+ const { handlerDecorator } = context;
1505
+ return (jsxs("div", { className: `${className || ''}`, children: [jsx("div", { className: "py-6", children: jsx("span", { className: "text-xs-light text-secondary-text", children: `\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00ABРоссельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.` }) }), links?.length ? (jsx("div", { className: `flex flex-col justify-start items-start gap-2`, children: links.map((_, i) => (jsx(TextInformationLink, { index: i, className: "", ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null] }));
1506
+ });
1507
+
1508
+ function useSitemap() {
1509
+ const { data } = useAsyncData(sitemapURL(), fetchSitemap);
1510
+ return data || {};
1511
+ }
1512
+ async function fetchSitemap() {
1513
+ const response = await fetch(sitemapURL());
1514
+ return await response.json();
1515
+ }
1516
+ function sitemapURL() {
1517
+ return `/wcms-resources/${projectSettings.SITEMAP || 'sitemap'}.json`;
1518
+ }
1519
+
1520
+ const useSearch = () => {
1521
+ const [term, setTerm] = useState('');
1522
+ return {
1523
+ term,
1524
+ setTerm: (text) => setTerm(text),
1525
+ };
1526
+ };
1527
+
1528
+ const SearchBarInner = JSX(({ className, isMobile = false }) => {
1529
+ const { term, setTerm } = useSearch();
1530
+ const LoupeIconClassName = isMobile ? 'w-[20px] h-[20px]' : 'w-[24px] h-[24px]';
1531
+ const SearchBarLabelClassName = isMobile ? 'text-s' : 'text-l-light';
1532
+ const SearchBarInputClassName = isMobile ? ' placeholder-transparent' : 'h-full';
1533
+ const inputPlaceholder = isMobile ? 'some search' : undefined;
1534
+ return (jsxs("form", { className: `font-sans relative ${className}`, children: [jsxs("div", { className: "absolute rounded h-full flex items-center justify-center pl-4 max-w-[170px] gap-3.5 pointer-events-none", children: [jsx("div", { className: LoupeIconClassName, children: jsx(Img, { image: "LoupeIcon", width: "24", height: "24" }) }), term ? null : (jsx("label", { htmlFor: "search-bar-input", className: `text-secondary-text ${SearchBarLabelClassName}`, children: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443" }))] }), jsx("input", { id: "search-bar-input", className: `h-12 pl-12 w-full peer text-l text-black border border-solid rounded-md box-border
1473
1535
  outline-none pr-[6%] border-main-divider focus:border-primary-text ${SearchBarInputClassName}`, value: term, onChange: (e) => setTerm(e.target.value), type: "text", name: "search-bar-input", placeholder: inputPlaceholder }), isMobile ? (jsx("button", { className: "visible peer-placeholder-shown:invisible absolute top-2 right-3 w-6 h-6 p-1 bg-transparent cursor-pointer border-none", onClick: (e) => {
1474
- e.preventDefault();
1475
- setTerm('');
1476
- }, children: jsx(Img, { image: "CloseIcon", width: "24", height: "24" }) })) : (jsx(Button, { version: "primary", text: "\u041D\u0430\u0439\u0442\u0438", className: "invisible peer-focus:visible absolute top-1 right-1", onClick: (ev) => {
1477
- ev?.preventDefault();
1478
- console.log('click');
1479
- }, children: jsx("div", { className: "font-normal text-sm px-9 py-[9px]", children: "\u041D\u0430\u0439\u0442\u0438" }) }))] }));
1480
- });
1481
-
1482
- const SearchBar = JSX(({ className = '', context }) => {
1483
- return jsx(SearchBarInner, { context: context, className: className, isMobile: true });
1484
- });
1485
-
1486
- const getAccordionItems = (items) => items?.map((item) => ({
1487
- label: item.text || '',
1488
- blocks: [
1489
- {
1490
- accordionBlockType: 'LinkList',
1491
- documents: item.items || [],
1492
- },
1493
- ],
1494
- }));
1495
-
1496
- const Footer = JSX(({ className = '', documents, relatedEnterprises, contacts, socialMedia, context, horizontalNavigationTitle, }) => {
1497
- const sitemap = useSitemap(context.useAsyncData);
1498
- const dispositions = sitemap?.dispositions;
1499
- return (jsxs("footer", { className: `font-sans px-4 py-[26px] bg-white ${className}`, children: [jsx(Contacts, { className: "overflow-hidden", items: contacts, context: context, hasButton: true }), jsx(Accordion, { context: context, className: "!p-0 mb-4", accordionItems: getAccordionItems(sitemap.topItems) }), jsx("div", { children: dispositions?.map(renderSubMenuItem) }), jsx(MobileAppTile, { context: context, title: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435", description: "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0434\u043B\u044F IOS \u0438 Android" }), jsx(SearchBar, { context: context, className: "grow" }), jsx(SocialMedia, { className: "pb-4", media: socialMedia, context: context }), jsx(HorizontalNavigation, { title: horizontalNavigationTitle, links: relatedEnterprises, context: context }), jsx(TextInformation, { links: documents, context: context })] }));
1500
- });
1501
- const renderSubMenuItem = (menu, i) => {
1502
- const { icon, href, text } = menu;
1503
- return (jsxs(Button, { version: "link", href: href, className: "flex text-sm mb-4", children: [icon ? jsx(Img, { className: "pr-1", image: icon, width: "24", height: "24", asSVG: true }) : null, jsx("span", { className: "pl-2.5 font-medium text-primary-text", children: text })] }, `footer-${i}`));
1504
- };
1505
-
1506
- const maxBy = (discriminator) => (list) => list.reduceRight((a, b) => (discriminator(a) > discriminator(b) ? a : b));
1507
-
1508
- const isHrefActive = (href, router, cmp = (targetHref, baseHref) => baseHref.startsWith(targetHref)) => {
1509
- return cmp(withoutQuery(href), withoutMobilePath(withoutQuery(isURL(href) ? router.href : router.pathname)));
1510
- };
1511
-
1512
- const isSubItemActive = (router) => (subItem) => isHrefActive(subItem.href, router);
1513
-
1514
- const findActiveSubItem = (router) => (items = []) => {
1515
- const possibleActiveSubItems = items?.filter(isSubItemActive(router));
1516
- return possibleActiveSubItems?.length
1517
- ? maxBy((_) => _.href?.length || 0)(possibleActiveSubItems) // More specific item with max length
1518
- : undefined;
1519
- };
1520
-
1521
- const checkIsHrefSameOrigin = (href, router) => getOrigin(href) === getOrigin(router.href);
1522
-
1523
- const isTopItemActive = (router) => (topItem) => topItem.items?.some(isSubItemActive(router)) ||
1524
- isHrefActive(topItem.href, router) ||
1525
- checkIsHrefSameOrigin(topItem.href, router);
1526
-
1527
- const cmp = (a) => (b) => a?.href === b?.href;
1528
- const substitute = (items, substitution) => (items || []).map((_) => substitution?.find(cmp(_)) || _);
1529
- const subtract = (minuend, subtrahend) => (minuend || []).filter((_) => !subtrahend?.find(cmp(_)));
1530
- const mergeTopItems = (left, right) => substitute(left, right).concat(subtract(right, left));
1531
-
1532
- const TEXT_CLASSES = 'font-sans font-normal text-sm';
1533
- const BORDER_CLASSES = 'absolute left-0 -bottom-3 w-full h-[2px]';
1534
- const HeaderItem = JSX(({ className = '', text, href, target, active, onClick, children, bgColor = 'bg-white' }) => {
1535
- return (jsxs("a", { className: `relative inline-block bg-transparent text-center no-underline ${className}`, href: href, target: target, onClick: onClick, children: [jsx("span", { className: getTextClasses(bgColor, active), children: text || children }), active ? jsx("div", { className: getBorderClasses(bgColor, active) }) : null] }));
1536
- });
1537
- const getTextClasses = (bgColor, active = false) => {
1538
- let classes = 'text-white';
1539
- if (bgColor === 'bg-white') {
1540
- classes = active ? 'text-primary-main' : 'text-secondary-text hover:text-primary-main';
1541
- }
1542
- return `${classes} ${TEXT_CLASSES}`;
1543
- };
1544
- const getBorderClasses = (bgColor, active = false) => {
1545
- if (!active) {
1546
- return BORDER_CLASSES;
1547
- }
1548
- return `${bgColor === 'bg-white' ? 'bg-primary-main' : bgColor} ${BORDER_CLASSES}`;
1549
- };
1550
-
1551
- const HeaderBurger = JSX(({ context, burgerSubMenu, onClick, defaultLocation = '', children }) => {
1552
- const [city, getCity] = context.useGeolocation(defaultLocation);
1553
- return (jsxs("div", { className: "absolute top-0 left-0 w-full h-full bg-white p-4 box-border z-20", children: [jsx("button", { className: "absolute top-4 right-4 border-none bg-transparent cursor-pointer", onClick: onClick, children: jsx(Img, { image: "CloseIcon", width: "24", height: "24", asSVG: true }) }), jsxs("button", { onClick: getCity, className: "flex items-center text-sm text-secondary-text p-0 mb-4 bg-transparent cursor-pointer", children: [jsx(Img, { image: "GeolocationIcon", width: "20", height: "20", className: "text-primary-main box-border mr-2", asSVG: true }), city] }), children, jsx("div", { className: "mb-7", children: burgerSubMenu?.map(renderBurgerSubMenuItem) }), jsx(SearchBar, { context: context, className: "grow" })] }));
1554
- });
1555
- const renderBurgerSubMenuItem = (menu, i) => {
1556
- const { icon, href, text } = menu;
1557
- return (jsxs("a", { href: href, className: "flex text-sm mb-4 hover:text-primary-main", children: [icon ? (jsx(Img, { className: "text-primary-main pr-1", image: icon, width: "24", height: "24", asSVG: true })) : null, jsx("span", { className: "pl-0.5 font-medium", children: text })] }, `headerSubMenu-${i}`));
1558
- };
1559
-
1560
- const HeaderTop = JSX(({ onClick, bgColor }) => (jsxs("div", { className: "flex items-center justify-between border-0 border-b border-main-divider h-[50px]", children: [jsxs("div", { className: "flex items-center", children: [jsx("button", { className: "pl-0 pr-4 border-0 bg-transparent cursor-pointer", onClick: onClick, "aria-label": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u043D\u044E", children: jsx(Img, { image: { icon: 'BurgerIcon', iconVersion: bgColor === 'bg-white' ? 'black' : 'white' }, className: "text-primary-text", width: "24", height: "24", asSVG: true }) }), jsx(Logo, { bgColor: bgColor })] }), jsx("button", { className: `${bgColor === 'bg-white' ? 'text-primary-main' : 'text-white'} text-sm border-0 bg-transparent cursor-pointer`, children: "\u0412\u043E\u0439\u0442\u0438" })] })));
1561
-
1562
- const Header = JSX(({ className = '', defaultLocation, bgColor = 'bg-white', context, topItems }) => {
1563
- const router = context.useRouter();
1564
- const sitemap = useSitemap(context.useAsyncData);
1565
- const dispositions = sitemap?.dispositions;
1566
- const { handlerDecorator } = context;
1567
- const mergedItems = mergeTopItems(sitemap.topItems, topItems);
1568
- const activeTopItem = mergedItems.find(isTopItemActive(router));
1569
- const subItems = activeTopItem?.items;
1570
- const activeSubItem = findActiveSubItem(router)(subItems);
1571
- const [burgerMenuShow, setBurgerMenuShow] = context.useState(false);
1572
- const toggleBurgerMenu = () => setBurgerMenuShow(!burgerMenuShow);
1573
- return (jsxs("header", { className: `${bgColor} ${className}`, children: [jsxs("div", { className: "container px-4 py-0 box-border", children: [jsx(HeaderTop, { onClick: toggleBurgerMenu, bgColor: bgColor }), jsx("nav", { className: "flex items-center m-0 p-0 overflow-y-hidden w-full h-[50px]", children: jsx("div", { className: "flex no-scrollbar horizontal-list h-full items-center", children: subItems?.map((_, i) => renderSubItem({
1574
- ...useLink({ router, handlerDecorator }, _),
1575
- active: _ === activeSubItem,
1576
- bgColor,
1577
- }, i)) }) })] }), burgerMenuShow ? (jsx(HeaderBurger, { context: context, onClick: toggleBurgerMenu, burgerSubMenu: dispositions, defaultLocation: defaultLocation, children: jsx(Accordion, { context: context, accordionItems: getAccordionItems(sitemap.topItems), className: "!p-0 mb-4" }) })) : null] }));
1578
- });
1579
- const renderSubItem = (item, i) => (jsx(HeaderItem, { className: "mr-8 whitespace-nowrap text-sm", ...item }, String(i)));
1580
-
1581
- const getColSpan = (className) => {
1582
- const colSpanPrefix = 'col-span-';
1583
- const colSpanStr = className.split(/\s+/).find((_) => _.startsWith(colSpanPrefix));
1584
- return colSpanStr ? parseInt(colSpanStr.substring(colSpanPrefix.length), 10) : 12;
1585
- };
1586
-
1587
- function getTileHeadingType(className = '') {
1588
- const colSpan = getColSpan(className);
1589
- if (colSpan <= 4) {
1590
- return 'S';
1591
- }
1592
- else if (colSpan <= 8) {
1593
- return 'M';
1594
- }
1595
- else {
1596
- return 'L';
1597
- }
1598
- }
1599
-
1600
- function getTileMinHeight(className = '') {
1601
- const colSpan = getColSpan(className);
1602
- if (colSpan <= 6) {
1603
- return 'min-h-[300px]';
1604
- }
1605
- else if (colSpan <= 8) {
1606
- return 'min-h-[320px]';
1607
- }
1608
- else {
1609
- return 'min-h-[360px]';
1610
- }
1611
- }
1612
-
1613
- function getTileRightPadding(className = '') {
1614
- const colSpan = getColSpan(className);
1615
- if (colSpan <= 6) {
1616
- return 'pr-9';
1617
- }
1618
- else if (colSpan <= 8) {
1619
- return 'pr-[4.75rem]';
1620
- }
1621
- else {
1622
- return 'pr-[9.4rem]';
1623
- }
1624
- }
1625
-
1626
- const GOLDEN_RATIO = 1.618;
1627
- const Placeholder = JSX(({ className, context, title, description = 'Блок в разработке...', ...rest }) => {
1628
- return (jsxs(BlockWrapper, { context: context, className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, ...rest, children: [jsx(Headline, { context: context, className: "!p-0 max-w-[600px]", title: title, description: description, headlineVersion: getTileHeadingType(className) }), jsx("figure", { className: "m-0 min-w-[600px]", children: renderShimmer() })] }));
1629
- });
1630
- const renderShimmer = (size = 3) => goldenSequence(100, size)
1631
- .map((_) => Math.floor(_))
1632
- .map(renderShimmerItem);
1633
- const renderShimmerItem = (width, index) => (jsx("div", { style: { width: `${width || 100}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
1634
- const goldenSequence = (first, size) => [first].concat(size > 0 ? goldenSequence(first / GOLDEN_RATIO, size - 1) : []);
1635
-
1636
- const productGalleryStyleMap = {
1637
- primary: 'bg-white text-primary-text',
1638
- secondary: 'bg-primary-main text-white',
1639
- };
1640
- const ProductGalleryBlock = JSX(({ block, context, className = '' }) => {
1641
- const version = block?.version ?? 'primary';
1642
- return (jsx("section", { className: `flex grow-0 shrink-0 basis-full px-4 pt-6 ${productGalleryStyleMap[version]} ${className}`, role: "listitem", children: jsx("div", { className: "flex grow", children: jsx(ProductBlockInner, { context: context, ...block }) }) }));
1643
- });
1644
-
1645
- const ProductGallery = JSX(({ className, context, slides = [] }) => {
1646
- const galleryBlocks = slides.map((s) => s.productBlock);
1647
- return (jsx("section", { className: `font-sans bg-white overflow-hidden w-100 pb-6 ${className || ''}`, children: jsx(SwipeListControl, { context: context, children: galleryBlocks.map((block, i) => (jsx(ProductGalleryBlock, { block: block, context: context }, String(i)))) }) }));
1648
- });
1649
-
1650
- const checkIsIconRenderable = (icon) => Boolean(icon?.icon || icon?.src);
1651
-
1652
- const STEPS_BLOCK_STYLE_MAPS = {
1653
- primary: {
1654
- background: 'bg-white',
1655
- title: 'text-primary-text',
1656
- description: 'text-secondary-text',
1657
- iconText: 'text-secondary-text',
1658
- iconBackground: 'bg-main-divider',
1659
- iconConnector: 'bg-secondary-light',
1660
- },
1661
- secondary: {
1662
- background: 'bg-primary-main',
1663
- title: 'text-white',
1664
- description: 'text-white/80',
1665
- iconText: 'text-white',
1666
- iconBackground: 'bg-white/30',
1667
- iconConnector: 'bg-white',
1668
- },
1669
- };
1670
-
1671
- const STEPS_SIZE_MAP = {
1672
- normal: 'h-[70px] w-[70px] min-w-[70px] min-h-[70px]',
1673
- small: 'h-[50px] w-[50px] min-w-[50px] min-h-[50px]',
1674
- };
1675
- const STEPS_TILE_DESCRIPTION_HEIGHT_MAP = {
1676
- normal: 'min-h-[70px]',
1677
- small: 'min-h-[50px]',
1678
- };
1679
- const StepsBlock = JSX(({ className, title, description, showLines = true, steps, size = 'normal', version = 'primary', }) => {
1680
- const styleMap = STEPS_BLOCK_STYLE_MAPS[version];
1681
- return (jsxs("section", { className: `box-border font-sans bg-white px-4 py-6 flex flex-col
1682
- ${styleMap.background} ${styleMap.title} ${className || ''}`, children: [title ? (jsx(Heading, { headingType: "h3", className: `text-center ${styleMap.title}`, title: title })) : null, description ? (jsx("p", { className: `text-m text-center ${styleMap.description} ${title ? 'mt-2' : ''}`, children: description })) : null, steps?.length ? (jsx("div", { className: `box-border py-0.5 mb-0.5 mt-5`, children: jsx("div", { className: "flex flex-col justify-between gap-x-[101px]", children: steps.map(renderStepTitle(size, version, showLines)) }) })) : null] }));
1683
- });
1684
- const renderStepTitle = (size, version, showLines) => (step, i, steps) => {
1685
- const isLastStep = steps.length - 1 === i;
1686
- const margin = size === 'normal' ? 'ml-[34px]' : 'ml-6';
1687
- const styleMap = STEPS_BLOCK_STYLE_MAPS[version];
1688
- return (jsx("div", { children: jsxs("div", { className: "flex flex-row text-center relative", children: [jsxs("div", { className: "overflow-hidden", children: [renderIconArea(size, version), isLastStep ? null : (jsx("div", { className: `min-h-8 h-full w-[2px] ${showLines ? styleMap.iconConnector : ''} ${margin}` }))] }), jsxs("div", { className: `flex flex-col justify-center h-fit ${STEPS_TILE_DESCRIPTION_HEIGHT_MAP[size]}`, children: [step.label ? (jsx("div", { className: "font-medium text-m-title-xs m-0 text-left mb-1", children: step.label })) : null, step.description ? (jsx("div", { className: `text-s ${styleMap.description} text-left`, children: step.description })) : null] })] }) }, String(i)));
1689
- };
1690
- const renderIconArea = (size, version) => (step, i) => {
1691
- const styleMap = STEPS_BLOCK_STYLE_MAPS[version];
1692
- const iconAreaSize = STEPS_SIZE_MAP[size];
1693
- const iconSize = size === 'normal' ? '38' : '27';
1694
- const iconTextSize = size === 'normal' ? 'text-m-title' : 'text-m-title-xs';
1695
- return (jsx("div", { className: `${iconAreaSize} ${styleMap.iconBackground} rounded-full z-10 mr-3 flex justify-center content-center`, children: jsx("span", { className: `font-medium flex self-center ${styleMap.title} ${iconTextSize}`, children: checkIsIconRenderable(step?.icon) ? (jsx(Img, { image: step.icon, width: iconSize, height: iconSize, asSVG: true })) : (jsx("span", { children: i + 1 })) }) }));
1696
- };
1697
-
1698
- const TableTileHeader = JSX(({ title, icon }) => {
1699
- return (jsxs("div", { className: "flex gap-2.5 mb-2", children: [title ? jsx(Heading, { headingType: "h3", className: "font-medium", title: title }) : null, icon ? (jsx(Img, { className: "ml-auto max-w-6 max-h-6", image: icon, width: "24px", height: "24px" })) : null] }));
1700
- });
1701
-
1702
- const getButtonAriaLabel = (icon) => icon?.alt || icon?.title || IconTitleMap[icon?.icon ? icon.icon : ''];
1703
-
1704
- const TariffsTableTileCell = JSX(({ header, data }) => {
1705
- return (jsxs("div", { className: "rounded-md border-main-stroke h-full box-border border p-4", children: [jsx(TableTileHeader, { ...header }), data?.length ? data.map(renderCellInner) : null] }));
1706
- });
1707
- const renderCellInner = ({ label, description, list, image, buttons }, i) => (jsxs("div", { children: [i > 0 && (jsx("div", { className: "border-main-divider border border-solid border-t-0 border-x-0 my-2" })), label ? jsx("div", { className: "text-m-sm m-0", children: label }) : null, description ? (jsx("div", { className: "text-m-sm text-secondary-text mt-[3px]", children: description })) : null, list?.items?.length ? renderList(list) : null, image ? jsx(Img, { image: { ...image, className: 'm-0' } }) : null, buttons?.length ? renderButtons(buttons) : null] }, String(i)));
1708
- const renderList = (list) => (jsx(List, { className: "flex flex-col justify-between items-start text-m-sm", version: "gray", items: list.items, isDotted: list.isDotted ?? true }));
1709
- const renderButtons = (buttons) => (jsx("div", { children: buttons.map(({ icon, rounded, ...buttonProps }, idx) => (jsx(Button, { className: `mt-3 ${idx > 0 && rounded ? 'ml-2.5' : ''} ${icon ? 'w-12 h-12' : ''}`, ariaLabel: getButtonAriaLabel(icon), rounded: rounded, appendLeft: icon ? jsx(Img, { image: icon, width: "24px", height: "24px", asSVG: true }) : null, ...buttonProps, "aria-label": icon }, String(idx)))) }));
1710
-
1711
- const TariffsTableHorizontal = JSX(({ tiles, context }) => (jsx(SwipeListControl, { context: context, children: tiles.map((tile, i) => (jsx(TariffsTableTileCell, { ...tile }, String(i)))) })));
1712
-
1713
- const TariffsTableVertical = JSX(({ tiles }) => (jsx("div", { className: "flex flex-col gap-3.5", children: tiles.map((tile, i) => (jsx(TariffsTableTileCell, { ...tile }, String(i)))) })));
1714
-
1715
- const TariffsTable = JSX(({ className, context, title, description, columns, rowHeaders, orientation = 'vertical' }) => {
1716
- const colData = getColData(columns);
1717
- const tiles = getTiles(rowHeaders, colData);
1718
- const headingMargin = description ? 'mb-2' : 'mb-5';
1719
- return (jsxs("section", { className: `px-4 py-6 bg-white font-sans text-primary-text overflow-x-hidden ${className}`, children: [title ? (jsx(Heading, { headingType: "h2", className: `text-center ${headingMargin}`, title: title })) : null, description ? jsx("div", { className: "mb-5 text-center text-m-md", children: description }) : null, tiles?.length ? renderOrientationTable(orientation, tiles, context) : null] }));
1720
- });
1721
- function renderOrientationTable(orientation, tiles, context) {
1722
- return orientation === 'vertical' ? (jsx(TariffsTableVertical, { tiles: tiles })) : (jsx(TariffsTableHorizontal, { context: context, tiles: tiles }));
1723
- }
1724
- const getColData = (columns) => columns?.[0].data ? columns[0].data : [];
1725
- const getTiles = (rowHeaders, colData) => rowHeaders?.map((header, i) => ({
1726
- header,
1727
- data: colData?.[i] || [{}],
1728
- }));
1729
-
1730
- const Blocks = {
1731
- Accordion,
1732
- ComparisonTable,
1733
- ExchangeRateTile,
1734
- Footer,
1735
- Gallery,
1736
- Header,
1737
- Headline,
1738
- LinkDocs,
1739
- LinkList,
1740
- MobileAppTile,
1741
- ProductBlock,
1742
- ProductGallery,
1743
- StepsBlock,
1744
- TariffsTable,
1745
- TextBlock,
1746
- Placeholder,
1747
- };
1748
-
1749
- const LikeButton = JSX(({ className, onClick, ariaLabel }) => (jsx("button", { type: "button", className: `border-0 w-[36px] bg-inherit cursor-pointer ${className || ''}`, onClick: onClick, "aria-label": ariaLabel, children: renderLikeIcon() })));
1750
- const renderLikeIcon = () => {
1751
- const params = {
1752
- stroke: '#292D32',
1753
- strokeLinecap: 'round',
1754
- strokeLinejoin: 'round',
1755
- strokeWidth: '1.5',
1756
- };
1757
- return (jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [jsx("path", { ...params, strokeMiterlimit: "10",
1758
- /* eslint-disable max-len */
1759
- d: "M21.48 11.95c.5-1.4-.4-2.6-1.9-2.6h-4c-.6 0-1.1-.5-1-1.2l.5-3.2c.2-.9-.4-1.9-1.3-2.2-.8-.3-1.8.1-2.2.7l-4.1 6.1M7.48 18.35l3.1 2.4c.4.4 1.3.6 1.9.6h3.8c1.2 0 2.5-.9 2.8-2.1l1.24-3.77" }), jsx("path", { ...params, d: "M2.38 18.35v-9.8c0-1.4.6-1.9 2-1.9h1c1.4 0 2 .5 2 1.9v9.8c0 1.4-.6 1.9-2 1.9h-1c-1.4 0-2-.5-2-1.9Z" })] }));
1760
- };
1761
-
1762
- const LikeControl = JSX(({ className, context, ...rest }) => {
1763
- const likeService = context.useLikeService();
1764
- return (jsxs(BlockWrapper, { tag: "div", context: context, className: `border-main border-2 border-solid bg-white flex w-[125px] items-center justify-center gap-3 p-2 font-sans ${className || ''}`, ...rest, children: [jsx(LikeButton, { onClick: likeService.like, ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u043B\u0430\u0439\u043A\u00BB" }), jsx(LikeButton, { onClick: likeService.dislike, className: "rotate-180", ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u0434\u0438\u0437\u043B\u0430\u0439\u043A\u00BB" }), jsx("span", { className: "select-none", children: likeService.likeCount })] }));
1765
- });
1766
-
1767
- const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
1768
- const ContentPage = JSX(({ className = '', context, blocksRegistry, data = {}, blockDecorator = defaultBlockDecorator, }) => {
1769
- const { style: pageStyle, blocks, slots = {}, likeControl, colorPalette = 'pc' } = data;
1770
- const { header } = slots;
1771
- return (jsxs("section", { className: `relative ${style2className(pageStyle)} ${className}`, "data-theme": colorPalette, children: [header?.blocks?.length ? (jsx("div", { className: `${style2className(header?.style)}`, children: header.blocks.map((block, i) => renderBlock({ block, page: data, blockDecorator, blocksRegistry, context }, i)) })) : null, blocks?.length ? (jsx("div", { className: "container grid grid-cols-12 gap-1", children: blocks.map((block, i) => renderBlock({ block, blockDecorator, blocksRegistry, context, page: data }, i)) })) : null, likeControl ? (jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: jsx(LikeControl, { className: "rounded-tl-lg sticky bottom-0 pointer-events-auto", context: context }, "LikeControl") })) : null] }));
1772
- });
1773
- function renderBlock({ block, blockDecorator, blocksRegistry, context, page }, i) {
1774
- const { type } = block;
1775
- if (!(type && type in blocksRegistry)) {
1776
- console.warn(`No block with "${type}" is registered`);
1777
- }
1778
- const BlockComponent = blocksRegistry[type || 'Placeholder'] || Placeholder;
1779
- return blockDecorator({
1780
- blockClassName: `scroll-mt-12 ${style2className(block.style)}`,
1781
- block,
1782
- render: (props) => {
1783
- const { version, content, anchor, labels } = props.block;
1784
- return (jsx(BlockComponent, { className: props.blockClassName, version: version, context: context, page: page, anchor: anchor, labels: labels, ...content }, `${type}-${i}`));
1785
- },
1786
- }, `block-${i}`);
1787
- }
1788
-
1789
- function joinList(sep) {
1790
- return (list) => list.reduce((acc, el, i) => (acc.length ? acc.concat({ ...sep, key: i }, el) : [el]), []);
1791
- }
1792
-
1793
- exports.Blocks = Blocks;
1794
- exports.ContentPage = ContentPage;
1795
- exports.DaDataAPI = DaDataAPI;
1796
- exports.LikeAPI = LikeAPI;
1797
- exports.joinList = joinList;
1798
- exports.projectSettings = projectSettings;
1799
- exports.setup = setup;
1800
- exports.url = url;
1801
-
1802
- Object.defineProperty(exports, '__esModule', { value: true });
1536
+ e.preventDefault();
1537
+ setTerm('');
1538
+ }, children: jsx(Img, { image: "CloseIcon", width: "24", height: "24" }) })) : (jsx(Button, { version: "primary", text: "\u041D\u0430\u0439\u0442\u0438", className: "invisible peer-focus:visible absolute top-1 right-1", onClick: (ev) => {
1539
+ ev?.preventDefault();
1540
+ console.log('click');
1541
+ }, children: jsx("div", { className: "text-s px-9 py-2.5", children: "\u041D\u0430\u0439\u0442\u0438" }) }))] }));
1542
+ });
1543
+
1544
+ const SearchBar = JSX(({ className = '' }) => {
1545
+ return jsx(SearchBarInner, { className: className, isMobile: true });
1546
+ });
1547
+
1548
+ const getAccordionItems = (items) => items?.map((item) => ({
1549
+ label: item.text || '',
1550
+ blocks: [
1551
+ {
1552
+ accordionBlockType: 'LinkList',
1553
+ documents: item.items || [],
1554
+ },
1555
+ ],
1556
+ }));
1557
+
1558
+ const Footer = JSX(({ className = '', documents, relatedEnterprises, contacts, socialMedia, context, horizontalNavigationTitle, }) => {
1559
+ const sitemap = useSitemap();
1560
+ const dispositions = sitemap?.dispositions;
1561
+ return (jsxs("footer", { className: `font-sans px-4 py-[26px] bg-white ${className}`, children: [jsx(Contacts, { className: "overflow-hidden", items: contacts, context: context, hasButton: true }), jsx(Accordion, { context: context, className: "!p-0 mb-4", accordionItems: getAccordionItems(sitemap.topItems) }), jsx("div", { children: dispositions?.map(renderSubMenuItem) }), jsx(MobileAppTile, { context: context, title: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435", description: "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0434\u043B\u044F IOS \u0438 Android" }), jsx(SearchBar, { context: context, className: "grow" }), jsx(SocialMedia, { className: "pb-4", media: socialMedia, context: context }), jsx(HorizontalNavigation, { title: horizontalNavigationTitle, links: relatedEnterprises, context: context }), jsx(TextInformation, { links: documents, context: context })] }));
1562
+ });
1563
+ const renderSubMenuItem = (menu, i) => {
1564
+ const { icon, href, text } = menu;
1565
+ return (jsxs(Button, { version: "link", href: href, className: "flex text-s mb-4 w-6", children: [icon ? jsx(Img, { className: "pr-1", image: icon, width: "24", height: "24", asSVG: true }) : null, jsx("span", { className: "pl-2.5 font-medium text-primary-text", children: text })] }, `footer-${i}`));
1566
+ };
1567
+
1568
+ const maxBy = (discriminator) => (list) => list.reduceRight((a, b) => (discriminator(a) > discriminator(b) ? a : b));
1569
+
1570
+ const isHrefActive = (href, router, cmp = (targetHref, baseHref) => baseHref.startsWith(targetHref)) => {
1571
+ return cmp(withoutQuery(href), withoutMobilePath(withoutQuery(isURL(href) ? router.href : router.pathname)));
1572
+ };
1573
+
1574
+ const isSubItemActive = (router) => (subItem) => isHrefActive(subItem.href, router);
1575
+
1576
+ const findActiveSubItem = (router) => (items = []) => {
1577
+ const possibleActiveSubItems = items?.filter(isSubItemActive(router));
1578
+ return possibleActiveSubItems?.length
1579
+ ? maxBy((_) => _.href?.length || 0)(possibleActiveSubItems) // More specific item with max length
1580
+ : undefined;
1581
+ };
1582
+
1583
+ const checkIsHrefSameOrigin = (href, router) => getOrigin(href) === getOrigin(router.href);
1584
+
1585
+ const isTopItemActive = (router) => (topItem) => topItem.items?.some(isSubItemActive(router)) ||
1586
+ isHrefActive(topItem.href, router) ||
1587
+ checkIsHrefSameOrigin(topItem.href, router);
1588
+
1589
+ const cmp = (a) => (b) => a?.href === b?.href;
1590
+ const substitute = (items, substitution) => (items || []).map((_) => substitution?.find(cmp(_)) || _);
1591
+ const subtract = (minuend, subtrahend) => (minuend || []).filter((_) => !subtrahend?.find(cmp(_)));
1592
+ const mergeTopItems = (left, right) => substitute(left, right).concat(subtract(right, left));
1593
+
1594
+ const TEXT_CLASSES = 'font-sans text-s';
1595
+ const BORDER_CLASSES = 'absolute left-0 -bottom-3 w-full h-[2px]';
1596
+ const HeaderItem = JSX(({ className = '', text, href, target, active, onClick, children, bgColor = 'bg-white' }) => {
1597
+ return (jsxs("a", { className: `relative inline-block bg-transparent text-center no-underline ${className}`, href: href, target: target, onClick: onClick, children: [jsx("span", { className: getTextClasses(bgColor, active), children: text || children }), active ? jsx("div", { className: getBorderClasses(bgColor, active) }) : null] }));
1598
+ });
1599
+ const getTextClasses = (bgColor, active = false) => {
1600
+ let classes = 'text-white';
1601
+ if (bgColor === 'bg-white') {
1602
+ classes = active ? 'text-primary-main' : 'text-secondary-text hover:text-primary-main';
1603
+ }
1604
+ return `${classes} ${TEXT_CLASSES}`;
1605
+ };
1606
+ const getBorderClasses = (bgColor, active = false) => {
1607
+ if (!active) {
1608
+ return BORDER_CLASSES;
1609
+ }
1610
+ return `${bgColor === 'bg-white' ? 'bg-primary-main' : bgColor} ${BORDER_CLASSES}`;
1611
+ };
1612
+
1613
+ const DaData = DaDataAPI('https://10.80.4.9');
1614
+ function useGeolocation(defaultLocation) {
1615
+ const [city, setCity] = useState(defaultLocation);
1616
+ useEffect(() => {
1617
+ setCity(globalThis?.localStorage.getItem('location') || defaultLocation);
1618
+ }, [defaultLocation]);
1619
+ const getCity = useCallback(() => {
1620
+ DaData.getFetcherAddress().then((_) => {
1621
+ const location = _ || defaultLocation;
1622
+ globalThis?.localStorage.setItem('location', location);
1623
+ setCity(location);
1624
+ });
1625
+ }, [defaultLocation]);
1626
+ return [city, getCity];
1627
+ }
1628
+
1629
+ const HeaderBurger = JSX(({ context, burgerSubMenu, onClick, defaultLocation = '', children }) => {
1630
+ const [city, getCity] = useGeolocation(defaultLocation);
1631
+ return (jsxs("div", { className: "absolute top-0 left-0 w-full h-full bg-white p-4 box-border z-20", children: [jsx("button", { className: "absolute top-4 right-4 border-none bg-transparent cursor-pointer", onClick: onClick, children: jsx(Img, { image: "CloseIcon", width: "24", height: "24", asSVG: true }) }), jsxs("button", { onClick: getCity, className: "flex items-center text-s text-secondary-text p-0 mb-4 bg-transparent cursor-pointer", children: [jsx(Img, { image: "GeolocationIcon", width: "20", height: "20", className: "text-primary-main box-border mr-2", asSVG: true }), city] }), children, jsx("div", { className: "mb-7", children: burgerSubMenu?.map(renderBurgerSubMenuItem) }), jsx(SearchBar, { context: context, className: "grow" })] }));
1632
+ });
1633
+ const renderBurgerSubMenuItem = (menu, i) => {
1634
+ const { icon, href, text } = menu;
1635
+ return (jsxs("a", { href: href, className: "flex text-s mb-4 hover:text-primary-main", children: [icon ? (jsx(Img, { className: "text-primary-main pr-1", image: icon, width: "24", height: "24", asSVG: true })) : null, jsx("span", { className: "font-medium pl-0.5", children: text })] }, `headerSubMenu-${i}`));
1636
+ };
1637
+
1638
+ const HeaderTop = JSX(({ onClick, bgColor }) => (jsxs("div", { className: "flex items-center justify-between border-0 border-b border-main-divider h-[50px]", children: [jsxs("div", { className: "flex items-center", children: [jsx("button", { className: "pl-0 pr-4 border-0 bg-transparent cursor-pointer", onClick: onClick, "aria-label": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u043D\u044E", children: jsx(Img, { image: { icon: 'BurgerIcon', iconVersion: bgColor === 'bg-white' ? 'black' : 'white' }, className: "text-primary-text w-6 h-6", width: "24", height: "24", asSVG: true }) }), jsx(Logo, { className: "mr-8", bgColor: bgColor })] }), jsx("button", { className: `${bgColor === 'bg-white' ? 'text-primary-main' : 'text-white'} text-s border-0 bg-transparent cursor-pointer`, children: "\u0412\u043E\u0439\u0442\u0438" })] })));
1639
+
1640
+ const Header = JSX(({ className = '', defaultLocation, bgColor = 'bg-white', context, topItems }) => {
1641
+ const router = context.useRouter();
1642
+ const sitemap = useSitemap();
1643
+ const dispositions = sitemap?.dispositions;
1644
+ const { handlerDecorator } = context;
1645
+ const mergedItems = mergeTopItems(sitemap.topItems, topItems);
1646
+ const activeTopItem = mergedItems.find(isTopItemActive(router));
1647
+ const subItems = activeTopItem?.items;
1648
+ const activeSubItem = findActiveSubItem(router)(subItems);
1649
+ const [burgerMenuShow, setBurgerMenuShow] = useState(false);
1650
+ const toggleBurgerMenu = () => setBurgerMenuShow(!burgerMenuShow);
1651
+ return (jsxs("header", { className: `${bgColor} ${className}`, children: [jsxs("div", { className: "container px-4 py-0 box-border", children: [jsx(HeaderTop, { onClick: toggleBurgerMenu, bgColor: bgColor }), jsx("nav", { className: "flex items-center m-0 p-0 overflow-y-hidden w-full h-[50px]", children: jsx("div", { className: "flex no-scrollbar horizontal-list h-full items-center", children: subItems?.map((_, i) => renderSubItem({
1652
+ ...useLink({ router, handlerDecorator }, _),
1653
+ active: _ === activeSubItem,
1654
+ bgColor,
1655
+ }, i)) }) })] }), burgerMenuShow ? (jsx(HeaderBurger, { context: context, onClick: toggleBurgerMenu, burgerSubMenu: dispositions, defaultLocation: defaultLocation, children: jsx(Accordion, { context: context, accordionItems: getAccordionItems(sitemap.topItems), className: "!p-0 mb-4" }) })) : null] }));
1656
+ });
1657
+ const renderSubItem = (item, i) => (jsx(HeaderItem, { className: "mr-8 whitespace-nowrap text-s", ...item }, String(i)));
1658
+
1659
+ const getColSpan = (className) => {
1660
+ const colSpanPrefix = 'col-span-';
1661
+ const colSpanStr = className.split(/\s+/).find((_) => _.startsWith(colSpanPrefix));
1662
+ return colSpanStr ? parseInt(colSpanStr.substring(colSpanPrefix.length), 10) : 12;
1663
+ };
1664
+
1665
+ function getTileHeadingType(className = '') {
1666
+ const colSpan = getColSpan(className);
1667
+ if (colSpan <= 4) {
1668
+ return 'S';
1669
+ }
1670
+ else if (colSpan <= 8) {
1671
+ return 'M';
1672
+ }
1673
+ else {
1674
+ return 'L';
1675
+ }
1676
+ }
1677
+
1678
+ function getTileMinHeight(className = '') {
1679
+ const colSpan = getColSpan(className);
1680
+ if (colSpan <= 6) {
1681
+ return 'min-h-[300px]';
1682
+ }
1683
+ else if (colSpan <= 8) {
1684
+ return 'min-h-[320px]';
1685
+ }
1686
+ else {
1687
+ return 'min-h-[360px]';
1688
+ }
1689
+ }
1690
+
1691
+ function getTileRightPadding(className = '') {
1692
+ const colSpan = getColSpan(className);
1693
+ if (colSpan <= 6) {
1694
+ return 'pr-9';
1695
+ }
1696
+ else if (colSpan <= 8) {
1697
+ return 'pr-[4.75rem]';
1698
+ }
1699
+ else {
1700
+ return 'pr-[9.4rem]';
1701
+ }
1702
+ }
1703
+
1704
+ const GOLDEN_RATIO = 1.618;
1705
+ const Placeholder = JSX(({ className, context, title, description = 'Блок в разработке...', ...rest }) => {
1706
+ return (jsxs(BlockWrapper, { context: context, className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, ...rest, children: [jsx(Headline, { context: context, className: "!p-0 max-w-[600px]", title: title, description: description, headlineVersion: getTileHeadingType(className) }), jsx("figure", { className: "m-0 min-w-[80%]", children: renderShimmer() })] }));
1707
+ });
1708
+ const renderShimmer = (size = 3) => goldenSequence(100, size)
1709
+ .map((_) => Math.floor(_))
1710
+ .map(renderShimmerItem);
1711
+ const renderShimmerItem = (width, index) => (jsx("div", { style: { width: `${width || 100}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
1712
+ const goldenSequence = (first, size) => [first].concat(size > 0 ? goldenSequence(first / GOLDEN_RATIO, size - 1) : []);
1713
+
1714
+ const productGalleryStyleMap = {
1715
+ primary: 'bg-white text-primary-text',
1716
+ secondary: 'bg-primary-main text-white',
1717
+ };
1718
+ const ProductGalleryBlock = JSX(({ block, context, className = '' }) => {
1719
+ const version = block?.version ?? 'primary';
1720
+ return (jsx("section", { className: `flex grow-0 shrink-0 basis-full px-4 pt-6 ${productGalleryStyleMap[version]} ${className}`, role: "listitem", children: jsx("div", { className: "flex grow", children: jsx(ProductBlockInner, { context: context, ...block }) }) }));
1721
+ });
1722
+
1723
+ const ProductGallery = JSX(({ className, context, slides = [] }) => {
1724
+ const galleryBlocks = slides.map((s) => s.productBlock);
1725
+ return (jsx("section", { className: `font-sans bg-white overflow-hidden w-100 pb-6 ${className || ''}`, children: jsx(SwipeListControl, { context: context, children: galleryBlocks.map((block, i) => (jsx(ProductGalleryBlock, { block: block, context: context }, String(i)))) }) }));
1726
+ });
1727
+
1728
+ const checkIsIconRenderable = (icon) => Boolean(icon?.icon || icon?.src);
1729
+
1730
+ const STEPS_BLOCK_STYLE_MAPS = {
1731
+ primary: {
1732
+ background: 'bg-white',
1733
+ title: 'text-primary-text',
1734
+ description: 'text-secondary-text',
1735
+ iconText: 'text-secondary-text',
1736
+ iconBackground: 'bg-main-divider',
1737
+ iconConnector: 'bg-secondary-light',
1738
+ },
1739
+ secondary: {
1740
+ background: 'bg-primary-main',
1741
+ title: 'text-white',
1742
+ description: 'text-white/80',
1743
+ iconText: 'text-white',
1744
+ iconBackground: 'bg-white/30',
1745
+ iconConnector: 'bg-white',
1746
+ },
1747
+ };
1748
+
1749
+ const STEPS_SIZE_MAP = {
1750
+ normal: 'h-[70px] w-[70px] min-w-[70px] min-h-[70px]',
1751
+ small: 'h-[50px] w-[50px] min-w-[50px] min-h-[50px]',
1752
+ };
1753
+ const STEPS_TILE_DESCRIPTION_HEIGHT_MAP = {
1754
+ normal: 'min-h-[70px]',
1755
+ small: 'min-h-[50px]',
1756
+ };
1757
+ const StepsBlock = JSX(({ className, title, description, showLines = true, steps, size = 'normal', version = 'primary', }) => {
1758
+ const styleMap = STEPS_BLOCK_STYLE_MAPS[version];
1759
+ return (jsxs("section", { className: `box-border font-sans bg-white px-4 py-6 flex flex-col
1760
+ ${styleMap.background} ${styleMap.title} ${className || ''}`, children: [title ? (jsx(Heading, { headingType: "h3", className: `text-center ${styleMap.title}`, title: title })) : null, description ? (jsx("p", { className: `text-m-light text-center ${styleMap.description} ${title ? 'mt-2' : ''}`, children: description })) : null, steps?.length ? (jsx("div", { className: `box-border py-0.5 mb-0.5 mt-5`, children: jsx("div", { className: "flex flex-col justify-between gap-x-[101px]", children: steps.map(renderStepTitle(size, version, showLines)) }) })) : null] }));
1761
+ });
1762
+ const renderStepTitle = (size, version, showLines) => (step, i, steps) => {
1763
+ const isLastStep = steps.length - 1 === i;
1764
+ const margin = size === 'normal' ? 'ml-[34px]' : 'ml-6';
1765
+ const styleMap = STEPS_BLOCK_STYLE_MAPS[version];
1766
+ return (jsx("div", { children: jsxs("div", { className: "flex flex-row text-center relative", children: [jsxs("div", { className: "overflow-hidden", children: [renderIconArea(size, version)(step, i), isLastStep ? null : (jsx("div", { className: `min-h-8 h-full w-[2px] ${showLines ? styleMap.iconConnector : ''} ${margin}` }))] }), jsxs("div", { className: `flex flex-col justify-center h-fit ${STEPS_TILE_DESCRIPTION_HEIGHT_MAP[size]}`, children: [step.label ? (jsx("div", { className: "text-m-title-xs font-medium m-0 text-left mb-1", children: step.label })) : null, step.description ? (jsx("div", { className: `text-s ${styleMap.description} text-left`, children: step.description })) : null] })] }) }, String(i)));
1767
+ };
1768
+ const renderIconArea = (size, version) => (step, i) => {
1769
+ const styleMap = STEPS_BLOCK_STYLE_MAPS[version];
1770
+ const iconAreaSize = STEPS_SIZE_MAP[size];
1771
+ const iconSize = size === 'normal' ? '38' : '27';
1772
+ const iconTextSize = size === 'normal' ? 'text-m-title' : 'text-m-title-xs';
1773
+ return (jsx("div", { className: `${iconAreaSize} ${styleMap.iconBackground} rounded-full z-10 mr-3 flex justify-center content-center`, children: jsx("span", { className: `font-medium flex self-center ${styleMap.title} ${iconTextSize}`, children: checkIsIconRenderable(step?.icon) ? (jsx(Img, { image: step.icon, width: iconSize, height: iconSize, asSVG: true })) : (jsx("span", { children: i + 1 })) }) }));
1774
+ };
1775
+
1776
+ const TableTileHeader = JSX(({ title, icon }) => {
1777
+ return (jsxs("div", { className: "flex gap-2.5 mb-2", children: [title ? jsx(Heading, { headingType: "h3", className: "font-medium", title: title }) : null, icon ? (jsx(Img, { className: "ml-auto max-w-6 max-h-6", image: icon, width: "24px", height: "24px" })) : null] }));
1778
+ });
1779
+
1780
+ const getButtonAriaLabel = (icon) => icon?.alt || icon?.title || IconTitleMap[icon?.icon ? icon.icon : ''];
1781
+
1782
+ const TariffsTableTileCell = JSX(({ header, data }) => {
1783
+ return (jsxs("div", { className: "rounded-md border-main-stroke h-full box-border border p-4", children: [jsx(TableTileHeader, { ...header }), data?.length ? data.map(renderCellInner) : null] }));
1784
+ });
1785
+ const renderCellInner = ({ label, description, list, image, buttons }, i) => (jsxs("div", { children: [i > 0 && (jsx("div", { className: "border-main-divider border border-solid border-t-0 border-x-0 my-2" })), label ? jsx("div", { className: "text-s m-0", children: label }) : null, description ? jsx("div", { className: "text-s text-secondary-text mt-[3px]", children: description }) : null, list?.items?.length ? renderList(list) : null, image ? jsx(Img, { image: { ...image, className: 'm-0' } }) : null, buttons?.length ? renderButtons(buttons) : null] }, String(i)));
1786
+ const renderList = (list) => (jsx(List, { className: "flex flex-col justify-between items-start text-s", version: "gray", items: list.items, isDotted: list.isDotted ?? true }));
1787
+ const renderButtons = (buttons) => (jsx("div", { children: buttons.map(({ icon, rounded, ...buttonProps }, idx) => (jsx(Button, { className: `mt-3 ${idx > 0 && rounded ? 'ml-2.5' : ''} ${icon ? 'w-12 h-12' : ''}`, ariaLabel: getButtonAriaLabel(icon), rounded: rounded, appendLeft: icon ? jsx(Img, { image: icon, width: "24px", height: "24px", asSVG: true }) : null, ...buttonProps, "aria-label": icon }, String(idx)))) }));
1788
+
1789
+ const TariffsTableHorizontal = JSX(({ tiles, context }) => (jsx(SwipeListControl, { context: context, children: tiles.map((tile, i) => (jsx(TariffsTableTileCell, { ...tile }, String(i)))) })));
1790
+
1791
+ const TariffsTableVertical = JSX(({ tiles }) => (jsx("div", { className: "flex flex-col gap-3.5", children: tiles.map((tile, i) => (jsx(TariffsTableTileCell, { ...tile }, String(i)))) })));
1792
+
1793
+ const TariffsTable = JSX(({ className, context, title, description, columns, rowHeaders, orientation = 'vertical' }) => {
1794
+ const colData = getColData(columns);
1795
+ const tiles = getTiles(rowHeaders, colData);
1796
+ const headingMargin = description ? 'mb-2' : 'mb-5';
1797
+ return (jsxs("section", { className: `px-4 py-6 bg-white font-sans text-primary-text overflow-x-hidden ${className}`, children: [title ? (jsx(Heading, { headingType: "h2", className: `text-center ${headingMargin}`, title: title })) : null, description ? jsx("div", { className: "mb-5 text-center text-m", children: description }) : null, tiles?.length ? renderOrientationTable(orientation, tiles, context) : null] }));
1798
+ });
1799
+ function renderOrientationTable(orientation, tiles, context) {
1800
+ return orientation === 'vertical' ? (jsx(TariffsTableVertical, { tiles: tiles })) : (jsx(TariffsTableHorizontal, { context: context, tiles: tiles }));
1801
+ }
1802
+ const getColData = (columns) => columns?.[0].data ? columns[0].data : [];
1803
+ const getTiles = (rowHeaders, colData) => rowHeaders?.map((header, i) => ({
1804
+ header,
1805
+ data: colData?.[i] || [{}],
1806
+ }));
1807
+
1808
+ const Blocks = {
1809
+ Accordion,
1810
+ ComparisonTable,
1811
+ ExchangeRateTile,
1812
+ Footer,
1813
+ Gallery,
1814
+ Header,
1815
+ Headline,
1816
+ LinkDocs,
1817
+ LinkList,
1818
+ MobileAppTile,
1819
+ ProductBlock,
1820
+ ProductGallery,
1821
+ StepsBlock,
1822
+ TariffsTable,
1823
+ TextBlock,
1824
+ Placeholder,
1825
+ };
1826
+
1827
+ const ASSIST_BASE_URL = process.env.NEXT_PUBLIC_ASSIST_BASE_URL || '';
1828
+ const PROJECT_ID = process.env.NEXT_PUBLIC_PROJECT_ID || '';
1829
+ const api = LikeAPI(PROJECT_ID, ASSIST_BASE_URL);
1830
+ function useLikeService(pagePath) {
1831
+ const [likeCount, setLikeCount] = useState(0);
1832
+ useEffect(() => {
1833
+ (async () => {
1834
+ const [likeData] = await api.getLikeCount(pagePath);
1835
+ setLikeCount(likeData?.value || 0);
1836
+ })();
1837
+ }, [pagePath]);
1838
+ const like = useCallback(async () => {
1839
+ setLikeCount(await api.like(pagePath));
1840
+ }, [pagePath]);
1841
+ const dislike = useCallback(async () => {
1842
+ setLikeCount(await api.dislike(pagePath));
1843
+ }, [pagePath]);
1844
+ return {
1845
+ likeCount,
1846
+ like,
1847
+ dislike,
1848
+ };
1849
+ }
1850
+
1851
+ const LikeButton = JSX(({ className, onClick, ariaLabel }) => (jsx("button", { type: "button", className: `border-0 w-[36px] bg-inherit cursor-pointer ${className || ''}`, onClick: onClick, "aria-label": ariaLabel, children: renderLikeIcon() })));
1852
+ const renderLikeIcon = () => {
1853
+ const params = {
1854
+ stroke: '#292D32',
1855
+ strokeLinecap: 'round',
1856
+ strokeLinejoin: 'round',
1857
+ strokeWidth: '1.5',
1858
+ };
1859
+ return (jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [jsx("path", { ...params, strokeMiterlimit: "10",
1860
+ /* eslint-disable max-len */
1861
+ d: "M21.48 11.95c.5-1.4-.4-2.6-1.9-2.6h-4c-.6 0-1.1-.5-1-1.2l.5-3.2c.2-.9-.4-1.9-1.3-2.2-.8-.3-1.8.1-2.2.7l-4.1 6.1M7.48 18.35l3.1 2.4c.4.4 1.3.6 1.9.6h3.8c1.2 0 2.5-.9 2.8-2.1l1.24-3.77" }), jsx("path", { ...params, d: "M2.38 18.35v-9.8c0-1.4.6-1.9 2-1.9h1c1.4 0 2 .5 2 1.9v9.8c0 1.4-.6 1.9-2 1.9h-1c-1.4 0-2-.5-2-1.9Z" })] }));
1862
+ };
1863
+
1864
+ const LikeControl = JSX(({ className, context, ...rest }) => {
1865
+ const { useRouter, handlerDecorator = defaultHandlerDecorator } = context;
1866
+ const router = useRouter();
1867
+ const likeService = useLikeService(router.pathname);
1868
+ return (jsxs(BlockWrapper, { tag: "div", context: context, className: `border-main border-2 border-solid bg-white flex w-[125px] items-center justify-center gap-3 p-2 font-sans ${className || ''}`, ...rest, children: [jsx(LikeButton, { onClick: handlerDecorator(likeService.like), ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u043B\u0430\u0439\u043A\u00BB" }), jsx(LikeButton, { onClick: handlerDecorator(likeService.dislike), className: "rotate-180", ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u0434\u0438\u0437\u043B\u0430\u0439\u043A\u00BB" }), jsx("span", { className: "select-none", children: likeService.likeCount })] }));
1869
+ });
1870
+
1871
+ const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
1872
+ const ContentPage = JSX(({ className = '', context, blocksRegistry, data = {}, blockDecorator = defaultBlockDecorator, }) => {
1873
+ const { style: pageStyle, blocks, slots = {}, likeControl, colorPalette = 'pc' } = data;
1874
+ const { header } = slots;
1875
+ return (jsxs("section", { className: `relative ${style2className(pageStyle)} ${className}`, "data-theme": colorPalette, children: [header?.blocks?.length ? (jsx("div", { className: `${style2className(header?.style)}`, children: header.blocks.map((block, i) => renderBlock({ block, page: data, blockDecorator, blocksRegistry, context }, i)) })) : null, blocks?.length ? (jsx("div", { className: "container grid grid-cols-12 gap-1", children: blocks.map((block, i) => renderBlock({ block, blockDecorator, blocksRegistry, context, page: data }, i)) })) : null, likeControl ? (jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: jsx(LikeControl, { className: "rounded-tl-lg sticky bottom-0 pointer-events-auto", context: context }, "LikeControl") })) : null] }));
1876
+ });
1877
+ function renderBlock({ block, blockDecorator, blocksRegistry, context, page }, i) {
1878
+ const { type } = block;
1879
+ if (!(type && type in blocksRegistry)) {
1880
+ console.warn(`No block with "${type}" is registered`);
1881
+ }
1882
+ const BlockComponent = blocksRegistry[type || 'Placeholder'] || Placeholder;
1883
+ return blockDecorator({
1884
+ blockClassName: `scroll-mt-12 ${style2className(block.style)}`,
1885
+ block,
1886
+ render: (props) => {
1887
+ const { version, content, anchor, labels } = props.block;
1888
+ return (jsx(BlockComponent, { className: props.blockClassName, version: version, context: context, page: page, anchor: anchor, labels: labels, ...content }, `${type}-${i}`));
1889
+ },
1890
+ }, `block-${i}`);
1891
+ }
1892
+
1893
+ function joinList(sep) {
1894
+ return (list) => list.reduce((acc, el, i) => (acc.length ? acc.concat({ ...sep, key: i }, el) : [el]), []);
1895
+ }
1896
+
1897
+ exports.Blocks = Blocks;
1898
+ exports.ContentPage = ContentPage;
1899
+ exports.DaDataAPI = DaDataAPI;
1900
+ exports.LikeAPI = LikeAPI;
1901
+ exports.joinList = joinList;
1902
+ exports.projectSettings = projectSettings;
1903
+ exports.setup = setup;
1904
+ exports.setupHooks = setupHooks;
1905
+ exports.url = url;
1906
+
1907
+ Object.defineProperty(exports, '__esModule', { value: true });
1803
1908
 
1804
1909
  }));