@redneckz/wildless-cms-uni-blocks 0.3.70 → 0.3.72

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 (1135) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +392 -429
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/components/Accordion/Accordion.mobile.js.map +1 -1
  5. package/dist/components/Blocks.d.ts +0 -1
  6. package/dist/components/Blocks.js +0 -2
  7. package/dist/components/Blocks.js.map +1 -1
  8. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +2 -2
  9. package/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  10. package/dist/components/Calculator/Calculator.js +7 -3
  11. package/dist/components/Calculator/Calculator.js.map +1 -1
  12. package/dist/components/Calculator/getCalculatorParams.js +2 -1
  13. package/dist/components/Calculator/getCalculatorParams.js.map +1 -1
  14. package/dist/components/Calculator/getCreditRate.js +2 -1
  15. package/dist/components/Calculator/getCreditRate.js.map +1 -1
  16. package/dist/components/Calculator/getMonthlyPayment.js +2 -1
  17. package/dist/components/Calculator/getMonthlyPayment.js.map +1 -1
  18. package/dist/components/Calculator/renderCalculatorBlock.js.map +1 -1
  19. package/dist/components/ComparisonTable/HeaderCell.mobile.js +4 -2
  20. package/dist/components/ComparisonTable/HeaderCell.mobile.js.map +1 -1
  21. package/dist/components/ComparisonTable/TableCell.js +3 -1
  22. package/dist/components/ComparisonTable/TableCell.js.map +1 -1
  23. package/dist/components/ComparisonTable/TableRow.js +2 -1
  24. package/dist/components/ComparisonTable/TableRow.js.map +1 -1
  25. package/dist/components/ContentPage/ContentPageContext.d.ts +15 -3
  26. package/dist/components/ExchangeRateTile/CurrencyProps.d.ts +5 -0
  27. package/dist/components/ExchangeRateTile/CurrencyProps.js +9 -0
  28. package/dist/components/ExchangeRateTile/CurrencyProps.js.map +1 -0
  29. package/dist/components/ExchangeRateTile/CurrencyTable.d.ts +1 -1
  30. package/dist/components/ExchangeRateTile/CurrencyTable.js +2 -2
  31. package/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  32. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +16 -4
  33. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +68 -9
  34. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  35. package/dist/components/ExchangeRateTile/ExchangeRateTile.js +7 -19
  36. package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  37. package/dist/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +0 -10
  38. package/dist/components/ExchangeRateTile/calculateResult.d.ts +2 -0
  39. package/dist/components/ExchangeRateTile/calculateResult.js +11 -0
  40. package/dist/components/ExchangeRateTile/calculateResult.js.map +1 -0
  41. package/dist/components/ExchangeRateTile/callbackCurrencySelect.d.ts +8 -0
  42. package/dist/components/ExchangeRateTile/callbackCurrencySelect.js +17 -0
  43. package/dist/components/ExchangeRateTile/callbackCurrencySelect.js.map +1 -0
  44. package/dist/components/ExchangeRateTile/formatCurrency.js +5 -1
  45. package/dist/components/ExchangeRateTile/formatCurrency.js.map +1 -1
  46. package/dist/components/ExchangeRateTile/renderButton.d.ts +1 -0
  47. package/dist/components/ExchangeRateTile/renderButton.js +9 -0
  48. package/dist/components/ExchangeRateTile/renderButton.js.map +1 -0
  49. package/dist/components/ExchangeRateTile/renderInput.d.ts +12 -0
  50. package/dist/components/ExchangeRateTile/renderInput.js +12 -0
  51. package/dist/components/ExchangeRateTile/renderInput.js.map +1 -0
  52. package/dist/components/Footer/Footer.js +1 -1
  53. package/dist/components/Footer/Footer.js.map +1 -1
  54. package/dist/components/Footer/MediaButton.js +4 -13
  55. package/dist/components/Footer/MediaButton.js.map +1 -1
  56. package/dist/components/Footer/TextInformation.js +1 -1
  57. package/dist/components/Footer/TextInformation.js.map +1 -1
  58. package/dist/components/Gallery/Gallery.mobile.js +2 -2
  59. package/dist/components/Gallery/Gallery.mobile.js.map +1 -1
  60. package/dist/components/Gallery/GalleryCardInner.js +2 -2
  61. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  62. package/dist/components/Gallery/GalleryInner.js +7 -2
  63. package/dist/components/Gallery/GalleryInner.js.map +1 -1
  64. package/dist/components/GroupBlock/BlocksTypeProps.d.ts +4 -1
  65. package/dist/components/GroupBlock/GroupBlock.js +3 -3
  66. package/dist/components/GroupBlock/GroupBlock.js.map +1 -1
  67. package/dist/components/GroupBlock/GroupBlockTabs.js +2 -2
  68. package/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  69. package/dist/components/GroupBlock/GroupBlocksItem.js +1 -1
  70. package/dist/components/GroupBlock/GroupBlocksItem.js.map +1 -1
  71. package/dist/components/Header/DropdownMenu.d.ts +13 -0
  72. package/dist/components/Header/DropdownMenu.js +18 -0
  73. package/dist/components/Header/DropdownMenu.js.map +1 -0
  74. package/dist/components/Header/HeaderSubMenu.js +19 -32
  75. package/dist/components/Header/HeaderSubMenu.js.map +1 -1
  76. package/dist/components/Headline/Headline.js +2 -2
  77. package/dist/components/Headline/Headline.js.map +1 -1
  78. package/dist/components/Headline/Headline.mobile.js +1 -1
  79. package/dist/components/Headline/Headline.mobile.js.map +1 -1
  80. package/dist/components/Headline/HeadlineContent.d.ts +2 -1
  81. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +8 -4
  82. package/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  83. package/dist/components/LinkDocs/LinkDocs.js +3 -12
  84. package/dist/components/LinkDocs/LinkDocs.js.map +1 -1
  85. package/dist/components/LinkDocs/LinkDocs.mobile.js +3 -3
  86. package/dist/components/LinkDocs/LinkDocs.mobile.js.map +1 -1
  87. package/dist/components/LinkDocs/LinkDocsContent.d.ts +1 -1
  88. package/dist/components/LinkDocs/LinkDocsHorizontalList.js +1 -1
  89. package/dist/components/LinkDocs/LinkDocsHorizontalList.js.map +1 -1
  90. package/dist/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  91. package/dist/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  92. package/dist/components/LinkDocs/LinkDocsVerticalList.js +1 -1
  93. package/dist/components/LinkDocs/LinkDocsVerticalList.js.map +1 -1
  94. package/dist/components/LinkDocs/linkDocsContentExample.js +1 -1
  95. package/dist/components/LinkDocs/linkDocsContentExample.js.map +1 -1
  96. package/dist/components/Placeholder/Placeholder.js +1 -1
  97. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  98. package/dist/components/ProductBlock/ProductBlockInner.js +1 -1
  99. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  100. package/dist/components/ProductBlock/ProductBlockInner.mobile.js +1 -1
  101. package/dist/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
  102. package/dist/components/ProductTile/ProductTile.js +2 -2
  103. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  104. package/dist/components/Recommendation/Recommendation.js +7 -2
  105. package/dist/components/Recommendation/Recommendation.js.map +1 -1
  106. package/dist/components/Tile/Tile.js +4 -4
  107. package/dist/components/Tile/Tile.js.map +1 -1
  108. package/dist/components/Tile/TileContent.d.ts +5 -0
  109. package/dist/content-page-repository/mapJSON.d.ts +1 -1
  110. package/dist/content-page-repository/mapJSON.js +9 -7
  111. package/dist/content-page-repository/mapJSON.js.map +1 -1
  112. package/dist/content-page-repository/transformMarkdown.js +2 -1
  113. package/dist/content-page-repository/transformMarkdown.js.map +1 -1
  114. package/dist/content-page-repository/transformPicture.js +6 -3
  115. package/dist/content-page-repository/transformPicture.js.map +1 -1
  116. package/dist/hooks/useCreditCalculatorData.d.ts +1 -2
  117. package/dist/hooks/useCreditCalculatorData.js.map +1 -1
  118. package/dist/hooks/useExchangeRates.d.ts +2 -8
  119. package/dist/hooks/useExchangeRates.js +52 -3
  120. package/dist/hooks/useExchangeRates.js.map +1 -1
  121. package/dist/hooks/useTableArrowScrollControl.js +3 -3
  122. package/dist/hooks/useTableArrowScrollControl.js.map +1 -1
  123. package/dist/react/IntersectionObserverTag.d.ts +2 -0
  124. package/dist/react/IntersectionObserverTag.js +17 -0
  125. package/dist/react/IntersectionObserverTag.js.map +1 -0
  126. package/dist/{setup-fixture.d.ts → react/setup-fixture.d.ts} +1 -1
  127. package/{mobile/dist → dist/react}/setup-fixture.js +3 -1
  128. package/dist/react/setup-fixture.js.map +1 -0
  129. package/dist/services/sitemap/isHrefActive.d.ts +1 -1
  130. package/dist/services/sitemap/isHrefActive.js +1 -1
  131. package/dist/services/sitemap/isHrefActive.js.map +1 -1
  132. package/dist/ui-kit/Button/ArrowButton.d.ts +1 -1
  133. package/dist/ui-kit/Button/ArrowButton.js.map +1 -1
  134. package/dist/ui-kit/Button/ButtonSection.js +2 -1
  135. package/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  136. package/dist/ui-kit/Button/renderArrows.d.ts +10 -0
  137. package/dist/ui-kit/Button/renderArrows.js +9 -0
  138. package/dist/ui-kit/Button/renderArrows.js.map +1 -0
  139. package/dist/ui-kit/Img/Img.mobile.js +1 -1
  140. package/dist/ui-kit/Img/Img.mobile.js.map +1 -1
  141. package/dist/ui-kit/Input/Input.js +6 -2
  142. package/dist/ui-kit/Input/Input.js.map +1 -1
  143. package/dist/ui-kit/Input/InputProps.d.ts +3 -0
  144. package/dist/ui-kit/InputRange/InputRange.js +10 -6
  145. package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  146. package/dist/ui-kit/SVG.js +1 -1
  147. package/dist/ui-kit/SVG.js.map +1 -1
  148. package/dist/ui-kit/SearchBar.mobile.js +1 -1
  149. package/dist/ui-kit/SearchBar.mobile.js.map +1 -1
  150. package/dist/ui-kit/Select/Select.d.ts +2 -0
  151. package/dist/ui-kit/Select/Select.js +2 -2
  152. package/dist/ui-kit/Select/Select.js.map +1 -1
  153. package/dist/ui-kit/SwipeListControl/SwipeListControl.js +2 -2
  154. package/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  155. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +2 -1
  156. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  157. package/dist/ui-kit/SwipeListControl/utils/getIndexParts.js +3 -2
  158. package/dist/ui-kit/SwipeListControl/utils/getIndexParts.js.map +1 -1
  159. package/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +9 -3
  160. package/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  161. package/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +5 -4
  162. package/dist/ui-kit/Tabs/Tabs.js +2 -1
  163. package/dist/ui-kit/Tabs/Tabs.js.map +1 -1
  164. package/dist/ui-kit/TopItem/TopItem.js +6 -8
  165. package/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  166. package/dist/utils/changeHashOnScroll.js +2 -1
  167. package/dist/utils/changeHashOnScroll.js.map +1 -1
  168. package/dist/utils/getCurrentDate.js +1 -1
  169. package/dist/utils/roundTo.d.ts +1 -0
  170. package/dist/utils/roundTo.js +8 -0
  171. package/dist/utils/roundTo.js.map +1 -0
  172. package/lib/common.css +1 -1
  173. package/lib/components/Accordion/Accordion.mobile.js.map +1 -1
  174. package/lib/components/Blocks.d.ts +0 -1
  175. package/lib/components/Blocks.js +0 -2
  176. package/lib/components/Blocks.js.map +1 -1
  177. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +2 -2
  178. package/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  179. package/lib/components/Calculator/Calculator.js +8 -4
  180. package/lib/components/Calculator/Calculator.js.map +1 -1
  181. package/lib/components/Calculator/getCalculatorParams.js +2 -1
  182. package/lib/components/Calculator/getCalculatorParams.js.map +1 -1
  183. package/lib/components/Calculator/getCreditRate.js +2 -1
  184. package/lib/components/Calculator/getCreditRate.js.map +1 -1
  185. package/lib/components/Calculator/getMonthlyPayment.js +2 -1
  186. package/lib/components/Calculator/getMonthlyPayment.js.map +1 -1
  187. package/lib/components/Calculator/renderCalculatorBlock.js.map +1 -1
  188. package/lib/components/ComparisonTable/HeaderCell.mobile.js +4 -2
  189. package/lib/components/ComparisonTable/HeaderCell.mobile.js.map +1 -1
  190. package/lib/components/ComparisonTable/TableCell.js +3 -1
  191. package/lib/components/ComparisonTable/TableCell.js.map +1 -1
  192. package/lib/components/ComparisonTable/TableRow.js +2 -1
  193. package/lib/components/ComparisonTable/TableRow.js.map +1 -1
  194. package/lib/components/ContentPage/ContentPageContext.d.ts +15 -3
  195. package/lib/components/ExchangeRateTile/CurrencyProps.d.ts +5 -0
  196. package/lib/components/ExchangeRateTile/CurrencyProps.js +7 -0
  197. package/lib/components/ExchangeRateTile/CurrencyProps.js.map +1 -0
  198. package/lib/components/ExchangeRateTile/CurrencyTable.d.ts +1 -1
  199. package/lib/components/ExchangeRateTile/CurrencyTable.js +2 -2
  200. package/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  201. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +16 -4
  202. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +69 -10
  203. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  204. package/lib/components/ExchangeRateTile/ExchangeRateTile.js +7 -19
  205. package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  206. package/lib/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +0 -10
  207. package/lib/components/ExchangeRateTile/calculateResult.d.ts +2 -0
  208. package/lib/components/ExchangeRateTile/calculateResult.js +7 -0
  209. package/lib/components/ExchangeRateTile/calculateResult.js.map +1 -0
  210. package/lib/components/ExchangeRateTile/callbackCurrencySelect.d.ts +8 -0
  211. package/lib/components/ExchangeRateTile/callbackCurrencySelect.js +14 -0
  212. package/lib/components/ExchangeRateTile/callbackCurrencySelect.js.map +1 -0
  213. package/lib/components/ExchangeRateTile/formatCurrency.js +5 -1
  214. package/lib/components/ExchangeRateTile/formatCurrency.js.map +1 -1
  215. package/lib/components/ExchangeRateTile/renderButton.d.ts +1 -0
  216. package/lib/components/ExchangeRateTile/renderButton.js +6 -0
  217. package/lib/components/ExchangeRateTile/renderButton.js.map +1 -0
  218. package/lib/components/ExchangeRateTile/renderInput.d.ts +12 -0
  219. package/lib/components/ExchangeRateTile/renderInput.js +9 -0
  220. package/lib/components/ExchangeRateTile/renderInput.js.map +1 -0
  221. package/lib/components/Footer/Footer.js +1 -1
  222. package/lib/components/Footer/Footer.js.map +1 -1
  223. package/lib/components/Footer/MediaButton.js +4 -13
  224. package/lib/components/Footer/MediaButton.js.map +1 -1
  225. package/lib/components/Footer/TextInformation.js +1 -1
  226. package/lib/components/Footer/TextInformation.js.map +1 -1
  227. package/lib/components/Gallery/Gallery.mobile.js +2 -2
  228. package/lib/components/Gallery/Gallery.mobile.js.map +1 -1
  229. package/lib/components/Gallery/GalleryCardInner.js +2 -2
  230. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  231. package/lib/components/Gallery/GalleryInner.js +7 -2
  232. package/lib/components/Gallery/GalleryInner.js.map +1 -1
  233. package/lib/components/GroupBlock/BlocksTypeProps.d.ts +4 -1
  234. package/lib/components/GroupBlock/GroupBlock.fixture.d.ts +1 -0
  235. package/lib/components/GroupBlock/GroupBlock.js +3 -3
  236. package/lib/components/GroupBlock/GroupBlock.js.map +1 -1
  237. package/lib/components/GroupBlock/GroupBlockTabs.js +2 -2
  238. package/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  239. package/lib/components/GroupBlock/GroupBlocksItem.js +1 -1
  240. package/lib/components/GroupBlock/GroupBlocksItem.js.map +1 -1
  241. package/lib/components/Header/DropdownMenu.d.ts +13 -0
  242. package/lib/components/Header/DropdownMenu.js +16 -0
  243. package/lib/components/Header/DropdownMenu.js.map +1 -0
  244. package/lib/components/Header/HeaderSubMenu.js +19 -32
  245. package/lib/components/Header/HeaderSubMenu.js.map +1 -1
  246. package/lib/components/Headline/Headline.fixture.d.ts +9 -3
  247. package/lib/components/Headline/Headline.fixture.mobile.d.ts +13 -3
  248. package/lib/components/Headline/Headline.js +2 -2
  249. package/lib/components/Headline/Headline.js.map +1 -1
  250. package/lib/components/Headline/Headline.mobile.js +1 -1
  251. package/lib/components/Headline/Headline.mobile.js.map +1 -1
  252. package/lib/components/Headline/HeadlineContent.d.ts +2 -1
  253. package/lib/components/Insurance/Insurance.fixture.d.ts +2 -1
  254. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +8 -4
  255. package/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  256. package/lib/components/LinkDocs/LinkDocs.js +3 -12
  257. package/lib/components/LinkDocs/LinkDocs.js.map +1 -1
  258. package/lib/components/LinkDocs/LinkDocs.mobile.js +3 -3
  259. package/lib/components/LinkDocs/LinkDocs.mobile.js.map +1 -1
  260. package/lib/components/LinkDocs/LinkDocsContent.d.ts +1 -1
  261. package/lib/components/LinkDocs/LinkDocsHorizontalList.js +1 -1
  262. package/lib/components/LinkDocs/LinkDocsHorizontalList.js.map +1 -1
  263. package/lib/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  264. package/lib/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  265. package/lib/components/LinkDocs/LinkDocsVerticalList.js +1 -1
  266. package/lib/components/LinkDocs/LinkDocsVerticalList.js.map +1 -1
  267. package/lib/components/LinkDocs/linkDocsContentExample.js +1 -1
  268. package/lib/components/LinkDocs/linkDocsContentExample.js.map +1 -1
  269. package/lib/components/Placeholder/Placeholder.js +1 -1
  270. package/lib/components/Placeholder/Placeholder.js.map +1 -1
  271. package/lib/components/ProductBlock/ProductBlock.fixture.d.ts +10 -2
  272. package/lib/components/ProductBlock/ProductBlockInner.js +1 -1
  273. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  274. package/lib/components/ProductBlock/ProductBlockInner.mobile.js +1 -1
  275. package/lib/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
  276. package/lib/components/ProductTile/ProductTile.js +2 -2
  277. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  278. package/lib/components/Recommendation/Recommendation.fixture.d.ts +3 -0
  279. package/lib/components/Recommendation/Recommendation.js +7 -2
  280. package/lib/components/Recommendation/Recommendation.js.map +1 -1
  281. package/lib/components/StepsBlock/StepsBlock.fixture.mobile.d.ts +7 -1
  282. package/lib/components/TextBlock/TextBlock.fixture.d.ts +3 -1
  283. package/lib/components/TextBlock/TextBlock.fixture.mobile.d.ts +3 -1
  284. package/lib/components/Tile/Tile.js +4 -4
  285. package/lib/components/Tile/Tile.js.map +1 -1
  286. package/lib/components/Tile/TileContent.d.ts +5 -0
  287. package/lib/content-page-repository/mapJSON.d.ts +1 -1
  288. package/lib/content-page-repository/mapJSON.js +9 -7
  289. package/lib/content-page-repository/mapJSON.js.map +1 -1
  290. package/lib/content-page-repository/transformMarkdown.js +2 -1
  291. package/lib/content-page-repository/transformMarkdown.js.map +1 -1
  292. package/lib/content-page-repository/transformPicture.js +6 -3
  293. package/lib/content-page-repository/transformPicture.js.map +1 -1
  294. package/lib/hooks/useCreditCalculatorData.d.ts +1 -2
  295. package/lib/hooks/useCreditCalculatorData.js.map +1 -1
  296. package/lib/hooks/useExchangeRates.d.ts +2 -8
  297. package/lib/hooks/useExchangeRates.js +52 -3
  298. package/lib/hooks/useExchangeRates.js.map +1 -1
  299. package/lib/hooks/useTableArrowScrollControl.js +3 -3
  300. package/lib/hooks/useTableArrowScrollControl.js.map +1 -1
  301. package/lib/react/IntersectionObserverTag.d.ts +2 -0
  302. package/lib/react/IntersectionObserverTag.js +14 -0
  303. package/lib/react/IntersectionObserverTag.js.map +1 -0
  304. package/lib/{setup-fixture.d.ts → react/setup-fixture.d.ts} +1 -1
  305. package/{mobile/lib → lib/react}/setup-fixture.js +3 -1
  306. package/lib/react/setup-fixture.js.map +1 -0
  307. package/lib/services/sitemap/isHrefActive.d.ts +1 -1
  308. package/lib/services/sitemap/isHrefActive.js +1 -1
  309. package/lib/services/sitemap/isHrefActive.js.map +1 -1
  310. package/lib/ui-kit/Button/ArrowButton.d.ts +1 -1
  311. package/lib/ui-kit/Button/ArrowButton.js.map +1 -1
  312. package/lib/ui-kit/Button/Button.fixture.d.ts +1 -1
  313. package/lib/ui-kit/Button/Button.fixture.mobile.d.ts +1 -1
  314. package/lib/ui-kit/Button/ButtonSection.js +2 -1
  315. package/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  316. package/lib/ui-kit/Button/renderArrows.d.ts +10 -0
  317. package/lib/ui-kit/Button/renderArrows.js +6 -0
  318. package/lib/ui-kit/Button/renderArrows.js.map +1 -0
  319. package/lib/ui-kit/HeaderItem/HeaderItem.fixture.d.ts +1 -1
  320. package/lib/ui-kit/Icon/Icon.fixture.d.ts +1 -1
  321. package/lib/ui-kit/Img/Img.mobile.js +1 -1
  322. package/lib/ui-kit/Img/Img.mobile.js.map +1 -1
  323. package/lib/ui-kit/Input/Input.js +6 -2
  324. package/lib/ui-kit/Input/Input.js.map +1 -1
  325. package/lib/ui-kit/Input/InputProps.d.ts +3 -0
  326. package/lib/ui-kit/InputRange/InputRange.js +10 -6
  327. package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  328. package/lib/ui-kit/List/List.fixture.d.ts +1 -1
  329. package/lib/ui-kit/Logo/Logo.fixture.d.ts +1 -1
  330. package/lib/ui-kit/SVG.js +1 -1
  331. package/lib/ui-kit/SVG.js.map +1 -1
  332. package/lib/ui-kit/SearchBar.mobile.js +1 -1
  333. package/lib/ui-kit/SearchBar.mobile.js.map +1 -1
  334. package/lib/ui-kit/Select/Select.d.ts +2 -0
  335. package/lib/ui-kit/Select/Select.js +2 -2
  336. package/lib/ui-kit/Select/Select.js.map +1 -1
  337. package/lib/ui-kit/SwipeListControl/SwipeListControl.js +2 -2
  338. package/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  339. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +2 -1
  340. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  341. package/lib/ui-kit/SwipeListControl/utils/getIndexParts.js +3 -2
  342. package/lib/ui-kit/SwipeListControl/utils/getIndexParts.js.map +1 -1
  343. package/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +10 -4
  344. package/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  345. package/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +5 -4
  346. package/lib/ui-kit/Tabs/Tabs.js +2 -1
  347. package/lib/ui-kit/Tabs/Tabs.js.map +1 -1
  348. package/lib/ui-kit/TopItem/TopItem.fixture.d.ts +1 -1
  349. package/lib/ui-kit/TopItem/TopItem.js +6 -8
  350. package/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  351. package/lib/utils/changeHashOnScroll.js +2 -1
  352. package/lib/utils/changeHashOnScroll.js.map +1 -1
  353. package/lib/utils/getCurrentDate.js +1 -1
  354. package/lib/utils/roundTo.d.ts +1 -0
  355. package/lib/utils/roundTo.js +5 -0
  356. package/lib/utils/roundTo.js.map +1 -0
  357. package/mobile/bundle/bundle.umd.js +216 -73
  358. package/mobile/bundle/bundle.umd.min.js +1 -1
  359. package/mobile/dist/components/Accordion/Accordion.js.map +1 -1
  360. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js +2 -2
  361. package/mobile/dist/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  362. package/mobile/dist/components/Calculator/Calculator.js +7 -3
  363. package/mobile/dist/components/Calculator/Calculator.js.map +1 -1
  364. package/mobile/dist/components/Calculator/getCalculatorParams.js +2 -1
  365. package/mobile/dist/components/Calculator/getCalculatorParams.js.map +1 -1
  366. package/mobile/dist/components/Calculator/getCreditRate.js +2 -1
  367. package/mobile/dist/components/Calculator/getCreditRate.js.map +1 -1
  368. package/mobile/dist/components/Calculator/getMonthlyPayment.js +2 -1
  369. package/mobile/dist/components/Calculator/getMonthlyPayment.js.map +1 -1
  370. package/mobile/dist/components/Calculator/renderCalculatorBlock.js.map +1 -1
  371. package/mobile/dist/components/ComparisonTable/HeaderCell.js +4 -2
  372. package/mobile/dist/components/ComparisonTable/HeaderCell.js.map +1 -1
  373. package/mobile/dist/components/ComparisonTable/TableRow.js +2 -1
  374. package/mobile/dist/components/ComparisonTable/TableRow.js.map +1 -1
  375. package/mobile/dist/components/ContentPage/ContentPageContext.d.ts +15 -3
  376. package/mobile/dist/components/ExchangeRateTile/CurrencyProps.d.ts +5 -0
  377. package/mobile/dist/components/ExchangeRateTile/CurrencyProps.js +9 -0
  378. package/mobile/dist/components/ExchangeRateTile/CurrencyProps.js.map +1 -0
  379. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.d.ts +1 -1
  380. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js +2 -2
  381. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  382. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +16 -4
  383. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +68 -9
  384. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  385. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js +7 -19
  386. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  387. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +0 -10
  388. package/mobile/dist/components/ExchangeRateTile/calculateResult.d.ts +2 -0
  389. package/mobile/dist/components/ExchangeRateTile/calculateResult.js +11 -0
  390. package/mobile/dist/components/ExchangeRateTile/calculateResult.js.map +1 -0
  391. package/mobile/dist/components/ExchangeRateTile/callbackCurrencySelect.d.ts +8 -0
  392. package/mobile/dist/components/ExchangeRateTile/callbackCurrencySelect.js +17 -0
  393. package/mobile/dist/components/ExchangeRateTile/callbackCurrencySelect.js.map +1 -0
  394. package/mobile/dist/components/ExchangeRateTile/formatCurrency.js +5 -1
  395. package/mobile/dist/components/ExchangeRateTile/formatCurrency.js.map +1 -1
  396. package/mobile/dist/components/ExchangeRateTile/renderButton.d.ts +1 -0
  397. package/mobile/dist/components/ExchangeRateTile/renderButton.js +9 -0
  398. package/mobile/dist/components/ExchangeRateTile/renderButton.js.map +1 -0
  399. package/mobile/dist/components/ExchangeRateTile/renderInput.d.ts +12 -0
  400. package/mobile/dist/components/ExchangeRateTile/renderInput.js +12 -0
  401. package/mobile/dist/components/ExchangeRateTile/renderInput.js.map +1 -0
  402. package/mobile/dist/components/Footer/MediaButton.js +4 -13
  403. package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
  404. package/mobile/dist/components/Gallery/Gallery.js +2 -2
  405. package/mobile/dist/components/Gallery/Gallery.js.map +1 -1
  406. package/mobile/dist/components/Gallery/GalleryCardInner.js +2 -2
  407. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  408. package/mobile/dist/components/Gallery/GalleryInner.js +7 -2
  409. package/mobile/dist/components/Gallery/GalleryInner.js.map +1 -1
  410. package/mobile/dist/components/GroupBlock/BlocksTypeProps.d.ts +4 -1
  411. package/mobile/dist/components/GroupBlock/GroupBlock.js +3 -3
  412. package/mobile/dist/components/GroupBlock/GroupBlock.js.map +1 -1
  413. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js +2 -2
  414. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  415. package/mobile/dist/components/GroupBlock/GroupBlocksItem.js +1 -1
  416. package/mobile/dist/components/GroupBlock/GroupBlocksItem.js.map +1 -1
  417. package/mobile/dist/components/Header/DropdownMenu.d.ts +13 -0
  418. package/mobile/dist/components/Header/DropdownMenu.js +18 -0
  419. package/mobile/dist/components/Header/DropdownMenu.js.map +1 -0
  420. package/mobile/dist/components/Header/HeaderSubMenu.js +19 -32
  421. package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
  422. package/mobile/dist/components/Headline/Headline.js +1 -1
  423. package/mobile/dist/components/Headline/Headline.js.map +1 -1
  424. package/mobile/dist/components/Headline/HeadlineContent.d.ts +2 -1
  425. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +8 -4
  426. package/mobile/dist/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  427. package/mobile/dist/components/LinkDocs/LinkDocs.js +3 -3
  428. package/mobile/dist/components/LinkDocs/LinkDocs.js.map +1 -1
  429. package/mobile/dist/components/LinkDocs/LinkDocsContent.d.ts +1 -1
  430. package/mobile/dist/components/LinkDocs/LinkDocsHorizontalList.js +1 -1
  431. package/mobile/dist/components/LinkDocs/LinkDocsHorizontalList.js.map +1 -1
  432. package/mobile/dist/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  433. package/mobile/dist/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  434. package/mobile/dist/components/LinkDocs/LinkDocsVerticalList.js +1 -1
  435. package/mobile/dist/components/LinkDocs/LinkDocsVerticalList.js.map +1 -1
  436. package/mobile/dist/components/LinkDocs/linkDocsContentExample.js +1 -1
  437. package/mobile/dist/components/LinkDocs/linkDocsContentExample.js.map +1 -1
  438. package/mobile/dist/components/Placeholder/Placeholder.js +1 -1
  439. package/mobile/dist/components/Placeholder/Placeholder.js.map +1 -1
  440. package/mobile/dist/components/ProductBlock/ProductBlockInner.js +1 -1
  441. package/mobile/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  442. package/mobile/dist/components/ProductTile/ProductTile.js +2 -2
  443. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  444. package/mobile/dist/components/Recommendation/Recommendation.js +7 -2
  445. package/mobile/dist/components/Recommendation/Recommendation.js.map +1 -1
  446. package/mobile/dist/components/Tile/Tile.js +4 -4
  447. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  448. package/mobile/dist/components/Tile/TileContent.d.ts +5 -0
  449. package/mobile/dist/content-page-repository/mapJSON.d.ts +1 -1
  450. package/mobile/dist/content-page-repository/mapJSON.js +9 -7
  451. package/mobile/dist/content-page-repository/mapJSON.js.map +1 -1
  452. package/mobile/dist/content-page-repository/transformMarkdown.js +2 -1
  453. package/mobile/dist/content-page-repository/transformMarkdown.js.map +1 -1
  454. package/mobile/dist/content-page-repository/transformPicture.js +6 -3
  455. package/mobile/dist/content-page-repository/transformPicture.js.map +1 -1
  456. package/mobile/dist/hooks/useCreditCalculatorData.d.ts +1 -2
  457. package/mobile/dist/hooks/useCreditCalculatorData.js.map +1 -1
  458. package/mobile/dist/hooks/useExchangeRates.d.ts +2 -8
  459. package/mobile/dist/hooks/useExchangeRates.js +52 -3
  460. package/mobile/dist/hooks/useExchangeRates.js.map +1 -1
  461. package/mobile/dist/hooks/useTableArrowScrollControl.js +3 -3
  462. package/mobile/dist/hooks/useTableArrowScrollControl.js.map +1 -1
  463. package/mobile/dist/react/IntersectionObserverTag.d.ts +2 -0
  464. package/mobile/dist/react/IntersectionObserverTag.js +17 -0
  465. package/mobile/dist/react/IntersectionObserverTag.js.map +1 -0
  466. package/mobile/dist/{setup-fixture.d.ts → react/setup-fixture.d.ts} +1 -1
  467. package/{dist → mobile/dist/react}/setup-fixture.js +3 -1
  468. package/mobile/dist/react/setup-fixture.js.map +1 -0
  469. package/mobile/dist/services/sitemap/isHrefActive.d.ts +1 -1
  470. package/mobile/dist/services/sitemap/isHrefActive.js +1 -1
  471. package/mobile/dist/services/sitemap/isHrefActive.js.map +1 -1
  472. package/mobile/dist/ui-kit/Button/ArrowButton.d.ts +1 -1
  473. package/mobile/dist/ui-kit/Button/ArrowButton.js.map +1 -1
  474. package/mobile/dist/ui-kit/Button/ButtonSection.js +2 -1
  475. package/mobile/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  476. package/mobile/dist/ui-kit/Button/renderArrows.d.ts +10 -0
  477. package/mobile/dist/ui-kit/Button/renderArrows.js +9 -0
  478. package/mobile/dist/ui-kit/Button/renderArrows.js.map +1 -0
  479. package/mobile/dist/ui-kit/Img/Img.js +1 -1
  480. package/mobile/dist/ui-kit/Img/Img.js.map +1 -1
  481. package/mobile/dist/ui-kit/Input/Input.js +6 -2
  482. package/mobile/dist/ui-kit/Input/Input.js.map +1 -1
  483. package/mobile/dist/ui-kit/Input/InputProps.d.ts +3 -0
  484. package/mobile/dist/ui-kit/InputRange/InputRange.js +10 -6
  485. package/mobile/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  486. package/mobile/dist/ui-kit/SVG.js +1 -1
  487. package/mobile/dist/ui-kit/SVG.js.map +1 -1
  488. package/mobile/dist/ui-kit/Select/Select.d.ts +2 -0
  489. package/mobile/dist/ui-kit/Select/Select.js +2 -2
  490. package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
  491. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js +2 -2
  492. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  493. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +2 -1
  494. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  495. package/mobile/dist/ui-kit/SwipeListControl/utils/getIndexParts.js +3 -2
  496. package/mobile/dist/ui-kit/SwipeListControl/utils/getIndexParts.js.map +1 -1
  497. package/mobile/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +9 -3
  498. package/mobile/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  499. package/mobile/dist/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +5 -4
  500. package/mobile/dist/ui-kit/Tabs/Tabs.js +2 -1
  501. package/mobile/dist/ui-kit/Tabs/Tabs.js.map +1 -1
  502. package/mobile/dist/ui-kit/TopItem/TopItem.js +6 -8
  503. package/mobile/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  504. package/mobile/dist/utils/changeHashOnScroll.js +2 -1
  505. package/mobile/dist/utils/changeHashOnScroll.js.map +1 -1
  506. package/mobile/dist/utils/getCurrentDate.js +1 -1
  507. package/mobile/dist/utils/roundTo.d.ts +1 -0
  508. package/mobile/dist/utils/roundTo.js +8 -0
  509. package/mobile/dist/utils/roundTo.js.map +1 -0
  510. package/mobile/lib/components/Accordion/Accordion.js.map +1 -1
  511. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js +2 -2
  512. package/mobile/lib/components/BonusBenefitsBlock/BonusBenefitsBlock.js.map +1 -1
  513. package/mobile/lib/components/Calculator/Calculator.js +8 -4
  514. package/mobile/lib/components/Calculator/Calculator.js.map +1 -1
  515. package/mobile/lib/components/Calculator/getCalculatorParams.js +2 -1
  516. package/mobile/lib/components/Calculator/getCalculatorParams.js.map +1 -1
  517. package/mobile/lib/components/Calculator/getCreditRate.js +2 -1
  518. package/mobile/lib/components/Calculator/getCreditRate.js.map +1 -1
  519. package/mobile/lib/components/Calculator/getMonthlyPayment.js +2 -1
  520. package/mobile/lib/components/Calculator/getMonthlyPayment.js.map +1 -1
  521. package/mobile/lib/components/Calculator/renderCalculatorBlock.js.map +1 -1
  522. package/mobile/lib/components/ComparisonTable/HeaderCell.js +4 -2
  523. package/mobile/lib/components/ComparisonTable/HeaderCell.js.map +1 -1
  524. package/mobile/lib/components/ComparisonTable/TableRow.js +2 -1
  525. package/mobile/lib/components/ComparisonTable/TableRow.js.map +1 -1
  526. package/mobile/lib/components/ContentPage/ContentPageContext.d.ts +15 -3
  527. package/mobile/lib/components/ExchangeRateTile/CurrencyProps.d.ts +5 -0
  528. package/mobile/lib/components/ExchangeRateTile/CurrencyProps.js +7 -0
  529. package/mobile/lib/components/ExchangeRateTile/CurrencyProps.js.map +1 -0
  530. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.d.ts +1 -1
  531. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js +2 -2
  532. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -1
  533. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +16 -4
  534. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +69 -10
  535. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -1
  536. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js +7 -19
  537. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  538. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +0 -10
  539. package/mobile/lib/components/ExchangeRateTile/calculateResult.d.ts +2 -0
  540. package/mobile/lib/components/ExchangeRateTile/calculateResult.js +7 -0
  541. package/mobile/lib/components/ExchangeRateTile/calculateResult.js.map +1 -0
  542. package/mobile/lib/components/ExchangeRateTile/callbackCurrencySelect.d.ts +8 -0
  543. package/mobile/lib/components/ExchangeRateTile/callbackCurrencySelect.js +14 -0
  544. package/mobile/lib/components/ExchangeRateTile/callbackCurrencySelect.js.map +1 -0
  545. package/mobile/lib/components/ExchangeRateTile/formatCurrency.js +5 -1
  546. package/mobile/lib/components/ExchangeRateTile/formatCurrency.js.map +1 -1
  547. package/mobile/lib/components/ExchangeRateTile/renderButton.d.ts +1 -0
  548. package/mobile/lib/components/ExchangeRateTile/renderButton.js +6 -0
  549. package/mobile/lib/components/ExchangeRateTile/renderButton.js.map +1 -0
  550. package/mobile/lib/components/ExchangeRateTile/renderInput.d.ts +12 -0
  551. package/mobile/lib/components/ExchangeRateTile/renderInput.js +9 -0
  552. package/mobile/lib/components/ExchangeRateTile/renderInput.js.map +1 -0
  553. package/mobile/lib/components/Footer/MediaButton.js +4 -13
  554. package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
  555. package/mobile/lib/components/Gallery/Gallery.js +2 -2
  556. package/mobile/lib/components/Gallery/Gallery.js.map +1 -1
  557. package/mobile/lib/components/Gallery/GalleryCardInner.js +2 -2
  558. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  559. package/mobile/lib/components/Gallery/GalleryInner.js +7 -2
  560. package/mobile/lib/components/Gallery/GalleryInner.js.map +1 -1
  561. package/mobile/lib/components/GroupBlock/BlocksTypeProps.d.ts +4 -1
  562. package/mobile/lib/components/GroupBlock/GroupBlock.js +3 -3
  563. package/mobile/lib/components/GroupBlock/GroupBlock.js.map +1 -1
  564. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js +2 -2
  565. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -1
  566. package/mobile/lib/components/GroupBlock/GroupBlocksItem.js +1 -1
  567. package/mobile/lib/components/GroupBlock/GroupBlocksItem.js.map +1 -1
  568. package/mobile/lib/components/Header/DropdownMenu.d.ts +13 -0
  569. package/mobile/lib/components/Header/DropdownMenu.js +16 -0
  570. package/mobile/lib/components/Header/DropdownMenu.js.map +1 -0
  571. package/mobile/lib/components/Header/HeaderSubMenu.js +19 -32
  572. package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
  573. package/mobile/lib/components/Headline/Headline.js +1 -1
  574. package/mobile/lib/components/Headline/Headline.js.map +1 -1
  575. package/mobile/lib/components/Headline/HeadlineContent.d.ts +2 -1
  576. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js +8 -4
  577. package/mobile/lib/components/InsuranceAmountBlock/InsuranceAmountBlockInner.js.map +1 -1
  578. package/mobile/lib/components/LinkDocs/LinkDocs.js +3 -3
  579. package/mobile/lib/components/LinkDocs/LinkDocs.js.map +1 -1
  580. package/mobile/lib/components/LinkDocs/LinkDocsContent.d.ts +1 -1
  581. package/mobile/lib/components/LinkDocs/LinkDocsHorizontalList.js +1 -1
  582. package/mobile/lib/components/LinkDocs/LinkDocsHorizontalList.js.map +1 -1
  583. package/mobile/lib/components/LinkDocs/LinkDocsListItemBase.js +2 -1
  584. package/mobile/lib/components/LinkDocs/LinkDocsListItemBase.js.map +1 -1
  585. package/mobile/lib/components/LinkDocs/LinkDocsVerticalList.js +1 -1
  586. package/mobile/lib/components/LinkDocs/LinkDocsVerticalList.js.map +1 -1
  587. package/mobile/lib/components/LinkDocs/linkDocsContentExample.js +1 -1
  588. package/mobile/lib/components/LinkDocs/linkDocsContentExample.js.map +1 -1
  589. package/mobile/lib/components/Placeholder/Placeholder.js +1 -1
  590. package/mobile/lib/components/Placeholder/Placeholder.js.map +1 -1
  591. package/mobile/lib/components/ProductBlock/ProductBlockInner.js +1 -1
  592. package/mobile/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  593. package/mobile/lib/components/ProductTile/ProductTile.js +2 -2
  594. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  595. package/mobile/lib/components/Recommendation/Recommendation.js +7 -2
  596. package/mobile/lib/components/Recommendation/Recommendation.js.map +1 -1
  597. package/mobile/lib/components/Tile/Tile.js +4 -4
  598. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  599. package/mobile/lib/components/Tile/TileContent.d.ts +5 -0
  600. package/mobile/lib/content-page-repository/mapJSON.d.ts +1 -1
  601. package/mobile/lib/content-page-repository/mapJSON.js +9 -7
  602. package/mobile/lib/content-page-repository/mapJSON.js.map +1 -1
  603. package/mobile/lib/content-page-repository/transformMarkdown.js +2 -1
  604. package/mobile/lib/content-page-repository/transformMarkdown.js.map +1 -1
  605. package/mobile/lib/content-page-repository/transformPicture.js +6 -3
  606. package/mobile/lib/content-page-repository/transformPicture.js.map +1 -1
  607. package/mobile/lib/hooks/useCreditCalculatorData.d.ts +1 -2
  608. package/mobile/lib/hooks/useCreditCalculatorData.js.map +1 -1
  609. package/mobile/lib/hooks/useExchangeRates.d.ts +2 -8
  610. package/mobile/lib/hooks/useExchangeRates.js +52 -3
  611. package/mobile/lib/hooks/useExchangeRates.js.map +1 -1
  612. package/mobile/lib/hooks/useTableArrowScrollControl.js +3 -3
  613. package/mobile/lib/hooks/useTableArrowScrollControl.js.map +1 -1
  614. package/mobile/lib/react/IntersectionObserverTag.d.ts +2 -0
  615. package/mobile/lib/react/IntersectionObserverTag.js +14 -0
  616. package/mobile/lib/react/IntersectionObserverTag.js.map +1 -0
  617. package/mobile/lib/{setup-fixture.d.ts → react/setup-fixture.d.ts} +1 -1
  618. package/{lib → mobile/lib/react}/setup-fixture.js +3 -1
  619. package/mobile/lib/react/setup-fixture.js.map +1 -0
  620. package/mobile/lib/services/sitemap/isHrefActive.d.ts +1 -1
  621. package/mobile/lib/services/sitemap/isHrefActive.js +1 -1
  622. package/mobile/lib/services/sitemap/isHrefActive.js.map +1 -1
  623. package/mobile/lib/ui-kit/Button/ArrowButton.d.ts +1 -1
  624. package/mobile/lib/ui-kit/Button/ArrowButton.js.map +1 -1
  625. package/mobile/lib/ui-kit/Button/ButtonSection.js +2 -1
  626. package/mobile/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  627. package/mobile/lib/ui-kit/Button/renderArrows.d.ts +10 -0
  628. package/mobile/lib/ui-kit/Button/renderArrows.js +6 -0
  629. package/mobile/lib/ui-kit/Button/renderArrows.js.map +1 -0
  630. package/mobile/lib/ui-kit/Img/Img.js +1 -1
  631. package/mobile/lib/ui-kit/Img/Img.js.map +1 -1
  632. package/mobile/lib/ui-kit/Input/Input.js +6 -2
  633. package/mobile/lib/ui-kit/Input/Input.js.map +1 -1
  634. package/mobile/lib/ui-kit/Input/InputProps.d.ts +3 -0
  635. package/mobile/lib/ui-kit/InputRange/InputRange.js +10 -6
  636. package/mobile/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  637. package/mobile/lib/ui-kit/SVG.js +1 -1
  638. package/mobile/lib/ui-kit/SVG.js.map +1 -1
  639. package/mobile/lib/ui-kit/Select/Select.d.ts +2 -0
  640. package/mobile/lib/ui-kit/Select/Select.js +2 -2
  641. package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
  642. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js +2 -2
  643. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  644. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +2 -1
  645. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  646. package/mobile/lib/ui-kit/SwipeListControl/utils/getIndexParts.js +3 -2
  647. package/mobile/lib/ui-kit/SwipeListControl/utils/getIndexParts.js.map +1 -1
  648. package/mobile/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js +10 -4
  649. package/mobile/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControl.js.map +1 -1
  650. package/mobile/lib/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.d.ts +5 -4
  651. package/mobile/lib/ui-kit/Tabs/Tabs.js +2 -1
  652. package/mobile/lib/ui-kit/Tabs/Tabs.js.map +1 -1
  653. package/mobile/lib/ui-kit/TopItem/TopItem.js +6 -8
  654. package/mobile/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  655. package/mobile/lib/utils/changeHashOnScroll.js +2 -1
  656. package/mobile/lib/utils/changeHashOnScroll.js.map +1 -1
  657. package/mobile/lib/utils/getCurrentDate.js +1 -1
  658. package/mobile/lib/utils/roundTo.d.ts +1 -0
  659. package/mobile/lib/utils/roundTo.js +5 -0
  660. package/mobile/lib/utils/roundTo.js.map +1 -0
  661. package/mobile/src/components/Accordion/Accordion.tsx +1 -3
  662. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +1 -1
  663. package/mobile/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +4 -8
  664. package/mobile/src/components/Calculator/Calculator.tsx +8 -22
  665. package/mobile/src/components/Calculator/getCalculatorParams.ts +3 -1
  666. package/mobile/src/components/Calculator/getCreditRate.ts +3 -1
  667. package/mobile/src/components/Calculator/getMonthlyPayment.ts +3 -1
  668. package/mobile/src/components/Calculator/renderCalculatorBlock.tsx +0 -7
  669. package/mobile/src/components/ComparisonTable/HeaderCell.tsx +7 -13
  670. package/mobile/src/components/ComparisonTable/TableRow.tsx +6 -9
  671. package/mobile/src/components/ContentPage/ContentPage.page.json +1 -6
  672. package/mobile/src/components/ContentPage/ContentPageContext.tsx +24 -4
  673. package/mobile/src/components/ExchangeRateTile/CurrencyProps.ts +5 -0
  674. package/mobile/src/components/ExchangeRateTile/CurrencyTable.tsx +4 -4
  675. package/mobile/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +120 -35
  676. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.tsx +14 -28
  677. package/mobile/src/components/ExchangeRateTile/ExchangeRateTileContent.ts +0 -11
  678. package/mobile/src/components/ExchangeRateTile/calculateResult.ts +8 -0
  679. package/mobile/src/components/ExchangeRateTile/callbackCurrencySelect.ts +21 -0
  680. package/mobile/src/components/ExchangeRateTile/formatCurrency.ts +6 -1
  681. package/mobile/src/components/ExchangeRateTile/renderButton.tsx +14 -0
  682. package/mobile/src/components/ExchangeRateTile/renderInput.tsx +43 -0
  683. package/mobile/src/components/Footer/MediaButton.tsx +7 -17
  684. package/mobile/src/components/Gallery/Gallery.tsx +2 -2
  685. package/mobile/src/components/Gallery/GalleryCardInner.tsx +2 -2
  686. package/mobile/src/components/Gallery/GalleryInner.tsx +10 -20
  687. package/mobile/src/components/GroupBlock/BlocksTypeProps.ts +4 -1
  688. package/mobile/src/components/GroupBlock/GroupBlock.example.json +8 -7
  689. package/mobile/src/components/GroupBlock/GroupBlock.tsx +9 -4
  690. package/mobile/src/components/GroupBlock/GroupBlockTabs.tsx +4 -4
  691. package/mobile/src/components/GroupBlock/GroupBlocksItem.tsx +1 -1
  692. package/mobile/src/components/Header/DropdownMenu.tsx +72 -0
  693. package/mobile/src/components/Header/HeaderSubMenu.tsx +45 -87
  694. package/mobile/src/components/Headline/Headline.tsx +3 -5
  695. package/mobile/src/components/Headline/HeadlineContent.ts +2 -1
  696. package/mobile/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +14 -24
  697. package/mobile/src/components/LinkDocs/LinkDocs.example.json +1 -1
  698. package/mobile/src/components/LinkDocs/LinkDocs.tsx +10 -12
  699. package/mobile/src/components/LinkDocs/LinkDocsContent.ts +1 -1
  700. package/mobile/src/components/LinkDocs/LinkDocsHorizontalList.tsx +1 -1
  701. package/mobile/src/components/LinkDocs/LinkDocsListItemBase.tsx +3 -1
  702. package/mobile/src/components/LinkDocs/LinkDocsVerticalList.tsx +3 -1
  703. package/mobile/src/components/LinkDocs/linkDocsContentExample.ts +1 -1
  704. package/mobile/src/components/Placeholder/Placeholder.tsx +6 -2
  705. package/mobile/src/components/ProductBlock/ProductBlock.example.json +1 -5
  706. package/mobile/src/components/ProductBlock/ProductBlockInner.tsx +1 -1
  707. package/mobile/src/components/ProductTile/ProductTile.tsx +2 -2
  708. package/mobile/src/components/Recommendation/Recommendation.tsx +7 -15
  709. package/mobile/src/components/TariffsTable/TariffsTable.example.json +1 -5
  710. package/mobile/src/components/Tile/Tile.example.json +1 -0
  711. package/mobile/src/components/Tile/Tile.tsx +4 -2
  712. package/mobile/src/components/Tile/TileContent.ts +5 -0
  713. package/mobile/src/content-page-repository/mapJSON.ts +11 -7
  714. package/mobile/src/content-page-repository/transformMarkdown.ts +3 -1
  715. package/mobile/src/content-page-repository/transformPicture.ts +8 -3
  716. package/mobile/src/hooks/useCreditCalculatorData.ts +2 -3
  717. package/mobile/src/hooks/useExchangeRates.ts +70 -10
  718. package/mobile/src/hooks/useTableArrowScrollControl.ts +3 -3
  719. package/mobile/src/react/IntersectionObserverTag.tsx +23 -0
  720. package/mobile/src/{setup-fixture.ts → react/setup-fixture.ts} +5 -2
  721. package/mobile/src/services/sitemap/isHrefActive.ts +2 -1
  722. package/mobile/src/ui-kit/Button/ArrowButton.tsx +1 -1
  723. package/mobile/src/ui-kit/Button/ButtonSection.tsx +3 -1
  724. package/mobile/src/ui-kit/Button/renderArrows.tsx +41 -0
  725. package/mobile/src/ui-kit/Img/Img.tsx +1 -0
  726. package/mobile/src/ui-kit/Input/Input.tsx +21 -5
  727. package/mobile/src/ui-kit/Input/InputProps.ts +3 -0
  728. package/mobile/src/ui-kit/InputRange/InputRange.tsx +14 -6
  729. package/mobile/src/ui-kit/SVG.tsx +2 -2
  730. package/mobile/src/ui-kit/Select/Select.tsx +17 -7
  731. package/mobile/src/ui-kit/SwipeListControl/SwipeListControl.tsx +9 -4
  732. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +3 -1
  733. package/mobile/src/ui-kit/SwipeListControl/utils/getIndexParts.ts +6 -2
  734. package/mobile/src/ui-kit/TableArrowScrollControl/TableArrowScrollControl.tsx +9 -18
  735. package/mobile/src/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.ts +6 -4
  736. package/mobile/src/ui-kit/Tabs/Tabs.tsx +4 -3
  737. package/mobile/src/ui-kit/TopItem/TopItem.tsx +8 -9
  738. package/mobile/src/utils/changeHashOnScroll.ts +3 -1
  739. package/mobile/src/utils/getCurrentDate.ts +1 -1
  740. package/mobile/src/utils/roundTo.ts +4 -0
  741. package/package.json +3 -3
  742. package/src/components/Accordion/Accordion.fixture.mobile.tsx +1 -1
  743. package/src/components/Accordion/Accordion.fixture.tsx +11 -11
  744. package/src/components/Accordion/Accordion.mobile.tsx +1 -3
  745. package/src/components/BenefitsBlock/BenefitsBlock.fixture.tsx +1 -1
  746. package/src/components/Blocks.ts +0 -2
  747. package/src/components/Bonus/Bonus.fixture.tsx +1 -1
  748. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.example.json +1 -1
  749. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.fixture.tsx +1 -1
  750. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.tsx +4 -8
  751. package/src/components/Calculator/Calculator.fixture.tsx +4 -4
  752. package/src/components/Calculator/Calculator.tsx +8 -22
  753. package/src/components/Calculator/getCalculatorParams.ts +3 -1
  754. package/src/components/Calculator/getCreditRate.ts +3 -1
  755. package/src/components/Calculator/getMonthlyPayment.ts +3 -1
  756. package/src/components/Calculator/renderCalculatorBlock.tsx +0 -7
  757. package/src/components/ComparisonTable/ComparisonTable.fixture.mobile.tsx +2 -35
  758. package/src/components/ComparisonTable/ComparisonTable.fixture.tsx +1 -1
  759. package/src/components/ComparisonTable/HeaderCell.mobile.tsx +7 -13
  760. package/src/components/ComparisonTable/TableCell.tsx +7 -10
  761. package/src/components/ComparisonTable/TableRow.tsx +6 -9
  762. package/src/components/ContentPage/ContentPage.fixture.mobile.tsx +1 -1
  763. package/src/components/ContentPage/ContentPage.fixture.tsx +1 -1
  764. package/src/components/ContentPage/ContentPage.page.json +1 -6
  765. package/src/components/ContentPage/ContentPageContext.tsx +24 -4
  766. package/src/components/ExchangeRateTile/CurrencyProps.ts +5 -0
  767. package/src/components/ExchangeRateTile/CurrencyTable.tsx +4 -4
  768. package/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +120 -35
  769. package/src/components/ExchangeRateTile/ExchangeRateTile.fixture.tsx +1 -1
  770. package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +14 -28
  771. package/src/components/ExchangeRateTile/ExchangeRateTileContent.ts +0 -11
  772. package/src/components/ExchangeRateTile/calculateResult.ts +8 -0
  773. package/src/components/ExchangeRateTile/callbackCurrencySelect.ts +21 -0
  774. package/src/components/ExchangeRateTile/formatCurrency.ts +6 -1
  775. package/src/components/ExchangeRateTile/renderButton.tsx +14 -0
  776. package/src/components/ExchangeRateTile/renderInput.tsx +43 -0
  777. package/src/components/Footer/Footer.fixture.mobile.tsx +1 -1
  778. package/src/components/Footer/Footer.fixture.tsx +1 -1
  779. package/src/components/Footer/Footer.tsx +1 -1
  780. package/src/components/Footer/MediaButton.tsx +7 -17
  781. package/src/components/Footer/TextInformation.tsx +2 -2
  782. package/src/components/Gallery/Gallery.fixture.mobile.tsx +2 -31
  783. package/src/components/Gallery/Gallery.fixture.tsx +1 -1
  784. package/src/components/Gallery/Gallery.mobile.tsx +2 -2
  785. package/src/components/Gallery/GalleryCardInner.tsx +2 -2
  786. package/src/components/Gallery/GalleryInner.tsx +10 -20
  787. package/src/components/GracePeriod/GracePeriod.fixture.tsx +1 -1
  788. package/src/components/GroupBlock/BlocksTypeProps.ts +4 -1
  789. package/src/components/GroupBlock/GroupBlock.example.json +8 -7
  790. package/src/components/GroupBlock/GroupBlock.fixture.tsx +19 -3
  791. package/src/components/GroupBlock/GroupBlock.tsx +9 -4
  792. package/src/components/GroupBlock/GroupBlockTabs.tsx +4 -4
  793. package/src/components/GroupBlock/GroupBlocksItem.tsx +1 -1
  794. package/src/components/Header/DropdownMenu.tsx +72 -0
  795. package/src/components/Header/Header.fixture.mobile.tsx +1 -1
  796. package/src/components/Header/Header.fixture.tsx +1 -1
  797. package/src/components/Header/HeaderSubMenu.tsx +45 -87
  798. package/src/components/Headline/Headline.fixture.mobile.tsx +45 -4
  799. package/src/components/Headline/Headline.fixture.tsx +31 -7
  800. package/src/components/Headline/Headline.mobile.tsx +3 -5
  801. package/src/components/Headline/Headline.tsx +8 -5
  802. package/src/components/Headline/HeadlineContent.ts +2 -1
  803. package/src/components/Insurance/Insurance.fixture.tsx +6 -2
  804. package/src/components/InsuranceAmountBlock/InsuranceAmountBlock.fixture.tsx +1 -1
  805. package/src/components/InsuranceAmountBlock/InsuranceAmountBlockInner.tsx +14 -24
  806. package/src/components/LikeControl/LikeControl.fixture.tsx +1 -1
  807. package/src/components/LinkDocs/LinkDocs.example.json +1 -1
  808. package/src/components/LinkDocs/LinkDocs.fixture.mobile.tsx +3 -8
  809. package/src/components/LinkDocs/LinkDocs.fixture.tsx +2 -2
  810. package/src/components/LinkDocs/LinkDocs.mobile.tsx +10 -12
  811. package/src/components/LinkDocs/LinkDocs.tsx +13 -34
  812. package/src/components/LinkDocs/LinkDocsContent.ts +1 -1
  813. package/src/components/LinkDocs/LinkDocsHorizontalList.tsx +1 -1
  814. package/src/components/LinkDocs/LinkDocsListItemBase.tsx +3 -1
  815. package/src/components/LinkDocs/LinkDocsVerticalList.tsx +3 -1
  816. package/src/components/LinkDocs/linkDocsContentExample.ts +1 -1
  817. package/src/components/LinkList/LinkList.fixture.tsx +1 -1
  818. package/src/components/MiniGallery/MiniGallery.fixture.tsx +1 -1
  819. package/src/components/MobileAppTile/MobileAppTile.fixture.mobile.tsx +1 -1
  820. package/src/components/MobileAppTile/MobileAppTile.fixture.tsx +1 -1
  821. package/src/components/Navigation/Navigation.fixture.tsx +1 -1
  822. package/src/components/NavigatorTabs/NavigatorTabs.fixture.tsx +1 -1
  823. package/src/components/OtherProducts/OtherProducts.fixture.tsx +1 -1
  824. package/src/components/PictureText/PictureText.fixture.tsx +1 -1
  825. package/src/components/Placeholder/Placeholder.fixture.mobile.tsx +1 -1
  826. package/src/components/Placeholder/Placeholder.fixture.tsx +1 -1
  827. package/src/components/Placeholder/Placeholder.tsx +6 -2
  828. package/src/components/ProductBlock/ProductBlock.example.json +1 -5
  829. package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +2 -2
  830. package/src/components/ProductBlock/ProductBlock.fixture.tsx +35 -5
  831. package/src/components/ProductBlock/ProductBlockInner.mobile.tsx +1 -1
  832. package/src/components/ProductBlock/ProductBlockInner.tsx +1 -1
  833. package/src/components/ProductGallery/ProductGallery.fixture.mobile.tsx +1 -1
  834. package/src/components/ProductGallery/ProductGallery.fixture.tsx +2 -2
  835. package/src/components/ProductTile/ProductTile.fixture.tsx +1 -1
  836. package/src/components/ProductTile/ProductTile.tsx +2 -2
  837. package/src/components/PromoTile/PromoTile.fixture.tsx +2 -2
  838. package/src/components/Recommendation/Recommendation.fixture.tsx +18 -13
  839. package/src/components/Recommendation/Recommendation.tsx +7 -15
  840. package/src/components/StepsBlock/StepsBlock.fixture.mobile.tsx +38 -3
  841. package/src/components/StepsBlock/StepsBlock.fixture.tsx +1 -1
  842. package/src/components/TariffsTable/TariffsTable.example.json +1 -5
  843. package/src/components/TariffsTable/TariffsTable.fixture.mobile.tsx +2 -30
  844. package/src/components/TariffsTable/TariffsTable.fixture.tsx +1 -1
  845. package/src/components/TextBlock/TextBlock.fixture.mobile.tsx +106 -103
  846. package/src/components/TextBlock/TextBlock.fixture.tsx +65 -87
  847. package/src/components/Tile/Tile.example.json +1 -0
  848. package/src/components/Tile/Tile.fixture.tsx +2 -1
  849. package/src/components/Tile/Tile.tsx +4 -2
  850. package/src/components/Tile/TileContent.ts +5 -0
  851. package/src/content-page-repository/mapJSON.ts +11 -7
  852. package/src/content-page-repository/transformMarkdown.ts +3 -1
  853. package/src/content-page-repository/transformPicture.ts +8 -3
  854. package/src/hooks/useCreditCalculatorData.ts +2 -3
  855. package/src/hooks/useExchangeRates.ts +70 -10
  856. package/src/hooks/useTableArrowScrollControl.ts +3 -3
  857. package/src/react/IntersectionObserverTag.tsx +23 -0
  858. package/src/{setup-fixture.ts → react/setup-fixture.ts} +5 -2
  859. package/src/services/sitemap/isHrefActive.ts +2 -1
  860. package/src/ui-kit/Button/ArrowButton.tsx +1 -1
  861. package/src/ui-kit/Button/Button.fixture.mobile.tsx +1 -1
  862. package/src/ui-kit/Button/Button.fixture.tsx +1 -1
  863. package/src/ui-kit/Button/ButtonSection.tsx +3 -1
  864. package/src/ui-kit/Button/renderArrows.tsx +41 -0
  865. package/src/ui-kit/HeaderItem/HeaderItem.fixture.tsx +1 -1
  866. package/src/ui-kit/Icon/Icon.fixture.tsx +2 -2
  867. package/src/ui-kit/Img/Img.mobile.tsx +1 -0
  868. package/src/ui-kit/Input/Input.tsx +21 -5
  869. package/src/ui-kit/Input/InputProps.ts +3 -0
  870. package/src/ui-kit/InputRange/InputRange.tsx +14 -6
  871. package/src/ui-kit/List/List.fixture.tsx +1 -1
  872. package/src/ui-kit/Logo/Logo.fixture.tsx +1 -1
  873. package/src/ui-kit/SVG.tsx +2 -2
  874. package/src/ui-kit/SearchBar.mobile.tsx +1 -3
  875. package/src/ui-kit/Select/Select.tsx +17 -7
  876. package/src/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.tsx +1 -1
  877. package/src/ui-kit/SwipeListControl/SwipeListControl.tsx +9 -4
  878. package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +3 -1
  879. package/src/ui-kit/SwipeListControl/utils/getIndexParts.ts +6 -2
  880. package/src/ui-kit/TableArrowScrollControl/TableArrowScrollControl.tsx +9 -18
  881. package/src/ui-kit/TableArrowScrollControl/TableArrowScrollControlProps.ts +6 -4
  882. package/src/ui-kit/Tabs/Tabs.tsx +4 -3
  883. package/src/ui-kit/TopItem/TopItem.fixture.tsx +1 -1
  884. package/src/ui-kit/TopItem/TopItem.tsx +8 -9
  885. package/src/utils/changeHashOnScroll.ts +3 -1
  886. package/src/utils/getCurrentDate.ts +1 -1
  887. package/src/utils/roundTo.ts +4 -0
  888. package/dist/components/CreditCalculator/CreditCalculator.d.ts +0 -5
  889. package/dist/components/CreditCalculator/CreditCalculator.js +0 -14
  890. package/dist/components/CreditCalculator/CreditCalculator.js.map +0 -1
  891. package/dist/components/CreditCalculator/CreditCalculatorContent.d.ts +0 -30
  892. package/dist/components/CreditCalculator/CreditCalculatorContent.js +0 -2
  893. package/dist/components/CreditCalculator/CreditCalculatorContent.js.map +0 -1
  894. package/dist/components/CreditCalculator/CreditCalculatorForm.d.ts +0 -5
  895. package/dist/components/CreditCalculator/CreditCalculatorForm.js +0 -53
  896. package/dist/components/CreditCalculator/CreditCalculatorForm.js.map +0 -1
  897. package/dist/components/CreditCalculator/constants.d.ts +0 -7
  898. package/dist/components/CreditCalculator/constants.js +0 -10
  899. package/dist/components/CreditCalculator/constants.js.map +0 -1
  900. package/dist/components/CreditCalculator/defaultTabs.d.ts +0 -2
  901. package/dist/components/CreditCalculator/defaultTabs.js +0 -23
  902. package/dist/components/CreditCalculator/defaultTabs.js.map +0 -1
  903. package/dist/components/CreditCalculator/getCalculatorParams.d.ts +0 -7
  904. package/dist/components/CreditCalculator/getCalculatorParams.js +0 -11
  905. package/dist/components/CreditCalculator/getCalculatorParams.js.map +0 -1
  906. package/dist/components/CreditCalculator/getCreditRate.d.ts +0 -7
  907. package/dist/components/CreditCalculator/getCreditRate.js +0 -13
  908. package/dist/components/CreditCalculator/getCreditRate.js.map +0 -1
  909. package/dist/components/CreditCalculator/getCreditTermYears.d.ts +0 -1
  910. package/dist/components/CreditCalculator/getCreditTermYears.js +0 -15
  911. package/dist/components/CreditCalculator/getCreditTermYears.js.map +0 -1
  912. package/dist/components/CreditCalculator/getDefaultMonths.d.ts +0 -2
  913. package/dist/components/CreditCalculator/getDefaultMonths.js +0 -8
  914. package/dist/components/CreditCalculator/getDefaultMonths.js.map +0 -1
  915. package/dist/components/CreditCalculator/getDefaultSum.d.ts +0 -2
  916. package/dist/components/CreditCalculator/getDefaultSum.js +0 -8
  917. package/dist/components/CreditCalculator/getDefaultSum.js.map +0 -1
  918. package/dist/components/CreditCalculator/getMonthlyPayment.d.ts +0 -11
  919. package/dist/components/CreditCalculator/getMonthlyPayment.js +0 -19
  920. package/dist/components/CreditCalculator/getMonthlyPayment.js.map +0 -1
  921. package/dist/components/CreditCalculator/renderButton.d.ts +0 -1
  922. package/dist/components/CreditCalculator/renderButton.js +0 -15
  923. package/dist/components/CreditCalculator/renderButton.js.map +0 -1
  924. package/dist/components/CreditCalculator/renderMonthsInput.d.ts +0 -10
  925. package/dist/components/CreditCalculator/renderMonthsInput.js +0 -11
  926. package/dist/components/CreditCalculator/renderMonthsInput.js.map +0 -1
  927. package/dist/components/CreditCalculator/renderProposal.d.ts +0 -1
  928. package/dist/components/CreditCalculator/renderProposal.js +0 -9
  929. package/dist/components/CreditCalculator/renderProposal.js.map +0 -1
  930. package/dist/components/CreditCalculator/renderTermsButton.d.ts +0 -1
  931. package/dist/components/CreditCalculator/renderTermsButton.js +0 -9
  932. package/dist/components/CreditCalculator/renderTermsButton.js.map +0 -1
  933. package/dist/components/CreditCalculator/renderWantedSumInput.d.ts +0 -10
  934. package/dist/components/CreditCalculator/renderWantedSumInput.js +0 -18
  935. package/dist/components/CreditCalculator/renderWantedSumInput.js.map +0 -1
  936. package/dist/components/Header/HeaderSubMenuObserver.d.ts +0 -1
  937. package/dist/components/Header/HeaderSubMenuObserver.js +0 -36
  938. package/dist/components/Header/HeaderSubMenuObserver.js.map +0 -1
  939. package/dist/setup-fixture.js.map +0 -1
  940. package/lib/components/CreditCalculator/CreditCalculator.d.ts +0 -5
  941. package/lib/components/CreditCalculator/CreditCalculator.fixture.d.ts +0 -4
  942. package/lib/components/CreditCalculator/CreditCalculator.js +0 -12
  943. package/lib/components/CreditCalculator/CreditCalculator.js.map +0 -1
  944. package/lib/components/CreditCalculator/CreditCalculatorContent.d.ts +0 -30
  945. package/lib/components/CreditCalculator/CreditCalculatorContent.js +0 -2
  946. package/lib/components/CreditCalculator/CreditCalculatorContent.js.map +0 -1
  947. package/lib/components/CreditCalculator/CreditCalculatorForm.d.ts +0 -5
  948. package/lib/components/CreditCalculator/CreditCalculatorForm.js +0 -51
  949. package/lib/components/CreditCalculator/CreditCalculatorForm.js.map +0 -1
  950. package/lib/components/CreditCalculator/constants.d.ts +0 -7
  951. package/lib/components/CreditCalculator/constants.js +0 -8
  952. package/lib/components/CreditCalculator/constants.js.map +0 -1
  953. package/lib/components/CreditCalculator/defaultTabs.d.ts +0 -2
  954. package/lib/components/CreditCalculator/defaultTabs.js +0 -21
  955. package/lib/components/CreditCalculator/defaultTabs.js.map +0 -1
  956. package/lib/components/CreditCalculator/getCalculatorParams.d.ts +0 -7
  957. package/lib/components/CreditCalculator/getCalculatorParams.js +0 -8
  958. package/lib/components/CreditCalculator/getCalculatorParams.js.map +0 -1
  959. package/lib/components/CreditCalculator/getCreditRate.d.ts +0 -7
  960. package/lib/components/CreditCalculator/getCreditRate.js +0 -10
  961. package/lib/components/CreditCalculator/getCreditRate.js.map +0 -1
  962. package/lib/components/CreditCalculator/getCreditTermYears.d.ts +0 -1
  963. package/lib/components/CreditCalculator/getCreditTermYears.js +0 -12
  964. package/lib/components/CreditCalculator/getCreditTermYears.js.map +0 -1
  965. package/lib/components/CreditCalculator/getDefaultMonths.d.ts +0 -2
  966. package/lib/components/CreditCalculator/getDefaultMonths.js +0 -5
  967. package/lib/components/CreditCalculator/getDefaultMonths.js.map +0 -1
  968. package/lib/components/CreditCalculator/getDefaultSum.d.ts +0 -2
  969. package/lib/components/CreditCalculator/getDefaultSum.js +0 -5
  970. package/lib/components/CreditCalculator/getDefaultSum.js.map +0 -1
  971. package/lib/components/CreditCalculator/getMonthlyPayment.d.ts +0 -11
  972. package/lib/components/CreditCalculator/getMonthlyPayment.js +0 -16
  973. package/lib/components/CreditCalculator/getMonthlyPayment.js.map +0 -1
  974. package/lib/components/CreditCalculator/renderButton.d.ts +0 -1
  975. package/lib/components/CreditCalculator/renderButton.js +0 -12
  976. package/lib/components/CreditCalculator/renderButton.js.map +0 -1
  977. package/lib/components/CreditCalculator/renderMonthsInput.d.ts +0 -10
  978. package/lib/components/CreditCalculator/renderMonthsInput.js +0 -8
  979. package/lib/components/CreditCalculator/renderMonthsInput.js.map +0 -1
  980. package/lib/components/CreditCalculator/renderProposal.d.ts +0 -1
  981. package/lib/components/CreditCalculator/renderProposal.js +0 -6
  982. package/lib/components/CreditCalculator/renderProposal.js.map +0 -1
  983. package/lib/components/CreditCalculator/renderTermsButton.d.ts +0 -1
  984. package/lib/components/CreditCalculator/renderTermsButton.js +0 -6
  985. package/lib/components/CreditCalculator/renderTermsButton.js.map +0 -1
  986. package/lib/components/CreditCalculator/renderWantedSumInput.d.ts +0 -10
  987. package/lib/components/CreditCalculator/renderWantedSumInput.js +0 -15
  988. package/lib/components/CreditCalculator/renderWantedSumInput.js.map +0 -1
  989. package/lib/components/Header/HeaderSubMenuObserver.d.ts +0 -1
  990. package/lib/components/Header/HeaderSubMenuObserver.js +0 -34
  991. package/lib/components/Header/HeaderSubMenuObserver.js.map +0 -1
  992. package/lib/setup-fixture.js.map +0 -1
  993. package/mobile/dist/components/CreditCalculator/CreditCalculator.d.ts +0 -5
  994. package/mobile/dist/components/CreditCalculator/CreditCalculator.js +0 -14
  995. package/mobile/dist/components/CreditCalculator/CreditCalculator.js.map +0 -1
  996. package/mobile/dist/components/CreditCalculator/CreditCalculatorContent.d.ts +0 -30
  997. package/mobile/dist/components/CreditCalculator/CreditCalculatorContent.js +0 -2
  998. package/mobile/dist/components/CreditCalculator/CreditCalculatorContent.js.map +0 -1
  999. package/mobile/dist/components/CreditCalculator/CreditCalculatorForm.d.ts +0 -5
  1000. package/mobile/dist/components/CreditCalculator/CreditCalculatorForm.js +0 -53
  1001. package/mobile/dist/components/CreditCalculator/CreditCalculatorForm.js.map +0 -1
  1002. package/mobile/dist/components/CreditCalculator/constants.d.ts +0 -7
  1003. package/mobile/dist/components/CreditCalculator/constants.js +0 -10
  1004. package/mobile/dist/components/CreditCalculator/constants.js.map +0 -1
  1005. package/mobile/dist/components/CreditCalculator/defaultTabs.d.ts +0 -2
  1006. package/mobile/dist/components/CreditCalculator/defaultTabs.js +0 -23
  1007. package/mobile/dist/components/CreditCalculator/defaultTabs.js.map +0 -1
  1008. package/mobile/dist/components/CreditCalculator/getCalculatorParams.d.ts +0 -7
  1009. package/mobile/dist/components/CreditCalculator/getCalculatorParams.js +0 -11
  1010. package/mobile/dist/components/CreditCalculator/getCalculatorParams.js.map +0 -1
  1011. package/mobile/dist/components/CreditCalculator/getCreditRate.d.ts +0 -7
  1012. package/mobile/dist/components/CreditCalculator/getCreditRate.js +0 -13
  1013. package/mobile/dist/components/CreditCalculator/getCreditRate.js.map +0 -1
  1014. package/mobile/dist/components/CreditCalculator/getCreditTermYears.d.ts +0 -1
  1015. package/mobile/dist/components/CreditCalculator/getCreditTermYears.js +0 -15
  1016. package/mobile/dist/components/CreditCalculator/getCreditTermYears.js.map +0 -1
  1017. package/mobile/dist/components/CreditCalculator/getDefaultMonths.d.ts +0 -2
  1018. package/mobile/dist/components/CreditCalculator/getDefaultMonths.js +0 -8
  1019. package/mobile/dist/components/CreditCalculator/getDefaultMonths.js.map +0 -1
  1020. package/mobile/dist/components/CreditCalculator/getDefaultSum.d.ts +0 -2
  1021. package/mobile/dist/components/CreditCalculator/getDefaultSum.js +0 -8
  1022. package/mobile/dist/components/CreditCalculator/getDefaultSum.js.map +0 -1
  1023. package/mobile/dist/components/CreditCalculator/getMonthlyPayment.d.ts +0 -11
  1024. package/mobile/dist/components/CreditCalculator/getMonthlyPayment.js +0 -19
  1025. package/mobile/dist/components/CreditCalculator/getMonthlyPayment.js.map +0 -1
  1026. package/mobile/dist/components/CreditCalculator/renderButton.d.ts +0 -1
  1027. package/mobile/dist/components/CreditCalculator/renderButton.js +0 -15
  1028. package/mobile/dist/components/CreditCalculator/renderButton.js.map +0 -1
  1029. package/mobile/dist/components/CreditCalculator/renderMonthsInput.d.ts +0 -10
  1030. package/mobile/dist/components/CreditCalculator/renderMonthsInput.js +0 -11
  1031. package/mobile/dist/components/CreditCalculator/renderMonthsInput.js.map +0 -1
  1032. package/mobile/dist/components/CreditCalculator/renderProposal.d.ts +0 -1
  1033. package/mobile/dist/components/CreditCalculator/renderProposal.js +0 -9
  1034. package/mobile/dist/components/CreditCalculator/renderProposal.js.map +0 -1
  1035. package/mobile/dist/components/CreditCalculator/renderTermsButton.d.ts +0 -1
  1036. package/mobile/dist/components/CreditCalculator/renderTermsButton.js +0 -9
  1037. package/mobile/dist/components/CreditCalculator/renderTermsButton.js.map +0 -1
  1038. package/mobile/dist/components/CreditCalculator/renderWantedSumInput.d.ts +0 -10
  1039. package/mobile/dist/components/CreditCalculator/renderWantedSumInput.js +0 -18
  1040. package/mobile/dist/components/CreditCalculator/renderWantedSumInput.js.map +0 -1
  1041. package/mobile/dist/components/Header/HeaderSubMenuObserver.d.ts +0 -1
  1042. package/mobile/dist/components/Header/HeaderSubMenuObserver.js +0 -36
  1043. package/mobile/dist/components/Header/HeaderSubMenuObserver.js.map +0 -1
  1044. package/mobile/dist/setup-fixture.js.map +0 -1
  1045. package/mobile/lib/components/CreditCalculator/CreditCalculator.d.ts +0 -5
  1046. package/mobile/lib/components/CreditCalculator/CreditCalculator.js +0 -12
  1047. package/mobile/lib/components/CreditCalculator/CreditCalculator.js.map +0 -1
  1048. package/mobile/lib/components/CreditCalculator/CreditCalculatorContent.d.ts +0 -30
  1049. package/mobile/lib/components/CreditCalculator/CreditCalculatorContent.js +0 -2
  1050. package/mobile/lib/components/CreditCalculator/CreditCalculatorContent.js.map +0 -1
  1051. package/mobile/lib/components/CreditCalculator/CreditCalculatorForm.d.ts +0 -5
  1052. package/mobile/lib/components/CreditCalculator/CreditCalculatorForm.js +0 -51
  1053. package/mobile/lib/components/CreditCalculator/CreditCalculatorForm.js.map +0 -1
  1054. package/mobile/lib/components/CreditCalculator/constants.d.ts +0 -7
  1055. package/mobile/lib/components/CreditCalculator/constants.js +0 -8
  1056. package/mobile/lib/components/CreditCalculator/constants.js.map +0 -1
  1057. package/mobile/lib/components/CreditCalculator/defaultTabs.d.ts +0 -2
  1058. package/mobile/lib/components/CreditCalculator/defaultTabs.js +0 -21
  1059. package/mobile/lib/components/CreditCalculator/defaultTabs.js.map +0 -1
  1060. package/mobile/lib/components/CreditCalculator/getCalculatorParams.d.ts +0 -7
  1061. package/mobile/lib/components/CreditCalculator/getCalculatorParams.js +0 -8
  1062. package/mobile/lib/components/CreditCalculator/getCalculatorParams.js.map +0 -1
  1063. package/mobile/lib/components/CreditCalculator/getCreditRate.d.ts +0 -7
  1064. package/mobile/lib/components/CreditCalculator/getCreditRate.js +0 -10
  1065. package/mobile/lib/components/CreditCalculator/getCreditRate.js.map +0 -1
  1066. package/mobile/lib/components/CreditCalculator/getCreditTermYears.d.ts +0 -1
  1067. package/mobile/lib/components/CreditCalculator/getCreditTermYears.js +0 -12
  1068. package/mobile/lib/components/CreditCalculator/getCreditTermYears.js.map +0 -1
  1069. package/mobile/lib/components/CreditCalculator/getDefaultMonths.d.ts +0 -2
  1070. package/mobile/lib/components/CreditCalculator/getDefaultMonths.js +0 -5
  1071. package/mobile/lib/components/CreditCalculator/getDefaultMonths.js.map +0 -1
  1072. package/mobile/lib/components/CreditCalculator/getDefaultSum.d.ts +0 -2
  1073. package/mobile/lib/components/CreditCalculator/getDefaultSum.js +0 -5
  1074. package/mobile/lib/components/CreditCalculator/getDefaultSum.js.map +0 -1
  1075. package/mobile/lib/components/CreditCalculator/getMonthlyPayment.d.ts +0 -11
  1076. package/mobile/lib/components/CreditCalculator/getMonthlyPayment.js +0 -16
  1077. package/mobile/lib/components/CreditCalculator/getMonthlyPayment.js.map +0 -1
  1078. package/mobile/lib/components/CreditCalculator/renderButton.d.ts +0 -1
  1079. package/mobile/lib/components/CreditCalculator/renderButton.js +0 -12
  1080. package/mobile/lib/components/CreditCalculator/renderButton.js.map +0 -1
  1081. package/mobile/lib/components/CreditCalculator/renderMonthsInput.d.ts +0 -10
  1082. package/mobile/lib/components/CreditCalculator/renderMonthsInput.js +0 -8
  1083. package/mobile/lib/components/CreditCalculator/renderMonthsInput.js.map +0 -1
  1084. package/mobile/lib/components/CreditCalculator/renderProposal.d.ts +0 -1
  1085. package/mobile/lib/components/CreditCalculator/renderProposal.js +0 -6
  1086. package/mobile/lib/components/CreditCalculator/renderProposal.js.map +0 -1
  1087. package/mobile/lib/components/CreditCalculator/renderTermsButton.d.ts +0 -1
  1088. package/mobile/lib/components/CreditCalculator/renderTermsButton.js +0 -6
  1089. package/mobile/lib/components/CreditCalculator/renderTermsButton.js.map +0 -1
  1090. package/mobile/lib/components/CreditCalculator/renderWantedSumInput.d.ts +0 -10
  1091. package/mobile/lib/components/CreditCalculator/renderWantedSumInput.js +0 -15
  1092. package/mobile/lib/components/CreditCalculator/renderWantedSumInput.js.map +0 -1
  1093. package/mobile/lib/components/Header/HeaderSubMenuObserver.d.ts +0 -1
  1094. package/mobile/lib/components/Header/HeaderSubMenuObserver.js +0 -34
  1095. package/mobile/lib/components/Header/HeaderSubMenuObserver.js.map +0 -1
  1096. package/mobile/lib/setup-fixture.js.map +0 -1
  1097. package/mobile/src/components/CreditCalculator/CreditCalculator.example.json +0 -25
  1098. package/mobile/src/components/CreditCalculator/CreditCalculator.tsx +0 -31
  1099. package/mobile/src/components/CreditCalculator/CreditCalculatorContent.ts +0 -34
  1100. package/mobile/src/components/CreditCalculator/CreditCalculatorForm.tsx +0 -92
  1101. package/mobile/src/components/CreditCalculator/constants.ts +0 -8
  1102. package/mobile/src/components/CreditCalculator/defaultTabs.ts +0 -22
  1103. package/mobile/src/components/CreditCalculator/getCalculatorParams.ts +0 -16
  1104. package/mobile/src/components/CreditCalculator/getCreditRate.ts +0 -18
  1105. package/mobile/src/components/CreditCalculator/getCreditTermYears.spec.ts +0 -10
  1106. package/mobile/src/components/CreditCalculator/getCreditTermYears.ts +0 -15
  1107. package/mobile/src/components/CreditCalculator/getDefaultMonths.ts +0 -7
  1108. package/mobile/src/components/CreditCalculator/getDefaultSum.ts +0 -7
  1109. package/mobile/src/components/CreditCalculator/getMonthlyPayment.ts +0 -32
  1110. package/mobile/src/components/CreditCalculator/renderButton.tsx +0 -23
  1111. package/mobile/src/components/CreditCalculator/renderMonthsInput.tsx +0 -29
  1112. package/mobile/src/components/CreditCalculator/renderProposal.tsx +0 -13
  1113. package/mobile/src/components/CreditCalculator/renderTermsButton.tsx +0 -16
  1114. package/mobile/src/components/CreditCalculator/renderWantedSumInput.tsx +0 -36
  1115. package/mobile/src/components/Header/HeaderSubMenuObserver.ts +0 -48
  1116. package/src/components/CreditCalculator/CreditCalculator.example.json +0 -25
  1117. package/src/components/CreditCalculator/CreditCalculator.fixture.tsx +0 -32
  1118. package/src/components/CreditCalculator/CreditCalculator.tsx +0 -31
  1119. package/src/components/CreditCalculator/CreditCalculatorContent.ts +0 -34
  1120. package/src/components/CreditCalculator/CreditCalculatorForm.tsx +0 -92
  1121. package/src/components/CreditCalculator/constants.ts +0 -8
  1122. package/src/components/CreditCalculator/defaultTabs.ts +0 -22
  1123. package/src/components/CreditCalculator/getCalculatorParams.ts +0 -16
  1124. package/src/components/CreditCalculator/getCreditRate.ts +0 -18
  1125. package/src/components/CreditCalculator/getCreditTermYears.spec.ts +0 -10
  1126. package/src/components/CreditCalculator/getCreditTermYears.ts +0 -15
  1127. package/src/components/CreditCalculator/getDefaultMonths.ts +0 -7
  1128. package/src/components/CreditCalculator/getDefaultSum.ts +0 -7
  1129. package/src/components/CreditCalculator/getMonthlyPayment.ts +0 -32
  1130. package/src/components/CreditCalculator/renderButton.tsx +0 -23
  1131. package/src/components/CreditCalculator/renderMonthsInput.tsx +0 -29
  1132. package/src/components/CreditCalculator/renderProposal.tsx +0 -13
  1133. package/src/components/CreditCalculator/renderTermsButton.tsx +0 -16
  1134. package/src/components/CreditCalculator/renderWantedSumInput.tsx +0 -36
  1135. package/src/components/Header/HeaderSubMenuObserver.ts +0 -48
@@ -473,9 +473,9 @@
473
473
  },
474
474
  };
475
475
 
476
- const Headline = JSX(({ bgColorHeadline = 'transparent', align = 'left', className = '', title, description, anchor = null, }) => {
476
+ const Headline = JSX(({ bgColorHeadline = 'transparent', align = 'left', className = '', title, description, anchor = null, headingType = 'h2', }) => {
477
477
  const STYLE_MAPS = HEADLINE_BLOCK_STYLE_MAPS[bgColorHeadline];
478
- return (jsxs("section", { className: `p-[50px] ${STYLE_MAPS.background} ${className}`, id: anchor, children: [title ? (jsx(Heading, { headingType: "h2", className: `text-primary-text ${STYLE_MAPS.text} ${ALIGN_TEXT[align]}`, title: title })) : null, description ? (jsx("p", { className: `font-normal text-base mt-4 ${STYLE_MAPS.text} ${ALIGN_TEXT[align]}`, children: description })) : null] }));
478
+ return (jsxs("section", { className: `p-[50px] flex flex-col gap-4 ${STYLE_MAPS.background} ${className}`, id: anchor, children: [title ? (jsx(Heading, { headingType: headingType, className: `text-primary-text ${STYLE_MAPS.text} ${ALIGN_TEXT[align]}`, title: title })) : null, description ? (jsx("p", { className: `text-base ${STYLE_MAPS.text} ${ALIGN_TEXT[align]}`, children: description })) : null] }));
479
479
  });
480
480
 
481
481
  const LinkDocsListItemBase = JSX(({ className, iconClassName, textClassName, suffixClassName, doc, icon }) => {
@@ -489,8 +489,9 @@
489
489
  return prefix + extension + size;
490
490
  };
491
491
  const getExtFromHref = (href) => {
492
- if (!href)
492
+ if (!href) {
493
493
  return '';
494
+ }
494
495
  const index = href.lastIndexOf('.');
495
496
  return index !== -1 ? href.substring(index + 1) : '';
496
497
  };
@@ -501,21 +502,12 @@
501
502
  return documents?.length ? (jsx("div", { className: className, role: "list", children: documents.map((doc, i) => (jsx("div", { className: columnsMode === 'double' ? 'basis-[calc(50%-20px)]' : '', role: "listitem", children: jsx(LinkDocsListItem, { className: "group flex align-middle h-fit w-fit text-primary-text no-underline hover:text-primary-main", doc: doc, icon: icon }) }, String(i)))) })) : null;
502
503
  });
503
504
 
504
- const titleAlignStyleMap = {
505
- left: 'text-left',
506
- center: 'text-center',
507
- right: 'text-right',
508
- };
509
- const titleMarginsStyleMap = {
510
- double: 'mb-8',
511
- single: 'mb-[26px]',
512
- };
513
505
  const linkColumnsModeStyleMap = {
514
506
  double: 'flex gap-x-5 gap-y-[26px] flex-wrap',
515
507
  single: 'flex gap-3.5 flex-col',
516
508
  };
517
- const LinkDocs = JSX(({ className = '', title, subtitle, align, documents, icon = { icon: 'DocIcon' }, columnsMode = 'double', anchor = null, }) => {
518
- return (jsxs("section", { className: `font-sans text-primary-text p-[50px] bg-white ${className}`, id: anchor, children: [title ? (jsx(Heading, { headingType: "h2", className: `${subtitle ? 'mb-2.5' : titleMarginsStyleMap[columnsMode]} ${titleAlignStyleMap[align ?? 'center']}`, title: title })) : null, subtitle ? (jsx("h3", { className: `text-base mt-0 font-normal ${titleMarginsStyleMap[columnsMode]} ${titleAlignStyleMap[align ?? 'center']}`, children: subtitle })) : null, jsx(LinkDocsList, { className: linkColumnsModeStyleMap[columnsMode], columnsMode: columnsMode, documents: documents, icon: icon })] }));
509
+ const LinkDocs = JSX(({ context, className = '', title, description, align = 'center', documents, icon = { icon: 'DocIcon' }, columnsMode = 'double', anchor = null, }) => {
510
+ return (jsxs("section", { className: `font-sans text-primary-text p-[50px] bg-white ${className}`, id: anchor, children: [jsx(Headline, { className: "!p-0", title: title, description: description, context: context, align: align, headingType: "h3" }), jsx(LinkDocsList, { className: `mt-8 ${linkColumnsModeStyleMap[columnsMode]}`, columnsMode: columnsMode, documents: documents, icon: icon })] }));
519
511
  });
520
512
 
521
513
  const pictureTextStyleMap = {
@@ -654,8 +646,9 @@
654
646
  return buttons?.length ? (jsx("div", { className: className, children: buttons.map((button, index) => renderButton$2(useLink({ router, handlerDecorator }, button), index)) })) : null;
655
647
  });
656
648
  function renderButton$2({ icon, ...button }, i) {
657
- if (!button?.text)
649
+ if (!button?.text) {
658
650
  return;
651
+ }
659
652
  return icon ? (jsx(Button, { appendLeft: jsx(Img, { image: icon, width: "24", height: "24", asSVG: true }), ...button }, String(i))) : (jsx(Button, { ...button }, String(i)));
660
653
  }
661
654
 
@@ -735,7 +728,7 @@
735
728
 
736
729
  const ProductBlockInner = JSX(({ className = '', context, title, headingType = 'h2', description, benefits, benefitsVersion = 'normal', buttons, image, items, version = 'primary', isDotted = true, textBlockClassName = '', }) => {
737
730
  const textColor = version === 'secondary' ? 'text-white' : 'text-primary-text';
738
- return (jsxs("div", { className: `flex grow justify-between items-stretch ${className}`, children: [jsx("div", { className: `flex flex-col ${textBlockClassName}`, children: jsxs(BaseTile, { context: context, title: getTitle(title, headingType), buttons: getButtons(context, buttons), children: [description ? (jsx(Description, { className: `mt-4 max-w-[600px] text-md font-light ${textColor}`, description: description })) : null, benefits?.filter((items) => items.label)?.length ? (jsx("div", { className: "flex gap-6 mt-6", children: benefits.map((benefit, i) => renderBenefit$1({ benefit, version, benefitsVersion }, i)) })) : null, items?.length ? (jsx(List, { className: "mt-5 text-title-2xs font-light", items: items, itemClassName: "mb-[7px]", version: version, isDotted: isDotted })) : null] }) }), image?.src && jsx(Img, { className: "mt-[-50px]", image: image })] }));
731
+ return (jsxs("div", { className: `flex grow justify-between items-stretch ${className}`, children: [jsx("div", { className: `flex flex-col ${textBlockClassName}`, children: jsxs(BaseTile, { context: context, title: getTitle(title, headingType), buttons: getButtons(context, buttons), children: [description ? (jsx(Description, { className: `mt-4 max-w-[600px] text-md font-light ${textColor}`, description: description })) : null, benefits?.filter((_) => _.label)?.length ? (jsx("div", { className: "flex gap-6 mt-6", children: benefits.map((benefit, i) => renderBenefit$1({ benefit, version, benefitsVersion }, i)) })) : null, items?.length ? (jsx(List, { className: "mt-5 text-title-2xs font-light", items: items, itemClassName: "mb-[7px]", version: version, isDotted: isDotted })) : null] }) }), image?.src && jsx(Img, { className: "mt-[-50px]", image: image })] }));
739
732
  });
740
733
  const getTitle = (title, headingType) => {
741
734
  return title ? (jsx(Heading, { headingType: headingType, title: title, className: "whitespace-pre-wrap max-w-[600px]" })) : null;
@@ -787,9 +780,9 @@
787
780
  };
788
781
  const TextBlock = JSX(({ title, description, blockVersion = 'primary', iconVersion, image, className, anchor = null, }) => {
789
782
  const textBlockStyleMap = textBlockStyleMaps[blockVersion];
790
- return (jsxs("section", { className: `font-sans px-9 py-4 flex ${textBlockStyleMap.background} ${className || ''}`, id: anchor, children: [iconVersion === 'small' ? renderIcon$1(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] })] }));
783
+ return (jsxs("section", { className: `font-sans px-9 py-4 flex ${textBlockStyleMap.background} ${className || ''}`, id: anchor, 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] })] }));
791
784
  });
792
- function renderIcon$1(className) {
785
+ function renderIcon(className) {
793
786
  return (jsx("div", { className: "pt-1.5 pl-1 pr-4", children: jsx("div", { className: `rounded-full h-4 w-4 text-center text-xs ${className}`, children: "i" }) }));
794
787
  }
795
788
  function renderImage(image) {
@@ -833,12 +826,12 @@
833
826
  secondary: 'bg-primary-main text-white',
834
827
  };
835
828
  const Tile = JSX((props) => {
836
- const { context, title, headingType = 'h3', description, items, children, buttons, image, className = '', version = 'primary', role, anchor = null, } = props;
829
+ const { context, title, headingType = 'h3', description, items, children, buttons, image, isDotted = true, className = '', version = 'primary', role, anchor = null, } = props;
837
830
  return (jsx("section", { className: `overflow-hidden font-sans p-9 pr-3 box-border ${className} ${tileStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, role: role, id: anchor, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: headingType, as: "h3", title: title, className: `whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}
838
- ${version === 'primary' ? 'text-primary-text' : ''}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons.map((button) => ({ ...button, className: 'w-[158px]' })), className: "flex mt-9 gap-3" })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description ? (jsx(Description, { className: "max-w-[600px] text-title-new-sm font-light", description: description })) : null, children, renderList$1(items, version)] }) }));
831
+ ${version === 'primary' ? 'text-primary-text' : ''}` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons.map((button) => ({ ...button, className: 'w-[158px]' })), className: "flex mt-9 gap-3" })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description ? (jsx(Description, { className: "max-w-[600px] text-title-new-sm font-light", description: description })) : null, children, renderList$1(items, version, isDotted)] }) }));
839
832
  });
840
- function renderList$1(items, version) {
841
- return items?.length ? (jsx(List, { items: items, itemClassName: "text-title-2xs font-light mt-2", version: version === 'primary' ? 'tile' : 'tile-white' })) : null;
833
+ function renderList$1(items, version, isDotted) {
834
+ return items?.length ? (jsx(List, { items: items, isDotted: isDotted, itemClassName: "text-title-2xs font-light mt-2", version: version === 'primary' ? 'tile' : 'tile-white' })) : null;
842
835
  }
843
836
 
844
837
  const productTileStyleMap = {
@@ -846,11 +839,11 @@
846
839
  secondary: 'bg-primary-main text-white',
847
840
  };
848
841
  const ProductTile = JSX(({ context, className = '', title, headingType = 'h3', description, additionalDescription, benefits, buttons, image, version = 'primary', anchor = null, }) => {
849
- return (jsx("section", { className: `bg-white overflow-hidden text-primary-text font-sans p-9 box-border ${className} ${productTileStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, id: anchor, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: headingType, as: "h3", title: title, className: `whitespace-pre-wrap max-w-[600px]` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description ? (jsx(Description, { className: "mt-4 max-w-[600px]", description: description })) : null, renderBenefits(benefits, version), additionalDescription
842
+ return (jsx("section", { className: `bg-white overflow-hidden text-primary-text font-sans p-9 box-border ${className} ${productTileStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, id: anchor, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: headingType, as: "h3", title: title, className: `whitespace-pre-wrap max-w-[600px]` })) : null, buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description ? (jsx(Description, { className: "mt-4 max-w-[600px]", description: description })) : null, renderBenefits(benefits || [], version), additionalDescription
850
843
  ? renderAdditionalDescription(additionalDescription, version)
851
844
  : null] }) }));
852
845
  });
853
- function renderBenefits(benefits = [], version) {
846
+ function renderBenefits(benefits, version) {
854
847
  return (jsxs("div", { className: "flex mt-5 mb-1", children: [benefits.length ? jsx("div", { className: "mr-8", children: benefits.map(renderBenefitLabel) }) : null, benefits.length ? (jsx("div", { className: "pt-1", children: benefits.map((_, i) => renderBenefitDescription(_, i, version)) })) : null] }));
855
848
  }
856
849
  function renderBenefitLabel(benefit, i) {
@@ -871,10 +864,6 @@
871
864
  return jsx("div", { className: `text-sm mt-2.5 ${descStyleMap[version]}`, children: additionalDescription });
872
865
  }
873
866
 
874
- const ArrowButton = JSX(({ className, disabled, ...rest }) => (jsx(Button, { rounded: true, className: `shadow-[0_4px_25px_rgba(0,0,0,0.07)] w-12 h-12 min-h-12 max-h-12 flex items-center justify-center ${disabled
875
- ? 'bg-secondary-light text-secondary-text'
876
- : 'bg-white text-primary-text hover:text-primary-main'} ${className || ''}`, disabled: disabled, ...rest, children: jsx(Img, { className: "w-4 h-4 min-w-4 min-h-4 rounded-full box-border", image: { icon: 'ArrowLeftIcon', iconVersion: 'black' }, width: "16", height: "16", asSVG: true }) })));
877
-
878
867
  const cardVersionMap = {
879
868
  primary: 'bg-white text-secondary-text',
880
869
  secondary: 'bg-primary-main text-white',
@@ -894,7 +883,7 @@
894
883
 
895
884
  const GalleryCardInner = JSX(({ title, description, image, items, button, version, isDotted = true }) => {
896
885
  const titleStyleClasses = getTitleStyle(version);
897
- return (jsxs("div", { className: "h-full flex flex-col justify-between text-center", children: [jsxs("div", { children: [image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: image }) })) : null, title ? renderCardTitle(title, titleStyleClasses) : null, description ? (jsx("div", { className: `font-light text-m-md-new ${title ? 'mt-2' : ''}`, children: description })) : null, items?.length ? renderItems(items, version, isDotted) : null] }), button?.text ? renderButton$1(button) : null] }));
886
+ return (jsxs("div", { className: "h-full flex flex-col justify-between text-center", children: [jsxs("div", { children: [image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: image }) })) : null, title ? renderCardTitle(title, titleStyleClasses) : null, description ? (jsx("div", { className: `font-light text-m-md-new ${title ? 'mt-2' : ''}`, children: description })) : null, items?.length ? renderItems(items, isDotted, version) : null] }), button?.text ? renderButton$1(button) : null] }));
898
887
  });
899
888
  function renderButton$1(button) {
900
889
  return (jsx(Button, { className: "mt-6 w-full", appendLeft: button.icon && jsx(Img, { image: button.icon, width: "24px", height: "24px", asSVG: true }), ...button }));
@@ -902,7 +891,7 @@
902
891
  function renderCardTitle(title, className) {
903
892
  return jsx("div", { className: `text-xl m-0 ${className}`, children: title });
904
893
  }
905
- function renderItems(items, version = 'primary', isDotted) {
894
+ function renderItems(items, isDotted, version = 'primary') {
906
895
  return (jsx(List, { className: `max-w-[308px] mt-2 text-sm ${version === 'primary' ? '!text-secondary-text' : ''}`, itemClassName: "mt-1 first:mt-0", items: items.filter((item) => item?.text).map((item) => item.text), isDotted: isDotted, version: version }));
907
896
  }
908
897
  function getTitleStyle(version) {
@@ -919,6 +908,14 @@
919
908
  items-stretch ${cardStyleMap[version]} ${cardVersionMap[card.version ?? 'primary']} w-full col-span-4`, role: "listitem", children: jsx(GalleryCardInner, { ...card }) }, String(i)));
920
909
  }
921
910
 
911
+ const ArrowButton = JSX(({ className, disabled, ...rest }) => (jsx(Button, { rounded: true, className: `shadow-[0_4px_25px_rgba(0,0,0,0.07)] w-12 h-12 min-h-12 max-h-12 flex items-center justify-center ${disabled
912
+ ? 'bg-secondary-light text-secondary-text'
913
+ : 'bg-white text-primary-text hover:text-primary-main'} ${className || ''}`, disabled: disabled, ...rest, children: jsx(Img, { className: "w-4 h-4 min-w-4 min-h-4 rounded-full box-border", image: { icon: 'ArrowLeftIcon', iconVersion: 'black' }, width: "16", height: "16", asSVG: true }) })));
914
+
915
+ function renderArrows({ handler, isShown, btnClass, className = '', isDisabled = false, }) {
916
+ return (jsxs("div", { children: [isShown[0] || isDisabled ? (jsx(ArrowButton, { className: `absolute z-10 ${btnClass[0]} ${className}`, onClick: handler[0], ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left", disabled: !isShown[0] })) : null, isShown[1] || isDisabled ? (jsx(ArrowButton, { className: `absolute z-10 rotate-180 ${btnClass[1]} ${className}`, onClick: handler[1], ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right", disabled: !isShown[1] })) : null] }));
917
+ }
918
+
922
919
  const GalleryInner = JSX(({ context, cards = [], className = '', version = 'normal', anchor = null, ...rest }) => {
923
920
  const [activeCardIndex, setActiveCardIndex] = context.useState(0);
924
921
  const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
@@ -927,7 +924,12 @@
927
924
  const showNextButton = isGalleryScrollAvailable &&
928
925
  cards?.length - activeCardIndex > galleryLengthForScrollMap[version];
929
926
  const showPrevButton = isGalleryScrollAvailable && activeCardIndex > 0;
930
- return (jsxs("section", { className: `relative font-sans text-primary-text bg-white p-[42px] overflow-hidden ${className}`, id: anchor, children: [jsx(GalleryContainer, { context: context, cards: cards, version: version, activeCardIndex: activeCardIndex, ...rest }), showPrevButton ? (jsx(ArrowButton, { className: "absolute top-1/2 left-8 z-10 mt-[25px]", onClick: handlePrevClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left" })) : null, showNextButton ? (jsx(ArrowButton, { className: "absolute top-1/2 right-8 z-10 mt-[25px] rotate-180", onClick: handleNextClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right" })) : null, jsx("div", { className: "absolute top-0 left-0 bottom-0 w-[84px] bg-opacity-from-white" }), jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[100px] bg-opacity-to-white" })] }));
927
+ return (jsxs("section", { className: `relative font-sans text-primary-text bg-white p-[42px] overflow-hidden ${className}`, id: anchor, children: [jsx(GalleryContainer, { context: context, cards: cards, version: version, activeCardIndex: activeCardIndex, ...rest }), renderArrows({
928
+ handler: [handlePrevClick, handleNextClick],
929
+ isShown: [showPrevButton, showNextButton],
930
+ btnClass: ['left-8', 'right-8'],
931
+ className: 'top-1/2',
932
+ }), jsx("div", { className: "absolute top-0 left-0 bottom-0 w-[82px] bg-opacity-from-white" }), jsx("div", { className: "absolute top-0 right-0 bottom-0 w-[82px] bg-opacity-to-white" })] }));
931
933
  });
932
934
 
933
935
  const Gallery = JSX((props) => jsx(GalleryInner, { ...props, version: "normal" }));
@@ -1053,12 +1055,21 @@
1053
1055
  const cellClasses = `mx-7 h-full ${DIVIDER_CLASSES$1} ${isFillGradient && isFirstRow ? 'border-t' : ''} ${!isLastRow ? 'border-solid' : 'border-b-0'}`;
1054
1056
  return (jsx("div", { className: cellWrapperClasses, role: "cell", children: jsx("div", { className: cellClasses, children: cell.map((item, i) => renderCellInner$1(item, i, isFillGradient)) }) }));
1055
1057
  });
1056
- const renderCellInner$1 = ({ label, description }, i, isFillGradient) => (jsxs("div", { className: "first:pt-7 pt-6 last:pb-7", children: [label ? (jsx("h4", { className: `text-xl font-medium m-0 ${isFillGradient ? 'text-white' : ''}`, children: label })) : null, description ? (jsx("div", { className: `text-sm opacity-80 ${isFillGradient ? 'text-white' : 'text-secondary-text'}`, children: description })) : null] }, String(i)));
1058
+ const labelStyle = (isFillGradient = false) => `text-xl font-medium m-0 ${isFillGradient ? 'text-white' : ''}`;
1059
+ const descriptionStyle = (isFillGradient = false) => `text-sm opacity-80 ${isFillGradient ? 'text-white' : 'text-secondary-text'}`;
1060
+ const renderCellInner$1 = ({ label, description }, i, isFillGradient) => (jsxs("div", { className: "first:pt-7 pt-6 last:pb-7", children: [label ? jsx("h4", { className: labelStyle(isFillGradient), children: label }) : null, description ? jsx("div", { className: descriptionStyle(isFillGradient), children: description }) : null] }, String(i)));
1057
1061
 
1058
- const TableRow = JSX(({ row: { header, data }, activeCardIndex, isColoredFirstColumn, isFirstRow, isLastRow }) => (jsxs(TableRowContainer, { children: [header?.title ? (jsx("div", { className: `text-sm py-7 ${DIVIDER_CLASSES$1} ${FIRST_CELL_CLASSES$1} ${!isLastRow ? 'border-solid' : 'border-b-0'}`, children: header.title })) : null, data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$1, children: data.map((cell, i) => (jsx(TableCell, { cell: cell, isFirstRow: isFirstRow, isLastRow: isLastRow, isFillGradient: isColoredFirstColumn && i === 0 }, String(i)))) })) : null] })));
1062
+ const titleStyle = (isLastRow = false) => `text-sm py-7 ${DIVIDER_CLASSES$1} ${FIRST_CELL_CLASSES$1} ${isLastRow ? 'border-b-0' : 'border-solid'}`;
1063
+ const TableRow = JSX(({ row: { header, data }, activeCardIndex, isColoredFirstColumn, isFirstRow, isLastRow }) => (jsxs(TableRowContainer, { children: [header?.title ? jsx("div", { className: titleStyle(isLastRow), children: header.title }) : null, data?.length ? (jsx(TableCarouselContainer, { activeCardIndex: activeCardIndex, columnWidth: COLUMN_WIDTH$1, children: data.map((cell, i) => (jsx(TableCell, { cell: cell, isFirstRow: isFirstRow, isLastRow: isLastRow, isFillGradient: isColoredFirstColumn && i === 0 }, String(i)))) })) : null] })));
1059
1064
 
1060
- const TableArrowScrollControl = JSX(({ isScrollAvailable, onNextClick, onPrevClick, showNextButton, showPrevButton }) => {
1061
- return isScrollAvailable ? (jsx("div", { children: jsxs("div", { className: "absolute top-7 right-7 z-10", children: [jsx(ArrowButton, { className: "mt-4 rotate-180", onClick: onNextClick, disabled: !showNextButton, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right" }), jsx(ArrowButton, { className: "mt-4", onClick: onPrevClick, disabled: !showPrevButton, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left" })] }) })) : null;
1065
+ const TableArrowScrollControl = JSX(({ isScrollAvailable, handleNextClick, handlePrevClick, showNextButton, showPrevButton }) => {
1066
+ return isScrollAvailable ? (jsx("div", { children: renderArrows({
1067
+ handler: [handlePrevClick, handleNextClick],
1068
+ isShown: [showPrevButton, showNextButton],
1069
+ btnClass: ['top-[108px]', 'top-11'],
1070
+ className: 'right-7',
1071
+ isDisabled: true,
1072
+ }) })) : null;
1062
1073
  });
1063
1074
 
1064
1075
  const ComparisonTableRows = JSX(({ rowData, activeCardIndex, isColoredFirstColumn, ...tableArrowScrollProps }) => {
@@ -1066,12 +1077,12 @@
1066
1077
  });
1067
1078
 
1068
1079
  const useTableArrowScrollControl = ({ columnsLength, colsLengthForScroll, activeCardIndex, setActiveCardIndex, }) => {
1069
- const onNextClick = () => setActiveCardIndex(activeCardIndex + 1);
1070
- const onPrevClick = () => setActiveCardIndex(activeCardIndex - 1);
1080
+ const handleNextClick = () => setActiveCardIndex(activeCardIndex + 1);
1081
+ const handlePrevClick = () => setActiveCardIndex(activeCardIndex - 1);
1071
1082
  const isScrollAvailable = columnsLength > colsLengthForScroll;
1072
1083
  const showNextButton = isScrollAvailable && columnsLength - activeCardIndex > colsLengthForScroll;
1073
1084
  const showPrevButton = Boolean(isScrollAvailable && activeCardIndex > 0);
1074
- return { onNextClick, onPrevClick, isScrollAvailable, showNextButton, showPrevButton };
1085
+ return { handleNextClick, handlePrevClick, isScrollAvailable, showNextButton, showPrevButton };
1075
1086
  };
1076
1087
 
1077
1088
  const ComparisonTableBody = JSX(({ context, columns, rowHeaders, isShowAllRow, visibleRowLength, isColoredFirstColumn }) => {
@@ -1120,7 +1131,7 @@
1120
1131
  }
1121
1132
 
1122
1133
  const SVG = JSX(({ className, viewBox, fill = 'none', width, height, paths, ...commonOptions }) => {
1123
- return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: className, viewBox: viewBox, fill: fill, width: width, height: height, children: paths.map(({ d, fill, ...options }, i) => (jsx("path", { d: d, fill: fill || 'currentColor', ...commonOptions, ...options }, i))) }));
1134
+ return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: className, viewBox: viewBox, fill: fill, width: width, height: height, children: paths.map(({ d, fill: pathFill, ...options }, i) => (jsx("path", { d: d, fill: pathFill || 'currentColor', ...commonOptions, ...options }, i))) }));
1124
1135
  });
1125
1136
 
1126
1137
  const CHECK_PATHS = [
@@ -1141,83 +1152,90 @@
1141
1152
  return (jsxs("div", { className: `mb-5 ${className}`, children: [title ? jsx("div", { className: "text-base font-light", children: title }) : null, value ? (jsxs("div", { className: "text-title font-normal", children: [prefix, " ", addSpacesBetweenNumbers(Math.round(value)), " ", postfix] })) : null] }));
1142
1153
  });
1143
1154
 
1144
- const DEFAULT_MIN_SUM$1 = 30000;
1145
- const DEFAULT_MAX_SUM$1 = 3000000;
1146
- const DEFAULT_SUM$1 = (DEFAULT_MAX_SUM$1 - DEFAULT_MIN_SUM$1) / 2;
1147
- const DEFAULT_MIN_MONTHS$1 = 1;
1148
- const DEFAULT_MAX_MONTHS$1 = 84;
1149
- const DEFAULT_MONTHS$1 = Math.round((DEFAULT_MAX_MONTHS$1 - DEFAULT_MIN_MONTHS$1) / 2);
1150
- const MONTHS_IN_YEAR$1 = 12;
1155
+ const DEFAULT_MIN_SUM = 30000;
1156
+ const DEFAULT_MAX_SUM = 3000000;
1157
+ const DEFAULT_SUM = (DEFAULT_MAX_SUM - DEFAULT_MIN_SUM) / 2;
1158
+ const DEFAULT_MIN_MONTHS = 1;
1159
+ const DEFAULT_MAX_MONTHS = 84;
1160
+ const DEFAULT_MONTHS = Math.round((DEFAULT_MAX_MONTHS - DEFAULT_MIN_MONTHS) / 2);
1161
+ const MONTHS_IN_YEAR = 12;
1151
1162
 
1152
1163
  const InputRange = JSX(({ className, title, items = [], min = 1, max = 100, step = 1, value = min, onChange }) => {
1153
- const handleChange = (value) => {
1154
- if (!onChange)
1164
+ const handleChange = (_) => {
1165
+ if (!onChange) {
1155
1166
  return;
1156
- const sanitizedValue = Number(value.replace(/\D/g, ''));
1167
+ }
1168
+ const sanitizedValue = Number(_.replace(/\D/g, ''));
1157
1169
  onChange(sanitizedValue);
1158
1170
  };
1159
1171
  const inputStyle = {
1160
1172
  backgroundSize: `${(((value - min) * 100) / (max - min)).toFixed(2)}% 100%`,
1161
1173
  };
1162
1174
  const handleBlur = () => {
1163
- if (!onChange)
1175
+ if (!onChange) {
1164
1176
  return;
1165
- if (value < min)
1177
+ }
1178
+ if (value < min) {
1166
1179
  onChange(min);
1167
- if (value > max)
1180
+ }
1181
+ if (value > max) {
1168
1182
  onChange(max);
1183
+ }
1169
1184
  };
1170
1185
  return (jsxs("div", { className: className, children: [jsxs("label", { className: "block relative", children: [title ? jsx("span", { className: "text-base text-secondary-text pl-4", children: title }) : null, jsx("input", { className: `m-0 mt-[5px] font-sans text-title w-full h-14 border border-solid border-main-stroke rounded-md
1171
1186
  outline-none p-0 pl-4 box-border text-primary-text`, value: addSpacesBetweenNumbers(value), onChange: (e) => handleChange(e.target.value), onBlur: handleBlur }), jsx("div", { className: "absolute inset-x-0 bottom-[-4px] px-4 leading-[18px]", children: jsx("input", { className: "box-border w-full m-0 cursor-pointer slider", type: "range", min: min, max: max, step: step, value: value, onChange: (e) => handleChange(e.target.value), style: inputStyle }) })] }), jsx("div", { className: "flex justify-between my-3", children: items.map((item, i) => (jsx("span", { className: "text-sm leading-[14px] text-secondary-text pl-4", children: item }, String(i)))) })] }));
1172
1187
  });
1173
1188
 
1174
- const STEP_MONEY$3 = 1000;
1175
- function renderWantedSumInput$1(props) {
1189
+ const STEP_MONEY$2 = 1000;
1190
+ function renderWantedSumInput(props) {
1176
1191
  const { title, className = '', calculatorParams, moneyValue, defaultSum, setMoneyValue, isShowItems = true, } = props;
1177
- const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM$1;
1178
- const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM$1;
1192
+ const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM;
1193
+ const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM;
1179
1194
  const items = [
1180
1195
  `От ${addSpacesBetweenNumbers(minSum)} ₽`,
1181
1196
  `До ${addSpacesBetweenNumbers(maxSum)} ₽`,
1182
1197
  ];
1183
- return (jsx(InputRange, { className: className, title: title, items: isShowItems ? items : [], min: minSum, max: maxSum, step: STEP_MONEY$3, value: moneyValue || defaultSum, onChange: setMoneyValue }));
1198
+ return (jsx(InputRange, { className: className, title: title, items: isShowItems ? items : [], min: minSum, max: maxSum, step: STEP_MONEY$2, value: moneyValue || defaultSum, onChange: setMoneyValue }));
1184
1199
  }
1185
1200
 
1186
- const DEFAULT_RATE$1 = 10.2;
1187
- const getCreditRate$1 = (params) => {
1201
+ const DEFAULT_RATE = 10.2;
1202
+ const getCreditRate = (params) => {
1188
1203
  const { calculatorParams, isInsurance } = params;
1189
- if (!calculatorParams)
1190
- return DEFAULT_RATE$1;
1204
+ if (!calculatorParams) {
1205
+ return DEFAULT_RATE;
1206
+ }
1191
1207
  return isInsurance
1192
- ? calculatorParams?.rateWithInsurance || DEFAULT_RATE$1
1193
- : calculatorParams?.rateWithoutInsurance || DEFAULT_RATE$1;
1208
+ ? calculatorParams?.rateWithInsurance || DEFAULT_RATE
1209
+ : calculatorParams?.rateWithoutInsurance || DEFAULT_RATE;
1194
1210
  };
1195
1211
 
1196
- const getCalculatorParams$1 = (params) => {
1212
+ const getCalculatorParams = (params) => {
1197
1213
  const { tableRows, isAnnuity = false } = params;
1198
- if (!tableRows)
1214
+ if (!tableRows) {
1199
1215
  return {};
1216
+ }
1200
1217
  const calculatorParams = tableRows.find((row) => row.isAnnuity === isAnnuity);
1201
1218
  return calculatorParams || {};
1202
1219
  };
1203
1220
 
1204
- const getDefaultSum$1 = (calculatorParams) => calculatorParams.maxSum && calculatorParams.minSum
1221
+ const getDefaultSum = (calculatorParams) => calculatorParams.maxSum && calculatorParams.minSum
1205
1222
  ? (calculatorParams.maxSum - calculatorParams.minSum) / 2
1206
- : DEFAULT_SUM$1;
1223
+ : DEFAULT_SUM;
1207
1224
 
1208
- const getDefaultMonths$1 = (calculatorParams) => calculatorParams.maxMonths && calculatorParams.minMonths
1225
+ const getDefaultMonths = (calculatorParams) => calculatorParams.maxMonths && calculatorParams.minMonths
1209
1226
  ? Math.round((calculatorParams.maxMonths - calculatorParams.minMonths) / 2)
1210
- : DEFAULT_MONTHS$1;
1227
+ : DEFAULT_MONTHS;
1211
1228
 
1212
1229
  const clamp = (value, min, max) => Math.max(min, Math.min(value, max));
1213
1230
 
1214
- const getMonthlyPayment$1 = (params) => {
1231
+ const getMonthlyPayment = (params) => {
1215
1232
  const { calculatorParams, paymentType, rate, sum, months } = params;
1216
- if (!calculatorParams)
1233
+ if (!calculatorParams) {
1217
1234
  return 0;
1218
- const finalSum = clamp(sum, calculatorParams.minSum || DEFAULT_MIN_SUM$1, calculatorParams.maxSum || DEFAULT_MAX_SUM$1);
1235
+ }
1236
+ const finalSum = clamp(sum, calculatorParams.minSum || DEFAULT_MIN_SUM, calculatorParams.maxSum || DEFAULT_MAX_SUM);
1219
1237
  if (paymentType === 'annuity') {
1220
- const annuityCoef = Number(rate) / (MONTHS_IN_YEAR$1 * 100);
1238
+ const annuityCoef = Number(rate) / (MONTHS_IN_YEAR * 100);
1221
1239
  return finalSum * (annuityCoef + annuityCoef / (Math.pow(1 + annuityCoef, months) - 1));
1222
1240
  }
1223
1241
  else {
@@ -1225,14 +1243,14 @@
1225
1243
  }
1226
1244
  };
1227
1245
 
1228
- const STEP_MONTHS$1 = 1;
1229
- function renderMonthsInput$1(props) {
1246
+ const STEP_MONTHS = 1;
1247
+ function renderMonthsInput(props) {
1230
1248
  const { title, minMonths, maxMonths, monthsValue, defaultMonths, setMonthsValue } = props;
1231
1249
  const monthText = (month) => {
1232
1250
  const text = Number(month) % 10 === 1 ? 'месяца' : 'месяцев';
1233
1251
  return `${month} ${text}`;
1234
1252
  };
1235
- return (jsx(InputRange, { className: "mt-6", title: title, items: [`От ${monthText(minMonths)}`, `До ${monthText(maxMonths)}`], min: minMonths, max: maxMonths, step: STEP_MONTHS$1, value: monthsValue || defaultMonths, onChange: setMonthsValue }));
1253
+ return (jsx(InputRange, { className: "mt-6", title: title, items: [`От ${monthText(minMonths)}`, `До ${monthText(maxMonths)}`], min: minMonths, max: maxMonths, step: STEP_MONTHS, value: monthsValue || defaultMonths, onChange: setMonthsValue }));
1236
1254
  }
1237
1255
 
1238
1256
  function renderButtonSection(context, buttons) {
@@ -1244,29 +1262,29 @@
1244
1262
  return (jsxs("div", { children: [jsx("div", { className: "text-sm font-light ml-3", children: title }), jsxs("div", { className: "flex justify-start", children: [jsx("span", { className: `calc-rate-text font-mohave text-[200px] leading-[250px] pr-4 mt-[-16px] ${className}`, children: rateFormat }), sup ? jsx("span", { className: "calc-rate-text text-[65px] leading-[75px]", children: sup }) : ''] })] }));
1245
1263
  }
1246
1264
 
1247
- const DEFAULT_PAYMENT_TYPE$1 = 'annuity';
1248
- const CreditCalculatorForm$1 = JSX(({ context, className = '', buttons }) => {
1265
+ const DEFAULT_PAYMENT_TYPE = 'annuity';
1266
+ const CreditCalculatorForm = JSX(({ context, className = '', buttons }) => {
1249
1267
  const [moneyValue, setMoneyValue] = context.useState(undefined);
1250
1268
  const [monthsValue, setMonthsValue] = context.useState(undefined);
1251
1269
  const [isAnnuity, toggleIsAnnuity] = context.useState(false);
1252
1270
  const [isBudgetary, toggleIsBudgetary] = context.useState(false);
1253
1271
  const [isInsurance, toggleIsInsurance] = context.useState(false);
1254
1272
  const tableRows = useCreditCalculatorData(context.useAsyncData, 'directoryName').rows;
1255
- const calculatorParams = getCalculatorParams$1({ tableRows, isAnnuity: isAnnuity });
1256
- const defaultSum = getDefaultSum$1(calculatorParams);
1257
- const defaultMonths = getDefaultMonths$1(calculatorParams);
1258
- const minMonths = calculatorParams?.minMonths || DEFAULT_MIN_MONTHS$1;
1259
- const maxMonths = calculatorParams?.maxMonths || DEFAULT_MAX_MONTHS$1;
1260
- const rate = getCreditRate$1({ calculatorParams, isInsurance: isInsurance });
1261
- const monthlyPayment = getMonthlyPayment$1({
1273
+ const calculatorParams = getCalculatorParams({ tableRows, isAnnuity: isAnnuity });
1274
+ const defaultSum = getDefaultSum(calculatorParams);
1275
+ const defaultMonths = getDefaultMonths(calculatorParams);
1276
+ const minMonths = calculatorParams?.minMonths || DEFAULT_MIN_MONTHS;
1277
+ const maxMonths = calculatorParams?.maxMonths || DEFAULT_MAX_MONTHS;
1278
+ const rate = getCreditRate({ calculatorParams, isInsurance: isInsurance });
1279
+ const monthlyPayment = getMonthlyPayment({
1262
1280
  calculatorParams,
1263
- paymentType: DEFAULT_PAYMENT_TYPE$1,
1281
+ paymentType: DEFAULT_PAYMENT_TYPE,
1264
1282
  rate,
1265
1283
  sum: moneyValue || defaultSum,
1266
1284
  months: monthsValue || defaultMonths,
1267
1285
  });
1268
1286
  const title = 'Сумма кредита, ₽';
1269
- return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput$1({ title, calculatorParams, moneyValue, defaultSum, setMoneyValue }), renderMonthsInput$1({
1287
+ return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput({ title, calculatorParams, moneyValue, defaultSum, setMoneyValue }), renderMonthsInput({
1270
1288
  title: 'Сумма кредита, ₽',
1271
1289
  minMonths,
1272
1290
  maxMonths,
@@ -1278,23 +1296,23 @@
1278
1296
  : null }), jsxs("div", { className: "w-[351px]", children: [monthlyPayment ? (jsx(CalculatorValueBlock, { title: "\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u044B\u0439 \u043F\u043B\u0430\u0442\u0435\u0436", value: monthlyPayment, postfix: "\u20BD" })) : null, renderButtonSection(context, buttons)] })] }));
1279
1297
  });
1280
1298
 
1281
- const STEP_MONEY$2 = 1000;
1299
+ const STEP_MONEY$1 = 1000;
1282
1300
  function renderRealEstateValue(props) {
1283
1301
  const { calculatorParams, moneyValue, defaultSum, setMoneyValue } = props;
1284
- const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM$1;
1285
- const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM$1;
1286
- return (jsx(InputRange, { title: "\u0421\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C \u043D\u0435\u0434\u0432\u0438\u0436\u0438\u043C\u043E\u0441\u0442\u0438, \u20BD ", items: [`От ${addSpacesBetweenNumbers(minSum)} ₽`, `До ${addSpacesBetweenNumbers(maxSum)} ₽`], min: minSum, max: maxSum, step: STEP_MONEY$2, value: moneyValue || defaultSum, onChange: setMoneyValue }));
1302
+ const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM;
1303
+ const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM;
1304
+ return (jsx(InputRange, { title: "\u0421\u0442\u043E\u0438\u043C\u043E\u0441\u0442\u044C \u043D\u0435\u0434\u0432\u0438\u0436\u0438\u043C\u043E\u0441\u0442\u0438, \u20BD ", items: [`От ${addSpacesBetweenNumbers(minSum)} ₽`, `До ${addSpacesBetweenNumbers(maxSum)} ₽`], min: minSum, max: maxSum, step: STEP_MONEY$1, value: moneyValue || defaultSum, onChange: setMoneyValue }));
1287
1305
  }
1288
1306
 
1289
- const STEP_MONEY$1 = 1000;
1307
+ const STEP_MONEY = 1000;
1290
1308
  function renderInitialFeeInput(props) {
1291
1309
  const { calculatorParams, moneyValue, defaultSum, setMoneyValue } = props;
1292
- const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM$1;
1293
- const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM$1;
1310
+ const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM;
1311
+ const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM;
1294
1312
  return (jsx(InputRange, { className: "mt-6", title: "\u041F\u0435\u0440\u0432\u043E\u043D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0439 \u0432\u0437\u043D\u043E\u0441, \u20BD ", items: [
1295
1313
  `От ${addSpacesBetweenNumbers(minSum)} рублей`,
1296
1314
  `До ${addSpacesBetweenNumbers(maxSum)} рублей`,
1297
- ], min: minSum, max: maxSum, step: STEP_MONEY$1, value: moneyValue || defaultSum, onChange: setMoneyValue }));
1315
+ ], min: minSum, max: maxSum, step: STEP_MONEY, value: moneyValue || defaultSum, onChange: setMoneyValue }));
1298
1316
  }
1299
1317
 
1300
1318
  function renderProposalMortgage({ credit, period, taxRefund }) {
@@ -1307,12 +1325,12 @@
1307
1325
  const [isInsurance, toggleIsInsurance] = context.useState(false);
1308
1326
  const [isFullInsurance, toggleIsFullInsurance] = context.useState(false);
1309
1327
  const tableRows = useCreditCalculatorData(context.useAsyncData, 'directoryName').rows;
1310
- const calculatorParams = getCalculatorParams$1({ tableRows, isAnnuity: isInsurance });
1311
- const defaultSum = getDefaultSum$1(calculatorParams);
1312
- const defaultMonths = getDefaultMonths$1(calculatorParams);
1313
- const minMonths = calculatorParams?.minMonths || DEFAULT_MIN_MONTHS$1;
1314
- const maxMonths = calculatorParams?.maxMonths || DEFAULT_MAX_MONTHS$1;
1315
- const rate = getCreditRate$1({ calculatorParams, isInsurance: isInsurance });
1328
+ const calculatorParams = getCalculatorParams({ tableRows, isAnnuity: isInsurance });
1329
+ const defaultSum = getDefaultSum(calculatorParams);
1330
+ const defaultMonths = getDefaultMonths(calculatorParams);
1331
+ const minMonths = calculatorParams?.minMonths || DEFAULT_MIN_MONTHS;
1332
+ const maxMonths = calculatorParams?.maxMonths || DEFAULT_MAX_MONTHS;
1333
+ const rate = getCreditRate({ calculatorParams, isInsurance: isInsurance });
1316
1334
  const monthlyPayment = 777777; // TODO: hardcode
1317
1335
  const proposalMortgageValue = { credit: 3892000, period: 15, taxRefund: 650000 }; // TODO: hardcode
1318
1336
  return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderRealEstateValue({ calculatorParams, moneyValue, defaultSum, setMoneyValue }), renderInitialFeeInput({
@@ -1320,7 +1338,7 @@
1320
1338
  moneyValue,
1321
1339
  defaultSum,
1322
1340
  setMoneyValue,
1323
- }), renderMonthsInput$1({
1341
+ }), renderMonthsInput({
1324
1342
  title: 'Срок ипотеки, месяцев',
1325
1343
  minMonths,
1326
1344
  maxMonths,
@@ -1336,21 +1354,21 @@
1336
1354
  const [moneyValue, setMoneyValue] = context.useState(undefined);
1337
1355
  const [monthsValue, setMonthsValue] = context.useState(undefined);
1338
1356
  const tableRows = useCreditCalculatorData(context.useAsyncData, 'directoryName').rows;
1339
- const calculatorParams = getCalculatorParams$1({ tableRows, isAnnuity: false });
1340
- const defaultSum = getDefaultSum$1(calculatorParams);
1341
- const defaultMonths = getDefaultMonths$1(calculatorParams);
1357
+ const calculatorParams = getCalculatorParams({ tableRows, isAnnuity: false });
1358
+ const defaultSum = getDefaultSum(calculatorParams);
1359
+ const defaultMonths = getDefaultMonths(calculatorParams);
1342
1360
  const income = 948841;
1343
1361
  const finallySum = 1218841;
1344
- return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput$1({
1362
+ return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput({
1345
1363
  title: 'Сумма вклада, ₽',
1346
1364
  calculatorParams: { minSum, maxSum },
1347
1365
  moneyValue,
1348
1366
  defaultSum,
1349
1367
  setMoneyValue,
1350
- }), renderMonthsInput$1({
1368
+ }), renderMonthsInput({
1351
1369
  title: 'Срок вклада, месяцев',
1352
- minMonths: minMonths || DEFAULT_MIN_MONTHS$1,
1353
- maxMonths: maxMonths || DEFAULT_MAX_MONTHS$1,
1370
+ minMonths: minMonths || DEFAULT_MIN_MONTHS,
1371
+ maxMonths: maxMonths || DEFAULT_MAX_MONTHS,
1354
1372
  monthsValue,
1355
1373
  defaultMonths,
1356
1374
  setMonthsValue,
@@ -1366,19 +1384,19 @@
1366
1384
  const calculatorOtherParams = { minSum: minSumOther, maxSum: maxSumOther };
1367
1385
  const incomeBonus = 948841;
1368
1386
  const bonusOrDef = bonus || 2528;
1369
- return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput$1({
1387
+ return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput({
1370
1388
  title: 'Сумма покупок в категории путешествия, ₽',
1371
1389
  calculatorParams: calculatorTripParams,
1372
1390
  moneyValue: bonusTripValue,
1373
- defaultSum: getDefaultSum$1(calculatorTripParams),
1391
+ defaultSum: getDefaultSum(calculatorTripParams),
1374
1392
  setMoneyValue: setBonusTripValue,
1375
1393
  isShowItems: false,
1376
- }), renderWantedSumInput$1({
1394
+ }), renderWantedSumInput({
1377
1395
  className: 'mt-6',
1378
1396
  title: 'Сумма покупок в остальных категориях, ₽',
1379
1397
  calculatorParams: calculatorOtherParams,
1380
1398
  moneyValue: bonusOtherValue,
1381
- defaultSum: getDefaultSum$1(calculatorOtherParams),
1399
+ defaultSum: getDefaultSum(calculatorOtherParams),
1382
1400
  setMoneyValue: setBonusOtherValue,
1383
1401
  isShowItems: false,
1384
1402
  })] }), jsx("div", { children: bonusOrDef
@@ -1391,7 +1409,7 @@
1391
1409
  });
1392
1410
 
1393
1411
  const EmbeddableCalcBlocks = {
1394
- CreditCalculatorForm: CreditCalculatorForm$1,
1412
+ CreditCalculatorForm,
1395
1413
  MortgageCalculatorForm,
1396
1414
  DepositCalculatorForm,
1397
1415
  BonusCalculatorForm,
@@ -1406,7 +1424,6 @@
1406
1424
  return (jsx("section", { className: `box-border relative flex shrink-0 basis-full ${className}`, role: "listitem", children: jsx("div", { className: "box-border p-9 w-full", children: jsx(EmbeddedBlock, { context: context, ...blockCalcTabs, className: "flex justify-between" }) }) }, String(i)));
1407
1425
  };
1408
1426
 
1409
- const arrowBtnStyle$1 = 'absolute w-[56px] h-[56px] min-h-[56px] max-h-[56px] top-1 z-10 mt-[25px] bg-white rounded-full';
1410
1427
  const Calculator = JSX(({ className = '', context, calcTabs = [], anchor = null }) => {
1411
1428
  const tabsNav = calcTabs.map((_) => _.nav || {});
1412
1429
  const blockCalcTabs = calcTabs.map(({ calculatorBlock }) => calculatorBlock || {});
@@ -1419,7 +1436,12 @@
1419
1436
  const showPrevButton = tabsShift > 0;
1420
1437
  return (jsxs("section", { id: anchor, className: `box-border overflow-hidden relative font-sans w-100 bg-white text-primary-text ${className}`, children: [jsxs("div", { children: [tabsNav.length > 1
1421
1438
  ? renderTabs({ tabsShift, tabsNav, activeSlideIndex, setActiveSlideIndex })
1422
- : null, showPrevButton ? (jsx(ArrowButton, { className: `${arrowBtnStyle$1} left-3 top-3`, onClick: handlePrevClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left" })) : null, showNextButton ? (jsx(ArrowButton, { className: `${arrowBtnStyle$1} right-3 top-3 rotate-180`, onClick: handleNextClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right" })) : null] }), jsx("div", { className: "flex", style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: blockCalcTabs?.length
1439
+ : null, renderArrows({
1440
+ handler: [handlePrevClick, handleNextClick],
1441
+ isShown: [showPrevButton, showNextButton],
1442
+ btnClass: ['left-3', 'right-3'],
1443
+ className: 'top-8',
1444
+ })] }), jsx("div", { className: "flex", style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: blockCalcTabs?.length
1423
1445
  ? blockCalcTabs.map(renderCalculatorBlock({ context, className }))
1424
1446
  : null })] }));
1425
1447
  });
@@ -1443,16 +1465,69 @@
1443
1465
  })) }) }), jsx("div", { className: "w-full h-2 bg-primary-main" })] }));
1444
1466
  }
1445
1467
 
1446
- const TAB_STYLE = 'px-2 h-14 pb-2 pt-3 border border-b-0 border-main-stroke';
1447
- const ACTIVE_TAB_STYLE = 'px-2 h-16 pt-4 pb-2 text-white bg-primary-main';
1448
- const Tabs = JSX(({ tabs, currentTabIndex, onTabClick }) => {
1449
- return (jsx("div", { className: "flex items-end border-b border-main-stroke", role: "tablist", children: tabs?.map(renderTab$2(currentTabIndex, onTabClick)) }));
1450
- });
1451
- const renderTab$2 = (currentTabIndex, onTabClick) => (tab, index) => {
1452
- const isActive = currentTabIndex === index;
1453
- return (jsxs("div", { className: `flex h-full flex-1 cursor-pointer mr-2 last:mr-0 box-content ${isActive ? ACTIVE_TAB_STYLE : TAB_STYLE}`, role: "tab", onClick: () => onTabClick(index), "aria-selected": String(isActive), children: [tab?.icon ? renderIcon(tab, isActive) : null, jsxs("div", { children: [tab?.title ? jsx("h3", { className: "font-medium m-0 text-base", children: tab?.title }) : null, tab?.description ? (jsx("span", { className: `font-light text-xs ${isActive ? '' : 'text-secondary-text'}`, children: tab?.description })) : null] })] }, String(index)));
1468
+ function useExchangeRates(useAsyncData) {
1469
+ const { data } = useAsyncData(EXCHANGE_RATES_URL, fetchExchangeRates);
1470
+ const result = data?.hits?.hits?.map((_) => _._source) || [];
1471
+ return result.length ? getCurrencyListByRate(result) : result;
1472
+ }
1473
+ async function fetchExchangeRates() {
1474
+ try {
1475
+ const response = await fetch(EXCHANGE_RATES_URL, {
1476
+ method: 'POST',
1477
+ headers: {
1478
+ 'Content-Type': 'application/json',
1479
+ },
1480
+ body: JSON.stringify(EXCHANGE_RATES_BODY),
1481
+ });
1482
+ return await response.json();
1483
+ }
1484
+ catch (err) {
1485
+ console.error(err);
1486
+ }
1487
+ }
1488
+ const EXCHANGE_RATES_URL = 'https://coins.rshb.ru/api/catalog/vue_storefront_magento_1_currency_rates_average/currency_rates_average/_search?size=10000';
1489
+ const EXCHANGE_RATES_BODY = {
1490
+ query: {
1491
+ bool: {
1492
+ must: [
1493
+ {
1494
+ term: {
1495
+ // eslint-disable-next-line camelcase
1496
+ russian_region_code: '77',
1497
+ },
1498
+ },
1499
+ {
1500
+ term: {
1501
+ // eslint-disable-next-line camelcase
1502
+ from_volume: '0',
1503
+ },
1504
+ },
1505
+ {
1506
+ terms: {
1507
+ // eslint-disable-next-line camelcase
1508
+ currency_pair: ['USD/RUB', 'EUR/RUB'],
1509
+ },
1510
+ },
1511
+ ],
1512
+ },
1513
+ },
1454
1514
  };
1455
- const renderIcon = (tab, isActive) => (jsx("div", { className: "h-full mt-1", children: jsx(Img, { className: `w-5 h-5 mr-3 ${isActive ? 'invert' : ''}`, image: tab?.icon || 'CardIcon', asSVG: !isActive }) }));
1515
+ const getCurrencyListByRate = (currencyRates) => currencyRates.reduce((result, _) => {
1516
+ const currencyInfo = _['currency_first'];
1517
+ if (!validateRate(_['rate_buy']) && !validateRate(_['rate_sell'])) {
1518
+ return result;
1519
+ }
1520
+ const currencyCode = currencyInfo.code;
1521
+ if (!result.some((i) => i.code === currencyCode)) {
1522
+ result.push({
1523
+ code: currencyCode,
1524
+ buy: Number(_.rate_buy),
1525
+ sell: Number(_.rate_sell),
1526
+ });
1527
+ }
1528
+ return result;
1529
+ }, []);
1530
+ const validateRate = (value) => Math.round(value) > 0;
1456
1531
 
1457
1532
  function getTileHeadingType(className = '') {
1458
1533
  const colSpan = getColSpan(className);
@@ -1467,181 +1542,17 @@
1467
1542
  }
1468
1543
  }
1469
1544
 
1470
- const DEFAULT_MIN_SUM = 30000;
1471
- const DEFAULT_MAX_SUM = 3000000;
1472
- const DEFAULT_SUM = (DEFAULT_MAX_SUM - DEFAULT_MIN_SUM) / 2;
1473
- const DEFAULT_MIN_MONTHS = 1;
1474
- const DEFAULT_MAX_MONTHS = 84;
1475
- const DEFAULT_MONTHS = Math.round((DEFAULT_MAX_MONTHS - DEFAULT_MIN_MONTHS) / 2);
1476
- const MONTHS_IN_YEAR = 12;
1477
-
1478
- const getCalculatorParams = (params) => {
1479
- const { tableRows, isAnnuity = false } = params;
1480
- if (!tableRows)
1481
- return {};
1482
- const calculatorParams = tableRows.find((row) => row.isAnnuity === isAnnuity);
1483
- return calculatorParams || {};
1484
- };
1545
+ var Currency;
1546
+ (function (Currency) {
1547
+ Currency["RUB"] = "RUB";
1548
+ Currency["EUR"] = "EUR";
1549
+ Currency["USD"] = "USD";
1550
+ })(Currency || (Currency = {}));
1485
1551
 
1486
- const DEFAULT_RATE = 5;
1487
- const getCreditRate = (params) => {
1488
- const { calculatorParams, isInsurance } = params;
1489
- if (!calculatorParams)
1490
- return DEFAULT_RATE;
1491
- return isInsurance
1492
- ? calculatorParams?.rateWithInsurance || DEFAULT_RATE
1493
- : calculatorParams?.rateWithoutInsurance || DEFAULT_RATE;
1494
- };
1495
-
1496
- const MAX_YEARS_LENGTH = 5;
1497
- const getCreditTermYears = (minMonths, maxMonths) => {
1498
- const totalYears = Math.ceil((maxMonths - minMonths) / 12);
1499
- const firstYear = Math.floor(minMonths / MONTHS_IN_YEAR) + 1;
1500
- const result = new Array(Math.min(totalYears - 1, MAX_YEARS_LENGTH))
1501
- .fill(0)
1502
- .map((_, i) => firstYear + i);
1503
- const maxYear = totalYears + firstYear - 1;
1504
- return result.concat(maxYear);
1505
- };
1506
-
1507
- const getDefaultMonths = (calculatorParams) => calculatorParams.maxMonths && calculatorParams.minMonths
1508
- ? Math.round((calculatorParams.maxMonths - calculatorParams.minMonths) / 2)
1509
- : DEFAULT_MONTHS;
1510
-
1511
- const getDefaultSum = (calculatorParams) => calculatorParams.maxSum && calculatorParams.minSum
1512
- ? (calculatorParams.maxSum - calculatorParams.minSum) / 2
1513
- : DEFAULT_SUM;
1514
-
1515
- const getMonthlyPayment = (params) => {
1516
- const { calculatorParams, paymentType, rate, sum, months } = params;
1517
- if (!calculatorParams)
1518
- return 0;
1519
- const finalSum = clamp(sum, calculatorParams.minSum || DEFAULT_MIN_SUM, calculatorParams.maxSum || DEFAULT_MAX_SUM);
1520
- if (paymentType === 'annuity') {
1521
- const annuityCoef = Number(rate) / (MONTHS_IN_YEAR * 100);
1522
- return finalSum * (annuityCoef + annuityCoef / (Math.pow(1 + annuityCoef, months) - 1));
1523
- }
1524
- else {
1525
- return finalSum / months + finalSum * (Number(rate) / 12);
1526
- }
1527
- };
1528
-
1529
- const tableFunc = (table) => (input) => {
1530
- const [, output] = table.find(([predicate]) => predicate(input)) || [];
1531
- return output;
1532
- };
1533
-
1534
- const func = tableFunc([
1535
- [(_) => _ === 1, 'год'],
1536
- [(_) => _ <= 4, 'года'],
1537
- [() => true, 'лет'],
1538
- ]);
1539
- function renderButton(number, i, handleClick) {
1540
- const string = func(number);
1541
- return (jsx("button", { className: "bg-secondary-light rounded-3xl h-10 w-[75px] box-border mr-2 flex items-center justify-center cursor-pointer border-none", onClick: () => handleClick(number), children: jsxs("span", { className: "font-semibold text-sm", children: [number, " ", string] }) }, String(i)));
1542
- }
1543
-
1544
- const STEP_MONTHS = 1;
1545
- function renderMonthsInput(props) {
1546
- const { minMonths, maxMonths, monthsValue, defaultMonths, setMonthsValue } = props;
1547
- return (jsx(InputRange, { className: "mt-[23px]", title: "\u0421\u0440\u043E\u043A \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u043C\u0435\u0441\u044F\u0446\u0435\u0432", items: ['Или выберите из предложенных вариантов ниже'], min: minMonths, max: maxMonths, step: STEP_MONTHS, value: monthsValue || defaultMonths, onChange: setMonthsValue }));
1548
- }
1549
-
1550
- function renderProposal(monthlyPayment, rate) {
1551
- return (jsxs("div", { className: "box-border h-fit p-9 bg-primary-main rounded-md text-white", children: [jsx("div", { className: "text-base mb-[18px]", children: "\u041D\u0430\u0448\u0435 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435" }), jsx("div", { className: "text-sm opacity-60", children: "\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u044B\u0439 \u043F\u043B\u0430\u0442\u0451\u0436" }), jsxs("div", { className: "text-lg mb-3", children: [addSpacesBetweenNumbers(Math.round(monthlyPayment)), " \u20BD"] }), jsx("div", { className: "text-sm opacity-60", children: "\u0421\u0442\u0430\u0432\u043A\u0430" }), jsxs("div", { className: "text-lg", children: [rate, " %"] })] }));
1552
- }
1553
-
1554
- function renderTermsButton() {
1555
- return (jsxs("div", { className: "flex items-center", children: [jsx(Button, { className: "mr-3", text: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u044F\u0432\u043A\u0443", version: "primary", href: "#" }), jsx("div", { className: "w-80 text-2xs leading-4 text-secondary-text", "aria-label": "\u0421\u043E\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u0435 \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445", children: "\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u044F \u0437\u0430\u044F\u0432\u043A\u0443, \u0432\u044B \u0441\u043E\u0433\u043B\u0430\u0448\u0430\u0435\u0442\u0435\u0441\u044C \u043D\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C \u0424\u0417 \u00AB\u041E \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\u00BB" })] }));
1556
- }
1557
-
1558
- const STEP_MONEY = 1000;
1559
- function renderWantedSumInput(props) {
1560
- const { calculatorParams, moneyValue, defaultSum, setMoneyValue } = props;
1561
- const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM;
1562
- const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM;
1563
- return (jsx(InputRange, { title: "\u0416\u0435\u043B\u0430\u0435\u043C\u0430\u044F \u0441\u0443\u043C\u043C\u0430 \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u20BD", items: [
1564
- `От ${addSpacesBetweenNumbers(minSum)} рублей`,
1565
- `До ${addSpacesBetweenNumbers(maxSum)} рублей`,
1566
- ], min: minSum, max: maxSum, step: STEP_MONEY, value: moneyValue || defaultSum, onChange: setMoneyValue }));
1567
- }
1568
-
1569
- const DEFAULT_PAYMENT_TYPE = 'annuity';
1570
- const BORDER_STYLE = 'border-solid border-[3px] border-primary-main rounded-md';
1571
- const CreditCalculatorForm = JSX(({ context, directoryName }) => {
1572
- const [moneyValue, setMoneyValue] = context.useState(undefined);
1573
- const [monthsValue, setMonthsValue] = context.useState(undefined);
1574
- const [isAnnuityChecked, setIsAnnuityChecked] = context.useState(true);
1575
- const [isInsuranceChecked, setIsInsuranceChecked] = context.useState(true);
1576
- const tableRows = useCreditCalculatorData(context.useAsyncData, directoryName).rows;
1577
- const calculatorParams = getCalculatorParams({ tableRows, isAnnuity: isAnnuityChecked });
1578
- const defaultSum = getDefaultSum(calculatorParams);
1579
- const defaultMonths = getDefaultMonths(calculatorParams);
1580
- const minMonths = calculatorParams?.minMonths || DEFAULT_MIN_MONTHS;
1581
- const maxMonths = calculatorParams?.maxMonths || DEFAULT_MAX_MONTHS;
1582
- const rate = getCreditRate({ calculatorParams, isInsurance: isInsuranceChecked });
1583
- const monthlyPayment = getMonthlyPayment({
1584
- calculatorParams,
1585
- paymentType: DEFAULT_PAYMENT_TYPE,
1586
- rate,
1587
- sum: moneyValue || defaultSum,
1588
- months: monthsValue || defaultMonths,
1589
- });
1590
- const creditTermYears = getCreditTermYears(minMonths, maxMonths);
1591
- function handleButtonClick(value) {
1592
- setMonthsValue(clamp(value * MONTHS_IN_YEAR, minMonths, maxMonths));
1593
- }
1594
- return (jsx("section", { className: "mt-7", children: jsxs("div", { className: `box-border p-[49px] pr-[56px] mx-auto w-max ${BORDER_STYLE}`, children: [jsxs("div", { className: "flex justify-between", children: [jsxs("div", { className: "mr-[42px]", children: [renderWantedSumInput({ calculatorParams, moneyValue, defaultSum, setMoneyValue }), renderMonthsInput({
1595
- minMonths,
1596
- maxMonths,
1597
- monthsValue,
1598
- defaultMonths,
1599
- setMonthsValue,
1600
- }), jsx("div", { className: "flex mb-7", children: creditTermYears.map((number, i) => renderButton(number, i, handleButtonClick)) }), jsx(Checkbox, { text: "\u041F\u043E\u043B\u0443\u0447\u0430\u044E \u043F\u0435\u043D\u0441\u0438\u044E \u043D\u0430 \u043A\u0430\u0440\u0442\u0443 \u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u0430", checked: isAnnuityChecked, onChange: setIsAnnuityChecked }), jsx(Checkbox, { className: "mt-3 mb-7", text: "\u041A\u043E\u043C\u043F\u043B\u0435\u043A\u0441\u043D\u0430\u044F \u0441\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u044F \u0437\u0430\u0449\u0438\u0442\u0430", checked: isInsuranceChecked, onChange: setIsInsuranceChecked })] }), renderProposal(monthlyPayment, rate)] }), renderTermsButton()] }) }));
1552
+ const currencyNumberFormat = new Intl.NumberFormat('ru', {
1553
+ style: 'currency',
1554
+ currency: Currency.RUB,
1601
1555
  });
1602
-
1603
- const DEFAULT_TABS = [
1604
- {
1605
- title: 'Кредит',
1606
- description: 'Ставка от 6% до 7 лет',
1607
- directoryName: 'credit-calculator-data',
1608
- icon: { icon: 'CardIcon' },
1609
- },
1610
- {
1611
- title: 'Кредит',
1612
- description: 'Ставка от 4% до 7 лет',
1613
- directoryName: 'credit-calculator-data1',
1614
- icon: { icon: 'ChartSquareIcon' },
1615
- },
1616
- {
1617
- title: 'Кредит',
1618
- description: 'Ставка от 3% до 6 лет',
1619
- directoryName: 'credit-calculator-data2',
1620
- icon: { icon: 'DiscountShapeIcon' },
1621
- },
1622
- ];
1623
-
1624
- const CreditCalculator = JSX(({ className = '', context, tabs = DEFAULT_TABS, anchor = null }) => {
1625
- const [currentTabIndex, setCurrentTabIndex] = context.useState(0);
1626
- return (jsxs("section", { className: `font-sans text-primary-text py-10 bg-white ${className}`, id: anchor, children: [jsx(Heading, { className: "w-full text-center mb-8", headingType: getTileHeadingType(className), title: "\u041A\u0430\u043B\u044C\u043A\u0443\u043B\u044F\u0442\u043E\u0440" }), jsx(Tabs, { tabs: tabs, currentTabIndex: currentTabIndex, onTabClick: setCurrentTabIndex }), jsx(CreditCalculatorForm, { context: context, directoryName: tabs[currentTabIndex]?.directoryName })] }));
1627
- });
1628
-
1629
- function useExchangeRates(useAsyncData) {
1630
- const { data } = useAsyncData(EXCHANGE_RATES_URL, fetchExchangeRates);
1631
- return data || {};
1632
- }
1633
- async function fetchExchangeRates() {
1634
- try {
1635
- const response = await fetch(EXCHANGE_RATES_URL);
1636
- return await response.json();
1637
- }
1638
- catch (err) {
1639
- console.error(err);
1640
- }
1641
- }
1642
- const EXCHANGE_RATES_URL = '/api/v1/exchangerates.json';
1643
-
1644
- const currencyNumberFormat = new Intl.NumberFormat('ru', { style: 'currency', currency: 'RUB' });
1645
1556
  const formatCurrency = (value) => (value ? currencyNumberFormat.format(value) : '');
1646
1557
 
1647
1558
  const TABLE_HEAD_STYLE = 'font-light text-left font-normal text-sm text-secondary-text';
@@ -1653,55 +1564,141 @@
1653
1564
  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)) })] }));
1654
1565
  });
1655
1566
  const renderCurrencyRow = (exchangeCurrencyItem) => {
1656
- const code = exchangeCurrencyItem?.currency?.currency;
1657
- return (jsxs("tr", { className: "pb-1", 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: "text-m-title-md ml-2", children: code })] }) }), jsx("td", { className: "pt-4 pl-11 m-title-md font-light", children: formatCurrency(exchangeCurrencyItem.buyExchangeRate) }), jsx("td", { className: "pt-4 pl-11 m-title-md font-light", children: formatCurrency(exchangeCurrencyItem.saleExchangeRate) })] }, code));
1567
+ const code = exchangeCurrencyItem?.code;
1568
+ return (jsxs("tr", { className: "pb-1", 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: "text-m-title-md ml-2", children: code })] }) }), jsx("td", { className: "pt-4 pl-11 m-title-md font-light", children: formatCurrency(exchangeCurrencyItem.buy) }), jsx("td", { className: "pt-4 pl-11 m-title-md font-light", children: formatCurrency(exchangeCurrencyItem.sell) })] }, code));
1658
1569
  };
1659
1570
 
1660
1571
  const CurrentLocation = JSX(({ className = '', address, distance }) => (jsxs("div", { className: `flex text-sm ${className}`, children: [jsx(Img, { image: { icon: 'GpsIcon' }, width: "24", height: "24", asSVG: true }), jsxs("div", { className: "ml-3 font-light", children: [address ? jsx("p", { className: "m-0 mb-[3px]", children: address }) : null, distance ? (jsxs("p", { className: "text-secondary-text m-0", 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] })] })));
1661
1572
 
1662
- const Input = JSX(({ className = '', id, name, type = 'text', placeholder }) => {
1663
- return (jsx("input", { className: className, id: id, name: name || id, type: type, placeholder: placeholder }));
1573
+ const roundTo = (value, precision = 2) => {
1574
+ const factor = Math.pow(10, precision);
1575
+ return Math.round(parseFloat(String(value)) * factor) / factor;
1576
+ };
1577
+
1578
+ const calculateResult = (value, rate, precision) => {
1579
+ const result = Number(formatValue(value)) * Math.pow(rate, precision ? -1 : 1);
1580
+ return Number.isInteger(result) ? result : roundTo(result);
1581
+ };
1582
+ const formatValue = (value) => value.replace(/[^\d.,]/g, '').replace(',', '.');
1583
+
1584
+ const tableFunc = (table) => (input) => {
1585
+ const [, output] = table.find(([predicate]) => predicate(input)) || [];
1586
+ return output;
1587
+ };
1588
+
1589
+ const callbackCurrencySelect = (props) => tableFunc([
1590
+ [
1591
+ (_) => _.value !== Currency.RUB && _.oppositeValue !== Currency.RUB,
1592
+ () => props.handleConvert(props.value, Currency.RUB),
1593
+ ],
1594
+ [
1595
+ (_) => _.value === Currency.RUB && _.oppositeValue === Currency.RUB,
1596
+ () => props.handleConvert(props.value, Currency.USD),
1597
+ ],
1598
+ [() => true, () => props.handleConvert(props.value)],
1599
+ ])(props)?.();
1600
+
1601
+ function renderButton() {
1602
+ return (jsx(Button, { className: "box-border mt-3.5 py-3 h-12 w-full", version: "primary", href: "https://coins.rshb.ru/exchange", target: "_blank", children: "\u041A\u0443\u043F\u0438\u0442\u044C \u0432\u0430\u043B\u044E\u0442\u0443" }));
1603
+ }
1604
+
1605
+ const Input = JSX(({ className = '', id, name, type = 'text', placeholder, pattern, value, onChange }) => {
1606
+ const handleChange = (e) => {
1607
+ const validInputValue = e.target.validity.valid ? e.target.value : value;
1608
+ onChange(validInputValue);
1609
+ };
1610
+ return (jsx("input", { className: className, id: id, name: name || id, type: type, pattern: pattern, placeholder: placeholder, value: value, onChange: (e) => handleChange(e) }));
1664
1611
  });
1665
1612
 
1666
- const Select = JSX(({ className = '', id, name, children }) => {
1667
- return (jsx("select", { className: className, id: id, name: name || id, children: children }));
1613
+ const Select = JSX(({ className = '', id, name, children, value, onChange }) => {
1614
+ return (jsx("select", { className: className, id: id, name: name || id, value: value, onChange: (e) => onChange(e.target.value), children: children }));
1668
1615
  });
1669
1616
 
1670
1617
  const SelectOption = JSX(({ className = '', value, selected, children }) => {
1671
1618
  return (jsx("option", { className: className, value: `${value}`, selected: selected, children: children }));
1672
1619
  });
1673
1620
 
1674
- const ExchangeCurrencyCalculator = JSX(({ codes, className = '' }) => {
1675
- return (jsxs("div", { className: `grid gap-3.5 ${className}`, children: [renderInput('Хочу продать', codes), renderInput('Получу', codes, 'USD'), jsx(Button, { className: "box-border mt-3.5 py-3 h-12 w-full", version: "primary", href: "#", children: "\u041A\u0443\u043F\u0438\u0442\u044C \u0432\u0430\u043B\u044E\u0442\u0443" })] }));
1676
- });
1677
- function renderInput(placeholder, codes, selected) {
1678
- return (jsxs("div", { className: "relative flex items-center", children: [jsx(Input, { className: "h-10 border pl-4 pt-[7px] pb-[7px] rounded-md text-m-sm w-full appearance-none -mr-12", type: "number", placeholder: `${placeholder}` }), codes.length ? (jsx(Select, { className: "h-9 -translate-x-4", children: codes.map((code, i) => (jsx(SelectOption, { value: code, selected: code === selected, children: code }, String(i)))) })) : null] }));
1621
+ function renderInput(props) {
1622
+ const { placeholder, rates, selected, value, setValue, setSelected } = props;
1623
+ return (jsxs("div", { className: "relative flex items-center", children: [jsx(Input, { className: "h-10 border pl-4 pt-[7px] pb-[7px] rounded-md text-m-sm w-full appearance-none -mr-12", placeholder: placeholder, type: "text", value: value, onChange: setValue }), rates.length ? (jsx(Select, { className: "h-9 -translate-x-4", value: selected, onChange: (_) => setSelected(_), children: rates.map((_, i) => (jsx(SelectOption, { value: _.code, children: _.code }, String(i)))) })) : null] }));
1679
1624
  }
1680
1625
 
1681
- const CURRENCY_CODES = ['USD', 'EUR'];
1682
- const EXCHANGE_CODES = ['RUB', 'USD', 'EUR'];
1683
- const DEFAULT_CURRENCY_ITEMS = [
1684
- {
1685
- buyExchangeRate: 90.6,
1686
- saleExchangeRate: 92.8,
1687
- currency: { id: 2, code: '978', currency: 'EUR', name: 'Евро' },
1688
- },
1689
- {
1690
- buyExchangeRate: 73.75,
1691
- saleExchangeRate: 75.95,
1692
- currency: { id: 1, code: '840', currency: 'USD', name: 'Американский доллар' },
1693
- },
1694
- ];
1626
+ const ExchangeCurrencyCalculator = JSX(({ context, className = '', currencyRatesBuy, currencyRatesSell }) => {
1627
+ const [calcState, setCalcState] = context.useState({
1628
+ inputSell: '',
1629
+ inputBuy: '',
1630
+ selectSell: currencyRatesBuy?.[0]?.code || Currency.RUB,
1631
+ selectBuy: currencyRatesSell?.[0]?.code || Currency.USD,
1632
+ });
1633
+ const handleSetCalcState = (newState) => {
1634
+ setCalcState((oldState) => ({ ...oldState, ...newState }));
1635
+ };
1636
+ return (jsxs("div", { className: `grid gap-3.5 ${className}`, children: [renderInput({
1637
+ placeholder: 'Хочу продать',
1638
+ rates: currencyRatesBuy,
1639
+ selected: calcState.selectSell,
1640
+ setSelected: handleSelectSell(calcState, handleSetCalcState, currencyRatesSell),
1641
+ value: calcState.inputSell,
1642
+ setValue: (value) => handleInputSell(handleSetCalcState, currencyRatesSell)(value, calcState.selectSell, calcState.selectBuy),
1643
+ }), renderInput({
1644
+ placeholder: 'Получу',
1645
+ rates: currencyRatesSell,
1646
+ selected: calcState.selectBuy,
1647
+ setSelected: handleSelectBuy(calcState, handleSetCalcState, currencyRatesBuy),
1648
+ value: calcState.inputBuy,
1649
+ setValue: (value) => handleInputBuy(handleSetCalcState, currencyRatesBuy)(value, calcState.selectBuy, calcState.selectSell),
1650
+ }), renderButton()] }));
1651
+ });
1652
+ const handleSelectSell = (calcState, setCalcState, currencyRatesSell) => (value) => {
1653
+ setCalcState({ selectSell: value });
1654
+ callbackCurrencySelect({
1655
+ value,
1656
+ oppositeValue: calcState.selectBuy,
1657
+ handleConvert: (codeFrom = calcState.selectSell, codeTo = calcState.selectBuy) => {
1658
+ handleInputSell(setCalcState, currencyRatesSell)(calcState.inputSell, codeFrom, codeTo);
1659
+ },
1660
+ });
1661
+ };
1662
+ const handleSelectBuy = (calcState, setCalcState, currencyRatesBuy) => (value) => {
1663
+ setCalcState({ selectBuy: value });
1664
+ callbackCurrencySelect({
1665
+ value,
1666
+ oppositeValue: calcState.selectSell,
1667
+ handleConvert: (codeTo = calcState.selectBuy, codeFrom = calcState.selectSell) => handleInputBuy(setCalcState, currencyRatesBuy)(calcState.inputBuy, codeTo, codeFrom),
1668
+ });
1669
+ };
1670
+ const handleInputSell = (setCalcState, currencyRatesSell) => (value, codeFrom, codeTo) => {
1671
+ setCalcState({ inputSell: formatValue(value), selectBuy: codeTo });
1672
+ const rate = currencyRatesSell.find((_) => _.code === codeTo)?.buy ||
1673
+ currencyRatesSell.find((_) => _.code === codeFrom)?.sell;
1674
+ if (rate) {
1675
+ setCalcState({
1676
+ inputBuy: String(calculateResult(value, rate, codeFrom === Currency.RUB) || ''),
1677
+ });
1678
+ }
1679
+ };
1680
+ const handleInputBuy = (setCalcState, currencyRatesBuy) => (value, codeTo, codeFrom) => {
1681
+ setCalcState({ inputBuy: formatValue(value), selectSell: codeFrom });
1682
+ const rate = currencyRatesBuy.find((_) => _.code === codeFrom)?.sell ||
1683
+ currencyRatesBuy.find((_) => _.code === codeTo)?.buy;
1684
+ if (rate) {
1685
+ setCalcState({
1686
+ inputSell: String(calculateResult(value, rate, codeTo === Currency.RUB) || ''),
1687
+ });
1688
+ }
1689
+ };
1690
+
1695
1691
  const DEFAULT_LOCATION = {
1696
1692
  address: 'Москва, ул.Ленина д.28',
1697
1693
  distance: '6км',
1698
1694
  };
1699
1695
  const ExchangeRateTile = JSX(({ className = '', context, title = 'Курсы обмена валют', anchor = null }) => {
1700
- const data = useExchangeRates(context.useAsyncData);
1701
- const exchangeCurrencyItems = data?.exchangeRate?.currencies?.filter((item) => {
1702
- return CURRENCY_CODES.indexOf(item?.currency?.currency || '') !== -1;
1703
- }) || DEFAULT_CURRENCY_ITEMS;
1704
- return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className}`, id: anchor, children: jsx(BaseTile, { context: context, title: jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: "whitespace-pre-wrap" }), children: jsxs("div", { className: "flex", children: [jsxs("div", { className: "mr-[43px] pt-4", children: [exchangeCurrencyItems ? (jsx(CurrencyTable, { className: "mb-[31px]", exchangeCurrencyItems: exchangeCurrencyItems })) : null, jsx(CurrentLocation, { ...DEFAULT_LOCATION })] }), exchangeCurrencyItems?.length ? (jsx(ExchangeCurrencyCalculator, { className: "grow", exchangeCurrencyItems: exchangeCurrencyItems, codes: EXCHANGE_CODES })) : null] }) }) }));
1696
+ const currencyRates = useExchangeRates(context.useAsyncData);
1697
+ const currencyRatesBuy = currencyRates.filter((_) => _.buy);
1698
+ currencyRatesBuy.unshift({ code: Currency.RUB });
1699
+ const currencyRatesSell = currencyRates.filter((_) => _.sell);
1700
+ currencyRatesSell.push({ code: Currency.RUB });
1701
+ return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className}`, id: anchor, children: jsx(BaseTile, { context: context, title: jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: "whitespace-pre-wrap" }), children: jsxs("div", { className: "flex", children: [jsxs("div", { className: "mr-[43px] pt-4", children: [currencyRates ? (jsx(CurrencyTable, { className: "mb-[31px]", exchangeCurrencyItems: currencyRates })) : null, jsx(CurrentLocation, { ...DEFAULT_LOCATION })] }), currencyRates.length && currencyRatesBuy.length && currencyRatesSell.length ? (jsx(ExchangeCurrencyCalculator, { className: "grow", context: context, currencyRatesBuy: currencyRatesBuy, currencyRatesSell: currencyRatesSell })) : null] }) }) }));
1705
1702
  });
1706
1703
 
1707
1704
  const LOGO_PATHS = [
@@ -1804,47 +1801,38 @@
1804
1801
  origins: ['t.me', 'telegram.org'],
1805
1802
  icon: { icon: 'TelegramIcon' },
1806
1803
  label: 'Телеграм',
1807
- width: '20px',
1808
- height: '16px',
1809
1804
  },
1810
1805
  {
1811
1806
  origins: ['vk.com'],
1812
1807
  icon: { icon: 'VKIcon' },
1813
1808
  label: 'ВКонтакте',
1814
- width: '24px',
1815
- height: '12px',
1816
1809
  },
1817
1810
  {
1818
1811
  origins: ['ok.ru'],
1819
1812
  icon: { icon: 'OkIcon' },
1820
1813
  label: 'Одноклассники',
1821
- width: '12px',
1822
- height: '20px',
1823
1814
  },
1824
1815
  {
1825
1816
  origins: ['apps.apple.com'],
1826
1817
  icon: { icon: 'AppleIcon' },
1827
1818
  label: 'App Store',
1828
- width: '20px',
1829
- height: '22px',
1830
1819
  },
1831
1820
  {
1832
1821
  origins: ['play.google.com'],
1833
1822
  icon: { icon: 'PlayMarketIcon' },
1834
1823
  label: 'Google Play',
1835
- width: '21px',
1836
- height: '21px',
1837
1824
  },
1838
1825
  ];
1839
1826
  const MediaButton = JSX(({ href, version = 'primary' }) => {
1840
- const { icon, width, height, label } = ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
1841
- if (!icon)
1827
+ const { icon, label } = ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
1828
+ if (!icon) {
1842
1829
  return null;
1830
+ }
1843
1831
  const classes = version === 'secondary'
1844
1832
  ? 'bg-secondary-light hover:bg-secondary-hover'
1845
1833
  : 'border-main-divider border-solid border-[1px] hover:bg-primary-main';
1846
1834
  const isPrimary = version === 'primary';
1847
- 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, iconVersion: 'normal' }, imageClassName: isPrimary ? 'group-hover:text-white' : '', width: width, height: height, asSVG: true })) : null }));
1835
+ 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: isPrimary ? 'group-hover:text-white' : '', width: "24", height: "24", asSVG: true })) : null }));
1848
1836
  });
1849
1837
 
1850
1838
  const SocialMedia = JSX(({ className = '', media, version, context, children }) => {
@@ -1856,13 +1844,13 @@
1856
1844
  const TextInformation = JSX(({ className, links, context }) => {
1857
1845
  const router = context.useRouter();
1858
1846
  const { handlerDecorator } = context;
1859
- return (jsxs("div", { className: `${className || ''}`, children: [jsx("div", { className: "pt-5 pb-[5px]", children: jsx("span", { className: "font-sans font-light 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 justify-start items-start gap-5 pt-[5px]", children: links.map((_, i) => (jsx(TextInformationLink, { index: i, ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null] }));
1847
+ return (jsxs("div", { className: `${className || ''}`, children: [jsx("div", { className: "pt-5", children: jsx("span", { className: "font-sans font-light 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 justify-start items-start gap-5 pt-2.5", children: links.map((_, i) => (jsx(TextInformationLink, { index: i, ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null] }));
1860
1848
  });
1861
1849
  const TextInformationLink = JSX(({ className, index, text, href, target, onClick }) => (jsx("a", { className: `font-sans font-light text-xs text-secondary-text visited:text-secondary-text hover:text-primary-text inline-block no-underline max-w-[292px] ${className || ''}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` })));
1862
1850
 
1863
1851
  const LEFT_COL_WIDTH_FULL_HD = 'w-[204px]';
1864
1852
  const Footer = JSX(({ className, documents, relatedEnterprises, contacts, socialMedia, mobileApps, topItems, context, anchor = null, }) => {
1865
- return (jsxs("footer", { className: `px-9 pt-9 pb-10 bg-white ${className || ''}`, id: anchor, children: [jsxs("div", { className: "flex items-stretch gap-[54px] pb-[30px] xl:gap-8", children: [jsx(Logo, { className: LEFT_COL_WIDTH_FULL_HD }), jsx(SearchBar, { context: context, className: "grow" })] }), jsxs("div", { className: "flex items-stretch gap-[54px] xl:gap-8", children: [jsxs("div", { className: `${LEFT_COL_WIDTH_FULL_HD} flex flex-col shrink-0 overflow-hidden`, children: [jsx(Contacts, { items: contacts, context: context, hasButton: true }), jsx(SocialMedia, { media: socialMedia, context: context, children: "\u0421\u043E\u0446\u0441\u0435\u0442\u0438" }), jsx(SocialMedia, { className: "mt-6", media: mobileApps, context: context, children: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" })] }), jsx(Sitemap, { className: "pt-[3px]", context: context, items: topItems })] }), jsx(HorizontalNavigation, { className: "mt-[98px]", links: relatedEnterprises, context: context }), jsx(TextInformation, { links: documents, context: context })] }));
1853
+ return (jsxs("footer", { className: `p-9 bg-white ${className || ''}`, id: anchor, children: [jsxs("div", { className: "flex items-stretch gap-[54px] pb-[30px] xl:gap-8", children: [jsx(Logo, { className: LEFT_COL_WIDTH_FULL_HD }), jsx(SearchBar, { context: context, className: "grow" })] }), jsxs("div", { className: "flex items-stretch gap-[54px] xl:gap-8", children: [jsxs("div", { className: `${LEFT_COL_WIDTH_FULL_HD} flex flex-col shrink-0 overflow-hidden`, children: [jsx(Contacts, { items: contacts, context: context, hasButton: true }), jsx(SocialMedia, { media: socialMedia, context: context, children: "\u0421\u043E\u0446\u0441\u0435\u0442\u0438" }), jsx(SocialMedia, { className: "mt-6", media: mobileApps, context: context, children: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" })] }), jsx(Sitemap, { className: "pt-[3px]", context: context, items: topItems })] }), jsx(HorizontalNavigation, { className: "mt-[98px]", links: relatedEnterprises, context: context }), jsx(TextInformation, { links: documents, context: context })] }));
1866
1854
  });
1867
1855
 
1868
1856
  const GracePeriod = JSX(({ className = '', title, description, calendar, anchor = null }) => {
@@ -1884,7 +1872,7 @@
1884
1872
 
1885
1873
  const checkIsHrefSameOrigin = (href, router) => getOrigin(href) === getOrigin(router.href);
1886
1874
 
1887
- const isHrefActive = (href, router, cmp = (href, baseHref) => baseHref.startsWith(href)) => {
1875
+ const isHrefActive = (href, router, cmp = (targetHref, baseHref) => baseHref.startsWith(targetHref)) => {
1888
1876
  return cmp(withoutQuery(href), withoutMobilePath(withoutQuery(isURL(href) ? router.href : router.pathname)));
1889
1877
  };
1890
1878
 
@@ -1897,21 +1885,19 @@
1897
1885
  const TEXT_CLASSES$2 = 'font-sans font-light text-sm';
1898
1886
  const LINK_CLASSES$1 = 'inline-block border border-solid bg-transparent text-center no-underline';
1899
1887
  const TopItem = JSX(({ className = '', text, href, target, active, flat, onClick, children, ariaLabel, bgColor = 'bg-white', }) => (jsx("a", { className: `${getLinkClasses$1(bgColor, active, flat)} ${className}`, href: href, target: target, onClick: onClick, rel: "noopener noreferrer", "aria-label": ariaLabel, children: jsx("span", { className: getTextClasses$2(bgColor, active, flat), children: text || children }) })));
1900
- const getLinkClasses$1 = (bgColor, active, flat) => {
1888
+ const getLinkClasses$1 = (bgColor, active = false, flat = false) => {
1901
1889
  let classes = 'border-transparent';
1902
1890
  if (active) {
1903
1891
  classes = `rounded-md ${bgColor === 'bg-white' ? 'border-primary-main' : 'border-white'}`;
1904
1892
  }
1905
1893
  return `${classes} ${LINK_CLASSES$1} ${flat ? '' : 'px-4 py-2'}`;
1906
1894
  };
1907
- const getTextClasses$2 = (bgColor, active, flat) => {
1908
- let classes = 'text-white';
1909
- if (bgColor === 'bg-white') {
1910
- classes = active
1911
- ? 'text-primary-main'
1912
- : `${flat ? 'text-primary-text' : 'text-secondary-text'} hover:text-primary-main`;
1895
+ const getTextClasses$2 = (bgColor, active = false, flat = false) => {
1896
+ if (bgColor !== 'bg-white') {
1897
+ return `text-white ${TEXT_CLASSES$2}`;
1913
1898
  }
1914
- return `${classes} ${TEXT_CLASSES$2}`;
1899
+ const nonActiveAtoms = `${flat ? 'text-primary-text' : 'text-secondary-text'} hover:text-primary-main`;
1900
+ return `${active ? 'text-primary-main' : nonActiveAtoms} ${TEXT_CLASSES$2}`;
1915
1901
  };
1916
1902
 
1917
1903
  const HeaderSecondaryMenuButton = JSX(({ className = '', children, ariaLabel }) => (jsx("button", { type: "button", className: `border-0 p-0 w-[24px] h-[24px] flex items-center bg-inherit cursor-pointer ${className}`, disabled: true, "aria-label": ariaLabel, children: children })));
@@ -1960,75 +1946,41 @@
1960
1946
  return `${bgColor === 'bg-white' ? 'bg-primary-main' : bgColor} ${BORDER_CLASSES}`;
1961
1947
  };
1962
1948
 
1963
- const isSSR = () => !(typeof window !== 'undefined' && window.document && window.document.createElement);
1964
-
1965
- const isClient$1 = !isSSR();
1966
- const headerSubMenuObserver = isClient$1
1967
- ? new IntersectionObserver((entries) => {
1968
- const createArrays = (selectors) => selectors.map((_) => Array.from(window.document.querySelectorAll(_)));
1969
- const headerSubMenuButtonElement = window.document.querySelector('[data-header-submenu-visible=toggled]');
1970
- const [headerSubMenuItems, dotsHeaderSubMenuItems] = createArrays([
1971
- '[data-item-name=header-submenu]',
1972
- '[data-item-name=dots-header-submenu]',
1973
- ]);
1974
- const visibilityList = {};
1975
- entries.forEach((_) => {
1976
- visibilityList[_.target.toString()] = _.isIntersecting;
1977
- });
1978
- const isHeaderSubMenuButtonShow = toggleVisibilityInItems(visibilityList, dotsHeaderSubMenuItems, 'hidden');
1979
- toggleVisibilityInItems(visibilityList, headerSubMenuItems, 'invisible');
1980
- if (headerSubMenuButtonElement) {
1981
- isHeaderSubMenuButtonShow
1982
- ? headerSubMenuButtonElement.classList.remove('hidden')
1983
- : headerSubMenuButtonElement.classList.add('hidden');
1984
- }
1985
- }, { root: window.document, threshold: 1.0 })
1986
- : undefined;
1987
- // TODO: add types
1988
- const toggleVisibilityInItems = (visibilityList, items, className) => {
1989
- const isReversed = className !== 'hidden';
1990
- return items.some((_) => {
1991
- const key = _.toString();
1992
- const option = isReversed ? !visibilityList[key] : visibilityList[key];
1993
- key in visibilityList ? _.classList.toggle(className, option) : null;
1994
- return isReversed ? _.classList.contains('hidden') : !_.classList.contains('hidden');
1995
- });
1996
- };
1997
-
1998
1949
  const DOT_BG_COLORS_MAP = {
1999
1950
  'bg-white': 'bg-primary-text',
2000
1951
  transparent: 'bg-white',
2001
1952
  };
2002
- const HeaderSubMenu = JSX(({ context, subItems, bgColor }) => {
2003
- const [subMenuIsShow, setHiddenMenuIsShow] = context.useState(false);
1953
+ const DropdownMenu = JSX((props) => {
1954
+ const { menuVisible, toggleMenu, menuItems, bgColor, context } = props;
1955
+ const { useRouter, handlerDecorator } = context;
1956
+ const router = useRouter();
1957
+ return (jsxs("div", { className: `absolute w-52 -top-4 right-0 pt-4 z-40 ${menuVisible ? 'bg-white rounded-md shadow-blue-gray/24' : ''}`, children: [jsx("button", { className: "flex justify-between items-center cursor-pointer h-6 ml-6", onClick: toggleMenu, "aria-label": `${menuVisible ? 'Скрыть другие разделы' : 'Показать другие разделы'}`, children: Array(3).fill(bgColor).map(renderDot) }), jsx("div", { className: `flex flex-col rounded-md bg-white p-6 pb-2 ${menuVisible ? '' : 'hidden'}`, "aria-hidden": !menuVisible, children: renderDotsSubMenuItems(menuItems, router, handlerDecorator) })] }));
1958
+ });
1959
+ const renderDotsSubMenuItems = (menuItems, router, handlerDecorator) => menuItems?.map((_) => (jsx("a", { ...useLink({ router, handlerDecorator }, _), className: "text-base font-light pb-4 hover:text-primary-main", children: _.text }, _.href)));
1960
+ const renderDot = (bgColor, i) => (jsx("div", { className: `w-[3px] h-[3px] rounded mr-1 ${DOT_BG_COLORS_MAP[bgColor]}` }, String(i)));
1961
+
1962
+ const HeaderSubMenu = JSX(({ context, subItems = [], bgColor }) => {
1963
+ const [menuVisible, setMenuVisible] = context.useState(false);
2004
1964
  const router = context.useRouter();
2005
- const { handlerDecorator } = context;
2006
- setTimeout(() => {
2007
- if (isSSR()) {
1965
+ const { handlerDecorator, IntersectionObserverTag } = context;
1966
+ const [visibleItemsCount, setVisibleItemsCount] = context.useState(subItems.length);
1967
+ const dropDownMenuItems = subItems.slice(visibleItemsCount);
1968
+ const activeSubItem = findActiveSubItem(router)(subItems);
1969
+ const toggleMenu = () => setMenuVisible(!menuVisible);
1970
+ const observerCallback = (itemIndex) => (entries) => {
1971
+ if (!entries.length) {
2008
1972
  return;
2009
1973
  }
2010
- const headerSubMenu = globalThis.document.querySelectorAll('[data-item-name=header-submenu]');
2011
- headerSubMenu.forEach((_) => {
2012
- headerSubMenuObserver?.observe(_);
2013
- });
2014
- }, 200);
2015
- const activeSubItem = findActiveSubItem(router)(subItems);
2016
- const toggleSubMenu = () => setHiddenMenuIsShow(!subMenuIsShow);
2017
- const subMenu = subItems?.map((_) => (jsx(HeaderItem, { className: "mr-8", active: _ === activeSubItem, ...useLink({ router, handlerDecorator }, _), dataItemName: "header-submenu", bgColor: bgColor }, _.href)));
2018
- return (jsxs("nav", { className: "relative mt-5", children: [jsx("div", { className: "overflow-hidden whitespace-nowrap mr-52", children: subMenu }), renderDotsSubMenu({
2019
- subMenuIsShow,
2020
- toggleSubMenu,
2021
- subItems,
2022
- bgColor,
2023
- router,
2024
- handlerDecorator,
2025
- })] }));
2026
- });
2027
- // TODO: add types
2028
- const renderDotsSubMenu = ({ subMenuIsShow, toggleSubMenu, subItems, bgColor, router, handlerDecorator, }) => (jsxs("div", { className: `absolute w-52 -top-4 right-0 pt-4 z-40 ${subMenuIsShow ? 'bg-white rounded-md shadow-blue-gray/24' : ''}`, "data-header-submenu-visible": "toggled", children: [jsx("button", { className: "flex justify-between items-center cursor-pointer h-6 ml-6", onClick: toggleSubMenu, "aria-label": `${subMenuIsShow ? 'Скрыть другие разделы' : 'Показать другие разделы'}`, children: Array(3).fill(bgColor).map(renderDot) }), jsx("div", { className: `flex flex-col rounded-md bg-white p-6 pb-2 ${subMenuIsShow ? '' : 'hidden'}`, "aria-hidden": !subMenuIsShow, children: renderDotsSubMenuItems(subItems, router, handlerDecorator) })] }));
2029
- // TODO: add types
2030
- const renderDotsSubMenuItems = (subItems, router, handlerDecorator) => subItems?.map((_) => (jsx("a", { ...useLink({ router, handlerDecorator }, _), "data-item-name": "dots-header-submenu", className: "text-base font-light pb-4 hover:text-primary-main", children: _.text }, _.href)));
2031
- const renderDot = (bgColor, i) => (jsx("div", { className: `w-[3px] h-[3px] rounded mr-1 ${DOT_BG_COLORS_MAP[bgColor]}` }, String(i)));
1974
+ const entry = entries[0];
1975
+ if (entry.intersectionRatio < 1) {
1976
+ setVisibleItemsCount((prev) => Math.min(prev, itemIndex));
1977
+ }
1978
+ else {
1979
+ setVisibleItemsCount((prev) => Math.max(prev, itemIndex + 1));
1980
+ }
1981
+ };
1982
+ return (jsxs("nav", { className: "relative mt-5", children: [jsx("div", { className: "overflow-hidden whitespace-nowrap mr-52", children: subItems.map((_, i) => (jsx(IntersectionObserverTag, { Tag: "span", observerCallback: observerCallback(i), observerOptions: { threshold: 1 }, children: jsx(HeaderItem, { className: `mr-8 ${visibleItemsCount - 1 < i ? 'invisible' : ''}`, active: _ === activeSubItem, ...useLink({ router, handlerDecorator }, _), bgColor: bgColor }) }, String(i)))) }), dropDownMenuItems.length ? (jsx(DropdownMenu, { context: context, menuVisible: menuVisible, toggleMenu: toggleMenu, menuItems: dropDownMenuItems, bgColor: bgColor })) : null] }));
1983
+ });
2032
1984
 
2033
1985
  const BORDER_COLORS = {
2034
1986
  'bg-white': 'bg-main-divider',
@@ -2057,7 +2009,6 @@
2057
2009
  return (jsxs("div", { className: `flex justify-between items-center gap-2 w-full ${widthStyle}`, children: [jsx("span", { className: "text-secondary-text text-base", children: title }), jsxs("span", { className: "text-primary-main text-title-2xs", children: [addSpacesBetweenNumbers(sum), " \u20BD"] })] }));
2058
2010
  }
2059
2011
 
2060
- const arrowBtnStyle = 'absolute w-12 h-12 min-h-12 max-h-12 top-1 z-10 mt-[25px] bg-white rounded-full text-primary-text';
2061
2012
  const InsuranceAmountBlockInner = JSX(({ className = '', context, cards = [], anchor = null }) => {
2062
2013
  const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
2063
2014
  const [tabsShift, setTabsShift] = context.useState(0);
@@ -2076,11 +2027,16 @@
2076
2027
  isLastShift,
2077
2028
  setActiveSlideIndex,
2078
2029
  })
2079
- : null, showPrevButton ? (jsxs("div", { children: [jsx(ArrowButton, { className: `${arrowBtnStyle} left-0 top-9`, onClick: handlePrevClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left" }), jsx("div", { className: "absolute top-0 left-0 h-[168px] w-[84px] bg-opacity-from-white" })] })) : null, showNextButton ? (jsxs("div", { children: [jsx(ArrowButton, { className: `${arrowBtnStyle} right-0 top-9 rotate-180`, onClick: handleNextClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right" }), jsx("div", { className: "absolute top-0 right-0 h-[168px] w-[100px] bg-opacity-to-white" })] })) : null] }) }));
2030
+ : null, renderArrows({
2031
+ handler: [handlePrevClick, handleNextClick],
2032
+ isShown: [showPrevButton, showNextButton],
2033
+ btnClass: ['left-[50px]', 'right-[50px]'],
2034
+ className: 'top-[62px]',
2035
+ }), showPrevButton ? (jsx("div", { className: "absolute top-0 left-0 h-full w-[136px] bg-opacity-from-white" })) : null, showNextButton ? (jsx("div", { className: "absolute top-0 right-0 h-full w-[136px] bg-opacity-to-white" })) : null] }) }));
2080
2036
  });
2081
2037
  function renderGallery({ tabsShift, cards, activeSlideIndex, isLastShift, setActiveSlideIndex, }) {
2082
2038
  const tabsShiftWidth = isLastShift ? tabsShift * 460 - 240 : tabsShift * 460;
2083
- return (jsx("div", { style: { transform: `translateX(-${tabsShiftWidth}px)` }, className: "duration-1000", children: jsx("div", { className: "w-full flex flex-nowrap gap-3.5 pb-[38px] px-[50px]", children: cards.map((slide, i) => renderSlide({
2039
+ return (jsx("div", { style: { transform: `translateX(-${tabsShiftWidth}px)` }, className: "duration-1000 px-[50px]", children: jsx("div", { className: "w-full flex flex-nowrap gap-3.5 pb-[38px]", children: cards.map((slide, i) => renderSlide({
2084
2040
  slide,
2085
2041
  i,
2086
2042
  activeSlideIndex,
@@ -2225,7 +2181,7 @@
2225
2181
  const renderShimmer = (size = 3) => goldenSequence(100, size)
2226
2182
  .map((_) => Math.floor(_))
2227
2183
  .map(renderShimmerItem);
2228
- const renderShimmerItem = (width = 100, index) => (jsx("div", { style: { width: `${width}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
2184
+ const renderShimmerItem = (width, index) => (jsx("div", { style: { width: `${width || 100}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
2229
2185
  const goldenSequence = (first, size) => [first].concat(size > 0 ? goldenSequence(first / GOLDEN_RATIO, size - 1) : []);
2230
2186
 
2231
2187
  const productGalleryStyleMap = {
@@ -2321,7 +2277,12 @@
2321
2277
  const isUseSlider = cardsCount > CARD_FULL_VIEW_COUNT;
2322
2278
  const showNextButton = isUseSlider && cardsCount - activeCardIndex > CARD_FULL_VIEW_COUNT;
2323
2279
  const showPrevButton = isUseSlider && activeCardIndex > 0;
2324
- return (jsxs("div", { children: [showPrevButton ? (jsx(ArrowButton, { className: "absolute top-1/2 left-8 z-10 mt-6", onClick: handlePrevClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E" })) : null, showNextButton ? (jsx(ArrowButton, { className: "absolute top-1/2 right-8 z-10 mt-6 rotate-180", onClick: handleNextClick, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E" })) : null] }));
2280
+ return (jsx("div", { children: renderArrows({
2281
+ handler: [handlePrevClick, handleNextClick],
2282
+ isShown: [showPrevButton, showNextButton],
2283
+ btnClass: ['left-8', 'right-8'],
2284
+ className: 'top-1/2 mt-6',
2285
+ }) }));
2325
2286
  };
2326
2287
 
2327
2288
  const StepsBlock = JSX(({ className = '', title, showLines = true, steps = [], button, anchor = null }) => {
@@ -2383,7 +2344,7 @@
2383
2344
  });
2384
2345
 
2385
2346
  const GroupBlockTabs = JSX((props) => {
2386
- const { tabs, currentTag, onTabClick, className = '', isShowCounter = true } = props;
2347
+ const { tabs, currentTag, onTabClick, className = '', isShowCounter } = props;
2387
2348
  return (jsx("div", { className: `mb-2 box-border flex gap-x-1 ${className}`, role: "tablist", children: tabs?.map(renderTab(onTabClick, isShowCounter, currentTag)) }));
2388
2349
  });
2389
2350
  const badgeStyle = 'min-w-[22px] w-[22px] h-[22px] rounded-full text-m-sm';
@@ -2393,7 +2354,7 @@
2393
2354
  const tabText = isActive ? 'text-white' : 'text-secondary-text group-hover:text-primary-main';
2394
2355
  const counterBlockStyle = `${badgeStyle}
2395
2356
  ${isActive ? 'bg-white/30 text-white' : 'bg-secondary-light text-secondary-text'}`;
2396
- return (jsx("div", { className: `flex h-full w-full h-12 flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`, role: "tab", onClick: () => onTabClick(tab.tag), "aria-selected": String(isActive), tag: tab?.tag, children: jsxs("div", { className: "flex flex-1 items-center justify-center", children: [tab?.title ? jsx("h3", { className: `mr-8 ${tabText}`, children: tab?.title }) : null, isShowCounter ? (jsx("div", { className: `flex items-center justify-center ${counterBlockStyle}`, children: jsx("span", { children: tab.count }) })) : null] }) }, String(i)));
2357
+ return (jsx("div", { className: `flex h-full w-full h-12 flex-1 cursor-pointer mr-2 last:mr-0 box-content ${tabBg}`, role: "tab", onClick: () => onTabClick(tab.tag), "aria-selected": String(isActive), tag: tab?.tag, children: jsxs("div", { className: "flex flex-1 items-center justify-center", children: [tab?.title ? jsx("h3", { className: tabText, children: tab?.title }) : null, isShowCounter ? (jsx("div", { className: `flex items-center justify-center ml-8 ${counterBlockStyle}`, children: jsx("span", { children: tab.count }) })) : null] }) }, String(i)));
2397
2358
  };
2398
2359
 
2399
2360
  function style2className(style) {
@@ -2406,7 +2367,7 @@
2406
2367
  };
2407
2368
 
2408
2369
  const GroupBlocksItem = JSX(({ groupBlocks, context }) => {
2409
- return (jsx("div", { className: 'grid grid-cols-12 gap-2 box-border', children: groupBlocks?.length ? groupBlocks.map(renderBlock$1(context)) : null }));
2370
+ return (jsx("div", { className: "grid grid-cols-12 gap-2 box-border", children: groupBlocks?.length ? groupBlocks.map(renderBlock$1(context)) : null }));
2410
2371
  });
2411
2372
  const renderBlock$1 = (context) => (block, i) => {
2412
2373
  const type = block?.blockType;
@@ -2422,16 +2383,16 @@
2422
2383
  return tag ? blocks.filter((block) => block?.tags?.includes(tag)) : blocks;
2423
2384
  };
2424
2385
 
2425
- const GroupBlock = JSX(({ className = '', tabs, context, anchor = null, groupBlocks = [] }) => {
2386
+ const GroupBlock = JSX(({ className = '', tabs, context, anchor = null, groupBlocks = [], isShowCounter }) => {
2426
2387
  const [currentTag, setCurrentTag] = context.useState(tabs?.[0]?.tag);
2427
2388
  const filteredBlocks = filterBlocksByTag(groupBlocks, currentTag);
2428
2389
  const tabsNewMap = tabs?.map((tab) => {
2429
2390
  const count = tab.tag
2430
- ? groupBlocks.filter((block) => block?.tags?.includes(`${tab.tag}`)).length
2391
+ ? groupBlocks.filter((block) => block?.tags?.includes(tab.tag)).length
2431
2392
  : groupBlocks.length;
2432
2393
  return { ...tab, count };
2433
2394
  });
2434
- return (jsxs("section", { id: anchor, className: `box-border gap-1 h-12 ${className}`, children: [tabsNewMap?.length ? (jsx(GroupBlockTabs, { currentTag: currentTag, onTabClick: setCurrentTag, tabs: tabsNewMap })) : null, groupBlocks.length ? (jsx(GroupBlocksItem, { context: context, groupBlocks: filteredBlocks })) : null] }));
2395
+ return (jsxs("section", { id: anchor, className: `box-border gap-1 ${className}`, children: [tabsNewMap?.length ? (jsx(GroupBlockTabs, { currentTag: currentTag, onTabClick: setCurrentTag, tabs: tabsNewMap, isShowCounter: isShowCounter })) : null, groupBlocks.length ? (jsx(GroupBlocksItem, { context: context, groupBlocks: filteredBlocks })) : null] }));
2435
2396
  });
2436
2397
 
2437
2398
  function getElementsColsValue(className = '') {
@@ -2448,10 +2409,10 @@
2448
2409
  }
2449
2410
 
2450
2411
  const BonusBenefitsBlock = JSX(({ className = '', title, subtitle, bonusBenefits, anchor = null }) => {
2451
- return (jsxs("section", { className: `font-sans text-primary-text bg-white p-50 flex flex-col ${className}`, id: anchor, children: [title ? (jsx(Heading, { headingType: "h3", className: "text-center mb-[10px]", title: title })) : null, subtitle ? jsx("span", { className: "text-md font-normal text-center", children: subtitle }) : null, bonusBenefits?.length ? (jsx("div", { className: `grid gap-1 ${getElementsColsValue(className)}`, children: bonusBenefits.map(renderBonusBenefit) })) : null] }));
2412
+ return (jsxs("section", { className: `font-sans text-primary-text bg-white p-50 flex flex-col text-center ${className}`, id: anchor, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-[10px]", title: title }) : null, subtitle ? jsx("span", { className: "text-md font-normal", children: subtitle }) : null, bonusBenefits?.length ? (jsx("div", { className: `grid gap-1 ${getElementsColsValue(className)}`, children: bonusBenefits.map(renderBonusBenefit) })) : null] }));
2452
2413
  });
2453
2414
  const renderBonusBenefit = (bonusBenefit, i) => {
2454
- return (jsxs("div", { className: "flex flex-col items-center max-w-[292px]", children: [bonusBenefit?.icon ? (jsx(Img, { className: "h-[180px] w-[160px] min-w-[160px] min-h-[160px]", image: bonusBenefit.icon, width: "160", height: "180" })) : null, jsx("div", { children: bonusBenefit?.label ? (jsx("span", { className: "title-2xs text-center m-0", children: bonusBenefit.label })) : null })] }, String(i)));
2415
+ return (jsxs("div", { className: "flex flex-col items-center max-w-[292px]", children: [bonusBenefit?.icon ? (jsx(Img, { className: "h-[180px] w-[160px] min-w-[160px] min-h-[160px]", image: bonusBenefit.icon, width: "160", height: "180" })) : null, jsx("div", { children: bonusBenefit?.label ? jsx("span", { className: "title-2xs m-0", children: bonusBenefit.label }) : null })] }, String(i)));
2455
2416
  };
2456
2417
 
2457
2418
  const Blocks = {
@@ -2460,7 +2421,6 @@
2460
2421
  Bonus,
2461
2422
  ComparisonTable,
2462
2423
  Calculator,
2463
- CreditCalculator,
2464
2424
  ExchangeRateTile,
2465
2425
  Footer,
2466
2426
  Gallery,
@@ -2494,8 +2454,9 @@
2494
2454
  blocks?.forEach((block) => {
2495
2455
  const currentHash = globalThis.location?.hash; // TODO: remove globalThis, use href from router
2496
2456
  const anchorHash = `#${block?.id}`;
2497
- if (currentHash === anchorHash)
2457
+ if (currentHash === anchorHash) {
2498
2458
  return;
2459
+ }
2499
2460
  const position = block?.getBoundingClientRect();
2500
2461
  if (position && position.top > 0 && position.top < 150) {
2501
2462
  router.replace(`#${block?.id}`);
@@ -2503,6 +2464,8 @@
2503
2464
  });
2504
2465
  };
2505
2466
 
2467
+ const isSSR = () => !(typeof window !== 'undefined' && window.document && window.document.createElement);
2468
+
2506
2469
  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() })));
2507
2470
  const renderLikeIcon = () => {
2508
2471
  const params = {