@redneckz/wildless-cms-uni-blocks 0.3.11 → 0.3.12

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 (356) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +153 -75
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/cosmos-static/icons/GpsIcon.svg +1 -0
  5. package/dist/components/BaseTile/BaseTile.js +1 -1
  6. package/dist/components/BaseTile/BaseTile.js.map +1 -1
  7. package/dist/components/Blocks.d.ts +1 -0
  8. package/dist/components/Blocks.js +2 -0
  9. package/dist/components/Blocks.js.map +1 -1
  10. package/dist/components/ContentPage/ContentPageContext.d.ts +1 -1
  11. package/dist/components/CreditCalculator/CreditCalculator.d.ts +2 -2
  12. package/dist/components/CreditCalculator/CreditCalculator.js +18 -22
  13. package/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
  14. package/dist/components/CreditCalculator/getCalculatorParams.d.ts +1 -1
  15. package/dist/components/CreditCalculator/getCreditRate.d.ts +1 -1
  16. package/dist/components/CreditCalculator/getDefaultMonths.d.ts +2 -0
  17. package/dist/components/CreditCalculator/getDefaultMonths.js +8 -0
  18. package/dist/components/CreditCalculator/getDefaultMonths.js.map +1 -0
  19. package/dist/components/CreditCalculator/getDefaultSum.d.ts +2 -0
  20. package/dist/components/CreditCalculator/getDefaultSum.js +8 -0
  21. package/dist/components/CreditCalculator/getDefaultSum.js.map +1 -0
  22. package/dist/components/CreditCalculator/getMonthlyPayment.d.ts +1 -1
  23. package/dist/components/CreditCalculator/renderButton.d.ts +1 -0
  24. package/dist/components/CreditCalculator/renderButton.js +8 -0
  25. package/dist/components/CreditCalculator/renderButton.js.map +1 -0
  26. package/dist/components/CreditCalculator/renderMonthsInput.d.ts +10 -0
  27. package/dist/components/CreditCalculator/renderMonthsInput.js +11 -0
  28. package/dist/components/CreditCalculator/renderMonthsInput.js.map +1 -0
  29. package/dist/components/CreditCalculator/renderProposal.d.ts +1 -0
  30. package/dist/components/CreditCalculator/renderProposal.js +9 -0
  31. package/dist/components/CreditCalculator/renderProposal.js.map +1 -0
  32. package/dist/components/CreditCalculator/renderTermsButton.d.ts +1 -0
  33. package/dist/components/CreditCalculator/renderTermsButton.js +9 -0
  34. package/dist/components/CreditCalculator/renderTermsButton.js.map +1 -0
  35. package/dist/components/CreditCalculator/renderWantedSumInput.d.ts +10 -0
  36. package/dist/components/CreditCalculator/renderWantedSumInput.js +18 -0
  37. package/dist/components/CreditCalculator/renderWantedSumInput.js.map +1 -0
  38. package/dist/components/ExchangeRateTile/CurrencyTable.d.ts +7 -0
  39. package/dist/components/ExchangeRateTile/CurrencyTable.js +19 -0
  40. package/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -0
  41. package/dist/components/ExchangeRateTile/CurrentLocation.d.ts +7 -0
  42. package/dist/components/ExchangeRateTile/CurrentLocation.js +7 -0
  43. package/dist/components/ExchangeRateTile/CurrentLocation.js.map +1 -0
  44. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +7 -0
  45. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +15 -0
  46. package/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -0
  47. package/dist/components/ExchangeRateTile/ExchangeRateTile.js +23 -27
  48. package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  49. package/dist/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +10 -0
  50. package/dist/components/ExchangeRateTile/formatCurrency.d.ts +1 -0
  51. package/dist/components/ExchangeRateTile/formatCurrency.js +6 -0
  52. package/dist/components/ExchangeRateTile/formatCurrency.js.map +1 -0
  53. package/dist/hooks/useCreditCalculatorData.js +3 -3
  54. package/dist/hooks/useCreditCalculatorData.js.map +1 -1
  55. package/dist/hooks/useExchangeRates.d.ts +9 -0
  56. package/dist/hooks/useExchangeRates.js +18 -0
  57. package/dist/hooks/useExchangeRates.js.map +1 -0
  58. package/dist/icons/IconName.d.ts +3 -2
  59. package/dist/icons/IconName.js +1 -0
  60. package/dist/icons/IconName.js.map +1 -1
  61. package/dist/model/InputTypes.d.ts +1 -0
  62. package/dist/model/InputTypes.js +2 -0
  63. package/dist/model/InputTypes.js.map +1 -0
  64. package/dist/setup-fixture.js +1 -1
  65. package/dist/setup-fixture.js.map +1 -1
  66. package/dist/ui-kit/Input/Input.d.ts +2 -0
  67. package/dist/ui-kit/Input/Input.js +8 -0
  68. package/dist/ui-kit/Input/Input.js.map +1 -0
  69. package/dist/ui-kit/Input/InputProps.d.ts +8 -0
  70. package/dist/ui-kit/Input/InputProps.js +2 -0
  71. package/dist/ui-kit/Input/InputProps.js.map +1 -0
  72. package/dist/ui-kit/Select/Select.d.ts +6 -0
  73. package/dist/ui-kit/Select/Select.js +8 -0
  74. package/dist/ui-kit/Select/Select.js.map +1 -0
  75. package/dist/ui-kit/Select/SelectOption.d.ts +5 -0
  76. package/dist/ui-kit/Select/SelectOption.js +8 -0
  77. package/dist/ui-kit/Select/SelectOption.js.map +1 -0
  78. package/lib/common.css +1 -1
  79. package/lib/components/BaseTile/BaseTile.js +1 -1
  80. package/lib/components/BaseTile/BaseTile.js.map +1 -1
  81. package/lib/components/Blocks.d.ts +1 -0
  82. package/lib/components/Blocks.js +2 -0
  83. package/lib/components/Blocks.js.map +1 -1
  84. package/lib/components/ContentPage/ContentPageContext.d.ts +1 -1
  85. package/lib/components/CreditCalculator/CreditCalculator.d.ts +2 -2
  86. package/lib/components/CreditCalculator/CreditCalculator.js +19 -23
  87. package/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
  88. package/lib/components/CreditCalculator/getCalculatorParams.d.ts +1 -1
  89. package/lib/components/CreditCalculator/getCreditRate.d.ts +1 -1
  90. package/lib/components/CreditCalculator/getDefaultMonths.d.ts +2 -0
  91. package/lib/components/CreditCalculator/getDefaultMonths.js +5 -0
  92. package/lib/components/CreditCalculator/getDefaultMonths.js.map +1 -0
  93. package/lib/components/CreditCalculator/getDefaultSum.d.ts +2 -0
  94. package/lib/components/CreditCalculator/getDefaultSum.js +5 -0
  95. package/lib/components/CreditCalculator/getDefaultSum.js.map +1 -0
  96. package/lib/components/CreditCalculator/getMonthlyPayment.d.ts +1 -1
  97. package/lib/components/CreditCalculator/renderButton.d.ts +1 -0
  98. package/lib/components/CreditCalculator/renderButton.js +5 -0
  99. package/lib/components/CreditCalculator/renderButton.js.map +1 -0
  100. package/lib/components/CreditCalculator/renderMonthsInput.d.ts +10 -0
  101. package/lib/components/CreditCalculator/renderMonthsInput.js +8 -0
  102. package/lib/components/CreditCalculator/renderMonthsInput.js.map +1 -0
  103. package/lib/components/CreditCalculator/renderProposal.d.ts +1 -0
  104. package/lib/components/CreditCalculator/renderProposal.js +6 -0
  105. package/lib/components/CreditCalculator/renderProposal.js.map +1 -0
  106. package/lib/components/CreditCalculator/renderTermsButton.d.ts +1 -0
  107. package/lib/components/CreditCalculator/renderTermsButton.js +6 -0
  108. package/lib/components/CreditCalculator/renderTermsButton.js.map +1 -0
  109. package/lib/components/CreditCalculator/renderWantedSumInput.d.ts +10 -0
  110. package/lib/components/CreditCalculator/renderWantedSumInput.js +15 -0
  111. package/lib/components/CreditCalculator/renderWantedSumInput.js.map +1 -0
  112. package/lib/components/ExchangeRateTile/CurrencyTable.d.ts +7 -0
  113. package/lib/components/ExchangeRateTile/CurrencyTable.js +17 -0
  114. package/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -0
  115. package/lib/components/ExchangeRateTile/CurrentLocation.d.ts +7 -0
  116. package/lib/components/ExchangeRateTile/CurrentLocation.js +5 -0
  117. package/lib/components/ExchangeRateTile/CurrentLocation.js.map +1 -0
  118. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +7 -0
  119. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +13 -0
  120. package/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -0
  121. package/lib/components/ExchangeRateTile/ExchangeRateTile.js +23 -27
  122. package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  123. package/lib/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +10 -0
  124. package/lib/components/ExchangeRateTile/formatCurrency.d.ts +1 -0
  125. package/lib/components/ExchangeRateTile/formatCurrency.js +3 -0
  126. package/lib/components/ExchangeRateTile/formatCurrency.js.map +1 -0
  127. package/lib/hooks/useCreditCalculatorData.js +3 -3
  128. package/lib/hooks/useCreditCalculatorData.js.map +1 -1
  129. package/lib/hooks/useExchangeRates.d.ts +9 -0
  130. package/lib/hooks/useExchangeRates.js +15 -0
  131. package/lib/hooks/useExchangeRates.js.map +1 -0
  132. package/lib/icons/IconName.d.ts +3 -2
  133. package/lib/icons/IconName.js +1 -0
  134. package/lib/icons/IconName.js.map +1 -1
  135. package/lib/model/InputTypes.d.ts +1 -0
  136. package/lib/model/InputTypes.js +2 -0
  137. package/lib/model/InputTypes.js.map +1 -0
  138. package/lib/setup-fixture.js +1 -1
  139. package/lib/setup-fixture.js.map +1 -1
  140. package/lib/ui-kit/Input/Input.d.ts +2 -0
  141. package/lib/ui-kit/Input/Input.js +6 -0
  142. package/lib/ui-kit/Input/Input.js.map +1 -0
  143. package/lib/ui-kit/Input/InputProps.d.ts +8 -0
  144. package/lib/ui-kit/Input/InputProps.js +2 -0
  145. package/lib/ui-kit/Input/InputProps.js.map +1 -0
  146. package/lib/ui-kit/Select/Select.d.ts +6 -0
  147. package/lib/ui-kit/Select/Select.js +6 -0
  148. package/lib/ui-kit/Select/Select.js.map +1 -0
  149. package/lib/ui-kit/Select/SelectOption.d.ts +5 -0
  150. package/lib/ui-kit/Select/SelectOption.js +6 -0
  151. package/lib/ui-kit/Select/SelectOption.js.map +1 -0
  152. package/mobile/bundle/bundle.umd.js +69 -21
  153. package/mobile/bundle/bundle.umd.min.js +1 -1
  154. package/mobile/dist/components/BaseTile/BaseTile.js +1 -1
  155. package/mobile/dist/components/BaseTile/BaseTile.js.map +1 -1
  156. package/mobile/dist/components/ContentPage/ContentPageContext.d.ts +1 -1
  157. package/mobile/dist/components/CreditCalculator/CreditCalculator.d.ts +2 -2
  158. package/mobile/dist/components/CreditCalculator/CreditCalculator.js +18 -22
  159. package/mobile/dist/components/CreditCalculator/CreditCalculator.js.map +1 -1
  160. package/mobile/dist/components/CreditCalculator/getCalculatorParams.d.ts +1 -1
  161. package/mobile/dist/components/CreditCalculator/getCreditRate.d.ts +1 -1
  162. package/mobile/dist/components/CreditCalculator/getDefaultMonths.d.ts +2 -0
  163. package/mobile/dist/components/CreditCalculator/getDefaultMonths.js +8 -0
  164. package/mobile/dist/components/CreditCalculator/getDefaultMonths.js.map +1 -0
  165. package/mobile/dist/components/CreditCalculator/getDefaultSum.d.ts +2 -0
  166. package/mobile/dist/components/CreditCalculator/getDefaultSum.js +8 -0
  167. package/mobile/dist/components/CreditCalculator/getDefaultSum.js.map +1 -0
  168. package/mobile/dist/components/CreditCalculator/getMonthlyPayment.d.ts +1 -1
  169. package/mobile/dist/components/CreditCalculator/renderButton.d.ts +1 -0
  170. package/mobile/dist/components/CreditCalculator/renderButton.js +8 -0
  171. package/mobile/dist/components/CreditCalculator/renderButton.js.map +1 -0
  172. package/mobile/dist/components/CreditCalculator/renderMonthsInput.d.ts +10 -0
  173. package/mobile/dist/components/CreditCalculator/renderMonthsInput.js +11 -0
  174. package/mobile/dist/components/CreditCalculator/renderMonthsInput.js.map +1 -0
  175. package/mobile/dist/components/CreditCalculator/renderProposal.d.ts +1 -0
  176. package/mobile/dist/components/CreditCalculator/renderProposal.js +9 -0
  177. package/mobile/dist/components/CreditCalculator/renderProposal.js.map +1 -0
  178. package/mobile/dist/components/CreditCalculator/renderTermsButton.d.ts +1 -0
  179. package/mobile/dist/components/CreditCalculator/renderTermsButton.js +9 -0
  180. package/mobile/dist/components/CreditCalculator/renderTermsButton.js.map +1 -0
  181. package/mobile/dist/components/CreditCalculator/renderWantedSumInput.d.ts +10 -0
  182. package/mobile/dist/components/CreditCalculator/renderWantedSumInput.js +18 -0
  183. package/mobile/dist/components/CreditCalculator/renderWantedSumInput.js.map +1 -0
  184. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.d.ts +7 -0
  185. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js +19 -0
  186. package/mobile/dist/components/ExchangeRateTile/CurrencyTable.js.map +1 -0
  187. package/mobile/dist/components/ExchangeRateTile/CurrentLocation.d.ts +7 -0
  188. package/mobile/dist/components/ExchangeRateTile/CurrentLocation.js +7 -0
  189. package/mobile/dist/components/ExchangeRateTile/CurrentLocation.js.map +1 -0
  190. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +7 -0
  191. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +15 -0
  192. package/mobile/dist/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -0
  193. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js +23 -27
  194. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  195. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +10 -0
  196. package/mobile/dist/components/ExchangeRateTile/formatCurrency.d.ts +1 -0
  197. package/mobile/dist/components/ExchangeRateTile/formatCurrency.js +6 -0
  198. package/mobile/dist/components/ExchangeRateTile/formatCurrency.js.map +1 -0
  199. package/mobile/dist/hooks/useCreditCalculatorData.js +3 -3
  200. package/mobile/dist/hooks/useCreditCalculatorData.js.map +1 -1
  201. package/mobile/dist/hooks/useExchangeRates.d.ts +9 -0
  202. package/mobile/dist/hooks/useExchangeRates.js +18 -0
  203. package/mobile/dist/hooks/useExchangeRates.js.map +1 -0
  204. package/mobile/dist/icons/IconName.d.ts +3 -2
  205. package/mobile/dist/icons/IconName.js +1 -0
  206. package/mobile/dist/icons/IconName.js.map +1 -1
  207. package/mobile/dist/model/InputTypes.d.ts +1 -0
  208. package/mobile/dist/model/InputTypes.js +2 -0
  209. package/mobile/dist/model/InputTypes.js.map +1 -0
  210. package/mobile/dist/setup-fixture.js +1 -1
  211. package/mobile/dist/setup-fixture.js.map +1 -1
  212. package/mobile/dist/ui-kit/Input/Input.d.ts +2 -0
  213. package/mobile/dist/ui-kit/Input/Input.js +8 -0
  214. package/mobile/dist/ui-kit/Input/Input.js.map +1 -0
  215. package/mobile/dist/ui-kit/Input/InputProps.d.ts +8 -0
  216. package/mobile/dist/ui-kit/Input/InputProps.js +2 -0
  217. package/mobile/dist/ui-kit/Input/InputProps.js.map +1 -0
  218. package/mobile/dist/ui-kit/Select/Select.d.ts +6 -0
  219. package/mobile/dist/ui-kit/Select/Select.js +8 -0
  220. package/mobile/dist/ui-kit/Select/Select.js.map +1 -0
  221. package/mobile/dist/ui-kit/Select/SelectOption.d.ts +5 -0
  222. package/mobile/dist/ui-kit/Select/SelectOption.js +8 -0
  223. package/mobile/dist/ui-kit/Select/SelectOption.js.map +1 -0
  224. package/mobile/lib/components/BaseTile/BaseTile.js +1 -1
  225. package/mobile/lib/components/BaseTile/BaseTile.js.map +1 -1
  226. package/mobile/lib/components/ContentPage/ContentPageContext.d.ts +1 -1
  227. package/mobile/lib/components/CreditCalculator/CreditCalculator.d.ts +2 -2
  228. package/mobile/lib/components/CreditCalculator/CreditCalculator.js +19 -23
  229. package/mobile/lib/components/CreditCalculator/CreditCalculator.js.map +1 -1
  230. package/mobile/lib/components/CreditCalculator/getCalculatorParams.d.ts +1 -1
  231. package/mobile/lib/components/CreditCalculator/getCreditRate.d.ts +1 -1
  232. package/mobile/lib/components/CreditCalculator/getDefaultMonths.d.ts +2 -0
  233. package/mobile/lib/components/CreditCalculator/getDefaultMonths.js +5 -0
  234. package/mobile/lib/components/CreditCalculator/getDefaultMonths.js.map +1 -0
  235. package/mobile/lib/components/CreditCalculator/getDefaultSum.d.ts +2 -0
  236. package/mobile/lib/components/CreditCalculator/getDefaultSum.js +5 -0
  237. package/mobile/lib/components/CreditCalculator/getDefaultSum.js.map +1 -0
  238. package/mobile/lib/components/CreditCalculator/getMonthlyPayment.d.ts +1 -1
  239. package/mobile/lib/components/CreditCalculator/renderButton.d.ts +1 -0
  240. package/mobile/lib/components/CreditCalculator/renderButton.js +5 -0
  241. package/mobile/lib/components/CreditCalculator/renderButton.js.map +1 -0
  242. package/mobile/lib/components/CreditCalculator/renderMonthsInput.d.ts +10 -0
  243. package/mobile/lib/components/CreditCalculator/renderMonthsInput.js +8 -0
  244. package/mobile/lib/components/CreditCalculator/renderMonthsInput.js.map +1 -0
  245. package/mobile/lib/components/CreditCalculator/renderProposal.d.ts +1 -0
  246. package/mobile/lib/components/CreditCalculator/renderProposal.js +6 -0
  247. package/mobile/lib/components/CreditCalculator/renderProposal.js.map +1 -0
  248. package/mobile/lib/components/CreditCalculator/renderTermsButton.d.ts +1 -0
  249. package/mobile/lib/components/CreditCalculator/renderTermsButton.js +6 -0
  250. package/mobile/lib/components/CreditCalculator/renderTermsButton.js.map +1 -0
  251. package/mobile/lib/components/CreditCalculator/renderWantedSumInput.d.ts +10 -0
  252. package/mobile/lib/components/CreditCalculator/renderWantedSumInput.js +15 -0
  253. package/mobile/lib/components/CreditCalculator/renderWantedSumInput.js.map +1 -0
  254. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.d.ts +7 -0
  255. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js +17 -0
  256. package/mobile/lib/components/ExchangeRateTile/CurrencyTable.js.map +1 -0
  257. package/mobile/lib/components/ExchangeRateTile/CurrentLocation.d.ts +7 -0
  258. package/mobile/lib/components/ExchangeRateTile/CurrentLocation.js +5 -0
  259. package/mobile/lib/components/ExchangeRateTile/CurrentLocation.js.map +1 -0
  260. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.d.ts +7 -0
  261. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js +13 -0
  262. package/mobile/lib/components/ExchangeRateTile/ExchangeCurrencyCalculator.js.map +1 -0
  263. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js +23 -27
  264. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  265. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTileContent.d.ts +10 -0
  266. package/mobile/lib/components/ExchangeRateTile/formatCurrency.d.ts +1 -0
  267. package/mobile/lib/components/ExchangeRateTile/formatCurrency.js +3 -0
  268. package/mobile/lib/components/ExchangeRateTile/formatCurrency.js.map +1 -0
  269. package/mobile/lib/hooks/useCreditCalculatorData.js +3 -3
  270. package/mobile/lib/hooks/useCreditCalculatorData.js.map +1 -1
  271. package/mobile/lib/hooks/useExchangeRates.d.ts +9 -0
  272. package/mobile/lib/hooks/useExchangeRates.js +15 -0
  273. package/mobile/lib/hooks/useExchangeRates.js.map +1 -0
  274. package/mobile/lib/icons/IconName.d.ts +3 -2
  275. package/mobile/lib/icons/IconName.js +1 -0
  276. package/mobile/lib/icons/IconName.js.map +1 -1
  277. package/mobile/lib/model/InputTypes.d.ts +1 -0
  278. package/mobile/lib/model/InputTypes.js +2 -0
  279. package/mobile/lib/model/InputTypes.js.map +1 -0
  280. package/mobile/lib/setup-fixture.js +1 -1
  281. package/mobile/lib/setup-fixture.js.map +1 -1
  282. package/mobile/lib/ui-kit/Input/Input.d.ts +2 -0
  283. package/mobile/lib/ui-kit/Input/Input.js +6 -0
  284. package/mobile/lib/ui-kit/Input/Input.js.map +1 -0
  285. package/mobile/lib/ui-kit/Input/InputProps.d.ts +8 -0
  286. package/mobile/lib/ui-kit/Input/InputProps.js +2 -0
  287. package/mobile/lib/ui-kit/Input/InputProps.js.map +1 -0
  288. package/mobile/lib/ui-kit/Select/Select.d.ts +6 -0
  289. package/mobile/lib/ui-kit/Select/Select.js +6 -0
  290. package/mobile/lib/ui-kit/Select/Select.js.map +1 -0
  291. package/mobile/lib/ui-kit/Select/SelectOption.d.ts +5 -0
  292. package/mobile/lib/ui-kit/Select/SelectOption.js +6 -0
  293. package/mobile/lib/ui-kit/Select/SelectOption.js.map +1 -0
  294. package/mobile/src/common.css +12 -0
  295. package/mobile/src/components/BaseTile/BaseTile.tsx +1 -1
  296. package/mobile/src/components/ContentPage/ContentPageContext.tsx +1 -1
  297. package/mobile/src/components/CreditCalculator/CreditCalculator.tsx +26 -87
  298. package/mobile/src/components/CreditCalculator/getCalculatorParams.ts +1 -1
  299. package/mobile/src/components/CreditCalculator/getCreditRate.ts +1 -1
  300. package/mobile/src/components/CreditCalculator/getDefaultMonths.ts +7 -0
  301. package/mobile/src/components/CreditCalculator/getDefaultSum.ts +7 -0
  302. package/mobile/src/components/CreditCalculator/getMonthlyPayment.ts +1 -1
  303. package/mobile/src/components/CreditCalculator/renderButton.tsx +13 -0
  304. package/mobile/src/components/CreditCalculator/renderMonthsInput.tsx +29 -0
  305. package/mobile/src/components/CreditCalculator/renderProposal.tsx +13 -0
  306. package/mobile/src/components/CreditCalculator/renderTermsButton.tsx +16 -0
  307. package/mobile/src/components/CreditCalculator/renderWantedSumInput.tsx +36 -0
  308. package/mobile/src/components/ExchangeRateTile/CurrencyTable.tsx +47 -0
  309. package/mobile/src/components/ExchangeRateTile/CurrentLocation.tsx +22 -0
  310. package/mobile/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +47 -0
  311. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.tsx +48 -79
  312. package/mobile/src/components/ExchangeRateTile/ExchangeRateTileContent.ts +11 -0
  313. package/mobile/src/components/ExchangeRateTile/formatCurrency.ts +3 -0
  314. package/mobile/src/hooks/useCreditCalculatorData.ts +3 -7
  315. package/mobile/src/hooks/useExchangeRates.ts +25 -0
  316. package/mobile/src/icons/GpsIcon.svg +8 -0
  317. package/mobile/src/icons/IconName.ts +3 -3
  318. package/mobile/src/model/InputTypes.ts +1 -0
  319. package/mobile/src/setup-fixture.ts +1 -1
  320. package/mobile/src/ui-kit/Input/Input.tsx +8 -0
  321. package/mobile/src/ui-kit/Input/InputProps.ts +9 -0
  322. package/mobile/src/ui-kit/Select/Select.tsx +15 -0
  323. package/mobile/src/ui-kit/Select/SelectOption.tsx +14 -0
  324. package/package.json +1 -1
  325. package/src/common.css +12 -0
  326. package/src/components/BaseTile/BaseTile.tsx +1 -1
  327. package/src/components/Blocks.ts +2 -0
  328. package/src/components/ContentPage/ContentPageContext.tsx +1 -1
  329. package/src/components/CreditCalculator/CreditCalculator.tsx +26 -87
  330. package/src/components/CreditCalculator/getCalculatorParams.ts +1 -1
  331. package/src/components/CreditCalculator/getCreditRate.ts +1 -1
  332. package/src/components/CreditCalculator/getDefaultMonths.ts +7 -0
  333. package/src/components/CreditCalculator/getDefaultSum.ts +7 -0
  334. package/src/components/CreditCalculator/getMonthlyPayment.ts +1 -1
  335. package/src/components/CreditCalculator/renderButton.tsx +13 -0
  336. package/src/components/CreditCalculator/renderMonthsInput.tsx +29 -0
  337. package/src/components/CreditCalculator/renderProposal.tsx +13 -0
  338. package/src/components/CreditCalculator/renderTermsButton.tsx +16 -0
  339. package/src/components/CreditCalculator/renderWantedSumInput.tsx +36 -0
  340. package/src/components/ExchangeRateTile/CurrencyTable.tsx +47 -0
  341. package/src/components/ExchangeRateTile/CurrentLocation.tsx +22 -0
  342. package/src/components/ExchangeRateTile/ExchangeCurrencyCalculator.tsx +47 -0
  343. package/src/components/ExchangeRateTile/ExchangeRateTile.fixture.tsx +1 -1
  344. package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +48 -79
  345. package/src/components/ExchangeRateTile/ExchangeRateTileContent.ts +11 -0
  346. package/src/components/ExchangeRateTile/formatCurrency.ts +3 -0
  347. package/src/hooks/useCreditCalculatorData.ts +3 -7
  348. package/src/hooks/useExchangeRates.ts +25 -0
  349. package/src/icons/GpsIcon.svg +8 -0
  350. package/src/icons/IconName.ts +3 -3
  351. package/src/model/InputTypes.ts +1 -0
  352. package/src/setup-fixture.ts +1 -1
  353. package/src/ui-kit/Input/Input.tsx +8 -0
  354. package/src/ui-kit/Input/InputProps.ts +9 -0
  355. package/src/ui-kit/Select/Select.tsx +15 -0
  356. package/src/ui-kit/Select/SelectOption.tsx +14 -0
@@ -1 +1 @@
1
- {"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"GalleryItem":{"type":"object","properties":{"title":{"type":"string"},"text":{"type":"string"}}},"GalleryCard":{"type":"object","properties":{"button":{"$ref":"#/definitions/ButtonWithIconProps","title":"Кнопка"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"items":{"type":"array","items":{"$ref":"#/definitions/GalleryItem"},"title":"Список"},"version":{"$ref":"#/definitions/BlockVersion"}},"title":"Карточка"},"Picture":{"type":"object","properties":{"src":{"type":"string","title":"Картинка"},"format":{"type":"string","enum":["jpeg","jpg","png","gif","webp","heif","avif"],"title":"Формат"},"size":{"type":"object","properties":{"width":{"type":"number","title":"Ширина"},"height":{"type":"number","title":"Высота"}},"title":"Размер изображения"},"alt":{"type":"string","title":"Альтернативный текст (alt)"},"sources":{"type":"array","items":{"$ref":"#/definitions/ImgSource"},"title":"Другие форматы"},"className":{"type":"string"},"title":{"type":"string","title":"Текст подсказки (title)"}},"required":["src"],"title":"Изображение"},"Img":{"type":"object","properties":{"src":{"type":"string","title":"Картинка"},"alt":{"type":"string","title":"Альтернативный текст (alt)"},"title":{"type":"string","title":"Текст подсказки (title)"}},"required":["src"]},"ImgSource":{"type":"object","properties":{"src":{"type":"string","title":"Картинка"},"format":{"type":"string","enum":["jpeg","jpg","png","gif","webp","heif","avif"],"title":"Формат"},"size":{"type":"object","properties":{"width":{"type":"number","title":"Ширина"},"height":{"type":"number","title":"Высота"}},"title":"Размер изображения"}},"required":["src"]},"ButtonWithIconProps":{"type":"object","properties":{"rounded":{"type":"boolean","title":"Закругленные углы"},"version":{"$ref":"#/definitions/ButtonVersion"},"aboveText":{"type":"string","title":"Верхний текст"},"icon":{"$ref":"#/definitions/IconName","title":"Иконка"},"text":{"type":"string","title":"Текст","default":"Кнопка"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}}},"ButtonProps":{"type":"object","properties":{"version":{"$ref":"#/definitions/ButtonVersion"},"text":{"type":"string","title":"Текст","default":"Кнопка"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}}},"LinkProps":{"type":"object","properties":{"text":{"type":"string","title":"Текст"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}},"title":"Ссылка","required":["text","href"]},"Target":{"type":"string","enum":["","_self","_blank","_parent","_top"],"title":"Таргет (target)","enumNames":["","self (текущее окно или фрейм)","blank (новое окно)","parent (фрейм-родитель)","top (текущее окно)"]},"ButtonVersion":{"type":"string","enum":["primary","secondary","link"],"title":"Цвет кнопки","default":"primary","enumNames":["Основная","Второстепенная"]},"IconName":{"type":"string","enum":["","ActualBalanceIcon","AppleIcon","AtmIcon","BankIcon","BurgerIcon","BurgerIconWhite","Calendar2Icon","CalendarCircleIcon","CalendarIcon","CalendarTickIcon","CalendarWhiteIcon","CardIcon","CardPosIcon","CardTickIcon","CardWithGemIcon","ChartSquareIcon","ClockIcon","CloseIcon","ComfortableCompIcon","CreditCardsIcon","DiscountShapeIcon","DocIcon","DocIconMonoColor","DocumentTextIcon","DollarIcon","EarthIcon","EmptyWalletChangeIcon","EmptyWalletIcon","EmptyWalletWhiteIcon","EuroIcon","GeolocationIcon","GlassIcon","GlobalIcon","GridIcon","GridIconWhite","InterestGrowthIcon","InterestIcon","JCBIcon","LoupeIcon","MasterCardIcon","MinusIcon","MirIcon","MoneyIcon","MoneyInsuranceIcon","MonitorMobileIcon","NewDocIcon","OfficeIcon","OkIcon","PassSendIcon","PercentageRoundIcon","PercentageSquareIcon","PercentageSquareWhiteIcon","PersonalCardIcon","PlayMarketIcon","PlusIcon","Profile2UserIcon","ProfileIcon","RoundRubleIcon","SafeIcon","ShieldTickIcon","SignDocsIcon","SmallClockIcon","TelegramIcon","UnionPayIcon","UserTickIcon","VisaIcon","VKIcon","WalletAdd2Icon","WalletAddIcon","WalletIcon","WalletWithMoneyIcon"],"title":"Иконка","enumNames":["","Деньги","Лого «Apple»","Банкомат","Банк","Бургер","Бургер (белый)","Календарь 2","Скруглённый календарь","Календарь","Календарь с галочкой","Календарь белый","Кред. карта","Кред. карта под наклоном","Кред. карта с галочкой","Карта с драгоценностями","Деньги внутри кошелька","Часы","Крестик","Кресло","Кредитные карты","Скидка","Документ","Документ (одноцветный)","Документ с текстом","Доллар","Земля","Пустой кошелёк с возвратом","Пустой кошелёк","Пустой кошелёк (белый)","Евро","Геолокация","Зеркало","Глобус","Сетка","Сетка (белая)","Диаграмма роста","Скидка","JCB","Лупа","MasterCard","Минус","МИР","Деньги","Денежное страхование","Монитор и мобильный","Новый документ","Офис","Лого «Одноклассники»","Бизнес","Проценты (круг.)","Проценты","Проценты белые","Персональная карта","Лого «PlayMarket»","Плюс","Профиль, 2 персоны","Профиль","Рубль (круг.)","Сейф","Безопасность","Подписанные документы","Маленькие часы","Лого «Telegram»","UnionPay","Пользователь","Visa","Лого «VK»","Пополнение карты","Кошелёк с плюсом","Кошелёк","Кошелёк с деньгами"]},"BlockVersion":{"type":"string","enum":["primary","secondary"],"title":"Цвет плитки","enumNames":["Основная","Второстепенная"]},"GalleryContent":{"type":"object","properties":{"isScroll":{"type":"boolean"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"cards":{"type":"array","items":{"$ref":"#/definitions/GalleryCard"},"title":"Карточки","minItems":4}},"title":"Галерея"},"DescriptionContent":{"type":"object","properties":{"description":{"type":"string","title":"Описание"}}},"HeadingType":{"type":"string","enum":["h1","h2","h3","h4","h5","h6"],"title":"Тип заголовка","enumNames":["h1","h2","h3","h4","h5","h6"]},"HeadingTypeContent":{"type":"object","properties":{"headingType":{"$ref":"#/definitions/HeadingType"}}},"HeadingContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"}}},"HeadlineContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"align":{"$ref":"#/definitions/AlignType"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"bgColor":{"$ref":"#/definitions/BgColorVersion"}},"title":"Заголовок"},"ImageContent":{"type":"object","properties":{"image":{"$ref":"#/definitions/Picture"}}},"AlignType":{"type":"string","enum":["left","center","right"],"title":"Выравнивание","enumNames":["По левому краю","По центру","По правому краю"]},"BgColorVersion":{"type":"string","enum":["transparent","bg-white"],"title":"Цвет фона","enumNames":["Прозрачный","Белый"]},"LinkColumnsMode":{"type":"string","enum":["single","double"],"title":"Отображение списка","enumNames":["Одна колонка","Две колонки"]},"LinkListMode":{"type":"string","enum":["vertical","horizontal"],"title":"Отображение списка (моб.)","enumNames":["Вертикально","Горизонтально"]},"LinkDocsItem":{"type":"object","properties":{"text":{"type":"string","title":"Текст"},"fileSize":{"type":"string","title":"размер файла"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}},"title":"Элемент списка"},"LinkDocsContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"subtitle":{"type":"string","title":"Подзаголовок"},"align":{"$ref":"#/definitions/AlignType"},"columnsMode":{"$ref":"#/definitions/LinkColumnsMode"},"listMode":{"$ref":"#/definitions/LinkListMode"},"hasBorder":{"type":"boolean","title":"Рамка элементов (моб.)"},"icon":{"$ref":"#/definitions/IconName","title":"Название иконки"},"documents":{"type":"array","items":{"$ref":"#/definitions/LinkDocsItem"},"title":"Список"}},"title":"Список документов"},"MiniGalleryContent":{"$ref":"#/definitions/GalleryContent","title":"Мини-галерея"},"TextBenefit":{"type":"object","properties":{"label":{"type":"string","title":"Название"},"description":{"type":"string","title":"Описание"}}},"Benefit":{"type":"object","properties":{"label":{"type":"string","title":"Название"},"description":{"type":"string","title":"Описание"},"icon":{"$ref":"#/definitions/IconName"}},"title":"Преимущество"},"BenefitsBlockContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"benefits":{"type":"array","items":{"$ref":"#/definitions/Benefit"},"title":"Список преимуществ","maxItems":6}},"title":"Блок преимущества"},"TitleWithImageContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"image":{"$ref":"#/definitions/Picture"}}},"PictureTextContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"image":{"$ref":"#/definitions/Picture"},"benefits":{"type":"array","items":{"$ref":"#/definitions/Benefit"},"title":"Список преимуществ"}},"title":"Картинка с текстом"},"ProductTileContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"benefits":{"type":"array","items":{"$ref":"#/definitions/TextBenefit"},"title":"Преимущества","maxItems":7},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"title":"Продуктовая плитка"},"ButtonContent":{"type":"object","properties":{"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4}}},"TextBlockVersion":{"type":"string","enum":["primary","secondary","secondary-light"],"title":"Цвет плитки","enumNames":["Основная","Второстепенная","Второстепенная прозрачная"]},"TextBlockIconVersion":{"type":"string","enum":["none","small","big"],"title":"Размер иконки","enumNames":["Нет","Маленькая","Большая"]},"TextBlockContent":{"type":"object","properties":{"isDotted":{"type":"boolean","title":"Маркеры списка (моб.)"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"items":{"type":"array","items":{"type":"string"},"title":"Список (моб.)"},"iconVersion":{"$ref":"#/definitions/TextBlockIconVersion"},"blockVersion":{"$ref":"#/definitions/TextBlockVersion"}},"title":"Текстовый блок"},"ListContent":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"},"title":"Список"}}},"TileContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"items":{"type":"array","items":{"type":"string"},"title":"Список"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"title":"Плитка"},"LinkListContent":{"type":"object","properties":{"documents":{"type":"array","items":{"$ref":"#/definitions/LinkProps"},"title":"Список"}},"title":"Список документов"},"AccordionBlockType":{"type":"string","enum":["Headline","LinkDocs","TextBlock","PictureText","Tile","ProductTile","Gallery","MiniGallery","LinkList"],"title":"Тип блока"},"HeadlineAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"title":{"type":"string","title":"Заголовок"},"align":{"$ref":"#/definitions/AlignType"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"bgColor":{"$ref":"#/definitions/BgColorVersion"}},"required":["accordionBlockType"],"title":"Заголовок"},"LinkDocsAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"title":{"type":"string","title":"Заголовок"},"subtitle":{"type":"string","title":"Подзаголовок"},"align":{"$ref":"#/definitions/AlignType"},"columnsMode":{"$ref":"#/definitions/LinkColumnsMode"},"listMode":{"$ref":"#/definitions/LinkListMode"},"hasBorder":{"type":"boolean","title":"Рамка элементов (моб.)"},"icon":{"$ref":"#/definitions/IconName","title":"Название иконки"},"documents":{"type":"array","items":{"$ref":"#/definitions/LinkDocsItem"},"title":"Список"}},"required":["accordionBlockType"],"title":"Список документов"},"TextBlockAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"isDotted":{"type":"boolean","title":"Маркеры списка (моб.)"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"items":{"type":"array","items":{"type":"string"},"title":"Список (моб.)"},"iconVersion":{"$ref":"#/definitions/TextBlockIconVersion"},"blockVersion":{"$ref":"#/definitions/TextBlockVersion"}},"required":["accordionBlockType"],"title":"Текстовый блок"},"PictureTextAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"title":{"type":"string","title":"Заголовок"},"image":{"$ref":"#/definitions/Picture"},"benefits":{"type":"array","items":{"$ref":"#/definitions/Benefit"},"title":"Список преимуществ"}},"required":["accordionBlockType"],"title":"Картинка с текстом"},"TileAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"items":{"type":"array","items":{"type":"string"},"title":"Список"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"required":["accordionBlockType"],"title":"Плитка"},"ProductTileAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"benefits":{"type":"array","items":{"$ref":"#/definitions/TextBenefit"},"title":"Преимущества","maxItems":7},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"required":["accordionBlockType"],"title":"Продуктовая плитка"},"GalleryAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"isScroll":{"type":"boolean"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"cards":{"type":"array","items":{"$ref":"#/definitions/GalleryCard"},"title":"Карточки","minItems":4}},"required":["accordionBlockType"],"title":"Галлерея"},"MiniGalleryAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"isScroll":{"type":"boolean"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"cards":{"type":"array","items":{"$ref":"#/definitions/GalleryCard"},"title":"Карточки","minItems":4}},"required":["accordionBlockType"],"title":"Мини-галлерея"},"LinkListAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"documents":{"type":"array","items":{"$ref":"#/definitions/LinkProps"},"title":"Список"}},"required":["accordionBlockType"],"title":"Список ссылок"},"EmptyOption":{"type":"null","title":"Выберите блок"},"AccordionBlockProps":{"anyOf":[{"$ref":"#/definitions/EmptyOption"},{"$ref":"#/definitions/HeadlineAccordionBlockDef"},{"$ref":"#/definitions/LinkDocsAccordionBlockDef"},{"$ref":"#/definitions/TextBlockAccordionBlockDef"},{"$ref":"#/definitions/PictureTextAccordionBlockDef"},{"$ref":"#/definitions/TileAccordionBlockDef"},{"$ref":"#/definitions/ProductTileAccordionBlockDef"},{"$ref":"#/definitions/GalleryAccordionBlockDef"},{"$ref":"#/definitions/MiniGalleryAccordionBlockDef"},{"$ref":"#/definitions/LinkListAccordionBlockDef"}],"title":"Содержимое аккордеона"},"AccordionItemCommonProps":{"type":"object","properties":{"label":{"type":"string","title":"Название","default":"Список"},"blocks":{"type":"array","items":{"$ref":"#/definitions/AccordionBlockProps"},"title":"Блоки"},"bordered":{"type":"boolean","title":"Отображать/скрывать обводку элемента","default":false}},"title":"Элемент списка"},"AccordionContent":{"type":"object","properties":{"bordered":{"type":"boolean","title":"Отображать/скрывать обводку у элемента списка","default":false},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Подзаголовок"},"accordionItems":{"type":"array","items":{"$ref":"#/definitions/AccordionItemCommonProps"},"title":"Список"}},"title":"Аккордеон"},"CellData":{"type":"object","properties":{"label":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"}},"title":"Ячейка"},"ColumnHeader":{"type":"object","properties":{"link":{"$ref":"#/definitions/LinkProps"},"title":{"type":"string","title":"Заголовок"},"subtitle":{"type":"string","title":"Подзаголовок"},"image":{"$ref":"#/definitions/Picture"},"icon":{"$ref":"#/definitions/IconName"}},"title":"Шапка колонки"},"Column":{"type":"object","properties":{"header":{"$ref":"#/definitions/ColumnHeader"},"data":{"type":"array","items":{"type":"array","items":{"$ref":"#/definitions/CellData"}},"title":"Данные"}},"title":"Продукт"},"RowHeader":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"}},"title":"Параметр"},"ComparisonTableContent":{"type":"object","properties":{"useSwiper":{"type":"boolean","title":"Использовать свайпер-"},"title":{"type":"string","title":"Заголовок"},"rowHeaders":{"type":"array","items":{"$ref":"#/definitions/RowHeader"},"title":"Параметры"},"columns":{"type":"array","items":{"$ref":"#/definitions/Column"},"title":"Продукты"},"isColoredFirstColumn":{"type":"boolean","title":"Закрасить первую колонку"},"visibleRowLength":{"type":"number","title":"Отображать заданное количество строк"}},"title":"Сравнительная таблица"},"ExchangeRateTileContent":{"$ref":"#/definitions/HeadingContent","title":"Курсы валют"},"ContactType":{"type":"string","enum":["tel","email"],"title":"Тип контакта","enumNames":["Телефон","Почта"]},"ContactInfo":{"type":"object","properties":{"type":{"$ref":"#/definitions/ContactType"},"description":{"type":"string","title":"Описание"},"text":{"type":"string","title":"Текст"}},"title":"Контакт"},"SocialMedia":{"type":"object","properties":{"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}},"required":["href"]},"SubMenuItem":{"type":"object","properties":{"icon":{"$ref":"#/definitions/IconName"},"text":{"type":"string","title":"Текст"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}},"title":"Пункт подменю"},"FooterContent":{"type":"object","properties":{"topItems":{"type":"array","items":{"$ref":"#/definitions/TopMenuItem"},"title":"Дополнительное меню"},"relatedEnterprises":{"type":"array","items":{"$ref":"#/definitions/LinkProps"},"title":"Другие предприятия"},"contacts":{"type":"array","items":{"$ref":"#/definitions/ContactInfo"},"title":"Контакты"},"socialMedia":{"type":"array","items":{"$ref":"#/definitions/SocialMedia"},"title":"Социальные сети"},"horizontalNavigationTitle":{"type":"string","title":"Заголовок для меню"},"subMenu":{"type":"array","items":{"$ref":"#/definitions/SubMenuItem"},"title":"Подменю"},"documents":{"type":"array","items":{"$ref":"#/definitions/LinkProps"},"title":"Обязательные документы"}},"title":"Подвал","required":["topItems"]},"SitemapProps":{"type":"object","properties":{"topItems":{"type":"array","items":{"$ref":"#/definitions/TopMenuItem"},"title":"Дополнительное меню"}}},"TopMenuItem":{"type":"object","properties":{"text":{"type":"string","title":"Текст"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}},"title":"Ссылка","required":["text","href"]},"HeaderContent":{"type":"object","properties":{"topItems":{"type":"array","items":{"$ref":"#/definitions/TopMenuItem"},"title":"Дополнительное меню"},"defaultLocation":{"type":"string","title":"Город по-умолчанию","default":"Москва"},"burgerSubMenu":{"type":"array","items":{"$ref":"#/definitions/SubMenuItem"},"title":"Подменю"}},"title":"Шапка","required":["defaultLocation","topItems"]},"QRCode":{"type":"object","properties":{"src":{"type":"string","title":"QR код"},"href":{"type":"string","title":"Ссылка"}},"title":"QR код"},"MobileAppTileContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"qr":{"$ref":"#/definitions/QRCode"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"href":{"type":"string","title":"Ссылка"}},"title":"Мобильное приложение"},"NavigationContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonProps"},"title":"Список ссылок"}},"title":"Навигация"},"ProductBlockInnerContent":{"type":"object","properties":{"headingType":{"$ref":"#/definitions/HeadingType"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"benefits":{"type":"array","items":{"$ref":"#/definitions/Benefit"},"title":"Преимущества","minItems":2,"maxItems":3},"items":{"type":"array","items":{"type":"string"},"title":"Список"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}}},"ProductBlockContent":{"type":"object","properties":{"headingType":{"$ref":"#/definitions/HeadingType"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"breadcrumbs":{"type":"array","items":{"$ref":"#/definitions/LinkProps"},"title":"Хлебные крошки"},"benefits":{"type":"array","items":{"$ref":"#/definitions/Benefit"},"title":"Преимущества","minItems":2,"maxItems":3},"items":{"type":"array","items":{"type":"string"},"title":"Список"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"title":"Продуктовый блок"},"ProductSlide":{"type":"object","properties":{"nav":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"desc":{"type":"string","title":"Описание"}},"required":["title","desc"],"title":"Превью содержимого слайда на навигации"},"productBlock":{"$ref":"#/definitions/ProductBlockInnerContent","title":"Содержимое слайда"}},"required":["productBlock"],"title":"Слайд"},"ProductGalleryContent":{"type":"object","properties":{"slides":{"type":"array","items":{"$ref":"#/definitions/ProductSlide"},"title":"Слайды"}},"title":"Продуктовая галерея"},"PromoTileContent":{"type":"object","properties":{"date":{"type":"string","title":"Дата публикации"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"title":"Акции"},"Step":{"type":"object","properties":{"label":{"type":"string","title":"Название"},"description":{"type":"string","title":"Описание"},"icon":{"$ref":"#/definitions/IconName"}},"title":"Шаг"},"StepsBlockContent":{"type":"object","properties":{"showLines":{"type":"boolean","title":"Линии"},"size":{"$ref":"#/definitions/SizeVersion"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"steps":{"type":"array","items":{"$ref":"#/definitions/Step"},"title":"Шаги","minItems":2,"maxItems":3}},"title":"Блок шаги"},"SizeVersion":{"type":"string","enum":["normal","small"],"title":"Размер","enumNames":["Обычный","Уменьшенный"]},"TariffsTableRowData":{"type":"object","properties":{"header":{"$ref":"#/definitions/TariffsTableRowHeader"},"data":{"type":"array","items":{"type":"array","items":{"$ref":"#/definitions/TariffsTableCellData"}}}},"required":["header","data"],"title":"Ряд"},"TariffsTableRowHeader":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"icon":{"$ref":"#/definitions/IconName"}},"title":"Параметр"},"TariffsTableCellData":{"type":"object","properties":{"label":{"type":"string","title":"Заголовок"},"list":{"$ref":"#/definitions/TariffsTableList"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки"}},"title":"Ячейка"},"TariffsTableList":{"type":"object","properties":{"isDotted":{"type":"boolean","title":"Маркеры"},"items":{"type":"array","items":{"type":"string"},"title":"Элементы списка"}},"title":"Список"},"TariffsTableColumn":{"type":"object","properties":{"data":{"type":"array","items":{"type":"array","items":{"$ref":"#/definitions/TariffsTableCellData"}},"title":"Данные"}},"title":"Колонка"},"TariffsTableContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"rowHeaders":{"type":"array","items":{"$ref":"#/definitions/TariffsTableRowHeader"},"title":"Параметры"},"columns":{"type":"array","items":{"$ref":"#/definitions/TariffsTableColumn"},"title":"Колонки"}},"title":"Таблица тарифов"},"CalculatorParams":{"type":"object","properties":{"isAnnuity":{"type":"boolean"},"minSum":{"type":"number"},"maxSum":{"type":"number"},"minMonths":{"type":"number"},"maxMonths":{"type":"number"},"rateWithInsurance":{"type":"number"},"rateWithoutInsurance":{"type":"number"}}},"CreditCalculatorData":{"type":"object","properties":{"rows":{"type":"array","items":{"$ref":"#/definitions/CalculatorParams"}}}},"CreditCalculatorContent":{"type":"object","properties":{"directoryName":{"type":"string","title":"Справочник"}},"title":"Кредитный калькулятор"}}}
1
+ {"$schema":"http://json-schema.org/draft-07/schema#","definitions":{"GalleryItem":{"type":"object","properties":{"title":{"type":"string"},"text":{"type":"string"}}},"GalleryCard":{"type":"object","properties":{"button":{"$ref":"#/definitions/ButtonWithIconProps","title":"Кнопка"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"items":{"type":"array","items":{"$ref":"#/definitions/GalleryItem"},"title":"Список"},"version":{"$ref":"#/definitions/BlockVersion"}},"title":"Карточка"},"Picture":{"type":"object","properties":{"src":{"type":"string","title":"Картинка"},"format":{"type":"string","enum":["jpeg","jpg","png","gif","webp","heif","avif"],"title":"Формат"},"size":{"type":"object","properties":{"width":{"type":"number","title":"Ширина"},"height":{"type":"number","title":"Высота"}},"title":"Размер изображения"},"alt":{"type":"string","title":"Альтернативный текст (alt)"},"sources":{"type":"array","items":{"$ref":"#/definitions/ImgSource"},"title":"Другие форматы"},"className":{"type":"string"},"title":{"type":"string","title":"Текст подсказки (title)"}},"required":["src"],"title":"Изображение"},"Img":{"type":"object","properties":{"src":{"type":"string","title":"Картинка"},"alt":{"type":"string","title":"Альтернативный текст (alt)"},"title":{"type":"string","title":"Текст подсказки (title)"}},"required":["src"]},"ImgSource":{"type":"object","properties":{"src":{"type":"string","title":"Картинка"},"format":{"type":"string","enum":["jpeg","jpg","png","gif","webp","heif","avif"],"title":"Формат"},"size":{"type":"object","properties":{"width":{"type":"number","title":"Ширина"},"height":{"type":"number","title":"Высота"}},"title":"Размер изображения"}},"required":["src"]},"ButtonWithIconProps":{"type":"object","properties":{"rounded":{"type":"boolean","title":"Закругленные углы"},"version":{"$ref":"#/definitions/ButtonVersion"},"aboveText":{"type":"string","title":"Верхний текст"},"icon":{"$ref":"#/definitions/IconName","title":"Иконка"},"text":{"type":"string","title":"Текст","default":"Кнопка"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}}},"ButtonProps":{"type":"object","properties":{"version":{"$ref":"#/definitions/ButtonVersion"},"text":{"type":"string","title":"Текст","default":"Кнопка"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}}},"LinkProps":{"type":"object","properties":{"text":{"type":"string","title":"Текст"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}},"title":"Ссылка","required":["text","href"]},"Target":{"type":"string","enum":["","_self","_blank","_parent","_top"],"title":"Таргет (target)","enumNames":["","self (текущее окно или фрейм)","blank (новое окно)","parent (фрейм-родитель)","top (текущее окно)"]},"ButtonVersion":{"type":"string","enum":["primary","secondary","link"],"title":"Цвет кнопки","default":"primary","enumNames":["Основная","Второстепенная"]},"IconName":{"type":"string","enum":["","ActualBalanceIcon","AppleIcon","AtmIcon","BankIcon","BurgerIcon","BurgerIconWhite","Calendar2Icon","CalendarCircleIcon","CalendarIcon","CalendarTickIcon","CalendarWhiteIcon","CardIcon","CardPosIcon","CardTickIcon","CardWithGemIcon","ChartSquareIcon","ClockIcon","CloseIcon","ComfortableCompIcon","CreditCardsIcon","DiscountShapeIcon","DocIcon","DocIconMonoColor","DocumentTextIcon","DollarIcon","EarthIcon","EmptyWalletChangeIcon","EmptyWalletIcon","EmptyWalletWhiteIcon","EuroIcon","GeolocationIcon","GlassIcon","GlobalIcon","GpsIcon","GridIcon","GridIconWhite","InterestGrowthIcon","InterestIcon","JCBIcon","LoupeIcon","MasterCardIcon","MinusIcon","MirIcon","MoneyIcon","MoneyInsuranceIcon","MonitorMobileIcon","NewDocIcon","OfficeIcon","OkIcon","PassSendIcon","PercentageRoundIcon","PercentageSquareIcon","PercentageSquareWhiteIcon","PersonalCardIcon","PlayMarketIcon","PlusIcon","Profile2UserIcon","ProfileIcon","RoundRubleIcon","SafeIcon","ShieldTickIcon","SignDocsIcon","SmallClockIcon","TelegramIcon","UnionPayIcon","UserTickIcon","VisaIcon","VKIcon","WalletAdd2Icon","WalletAddIcon","WalletIcon","WalletWithMoneyIcon"],"title":"Иконка","enumNames":["","Деньги","Лого «Apple»","Банкомат","Банк","Бургер","Бургер (белый)","Календарь 2","Скруглённый календарь","Календарь","Календарь с галочкой","Календарь белый","Кред. карта","Кред. карта под наклоном","Кред. карта с галочкой","Карта с драгоценностями","Деньги внутри кошелька","Часы","Крестик","Кресло","Кредитные карты","Скидка","Документ","Документ (одноцветный)","Документ с текстом","Доллар","Земля","Пустой кошелёк с возвратом","Пустой кошелёк","Пустой кошелёк (белый)","Евро","Геолокация","Зеркало","Глобус","Gps","Сетка","Сетка (белая)","Диаграмма роста","Скидка","JCB","Лупа","MasterCard","Минус","МИР","Деньги","Денежное страхование","Монитор и мобильный","Новый документ","Офис","Лого «Одноклассники»","Бизнес","Проценты (круг.)","Проценты","Проценты белые","Персональная карта","Лого «PlayMarket»","Плюс","Профиль, 2 персоны","Профиль","Рубль (круг.)","Сейф","Безопасность","Подписанные документы","Маленькие часы","Лого «Telegram»","UnionPay","Пользователь","Visa","Лого «VK»","Пополнение карты","Кошелёк с плюсом","Кошелёк","Кошелёк с деньгами"]},"BlockVersion":{"type":"string","enum":["primary","secondary"],"title":"Цвет плитки","enumNames":["Основная","Второстепенная"]},"GalleryContent":{"type":"object","properties":{"isScroll":{"type":"boolean"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"cards":{"type":"array","items":{"$ref":"#/definitions/GalleryCard"},"title":"Карточки","minItems":4}},"title":"Галерея"},"DescriptionContent":{"type":"object","properties":{"description":{"type":"string","title":"Описание"}}},"HeadingType":{"type":"string","enum":["h1","h2","h3","h4","h5","h6"],"title":"Тип заголовка","enumNames":["h1","h2","h3","h4","h5","h6"]},"HeadingTypeContent":{"type":"object","properties":{"headingType":{"$ref":"#/definitions/HeadingType"}}},"HeadingContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"}}},"HeadlineContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"align":{"$ref":"#/definitions/AlignType"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"bgColor":{"$ref":"#/definitions/BgColorVersion"}},"title":"Заголовок"},"ImageContent":{"type":"object","properties":{"image":{"$ref":"#/definitions/Picture"}}},"AlignType":{"type":"string","enum":["left","center","right"],"title":"Выравнивание","enumNames":["По левому краю","По центру","По правому краю"]},"BgColorVersion":{"type":"string","enum":["transparent","bg-white"],"title":"Цвет фона","enumNames":["Прозрачный","Белый"]},"LinkColumnsMode":{"type":"string","enum":["single","double"],"title":"Отображение списка","enumNames":["Одна колонка","Две колонки"]},"LinkListMode":{"type":"string","enum":["vertical","horizontal"],"title":"Отображение списка (моб.)","enumNames":["Вертикально","Горизонтально"]},"LinkDocsItem":{"type":"object","properties":{"text":{"type":"string","title":"Текст"},"fileSize":{"type":"string","title":"размер файла"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}},"title":"Элемент списка"},"LinkDocsContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"subtitle":{"type":"string","title":"Подзаголовок"},"align":{"$ref":"#/definitions/AlignType"},"columnsMode":{"$ref":"#/definitions/LinkColumnsMode"},"listMode":{"$ref":"#/definitions/LinkListMode"},"hasBorder":{"type":"boolean","title":"Рамка элементов (моб.)"},"icon":{"$ref":"#/definitions/IconName","title":"Название иконки"},"documents":{"type":"array","items":{"$ref":"#/definitions/LinkDocsItem"},"title":"Список"}},"title":"Список документов"},"MiniGalleryContent":{"$ref":"#/definitions/GalleryContent","title":"Мини-галерея"},"TextBenefit":{"type":"object","properties":{"label":{"type":"string","title":"Название"},"description":{"type":"string","title":"Описание"}}},"Benefit":{"type":"object","properties":{"label":{"type":"string","title":"Название"},"description":{"type":"string","title":"Описание"},"icon":{"$ref":"#/definitions/IconName"}},"title":"Преимущество"},"BenefitsBlockContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"benefits":{"type":"array","items":{"$ref":"#/definitions/Benefit"},"title":"Список преимуществ","maxItems":6}},"title":"Блок преимущества"},"TitleWithImageContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"image":{"$ref":"#/definitions/Picture"}}},"PictureTextContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"image":{"$ref":"#/definitions/Picture"},"benefits":{"type":"array","items":{"$ref":"#/definitions/Benefit"},"title":"Список преимуществ"}},"title":"Картинка с текстом"},"ProductTileContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"benefits":{"type":"array","items":{"$ref":"#/definitions/TextBenefit"},"title":"Преимущества","maxItems":7},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"title":"Продуктовая плитка"},"ButtonContent":{"type":"object","properties":{"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4}}},"TextBlockVersion":{"type":"string","enum":["primary","secondary","secondary-light"],"title":"Цвет плитки","enumNames":["Основная","Второстепенная","Второстепенная прозрачная"]},"TextBlockIconVersion":{"type":"string","enum":["none","small","big"],"title":"Размер иконки","enumNames":["Нет","Маленькая","Большая"]},"TextBlockContent":{"type":"object","properties":{"isDotted":{"type":"boolean","title":"Маркеры списка (моб.)"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"items":{"type":"array","items":{"type":"string"},"title":"Список (моб.)"},"iconVersion":{"$ref":"#/definitions/TextBlockIconVersion"},"blockVersion":{"$ref":"#/definitions/TextBlockVersion"}},"title":"Текстовый блок"},"ListContent":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"},"title":"Список"}}},"TileContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"items":{"type":"array","items":{"type":"string"},"title":"Список"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"title":"Плитка"},"LinkListContent":{"type":"object","properties":{"documents":{"type":"array","items":{"$ref":"#/definitions/LinkProps"},"title":"Список"}},"title":"Список документов"},"AccordionBlockType":{"type":"string","enum":["Headline","LinkDocs","TextBlock","PictureText","Tile","ProductTile","Gallery","MiniGallery","LinkList"],"title":"Тип блока"},"HeadlineAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"title":{"type":"string","title":"Заголовок"},"align":{"$ref":"#/definitions/AlignType"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"bgColor":{"$ref":"#/definitions/BgColorVersion"}},"required":["accordionBlockType"],"title":"Заголовок"},"LinkDocsAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"title":{"type":"string","title":"Заголовок"},"subtitle":{"type":"string","title":"Подзаголовок"},"align":{"$ref":"#/definitions/AlignType"},"columnsMode":{"$ref":"#/definitions/LinkColumnsMode"},"listMode":{"$ref":"#/definitions/LinkListMode"},"hasBorder":{"type":"boolean","title":"Рамка элементов (моб.)"},"icon":{"$ref":"#/definitions/IconName","title":"Название иконки"},"documents":{"type":"array","items":{"$ref":"#/definitions/LinkDocsItem"},"title":"Список"}},"required":["accordionBlockType"],"title":"Список документов"},"TextBlockAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"isDotted":{"type":"boolean","title":"Маркеры списка (моб.)"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"items":{"type":"array","items":{"type":"string"},"title":"Список (моб.)"},"iconVersion":{"$ref":"#/definitions/TextBlockIconVersion"},"blockVersion":{"$ref":"#/definitions/TextBlockVersion"}},"required":["accordionBlockType"],"title":"Текстовый блок"},"PictureTextAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"title":{"type":"string","title":"Заголовок"},"image":{"$ref":"#/definitions/Picture"},"benefits":{"type":"array","items":{"$ref":"#/definitions/Benefit"},"title":"Список преимуществ"}},"required":["accordionBlockType"],"title":"Картинка с текстом"},"TileAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"items":{"type":"array","items":{"type":"string"},"title":"Список"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"required":["accordionBlockType"],"title":"Плитка"},"ProductTileAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"benefits":{"type":"array","items":{"$ref":"#/definitions/TextBenefit"},"title":"Преимущества","maxItems":7},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"required":["accordionBlockType"],"title":"Продуктовая плитка"},"GalleryAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"isScroll":{"type":"boolean"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"cards":{"type":"array","items":{"$ref":"#/definitions/GalleryCard"},"title":"Карточки","minItems":4}},"required":["accordionBlockType"],"title":"Галлерея"},"MiniGalleryAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"isScroll":{"type":"boolean"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"cards":{"type":"array","items":{"$ref":"#/definitions/GalleryCard"},"title":"Карточки","minItems":4}},"required":["accordionBlockType"],"title":"Мини-галлерея"},"LinkListAccordionBlockDef":{"type":"object","properties":{"accordionBlockType":{"$ref":"#/definitions/AccordionBlockType"},"documents":{"type":"array","items":{"$ref":"#/definitions/LinkProps"},"title":"Список"}},"required":["accordionBlockType"],"title":"Список ссылок"},"EmptyOption":{"type":"null","title":"Выберите блок"},"AccordionBlockProps":{"anyOf":[{"$ref":"#/definitions/EmptyOption"},{"$ref":"#/definitions/HeadlineAccordionBlockDef"},{"$ref":"#/definitions/LinkDocsAccordionBlockDef"},{"$ref":"#/definitions/TextBlockAccordionBlockDef"},{"$ref":"#/definitions/PictureTextAccordionBlockDef"},{"$ref":"#/definitions/TileAccordionBlockDef"},{"$ref":"#/definitions/ProductTileAccordionBlockDef"},{"$ref":"#/definitions/GalleryAccordionBlockDef"},{"$ref":"#/definitions/MiniGalleryAccordionBlockDef"},{"$ref":"#/definitions/LinkListAccordionBlockDef"}],"title":"Содержимое аккордеона"},"AccordionItemCommonProps":{"type":"object","properties":{"label":{"type":"string","title":"Название","default":"Список"},"blocks":{"type":"array","items":{"$ref":"#/definitions/AccordionBlockProps"},"title":"Блоки"},"bordered":{"type":"boolean","title":"Отображать/скрывать обводку элемента","default":false}},"title":"Элемент списка"},"AccordionContent":{"type":"object","properties":{"bordered":{"type":"boolean","title":"Отображать/скрывать обводку у элемента списка","default":false},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Подзаголовок"},"accordionItems":{"type":"array","items":{"$ref":"#/definitions/AccordionItemCommonProps"},"title":"Список"}},"title":"Аккордеон"},"CellData":{"type":"object","properties":{"label":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"}},"title":"Ячейка"},"ColumnHeader":{"type":"object","properties":{"link":{"$ref":"#/definitions/LinkProps"},"title":{"type":"string","title":"Заголовок"},"subtitle":{"type":"string","title":"Подзаголовок"},"image":{"$ref":"#/definitions/Picture"},"icon":{"$ref":"#/definitions/IconName"}},"title":"Шапка колонки"},"Column":{"type":"object","properties":{"header":{"$ref":"#/definitions/ColumnHeader"},"data":{"type":"array","items":{"type":"array","items":{"$ref":"#/definitions/CellData"}},"title":"Данные"}},"title":"Продукт"},"RowHeader":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"}},"title":"Параметр"},"ComparisonTableContent":{"type":"object","properties":{"useSwiper":{"type":"boolean","title":"Использовать свайпер-"},"title":{"type":"string","title":"Заголовок"},"rowHeaders":{"type":"array","items":{"$ref":"#/definitions/RowHeader"},"title":"Параметры"},"columns":{"type":"array","items":{"$ref":"#/definitions/Column"},"title":"Продукты"},"isColoredFirstColumn":{"type":"boolean","title":"Закрасить первую колонку"},"visibleRowLength":{"type":"number","title":"Отображать заданное количество строк"}},"title":"Сравнительная таблица"},"ExchangeRateTileContent":{"$ref":"#/definitions/HeadingContent","title":"Курсы валют"},"ExchangeCurrencyItem":{"type":"object","properties":{"buyExchangeRate":{"type":"number"},"saleExchangeRate":{"type":"number"},"currency":{"type":"object","properties":{"id":{"type":"number"},"code":{"type":"string"},"currency":{"type":"string"},"name":{"type":"string"}}}}},"ContactType":{"type":"string","enum":["tel","email"],"title":"Тип контакта","enumNames":["Телефон","Почта"]},"ContactInfo":{"type":"object","properties":{"type":{"$ref":"#/definitions/ContactType"},"description":{"type":"string","title":"Описание"},"text":{"type":"string","title":"Текст"}},"title":"Контакт"},"SocialMedia":{"type":"object","properties":{"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}},"required":["href"]},"SubMenuItem":{"type":"object","properties":{"icon":{"$ref":"#/definitions/IconName"},"text":{"type":"string","title":"Текст"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}},"title":"Пункт подменю"},"FooterContent":{"type":"object","properties":{"topItems":{"type":"array","items":{"$ref":"#/definitions/TopMenuItem"},"title":"Дополнительное меню"},"relatedEnterprises":{"type":"array","items":{"$ref":"#/definitions/LinkProps"},"title":"Другие предприятия"},"contacts":{"type":"array","items":{"$ref":"#/definitions/ContactInfo"},"title":"Контакты"},"socialMedia":{"type":"array","items":{"$ref":"#/definitions/SocialMedia"},"title":"Социальные сети"},"horizontalNavigationTitle":{"type":"string","title":"Заголовок для меню"},"subMenu":{"type":"array","items":{"$ref":"#/definitions/SubMenuItem"},"title":"Подменю"},"documents":{"type":"array","items":{"$ref":"#/definitions/LinkProps"},"title":"Обязательные документы"}},"title":"Подвал","required":["topItems"]},"SitemapProps":{"type":"object","properties":{"topItems":{"type":"array","items":{"$ref":"#/definitions/TopMenuItem"},"title":"Дополнительное меню"}}},"TopMenuItem":{"type":"object","properties":{"text":{"type":"string","title":"Текст"},"href":{"type":"string","title":"URL (href)"},"target":{"$ref":"#/definitions/Target"}},"title":"Ссылка","required":["text","href"]},"HeaderContent":{"type":"object","properties":{"topItems":{"type":"array","items":{"$ref":"#/definitions/TopMenuItem"},"title":"Дополнительное меню"},"defaultLocation":{"type":"string","title":"Город по-умолчанию","default":"Москва"},"burgerSubMenu":{"type":"array","items":{"$ref":"#/definitions/SubMenuItem"},"title":"Подменю"}},"title":"Шапка","required":["defaultLocation","topItems"]},"QRCode":{"type":"object","properties":{"src":{"type":"string","title":"QR код"},"href":{"type":"string","title":"Ссылка"}},"title":"QR код"},"MobileAppTileContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"qr":{"$ref":"#/definitions/QRCode"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"href":{"type":"string","title":"Ссылка"}},"title":"Мобильное приложение"},"NavigationContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonProps"},"title":"Список ссылок"}},"title":"Навигация"},"ProductBlockInnerContent":{"type":"object","properties":{"headingType":{"$ref":"#/definitions/HeadingType"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"benefits":{"type":"array","items":{"$ref":"#/definitions/Benefit"},"title":"Преимущества","minItems":2,"maxItems":3},"items":{"type":"array","items":{"type":"string"},"title":"Список"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}}},"ProductBlockContent":{"type":"object","properties":{"headingType":{"$ref":"#/definitions/HeadingType"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"breadcrumbs":{"type":"array","items":{"$ref":"#/definitions/LinkProps"},"title":"Хлебные крошки"},"benefits":{"type":"array","items":{"$ref":"#/definitions/Benefit"},"title":"Преимущества","minItems":2,"maxItems":3},"items":{"type":"array","items":{"type":"string"},"title":"Список"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"title":"Продуктовый блок"},"ProductSlide":{"type":"object","properties":{"nav":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"desc":{"type":"string","title":"Описание"}},"required":["title","desc"],"title":"Превью содержимого слайда на навигации"},"productBlock":{"$ref":"#/definitions/ProductBlockInnerContent","title":"Содержимое слайда"}},"required":["productBlock"],"title":"Слайд"},"ProductGalleryContent":{"type":"object","properties":{"slides":{"type":"array","items":{"$ref":"#/definitions/ProductSlide"},"title":"Слайды"}},"title":"Продуктовая галерея"},"PromoTileContent":{"type":"object","properties":{"date":{"type":"string","title":"Дата публикации"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки","maxItems":4},"version":{"$ref":"#/definitions/BlockVersion"}},"title":"Акции"},"Step":{"type":"object","properties":{"label":{"type":"string","title":"Название"},"description":{"type":"string","title":"Описание"},"icon":{"$ref":"#/definitions/IconName"}},"title":"Шаг"},"StepsBlockContent":{"type":"object","properties":{"showLines":{"type":"boolean","title":"Линии"},"size":{"$ref":"#/definitions/SizeVersion"},"title":{"type":"string","title":"Заголовок"},"description":{"type":"string","title":"Описание"},"steps":{"type":"array","items":{"$ref":"#/definitions/Step"},"title":"Шаги","minItems":2,"maxItems":3}},"title":"Блок шаги"},"SizeVersion":{"type":"string","enum":["normal","small"],"title":"Размер","enumNames":["Обычный","Уменьшенный"]},"TariffsTableRowData":{"type":"object","properties":{"header":{"$ref":"#/definitions/TariffsTableRowHeader"},"data":{"type":"array","items":{"type":"array","items":{"$ref":"#/definitions/TariffsTableCellData"}}}},"required":["header","data"],"title":"Ряд"},"TariffsTableRowHeader":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"icon":{"$ref":"#/definitions/IconName"}},"title":"Параметр"},"TariffsTableCellData":{"type":"object","properties":{"label":{"type":"string","title":"Заголовок"},"list":{"$ref":"#/definitions/TariffsTableList"},"description":{"type":"string","title":"Описание"},"image":{"$ref":"#/definitions/Picture"},"buttons":{"type":"array","items":{"$ref":"#/definitions/ButtonWithIconProps"},"title":"Кнопки"}},"title":"Ячейка"},"TariffsTableList":{"type":"object","properties":{"isDotted":{"type":"boolean","title":"Маркеры"},"items":{"type":"array","items":{"type":"string"},"title":"Элементы списка"}},"title":"Список"},"TariffsTableColumn":{"type":"object","properties":{"data":{"type":"array","items":{"type":"array","items":{"$ref":"#/definitions/TariffsTableCellData"}},"title":"Данные"}},"title":"Колонка"},"TariffsTableContent":{"type":"object","properties":{"title":{"type":"string","title":"Заголовок"},"rowHeaders":{"type":"array","items":{"$ref":"#/definitions/TariffsTableRowHeader"},"title":"Параметры"},"columns":{"type":"array","items":{"$ref":"#/definitions/TariffsTableColumn"},"title":"Колонки"}},"title":"Таблица тарифов"},"CalculatorParams":{"type":"object","properties":{"isAnnuity":{"type":"boolean"},"minSum":{"type":"number"},"maxSum":{"type":"number"},"minMonths":{"type":"number"},"maxMonths":{"type":"number"},"rateWithInsurance":{"type":"number"},"rateWithoutInsurance":{"type":"number"}}},"CreditCalculatorData":{"type":"object","properties":{"rows":{"type":"array","items":{"$ref":"#/definitions/CalculatorParams"}}}},"CreditCalculatorContent":{"type":"object","properties":{"directoryName":{"type":"string","title":"Справочник"}},"title":"Кредитный калькулятор"}}}
@@ -493,7 +493,7 @@
493
493
  });
494
494
 
495
495
  const BaseTile = JSX(({ className = '', title, children, buttons, image }) => {
496
- return (jsxs("div", { className: `font-sans flex flex-col grow h-full items-start ${className}`, children: [title, jsxs("div", { className: "flex grow w-full justify-between", children: [jsxs("div", { className: "flex flex-col justify-between w-full", children: [jsx("div", { children: children }), jsx("div", { children: buttons })] }), image] })] }));
496
+ return (jsxs("div", { className: `font-sans flex flex-col grow h-full items-start ${className}`, children: [title, jsxs("div", { className: "flex grow w-full justify-between", children: [jsxs("div", { className: "flex flex-col justify-between w-full", children: [jsx("div", { children: children }), buttons?.length ? jsx("div", { children: buttons }) : null] }), image] })] }));
497
497
  });
498
498
 
499
499
  const getColSpan = (className) => {
@@ -807,11 +807,11 @@
807
807
  });
808
808
 
809
809
  function useCreditCalculatorData(useAsyncData, directoryName) {
810
- const { data } = useAsyncData(creditCalculatorUrl(directoryName), () => fetchCreditCalculatorData(directoryName));
810
+ const { data } = useAsyncData(creditCalculatorUrl(directoryName), fetchCreditCalculatorData);
811
811
  return data || {};
812
812
  }
813
- async function fetchCreditCalculatorData(directoryName) {
814
- const response = await fetch(creditCalculatorUrl(directoryName));
813
+ async function fetchCreditCalculatorData(url) {
814
+ const response = await fetch(url);
815
815
  return await response.json();
816
816
  }
817
817
  function creditCalculatorUrl(directoryName) {
@@ -830,30 +830,6 @@
830
830
  onChange(e.target.checked);
831
831
  }, 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] }) })));
832
832
 
833
- const addSpacesBetweenNumbers = (number) => new Intl.NumberFormat('ru-RU', { maximumSignificantDigits: 3 }).format(number);
834
-
835
- const InputRange = JSX(({ className, title, items = [], min = 1, max = 100, step = 1, value = min, onChange }) => {
836
- const handleChange = (value) => {
837
- if (!onChange)
838
- return;
839
- const sanitizedValue = Number(value.replace(/\D/g, ''));
840
- onChange(sanitizedValue);
841
- };
842
- const inputStyle = {
843
- backgroundSize: `${(((value - min) * 100) / (max - min)).toFixed(2)}% 100%`,
844
- };
845
- const handleBlur = () => {
846
- if (!onChange)
847
- return;
848
- if (value < min)
849
- onChange(min);
850
- if (value > max)
851
- onChange(max);
852
- };
853
- 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
854
- 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)))) })] }));
855
- });
856
-
857
833
  const clamp = (value, min, max) => Math.max(min, Math.min(value, max));
858
834
 
859
835
  const DEFAULT_MIN_SUM = 30000;
@@ -893,6 +869,14 @@
893
869
  return result.concat(maxYear);
894
870
  };
895
871
 
872
+ const getDefaultMonths = (calculatorParams) => calculatorParams.maxMonths && calculatorParams.minMonths
873
+ ? Math.round((calculatorParams.maxMonths - calculatorParams.minMonths) / 2)
874
+ : DEFAULT_MONTHS;
875
+
876
+ const getDefaultSum = (calculatorParams) => calculatorParams.maxSum && calculatorParams.minSum
877
+ ? (calculatorParams.maxSum - calculatorParams.minSum) / 2
878
+ : DEFAULT_SUM;
879
+
896
880
  const getMonthlyPayment = (params) => {
897
881
  const { calculatorParams, paymentType, rate, sum, months } = params;
898
882
  if (!calculatorParams)
@@ -907,29 +891,74 @@
907
891
  }
908
892
  };
909
893
 
910
- const STEP_MONEY = 1000;
894
+ function renderButton(number, i, handleClick) {
895
+ 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, " ", number === 1 ? 'год' : number > 4 ? 'лет' : 'года'] }) }, String(i)));
896
+ }
897
+
898
+ const addSpacesBetweenNumbers = (number) => new Intl.NumberFormat('ru-RU', { maximumSignificantDigits: 3 }).format(number);
899
+
900
+ const InputRange = JSX(({ className, title, items = [], min = 1, max = 100, step = 1, value = min, onChange }) => {
901
+ const handleChange = (value) => {
902
+ if (!onChange)
903
+ return;
904
+ const sanitizedValue = Number(value.replace(/\D/g, ''));
905
+ onChange(sanitizedValue);
906
+ };
907
+ const inputStyle = {
908
+ backgroundSize: `${(((value - min) * 100) / (max - min)).toFixed(2)}% 100%`,
909
+ };
910
+ const handleBlur = () => {
911
+ if (!onChange)
912
+ return;
913
+ if (value < min)
914
+ onChange(min);
915
+ if (value > max)
916
+ onChange(max);
917
+ };
918
+ 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
919
+ 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)))) })] }));
920
+ });
921
+
911
922
  const STEP_MONTHS = 1;
923
+ function renderMonthsInput(props) {
924
+ const { minMonths, maxMonths, monthsValue, defaultMonths, setMonthsValue } = props;
925
+ 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 }));
926
+ }
927
+
928
+ function renderProposal(monthlyPayment, rate) {
929
+ 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, " %"] })] }));
930
+ }
931
+
932
+ function renderTermsButton() {
933
+ 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" })] }));
934
+ }
935
+
936
+ const STEP_MONEY = 1000;
937
+ function renderWantedSumInput(props) {
938
+ const { calculatorParams, moneyValue, defaultSum, setMoneyValue } = props;
939
+ const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM;
940
+ const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM;
941
+ 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: [
942
+ `От ${addSpacesBetweenNumbers(minSum)} рублей`,
943
+ `До ${addSpacesBetweenNumbers(maxSum)} рублей`,
944
+ ], min: minSum, max: maxSum, step: STEP_MONEY, value: moneyValue || defaultSum, onChange: setMoneyValue }));
945
+ }
946
+
912
947
  const DEFAULT_PAYMENT_TYPE = 'annuity';
913
948
  const borderStyle = 'border-solid border-[3px] border-primary-main rounded-md';
914
- const CreditCalculator = JSX(({ context, className, directoryName }) => {
949
+ const CreditCalculator = JSX(({ context, className = '', directoryName }) => {
915
950
  const [moneyValue, setMoneyValue] = context.useState(undefined);
916
951
  const [monthsValue, setMonthsValue] = context.useState(undefined);
917
952
  const [isAnnuityChecked, setIsAnnuityChecked] = context.useState(true);
918
953
  const [isInsuranceChecked, setIsInsuranceChecked] = context.useState(true);
919
954
  const tableRows = useCreditCalculatorData(context.useAsyncData, directoryName).rows;
920
955
  const calculatorParams = getCalculatorParams({ tableRows, isAnnuity: isAnnuityChecked });
921
- const defaultSum = calculatorParams.maxSum && calculatorParams.minSum
922
- ? (calculatorParams.maxSum - calculatorParams.minSum) / 2
923
- : DEFAULT_SUM;
924
- const defaultMonths = calculatorParams.maxMonths && calculatorParams.minMonths
925
- ? Math.round((calculatorParams.maxMonths - calculatorParams.minMonths) / 2)
926
- : DEFAULT_MONTHS;
927
- const minSum = calculatorParams?.minSum || DEFAULT_MIN_SUM;
928
- const maxSum = calculatorParams?.maxSum || DEFAULT_MAX_SUM;
956
+ const defaultSum = getDefaultSum(calculatorParams);
957
+ const defaultMonths = getDefaultMonths(calculatorParams);
929
958
  const minMonths = calculatorParams?.minMonths || DEFAULT_MIN_MONTHS;
930
959
  const maxMonths = calculatorParams?.maxMonths || DEFAULT_MAX_MONTHS;
931
960
  const rate = getCreditRate({ calculatorParams, isInsurance: isInsuranceChecked });
932
- const montlyPayment = getMonthlyPayment({
961
+ const monthlyPayment = getMonthlyPayment({
933
962
  calculatorParams,
934
963
  paymentType: DEFAULT_PAYMENT_TYPE,
935
964
  rate,
@@ -940,44 +969,92 @@
940
969
  function handleButtonClick(value) {
941
970
  setMonthsValue(clamp(value * MONTHS_IN_YEAR, minMonths, maxMonths));
942
971
  }
943
- return (jsx("section", { className: `font-sans text-primary-text p-10 bg-white ${className || ''}`, children: jsxs("div", { className: `box-border p-[49px] pr-[56px] mx-auto w-max ${borderStyle}`, children: [jsxs("div", { className: "flex justify-between ", children: [jsxs("div", { className: "mr-[42px]", children: [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: [
944
- `От ${addSpacesBetweenNumbers(minSum)} рублей`,
945
- `До ${addSpacesBetweenNumbers(maxSum)} рублей`,
946
- ], min: minSum, max: maxSum, step: STEP_MONEY, value: moneyValue || defaultSum, onChange: setMoneyValue }), 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 }), 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 })] }), 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(montlyPayment)), " \u20BD"] }), jsx("div", { className: "text-sm opacity-60", children: "\u0421\u0442\u0430\u0432\u043A\u0430" }), jsxs("div", { className: "text-lg", children: [rate, " %"] })] })] }), 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" })] })] }) }));
972
+ return (jsx("section", { className: `font-sans text-primary-text p-10 bg-white ${className}`, children: jsxs("div", { className: `box-border p-[49px] pr-[56px] mx-auto w-max ${borderStyle}`, children: [jsxs("div", { className: "flex justify-between", children: [jsxs("div", { className: "mr-[42px]", children: [renderWantedSumInput({ calculatorParams, moneyValue, defaultSum, setMoneyValue }), renderMonthsInput({
973
+ minMonths,
974
+ maxMonths,
975
+ monthsValue,
976
+ defaultMonths,
977
+ setMonthsValue,
978
+ }), 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()] }) }));
947
979
  });
948
- function renderButton(number, i, handleClick) {
949
- 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, " ", number === 1 ? 'год' : number > 4 ? 'лет' : 'года'] }) }, String(i)));
980
+
981
+ function useExchangeRates(useAsyncData) {
982
+ const { data } = useAsyncData(EXCHANGE_RATES_URL, fetchExchangeRates);
983
+ return data || {};
950
984
  }
985
+ async function fetchExchangeRates() {
986
+ try {
987
+ const response = await fetch(EXCHANGE_RATES_URL);
988
+ return await response.json();
989
+ }
990
+ catch (err) {
991
+ console.error(err);
992
+ }
993
+ }
994
+ const EXCHANGE_RATES_URL = '/api/v1/exchangerates.json';
951
995
 
952
- const CBR_EXCHANGE_RATE_URL = 'https://www.cbr-xml-daily.ru/daily_json.js';
953
- const CURRENCY_CODES = ['USD', 'EUR'];
996
+ const currencyNumberFormat = new Intl.NumberFormat('ru', { style: 'currency', currency: 'RUB' });
997
+ const formatCurrency = (value) => (value ? currencyNumberFormat.format(value) : '');
998
+
999
+ const TABLE_HEAD_STYLE = 'text-left font-normal text-sm text-secondary-text';
954
1000
  const CURRENCY_ICONS_MAP = {
955
1001
  USD: 'DollarIcon',
956
1002
  EUR: 'EuroIcon',
957
1003
  };
958
- const buttons = [
1004
+ const CurrencyTable = JSX(({ className, exchangeCurrencyItems }) => {
1005
+ 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)) })] }));
1006
+ });
1007
+ const renderCurrencyRow = (exchangeCurrencyItem) => {
1008
+ const code = exchangeCurrencyItem?.currency?.currency;
1009
+ return (jsxs("tr", { children: [jsx("td", { className: "pt-4", children: jsxs("div", { className: "flex items-center", children: [code ? jsx(Icon, { name: CURRENCY_ICONS_MAP[code], width: "24", height: "24" }) : null, jsx("span", { className: "ml-2", children: code })] }) }), jsx("td", { className: "pt-4 pl-11", children: formatCurrency(exchangeCurrencyItem.buyExchangeRate) }), jsx("td", { className: "pt-4 pl-11", children: formatCurrency(exchangeCurrencyItem.saleExchangeRate) })] }, code));
1010
+ };
1011
+
1012
+ const CurrentLocation = JSX(({ className = '', address, distance }) => (jsxs("div", { className: `flex text-sm ${className}`, children: [jsx(Icon, { className: "min-w-fit", name: "GpsIcon", width: "24", height: "24", asSVG: true }), jsxs("div", { className: "ml-1.5", children: [address ? jsx("p", { className: "m-0", 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] })] })));
1013
+
1014
+ const Input = JSX(({ className = '', id, name, type = 'text', placeholder }) => {
1015
+ return (jsx("input", { className: className, id: id, name: name || id, type: type, placeholder: placeholder }));
1016
+ });
1017
+
1018
+ const Select = JSX(({ className = '', id, name, children }) => {
1019
+ return (jsx("select", { className: className, id: id, name: name || id, children: children }));
1020
+ });
1021
+
1022
+ const SelectOption = JSX(({ className = '', value, children }) => {
1023
+ return (jsx("option", { className: className, value: `${value}`, children: children }));
1024
+ });
1025
+
1026
+ const ExchangeCurrencyCalculator = JSX(({ codes, className = '' }) => {
1027
+ return (jsxs("div", { className: `grid gap-3.5 ${className}`, children: [renderInput('Хочу продать', codes), renderInput('Получу', codes), jsx(Button, { className: "box-border mt-3.5 py-3 h-12 w-44", version: "primary", href: "#", children: "\u041A\u0443\u043F\u0438\u0442\u044C \u0432\u0430\u043B\u044E\u0442\u0443" })] }));
1028
+ });
1029
+ function renderInput(placeholder, codes) {
1030
+ return (jsxs("div", { className: "flex items-center", children: [jsx(Input, { className: "h-10 border pl-2.5 rounded-md text-m-sm w-full appearance-none", type: "number", placeholder: `${placeholder}` }), codes.length ? (jsx(Select, { className: "h-9 -translate-x-16", children: codes.map((code, i) => (jsx(SelectOption, { value: code, children: code }, String(i)))) })) : null] }));
1031
+ }
1032
+
1033
+ const CURRENCY_CODES = ['USD', 'EUR'];
1034
+ const EXCHANGE_CODES = ['RUB', 'USD', 'EUR'];
1035
+ const DEFAULT_CURRENCY_ITEMS = [
1036
+ {
1037
+ buyExchangeRate: 90.6,
1038
+ saleExchangeRate: 92.8,
1039
+ currency: { id: 2, code: '978', currency: 'EUR', name: 'Евро' },
1040
+ },
959
1041
  {
960
- text: 'Все показатели',
961
- href: 'https://cbr.ru/currency_base/daily/',
962
- version: 'secondary',
1042
+ buyExchangeRate: 73.75,
1043
+ saleExchangeRate: 75.95,
1044
+ currency: { id: 1, code: '840', currency: 'USD', name: 'Американский доллар' },
963
1045
  },
964
1046
  ];
1047
+ const DEFAULT_LOCATION = {
1048
+ address: 'Москва, ул.Ленина д.28',
1049
+ distance: '6км',
1050
+ };
965
1051
  const ExchangeRateTile = JSX(({ className = '', context, title = 'Курсы обмена валют' }) => {
966
- const { data } = context.useAsyncData(CBR_EXCHANGE_RATE_URL, fetchExchangeRate);
967
- return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, children: jsx(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, children: jsxs("table", { children: [jsx("thead", { children: jsxs("tr", { children: [jsx(CurrencyTH, { children: "\u0412\u0430\u043B\u044E\u0442\u0430" }), jsx(CurrencyTH, { className: "pl-11", children: "\u041A\u0443\u0440\u0441" })] }) }), jsx("tbody", { children: CURRENCY_CODES.map(renderCurrencyRow(data)) })] }) }) }));
1052
+ const data = useExchangeRates(context.useAsyncData);
1053
+ const exchangeCurrencyItems = data?.exchangeRate?.currencies?.filter((item) => {
1054
+ return CURRENCY_CODES.indexOf(item?.currency?.currency || '') !== -1;
1055
+ }) || DEFAULT_CURRENCY_ITEMS;
1056
+ return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className}`, children: jsx(BaseTile, { context: context, title: jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: "whitespace-pre-wrap mb-3" }), children: jsxs("div", { className: "flex", children: [jsxs("div", { className: "mr-20 pt-3", children: [exchangeCurrencyItems ? (jsx(CurrencyTable, { className: "mb-7", exchangeCurrencyItems: exchangeCurrencyItems })) : null, jsx(CurrentLocation, { ...DEFAULT_LOCATION })] }), exchangeCurrencyItems?.length ? (jsx(ExchangeCurrencyCalculator, { className: "grow", exchangeCurrencyItems: exchangeCurrencyItems, codes: EXCHANGE_CODES })) : null] }) }) }));
968
1057
  });
969
- const CurrencyTH = JSX(({ className = '', children }) => (jsx("th", { className: `text-left font-normal text-sm text-secondary-text ${className}`, children: children })));
970
- const CurrencyTD = JSX(({ className = '', children }) => (jsx("td", { className: `text-left font-normal text-base text-primary-text ${className}`, children: children })));
971
- async function fetchExchangeRate() {
972
- const response = await fetch(CBR_EXCHANGE_RATE_URL);
973
- return await response.json();
974
- }
975
- const currencyNumberFormat = new Intl.NumberFormat('ru', { style: 'currency', currency: 'RUB' });
976
- const formatCurrency = (value) => (value ? currencyNumberFormat.format(value) : '');
977
- const renderCurrencyRow = (data) => (code) => {
978
- const value = (data?.Valute || {})[code]?.Value;
979
- return (jsxs("tr", { children: [jsx(CurrencyTD, { className: "pt-4", children: jsxs("div", { className: "flex items-center", children: [jsx(Icon, { name: CURRENCY_ICONS_MAP[code], width: "24", height: "24" }), jsx("span", { className: "ml-2", children: code })] }) }), jsx(CurrencyTD, { className: "pt-4 pl-11", children: formatCurrency(value) })] }, code));
980
- };
981
1058
 
982
1059
  const LOGO_PATHS = [
983
1060
  'm13.72 25.51 4.42-4.33v-2.95l-4.42 4.32v2.96Zm0-10.98 4.42-4.35V7.41l-4.42 4.31v2.8Zm0 3.63 4.42-4.33v-2.78l-4.42 4.32v2.8ZM12.46 7.44l-.6-.56V0h-.66v6.22l-.58-.57V0h-.67v5l-.59-.58V0H8.7v6.56l4.44 4.33V0h-.67v7.44Zm1.26 14.35 4.42-4.33v-2.78L13.72 19v2.8Zm-5.03-.61 4.44 4.33v-2.96l-4.44-4.32v2.95Zm8.79-16.76-.59.58V0h-.66v5.66l-.6.56V0h-.66v6.87l-.58.57V0h-.67v10.9l4.42-4.34V0h-.66v4.42Zm-8.79 5.76 4.44 4.35v-2.8L8.69 7.4v2.77Zm0 3.65 4.44 4.33v-2.8l-4.44-4.3v2.77Zm0 3.63 4.44 4.33V19l-4.44-4.31v2.78Zm26.37 2.29H24.3a2.25 2.25 0 0 0 .36-1.22 2.32 2.32 0 0 0-2.33-2.31 2.32 2.32 0 0 0-2.31 2.31c0 .5.16.96.43 1.34a.74.74 0 0 0-.33.61c0 .26.14.49.33.62a2.32 2.32 0 0 0-.43 1.34 2.31 2.31 0 0 0 2.31 2.31 2.32 2.32 0 0 0 2.33-2.31c0-.45-.13-.87-.36-1.22h8.01v.49h-.8v.68h.8v.7h-.8v1.3h.8v-.58h1.17v.58h.79v-1.3h-.79v-.7h.79v-.68h-.79v-.5h1.58a.56.56 0 0 0 .56-.56v-.34a.57.57 0 0 0-.56-.56Zm-11.53 2.7a1.2 1.2 0 0 1-2.4 0c0-.24.08-.47.2-.66l.34-.56a.97.97 0 0 1-.34-.75c0-.3.13-.56.33-.74l-.32-.56a1.13 1.13 0 0 1-.2-.66 1.2 1.2 0 0 1 2.4 0c0 .49-.56 1.65-.56 1.65v.62c-.01.01.55 1.17.55 1.66ZM4.67 18.34v2.89c0 2.75 1.2 4.53 1.9 5.21l4.58 4.5c1.28 1.25 1.5 1.66 1.79 2.37v-3.2c0-2.84-1.44-3.94-2.19-4.67-1.73-1.68-2.89-2.8-3.82-3.73a8.98 8.98 0 0 1-2.26-3.37Zm6.08 14.24c-1.73-1.7-2.89-2.8-3.82-3.73a10 10 0 0 1-2.25-2.98v2.49a7.87 7.87 0 0 0 1.89 5.24l4.58 4.47c1.28 1.25 1.5 1.85 1.79 2.55v-3.37c0-2.85-1.45-3.95-2.19-4.67Z',
@@ -1217,6 +1294,16 @@
1217
1294
  .map((button, i) => (jsx(NavigationItem, { className: "first:rounded-tl-md first:rounded-bl-md last:rounded-tr-md last:rounded-br-md", isActive: button === activeButton, ...useLink({ router, handlerDecorator }, button) }, String(i)))) })) : null] }));
1218
1295
  });
1219
1296
 
1297
+ const GOLDEN_RATIO = 1.618;
1298
+ const Placeholder = JSX(({ className, context, title, description = 'Блок в разработке...' }) => {
1299
+ return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px]` })) : null, children: [description ? (jsx(Description, { className: "mt-4 max-w-[600px]", description: description })) : null, jsx("figure", { className: "m-0 min-w-[600px]", children: renderShimmer() })] }) }));
1300
+ });
1301
+ const renderShimmer = (size = 3) => goldenSequence(100, size)
1302
+ .map((_) => Math.floor(_))
1303
+ .map(renderShimmerItem);
1304
+ const renderShimmerItem = (width = 100, index) => (jsx("div", { style: { width: `${width}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
1305
+ const goldenSequence = (first, size) => [first].concat(size > 0 ? goldenSequence(first / GOLDEN_RATIO, size - 1) : []);
1306
+
1220
1307
  const Breadcrumb = JSX(({ text, href, target, onClick, className = '', children }) => {
1221
1308
  if (href) {
1222
1309
  return (jsx("a", { className: `no-underline ${className}`, href: href, target: target, onClick: onClick, children: jsx("span", { className: className, children: text || children }) }));
@@ -1370,6 +1457,7 @@
1370
1457
  TextBlock,
1371
1458
  Tile,
1372
1459
  Navigation,
1460
+ Placeholder,
1373
1461
  };
1374
1462
 
1375
1463
  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() })));
@@ -1388,16 +1476,6 @@
1388
1476
  return (jsxs("div", { className: `border-main border-2 border-solid bg-white flex w-[125px] items-center justify-center gap-3 p-2 font-sans ${className || ''}`, children: [jsx(LikeButton, { onClick: likeService.like, ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u043B\u0430\u0439\u043A\u00BB" }), jsx(LikeButton, { onClick: likeService.dislike, className: "rotate-180", ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u0434\u0438\u0437\u043B\u0430\u0439\u043A\u00BB" }), jsx("span", { className: "select-none", children: likeService.likeCount })] }));
1389
1477
  });
1390
1478
 
1391
- const GOLDEN_RATIO = 1.618;
1392
- const Placeholder = JSX(({ className, context, title, description = 'Блок в разработке...' }) => {
1393
- return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px]` })) : null, children: [description ? (jsx(Description, { className: "mt-4 max-w-[600px]", description: description })) : null, jsx("figure", { className: "m-0 min-w-[600px]", children: renderShimmer() })] }) }));
1394
- });
1395
- const renderShimmer = (size = 3) => goldenSequence(100, size)
1396
- .map((_) => Math.floor(_))
1397
- .map(renderShimmerItem);
1398
- const renderShimmerItem = (width = 100, index) => (jsx("div", { style: { width: `${width}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
1399
- const goldenSequence = (first, size) => [first].concat(size > 0 ? goldenSequence(first / GOLDEN_RATIO, size - 1) : []);
1400
-
1401
1479
  const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
1402
1480
  const ContentPage = JSX(({ className, context, blocksRegistry, data: { style: pageStyle, blocks, slots = {}, likeControl, colorPalette = 'pc' }, blockDecorator = defaultBlockDecorator, }) => {
1403
1481
  const { header } = slots;