@redneckz/wildless-cms-uni-blocks 0.3.56 → 0.3.58

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 (595) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +405 -97
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/cosmos-static/icons/SafeIcon.svg +1 -1
  5. package/dist/components/BlockContent.d.ts +2 -1
  6. package/dist/components/Blocks.d.ts +2 -1
  7. package/dist/components/Blocks.js +4 -2
  8. package/dist/components/Blocks.js.map +1 -1
  9. package/dist/components/Calculator/BonusCalculatorForm.d.ts +5 -0
  10. package/dist/components/Calculator/BonusCalculatorForm.js +40 -0
  11. package/dist/components/Calculator/BonusCalculatorForm.js.map +1 -0
  12. package/dist/components/Calculator/Calculator.d.ts +5 -0
  13. package/dist/components/Calculator/Calculator.js +46 -0
  14. package/dist/components/Calculator/Calculator.js.map +1 -0
  15. package/dist/components/Calculator/CalculatorContent.d.ts +110 -0
  16. package/dist/components/{ProductGalleryGreen/ProductGalleryGreenContent.js → Calculator/CalculatorContent.js} +1 -1
  17. package/dist/components/Calculator/CalculatorContent.js.map +1 -0
  18. package/dist/components/Calculator/CalculatorValueBlock.d.ts +8 -0
  19. package/dist/components/Calculator/CalculatorValueBlock.js +9 -0
  20. package/dist/components/Calculator/CalculatorValueBlock.js.map +1 -0
  21. package/dist/components/Calculator/CreditCalculatorForm.d.ts +5 -0
  22. package/dist/components/Calculator/CreditCalculatorForm.js +51 -0
  23. package/dist/components/Calculator/CreditCalculatorForm.js.map +1 -0
  24. package/dist/components/Calculator/DepositCalculatorForm.d.ts +5 -0
  25. package/dist/components/Calculator/DepositCalculatorForm.js +41 -0
  26. package/dist/components/Calculator/DepositCalculatorForm.js.map +1 -0
  27. package/dist/components/Calculator/EmbeddableCalcBlocks.d.ts +11 -0
  28. package/dist/components/Calculator/EmbeddableCalcBlocks.js +13 -0
  29. package/dist/components/Calculator/EmbeddableCalcBlocks.js.map +1 -0
  30. package/dist/components/Calculator/MortgageCalculatorForm.d.ts +5 -0
  31. package/dist/components/Calculator/MortgageCalculatorForm.js +49 -0
  32. package/dist/components/Calculator/MortgageCalculatorForm.js.map +1 -0
  33. package/dist/components/Calculator/constants.d.ts +7 -0
  34. package/dist/components/Calculator/constants.js +10 -0
  35. package/dist/components/Calculator/constants.js.map +1 -0
  36. package/dist/components/Calculator/getCalculatorParams.d.ts +7 -0
  37. package/dist/components/Calculator/getCalculatorParams.js +11 -0
  38. package/dist/components/Calculator/getCalculatorParams.js.map +1 -0
  39. package/dist/components/Calculator/getCreditRate.d.ts +7 -0
  40. package/dist/components/Calculator/getCreditRate.js +13 -0
  41. package/dist/components/Calculator/getCreditRate.js.map +1 -0
  42. package/dist/components/Calculator/getDefaultMonths.d.ts +2 -0
  43. package/dist/components/Calculator/getDefaultMonths.js +8 -0
  44. package/dist/components/Calculator/getDefaultMonths.js.map +1 -0
  45. package/dist/components/Calculator/getDefaultSum.d.ts +2 -0
  46. package/dist/components/Calculator/getDefaultSum.js +8 -0
  47. package/dist/components/Calculator/getDefaultSum.js.map +1 -0
  48. package/dist/components/Calculator/getMonthlyPayment.d.ts +11 -0
  49. package/dist/components/Calculator/getMonthlyPayment.js +19 -0
  50. package/dist/components/Calculator/getMonthlyPayment.js.map +1 -0
  51. package/dist/components/Calculator/renderButtonSection.d.ts +1 -0
  52. package/dist/components/Calculator/renderButtonSection.js +9 -0
  53. package/dist/components/Calculator/renderButtonSection.js.map +1 -0
  54. package/dist/components/Calculator/renderCalculatorList.d.ts +10 -0
  55. package/dist/components/Calculator/renderCalculatorList.js +17 -0
  56. package/dist/components/Calculator/renderCalculatorList.js.map +1 -0
  57. package/dist/components/Calculator/renderInitialFeeInput.d.ts +10 -0
  58. package/dist/components/Calculator/renderInitialFeeInput.js +18 -0
  59. package/dist/components/Calculator/renderInitialFeeInput.js.map +1 -0
  60. package/dist/components/Calculator/renderMonthsInput.d.ts +11 -0
  61. package/dist/components/Calculator/renderMonthsInput.js +15 -0
  62. package/dist/components/Calculator/renderMonthsInput.js.map +1 -0
  63. package/dist/components/Calculator/renderProposal.d.ts +1 -0
  64. package/dist/components/Calculator/renderProposal.js +10 -0
  65. package/dist/components/Calculator/renderProposal.js.map +1 -0
  66. package/dist/components/Calculator/renderProposalMortgage.d.ts +7 -0
  67. package/dist/components/Calculator/renderProposalMortgage.js +9 -0
  68. package/dist/components/Calculator/renderProposalMortgage.js.map +1 -0
  69. package/dist/components/Calculator/renderRate.d.ts +8 -0
  70. package/dist/components/Calculator/renderRate.js +9 -0
  71. package/dist/components/Calculator/renderRate.js.map +1 -0
  72. package/dist/components/Calculator/renderRealEstateValue.d.ts +10 -0
  73. package/dist/components/Calculator/renderRealEstateValue.js +15 -0
  74. package/dist/components/Calculator/renderRealEstateValue.js.map +1 -0
  75. package/dist/components/Calculator/renderWantedSumInput.d.ts +13 -0
  76. package/dist/components/Calculator/renderWantedSumInput.js +19 -0
  77. package/dist/components/Calculator/renderWantedSumInput.js.map +1 -0
  78. package/dist/components/ContentPage/ContentPage.d.ts +1 -1
  79. package/dist/components/GroupBlock/BlocksTypeProps.d.ts +36 -0
  80. package/{mobile/dist/components/ProductGalleryGreen/ProductGalleryGreenContent.js → dist/components/GroupBlock/BlocksTypeProps.js} +1 -1
  81. package/dist/components/GroupBlock/BlocksTypeProps.js.map +1 -0
  82. package/dist/components/GroupBlock/EmbeddableGroupBlocks.d.ts +4 -0
  83. package/dist/components/GroupBlock/EmbeddableGroupBlocks.js +9 -0
  84. package/dist/components/GroupBlock/EmbeddableGroupBlocks.js.map +1 -0
  85. package/dist/components/GroupBlock/GroupBlock.d.ts +9 -0
  86. package/dist/components/GroupBlock/GroupBlock.js +19 -0
  87. package/dist/components/GroupBlock/GroupBlock.js.map +1 -0
  88. package/dist/components/GroupBlock/GroupBlockContent.d.ts +21 -0
  89. package/dist/components/GroupBlock/GroupBlockContent.js +2 -0
  90. package/dist/components/GroupBlock/GroupBlockContent.js.map +1 -0
  91. package/dist/components/GroupBlock/GroupBlockTabs.d.ts +10 -0
  92. package/dist/components/GroupBlock/GroupBlockTabs.js +18 -0
  93. package/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -0
  94. package/dist/components/GroupBlock/GroupBlocksItem.d.ts +8 -0
  95. package/dist/components/GroupBlock/GroupBlocksItem.js +20 -0
  96. package/dist/components/GroupBlock/GroupBlocksItem.js.map +1 -0
  97. package/dist/components/GroupBlock/filterBlocksByTag.d.ts +2 -0
  98. package/dist/components/GroupBlock/filterBlocksByTag.js +7 -0
  99. package/dist/components/GroupBlock/filterBlocksByTag.js.map +1 -0
  100. package/dist/components/GroupBlock/renderBlocksTypes.d.ts +9 -0
  101. package/dist/components/GroupBlock/renderBlocksTypes.js +16 -0
  102. package/dist/components/GroupBlock/renderBlocksTypes.js.map +1 -0
  103. package/dist/components/OtherProducts/OtherProductsContent.d.ts +4 -2
  104. package/dist/components/ProductBlock/ProductBlockInner.js +1 -1
  105. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  106. package/dist/components/ProductGallery/ProductGallery.js +37 -8
  107. package/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  108. package/dist/components/ProductGallery/ProductGalleryContent.d.ts +3 -6
  109. package/dist/types.d.ts +1 -0
  110. package/dist/ui-kit/BlocksList/renderBlocksList.d.ts +0 -1
  111. package/dist/ui-kit/BlocksList/renderBlocksList.js +2 -3
  112. package/dist/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  113. package/dist/ui-kit/Checkbox/Checkbox.js +1 -1
  114. package/dist/ui-kit/Checkbox/Checkbox.js.map +1 -1
  115. package/dist/ui-kit/InputRange/InputRange.js +2 -2
  116. package/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  117. package/dist/ui-kit/InputRange/InputRangeProps.d.ts +2 -1
  118. package/dist/ui-kit/Tabs/TabsProps.d.ts +2 -1
  119. package/dist/utils/style2className.d.ts +1 -1
  120. package/dist/utils/style2className.js +3 -1
  121. package/dist/utils/style2className.js.map +1 -1
  122. package/lib/common.css +1 -1
  123. package/lib/components/BlockContent.d.ts +2 -1
  124. package/lib/components/Blocks.d.ts +2 -1
  125. package/lib/components/Blocks.js +4 -2
  126. package/lib/components/Blocks.js.map +1 -1
  127. package/lib/components/Calculator/BonusCalculatorForm.d.ts +5 -0
  128. package/lib/components/Calculator/BonusCalculatorForm.js +38 -0
  129. package/lib/components/Calculator/BonusCalculatorForm.js.map +1 -0
  130. package/lib/components/Calculator/Calculator.d.ts +5 -0
  131. package/lib/components/{ProductGalleryGreen/ProductGalleryGreen.fixture.d.ts → Calculator/Calculator.fixture.d.ts} +1 -1
  132. package/lib/components/Calculator/Calculator.js +44 -0
  133. package/lib/components/Calculator/Calculator.js.map +1 -0
  134. package/lib/components/Calculator/CalculatorContent.d.ts +110 -0
  135. package/lib/components/Calculator/CalculatorContent.js +2 -0
  136. package/lib/components/Calculator/CalculatorContent.js.map +1 -0
  137. package/lib/components/Calculator/CalculatorValueBlock.d.ts +8 -0
  138. package/lib/components/Calculator/CalculatorValueBlock.js +7 -0
  139. package/lib/components/Calculator/CalculatorValueBlock.js.map +1 -0
  140. package/lib/components/Calculator/CreditCalculatorForm.d.ts +5 -0
  141. package/lib/components/Calculator/CreditCalculatorForm.js +49 -0
  142. package/lib/components/Calculator/CreditCalculatorForm.js.map +1 -0
  143. package/lib/components/Calculator/DepositCalculatorForm.d.ts +5 -0
  144. package/lib/components/Calculator/DepositCalculatorForm.js +39 -0
  145. package/lib/components/Calculator/DepositCalculatorForm.js.map +1 -0
  146. package/lib/components/Calculator/EmbeddableCalcBlocks.d.ts +11 -0
  147. package/lib/components/Calculator/EmbeddableCalcBlocks.js +11 -0
  148. package/lib/components/Calculator/EmbeddableCalcBlocks.js.map +1 -0
  149. package/lib/components/Calculator/MortgageCalculatorForm.d.ts +5 -0
  150. package/lib/components/Calculator/MortgageCalculatorForm.js +47 -0
  151. package/lib/components/Calculator/MortgageCalculatorForm.js.map +1 -0
  152. package/lib/components/Calculator/constants.d.ts +7 -0
  153. package/lib/components/Calculator/constants.js +8 -0
  154. package/lib/components/Calculator/constants.js.map +1 -0
  155. package/lib/components/Calculator/getCalculatorParams.d.ts +7 -0
  156. package/lib/components/Calculator/getCalculatorParams.js +8 -0
  157. package/lib/components/Calculator/getCalculatorParams.js.map +1 -0
  158. package/lib/components/Calculator/getCreditRate.d.ts +7 -0
  159. package/lib/components/Calculator/getCreditRate.js +10 -0
  160. package/lib/components/Calculator/getCreditRate.js.map +1 -0
  161. package/lib/components/Calculator/getDefaultMonths.d.ts +2 -0
  162. package/lib/components/Calculator/getDefaultMonths.js +5 -0
  163. package/lib/components/Calculator/getDefaultMonths.js.map +1 -0
  164. package/lib/components/Calculator/getDefaultSum.d.ts +2 -0
  165. package/lib/components/Calculator/getDefaultSum.js +5 -0
  166. package/lib/components/Calculator/getDefaultSum.js.map +1 -0
  167. package/lib/components/Calculator/getMonthlyPayment.d.ts +11 -0
  168. package/lib/components/Calculator/getMonthlyPayment.js +16 -0
  169. package/lib/components/Calculator/getMonthlyPayment.js.map +1 -0
  170. package/lib/components/Calculator/renderButtonSection.d.ts +1 -0
  171. package/lib/components/Calculator/renderButtonSection.js +6 -0
  172. package/lib/components/Calculator/renderButtonSection.js.map +1 -0
  173. package/lib/components/Calculator/renderCalculatorList.d.ts +10 -0
  174. package/lib/components/Calculator/renderCalculatorList.js +14 -0
  175. package/lib/components/Calculator/renderCalculatorList.js.map +1 -0
  176. package/lib/components/Calculator/renderInitialFeeInput.d.ts +10 -0
  177. package/lib/components/Calculator/renderInitialFeeInput.js +15 -0
  178. package/lib/components/Calculator/renderInitialFeeInput.js.map +1 -0
  179. package/lib/components/Calculator/renderMonthsInput.d.ts +11 -0
  180. package/lib/components/Calculator/renderMonthsInput.js +12 -0
  181. package/lib/components/Calculator/renderMonthsInput.js.map +1 -0
  182. package/lib/components/Calculator/renderProposal.d.ts +1 -0
  183. package/lib/components/Calculator/renderProposal.js +7 -0
  184. package/lib/components/Calculator/renderProposal.js.map +1 -0
  185. package/lib/components/Calculator/renderProposalMortgage.d.ts +7 -0
  186. package/lib/components/Calculator/renderProposalMortgage.js +6 -0
  187. package/lib/components/Calculator/renderProposalMortgage.js.map +1 -0
  188. package/lib/components/Calculator/renderRate.d.ts +8 -0
  189. package/lib/components/Calculator/renderRate.js +6 -0
  190. package/lib/components/Calculator/renderRate.js.map +1 -0
  191. package/lib/components/Calculator/renderRealEstateValue.d.ts +10 -0
  192. package/lib/components/Calculator/renderRealEstateValue.js +12 -0
  193. package/lib/components/Calculator/renderRealEstateValue.js.map +1 -0
  194. package/lib/components/Calculator/renderWantedSumInput.d.ts +13 -0
  195. package/lib/components/Calculator/renderWantedSumInput.js +16 -0
  196. package/lib/components/Calculator/renderWantedSumInput.js.map +1 -0
  197. package/lib/components/ContentPage/ContentPage.d.ts +1 -1
  198. package/lib/components/GroupBlock/BlocksTypeProps.d.ts +36 -0
  199. package/lib/components/GroupBlock/BlocksTypeProps.js +2 -0
  200. package/lib/components/GroupBlock/BlocksTypeProps.js.map +1 -0
  201. package/lib/components/GroupBlock/EmbeddableGroupBlocks.d.ts +4 -0
  202. package/lib/components/GroupBlock/EmbeddableGroupBlocks.js +7 -0
  203. package/lib/components/GroupBlock/EmbeddableGroupBlocks.js.map +1 -0
  204. package/lib/components/GroupBlock/GroupBlock.d.ts +9 -0
  205. package/lib/components/GroupBlock/GroupBlock.fixture.d.ts +4 -0
  206. package/lib/components/GroupBlock/GroupBlock.js +17 -0
  207. package/lib/components/GroupBlock/GroupBlock.js.map +1 -0
  208. package/lib/components/GroupBlock/GroupBlockContent.d.ts +21 -0
  209. package/lib/components/GroupBlock/GroupBlockContent.js +2 -0
  210. package/lib/components/GroupBlock/GroupBlockContent.js.map +1 -0
  211. package/lib/components/GroupBlock/GroupBlockTabs.d.ts +10 -0
  212. package/lib/components/GroupBlock/GroupBlockTabs.js +16 -0
  213. package/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -0
  214. package/lib/components/GroupBlock/GroupBlocksItem.d.ts +8 -0
  215. package/lib/components/GroupBlock/GroupBlocksItem.js +17 -0
  216. package/lib/components/GroupBlock/GroupBlocksItem.js.map +1 -0
  217. package/lib/components/GroupBlock/filterBlocksByTag.d.ts +2 -0
  218. package/lib/components/GroupBlock/filterBlocksByTag.js +4 -0
  219. package/lib/components/GroupBlock/filterBlocksByTag.js.map +1 -0
  220. package/lib/components/GroupBlock/renderBlocksTypes.d.ts +9 -0
  221. package/lib/components/GroupBlock/renderBlocksTypes.js +13 -0
  222. package/lib/components/GroupBlock/renderBlocksTypes.js.map +1 -0
  223. package/lib/components/OtherProducts/OtherProductsContent.d.ts +4 -2
  224. package/lib/components/ProductBlock/ProductBlockInner.js +1 -1
  225. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  226. package/lib/components/ProductGallery/ProductGallery.fixture.d.ts +1 -0
  227. package/lib/components/ProductGallery/ProductGallery.js +37 -8
  228. package/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  229. package/lib/components/ProductGallery/ProductGalleryContent.d.ts +3 -6
  230. package/lib/types.d.ts +1 -0
  231. package/lib/ui-kit/BlocksList/renderBlocksList.d.ts +0 -1
  232. package/lib/ui-kit/BlocksList/renderBlocksList.js +1 -1
  233. package/lib/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  234. package/lib/ui-kit/Checkbox/Checkbox.js +1 -1
  235. package/lib/ui-kit/Checkbox/Checkbox.js.map +1 -1
  236. package/lib/ui-kit/InputRange/InputRange.js +2 -2
  237. package/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  238. package/lib/ui-kit/InputRange/InputRangeProps.d.ts +2 -1
  239. package/lib/ui-kit/Tabs/TabsProps.d.ts +2 -1
  240. package/lib/utils/style2className.d.ts +1 -1
  241. package/lib/utils/style2className.js +3 -1
  242. package/lib/utils/style2className.js.map +1 -1
  243. package/mobile/bundle/bundle.umd.js +3 -1
  244. package/mobile/bundle/bundle.umd.min.js +1 -1
  245. package/mobile/dist/components/BlockContent.d.ts +2 -1
  246. package/mobile/dist/components/Calculator/BonusCalculatorForm.d.ts +5 -0
  247. package/mobile/dist/components/Calculator/BonusCalculatorForm.js +40 -0
  248. package/mobile/dist/components/Calculator/BonusCalculatorForm.js.map +1 -0
  249. package/mobile/dist/components/Calculator/Calculator.d.ts +5 -0
  250. package/mobile/dist/components/Calculator/Calculator.js +46 -0
  251. package/mobile/dist/components/Calculator/Calculator.js.map +1 -0
  252. package/mobile/dist/components/Calculator/CalculatorContent.d.ts +110 -0
  253. package/mobile/dist/components/Calculator/CalculatorContent.js +2 -0
  254. package/mobile/dist/components/Calculator/CalculatorContent.js.map +1 -0
  255. package/mobile/dist/components/Calculator/CalculatorValueBlock.d.ts +8 -0
  256. package/mobile/dist/components/Calculator/CalculatorValueBlock.js +9 -0
  257. package/mobile/dist/components/Calculator/CalculatorValueBlock.js.map +1 -0
  258. package/mobile/dist/components/Calculator/CreditCalculatorForm.d.ts +5 -0
  259. package/mobile/dist/components/Calculator/CreditCalculatorForm.js +51 -0
  260. package/mobile/dist/components/Calculator/CreditCalculatorForm.js.map +1 -0
  261. package/mobile/dist/components/Calculator/DepositCalculatorForm.d.ts +5 -0
  262. package/mobile/dist/components/Calculator/DepositCalculatorForm.js +41 -0
  263. package/mobile/dist/components/Calculator/DepositCalculatorForm.js.map +1 -0
  264. package/mobile/dist/components/Calculator/EmbeddableCalcBlocks.d.ts +11 -0
  265. package/mobile/dist/components/Calculator/EmbeddableCalcBlocks.js +13 -0
  266. package/mobile/dist/components/Calculator/EmbeddableCalcBlocks.js.map +1 -0
  267. package/mobile/dist/components/Calculator/MortgageCalculatorForm.d.ts +5 -0
  268. package/mobile/dist/components/Calculator/MortgageCalculatorForm.js +49 -0
  269. package/mobile/dist/components/Calculator/MortgageCalculatorForm.js.map +1 -0
  270. package/mobile/dist/components/Calculator/constants.d.ts +7 -0
  271. package/mobile/dist/components/Calculator/constants.js +10 -0
  272. package/mobile/dist/components/Calculator/constants.js.map +1 -0
  273. package/mobile/dist/components/Calculator/getCalculatorParams.d.ts +7 -0
  274. package/mobile/dist/components/Calculator/getCalculatorParams.js +11 -0
  275. package/mobile/dist/components/Calculator/getCalculatorParams.js.map +1 -0
  276. package/mobile/dist/components/Calculator/getCreditRate.d.ts +7 -0
  277. package/mobile/dist/components/Calculator/getCreditRate.js +13 -0
  278. package/mobile/dist/components/Calculator/getCreditRate.js.map +1 -0
  279. package/mobile/dist/components/Calculator/getDefaultMonths.d.ts +2 -0
  280. package/mobile/dist/components/Calculator/getDefaultMonths.js +8 -0
  281. package/mobile/dist/components/Calculator/getDefaultMonths.js.map +1 -0
  282. package/mobile/dist/components/Calculator/getDefaultSum.d.ts +2 -0
  283. package/mobile/dist/components/Calculator/getDefaultSum.js +8 -0
  284. package/mobile/dist/components/Calculator/getDefaultSum.js.map +1 -0
  285. package/mobile/dist/components/Calculator/getMonthlyPayment.d.ts +11 -0
  286. package/mobile/dist/components/Calculator/getMonthlyPayment.js +19 -0
  287. package/mobile/dist/components/Calculator/getMonthlyPayment.js.map +1 -0
  288. package/mobile/dist/components/Calculator/renderButtonSection.d.ts +1 -0
  289. package/mobile/dist/components/Calculator/renderButtonSection.js +9 -0
  290. package/mobile/dist/components/Calculator/renderButtonSection.js.map +1 -0
  291. package/mobile/dist/components/Calculator/renderCalculatorList.d.ts +10 -0
  292. package/mobile/dist/components/Calculator/renderCalculatorList.js +17 -0
  293. package/mobile/dist/components/Calculator/renderCalculatorList.js.map +1 -0
  294. package/mobile/dist/components/Calculator/renderInitialFeeInput.d.ts +10 -0
  295. package/mobile/dist/components/Calculator/renderInitialFeeInput.js +18 -0
  296. package/mobile/dist/components/Calculator/renderInitialFeeInput.js.map +1 -0
  297. package/mobile/dist/components/Calculator/renderMonthsInput.d.ts +11 -0
  298. package/mobile/dist/components/Calculator/renderMonthsInput.js +15 -0
  299. package/mobile/dist/components/Calculator/renderMonthsInput.js.map +1 -0
  300. package/mobile/dist/components/Calculator/renderProposal.d.ts +1 -0
  301. package/mobile/dist/components/Calculator/renderProposal.js +10 -0
  302. package/mobile/dist/components/Calculator/renderProposal.js.map +1 -0
  303. package/mobile/dist/components/Calculator/renderProposalMortgage.d.ts +7 -0
  304. package/mobile/dist/components/Calculator/renderProposalMortgage.js +9 -0
  305. package/mobile/dist/components/Calculator/renderProposalMortgage.js.map +1 -0
  306. package/mobile/dist/components/Calculator/renderRate.d.ts +8 -0
  307. package/mobile/dist/components/Calculator/renderRate.js +9 -0
  308. package/mobile/dist/components/Calculator/renderRate.js.map +1 -0
  309. package/mobile/dist/components/Calculator/renderRealEstateValue.d.ts +10 -0
  310. package/mobile/dist/components/Calculator/renderRealEstateValue.js +15 -0
  311. package/mobile/dist/components/Calculator/renderRealEstateValue.js.map +1 -0
  312. package/mobile/dist/components/Calculator/renderWantedSumInput.d.ts +13 -0
  313. package/mobile/dist/components/Calculator/renderWantedSumInput.js +19 -0
  314. package/mobile/dist/components/Calculator/renderWantedSumInput.js.map +1 -0
  315. package/mobile/dist/components/ContentPage/ContentPage.d.ts +1 -1
  316. package/mobile/dist/components/GroupBlock/BlocksTypeProps.d.ts +36 -0
  317. package/mobile/dist/components/GroupBlock/BlocksTypeProps.js +2 -0
  318. package/mobile/dist/components/GroupBlock/BlocksTypeProps.js.map +1 -0
  319. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.d.ts +4 -0
  320. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.js +9 -0
  321. package/mobile/dist/components/GroupBlock/EmbeddableGroupBlocks.js.map +1 -0
  322. package/mobile/dist/components/GroupBlock/GroupBlock.d.ts +9 -0
  323. package/mobile/dist/components/GroupBlock/GroupBlock.js +19 -0
  324. package/mobile/dist/components/GroupBlock/GroupBlock.js.map +1 -0
  325. package/mobile/dist/components/GroupBlock/GroupBlockContent.d.ts +21 -0
  326. package/mobile/dist/components/GroupBlock/GroupBlockContent.js +2 -0
  327. package/mobile/dist/components/GroupBlock/GroupBlockContent.js.map +1 -0
  328. package/mobile/dist/components/GroupBlock/GroupBlockTabs.d.ts +10 -0
  329. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js +18 -0
  330. package/mobile/dist/components/GroupBlock/GroupBlockTabs.js.map +1 -0
  331. package/mobile/dist/components/GroupBlock/GroupBlocksItem.d.ts +8 -0
  332. package/mobile/dist/components/GroupBlock/GroupBlocksItem.js +20 -0
  333. package/mobile/dist/components/GroupBlock/GroupBlocksItem.js.map +1 -0
  334. package/mobile/dist/components/GroupBlock/filterBlocksByTag.d.ts +2 -0
  335. package/mobile/dist/components/GroupBlock/filterBlocksByTag.js +7 -0
  336. package/mobile/dist/components/GroupBlock/filterBlocksByTag.js.map +1 -0
  337. package/mobile/dist/components/GroupBlock/renderBlocksTypes.d.ts +9 -0
  338. package/mobile/dist/components/GroupBlock/renderBlocksTypes.js +16 -0
  339. package/mobile/dist/components/GroupBlock/renderBlocksTypes.js.map +1 -0
  340. package/mobile/dist/components/OtherProducts/OtherProductsContent.d.ts +4 -2
  341. package/mobile/dist/components/ProductGallery/ProductGalleryContent.d.ts +3 -6
  342. package/mobile/dist/types.d.ts +1 -0
  343. package/mobile/dist/ui-kit/BlocksList/renderBlocksList.d.ts +0 -1
  344. package/mobile/dist/ui-kit/BlocksList/renderBlocksList.js +2 -3
  345. package/mobile/dist/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  346. package/mobile/dist/ui-kit/Checkbox/Checkbox.js +1 -1
  347. package/mobile/dist/ui-kit/Checkbox/Checkbox.js.map +1 -1
  348. package/mobile/dist/ui-kit/InputRange/InputRange.js +2 -2
  349. package/mobile/dist/ui-kit/InputRange/InputRange.js.map +1 -1
  350. package/mobile/dist/ui-kit/InputRange/InputRangeProps.d.ts +2 -1
  351. package/mobile/dist/ui-kit/Tabs/TabsProps.d.ts +2 -1
  352. package/mobile/dist/utils/style2className.d.ts +1 -1
  353. package/mobile/dist/utils/style2className.js +3 -1
  354. package/mobile/dist/utils/style2className.js.map +1 -1
  355. package/mobile/lib/components/BlockContent.d.ts +2 -1
  356. package/mobile/lib/components/Calculator/BonusCalculatorForm.d.ts +5 -0
  357. package/mobile/lib/components/Calculator/BonusCalculatorForm.js +38 -0
  358. package/mobile/lib/components/Calculator/BonusCalculatorForm.js.map +1 -0
  359. package/mobile/lib/components/Calculator/Calculator.d.ts +5 -0
  360. package/mobile/lib/components/Calculator/Calculator.js +44 -0
  361. package/mobile/lib/components/Calculator/Calculator.js.map +1 -0
  362. package/mobile/lib/components/Calculator/CalculatorContent.d.ts +110 -0
  363. package/mobile/lib/components/Calculator/CalculatorContent.js +2 -0
  364. package/mobile/lib/components/Calculator/CalculatorContent.js.map +1 -0
  365. package/mobile/lib/components/Calculator/CalculatorValueBlock.d.ts +8 -0
  366. package/mobile/lib/components/Calculator/CalculatorValueBlock.js +7 -0
  367. package/mobile/lib/components/Calculator/CalculatorValueBlock.js.map +1 -0
  368. package/mobile/lib/components/Calculator/CreditCalculatorForm.d.ts +5 -0
  369. package/mobile/lib/components/Calculator/CreditCalculatorForm.js +49 -0
  370. package/mobile/lib/components/Calculator/CreditCalculatorForm.js.map +1 -0
  371. package/mobile/lib/components/Calculator/DepositCalculatorForm.d.ts +5 -0
  372. package/mobile/lib/components/Calculator/DepositCalculatorForm.js +39 -0
  373. package/mobile/lib/components/Calculator/DepositCalculatorForm.js.map +1 -0
  374. package/mobile/lib/components/Calculator/EmbeddableCalcBlocks.d.ts +11 -0
  375. package/mobile/lib/components/Calculator/EmbeddableCalcBlocks.js +11 -0
  376. package/mobile/lib/components/Calculator/EmbeddableCalcBlocks.js.map +1 -0
  377. package/mobile/lib/components/Calculator/MortgageCalculatorForm.d.ts +5 -0
  378. package/mobile/lib/components/Calculator/MortgageCalculatorForm.js +47 -0
  379. package/mobile/lib/components/Calculator/MortgageCalculatorForm.js.map +1 -0
  380. package/mobile/lib/components/Calculator/constants.d.ts +7 -0
  381. package/mobile/lib/components/Calculator/constants.js +8 -0
  382. package/mobile/lib/components/Calculator/constants.js.map +1 -0
  383. package/mobile/lib/components/Calculator/getCalculatorParams.d.ts +7 -0
  384. package/mobile/lib/components/Calculator/getCalculatorParams.js +8 -0
  385. package/mobile/lib/components/Calculator/getCalculatorParams.js.map +1 -0
  386. package/mobile/lib/components/Calculator/getCreditRate.d.ts +7 -0
  387. package/mobile/lib/components/Calculator/getCreditRate.js +10 -0
  388. package/mobile/lib/components/Calculator/getCreditRate.js.map +1 -0
  389. package/mobile/lib/components/Calculator/getDefaultMonths.d.ts +2 -0
  390. package/mobile/lib/components/Calculator/getDefaultMonths.js +5 -0
  391. package/mobile/lib/components/Calculator/getDefaultMonths.js.map +1 -0
  392. package/mobile/lib/components/Calculator/getDefaultSum.d.ts +2 -0
  393. package/mobile/lib/components/Calculator/getDefaultSum.js +5 -0
  394. package/mobile/lib/components/Calculator/getDefaultSum.js.map +1 -0
  395. package/mobile/lib/components/Calculator/getMonthlyPayment.d.ts +11 -0
  396. package/mobile/lib/components/Calculator/getMonthlyPayment.js +16 -0
  397. package/mobile/lib/components/Calculator/getMonthlyPayment.js.map +1 -0
  398. package/mobile/lib/components/Calculator/renderButtonSection.d.ts +1 -0
  399. package/mobile/lib/components/Calculator/renderButtonSection.js +6 -0
  400. package/mobile/lib/components/Calculator/renderButtonSection.js.map +1 -0
  401. package/mobile/lib/components/Calculator/renderCalculatorList.d.ts +10 -0
  402. package/mobile/lib/components/Calculator/renderCalculatorList.js +14 -0
  403. package/mobile/lib/components/Calculator/renderCalculatorList.js.map +1 -0
  404. package/mobile/lib/components/Calculator/renderInitialFeeInput.d.ts +10 -0
  405. package/mobile/lib/components/Calculator/renderInitialFeeInput.js +15 -0
  406. package/mobile/lib/components/Calculator/renderInitialFeeInput.js.map +1 -0
  407. package/mobile/lib/components/Calculator/renderMonthsInput.d.ts +11 -0
  408. package/mobile/lib/components/Calculator/renderMonthsInput.js +12 -0
  409. package/mobile/lib/components/Calculator/renderMonthsInput.js.map +1 -0
  410. package/mobile/lib/components/Calculator/renderProposal.d.ts +1 -0
  411. package/mobile/lib/components/Calculator/renderProposal.js +7 -0
  412. package/mobile/lib/components/Calculator/renderProposal.js.map +1 -0
  413. package/mobile/lib/components/Calculator/renderProposalMortgage.d.ts +7 -0
  414. package/mobile/lib/components/Calculator/renderProposalMortgage.js +6 -0
  415. package/mobile/lib/components/Calculator/renderProposalMortgage.js.map +1 -0
  416. package/mobile/lib/components/Calculator/renderRate.d.ts +8 -0
  417. package/mobile/lib/components/Calculator/renderRate.js +6 -0
  418. package/mobile/lib/components/Calculator/renderRate.js.map +1 -0
  419. package/mobile/lib/components/Calculator/renderRealEstateValue.d.ts +10 -0
  420. package/mobile/lib/components/Calculator/renderRealEstateValue.js +12 -0
  421. package/mobile/lib/components/Calculator/renderRealEstateValue.js.map +1 -0
  422. package/mobile/lib/components/Calculator/renderWantedSumInput.d.ts +13 -0
  423. package/mobile/lib/components/Calculator/renderWantedSumInput.js +16 -0
  424. package/mobile/lib/components/Calculator/renderWantedSumInput.js.map +1 -0
  425. package/mobile/lib/components/ContentPage/ContentPage.d.ts +1 -1
  426. package/mobile/lib/components/GroupBlock/BlocksTypeProps.d.ts +36 -0
  427. package/mobile/lib/components/GroupBlock/BlocksTypeProps.js +2 -0
  428. package/mobile/lib/components/GroupBlock/BlocksTypeProps.js.map +1 -0
  429. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.d.ts +4 -0
  430. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.js +7 -0
  431. package/mobile/lib/components/GroupBlock/EmbeddableGroupBlocks.js.map +1 -0
  432. package/mobile/lib/components/GroupBlock/GroupBlock.d.ts +9 -0
  433. package/mobile/lib/components/GroupBlock/GroupBlock.js +17 -0
  434. package/mobile/lib/components/GroupBlock/GroupBlock.js.map +1 -0
  435. package/mobile/lib/components/GroupBlock/GroupBlockContent.d.ts +21 -0
  436. package/mobile/lib/components/GroupBlock/GroupBlockContent.js +2 -0
  437. package/mobile/lib/components/GroupBlock/GroupBlockContent.js.map +1 -0
  438. package/mobile/lib/components/GroupBlock/GroupBlockTabs.d.ts +10 -0
  439. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js +16 -0
  440. package/mobile/lib/components/GroupBlock/GroupBlockTabs.js.map +1 -0
  441. package/mobile/lib/components/GroupBlock/GroupBlocksItem.d.ts +8 -0
  442. package/mobile/lib/components/GroupBlock/GroupBlocksItem.js +17 -0
  443. package/mobile/lib/components/GroupBlock/GroupBlocksItem.js.map +1 -0
  444. package/mobile/lib/components/GroupBlock/filterBlocksByTag.d.ts +2 -0
  445. package/mobile/lib/components/GroupBlock/filterBlocksByTag.js +4 -0
  446. package/mobile/lib/components/GroupBlock/filterBlocksByTag.js.map +1 -0
  447. package/mobile/lib/components/GroupBlock/renderBlocksTypes.d.ts +9 -0
  448. package/mobile/lib/components/GroupBlock/renderBlocksTypes.js +13 -0
  449. package/mobile/lib/components/GroupBlock/renderBlocksTypes.js.map +1 -0
  450. package/mobile/lib/components/OtherProducts/OtherProductsContent.d.ts +4 -2
  451. package/mobile/lib/components/ProductGallery/ProductGalleryContent.d.ts +3 -6
  452. package/mobile/lib/types.d.ts +1 -0
  453. package/mobile/lib/ui-kit/BlocksList/renderBlocksList.d.ts +0 -1
  454. package/mobile/lib/ui-kit/BlocksList/renderBlocksList.js +1 -1
  455. package/mobile/lib/ui-kit/BlocksList/renderBlocksList.js.map +1 -1
  456. package/mobile/lib/ui-kit/Checkbox/Checkbox.js +1 -1
  457. package/mobile/lib/ui-kit/Checkbox/Checkbox.js.map +1 -1
  458. package/mobile/lib/ui-kit/InputRange/InputRange.js +2 -2
  459. package/mobile/lib/ui-kit/InputRange/InputRange.js.map +1 -1
  460. package/mobile/lib/ui-kit/InputRange/InputRangeProps.d.ts +2 -1
  461. package/mobile/lib/ui-kit/Tabs/TabsProps.d.ts +2 -1
  462. package/mobile/lib/utils/style2className.d.ts +1 -1
  463. package/mobile/lib/utils/style2className.js +3 -1
  464. package/mobile/lib/utils/style2className.js.map +1 -1
  465. package/mobile/src/common.css +7 -0
  466. package/mobile/src/components/BlockContent.ts +3 -1
  467. package/mobile/src/components/Calculator/BonusCalculatorForm.tsx +71 -0
  468. package/mobile/src/components/Calculator/Calculator.tsx +141 -0
  469. package/mobile/src/components/Calculator/CalculatorContent.ts +134 -0
  470. package/mobile/src/components/Calculator/CalculatorValueBlock.tsx +25 -0
  471. package/mobile/src/components/Calculator/CreditCalculatorForm.tsx +99 -0
  472. package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +69 -0
  473. package/mobile/src/components/Calculator/EmbeddableCalcBlocks.tsx +17 -0
  474. package/mobile/src/components/Calculator/MortgageCalculatorForm.tsx +88 -0
  475. package/mobile/src/components/Calculator/constants.ts +8 -0
  476. package/mobile/src/components/Calculator/getCalculatorParams.ts +16 -0
  477. package/mobile/src/components/Calculator/getCreditRate.ts +18 -0
  478. package/mobile/src/components/Calculator/getDefaultMonths.ts +7 -0
  479. package/mobile/src/components/Calculator/getDefaultSum.ts +7 -0
  480. package/mobile/src/components/Calculator/getMonthlyPayment.ts +32 -0
  481. package/mobile/src/components/Calculator/renderButtonSection.tsx +7 -0
  482. package/mobile/src/components/Calculator/renderCalculatorList.tsx +43 -0
  483. package/mobile/src/components/Calculator/renderInitialFeeInput.tsx +37 -0
  484. package/mobile/src/components/Calculator/renderMonthsInput.tsx +34 -0
  485. package/mobile/src/components/Calculator/renderProposal.tsx +14 -0
  486. package/mobile/src/components/Calculator/renderProposalMortgage.tsx +17 -0
  487. package/mobile/src/components/Calculator/renderRate.tsx +23 -0
  488. package/mobile/src/components/Calculator/renderRealEstateValue.tsx +33 -0
  489. package/mobile/src/components/Calculator/renderWantedSumInput.tsx +49 -0
  490. package/mobile/src/components/ContentPage/ContentPage.page.json +9 -8
  491. package/mobile/src/components/ContentPage/ContentPage.tsx +2 -2
  492. package/mobile/src/components/GroupBlock/BlocksTypeProps.ts +40 -0
  493. package/mobile/src/components/GroupBlock/EmbeddableGroupBlocks.tsx +7 -0
  494. package/mobile/src/components/GroupBlock/GroupBlock.example.json +27 -0
  495. package/mobile/src/components/GroupBlock/GroupBlock.tsx +43 -0
  496. package/mobile/src/components/GroupBlock/GroupBlockContent.ts +23 -0
  497. package/mobile/src/components/GroupBlock/GroupBlockTabs.tsx +54 -0
  498. package/mobile/src/components/GroupBlock/GroupBlocksItem.tsx +30 -0
  499. package/mobile/src/components/GroupBlock/filterBlocksByTag.ts +5 -0
  500. package/mobile/src/components/GroupBlock/renderBlocksTypes.tsx +27 -0
  501. package/mobile/src/components/OtherProducts/OtherProductsContent.ts +4 -2
  502. package/mobile/src/components/ProductGallery/ProductGallery.example.json +8 -10
  503. package/mobile/src/components/ProductGallery/ProductGalleryContent.ts +3 -6
  504. package/mobile/src/icons/SafeIcon.svg +7 -1
  505. package/mobile/src/types.ts +2 -0
  506. package/mobile/src/ui-kit/BlocksList/renderBlocksList.tsx +1 -1
  507. package/mobile/src/ui-kit/Checkbox/Checkbox.tsx +1 -3
  508. package/mobile/src/ui-kit/InputRange/InputRange.tsx +7 -9
  509. package/mobile/src/ui-kit/InputRange/InputRangeProps.ts +3 -1
  510. package/mobile/src/ui-kit/Tabs/TabsProps.ts +2 -1
  511. package/mobile/src/utils/style2className.ts +3 -2
  512. package/package.json +1 -1
  513. package/src/common.css +7 -0
  514. package/src/components/BlockContent.ts +3 -1
  515. package/src/components/Blocks.ts +4 -2
  516. package/src/components/Calculator/BonusCalculatorForm.tsx +71 -0
  517. package/src/components/Calculator/Calculator.fixture.tsx +131 -0
  518. package/src/components/Calculator/Calculator.tsx +141 -0
  519. package/src/components/Calculator/CalculatorContent.ts +134 -0
  520. package/src/components/Calculator/CalculatorValueBlock.tsx +25 -0
  521. package/src/components/Calculator/CreditCalculatorForm.tsx +99 -0
  522. package/src/components/Calculator/DepositCalculatorForm.tsx +69 -0
  523. package/src/components/Calculator/EmbeddableCalcBlocks.tsx +17 -0
  524. package/src/components/Calculator/MortgageCalculatorForm.tsx +88 -0
  525. package/src/components/Calculator/constants.ts +8 -0
  526. package/src/components/Calculator/getCalculatorParams.ts +16 -0
  527. package/src/components/Calculator/getCreditRate.ts +18 -0
  528. package/src/components/Calculator/getDefaultMonths.ts +7 -0
  529. package/src/components/Calculator/getDefaultSum.ts +7 -0
  530. package/src/components/Calculator/getMonthlyPayment.ts +32 -0
  531. package/src/components/Calculator/renderButtonSection.tsx +7 -0
  532. package/src/components/Calculator/renderCalculatorList.tsx +43 -0
  533. package/src/components/Calculator/renderInitialFeeInput.tsx +37 -0
  534. package/src/components/Calculator/renderMonthsInput.tsx +34 -0
  535. package/src/components/Calculator/renderProposal.tsx +14 -0
  536. package/src/components/Calculator/renderProposalMortgage.tsx +17 -0
  537. package/src/components/Calculator/renderRate.tsx +23 -0
  538. package/src/components/Calculator/renderRealEstateValue.tsx +33 -0
  539. package/src/components/Calculator/renderWantedSumInput.tsx +49 -0
  540. package/src/components/ContentPage/ContentPage.page.json +9 -8
  541. package/src/components/ContentPage/ContentPage.tsx +2 -2
  542. package/src/components/GroupBlock/BlocksTypeProps.ts +40 -0
  543. package/src/components/GroupBlock/EmbeddableGroupBlocks.tsx +7 -0
  544. package/src/components/GroupBlock/GroupBlock.example.json +27 -0
  545. package/src/components/GroupBlock/GroupBlock.fixture.tsx +51 -0
  546. package/src/components/GroupBlock/GroupBlock.tsx +43 -0
  547. package/src/components/GroupBlock/GroupBlockContent.ts +23 -0
  548. package/src/components/GroupBlock/GroupBlockTabs.tsx +54 -0
  549. package/src/components/GroupBlock/GroupBlocksItem.tsx +30 -0
  550. package/src/components/GroupBlock/filterBlocksByTag.ts +5 -0
  551. package/src/components/GroupBlock/renderBlocksTypes.tsx +27 -0
  552. package/src/components/OtherProducts/OtherProductsContent.ts +4 -2
  553. package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +1 -1
  554. package/src/components/ProductBlock/ProductBlockInner.tsx +1 -1
  555. package/src/components/ProductGallery/ProductGallery.example.json +8 -10
  556. package/src/components/ProductGallery/ProductGallery.fixture.tsx +146 -104
  557. package/src/components/ProductGallery/ProductGallery.tsx +73 -24
  558. package/src/components/ProductGallery/ProductGalleryContent.ts +3 -6
  559. package/src/icons/SafeIcon.svg +7 -1
  560. package/src/types.ts +2 -0
  561. package/src/ui-kit/BlocksList/renderBlocksList.tsx +1 -1
  562. package/src/ui-kit/Checkbox/Checkbox.tsx +1 -3
  563. package/src/ui-kit/InputRange/InputRange.tsx +7 -9
  564. package/src/ui-kit/InputRange/InputRangeProps.ts +3 -1
  565. package/src/ui-kit/Tabs/TabsProps.ts +2 -1
  566. package/src/utils/style2className.ts +3 -2
  567. package/dist/components/ProductGalleryGreen/ProductGalleryGreen.d.ts +0 -5
  568. package/dist/components/ProductGalleryGreen/ProductGalleryGreen.js +0 -55
  569. package/dist/components/ProductGalleryGreen/ProductGalleryGreen.js.map +0 -1
  570. package/dist/components/ProductGalleryGreen/ProductGalleryGreenContent.d.ts +0 -32
  571. package/dist/components/ProductGalleryGreen/ProductGalleryGreenContent.js.map +0 -1
  572. package/lib/components/ProductGalleryGreen/ProductGalleryGreen.d.ts +0 -5
  573. package/lib/components/ProductGalleryGreen/ProductGalleryGreen.js +0 -53
  574. package/lib/components/ProductGalleryGreen/ProductGalleryGreen.js.map +0 -1
  575. package/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.d.ts +0 -32
  576. package/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.js +0 -2
  577. package/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.js.map +0 -1
  578. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.d.ts +0 -5
  579. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.js +0 -55
  580. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.js.map +0 -1
  581. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreenContent.d.ts +0 -32
  582. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreenContent.js.map +0 -1
  583. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.d.ts +0 -5
  584. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.js +0 -53
  585. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.js.map +0 -1
  586. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.d.ts +0 -32
  587. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.js +0 -2
  588. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.js.map +0 -1
  589. package/mobile/src/components/ProductGalleryGreen/ProductGalleryGreen.example.json +0 -23
  590. package/mobile/src/components/ProductGalleryGreen/ProductGalleryGreen.tsx +0 -126
  591. package/mobile/src/components/ProductGalleryGreen/ProductGalleryGreenContent.ts +0 -34
  592. package/src/components/ProductGalleryGreen/ProductGalleryGreen.example.json +0 -23
  593. package/src/components/ProductGalleryGreen/ProductGalleryGreen.fixture.tsx +0 -186
  594. package/src/components/ProductGalleryGreen/ProductGalleryGreen.tsx +0 -126
  595. package/src/components/ProductGalleryGreen/ProductGalleryGreenContent.ts +0 -34
@@ -725,7 +725,7 @@
725
725
 
726
726
  const ProductBlockInner = JSX(({ className = '', context, title, headingType = 'h2', description, benefits, benefitsVersion = 'normal', buttons, image, items, version = 'primary', isDotted = true, textBlockClassName = '', }) => {
727
727
  const textColor = version === 'secondary' ? 'text-white' : 'text-primary-text';
728
- 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 })), benefits?.filter((items) => items.label)?.length ? (jsx("div", { className: "flex gap-6 mt-6", children: benefits.map((benefit, i) => renderBenefit({ 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-auto", image: image })] }));
728
+ 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 })), benefits?.filter((items) => items.label)?.length ? (jsx("div", { className: "flex gap-6 mt-6", children: benefits.map((benefit, i) => renderBenefit({ 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 })] }));
729
729
  });
730
730
  const getTitle = (title, headingType) => {
731
731
  return (title && (jsx(Heading, { headingType: headingType, title: title, className: "whitespace-pre-wrap max-w-[600px]" })));
@@ -933,8 +933,8 @@
933
933
  LinkList,
934
934
  };
935
935
 
936
- const renderBlocksList = ({ blocks, context, className, columns }) => blocks?.length ? blocks.map(renderBlock$1({ context, className, columns })) : null;
937
- const renderBlock$1 = ({ context, columns, className }) => (block, i) => {
936
+ const renderBlocksList = ({ blocks, context, className, columns }) => blocks?.length ? blocks.map(renderBlock$3({ context, className, columns })) : null;
937
+ const renderBlock$3 = ({ context, columns, className }) => (block, i) => {
938
938
  const type = block?.blockListType;
939
939
  if (!type || !(type in EmbeddableBlocks)) {
940
940
  return null;
@@ -1078,30 +1078,6 @@
1078
1078
  return (jsx("div", { className: "pr-[50px]", children: jsxs("div", { className: "flex w-full", children: [jsx("div", { className: FIRST_CELL_CLASSES$1 }), jsx("button", { onClick: onClick, className: "mt-5 flex-1 border-main-stroke border-solid border text-primary-text bg-white hover:border-primary-main hover:text-primary-main", children: jsx("div", { className: "font-sans font-medium text-xs py-[11px]", children: !isShowAllRow ? 'Показать все параметры' : 'Скрыть' }) })] }) }));
1079
1079
  };
1080
1080
 
1081
- const TAB_STYLE = 'px-2 h-14 pb-2 pt-3 border border-b-0 border-main-stroke';
1082
- const ACTIVE_TAB_STYLE = 'px-2 h-16 pt-4 pb-2 text-white bg-primary-main';
1083
- const Tabs = JSX(({ tabs, currentTabIndex, onTabClick }) => {
1084
- return (jsx("div", { className: "flex items-end border-b border-main-stroke", role: "tablist", children: tabs?.map(renderTab$1(currentTabIndex, onTabClick)) }));
1085
- });
1086
- const renderTab$1 = (currentTabIndex, onTabClick) => (tab, index) => {
1087
- const isActive = currentTabIndex === index;
1088
- 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)));
1089
- };
1090
- 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 }) }));
1091
-
1092
- function getTileHeadingType(className = '') {
1093
- const colSpan = getColSpan(className);
1094
- if (colSpan <= 4) {
1095
- return 'h4';
1096
- }
1097
- else if (colSpan <= 8) {
1098
- return 'h3';
1099
- }
1100
- else {
1101
- return 'h2';
1102
- }
1103
- }
1104
-
1105
1081
  function useCreditCalculatorData(useAsyncData, directoryName) {
1106
1082
  const { data } = useAsyncData(creditCalculatorUrl(directoryName), fetchCreditCalculatorData);
1107
1083
  return data || {};
@@ -1128,10 +1104,345 @@
1128
1104
  ];
1129
1105
  const Checkbox = JSX(({ text, checked, onChange, className }) => (jsx("div", { className: className, children: jsxs("label", { className: "flex items-center cursor-pointer relative", children: [jsx("input", { className: `peer appearance-none w-5 h-5 border-solid border ${checked ? 'border-black' : 'border-main-stroke'} rounded checked:bg-primary-main checked:border-primary-main m-0`, type: "checkbox", onChange: (e) => {
1130
1106
  onChange(e.target.checked);
1131
- }, checked: checked }), jsx(SVG, { paths: CHECK_PATHS, className: "hidden absolute left-1 ml-px peer-checked:block", width: "11", height: "9", fill: "white", viewBox: "0 0 11 9" }), text ? (jsx("span", { className: "font-sans ml-3 text-sm leading-5 cursor-pointer", children: text })) : null] }) })));
1107
+ }, checked: checked }), jsx(SVG, { paths: CHECK_PATHS, className: "hidden absolute left-1 ml-px peer-checked:block", width: "11", height: "9", fill: "white", viewBox: "0 0 11 9" }), text ? jsx("span", { className: "font-sans ml-3 text-m-base cursor-pointer", children: text }) : null] }) })));
1108
+
1109
+ const addSpacesBetweenNumbers = (number) => new Intl.NumberFormat('ru-RU', { maximumSignificantDigits: 3 }).format(number);
1110
+
1111
+ const CalculatorValueBlock = JSX(({ title, value, postfix = '', prefix, className = '' }) => {
1112
+ 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] }));
1113
+ });
1114
+
1115
+ const DEFAULT_MIN_SUM$1 = 30000;
1116
+ const DEFAULT_MAX_SUM$1 = 3000000;
1117
+ const DEFAULT_SUM$1 = (DEFAULT_MAX_SUM$1 - DEFAULT_MIN_SUM$1) / 2;
1118
+ const DEFAULT_MIN_MONTHS$1 = 1;
1119
+ const DEFAULT_MAX_MONTHS$1 = 84;
1120
+ const DEFAULT_MONTHS$1 = Math.round((DEFAULT_MAX_MONTHS$1 - DEFAULT_MIN_MONTHS$1) / 2);
1121
+ const MONTHS_IN_YEAR$1 = 12;
1122
+
1123
+ const InputRange = JSX(({ className, title, items = [], min = 1, max = 100, step = 1, value = min, onChange }) => {
1124
+ const handleChange = (value) => {
1125
+ if (!onChange)
1126
+ return;
1127
+ const sanitizedValue = Number(value.replace(/\D/g, ''));
1128
+ onChange(sanitizedValue);
1129
+ };
1130
+ const inputStyle = {
1131
+ backgroundSize: `${(((value - min) * 100) / (max - min)).toFixed(2)}% 100%`,
1132
+ };
1133
+ const handleBlur = () => {
1134
+ if (!onChange)
1135
+ return;
1136
+ if (value < min)
1137
+ onChange(min);
1138
+ if (value > max)
1139
+ onChange(max);
1140
+ };
1141
+ 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
1142
+ 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)))) })] }));
1143
+ });
1144
+
1145
+ const STEP_MONEY$3 = 1000;
1146
+ function renderWantedSumInput$1(props) {
1147
+ const { title, className = '', calculatorParams, moneyValue, defaultSum, setMoneyValue, isShowItems = true, } = props;
1148
+ const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM$1;
1149
+ const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM$1;
1150
+ const items = [
1151
+ `От ${addSpacesBetweenNumbers(minSum)} ₽`,
1152
+ `До ${addSpacesBetweenNumbers(maxSum)} ₽`,
1153
+ ];
1154
+ return (jsx(InputRange, { className: className, title: title, items: isShowItems ? items : [], min: minSum, max: maxSum, step: STEP_MONEY$3, value: moneyValue || defaultSum, onChange: setMoneyValue }));
1155
+ }
1156
+
1157
+ const DEFAULT_RATE$1 = 10.2;
1158
+ const getCreditRate$1 = (params) => {
1159
+ const { calculatorParams, isInsurance } = params;
1160
+ if (!calculatorParams)
1161
+ return DEFAULT_RATE$1;
1162
+ return isInsurance
1163
+ ? calculatorParams?.rateWithInsurance || DEFAULT_RATE$1
1164
+ : calculatorParams?.rateWithoutInsurance || DEFAULT_RATE$1;
1165
+ };
1166
+
1167
+ const getCalculatorParams$1 = (params) => {
1168
+ const { tableRows, isAnnuity = false } = params;
1169
+ if (!tableRows)
1170
+ return {};
1171
+ const calculatorParams = tableRows.find((row) => row.isAnnuity === isAnnuity);
1172
+ return calculatorParams || {};
1173
+ };
1174
+
1175
+ const getDefaultSum$1 = (calculatorParams) => calculatorParams.maxSum && calculatorParams.minSum
1176
+ ? (calculatorParams.maxSum - calculatorParams.minSum) / 2
1177
+ : DEFAULT_SUM$1;
1178
+
1179
+ const getDefaultMonths$1 = (calculatorParams) => calculatorParams.maxMonths && calculatorParams.minMonths
1180
+ ? Math.round((calculatorParams.maxMonths - calculatorParams.minMonths) / 2)
1181
+ : DEFAULT_MONTHS$1;
1132
1182
 
1133
1183
  const clamp = (value, min, max) => Math.max(min, Math.min(value, max));
1134
1184
 
1185
+ const getMonthlyPayment$1 = (params) => {
1186
+ const { calculatorParams, paymentType, rate, sum, months } = params;
1187
+ if (!calculatorParams)
1188
+ return 0;
1189
+ const finalSum = clamp(sum, calculatorParams.minSum || DEFAULT_MIN_SUM$1, calculatorParams.maxSum || DEFAULT_MAX_SUM$1);
1190
+ if (paymentType === 'annuity') {
1191
+ const annuityCoef = Number(rate) / (MONTHS_IN_YEAR$1 * 100);
1192
+ return finalSum * (annuityCoef + annuityCoef / (Math.pow(1 + annuityCoef, months) - 1));
1193
+ }
1194
+ else {
1195
+ return finalSum / months + finalSum * (Number(rate) / 12);
1196
+ }
1197
+ };
1198
+
1199
+ const STEP_MONTHS$1 = 1;
1200
+ function renderMonthsInput$1(props) {
1201
+ const { title, minMonths, maxMonths, monthsValue, defaultMonths, setMonthsValue } = props;
1202
+ const monthText = (month) => {
1203
+ const text = Number(month) % 10 === 1 ? 'месяца' : 'месяцев';
1204
+ return `${month} ${text}`;
1205
+ };
1206
+ 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 }));
1207
+ }
1208
+
1209
+ function renderButtonSection(context, buttons) {
1210
+ return buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex flex-col mt-7 gap-2" })) : null;
1211
+ }
1212
+
1213
+ function renderRate({ rate, title, sup, className = '' }) {
1214
+ const rateFormat = String(rate).replace('.', ',');
1215
+ 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 }) : ''] })] }));
1216
+ }
1217
+
1218
+ const DEFAULT_PAYMENT_TYPE$1 = 'annuity';
1219
+ const CreditCalculatorForm$1 = JSX(({ context, className = '', buttons }) => {
1220
+ const [moneyValue, setMoneyValue] = context.useState(undefined);
1221
+ const [monthsValue, setMonthsValue] = context.useState(undefined);
1222
+ const [isAnnuity, toggleIsAnnuity] = context.useState(false);
1223
+ const [isBudgetary, toggleIsBudgetary] = context.useState(false);
1224
+ const [isInsurance, toggleIsInsurance] = context.useState(false);
1225
+ const tableRows = useCreditCalculatorData(context.useAsyncData, 'directoryName').rows;
1226
+ const calculatorParams = getCalculatorParams$1({ tableRows, isAnnuity: isAnnuity });
1227
+ const defaultSum = getDefaultSum$1(calculatorParams);
1228
+ const defaultMonths = getDefaultMonths$1(calculatorParams);
1229
+ const minMonths = calculatorParams?.minMonths || DEFAULT_MIN_MONTHS$1;
1230
+ const maxMonths = calculatorParams?.maxMonths || DEFAULT_MAX_MONTHS$1;
1231
+ const rate = getCreditRate$1({ calculatorParams, isInsurance: isInsurance });
1232
+ const monthlyPayment = getMonthlyPayment$1({
1233
+ calculatorParams,
1234
+ paymentType: DEFAULT_PAYMENT_TYPE$1,
1235
+ rate,
1236
+ sum: moneyValue || defaultSum,
1237
+ months: monthsValue || defaultMonths,
1238
+ });
1239
+ const title = 'Сумма кредита, ₽';
1240
+ return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput$1({ title, calculatorParams, moneyValue, defaultSum, setMoneyValue }), renderMonthsInput$1({
1241
+ title: 'Сумма кредита, ₽',
1242
+ minMonths,
1243
+ maxMonths,
1244
+ monthsValue,
1245
+ defaultMonths,
1246
+ setMonthsValue,
1247
+ }), jsxs("div", { className: "pt-7", children: [jsx(Checkbox, { text: "\u041F\u043E\u043B\u0443\u0447\u0430\u044E \u0437\u0430\u0440\u043F\u043B\u0430\u0442\u0443 \u043D\u0430 \u0441\u0447\u0451\u0442 \u0432 \u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u0435", checked: isAnnuity, onChange: toggleIsAnnuity }), jsx(Checkbox, { className: "mt-3", text: "\u0420\u0430\u0431\u043E\u0442\u0430\u044E \u0432 \u0431\u044E\u0434\u0436\u0435\u0442\u043D\u043E\u0439 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", checked: isBudgetary, onChange: toggleIsBudgetary }), jsx(Checkbox, { className: "mt-3", 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: isInsurance, onChange: toggleIsInsurance })] })] }), jsx("div", { children: rate
1248
+ ? renderRate({ rate: rate, title: 'Ставка', sup: '%', className: 'tracking-[-25px]' })
1249
+ : 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)] })] }));
1250
+ });
1251
+
1252
+ const STEP_MONEY$2 = 1000;
1253
+ function renderRealEstateValue(props) {
1254
+ const { calculatorParams, moneyValue, defaultSum, setMoneyValue } = props;
1255
+ const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM$1;
1256
+ const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM$1;
1257
+ 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 }));
1258
+ }
1259
+
1260
+ const STEP_MONEY$1 = 1000;
1261
+ function renderInitialFeeInput(props) {
1262
+ const { calculatorParams, moneyValue, defaultSum, setMoneyValue } = props;
1263
+ const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM$1;
1264
+ const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM$1;
1265
+ 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: [
1266
+ `От ${addSpacesBetweenNumbers(minSum)} рублей`,
1267
+ `До ${addSpacesBetweenNumbers(maxSum)} рублей`,
1268
+ ], min: minSum, max: maxSum, step: STEP_MONEY$1, value: moneyValue || defaultSum, onChange: setMoneyValue }));
1269
+ }
1270
+
1271
+ function renderProposalMortgage({ credit, period, taxRefund }) {
1272
+ return (jsxs("div", { children: [jsx(CalculatorValueBlock, { title: "\u0421\u0443\u043C\u043C\u0430 \u043A\u0440\u0435\u0434\u0438\u0442\u0430", value: credit, postfix: "\u20BD" }), jsx(CalculatorValueBlock, { title: "\u0421\u0440\u043E\u043A", value: period, postfix: "\u043B\u0435\u0442" }), jsx(CalculatorValueBlock, { title: "\u041D\u0430\u043B\u043E\u0433\u043E\u0432\u044B\u0439 \u0432\u044B\u0447\u0435\u0442", value: taxRefund, postfix: "\u20BD" })] }));
1273
+ }
1274
+
1275
+ const MortgageCalculatorForm = JSX(({ context, className = '', buttons }) => {
1276
+ const [moneyValue, setMoneyValue] = context.useState(undefined);
1277
+ const [monthsValue, setMonthsValue] = context.useState(undefined);
1278
+ const [isInsurance, toggleIsInsurance] = context.useState(false);
1279
+ const [isFullInsurance, toggleIsFullInsurance] = context.useState(false);
1280
+ const tableRows = useCreditCalculatorData(context.useAsyncData, 'directoryName').rows;
1281
+ const calculatorParams = getCalculatorParams$1({ tableRows, isAnnuity: isInsurance });
1282
+ const defaultSum = getDefaultSum$1(calculatorParams);
1283
+ const defaultMonths = getDefaultMonths$1(calculatorParams);
1284
+ const minMonths = calculatorParams?.minMonths || DEFAULT_MIN_MONTHS$1;
1285
+ const maxMonths = calculatorParams?.maxMonths || DEFAULT_MAX_MONTHS$1;
1286
+ const rate = getCreditRate$1({ calculatorParams, isInsurance: isInsurance });
1287
+ const monthlyPayment = 777777; // TODO: hardcode
1288
+ const proposalMortgageValue = { credit: 3892000, period: 15, taxRefund: 650000 }; // TODO: hardcode
1289
+ return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderRealEstateValue({ calculatorParams, moneyValue, defaultSum, setMoneyValue }), renderInitialFeeInput({
1290
+ calculatorParams,
1291
+ moneyValue,
1292
+ defaultSum,
1293
+ setMoneyValue,
1294
+ }), renderMonthsInput$1({
1295
+ title: 'Срок ипотеки, месяцев',
1296
+ minMonths,
1297
+ maxMonths,
1298
+ monthsValue,
1299
+ defaultMonths,
1300
+ setMonthsValue,
1301
+ }), jsxs("div", { className: "mt-7", children: [jsx(Checkbox, { text: "\u0421\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u043D\u0438\u0435 \u0436\u0438\u0437\u043D\u0438", checked: isInsurance, onChange: toggleIsInsurance }), jsx(Checkbox, { className: "mt-4", text: "\u0421\u0442\u0440\u0430\u0445\u043E\u0432\u0430\u043D\u0438\u0435 \u0436\u0438\u0437\u043D\u0438, \u0437\u043B\u043E\u0440\u043E\u0432\u044C\u044F \u0438 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0443\u0442\u0440\u0430\u0442\u044B \u0442\u0440\u0443\u0434\u043E\u0441\u043F\u043E\u0441\u043E\u0431\u043D\u043E\u0441\u0442\u0438", checked: isFullInsurance, onChange: toggleIsFullInsurance })] })] }), jsxs("div", { children: [jsx("div", { children: rate
1302
+ ? renderRate({ rate: rate, title: 'Ставка', sup: '%', className: 'tracking-[-25px]' })
1303
+ : null }), jsx(CalculatorValueBlock, { title: "\u0415\u0436\u0435\u043C\u0435\u0441\u044F\u0447\u043D\u044B\u0439 \u043F\u043B\u0430\u0442\u0435\u0436", value: monthlyPayment, postfix: "\u20BD" })] }), jsxs("div", { children: [jsx("div", { className: "w-[351px]", children: renderProposalMortgage(proposalMortgageValue) }), renderButtonSection(context, buttons)] })] }));
1304
+ });
1305
+
1306
+ const DepositCalculatorForm = JSX(({ context, className = '', buttons, rate, minSum, maxSum, minMonths, maxMonths }) => {
1307
+ const [moneyValue, setMoneyValue] = context.useState(undefined);
1308
+ const [monthsValue, setMonthsValue] = context.useState(undefined);
1309
+ const tableRows = useCreditCalculatorData(context.useAsyncData, 'directoryName').rows;
1310
+ const calculatorParams = getCalculatorParams$1({ tableRows, isAnnuity: false });
1311
+ const defaultSum = getDefaultSum$1(calculatorParams);
1312
+ const defaultMonths = getDefaultMonths$1(calculatorParams);
1313
+ const income = 948841;
1314
+ const finallySum = 1218841;
1315
+ return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput$1({
1316
+ title: 'Сумма вклада, ₽',
1317
+ calculatorParams: { minSum, maxSum },
1318
+ moneyValue,
1319
+ defaultSum,
1320
+ setMoneyValue,
1321
+ }), renderMonthsInput$1({
1322
+ title: 'Срок вклада, месяцев',
1323
+ minMonths: minMonths || DEFAULT_MIN_MONTHS$1,
1324
+ maxMonths: maxMonths || DEFAULT_MAX_MONTHS$1,
1325
+ monthsValue,
1326
+ defaultMonths,
1327
+ setMonthsValue,
1328
+ })] }), jsx("div", { children: rate
1329
+ ? renderRate({ rate: rate, title: 'Ставка', sup: '%', className: 'tracking-[-25px]' })
1330
+ : null }), jsxs("div", { className: "w-[351px]", children: [(jsx(CalculatorValueBlock, { title: "\u0414\u043E\u0445\u043E\u0434 \u043F\u043E \u0432\u043A\u043B\u0430\u0434\u0443", value: income, postfix: "\u20BD", prefix: "+" })) , (jsx(CalculatorValueBlock, { title: "\u0421\u0443\u043C\u043C\u0430 \u0432 \u043A\u043E\u043D\u0446\u0435 \u0441\u0440\u043E\u043A\u0430", value: finallySum, postfix: "\u20BD" })) , renderButtonSection(context, buttons)] })] }));
1331
+ });
1332
+
1333
+ const BonusCalculatorForm = JSX(({ context, className = '', buttons, bonus, minSumTrip, maxSumTrip, minSumOther, maxSumOther, }) => {
1334
+ const [bonusTripValue, setBonusTripValue] = context.useState(undefined);
1335
+ const [bonusOtherValue, setBonusOtherValue] = context.useState(undefined);
1336
+ const calculatorTripParams = { minSum: minSumTrip, maxSum: maxSumTrip };
1337
+ const calculatorOtherParams = { minSum: minSumOther, maxSum: maxSumOther };
1338
+ const incomeBonus = 948841;
1339
+ const bonusOrDef = bonus || 2528;
1340
+ return (jsxs("section", { className: className, children: [jsxs("div", { className: "w-[468px]", children: [renderWantedSumInput$1({
1341
+ title: 'Сумма покупок в категории путешествия, ₽',
1342
+ calculatorParams: calculatorTripParams,
1343
+ moneyValue: bonusTripValue,
1344
+ defaultSum: getDefaultSum$1(calculatorTripParams),
1345
+ setMoneyValue: setBonusTripValue,
1346
+ isShowItems: false,
1347
+ }), renderWantedSumInput$1({
1348
+ className: 'mt-6',
1349
+ title: 'Сумма покупок в остальных категориях, ₽',
1350
+ calculatorParams: calculatorOtherParams,
1351
+ moneyValue: bonusOtherValue,
1352
+ defaultSum: getDefaultSum$1(calculatorOtherParams),
1353
+ setMoneyValue: setBonusOtherValue,
1354
+ isShowItems: false,
1355
+ })] }), jsx("div", { children: bonusOrDef
1356
+ ? renderRate({
1357
+ rate: bonusOrDef,
1358
+ title: 'Баллов за месяц',
1359
+ className: 'tracking-[-14px]',
1360
+ })
1361
+ : null }), jsxs("div", { className: "w-[240px]", children: [jsx(CalculatorValueBlock, { title: "\u0411\u0430\u043B\u043B\u043E\u0432 \u0437\u0430 \u0433\u043E\u0434", value: incomeBonus }) , renderButtonSection(context, buttons)] })] }));
1362
+ });
1363
+
1364
+ const EmbeddableCalcBlocks = {
1365
+ CreditCalculatorForm: CreditCalculatorForm$1,
1366
+ MortgageCalculatorForm,
1367
+ DepositCalculatorForm,
1368
+ BonusCalculatorForm,
1369
+ };
1370
+
1371
+ const renderCalculatorList = ({ blockCalcTabs, context, className, }) => {
1372
+ return blockCalcTabs?.length ? blockCalcTabs.map(renderBlock$2({ context, className })) : null;
1373
+ };
1374
+ const renderBlock$2 = ({ context, className }) => (blockCalcTabs, i) => {
1375
+ const type = blockCalcTabs?.calcType;
1376
+ if (!type || !(type in EmbeddableCalcBlocks)) {
1377
+ return null;
1378
+ }
1379
+ const EmbeddedBlock = EmbeddableCalcBlocks[type];
1380
+ return (jsx("section", { className: `box-border relative flex grow-0 shrink-0 basis-full ${className}`, role: "listitem", children: jsx("div", { className: `box-border p-9 w-full`, children: jsx(EmbeddedBlock, { context: context, ...blockCalcTabs, className: "!p-0 flex justify-between" }) }) }, `${String(i)}`));
1381
+ };
1382
+
1383
+ const arrowBtnStyle = 'absolute w-[56px] h-[56px] min-h-[56px] max-h-[56px] top-1 z-10 mt-[25px] bg-white rounded-full';
1384
+ const Calculator = JSX(({ className = '', context, calcTabs = [], anchor = null }) => {
1385
+ const tabsNav = calcTabs.map((_) => _.nav || {});
1386
+ const blockCalcTabs = calcTabs.map(({ calculatorBlock }) => calculatorBlock || {});
1387
+ const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
1388
+ const [tabsShift, setTabsShift] = context.useState(0);
1389
+ const handleNextClick = () => setTabsShift(tabsShift + 1);
1390
+ const handlePrevClick = () => setTabsShift(tabsShift - 1);
1391
+ const isGalleryScrollAvailable = calcTabs?.length > 3;
1392
+ const showNextButton = isGalleryScrollAvailable && calcTabs?.length > tabsShift + 3;
1393
+ const showPrevButton = tabsShift > 0;
1394
+ 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
1395
+ ? renderTabs({ tabsShift, tabsNav, activeSlideIndex, setActiveSlideIndex })
1396
+ : null, showPrevButton ? (jsx(ArrowButton, { className: `${arrowBtnStyle} 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} 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: renderCalculatorList({
1397
+ context,
1398
+ className,
1399
+ blockCalcTabs,
1400
+ }) })] }));
1401
+ });
1402
+ function renderNavButton$1({ tab, i, activeSlideIndex, onClick }) {
1403
+ const isActiveBtn = i === activeSlideIndex;
1404
+ const btnClassName = isActiveBtn
1405
+ ? 'h-[88px] w-[387px] min-w-[387px] p-5 border-none bg-primary-main text-white'
1406
+ : `h-[77px] w-[322px] min-w-[322px] px-5 py-4 ease-in duration-300 bg-white text-primary-text`;
1407
+ const btnTitleClassName = isActiveBtn ? 'text-md-new mb-1.5' : `text-base mb-[3px]`;
1408
+ const btnDescClassName = isActiveBtn ? 'text-base text-white' : `text-m-md`;
1409
+ const iconClassName = isActiveBtn ? '' : `text-primary-main`;
1410
+ return (jsxs("button", { type: "button", onClick: onClick, "aria-label": tab?.title, className: `box-border font-sans relative border-[1px] border-main-stroke cursor-pointer text-left border-b-0 flex
1411
+ ${btnClassName}`, children: [jsx(Img, { className: `h-[24px] w-[24px] min-w-[24px] min-h-[24px] mr-4 ${iconClassName}`, image: { ...tab?.icon, iconVersion: isActiveBtn ? 'white' : 'normal' }, width: "24", height: "24", asSVG: true }), jsxs("div", { className: "border-0", children: [jsx("div", { className: `font-medium ${btnTitleClassName}`, children: tab?.title }), jsx("div", { className: `text-secondary-text ${btnDescClassName}`, children: tab.description })] })] }, String(i)));
1412
+ }
1413
+ function renderTabs({ tabsShift, tabsNav, activeSlideIndex, setActiveSlideIndex }) {
1414
+ return (jsxs("div", { children: [jsx("div", { style: { transform: `translateX(-${tabsShift * 388}px)` }, className: "flex flex-col justify-end items-center h-[126px] pt-[38px] box-border duration-1000", children: jsx("div", { className: "w-full flex flex-nowrap items-end gap-2", children: tabsNav.map((tab, i) => renderNavButton$1({
1415
+ tab,
1416
+ i,
1417
+ activeSlideIndex,
1418
+ onClick: () => setActiveSlideIndex(i),
1419
+ })) }) }), jsx("div", { className: "w-full h-2 bg-primary-main" })] }));
1420
+ }
1421
+
1422
+ const TAB_STYLE = 'px-2 h-14 pb-2 pt-3 border border-b-0 border-main-stroke';
1423
+ const ACTIVE_TAB_STYLE = 'px-2 h-16 pt-4 pb-2 text-white bg-primary-main';
1424
+ const Tabs = JSX(({ tabs, currentTabIndex, onTabClick }) => {
1425
+ return (jsx("div", { className: "flex items-end border-b border-main-stroke", role: "tablist", children: tabs?.map(renderTab$2(currentTabIndex, onTabClick)) }));
1426
+ });
1427
+ const renderTab$2 = (currentTabIndex, onTabClick) => (tab, index) => {
1428
+ const isActive = currentTabIndex === index;
1429
+ 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)));
1430
+ };
1431
+ 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 }) }));
1432
+
1433
+ function getTileHeadingType(className = '') {
1434
+ const colSpan = getColSpan(className);
1435
+ if (colSpan <= 4) {
1436
+ return 'h4';
1437
+ }
1438
+ else if (colSpan <= 8) {
1439
+ return 'h3';
1440
+ }
1441
+ else {
1442
+ return 'h2';
1443
+ }
1444
+ }
1445
+
1135
1446
  const DEFAULT_MIN_SUM = 30000;
1136
1447
  const DEFAULT_MAX_SUM = 3000000;
1137
1448
  const DEFAULT_SUM = (DEFAULT_MAX_SUM - DEFAULT_MIN_SUM) / 2;
@@ -1206,30 +1517,6 @@
1206
1517
  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)));
1207
1518
  }
1208
1519
 
1209
- const addSpacesBetweenNumbers = (number) => new Intl.NumberFormat('ru-RU', { maximumSignificantDigits: 3 }).format(number);
1210
-
1211
- const InputRange = JSX(({ className, title, items = [], min = 1, max = 100, step = 1, value = min, onChange }) => {
1212
- const handleChange = (value) => {
1213
- if (!onChange)
1214
- return;
1215
- const sanitizedValue = Number(value.replace(/\D/g, ''));
1216
- onChange(sanitizedValue);
1217
- };
1218
- const inputStyle = {
1219
- backgroundSize: `${(((value - min) * 100) / (max - min)).toFixed(2)}% 100%`,
1220
- };
1221
- const handleBlur = () => {
1222
- if (!onChange)
1223
- return;
1224
- if (value < min)
1225
- onChange(min);
1226
- if (value > max)
1227
- onChange(max);
1228
- };
1229
- return (jsxs("div", { className: className, children: [jsxs("label", { className: "block relative", children: [title ? (jsx("span", { className: "absolute text-xs text-secondary-text top-1 mt-0.5 pl-4 ml-0.5", children: title })) : null, jsx("input", { className: `m-0 font-sans text-sm w-full h-12 border border-solid border-main-stroke rounded-md
1230
- outline-none p-0 pl-4 m-0 box-border text-primary-text ${title ? 'pt-4' : ''}`, value: addSpacesBetweenNumbers(value), onChange: (e) => handleChange(e.target.value), onBlur: handleBlur }), jsx("div", { className: "absolute inset-x-0 top-[35px] 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) => (jsxs("span", { className: "text-xs leading-[14px] text-secondary-text pl-4", children: [" ", item, " "] }, String(i)))) })] }));
1231
- });
1232
-
1233
1520
  const STEP_MONTHS = 1;
1234
1521
  function renderMonthsInput(props) {
1235
1522
  const { minMonths, maxMonths, monthsValue, defaultMonths, setMonthsValue } = props;
@@ -1754,9 +2041,9 @@
1754
2041
 
1755
2042
  const NavigatorTabs = JSX(({ className = '', navigatorTabs, context, anchor = null }) => {
1756
2043
  const href = globalThis.location?.href; // TODO: remove globalThis, use href from router
1757
- return (jsx("section", { className: `sticky top-0 z-20 box-border flex gap-x-1 h-14 ${className}`, id: anchor, children: navigatorTabs ? navigatorTabs.map(renderTab(context, href)) : null }));
2044
+ return (jsx("section", { className: `sticky top-0 z-20 box-border flex gap-x-1 h-14 ${className}`, id: anchor, children: navigatorTabs ? navigatorTabs.map(renderTab$1(context, href)) : null }));
1758
2045
  });
1759
- const renderTab = (context, href) => (tab, i) => {
2046
+ const renderTab$1 = (context, href) => (tab, i) => {
1760
2047
  const { useRouter, handlerDecorator } = context;
1761
2048
  const router = useRouter();
1762
2049
  const hash = getHash(href);
@@ -1814,34 +2101,6 @@
1814
2101
  primary: 'bg-white text-primary-text',
1815
2102
  secondary: 'bg-primary-main text-white',
1816
2103
  };
1817
- const ProductGalleryBlock = JSX(({ block, headingType, context, className = '' }) => {
1818
- const version = block?.version ?? 'primary';
1819
- return (jsx("section", { className: `flex grow-0 shrink-0 basis-full ${productGalleryStyleMap[version]} ${className}`, role: "listitem", children: jsx("div", { className: "p-10 flex grow", children: jsx(ProductBlockInner, { className: "pl-2.5 pt-2.5 pb-1.5 pr-[6.25rem]", context: context, headingType: headingType || 'h2', ...block }) }) }));
1820
- });
1821
-
1822
- const ProductGallery = JSX(({ className, context, duration = 0, slides = [], anchor = null }) => {
1823
- const galleryNav = slides.map((s) => s.nav);
1824
- const galleryBlocks = slides.map((s) => s.productBlock);
1825
- const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
1826
- return (jsxs("section", { className: `font-sans bg-white overflow-hidden w-100 ${className || ''}`, id: anchor, children: [jsx("div", { className: `flex duration-1000`, style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: galleryBlocks.map((_, i) => (jsx(ProductGalleryBlock, { context: context, block: _ }, String(i)))) }), jsx("div", { className: "flex", children: galleryNav.map((slide, i) => renderNavButton$1({
1827
- slide,
1828
- i,
1829
- activeSlideIndex,
1830
- onClick: () => setActiveSlideIndex(i),
1831
- duration,
1832
- })) })] }));
1833
- });
1834
- function renderNavButton$1({ slide, i, activeSlideIndex, onClick, duration }) {
1835
- const isActiveBtn = i === activeSlideIndex;
1836
- const progressBarClassName = isActiveBtn ? 'animate-slide' : '';
1837
- const btnTitleClassName = isActiveBtn ? 'text-primary-text' : 'text-secondary-text';
1838
- return (jsxs("button", { type: "button", onClick: onClick, "aria-label": slide?.title, className: `font-sans group relative overflow-hidden border-0 bg-inherit cursor-pointer text-left px-0 pt-4 pb-[23px] grow basis-0`, children: [jsxs("div", { className: "border-0 border-r border-solid border-main-divider px-6", children: [jsx("div", { className: `text-sm font-medium pb-[3px] group-hover:text-primary-text ${btnTitleClassName}`, children: slide?.title }), jsx("div", { className: "text-xs text-secondary-text", children: slide.desc })] }), jsx("div", { className: `absolute bottom-0 left-0 w-full h-[3px] bg-primary-main -translate-x-full ${progressBarClassName}`, style: { animationDuration: `${duration}s`, animationFillMode: 'forwards' } })] }, String(i)));
1839
- }
1840
-
1841
- const productGalleryGreenStyleMap = {
1842
- primary: 'bg-white text-primary-text',
1843
- secondary: 'bg-primary-main text-white',
1844
- };
1845
2104
  const productBlockStyleMap = {
1846
2105
  primary: { title: 'text-secondary-text', text: 'text-secondary-text' },
1847
2106
  secondary: { title: 'text-white', text: 'text-white/80' },
@@ -1850,30 +2109,29 @@
1850
2109
  primary: 'bg-white text-primary-text',
1851
2110
  secondary: 'bg-primary-main text-white',
1852
2111
  };
1853
- const ProductGalleryGreen = JSX(({ className = '', context, slides = [], version = 'primary', duration = 0, anchor = null }) => {
2112
+ const ProductGallery = JSX(({ className = '', context, slides = [], version = 'primary', anchor = null }) => {
1854
2113
  const galleryNav = slides.map((s) => s.nav);
1855
2114
  const galleryBlocks = slides.map((s) => s.productBlock);
1856
2115
  const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
1857
2116
  return (jsxs("section", { id: anchor, className: `box-border pt-[50px] overflow-hidden relative font-sans w-100 ${className}
1858
- ${productGalleryGreenStyleMap[version]}`, children: [jsx("div", { className: "flex duration-1000 pb-14", style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: galleryBlocks.map((_, i) => renderProductBlock({ ..._, version }, i, context)) }), jsx("div", { className: "flex items-center absolute bottom-6 left-0 right-0 px-[26px] box-border", children: galleryNav.map((slide, i) => renderNavButton({
2117
+ ${productGalleryStyleMap[version]}`, children: [jsx("div", { className: "flex duration-1000 pb-14", style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: galleryBlocks.map((_, i) => renderProductBlock({ ..._, version }, i, context)) }), jsx("div", { className: "flex items-center absolute bottom-6 left-0 right-0 px-[26px] box-border", children: galleryNav.map((slide, i) => renderNavButton({
1859
2118
  slide,
1860
2119
  i,
1861
2120
  activeSlideIndex,
1862
2121
  onClick: () => setActiveSlideIndex(i),
1863
2122
  version,
1864
- duration,
1865
2123
  })) })] }));
1866
2124
  });
1867
2125
  function renderProductBlock(block, i, context) {
1868
2126
  const { version } = block;
1869
2127
  const additionalClass = version ? productBlockStyleMap[version].title : '';
1870
- return (jsx("section", { className: "box-border relative flex grow-0 shrink-0 basis-full", role: "listitem", children: jsx("div", { className: "flex grow", children: jsx(ProductBlockInner, { className: `pl-[50px] pr-2 z-[1] ${additionalClass}`, context: context, textBlockClassName: "mb-[154px]", ...block }) }) }, String(i)));
2128
+ return (jsx("section", { className: "box-border relative flex grow-0 shrink-0 basis-full", role: "listitem", children: jsx("div", { className: "flex grow", children: jsx(ProductBlockInner, { className: `pl-[50px] z-[1] ${additionalClass}`, context: context, textBlockClassName: "mb-[154px]", ...block }) }) }, String(i)));
1871
2129
  }
1872
- function renderNavButton({ slide, i, activeSlideIndex, onClick, version, duration }) {
2130
+ function renderNavButton({ slide, i, activeSlideIndex, onClick, version }) {
1873
2131
  const isActiveBtn = i === activeSlideIndex;
1874
2132
  const btnClassName = isActiveBtn
1875
- ? 'bg-white shadow-dark-blue/42 h-[102px] w-[354px] min-w-[354px] max-w-[354px] p-0 border-none'
1876
- : `min-w-[277px] px-0 pt-4 pb-[23px] hover:py-[26px] hover:py-[26px] ease-in duration-300
2133
+ ? 'bg-white shadow-dark-blue/42 h-[102px] w-[354px] min-w-[354px] p-0 border-none'
2134
+ : `min-w-[277px] px-0 pt-4 pb-[23px] hover:py-[26px] hover:py-[26px] ease-in duration-300 bg-white/10
1877
2135
  ${productSlideStyleMap[version]}`;
1878
2136
  const btnTitleClassName = isActiveBtn
1879
2137
  ? 'text-primary-text text-title-2xs'
@@ -1881,11 +2139,10 @@
1881
2139
  const btnDescClassName = isActiveBtn
1882
2140
  ? 'text-secondary-text text-m-title-xs mt-2.5'
1883
2141
  : `text-m-md mt-1.5 ${productBlockStyleMap[version].text}`;
1884
- const additionalBorder = version === 'secondary' ? 'border-white/50' : '';
1885
- const progressBarClassName = isActiveBtn ? 'animate-slide' : '';
1886
- return (jsxs("button", { type: "button", onClick: onClick, "aria-label": slide?.title, className: `box-border font-sans group relative overflow-hidden border-[1px] cursor-pointer text-left mx-1 grow basis-0 backdrop-blur-sm
1887
- ${btnClassName} ${additionalBorder}
1888
- `, children: [jsxs("div", { className: "border-0 px-6", children: [jsx("div", { className: `font-medium ${btnTitleClassName}`, children: slide?.title }), jsx("div", { className: `text-secondary-text ${btnDescClassName}`, children: slide.description })] }), jsx("div", { className: `absolute bottom-0 left-0 w-full h-[3px] bg-primary-main -translate-x-full ${progressBarClassName}`, style: { animationDuration: `${duration}s`, animationFillMode: 'forwards' } })] }, String(i)));
2142
+ const additionalBorder = version === 'secondary' ? 'border-white/50' : 'border-black/50';
2143
+ return (jsx("button", { type: "button", onClick: onClick, "aria-label": slide?.title, className: `box-border font-sans relative overflow-hidden border-[1px] border-white/50 cursor-pointer text-left mx-1 grow basis-0
2144
+ ${btnClassName} ${additionalBorder}
2145
+ `, children: jsxs("div", { className: "border-0 px-6", children: [jsx("div", { className: `font-medium ${btnTitleClassName}`, children: slide?.title }), jsx("div", { className: `text-secondary-text ${btnDescClassName}`, children: slide.description })] }) }, String(i)));
1889
2146
  }
1890
2147
 
1891
2148
  const promoTileStyleMap = {
@@ -1990,11 +2247,64 @@
1990
2247
  data: colData.map((col) => col?.[i] || [{}]),
1991
2248
  }));
1992
2249
 
2250
+ const GroupBlockTabs = JSX((props) => {
2251
+ const { tabs, currentTag, onTabClick, className = '', isShowCounter = true } = props;
2252
+ return (jsx("div", { className: `mb-2 box-border flex gap-x-1 h-12 ${className}`, role: "tablist", children: tabs?.map(renderTab(onTabClick, isShowCounter, currentTag)) }));
2253
+ });
2254
+ const badgeStyle = 'w-[22px] h-[22px] rounded-full text-m-sm';
2255
+ const renderTab = (onTabClick, isShowCounter, currentTag) => (tab, i) => {
2256
+ const isActive = currentTag === tab.tag;
2257
+ const tabBg = isActive ? 'bg-primary-main' : 'group bg-white';
2258
+ const tabText = isActive ? 'text-white' : 'text-secondary-text group-hover:text-primary-main';
2259
+ const counterBlockStyle = `${badgeStyle}
2260
+ ${isActive ? 'bg-white/30 text-white' : 'bg-secondary-text/10 text-secondary-text'}`;
2261
+ return (jsx("div", { className: `flex h-full w-full 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)));
2262
+ };
2263
+
2264
+ function style2className(style) {
2265
+ return style ? style.filter(Boolean).join(' ') : '';
2266
+ }
2267
+
2268
+ const EmbeddableGroupBlocks = {
2269
+ ProductBlock,
2270
+ ProductTile,
2271
+ };
2272
+
2273
+ const GroupBlocksItem = JSX(({ groupBlocks, context }) => {
2274
+ return (jsx("div", { className: 'grid grid-cols-12 gap-2 box-border', children: groupBlocks?.length ? groupBlocks.map(renderBlock$1(context)) : null }));
2275
+ });
2276
+ const renderBlock$1 = (context) => (block, i) => {
2277
+ const type = block?.blockType;
2278
+ if (!type || !(type in EmbeddableGroupBlocks)) {
2279
+ return null;
2280
+ }
2281
+ const classNameBlock = style2className(block?.style);
2282
+ const EmbeddedBlock = EmbeddableGroupBlocks[type];
2283
+ return (jsx(EmbeddedBlock, { context: context, ...block, className: classNameBlock }, `block_${i}`));
2284
+ };
2285
+
2286
+ const filterBlocksByTag = (blocks, tag) => {
2287
+ return tag ? blocks.filter((block) => block?.tags?.includes(tag)) : blocks;
2288
+ };
2289
+
2290
+ const GroupBlock = JSX(({ className = '', tabs, context, anchor = null, groupBlocks = [] }) => {
2291
+ const [currentTag, setCurrentTag] = context.useState(tabs?.[0]?.tag);
2292
+ const filteredBlocks = filterBlocksByTag(groupBlocks, currentTag);
2293
+ const tabsNewMap = tabs?.map((tab) => {
2294
+ const count = tab.tag
2295
+ ? groupBlocks.filter((block) => block?.tags?.includes(`${tab.tag}`)).length
2296
+ : groupBlocks.length;
2297
+ return { ...tab, count };
2298
+ });
2299
+ 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("div", { className: "list-none", children: jsx(GroupBlocksItem, { context: context, groupBlocks: filteredBlocks }) })) : null] }));
2300
+ });
2301
+
1993
2302
  const Blocks = {
1994
2303
  Accordion,
1995
2304
  BenefitsBlock,
1996
2305
  Bonus,
1997
2306
  ComparisonTable,
2307
+ Calculator,
1998
2308
  CreditCalculator,
1999
2309
  ExchangeRateTile,
2000
2310
  Footer,
@@ -2009,7 +2319,6 @@
2009
2319
  PictureText,
2010
2320
  ProductBlock,
2011
2321
  ProductGallery,
2012
- ProductGalleryGreen,
2013
2322
  ProductTile,
2014
2323
  PromoTile,
2015
2324
  OtherProducts,
@@ -2020,6 +2329,7 @@
2020
2329
  Tile,
2021
2330
  Navigation,
2022
2331
  Placeholder,
2332
+ GroupBlock,
2023
2333
  };
2024
2334
 
2025
2335
  const changeHashOnScroll = (router, blocks) => {
@@ -2035,8 +2345,6 @@
2035
2345
  });
2036
2346
  };
2037
2347
 
2038
- const style2className = (style) => style ? style.join(' ') : '';
2039
-
2040
2348
  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() })));
2041
2349
  const renderLikeIcon = () => {
2042
2350
  const params = {